pageflow 15.2.2 → 15.6.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -118
  3. data/README.md +2 -3
  4. data/admins/pageflow/accounts.rb +1 -98
  5. data/admins/pageflow/entry.rb +21 -1
  6. data/admins/pageflow/entry_templates.rb +140 -0
  7. data/admins/pageflow/membership.rb +12 -0
  8. data/admins/pageflow/user.rb +5 -5
  9. data/app/assets/javascripts/pageflow/admin/entries.js +65 -0
  10. data/app/assets/javascripts/pageflow/admin/users.js +1 -1
  11. data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -0
  12. data/app/assets/javascripts/pageflow/base.js +0 -12
  13. data/app/assets/javascripts/pageflow/components.js +2 -6
  14. data/app/assets/javascripts/pageflow/dist/ui.js +178 -55
  15. data/app/assets/javascripts/pageflow/editor/vendor.js +1 -0
  16. data/app/assets/javascripts/pageflow/vendor.js +12 -10
  17. data/app/assets/stylesheets/pageflow/base.scss +0 -7
  18. data/app/assets/stylesheets/pageflow/editor/base.scss +5 -2
  19. data/app/assets/stylesheets/pageflow/editor/composables.scss +5 -1
  20. data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +1 -1
  21. data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +44 -55
  22. data/app/assets/stylesheets/pageflow/editor/help.scss +2 -2
  23. data/app/assets/stylesheets/pageflow/editor/select_button.scss +1 -1
  24. data/app/assets/stylesheets/pageflow/editor/sidebar_footer.scss +1 -1
  25. data/app/assets/stylesheets/pageflow/entries.scss +1 -1
  26. data/app/assets/stylesheets/pageflow/loading_spinner.scss +4 -1
  27. data/app/assets/stylesheets/pageflow/navigation_mobile.scss +4 -4
  28. data/app/assets/stylesheets/pageflow/themes/default/anchors.scss +1 -1
  29. data/app/assets/stylesheets/pageflow/themes/default/logo/variant/watermark.scss +1 -1
  30. data/app/assets/stylesheets/pageflow/themes/default/page.scss +7 -0
  31. data/app/assets/stylesheets/pageflow/themes/default/page/anchors.scss +1 -1
  32. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/control_bar.scss +1 -1
  33. data/app/assets/stylesheets/pageflow/themes/default/player_controls/classic/info_box.scss +1 -1
  34. data/app/assets/stylesheets/pageflow/themes/default/player_controls/shared/menu_bar.scss +2 -2
  35. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/control_bar.scss +2 -2
  36. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/info_box.scss +1 -1
  37. data/app/assets/stylesheets/pageflow/themes/default/player_controls/slim/quality_menu.scss +2 -2
  38. data/app/assets/stylesheets/pageflow/themes/default/player_controls/waveform/wave.scss +1 -1
  39. data/app/assets/stylesheets/pageflow/ui/forms.scss +9 -2
  40. data/app/assets/stylesheets/pageflow/ui/input/extended_select_input.scss +2 -2
  41. data/app/assets/stylesheets/pageflow/ui/tooltip.scss +17 -3
  42. data/app/helpers/pageflow/admin/entries_helper.rb +16 -0
  43. data/app/helpers/pageflow/structured_data_helper.rb +0 -2
  44. data/app/models/pageflow/account.rb +21 -1
  45. data/app/models/pageflow/account_role_query.rb +1 -1
  46. data/app/models/pageflow/chapter.rb +3 -9
  47. data/app/models/pageflow/entry.rb +9 -2
  48. data/app/models/pageflow/entry_duplicate.rb +1 -0
  49. data/app/models/pageflow/entry_template.rb +16 -2
  50. data/app/models/pageflow/managed_user_query.rb +1 -1
  51. data/app/models/pageflow/page.rb +1 -4
  52. data/app/models/pageflow/revision.rb +0 -4
  53. data/app/models/pageflow/storyline.rb +2 -9
  54. data/app/policies/pageflow/account_policy.rb +10 -0
  55. data/app/policies/pageflow/entry_template_policy.rb +5 -1
  56. data/app/policies/pageflow/folder_policy.rb +2 -2
  57. data/app/policies/pageflow/membership_policy.rb +2 -2
  58. data/app/policies/pageflow/theming_policy.rb +2 -2
  59. data/app/policies/pageflow/user_policy.rb +1 -1
  60. data/app/views/admin/accounts/_entry_template_details.html.arb +7 -5
  61. data/app/views/admin/accounts/_form.html.erb +3 -49
  62. data/app/views/admin/entries/_attributes_table.html.arb +5 -0
  63. data/app/views/admin/entries/_not_allowed_to_see_entry_types.json.jbuilder +2 -0
  64. data/app/views/admin/entries/entry_types.json.jbuilder +4 -0
  65. data/app/views/admin/entry_templates/_form.html.erb +58 -0
  66. data/app/views/admin/users/_not_allowed_to_see_user_quota.html.erb +3 -0
  67. data/app/views/components/pageflow/admin/entry_templates_tab.rb +48 -0
  68. data/app/views/pageflow/admin/initial_passwords/edit.html.erb +2 -1
  69. data/app/views/pageflow/admin/users/_quota_exhausted.html.erb +1 -1
  70. data/app/views/pageflow/themes/_theme.json.jbuilder +1 -1
  71. data/app/views/pageflow/video_files/_video_file.json.jbuilder +8 -1
  72. data/config/initializers/admin_resource_tabs.rb +5 -0
  73. data/config/initializers/help_entries.rb +1 -5
  74. data/config/initializers/revision_components.rb +5 -0
  75. data/config/locales/de.yml +88 -155
  76. data/config/locales/en.yml +79 -143
  77. data/db/migrate/20200515112500_add_constraints_to_entry_templates.rb +21 -0
  78. data/db/migrate/20200807135200_rename_pageflow_entry_template_entry_type_to_entry_type_name.rb +7 -0
  79. data/entry_types/paged/app/assets/javascripts/pageflow_paged/components.js +7 -0
  80. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +1528 -1349
  81. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +9258 -0
  82. data/{app/assets/javascripts/pageflow → entry_types/paged/app/assets/javascripts/pageflow_paged}/dist/react-client.js +1 -1
  83. data/{app/assets/javascripts/pageflow → entry_types/paged/app/assets/javascripts/pageflow_paged}/dist/react-server.js +3 -3
  84. data/entry_types/paged/app/assets/javascripts/pageflow_paged/frontend.js +6 -0
  85. data/entry_types/paged/app/assets/javascripts/pageflow_paged/server_rendering.js +9 -0
  86. data/entry_types/paged/app/assets/javascripts/pageflow_paged/vendor.js +9 -0
  87. data/entry_types/paged/app/assets/javascripts/pageflow_paged/videojs.js +6 -0
  88. data/entry_types/paged/app/controllers/pageflow_paged/application_controller.rb +2 -2
  89. data/{app/helpers/pageflow → entry_types/paged/app/helpers/pageflow_paged}/page_background_asset_helper.rb +4 -3
  90. data/{app/helpers/pageflow → entry_types/paged/app/helpers/pageflow_paged}/react_server_side_rendering_helper.rb +23 -2
  91. data/entry_types/paged/app/views/layouts/pageflow_paged/_loading_spinner_inline_script.html.erb +1 -0
  92. data/entry_types/paged/app/views/layouts/pageflow_paged/application.html.erb +3 -3
  93. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_head.html.erb +4 -2
  94. data/entry_types/paged/app/views/pageflow_paged/entries/_entry.html.erb +1 -1
  95. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/page_background_asset/_element.html.erb +0 -0
  96. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/react/_widget.html.erb +0 -0
  97. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/react/page.html.erb +0 -0
  98. data/entry_types/paged/config/initializers/features.rb +1 -1
  99. data/entry_types/paged/config/initializers/help_entries.rb +17 -0
  100. data/entry_types/paged/config/locales/new/help.de.yml +162 -0
  101. data/entry_types/paged/config/locales/new/help.en.yml +153 -0
  102. data/entry_types/paged/lib/pageflow_paged/engine.rb +13 -0
  103. data/entry_types/paged/lib/pageflow_paged/plugin.rb +5 -1
  104. data/entry_types/paged/lib/pageflow_paged/react.rb +12 -0
  105. data/{lib/pageflow → entry_types/paged/lib/pageflow_paged}/react/page_type.rb +2 -2
  106. data/{lib/pageflow → entry_types/paged/lib/pageflow_paged}/react/widget_type.rb +2 -2
  107. data/entry_types/paged/lib/tasks/pageflow_paged_tasks.rake +7 -0
  108. data/entry_types/paged/vendor/assets/javascripts/development/pageflow_paged/vendor/react-server.js +20613 -0
  109. data/entry_types/paged/vendor/assets/javascripts/development/pageflow_paged/vendor/react.js +21495 -0
  110. data/{vendor/assets/javascripts → entry_types/paged/vendor/assets/javascripts/pageflow_paged/vendor}/dash.all.min.js +0 -0
  111. data/{vendor/assets/javascripts → entry_types/paged/vendor/assets/javascripts/pageflow_paged/vendor}/videojs-dash.js +0 -0
  112. data/{vendor/assets/javascripts → entry_types/paged/vendor/assets/javascripts/pageflow_paged/vendor}/videojs.js +0 -0
  113. data/entry_types/paged/vendor/assets/javascripts/production/pageflow_paged/vendor/react-server.js +24 -0
  114. data/entry_types/paged/vendor/assets/javascripts/production/pageflow_paged/vendor/react.js +24 -0
  115. data/entry_types/scrolled/app/assets/javascripts/pageflow_scrolled/legacy.js +0 -0
  116. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
  117. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +14 -4
  118. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
  119. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +10 -0
  120. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +7 -0
  121. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +2 -0
  122. data/entry_types/scrolled/app/helpers/pageflow_scrolled/favicon_helper.rb +21 -0
  123. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +40 -0
  124. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +36 -0
  125. data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +3 -9
  126. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +37 -2
  127. data/entry_types/scrolled/app/models/pageflow_scrolled/section.rb +3 -9
  128. data/entry_types/scrolled/app/models/pageflow_scrolled/storyline.rb +1 -9
  129. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/content_elements/batch.json.jbuilder +2 -0
  130. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -7
  131. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/_global_notices.html.erb +10 -0
  132. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +28 -11
  133. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +3 -0
  134. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +8 -0
  135. data/entry_types/scrolled/app/views/pageflow_scrolled/favicons/_entry.html.erb +10 -0
  136. data/entry_types/scrolled/config/initializers/help_entries.rb +16 -0
  137. data/entry_types/scrolled/config/locales/de.yml +669 -0
  138. data/entry_types/scrolled/config/locales/en.yml +488 -0
  139. data/entry_types/scrolled/config/routes.rb +1 -0
  140. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +76 -6
  141. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/android-chrome-192x192.png +0 -0
  142. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/android-chrome-512x512.png +0 -0
  143. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/apple-touch-icon.png +0 -0
  144. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/browserconfig.xml +9 -0
  145. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/favicon-16x16.png +0 -0
  146. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/favicon-32x32.png +0 -0
  147. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/favicon.ico +0 -0
  148. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/mstile-150x150.png +0 -0
  149. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/safari-pinned-tab.svg +46 -0
  150. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/favicons/site.webmanifest +19 -0
  151. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDesktop.svg +56 -0
  152. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoMobile.svg +22 -0
  153. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/unmute.mp3 +0 -0
  154. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/themes_plugin.rb.tt +26 -0
  155. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +6 -0
  156. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +3 -1
  157. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +90 -30
  158. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/create_bundle_symlinks_for_yarn.rake +33 -0
  159. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +8 -0
  160. data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +173 -0
  161. data/entry_types/scrolled/package/config/webpack.js +11 -0
  162. data/entry_types/scrolled/package/contentElements-editor.js +316 -185
  163. data/entry_types/scrolled/package/contentElements-frontend.css +1 -0
  164. data/entry_types/scrolled/package/contentElements-frontend.js +940 -304
  165. data/entry_types/scrolled/package/editor.js +2930 -371
  166. data/entry_types/scrolled/package/frontend-server.js +228 -0
  167. data/entry_types/scrolled/package/frontend/EditableText-7093fd0e.js +1071 -0
  168. data/entry_types/scrolled/package/frontend/Viewer-e49e7807.js +387 -0
  169. data/entry_types/scrolled/package/frontend/Wavesurfer-0adf5667.js +375 -0
  170. data/entry_types/scrolled/package/frontend/components-6a6793ca.js +2534 -0
  171. data/entry_types/scrolled/package/frontend/getPrototypeOf-63c7c8e8.js +86 -0
  172. data/entry_types/scrolled/package/frontend/i18n-4dc6c377.js +1092 -0
  173. data/entry_types/scrolled/package/frontend/index.css +9 -0
  174. data/entry_types/scrolled/package/frontend/index.js +5686 -0
  175. data/entry_types/scrolled/package/frontend/useBrowserFeature-91a4c29d.js +33 -0
  176. data/entry_types/scrolled/package/package.json +30 -9
  177. data/entry_types/scrolled/spec/fixtures/audio.m4a +0 -0
  178. data/entry_types/scrolled/spec/fixtures/video.mp4 +0 -0
  179. data/lib/generators/pageflow/initializer/templates/pageflow.rb +14 -9
  180. data/lib/pageflow/ability_mixin.rb +14 -2
  181. data/lib/pageflow/configuration.rb +6 -5
  182. data/lib/pageflow/entry_export_import/revision_serialization.rb +15 -13
  183. data/lib/pageflow/entry_export_import/revision_serialization/import.rb +18 -26
  184. data/lib/pageflow/entry_type_configuration.rb +2 -0
  185. data/lib/pageflow/global_config_api.rb +5 -4
  186. data/lib/pageflow/nested_revision_component.rb +49 -0
  187. data/lib/pageflow/react.rb +4 -2
  188. data/lib/pageflow/revision_component.rb +6 -2
  189. data/lib/pageflow/themes.rb +4 -0
  190. data/lib/pageflow/user_mixin.rb +2 -1
  191. data/lib/pageflow/version.rb +1 -1
  192. data/{packages/pageflow → package}/config/jest/index.js +8 -2
  193. data/{packages/pageflow → package}/config/jest/transformers/jst.js +0 -0
  194. data/{packages/pageflow → package}/config/jest/transformers/upwardBabel.js +0 -0
  195. data/{packages/pageflow → package}/config/webpack.js +7 -0
  196. data/{packages/pageflow → package}/editor.js +482 -1130
  197. data/package/frontend.js +2553 -0
  198. data/{packages/pageflow → package}/package.json +3 -0
  199. data/{packages/pageflow → package}/testHelpers.js +114 -13
  200. data/{packages/pageflow → package}/ui.js +178 -55
  201. data/spec/factories/accounts.rb +3 -1
  202. data/spec/factories/entry_templates.rb +1 -0
  203. data/spec/factories/published_entries.rb +6 -1
  204. data/spec/factories/test_revision_components.rb +4 -0
  205. metadata +95 -36
  206. data/app/assets/javascripts/pageflow/dist/frontend.js +0 -5800
  207. data/app/assets/javascripts/pageflow/videojs.js +0 -6
  208. data/config/initializers/entry_types.rb +0 -4
  209. data/entry_types/scrolled/config/locales/new/de.yml +0 -269
  210. data/entry_types/scrolled/config/locales/new/en.yml +0 -264
  211. data/entry_types/scrolled/lib/tasks/pageflow_scrolled_tasks.rake +0 -96
  212. data/entry_types/scrolled/package/frontend.js +0 -2879
  213. data/packages/pageflow/config/jest/transformers/cssModules.js +0 -1
@@ -1,14 +1,32 @@
1
+ import { ConfigurationEditorTabView, SelectInputView, TextInputView, cssModulesUtils, SortableCollectionView, Object as Object$1, TextAreaInputView, CheckBoxInputView, SliderInputView, inputView } from 'pageflow/ui';
1
2
  import * as globalInterop from 'pageflow/editor';
2
- import { configurationContainer, delayedDestroying, entryTypeEditorControllerUrls, failureTracking, ForeignKeySubsetCollection, orderedCollection, Configuration, editor as editor$1, Entry, modelLifecycleTrackingView, EditConfigurationView, FileInputView, ColorInputView, CollectionView, BackButtonDecoratorView } from 'pageflow/editor';
3
+ import { editor as editor$1, configurationContainer, delayedDestroying, entryTypeEditorControllerUrls, failureTracking, ForeignKeySubsetCollection, orderedCollection, Configuration, Entry, modelLifecycleTrackingView, CollectionView, app, EditConfigurationView, cssModulesUtils as cssModulesUtils$1, FileInputView, ColorInputView } from 'pageflow/editor';
4
+ import I18n, { t } from 'i18n-js';
3
5
  import Backbone$1 from 'backbone';
4
6
  import Marionette from 'backbone.marionette';
5
- import I18n from 'i18n-js';
6
- import { cssModulesUtils, SortableCollectionView, ConfigurationEditorTabView, SelectInputView, TextInputView, TextAreaInputView, CheckBoxInputView } from 'pageflow/ui';
7
7
  import React from 'react';
8
8
  import ReactDOM from 'react-dom';
9
- import { SectionThumbnail } from 'pageflow-scrolled/frontend';
9
+ import { createContext } from 'use-context-selector';
10
+ import { createSelectorCreator, defaultMemoize } from 'reselect';
11
+ import 'slugify';
12
+ import { SectionThumbnail, getAvailableTransitionNames, getTransitionNames } from 'pageflow-scrolled/frontend';
10
13
  import $ from 'jquery';
11
14
  import { editor as editor$2 } from 'pageflow-scrolled/editor';
15
+ import _ from 'underscore';
16
+ import { browser } from 'pageflow/frontend';
17
+
18
+ ConfigurationEditorTabView.groups.define('ContentElementPosition', function () {
19
+ var contentElement = this.model.parent;
20
+ this.input('position', SelectInputView, {
21
+ attributeTranslationKeyPrefixes: ['pageflow_scrolled.editor.common_content_element_attributes'],
22
+ values: contentElement.getAvailablePositions()
23
+ });
24
+ });
25
+ ConfigurationEditorTabView.groups.define('ContentElementCaption', function () {
26
+ this.input('caption', TextInputView, {
27
+ attributeTranslationKeyPrefixes: ['pageflow_scrolled.editor.common_content_element_attributes']
28
+ });
29
+ });
12
30
 
13
31
  function _defineProperty(obj, key, value) {
14
32
  if (key in obj) {
@@ -25,9 +43,270 @@ function _defineProperty(obj, key, value) {
25
43
  return obj;
26
44
  }
27
45
 
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
46
+ function ownKeys(object, enumerableOnly) {
47
+ var keys = Object.keys(object);
48
+
49
+ if (Object.getOwnPropertySymbols) {
50
+ var symbols = Object.getOwnPropertySymbols(object);
51
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
52
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
+ });
54
+ keys.push.apply(keys, symbols);
55
+ }
56
+
57
+ return keys;
58
+ }
59
+
60
+ function _objectSpread2(target) {
61
+ for (var i = 1; i < arguments.length; i++) {
62
+ var source = arguments[i] != null ? arguments[i] : {};
63
+
64
+ if (i % 2) {
65
+ ownKeys(Object(source), true).forEach(function (key) {
66
+ _defineProperty(target, key, source[key]);
67
+ });
68
+ } else if (Object.getOwnPropertyDescriptors) {
69
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
70
+ } else {
71
+ ownKeys(Object(source)).forEach(function (key) {
72
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
73
+ });
74
+ }
75
+ }
76
+
77
+ return target;
78
+ }
79
+
80
+ function _arrayWithHoles(arr) {
81
+ if (Array.isArray(arr)) return arr;
82
+ }
83
+
84
+ function _iterableToArrayLimit(arr, i) {
85
+ if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
86
+ var _arr = [];
87
+ var _n = true;
88
+ var _d = false;
89
+ var _e = undefined;
90
+
91
+ try {
92
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
93
+ _arr.push(_s.value);
94
+
95
+ if (i && _arr.length === i) break;
96
+ }
97
+ } catch (err) {
98
+ _d = true;
99
+ _e = err;
100
+ } finally {
101
+ try {
102
+ if (!_n && _i["return"] != null) _i["return"]();
103
+ } finally {
104
+ if (_d) throw _e;
105
+ }
106
+ }
107
+
108
+ return _arr;
109
+ }
110
+
111
+ function _arrayLikeToArray(arr, len) {
112
+ if (len == null || len > arr.length) len = arr.length;
113
+
114
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
115
+ arr2[i] = arr[i];
116
+ }
117
+
118
+ return arr2;
119
+ }
120
+
121
+ function _unsupportedIterableToArray(o, minLen) {
122
+ if (!o) return;
123
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
124
+ var n = Object.prototype.toString.call(o).slice(8, -1);
125
+ if (n === "Object" && o.constructor) n = o.constructor.name;
126
+ if (n === "Map" || n === "Set") return Array.from(n);
127
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
128
+ }
129
+
130
+ function _nonIterableRest() {
131
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
132
+ }
133
+
134
+ function _slicedToArray(arr, i) {
135
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
136
+ }
137
+
138
+ function _classCallCheck(instance, Constructor) {
139
+ if (!(instance instanceof Constructor)) {
140
+ throw new TypeError("Cannot call a class as a function");
141
+ }
142
+ }
143
+
144
+ function _defineProperties(target, props) {
145
+ for (var i = 0; i < props.length; i++) {
146
+ var descriptor = props[i];
147
+ descriptor.enumerable = descriptor.enumerable || false;
148
+ descriptor.configurable = true;
149
+ if ("value" in descriptor) descriptor.writable = true;
150
+ Object.defineProperty(target, descriptor.key, descriptor);
151
+ }
152
+ }
153
+
154
+ function _createClass(Constructor, protoProps, staticProps) {
155
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
156
+ if (staticProps) _defineProperties(Constructor, staticProps);
157
+ return Constructor;
158
+ }
159
+
160
+ /**
161
+ * Integrate new content types into the editor.
162
+ * @name editor_contentElementTypes
163
+ */
164
+
165
+ var ContentElementTypeRegistry =
166
+ /*#__PURE__*/
167
+ function () {
168
+ function ContentElementTypeRegistry() {
169
+ _classCallCheck(this, ContentElementTypeRegistry);
170
+
171
+ this.contentElementTypes = {};
172
+ }
173
+ /**
174
+ * Register a new type of content element in the editor.
175
+ *
176
+ * @param {string} typeName - Name of the content element type.
177
+ * @param {Object} options
178
+ * @param {Function} options.configurationEditor -
179
+ * Function that is evaluated in the context of a
180
+ * `ConfigurationEditorView` (see `pageflow/ui`) which will
181
+ * be used to edit the configuration of content elements of
182
+ * this type. Receives an options object with an `entry`
183
+ * property containing the entry model.
184
+ * @param {Object} options.defaultConfig -
185
+ * Object that is set as initial config for the content element.
186
+ * @param {Function} [options.split] -
187
+ * Function that receives configuration attributes and a split point
188
+ * and needs to return a two element array of configuration attributes
189
+ * objects representing the content elements that arise from splitting
190
+ * a content element with the given configuration at the specified
191
+ * split point. Called when inserting content elements at custom split
192
+ * points.
193
+ * @param {Function} [options.merge] -
194
+ * Function that receives two configuration attributes objects and
195
+ * needs to return a single merged configuration. If provided, this
196
+ * will function will be called whenever two content elements of this
197
+ * type become adjacent because a common neighbor has been deleted.
198
+ * @param {string[]} [options.supportedPositions] -
199
+ * Pass array containing a subset of the positions `left`, `right`,
200
+ * `sticky`, `full` and `inline`. When inserting a content element
201
+ * next to a `sticky`, `left` or `right` positioned sibling, only
202
+ * types supporting this position will be offered in the type
203
+ * selection dialog. By default all positions are supported.
204
+ * @memberof editor_contentElementTypes
205
+ *
206
+ * @example
207
+ *
208
+ * // editor.js
209
+ * editor.contentElementTypes.register('inlineImage', {
210
+ * configurationEditor() {
211
+ * this.tab('general', function() {
212
+ * this.input('caption', TextInputView);
213
+ * });
214
+ * }
215
+ * });
216
+ */
217
+
218
+
219
+ _createClass(ContentElementTypeRegistry, [{
220
+ key: "register",
221
+ value: function register(typeName, options) {
222
+ this.contentElementTypes[typeName] = options;
223
+ }
224
+ }, {
225
+ key: "setupConfigurationEditor",
226
+ value: function setupConfigurationEditor(typeName, configurationEditorView, options) {
227
+ return this.findByTypeName(typeName).configurationEditor.call(configurationEditorView, options);
228
+ }
229
+ }, {
230
+ key: "findByTypeName",
231
+ value: function findByTypeName(typeName) {
232
+ if (!this.contentElementTypes[typeName]) {
233
+ throw new Error("Unknown content element type ".concat(typeName));
234
+ }
235
+
236
+ return this.contentElementTypes[typeName];
237
+ }
238
+ }, {
239
+ key: "getSupported",
240
+ value: function getSupported(entry, insertOptions) {
241
+ var _getSiblings = getSiblings(entry, insertOptions),
242
+ _getSiblings2 = _slicedToArray(_getSiblings, 2),
243
+ sibling = _getSiblings2[0],
244
+ otherSibling = _getSiblings2[1];
245
+
246
+ var position = sibling ? sibling.getDefaultSiblingPosition() : 'inline';
247
+ return this.toArray().filter(function (type) {
248
+ if (type.supportedPositions && !type.supportedPositions.includes(position)) {
249
+ return false;
250
+ }
251
+
252
+ if (canBeMerged(type, sibling) || canBeMerged(type, otherSibling)) {
253
+ return false;
254
+ }
255
+
256
+ return true;
257
+ });
258
+ }
259
+ }, {
260
+ key: "toArray",
261
+ value: function toArray() {
262
+ var _this = this;
263
+
264
+ return Object.keys(this.contentElementTypes).map(function (typeName) {
265
+ return _objectSpread2(_objectSpread2({}, _this.contentElementTypes[typeName]), {}, {
266
+ typeName: typeName,
267
+ displayName: I18n.t("pageflow_scrolled.editor.content_elements.".concat(typeName, ".name"))
268
+ });
269
+ });
270
+ }
271
+ }]);
272
+
273
+ return ContentElementTypeRegistry;
274
+ }();
275
+
276
+ function getSiblings(entry, insertOptions) {
277
+ if (insertOptions.at === 'endOfSection') {
278
+ return [undefined, entry.sections.get(insertOptions.id).contentElements.last()];
279
+ }
280
+
281
+ var sibling = entry.contentElements.get(insertOptions.id);
282
+ var otherSibling = getOtherSibling(sibling, insertOptions);
283
+ return [sibling, otherSibling];
284
+ }
285
+
286
+ function canBeMerged(type, sibling) {
287
+ return type.merge && sibling && sibling.get('typeName') === type.typeName;
288
+ }
289
+
290
+ function getOtherSibling(sibling, insertOptions) {
291
+ var _sibling$getAdjacentC = sibling.getAdjacentContentElements(),
292
+ _sibling$getAdjacentC2 = _slicedToArray(_sibling$getAdjacentC, 2),
293
+ before = _sibling$getAdjacentC2[0],
294
+ after = _sibling$getAdjacentC2[1];
295
+
296
+ if (insertOptions.at === 'before') {
297
+ return before;
298
+ } else if (insertOptions.at === 'after') {
299
+ return after;
300
+ }
301
+ }
302
+
303
+ function extend(api) {
304
+ return Object.assign(api, {
305
+ contentElementTypes: new ContentElementTypeRegistry()
306
+ });
307
+ }
308
+ var editor = extend(editor$1);
29
309
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
31
310
  var Chapter = Backbone$1.Model.extend({
32
311
  mixins: [configurationContainer({
33
312
  autoSave: true,
@@ -40,23 +319,28 @@ var Chapter = Backbone$1.Model.extend({
40
319
  parent: options.sections,
41
320
  parentModel: this,
42
321
  foreignKeyAttribute: 'chapterId',
43
- parentReferenceAttribute: 'chapter'
322
+ parentReferenceAttribute: 'chapter',
323
+ autoConsolidatePositions: false
44
324
  });
45
325
  this.entry = options.entry;
46
326
  },
47
327
  addSection: function addSection(attributes) {
48
- var section = this.sections.create(_objectSpread({
328
+ var _this = this;
329
+
330
+ var section = this.sections.create(_objectSpread2({
49
331
  position: this.sections.length,
50
332
  chapterId: this.id
51
333
  }, attributes), {
52
334
  contentElements: this.entry.contentElements
53
335
  });
54
336
  section.once('sync', function () {
337
+ _this.entry.trigger('selectSectionSettings', section);
338
+
339
+ _this.entry.trigger('scrollToSection', section);
340
+
55
341
  section.contentElements.create({
56
- typeName: 'heading',
57
- configuration: {
58
- children: 'Neuer Abschnitt'
59
- }
342
+ typeName: 'textBlock',
343
+ configuration: {}
60
344
  });
61
345
  });
62
346
  }
@@ -75,40 +359,82 @@ var ChaptersCollection = Backbone$1.Collection.extend({
75
359
  var SectionConfiguration = Configuration.extend({
76
360
  defaults: {
77
361
  transition: 'scroll',
78
- backdrop: {
79
- image: '#fff'
80
- }
362
+ fullHeight: true,
363
+ exposeMotifArea: true,
364
+ backdrop: {}
81
365
  },
82
- get: function get(name) {
83
- if (name === 'backdropImage') {
84
- return this.attributes.backdrop && this.attributes.backdrop.image;
85
- }
86
-
87
- if (name === 'backdropType') {
88
- return Configuration.prototype.get.apply(this, arguments) || (this.attributes.backdrop && this.attributes.backdrop.image.toString().startsWith('#') ? 'color' : 'image');
366
+ initialize: function initialize() {
367
+ Configuration.prototype.initialize.apply(this, arguments);
368
+ this.attributes = _objectSpread2(_objectSpread2({}, this.getAttributesFromBackdropAttribute()), this.attributes);
369
+ },
370
+ getAttributesFromBackdropAttribute: function getAttributesFromBackdropAttribute() {
371
+ var backdrop = this.attributes.backdrop || {};
372
+
373
+ if (backdrop.image && backdrop.image.toString().startsWith('#')) {
374
+ return {
375
+ backdropType: 'color',
376
+ backdropColor: backdrop.image
377
+ };
378
+ } else if (backdrop.color) {
379
+ return {
380
+ backdropType: 'color',
381
+ backdropColor: backdrop.color
382
+ };
383
+ } else if (backdrop.video) {
384
+ return {
385
+ backdropType: 'video',
386
+ backdropVideo: backdrop.video
387
+ };
388
+ } else {
389
+ return {
390
+ backdropType: 'image',
391
+ backdropImage: backdrop.image,
392
+ backdropImageMobile: backdrop.imageMobile
393
+ };
89
394
  }
90
-
91
- return Configuration.prototype.get.apply(this, arguments);
92
395
  },
93
396
  set: function set(name, value) {
94
- if (name === 'backdropImage' && value) {
95
- this.set('backdrop', {
96
- image: value
97
- });
397
+ if (name !== 'backdrop' && name.startsWith && name.startsWith('backdrop')) {
398
+ Configuration.prototype.set.call(this, _defineProperty({
399
+ backdrop: this.getBackdropAttribute(_objectSpread2(_objectSpread2({}, this.attributes), {}, _defineProperty({}, name, value)))
400
+ }, name, value));
401
+ } else {
402
+ Configuration.prototype.set.apply(this, arguments);
98
403
  }
404
+ },
405
+ getBackdropAttribute: function getBackdropAttribute(nextAttributes) {
406
+ switch (nextAttributes.backdropType) {
407
+ case 'color':
408
+ return {
409
+ color: nextAttributes.backdropColor
410
+ };
411
+
412
+ case 'video':
413
+ return {
414
+ video: nextAttributes.backdropVideo,
415
+ videoMotifArea: nextAttributes.backdropVideoMotifArea
416
+ };
99
417
 
100
- return Configuration.prototype.set.apply(this, arguments);
418
+ default:
419
+ return {
420
+ image: nextAttributes.backdropImage,
421
+ imageMotifArea: nextAttributes.backdropImageMotifArea,
422
+ imageMobile: nextAttributes.backdropImageMobile,
423
+ imageMobileMotifArea: nextAttributes.backdropImageMobileMotifArea
424
+ };
425
+ }
101
426
  }
102
427
  });
103
428
  var FileSelectionHandler = function FileSelectionHandler(options) {
104
- var contentElement = options.entry.sections.get(options.id);
429
+ var section = options.entry.sections.get(options.id);
105
430
 
106
431
  this.call = function (file) {
107
- contentElement.configuration.setReference(options.attributeName, file);
432
+ section.configuration.setReference(options.attributeName, file);
433
+ section.configuration.set("".concat(options.attributeName, "MotifArea"), file.configuration.get('motifArea'));
108
434
  };
109
435
 
110
436
  this.getReferer = function () {
111
- return '/scrolled/sections/' + contentElement.id;
437
+ return '/scrolled/sections/' + section.id;
112
438
  };
113
439
  };
114
440
  editor$1.registerFileSelectionHandler('sectionConfiguration', FileSelectionHandler);
@@ -126,7 +452,8 @@ var Section = Backbone$1.Model.extend({
126
452
  parent: options.contentElements,
127
453
  parentModel: this,
128
454
  foreignKeyAttribute: 'sectionId',
129
- parentReferenceAttribute: 'section'
455
+ parentReferenceAttribute: 'section',
456
+ autoConsolidatePositions: false
130
457
  });
131
458
  },
132
459
  chapterPosition: function chapterPosition() {
@@ -161,7 +488,53 @@ var ContentElement = Backbone$1.Model.extend({
161
488
  includeAttributesInJSON: ['position', 'typeName']
162
489
  }), delayedDestroying, entryTypeEditorControllerUrls.forModel({
163
490
  resources: 'content_elements'
164
- }), failureTracking]
491
+ }), failureTracking],
492
+ getType: function getType(contentElement) {
493
+ return editor.contentElementTypes.findByTypeName(this.get('typeName'));
494
+ },
495
+ postCommand: function postCommand(command) {
496
+ this.trigger('postCommand', this.id, command);
497
+ },
498
+ getAdjacentContentElements: function getAdjacentContentElements() {
499
+ var section = this.section;
500
+ var index = section.contentElements.indexOf(this);
501
+ return [section.contentElements.at(index - 1), section.contentElements.at(index + 1)];
502
+ },
503
+ applyDefaultConfiguration: function applyDefaultConfiguration(sibling) {
504
+ var defaultConfig = _objectSpread2({}, this.getType().defaultConfig);
505
+
506
+ var defaultPosition = sibling === null || sibling === void 0 ? void 0 : sibling.getDefaultSiblingPosition();
507
+
508
+ if (defaultPosition && defaultPosition !== 'inline') {
509
+ defaultConfig.position = defaultPosition;
510
+ }
511
+
512
+ this.configuration.set(defaultConfig);
513
+ },
514
+ getPosition: function getPosition() {
515
+ return this.configuration.get('position') || 'inline';
516
+ },
517
+ getAvailablePositions: function getAvailablePositions() {
518
+ var supportedByLayout = this.section.configuration.get('layout') === 'center' ? ['inline', 'left', 'right', 'wide', 'full'] : ['inline', 'sticky', 'wide', 'full'];
519
+ var supportedByType = this.getType().supportedPositions;
520
+
521
+ if (supportedByType) {
522
+ return supportedByLayout.filter(function (position) {
523
+ return supportedByType.includes(position);
524
+ });
525
+ } else {
526
+ return supportedByLayout;
527
+ }
528
+ },
529
+ getDefaultSiblingPosition: function getDefaultSiblingPosition() {
530
+ var position = this.getPosition();
531
+
532
+ if (position === 'full') {
533
+ return 'inline';
534
+ }
535
+
536
+ return position;
537
+ }
165
538
  });
166
539
 
167
540
  var ContentElementsCollection = Backbone$1.Collection.extend({
@@ -172,99 +545,513 @@ var ContentElementsCollection = Backbone$1.Collection.extend({
172
545
  comparator: 'position'
173
546
  });
174
547
 
175
- function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
548
+ function _arrayWithoutHoles(arr) {
549
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
550
+ }
176
551
 
177
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
178
- var ScrolledEntry = Entry.extend({
179
- setupFromEntryTypeSeed: function setupFromEntryTypeSeed(seed) {
180
- this.contentElements = new ContentElementsCollection(seed.collections.contentElements);
181
- this.sections = new SectionsCollection(seed.collections.sections, {
182
- contentElements: this.contentElements
183
- });
184
- this.chapters = new ChaptersCollection(seed.collections.chapters, {
185
- sections: this.sections,
186
- entry: this
187
- });
188
- this.chapters.parentModel = this;
189
- this.sections.sort();
190
- editor$1.failures.watch(this.contentElements);
191
- editor$1.failures.watch(this.sections);
192
- editor$1.failures.watch(this.chapters);
193
- editor$1.savingRecords.watch(this.contentElements);
194
- editor$1.savingRecords.watch(this.sections);
195
- editor$1.savingRecords.watch(this.chapters);
196
- this.scrolledSeed = seed;
197
- },
198
- addChapter: function addChapter(attributes) {
199
- this.chapters.create(_objectSpread$1({
200
- position: this.chapters.length
201
- }, attributes), {
202
- entry: this,
203
- sections: this.sections
204
- });
205
- },
206
- insertContentElement: function insertContentElement(attributes, _ref, defaultConfig) {
207
- var _this = this;
552
+ function _iterableToArray(iter) {
553
+ if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
554
+ }
208
555
 
209
- var position = _ref.position,
210
- id = _ref.id;
211
- var sibling = this.contentElements.get(id);
212
- var section = sibling.section;
213
- defaultConfig = defaultConfig || {};
214
- var delta = 0;
215
- section.contentElements.each(function (contentElement, index) {
216
- if (contentElement === sibling && position === 'before') {
217
- delta = 1;
218
- }
556
+ function _nonIterableSpread() {
557
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
558
+ }
219
559
 
220
- contentElement.set('position', index + delta);
560
+ function _toConsumableArray(arr) {
561
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
562
+ }
221
563
 
222
- if (contentElement === sibling && position === 'after') {
223
- delta = 1;
224
- }
225
- });
226
- var newContentElement = section.contentElements.create(_objectSpread$1({
227
- position: sibling.get('position') + (position === 'before' ? -1 : 1)
228
- }, attributes, {
229
- configuration: _objectSpread$1({}, defaultConfig, {
230
- position: sibling.configuration.get('position')
231
- })
232
- }));
233
- section.contentElements.sort();
234
- newContentElement.once('sync', function () {
235
- section.contentElements.saveOrder();
564
+ // persisting the changes to the server in a single request and
565
+ // applying them to the section once the requests succeeds.
566
+
567
+ function Batch(entry, section) {
568
+ // Shallow copy of the section's list of content elements to store
569
+ // ordering changes and newly inserted content elements.
570
+ var contentElements = section.contentElements.toArray(); // Since contentElements is only a shallow copy, we cannot write
571
+ // configuration changes to the actual content elements.
572
+
573
+ var changedConfigurations = {}; // Content elements that have been removed from contentElements
574
+ // and shall be deleted on the server.
575
+
576
+ var markedForDeletion = []; // Track whether changes have been recorded which need to be
577
+ // persisted to the server.
578
+
579
+ var isDirty = false;
580
+ return {
581
+ getAdjacent: getAdjacent,
582
+ split: split,
583
+ maybeMerge: maybeMerge,
584
+ insertBefore: insertBefore,
585
+ insertAfter: insertAfter,
586
+ markForUpdate: markForUpdate,
587
+ markForDeletion: markForDeletion,
588
+ remove: remove,
589
+ save: save,
590
+ saveIfDirty: saveIfDirty
591
+ };
236
592
 
237
- _this.trigger('selectContentElement', newContentElement);
238
- });
239
- }
240
- });
593
+ function getAdjacent(contentElement) {
594
+ var index = contentElements.indexOf(contentElement);
595
+ return [contentElements[index - 1], contentElements[index + 1]];
596
+ } // Higher level transformations based on the more low level
597
+ // transformations below:
241
598
 
242
- var ContentElementFileSelectionHandler = function ContentElementFileSelectionHandler(options) {
243
- var contentElement = options.entry.contentElements.get(options.id);
244
599
 
245
- this.call = function (file) {
246
- contentElement.configuration.setReference(options.attributeName, file);
247
- };
600
+ function split(contentElement, splitPoint) {
601
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
602
+ insertAt = _ref.insertAt;
248
603
 
249
- this.getReferer = function () {
250
- return '/scrolled/content_elements/' + contentElement.id;
251
- };
252
- };
604
+ var _contentElement$getTy = contentElement.getType().split(getCurrentConfiguration(contentElement), splitPoint),
605
+ _contentElement$getTy2 = _slicedToArray(_contentElement$getTy, 2),
606
+ c1 = _contentElement$getTy2[0],
607
+ c2 = _contentElement$getTy2[1];
253
608
 
254
- var PREFIX = 'PAGEFLOW_SCROLLED_COLLECTION';
255
- var RESET = "".concat(PREFIX, "_RESET");
256
- var ADD = "".concat(PREFIX, "_ADD");
257
- var CHANGE = "".concat(PREFIX, "_CHANGE");
258
- var REMOVE = "".concat(PREFIX, "_REMOVE");
259
- var SORT = "".concat(PREFIX, "_SORT");
609
+ var splitOffContentElement;
610
+
611
+ if (insertAt === 'before') {
612
+ splitOffContentElement = new ContentElement({
613
+ typeName: contentElement.get('typeName'),
614
+ configuration: c1
615
+ });
616
+ insertBefore(contentElement, splitOffContentElement);
617
+ markForUpdate(contentElement, c2);
618
+ } else {
619
+ splitOffContentElement = new ContentElement({
620
+ typeName: contentElement.get('typeName'),
621
+ configuration: c2
622
+ });
623
+ markForUpdate(contentElement, c1);
624
+ insertAfter(contentElement, splitOffContentElement);
625
+ }
626
+
627
+ return splitOffContentElement;
628
+ }
629
+
630
+ function maybeMerge(before, after) {
631
+ if (!before || !after || before.get('typeName') !== after.get('typeName') || !before.getType().merge) {
632
+ return;
633
+ }
634
+
635
+ var mergedConfiguration = before.getType().merge(getCurrentConfiguration(before), getCurrentConfiguration(after)); // Update the aleady persisted content element, if one has not yet
636
+ // been persisted. For example, let X be a content element in
637
+ // between two text blocks T1 and T2:
638
+ //
639
+ // T1
640
+ // paragraph A
641
+ // paragraph B
642
+ // X
643
+ // T2
644
+ // paragraph C
645
+ //
646
+ // When X shall be moved between the two paragraphs of T1, the
647
+ // second paragraph of T1 will first be split off into a new
648
+ // content element T3:
649
+ //
650
+ // T1
651
+ // paragraph A
652
+ // T3
653
+ // paragraph B
654
+ // X
655
+ // T2
656
+ // paragraph C
657
+ //
658
+ // Then X will be moved:
659
+ //
660
+ // T1
661
+ // paragraph A
662
+ // X
663
+ // T3
664
+ // paragraph B
665
+ // T2
666
+ // paragraph C
667
+ //
668
+ // T3 and T2 become adjacent and need to be merged. We now want to
669
+ // update T2 instead of creating T3 and deleting T2. Final state:
670
+ //
671
+ // T1
672
+ // paragraph A
673
+ // X
674
+ // T2
675
+ // paragraph B
676
+ // paragraph C
677
+ //
678
+
679
+ if (before.isNew() && !after.isNew()) {
680
+ remove(before);
681
+ markForUpdate(after, mergedConfiguration);
682
+ } else {
683
+ markForUpdate(before, mergedConfiguration);
684
+ remove(after);
685
+
686
+ if (!after.isNew()) {
687
+ markForDeletion(after);
688
+ }
689
+ }
690
+ }
691
+
692
+ function insertBefore(sibling, contentElement) {
693
+ isDirty = true;
694
+ contentElements.splice(contentElements.indexOf(sibling), 0, contentElement);
695
+ }
696
+
697
+ function insertAfter(sibling, contentElement) {
698
+ isDirty = true;
699
+ contentElements.splice(contentElements.indexOf(sibling) + 1, 0, contentElement);
700
+ }
701
+
702
+ function markForUpdate(contentElement, configuration) {
703
+ isDirty = true;
704
+ changedConfigurations[contentElement.id] = configuration;
705
+ }
706
+
707
+ function markForDeletion(contentElement) {
708
+ isDirty = true;
709
+ markedForDeletion.push(contentElement);
710
+ }
711
+
712
+ function remove(contentElement) {
713
+ // We do not mark the batch as dirty here to allow removing an
714
+ // element and adding it to another section. We are fine with
715
+ // the resulting gap in the position attributes of the section's
716
+ // content elements.
717
+ contentElements.splice(contentElements.indexOf(contentElement), 1);
718
+ }
719
+
720
+ function getCurrentConfiguration(contentElement) {
721
+ return changedConfigurations[contentElement.id] || contentElement.configuration.attributes;
722
+ } // Functionality to assemble and perform the batch request to
723
+ // persist the recorded changes:
724
+
725
+
726
+ function saveIfDirty(options) {
727
+ if (isDirty) {
728
+ save(options);
729
+ }
730
+ }
731
+
732
+ function save() {
733
+ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
734
+ _success = _ref2.success;
735
+
736
+ isDirty = false;
737
+ Backbone$1.sync('update', section, {
738
+ url: "".concat(section.url(), "/content_elements/batch"),
739
+ attrs: {
740
+ content_elements: createBatchItems()
741
+ },
742
+ success: function success(response) {
743
+ applyConfigurationChanges();
744
+ applyPositions();
745
+ applyAdditions(response);
746
+ applyDeletions();
747
+ section.contentElements.sort();
748
+
749
+ if (_success) {
750
+ _success();
751
+ }
752
+ }
753
+ });
754
+ }
755
+
756
+ function createBatchItems() {
757
+ return [].concat(_toConsumableArray(contentElements.map(function (contentElement) {
758
+ if (contentElement.isNew()) {
759
+ return {
760
+ typeName: contentElement.get('typeName'),
761
+ configuration: contentElement.configuration.attributes
762
+ };
763
+ } else if (changedConfigurations[contentElement.id]) {
764
+ return {
765
+ id: contentElement.id,
766
+ configuration: changedConfigurations[contentElement.id]
767
+ };
768
+ } else {
769
+ return contentElement.pick('id');
770
+ }
771
+ })), _toConsumableArray(markedForDeletion.map(function (contentElement) {
772
+ return {
773
+ id: contentElement.id,
774
+ _delete: true
775
+ };
776
+ })));
777
+ } // Functionality to apply the recorded changes to the underlying
778
+ // section once the request succeeded:
779
+
780
+
781
+ function applyAdditions(response) {
782
+ contentElements.forEach(function (contentElement, index) {
783
+ if (contentElement.isNew()) {
784
+ section.contentElements.add(contentElement);
785
+ contentElement.set({
786
+ id: response[index].id,
787
+ permaId: response[index].permaId
788
+ });
789
+ } else if (contentElement.section !== section) {
790
+ contentElement.section.contentElements.remove(contentElement);
791
+ section.contentElements.add(contentElement);
792
+ }
793
+ });
794
+ }
795
+
796
+ function applyDeletions() {
797
+ markedForDeletion.forEach(function (contentElement) {
798
+ return entry.contentElements.remove(contentElement);
799
+ });
800
+ }
801
+
802
+ function applyPositions() {
803
+ contentElements.forEach(function (contentElement, index) {
804
+ return contentElement.set('position', index, {
805
+ autoSave: false
806
+ });
807
+ });
808
+ }
809
+
810
+ function applyConfigurationChanges() {
811
+ contentElements.forEach(function (contentElement) {
812
+ if (changedConfigurations[contentElement.id]) {
813
+ contentElement.configuration.set(changedConfigurations[contentElement.id], {
814
+ autoSave: false
815
+ });
816
+ }
817
+ });
818
+ }
819
+ }
820
+
821
+ // element (e.g. between two paragraphs of a text block).
822
+
823
+ function insertContentElement(entry, sibling, attributes, _ref) {
824
+ var at = _ref.at,
825
+ splitPoint = _ref.splitPoint;
826
+ var batch = new Batch(entry, sibling.section);
827
+
828
+ if (at === 'split') {
829
+ batch.split(sibling, splitPoint, {
830
+ insertAt: 'after'
831
+ });
832
+ }
833
+
834
+ var contentElement = new ContentElement(attributes);
835
+ contentElement.applyDefaultConfiguration(sibling);
836
+
837
+ if (at === 'before') {
838
+ batch.insertBefore(sibling, contentElement);
839
+ } else {
840
+ batch.insertAfter(sibling, contentElement);
841
+ }
842
+
843
+ batch.save({
844
+ success: function success() {
845
+ entry.trigger('selectContentElement', contentElement);
846
+ }
847
+ });
848
+ }
849
+
850
+ // moving content elements to "split points" inside content elements
851
+ // with custom split functions (e.g. between two paragraphs of a text
852
+ // block). Merge content elements of the same type that become
853
+ // adjacent by moving a content element away (e.g. two text blocks
854
+ // surrounding an image that is moved away).
855
+
856
+ function moveContentElement(entry, contentElement, sibling, at, splitPoint) {
857
+ var sourceBatch = new Batch(entry, contentElement.section); // If we move content elements between sections, merges will need to
858
+ // be performed in the section where the content element came from.
859
+
860
+ var targetBatch = sibling.section === contentElement.section ? sourceBatch : new Batch(entry, sibling.section);
861
+
862
+ if (at === 'split') {
863
+ // When moving a content element to a split point in the adjacent
864
+ // element below, insert split off element before sibling so that
865
+ // is can directly be merged again. For example, let X be a
866
+ // content element in between two text blocks T1 and T2:
867
+ //
868
+ // T1
869
+ // paragraph A
870
+ // X
871
+ // T2
872
+ // paragraph B
873
+ // paragraph C
874
+ //
875
+ // When X shall be moved between the two paragraphs of T2, we want
876
+ // to split off the first paragraph of T2 into a new content
877
+ // element T3 and move X:
878
+ //
879
+ // T1
880
+ // T1 paragraph A
881
+ // X
882
+ // T3
883
+ // T1 paragraph B
884
+ // T2
885
+ // T2 paragraph C
886
+ //
887
+ // T3 becomes the new sibling that we want to move X after:
888
+ //
889
+ // T1
890
+ // T1 paragraph A
891
+ // T3
892
+ // T1 paragraph B
893
+ // X
894
+ // T2
895
+ // T2 paragraph C
896
+ //
897
+ // When we later merge T1 and T3, T1 will be updated making T3
898
+ // disappear again without ever persisting it to the server:
899
+ //
900
+ // T1
901
+ // T1 paragraph A
902
+ // T1 paragraph B
903
+ // X
904
+ // T2
905
+ // T2 paragraph C
906
+ //
907
+ if (sourceBatch.getAdjacent(contentElement)[1] === sibling) {
908
+ sibling = targetBatch.split(sibling, splitPoint, {
909
+ insertAt: 'before'
910
+ });
911
+ } else {
912
+ targetBatch.split(sibling, splitPoint);
913
+ }
914
+ }
915
+
916
+ var _sourceBatch$getAdjac = sourceBatch.getAdjacent(contentElement),
917
+ _sourceBatch$getAdjac2 = _slicedToArray(_sourceBatch$getAdjac, 2),
918
+ before = _sourceBatch$getAdjac2[0],
919
+ after = _sourceBatch$getAdjac2[1]; // Check if element was dragged to same position where it came from.
920
+
921
+
922
+ if (!(at === 'before' && sibling === after) && !(at === 'after' && sibling === before)) {
923
+ sourceBatch.remove(contentElement);
924
+
925
+ if (at === 'before') {
926
+ targetBatch.insertBefore(sibling, contentElement);
927
+ } else {
928
+ targetBatch.insertAfter(sibling, contentElement);
929
+ }
930
+
931
+ sourceBatch.maybeMerge(before, after);
932
+ } // Dragging an element next to a sticky element, shall make the
933
+ // moved element sticky as well.
934
+
935
+
936
+ copyPositionIfAvailable(targetBatch, contentElement, sibling);
937
+ targetBatch.saveIfDirty();
938
+ sourceBatch.saveIfDirty();
939
+ }
940
+
941
+ function copyPositionIfAvailable(batch, contentElement, sibling) {
942
+ if (contentElement.getPosition() !== sibling.getPosition() && contentElement.getAvailablePositions().includes(sibling.getPosition())) {
943
+ batch.markForUpdate(contentElement, _objectSpread2(_objectSpread2({}, contentElement.configuration.toJSON), {}, {
944
+ position: sibling.getPosition()
945
+ }));
946
+ }
947
+ }
948
+
949
+ // (e.g. two text blocks surrounding a deleted image).
950
+
951
+ function deleteContentElement(entry, contentElement) {
952
+ var batch = new Batch(entry, contentElement.section);
953
+
954
+ var _batch$getAdjacent = batch.getAdjacent(contentElement),
955
+ _batch$getAdjacent2 = _slicedToArray(_batch$getAdjacent, 2),
956
+ before = _batch$getAdjacent2[0],
957
+ after = _batch$getAdjacent2[1];
958
+
959
+ batch.remove(contentElement);
960
+ batch.markForDeletion(contentElement);
961
+ batch.maybeMerge(before, after);
962
+ batch.save();
963
+ }
964
+
965
+ var ScrolledEntry = Entry.extend({
966
+ setupFromEntryTypeSeed: function setupFromEntryTypeSeed(seed) {
967
+ this.contentElements = new ContentElementsCollection(seed.collections.contentElements);
968
+ this.sections = new SectionsCollection(seed.collections.sections, {
969
+ contentElements: this.contentElements
970
+ });
971
+ this.chapters = new ChaptersCollection(seed.collections.chapters, {
972
+ sections: this.sections,
973
+ entry: this
974
+ });
975
+ this.chapters.parentModel = this;
976
+ this.sections.sort();
977
+ editor$1.failures.watch(this.contentElements);
978
+ editor$1.failures.watch(this.sections);
979
+ editor$1.failures.watch(this.chapters);
980
+ editor$1.savingRecords.watch(this.contentElements);
981
+ editor$1.savingRecords.watch(this.sections);
982
+ editor$1.savingRecords.watch(this.chapters);
983
+ this.scrolledSeed = seed;
984
+ },
985
+ addChapter: function addChapter(attributes) {
986
+ this.chapters.create(_objectSpread2({
987
+ position: this.chapters.length
988
+ }, attributes), {
989
+ entry: this,
990
+ sections: this.sections
991
+ });
992
+ },
993
+ insertContentElement: function insertContentElement$1(attributes, _ref) {
994
+ var _this = this;
260
995
 
261
- function watchCollection(collection, _ref2) {
262
- var name = _ref2.name,
263
- dispatch = _ref2.dispatch,
264
- attributes = _ref2.attributes,
265
- includeConfiguration = _ref2.includeConfiguration,
266
- _ref2$keyAttribute = _ref2.keyAttribute,
267
- keyAttribute = _ref2$keyAttribute === void 0 ? 'id' : _ref2$keyAttribute;
996
+ var id = _ref.id,
997
+ at = _ref.at,
998
+ splitPoint = _ref.splitPoint;
999
+
1000
+ if (at === 'endOfSection') {
1001
+ var contentElement = new ContentElement(_objectSpread2({
1002
+ position: this.contentElements.length
1003
+ }, attributes));
1004
+ contentElement.applyDefaultConfiguration();
1005
+ this.sections.get(id).contentElements.add(contentElement);
1006
+ contentElement.save();
1007
+ contentElement.once('sync', function () {
1008
+ _this.trigger('selectContentElement', contentElement);
1009
+ });
1010
+ } else {
1011
+ insertContentElement(this, this.contentElements.get(id), attributes, {
1012
+ id: id,
1013
+ at: at,
1014
+ splitPoint: splitPoint
1015
+ });
1016
+ }
1017
+ },
1018
+ moveContentElement: function moveContentElement$1(movedContentElementId, _ref2) {
1019
+ var id = _ref2.id,
1020
+ at = _ref2.at,
1021
+ splitPoint = _ref2.splitPoint;
1022
+
1023
+ moveContentElement(this, this.contentElements.get(movedContentElementId), this.contentElements.get(id), at, splitPoint);
1024
+ },
1025
+ deleteContentElement: function deleteContentElement$1(id) {
1026
+ deleteContentElement(this, this.contentElements.get(id));
1027
+ }
1028
+ });
1029
+
1030
+ var ContentElementFileSelectionHandler = function ContentElementFileSelectionHandler(options) {
1031
+ var contentElement = options.entry.contentElements.get(options.id);
1032
+
1033
+ this.call = function (file) {
1034
+ contentElement.configuration.setReference(options.attributeName, file);
1035
+ };
1036
+
1037
+ this.getReferer = function () {
1038
+ return '/scrolled/content_elements/' + contentElement.id;
1039
+ };
1040
+ };
1041
+
1042
+ var PREFIX = 'PAGEFLOW_SCROLLED_COLLECTION';
1043
+ var RESET = "".concat(PREFIX, "_RESET");
1044
+ var ADD = "".concat(PREFIX, "_ADD");
1045
+ var CHANGE = "".concat(PREFIX, "_CHANGE");
1046
+ var REMOVE = "".concat(PREFIX, "_REMOVE");
1047
+ var SORT = "".concat(PREFIX, "_SORT");
1048
+ function watchCollection(collection, _ref3) {
1049
+ var name = _ref3.name,
1050
+ dispatch = _ref3.dispatch,
1051
+ attributes = _ref3.attributes,
1052
+ includeConfiguration = _ref3.includeConfiguration,
1053
+ _ref3$keyAttribute = _ref3.keyAttribute,
1054
+ keyAttribute = _ref3$keyAttribute === void 0 ? 'id' : _ref3$keyAttribute;
268
1055
  var handle = {};
269
1056
  var options = {
270
1057
  attributeNames: attributes,
@@ -272,6 +1059,7 @@ function watchCollection(collection, _ref2) {
272
1059
  };
273
1060
  var tearingDown = false;
274
1061
  var watchedAttributeNames = getWatchedAttributeNames(attributes);
1062
+ var sourceKeyAttribute = findSourceAttributeName(attributes, keyAttribute);
275
1063
  dispatch({
276
1064
  type: RESET,
277
1065
  payload: {
@@ -289,14 +1077,14 @@ function watchCollection(collection, _ref2) {
289
1077
  payload: {
290
1078
  collectionName: name,
291
1079
  keyAttribute: keyAttribute,
292
- order: collection.pluck(keyAttribute),
1080
+ order: collection.pluck(sourceKeyAttribute).filter(Boolean),
293
1081
  attributes: getAttributes(model, options)
294
1082
  }
295
1083
  });
296
1084
  }
297
1085
  }, handle);
298
1086
  collection.on('change', function (model) {
299
- if (hasChangedAttributes(model, watchedAttributeNames)) {
1087
+ if (hasChangedAttributes(model, watchedAttributeNames) && !model.isNew()) {
300
1088
  dispatch({
301
1089
  type: CHANGE,
302
1090
  payload: {
@@ -309,26 +1097,31 @@ function watchCollection(collection, _ref2) {
309
1097
  }, handle);
310
1098
 
311
1099
  if (includeConfiguration) {
312
- collection.on('change:configuration', function (model) {
313
- return dispatch({
314
- type: CHANGE,
315
- payload: {
316
- collectionName: name,
317
- keyAttribute: keyAttribute,
318
- attributes: getAttributes(model, options)
319
- }
320
- });
1100
+ collection.on('change:configuration', function (model, value) {
1101
+ var _ref4 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
1102
+ ignoreInWatchCollection = _ref4.ignoreInWatchCollection;
1103
+
1104
+ if (!model.isNew() && !ignoreInWatchCollection) {
1105
+ dispatch({
1106
+ type: CHANGE,
1107
+ payload: {
1108
+ collectionName: name,
1109
+ keyAttribute: keyAttribute,
1110
+ attributes: getAttributes(model, options)
1111
+ }
1112
+ });
1113
+ }
321
1114
  }, handle);
322
1115
  }
323
1116
 
324
1117
  collection.on('remove', function (model) {
325
- if (!tearingDown) {
1118
+ if (!tearingDown && !model.isNew()) {
326
1119
  dispatch({
327
1120
  type: REMOVE,
328
1121
  payload: {
329
1122
  collectionName: name,
330
- order: collection.pluck(keyAttribute),
331
- key: model.attributes[keyAttribute]
1123
+ order: collection.pluck(sourceKeyAttribute).filter(Boolean),
1124
+ key: model.attributes[sourceKeyAttribute]
332
1125
  }
333
1126
  });
334
1127
  }
@@ -338,7 +1131,7 @@ function watchCollection(collection, _ref2) {
338
1131
  type: SORT,
339
1132
  payload: {
340
1133
  collectionName: name,
341
- order: collection.pluck(keyAttribute).filter(Boolean)
1134
+ order: collection.pluck(sourceKeyAttribute).filter(Boolean)
342
1135
  }
343
1136
  });
344
1137
  }, handle);
@@ -348,6 +1141,13 @@ function watchCollection(collection, _ref2) {
348
1141
  };
349
1142
  }
350
1143
 
1144
+ function findSourceAttributeName(attributeNames, targetAttributeName) {
1145
+ var mapping = attributeNames.find(function (attributeName) {
1146
+ return typeof attributeName === 'object' && mappedAttributeTarget(attributeName) === targetAttributeName;
1147
+ });
1148
+ return mapping ? mappedAttributeSource(mapping) : targetAttributeName;
1149
+ }
1150
+
351
1151
  function hasChangedAttributes(model, attributeNames) {
352
1152
  return attributeNames.some(function (attributeName) {
353
1153
  return model.hasChanged(attributeName);
@@ -364,16 +1164,20 @@ function mappedAttributeSource(attributeName) {
364
1164
  return attributeName[Object.keys(attributeName)[0]];
365
1165
  }
366
1166
 
367
- function getAttributes(model, _ref3) {
368
- var attributeNames = _ref3.attributeNames,
369
- includeConfiguration = _ref3.includeConfiguration;
1167
+ function mappedAttributeTarget(attributeName) {
1168
+ return Object.keys(attributeName)[0];
1169
+ }
1170
+
1171
+ function getAttributes(model, _ref5) {
1172
+ var attributeNames = _ref5.attributeNames,
1173
+ includeConfiguration = _ref5.includeConfiguration;
370
1174
  var result = attributeNames.reduce(function (result, attributeName) {
371
1175
  if (typeof attributeName == 'object') {
372
1176
  var key = Object.keys(attributeName)[0];
373
1177
  var value = attributeName[key];
374
1178
 
375
1179
  if (typeof value == 'function') {
376
- result[key] = value();
1180
+ result[key] = value(model.get(key));
377
1181
  } else {
378
1182
  result[key] = model.get(value);
379
1183
  }
@@ -385,12 +1189,19 @@ function getAttributes(model, _ref3) {
385
1189
  }, {});
386
1190
 
387
1191
  if (includeConfiguration) {
388
- result.configuration = model.configuration.attributes;
1192
+ result.configuration = _objectSpread2({}, model.configuration.attributes);
389
1193
  }
390
1194
  return result;
391
1195
  }
1196
+ var createShallowEqualArraysSelector = createSelectorCreator(defaultMemoize, shallowEqualArrays);
1197
+
1198
+ function shallowEqualArrays(a, b) {
1199
+ return a.length === b.length && a.every(function (item, index) {
1200
+ return item === b[index];
1201
+ });
1202
+ }
392
1203
 
393
- var Context = React.createContext();
1204
+ var Context = createContext();
394
1205
 
395
1206
  function watchCollections(entry, _ref) {
396
1207
  var dispatch = _ref.dispatch;
@@ -440,7 +1251,21 @@ function watchCollections(entry, _ref) {
440
1251
  name: camelize(collectionName),
441
1252
  attributes: ['id', {
442
1253
  permaId: 'perma_id'
443
- }, 'width', 'height', 'basename', 'rights'],
1254
+ }, 'width', 'height', 'basename', 'rights', {
1255
+ isReady: 'is_ready'
1256
+ }, {
1257
+ variants: function variants(_variants) {
1258
+ return _variants && _variants.map(function (variant) {
1259
+ return camelize(variant);
1260
+ });
1261
+ }
1262
+ }, {
1263
+ durationInMs: 'duration_in_ms'
1264
+ }, {
1265
+ parentFileId: 'parent_file_id'
1266
+ }, {
1267
+ parentFileModelType: 'parent_file_model_type'
1268
+ }],
444
1269
  keyAttribute: 'permaId',
445
1270
  includeConfiguration: true,
446
1271
  dispatch: dispatch
@@ -486,8 +1311,8 @@ function styleInject(css, ref) {
486
1311
  }
487
1312
  }
488
1313
 
489
- var css = ".icons-module_icon__16IVx::before {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}@keyframes animations-module_blink__32C5j {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 1;\n }\n}.animations-module_blink__32C5j {\n animation: animations-module_blink__32C5j 1.5s ease infinite;\n}.outline-module_indicator__2dw_X {\n display: none;\n position: absolute;\n right: 14px;\n top: 7px;\n width: 30px;\n height: 30px;\n font-size: 19px;\n color: #888;\n}.outline-module_creatingIndicator__3O7Rw {\n}.outline-module_destroyingIndicator__2-mKh {\n}.outline-module_failedIndicator__2QK1F {\n color: #d00;\n}\n\n.SectionItemView-module_root__1Pp0d {\n position: relative;\n border: solid 3px transparent;\n padding: 3px 3px 0 3px;\n margin-bottom: 4px;\n max-width: 270px;\n text-align: right;\n background-color: #eee;\n}\n\n.SectionItemView-module_active__1tLN5 {\n border: solid 3px #1c86fe;\n}\n\n.SectionItemView-module_thumbnailContainer__1Xe7C {\n position: relative;\n}\n\n.SectionItemView-module_thumbnail__1ecBT {\n border: solid 1px #888;\n padding-top: 50%;\n position: relative;\n text-align: initial;\n}\n\n.SectionItemView-module_clickMask__2JYEH {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n cursor: pointer;\n}\n\n.SectionItemView-module_editLink__2mHqk {\n display: inline-block;\n position: relative;\n width: 30px;\n height: 25px;\n}\n\n.SectionItemView-module_editLink__2mHqk::before {\n font-family: 'entypo';\n content: \"\\270E\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: #555;\n font-size: 15px;\n}\n\n.SectionItemView-module_creating__3Pjx9 .SectionItemView-module_creatingIndicator__1GnKq { display: block; }\n.SectionItemView-module_destroying__1m53s .SectionItemView-module_destroyingIndicator__HtKWF { display: block; }\n.SectionItemView-module_failed__1CR2R .SectionItemView-module_failedIndicator__1HVHn { display: block; }\n\n.SectionItemView-module_creatingIndicator__1GnKq { }\n.SectionItemView-module_destroyingIndicator__HtKWF { }\n.SectionItemView-module_failedIndicator__1HVHn { }\n";
490
- var styles = {"selectionColor":"#1c86fe","selectionWidth":"3px","root":"SectionItemView-module_root__1Pp0d","active":"SectionItemView-module_active__1tLN5","thumbnailContainer":"SectionItemView-module_thumbnailContainer__1Xe7C","thumbnail":"SectionItemView-module_thumbnail__1ecBT","clickMask":"SectionItemView-module_clickMask__2JYEH","editLink":"SectionItemView-module_editLink__2mHqk","creating":"SectionItemView-module_creating__3Pjx9","creatingIndicator":"SectionItemView-module_creatingIndicator__1GnKq outline-module_creatingIndicator__3O7Rw outline-module_indicator__2dw_X icons-module_arrowsCcw__3_nrJ icons-module_icon__16IVx animations-module_blink__32C5j","destroying":"SectionItemView-module_destroying__1m53s","destroyingIndicator":"SectionItemView-module_destroyingIndicator__HtKWF outline-module_destroyingIndicator__2-mKh outline-module_indicator__2dw_X icons-module_trash__DH1EH icons-module_icon__16IVx animations-module_blink__32C5j","failed":"SectionItemView-module_failed__1CR2R","failedIndicator":"SectionItemView-module_failedIndicator__1HVHn outline-module_failedIndicator__2QK1F outline-module_indicator__2dw_X icons-module_attention__1sssG icons-module_icon__16IVx"};
1314
+ var css = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAVB0lEQVR4nO1deXAc1Zn/vfe6p+eUZMvYxsbGYHwAxnaMveSEQIAssCTZTYVNNiEJqVzsEthANktcyZadpCoJm4Oq3bAH2YTNHULYEI6wsKydGEKE5UM2ljG2EbIs2ZItzYyk0Uyfb//o7pnunp7pnpmW5arVr6r1+njzju/3fd977+tDwCxmMYtZzGIWs5jFLGYxi/9vIDPdgJrgnK7r6XkzY+K1RCObmM5WUZ3OoxwiMQyRcjCqGxTEACcq51TXOdUMDk0zBHVcZ9pxzvghEHUvj+O57hU37pnpLvnhrCJgY0/vGh3sLkGRrpeK8SXUoIQQA4B300GgA9ABoruPoYEQzUyhlo9VUVcVUe/XRb5dp/w/d116y/Mz1E0XZpyAtT1H5gucfjtWTL4nJidTXmFXE+AROHEKXweBBjgJIJp5DhoIFICoAFQoMRSKEnuGxNQtXas/sW8m+g7MIAFr9h++XpKl+xLF9rVUpwTgqGwhCfDT/poEqNaxldpkEBUlSTwlS7FvdF16+7fOtBzOOAHrDh5cKRRSDycmO9dRAG7B25uOegTUdT8WAbbQXQQQU/AmAfaxCgIZIApKIivK8dSPxsnkZw5cukU5E/I4YwSs7TkyX9BiDycmO6+iBgXAQYif8INdUH3/b/l92+1Yx6bAFfhZgk0AgQxAgSzFCoVk56e7Vt/74+mWyxkhYN3+w7cmJxZ8T5ClmFPYQQSE8f9hCTCF7iRAqRBAFABymQBCZHAomErOfa2YmnfDS8s3vzpdsqHTVTAAYNs2YcOuY4+2jS75oSDHY80V4iSnfj5SzmPlJ57jcp5apHOAGFY+A+ni0IVzc4cPvrH3y59vru3BmDYLeENv7/ni+II9UjEzp3LW3XF/C6jn/w2Y2lxrBqTWGYAVt9tx+X9L8619YlkBoIFQAlCKfGLpMzsulm4A2WJEKadpsYD1+4+8OZ4975BUbJsTnNuJYC0vo0p1KtpeZQngVn4/zbctwyLdaRFWHYRzdBT7r7+mNz/4pgNb5jbWp/qInID1+47+VTK3cIegJKSoy66GnwVVzpNaeYiXBMPn2AApMwAQAqSVkYVpZF+78shXl0TVg0gJWL/vyHuSuXN/zDSpiXJrab/HbdUbE8paDvgRUp8Mo+z//S3N3Emqo+0p5cShNx365upGe+iHyAi4bF/fVan8okeYLjYwrtQbYMMMvLXyey2h9jU/t2SOPTA131EDIeY5Scsn2o3+7iteu39BAw30RSQEbOw5siY9cc6zVIuxcL+wB2D/a+EEX9v1VPbdKakipJ5l2PUQn4QgoeVSHWr/yzcP/VsyRGNromUClvX1xVlx7g5BiYvBuYOE24jg6/2W+7ij6tRLiJOYKs23flFOCJDSRudNFfp2hmh0TbRMwNwxaUes2NYRnLMRd+LstPP3ta2GuPJ502Y2t+ZXGlaxAgDo0E5c8rajWx8I2y8vWiJg3d7+r6fG529spYzWwX32PUTVtIZ6G1xuiLiO4bo+Vxv49FuOf+PqZlrfNAFrug8vT07M/7tmf98Y/DWf+Arf+7taBNWbmtrluypz7zguilwjbfLJ/wLf0rA8myYgztufFrRYSxZkaDpUWYGmqOC83qDsdy6IlBrkOAd/3/maV/t9K3G5IRAgpWfbrzxGv1vnV7WKahzr9/R9PpNb+g3zyCuI6mO1JCM7PIxCbhxT4xOYmiigVCxZrpaUm0EohSgyxNNxJDMJJNsktHUm0daZtGZN1g2XqjCEHYZWy0G4yr7iDkOXg3CyFW6QHSEI+5wKQgkIMSVt7sM6JiDUsV++TqBSyRhLrFj2+8X3DISVpdCg7IFt24R4sXNLULZCPo/Tx45jbHgEk9kJa+ZAAVBT6FREeYlZXrMSKBqg5GSM52QAHOAcTCSYMy+F+UsymLc4BRpod0HWFDAFDtD+Wscil6mg5h4C8I6gFtYqLhDrd7/+QCa/5PbKGe7aHR08juOvHMb4WM4UOKVmam82AYSiYssVEtzlcqt4DnAD4BwxieDc81NYsqoNYsy0imoLUK37wvaNFzsMbQfkFJiWUYKvBRANhBBrA0C9+yhfB3Xv6yTG+9nqxbuWffZEGHk2ZAGXDw0lY33tH/e7lh8ZwdE9PSjkJ02hMxEgLAQBtuD9CADAbSJMAhTNQP+RKQz1T+H8VSmcd1HCKiLsNDfICjxoxBoACFBJB8s/CODPwhTfEAH6sPJN74JLU1Uc3bUHIwPHATCH4Jkl9DokeAmwd3n5j4MAiwQYADeg6gaOvFzEyKCMSzYlkEw10pN6CENMfceR0cauB99Cw4SuG5rFxIvttzqPJ7NZ7HnmOYwMDAJENIXPRIDFHGmdTbD3Jce+fV7y5PHsW9t4nqB7+xRGh/VGujKtkHhBvGow9qkweUNbwLr9r90qnm5L28e5k8PofeFF6AYAGjM1ngoV7afM3CeseiwouyHb9zvHAsDl+8vabwbKTFdkAIYBEB3gDJqhY99LOi55A7Cw5UBxmGHRsVKugTgv3AHgX4JKCk2AWEpvtvezQyfR+4cXYYACTDAF7yJAqO+GvASQGoMwr0MAMQCuW2To4FxH7x4NgmBg3rn1enJmnkNIGfmVYfKFckHL+vrisVLbSgCYyudxsOslGGDmVLK8xcy07H5EtxuiPi6IihWyiGecsImkPq7MVValLk5jeHl3DBN5EsKTE8/mj8r6sLrEqrWj41g0isKbBu7706BWhCKgI4c7mSZSXdVw4Pk/mm7HJWSP76deQYkVgRPmGHgbACEWKZ4xxlWXCB0xvLwrCV0HKoKtNdNyVVDZWg3YWpmSkD8UlDMUAYKa+DAAvP7yAZRKckVzbe23CbAtoYoQoTmh1wIhZpleBbDaM1WUcOSAHab3q7e25ru1mvslnh/YSSWTnY9BXhPUlVBjAJtMrJrIjmHo6LGKQMsdFnw2BpCIhc45aGmMxxbo/SStPyq08V9LMeyVdTFmgG6gBm5QRoX3KSeE87hKMHg8g/OWTSHdploFWG3hnuku8bqiEG0uj8HWjndMthiI8VLglCCQgMv29a2OjaaFV3tfBBjzEb7oGIiFik+PCqoCNnIMLFEaZcvbbi7e8fYX7UsTlVzPWtvd6UdfuEY9Gf+ZPCjOP3qoA+s2FeHvijwb90wGuJsrr9A5r+gXB8wYHzEtwb6ZLxhyJqh7gQQYBeOThXwe2VNjlYG2LGxb+I5zJKLbzJyDDveDneiDcNm5vy9ufddVYX42+Rdv+V8AC1I/6fqfU6+k31GYjCGdVn1W3H6a77EAh9A5SFnIfte9YwcnHIxogZoYHNbKkuuGjvabCy2n4Knb75or4GiET5QShINdYAOHIKxZuK249cZQwnei8MErrk1cpL1wfKAD4QZjLwk1HH/Zx1t/OarHAesy09VAgQRn0KXFo8OnK8JnntS2gojm16SQh3DgDyCFPMjShbnil2+6ptmyihuT12S15Djn/prOa1oAdcvdOxWtNVCX44fmOSOETAIJKE1OJVTVqCy0vFuUwp/MQzjYBagqIAiQVmbe1VKBl16q0PnGHePjSTi1n1tphQiKakJscHdoqnLaNWPiZbvgZSIMCK3Hggr5ggjiN9MRKzH9CEBKBQiHuswQA6Ugi8/JTtx57Y5Wyx1/7xt/VFCTRX+Nt1blXsvgNdYCfosyx4LdZQWcQ0WsFNS+QAKmxhVS0X5relkecCOaZho62OHdgK6XV8J0vvRkNIUDRSZ0m3s1Zj/lfZsQSywuLXdYQvm8O7TNPalCEiNBbQsmIC9TV6wn6tkOANZ/AGRqwmyOVS5rYw9FVb4u8J/XFLrLGryW4VhceYlwnq9hBTKNdwe1LVCKmqY7FlYOIiICmciCDh9HJQZkzscLa8UXoqqDCfoOf6F73RAtjwfugdgz0FoHztmQnxVoiP8wqG2BBJAY464Qc4TCBwD2eq8lC3shBAAc6D0VWUVLF2X7/GdA1JFWBA/QyjjgCC143RA82u9MSyQtP3/+vY8HtS2YAInpFeGzSF0PyQ6DFLKoujvGgZSSuiiqevK6tKH21NMteNNSnFYBj983T3j1Hc6Uc0yyzmfDtC2MBeiVGysRhhgAsBN9DuG7m2KosWujqkcg5FZe09/bg69T8BQAg2kZXuHWmvXYKYdGRD5BOz4Zpm3BBIiQp0X75SmQ8dMoC98zo+IF5Yao6orJ/L3+Qndv3Jty6qv9dlrl9a28eXHRU2GfigiUKEvxkenQfnJ6yNrxLnxM8Jy2Nop6Lt//1D2JEp/j1nTvOFBNRsUKCLiP9vtZAcBRYulSJrH4lrDtCw5FxNBXuZUYHUj2JMrC8FlO6MPjna3WsWb/HxekC/xr1WEG7wKMOiyCeayD+cR6PFbATe03ICArnfeBxxd9aipsG4MJiBsHohY+DN0afIHqpb8JUiqRxH3Pfq6VajJq/nlBJWJF8N5FWC03xMDBzJRXFmX+sx5uneYYk5be/+IFm3/dSBvDzIJ+F7n7KeRBDI6y9tdYUesDk5t9L4TA5XufuSdZoBe5Zz61XA21BO4457QIsCqPbz4oAGsjGItf+JMdK7Z+ttF2BhIw0TH1BI0bfpGRpkEKOVS0vnY4gw9m5yTv376pqToI3RQYevCSw01hV4RuWwHz+PsKHQZhOJ1Y/p0dK78ceP/XD8G+5eqrNbFDDoxpNIRSSBdp6ND7c080U4Ui6V9QRKL6r3od40Cd2ZB5zUGIpfW2CyqxjDwSX/G+F1ZtubuZNgJhCADAMlpgTKMREHmqnuK7YPSPzk9+578/1mgd+1a/s6/YaVwhx0nWqfV+Mx7uckNeK7DGBF6ZEelE4Lnk0mdGjNULu1Z/6ZFG2+ZEuKci4upPWqmkCqrsXN/Xh2FA3T36IP7jscD7q150r7huz/Obrp+b7SBbinE6xu0HgnltMmyLKJPhcEs6Sxm5xLLto3MuXr3jkq+/c+8bPptrtE1ehI4nC/cfkrUJsckPbrjB9m0HLUzAFeYOAF0+f0D+1ruXtlLvhv2PrWXgnxFV7a2irpzPNCUuGAqpfDvIfqHDfHwdRIcsipNKTHxFZbGfFrj83ai/IxSagMSP9/yu2Nd+ZRSVsr3PgRYLcIW5g0AAtnbxM6WtN74zijbYWHfw5ytjurEKgtpOdX2hzg2dCNopQyeHd11yYmfUH+fwIjQBbY913zS+b25TA6IXrGcb6NSE4wZPyKflCAW7fNFDpS/ecFsU7TgbEHqFNf7ujU+KnfJ4JLUyAeV7p6EHAwDcgL576KPxr/z2Z5G04yxAQ0vc2Pxi0y8kuyCIDuG7Il3BMAzouwffL21+sjeStswwGiKg0Jn/kpBRWx6EuJSC+25Hg+s8zmH0Dl0s/vWvJlMP/DaSoN1MobEgz9VXa9LCws9brjWVQeWZf+7YbxBDYyl5+0hPYutTD7fcphlCw1G2woL8p4R2NfBxi3rgyXaYURUO870v183WhkAUBdqewffFPvawmvz601tbaVejSHzxX++SPvFP/Yl7HvjnZsto6rmSzKPdn5s4MPcfm60U4BC6ngR0DcR+lcm+6dPKc0YEIHPbVHZB+6PFleMfxi23TMu3PxP3PvhN7ZhyB/K6xA0dEDjXHr+7qZBx072VvvfyoHwiuajZ37NXu0BODQGUgbjeK4sm9M0lCWxh+ym6QPpF8bJ5f4+bN4aO0fsh/ZUfvF09rX3LOMnXYUpn4Hr51Sh6LjuufP+upt5Oa5qAtt+8tGnylTldhsyaKoOMDoK98keAsGitwA+UgXSkNDInfpJkxINEEnbTJJ4V2wq7crf9uSuckLn/sVVMLl1cmuI3YFJfb0yoF/GcNgcKNxtl6HAKn1ODixuTF5a23P56M01rqaepR3bdVzg4p7kvpnAOYedTgKq4rYDQUKGJyECI+d6DYb15WQ/225kOAsSLY98tfvuOO5quvtkf2og/tP9gaSDV1AfsaP8B0OOvmFZQJsDxRuXZBM4twZsEcEMHW0Jfk//9ruWtFNtyL8VO+W3iHKXQzG+NxSvMp6u5Ac4dr6BanyU4q+BoG+cGSDspytk7Q72KWg8tEzBx88bT8QvyG4SMqgbn9kCIwVi8EvYnCEwS9LOPBMOjHHFuCGvEVfglafn1/EjsfOKmK16VLph8F5X0hiVmLF4Fnsy4O2k4iZhhEgy3UnDR4In1wpXFL/5N6G8C1UNkjrbw7sufTq/OfYTGg0YybwsojJWbAGL6WH42kWDPeCzL5Mzg0obEdRP/8JnIHhyOeL4HtD2+88bC4Y7f6AXW0FSGDr4K2tcD+615UvNLK2cA9pdZypsOHudGfGPqHZNf+MT2KKuKnAAAyDza/dZif+Y5bbKxO2j08C7Q4dc8JPht09JsE97JgGEA7VDY2tiq0heam+vXw7T1JPl097n6oNQlD6XCrxANDnboRZDRQZS/F+EignhIiLD5tqvzEECXxE7Kq+ZdiLtvKUZXWQXTqEoAOKfJX/T8qngk8x7OQ1bFOdihLpBTAy6trybBeszE9V5Bw+1DJRprjzXWYEs5hDXpn5a+9vEPNld4OEwvARbafrP7A8Vj8QfVbDzcd604QAcOgPb3erSemt9mcwne8Wi70yqqSHHceyinNgEGXER0xorCxW3XFTd/KLLBthbOCAEAgG3bhNRIxw+L/Zn3GzINVS/JngB7daf5GAvcFkDsFzp8vznk88Cv6/FyLwmm9nNJ5MLq1C9LX/voX7bc35A4cwRYyDzevVrLiT8oDaav4GoI36GpoK/3gJ6w3zKynu1xfPSvTAbg0Hy/op134Lj1iCEHBAa2PLMv0Y6rcltua/lZn0Zwxgmw0f7EzguVvPB9eTB9ZZiIKpnKgw4cNMcGAGU3VCV84ukUga3+5b8WCVySuLA0vZcuS9xcvPuWwUg61iBmjAAb5zy8LT1F2jdrudhHlJHEIm7UbxIpTYIMv25u8lRtF+RIXO6HCSAL2ybZeclHSssW3I7brm7p7l6rmHECnGh/YueFeoneqU3GrtOysYuC1hFkKm++6Dd+GihNghQnAN3+5zuOrqXTnMzPjAnnxH+PZPxvi/fefGx6exIeZxUBXrQ/3rNB1/QbDYVuMEpshVFiiwyZJbgBgStU4Col4AARDU4kQyOM6wRKiYrKMOOlYySFbrEz9nDupj/ZO9N9mcUsZjGLWcxiFrOYxSxmMQsb/we5XAajHPmTtAAAAABJRU5ErkJggg==);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}@-webkit-keyframes animations-module_blink__32C5j {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 1;\n }\n}@keyframes animations-module_blink__32C5j {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 1;\n }\n}.animations-module_blink__32C5j {\n -webkit-animation: animations-module_blink__32C5j 1.5s ease infinite;\n animation: animations-module_blink__32C5j 1.5s ease infinite;\n}.outline-module_indicator__2dw_X {\n display: none;\n position: absolute;\n right: 14px;\n top: 7px;\n width: 30px;\n height: 30px;\n font-size: 19px;\n color: #888;\n}.outline-module_creatingIndicator__3O7Rw {\n}.outline-module_destroyingIndicator__2-mKh {\n}.outline-module_failedIndicator__2QK1F {\n color: #d00;\n}.outline-module_dragHandle__3ATeR {\n opacity: 0;\n cursor: move;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 30px;\n transition: opacity 0.1s ease;\n transition-delay: 0.2s;\n}\n\n.SectionItemView-module_root__1Pp0d {\n position: relative;\n border: solid 3px transparent;\n padding: 3px;\n margin-bottom: 4px;\n text-align: right;\n background-color: #eee;\n}\n\n.SectionItemView-module_active__1tLN5 {\n border: solid 3px #1c86fe;\n}\n\n.SectionItemView-module_thumbnailContainer__1Xe7C {\n position: relative;\n}\n\n.SectionItemView-module_thumbnail__1ecBT {\n border: solid 1px #888;\n padding-top: 50%;\n position: relative;\n text-align: initial;\n}\n\n.SectionItemView-module_clickMask__2JYEH {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n cursor: pointer;\n}\n\n.SectionItemView-module_dragHandle__nY7mf {\n color: #fff;\n text-shadow: 0 0 2px #000;\n}\n\n.SectionItemView-module_invert__XRpuB .SectionItemView-module_dragHandle__nY7mf {\n color: #000;\n text-shadow: 0 0 2px #fff;\n}\n\n.SectionItemView-module_root__1Pp0d:hover .SectionItemView-module_dragHandle__nY7mf {\n opacity: 1;\n}\n\n.SectionItemView-module_creating__3Pjx9 .SectionItemView-module_creatingIndicator__1GnKq { display: block; }\n.SectionItemView-module_destroying__1m53s .SectionItemView-module_destroyingIndicator__HtKWF { display: block; }\n.SectionItemView-module_failed__1CR2R .SectionItemView-module_failedIndicator__1HVHn { display: block; }\n\n.SectionItemView-module_creatingIndicator__1GnKq { }\n.SectionItemView-module_destroyingIndicator__HtKWF { }\n.SectionItemView-module_failedIndicator__1HVHn { }\n";
1315
+ var styles = {"selectionColor":"#1c86fe","selectionWidth":"3px","root":"SectionItemView-module_root__1Pp0d","active":"SectionItemView-module_active__1tLN5","thumbnailContainer":"SectionItemView-module_thumbnailContainer__1Xe7C","thumbnail":"SectionItemView-module_thumbnail__1ecBT","clickMask":"SectionItemView-module_clickMask__2JYEH","dragHandle":"SectionItemView-module_dragHandle__nY7mf outline-module_dragHandle__3ATeR icons-module_drag__p7HUE icons-module_icon__16IVx","invert":"SectionItemView-module_invert__XRpuB","creating":"SectionItemView-module_creating__3Pjx9","creatingIndicator":"SectionItemView-module_creatingIndicator__1GnKq outline-module_creatingIndicator__3O7Rw outline-module_indicator__2dw_X icons-module_arrowsCcw__3_nrJ icons-module_icon__16IVx animations-module_blink__32C5j","destroying":"SectionItemView-module_destroying__1m53s","destroyingIndicator":"SectionItemView-module_destroyingIndicator__HtKWF outline-module_destroyingIndicator__2-mKh outline-module_indicator__2dw_X icons-module_trash__DH1EH icons-module_icon__16IVx animations-module_blink__32C5j","failed":"SectionItemView-module_failed__1CR2R","failedIndicator":"SectionItemView-module_failedIndicator__1HVHn outline-module_failedIndicator__2QK1F outline-module_indicator__2dw_X icons-module_attention__1sssG icons-module_icon__16IVx"};
491
1316
  styleInject(css);
492
1317
 
493
1318
  var _events;
@@ -498,20 +1323,15 @@ var SectionItemView = Marionette.ItemView.extend({
498
1323
  classNames: styles
499
1324
  })],
500
1325
  template: function template(data) {
501
- return "\n <div class=\"".concat(styles.thumbnailContainer, "\">\n <div class=\"").concat(styles.thumbnail, "\"></div>\n <div class=\"").concat(styles.clickMask, "\"></div>\n </div>\n <span class=\"").concat(styles.creatingIndicator, "\" />\n <span class=\"").concat(styles.destroyingIndicator, "\" />\n <span class=\"").concat(styles.failedIndicator, "\"\n title=\"").concat(I18n.t('pageflow_scrolled.editor.section_item.save_error'), "\" />\n <a href=\"\" class=\"").concat(styles.editLink, "\" title=\"").concat(I18n.t('pageflow_scrolled.editor.section_item.edit'), "\"></a>\n ");
1326
+ return "\n <div class=\"".concat(styles.thumbnailContainer, "\">\n <div class=\"").concat(styles.thumbnail, "\"></div>\n <div class=\"").concat(styles.clickMask, "\">\n <div class=\"").concat(styles.dragHandle, "\"\n title=\"").concat(I18n.t('pageflow_scrolled.editor.section_item.drag_hint'), "\"></div>\n </div>\n </div>\n <span class=\"").concat(styles.creatingIndicator, "\" />\n <span class=\"").concat(styles.destroyingIndicator, "\" />\n <span class=\"").concat(styles.failedIndicator, "\"\n title=\"").concat(I18n.t('pageflow_scrolled.editor.section_item.save_error'), "\" />\n ");
502
1327
  },
503
1328
  ui: cssModulesUtils.ui(styles, 'thumbnail'),
504
1329
  events: (_events = {}, _defineProperty(_events, "click .".concat(styles.clickMask), function click() {
1330
+ this.options.entry.trigger('selectSection', this.model);
1331
+ this.options.entry.trigger('scrollToSection', this.model);
1332
+ }), _defineProperty(_events, "dblclick .".concat(styles.clickMask), function dblclick() {
1333
+ this.options.entry.trigger('selectSectionSettings', this.model);
505
1334
  this.options.entry.trigger('scrollToSection', this.model);
506
- }), _defineProperty(_events, "click .".concat(styles.editLink), function click() {
507
- if (!this.model.isNew() && !this.model.isDestroying()) {
508
- this.options.entry.trigger('scrollToSection', this.model);
509
- editor$1.navigate("/scrolled/sections/".concat(this.model.id), {
510
- trigger: true
511
- });
512
- }
513
-
514
- return false;
515
1335
  }), _events),
516
1336
  modelEvents: {
517
1337
  'change:id': 'renderThumbnail'
@@ -520,9 +1340,7 @@ var SectionItemView = Marionette.ItemView.extend({
520
1340
  var _this = this;
521
1341
 
522
1342
  this.listenTo(this.options.entry, 'change:currentSectionIndex', function () {
523
- var active = _this.options.entry.sections.indexOf(_this.model) === _this.options.entry.get('currentSectionIndex');
524
-
525
- _this.$el.toggleClass(styles.active, active);
1343
+ var active = _this.updateActive();
526
1344
 
527
1345
  if (active) {
528
1346
  _this.$el[0].scrollIntoView({
@@ -535,6 +1353,8 @@ var SectionItemView = Marionette.ItemView.extend({
535
1353
  onRender: function onRender() {
536
1354
  var _this2 = this;
537
1355
 
1356
+ this.updateActive();
1357
+ this.$el.toggleClass(styles.invert, !!this.model.configuration.get('invert'));
538
1358
  this.timeout = setTimeout(function () {
539
1359
  _this2.renderThumbnail();
540
1360
  }, 100);
@@ -557,11 +1377,16 @@ var SectionItemView = Marionette.ItemView.extend({
557
1377
  }
558
1378
  }), this.ui.thumbnail[0]);
559
1379
  }
1380
+ },
1381
+ updateActive: function updateActive() {
1382
+ var active = this.options.entry.sections.indexOf(this.model) === this.options.entry.get('currentSectionIndex');
1383
+ this.$el.toggleClass(styles.active, active);
1384
+ return active;
560
1385
  }
561
1386
  });
562
1387
 
563
- var css$1 = ".icons-module_icon__16IVx::before {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}@keyframes animations-module_blink__32C5j {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 1;\n }\n}.animations-module_blink__32C5j {\n animation: animations-module_blink__32C5j 1.5s ease infinite;\n}.outline-module_indicator__2dw_X {\n display: none;\n position: absolute;\n right: 14px;\n top: 7px;\n width: 30px;\n height: 30px;\n font-size: 19px;\n color: #888;\n}.outline-module_creatingIndicator__3O7Rw {\n}.outline-module_destroyingIndicator__2-mKh {\n}.outline-module_failedIndicator__2QK1F {\n color: #d00;\n}.buttons-module_iconButton__3ZSFV {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_addButton__2pN-g {\n}\n\n.ChapterItemView-module_root__19GIF {\n background-color: #fff;\n margin-bottom: 10px;\n padding: 0 10px 10px 10px;\n}\n\n.ChapterItemView-module_link__2dj_z {\n display: block;\n position: relative;\n margin: 0 -10px 0 -10px;\n padding: 10px 10px 10px 30px;\n background-color: #efefef;\n}\n\n.ChapterItemView-module_link__2dj_z::before {\n position: absolute;\n right: 7px;\n top: 7px;\n font-size: 19px;\n color: #888;\n}\n\n.ChapterItemView-module_number__1GjyC {\n font-weight: bold;\n}\n\n.ChapterItemView-module_title__3jVXE {}\n\n.ChapterItemView-module_sections__3zg2a {\n margin: 10px 0 10px 0;\n min-height: 20px;\n}\n\n.ChapterItemView-module_creating__c1q2b .ChapterItemView-module_creatingIndicator__2zOEN { display: block; }\n.ChapterItemView-module_destroying__2PP1l .ChapterItemView-module_destroyingIndicator__2YZaB { display: block; }\n.ChapterItemView-module_failed__2MtQW .ChapterItemView-module_failedIndicator__2s6Xk { display: block; }\n\n\n.ChapterItemView-module_creatingIndicator__2zOEN { }\n.ChapterItemView-module_destroyingIndicator__2YZaB { }\n.ChapterItemView-module_failedIndicator__2s6Xk { }\n\n.ChapterItemView-module_addSection__3XQvI {\n}\n";
564
- var styles$1 = {"indicatorIconColor":"#888","root":"ChapterItemView-module_root__19GIF","link":"ChapterItemView-module_link__2dj_z icons-module_rightOpen__9vsOG icons-module_icon__16IVx","number":"ChapterItemView-module_number__1GjyC","title":"ChapterItemView-module_title__3jVXE","sections":"ChapterItemView-module_sections__3zg2a","creating":"ChapterItemView-module_creating__c1q2b","creatingIndicator":"ChapterItemView-module_creatingIndicator__2zOEN outline-module_creatingIndicator__3O7Rw outline-module_indicator__2dw_X icons-module_arrowsCcw__3_nrJ icons-module_icon__16IVx animations-module_blink__32C5j","destroying":"ChapterItemView-module_destroying__2PP1l","destroyingIndicator":"ChapterItemView-module_destroyingIndicator__2YZaB outline-module_destroyingIndicator__2-mKh outline-module_indicator__2dw_X icons-module_trash__DH1EH icons-module_icon__16IVx animations-module_blink__32C5j","failed":"ChapterItemView-module_failed__2MtQW","failedIndicator":"ChapterItemView-module_failedIndicator__2s6Xk outline-module_failedIndicator__2QK1F outline-module_indicator__2dw_X icons-module_attention__1sssG icons-module_icon__16IVx","addSection":"ChapterItemView-module_addSection__3XQvI buttons-module_addButton__2pN-g buttons-module_iconButton__3ZSFV icon_button icons-module_plusCircled__20FlJ icons-module_icon__16IVx"};
1388
+ var css$1 = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,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);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}@-webkit-keyframes animations-module_blink__32C5j {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 1;\n }\n}@keyframes animations-module_blink__32C5j {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.3;\n }\n 100% {\n opacity: 1;\n }\n}.animations-module_blink__32C5j {\n -webkit-animation: animations-module_blink__32C5j 1.5s ease infinite;\n animation: animations-module_blink__32C5j 1.5s ease infinite;\n}.outline-module_indicator__2dw_X {\n display: none;\n position: absolute;\n right: 14px;\n top: 7px;\n width: 30px;\n height: 30px;\n font-size: 19px;\n color: #888;\n}.outline-module_creatingIndicator__3O7Rw {\n}.outline-module_destroyingIndicator__2-mKh {\n}.outline-module_failedIndicator__2QK1F {\n color: #d00;\n}.outline-module_dragHandle__3ATeR {\n opacity: 0;\n cursor: move;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 30px;\n transition: opacity 0.1s ease;\n transition-delay: 0.2s;\n}.buttons-module_primaryIconButton__KHPA9 {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_secondaryIconButton__4LT0V {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_unstyledButton__3m76W {\n border: 0;\n text-align: initial;\n}.buttons-module_addButton__2pN-g {\n}.buttons-module_cancelButton__1xJCN {\n}.buttons-module_saveButton__1M-qM {\n}\n\n.ChapterItemView-module_root__19GIF {\n background-color: #fff;\n margin-bottom: 10px;\n padding: 0 10px 10px 10px;\n}\n\n.ChapterItemView-module_link__2dj_z {\n display: block;\n position: relative;\n margin: 0 -10px 0 -10px;\n padding: 10px 10px 10px 30px;\n background-color: #efefef;\n}\n\n.ChapterItemView-module_link__2dj_z::before {\n position: absolute;\n right: 7px;\n top: 7px;\n font-size: 19px;\n color: #888;\n}\n\n.ChapterItemView-module_dragHandle__GZ6T8 {\n color: #444;\n}\n\n.ChapterItemView-module_link__2dj_z:hover .ChapterItemView-module_dragHandle__GZ6T8 {\n opacity: 1;\n}\n\n.ChapterItemView-module_number__1GjyC {\n font-weight: bold;\n}\n\n.ChapterItemView-module_title__3jVXE {}\n\n.ChapterItemView-module_sections__3zg2a {\n margin: 10px 0 10px 0;\n min-height: 20px;\n}\n\n.ChapterItemView-module_creating__c1q2b .ChapterItemView-module_creatingIndicator__2zOEN { display: block; }\n.ChapterItemView-module_destroying__2PP1l .ChapterItemView-module_destroyingIndicator__2YZaB { display: block; }\n.ChapterItemView-module_failed__2MtQW .ChapterItemView-module_failedIndicator__2s6Xk { display: block; }\n\n\n.ChapterItemView-module_creatingIndicator__2zOEN { }\n.ChapterItemView-module_destroyingIndicator__2YZaB { }\n.ChapterItemView-module_failedIndicator__2s6Xk { }\n\n.ChapterItemView-module_addSection__3XQvI {\n}\n";
1389
+ var styles$1 = {"indicatorIconColor":"#888","root":"ChapterItemView-module_root__19GIF","link":"ChapterItemView-module_link__2dj_z icons-module_rightOpen__9vsOG icons-module_icon__16IVx","dragHandle":"ChapterItemView-module_dragHandle__GZ6T8 outline-module_dragHandle__3ATeR icons-module_drag__p7HUE icons-module_icon__16IVx","number":"ChapterItemView-module_number__1GjyC","title":"ChapterItemView-module_title__3jVXE","sections":"ChapterItemView-module_sections__3zg2a","creating":"ChapterItemView-module_creating__c1q2b","creatingIndicator":"ChapterItemView-module_creatingIndicator__2zOEN outline-module_creatingIndicator__3O7Rw outline-module_indicator__2dw_X icons-module_arrowsCcw__3_nrJ icons-module_icon__16IVx animations-module_blink__32C5j","destroying":"ChapterItemView-module_destroying__2PP1l","destroyingIndicator":"ChapterItemView-module_destroyingIndicator__2YZaB outline-module_destroyingIndicator__2-mKh outline-module_indicator__2dw_X icons-module_trash__DH1EH icons-module_icon__16IVx animations-module_blink__32C5j","failed":"ChapterItemView-module_failed__2MtQW","failedIndicator":"ChapterItemView-module_failedIndicator__2s6Xk outline-module_failedIndicator__2QK1F outline-module_indicator__2dw_X icons-module_attention__1sssG icons-module_icon__16IVx","addSection":"ChapterItemView-module_addSection__3XQvI buttons-module_addButton__2pN-g buttons-module_primaryIconButton__KHPA9 primary_icon_button icons-module_plusCircled__20FlJ icons-module_icon__16IVx"};
565
1390
  styleInject(css$1);
566
1391
 
567
1392
  var ChapterItemView = Marionette.Layout.extend({
@@ -571,7 +1396,7 @@ var ChapterItemView = Marionette.Layout.extend({
571
1396
  classNames: styles$1
572
1397
  })],
573
1398
  template: function template() {
574
- return "\n <a class=\"".concat(styles$1.link, "\" href=\"\">\n <span class=\"").concat(styles$1.number, "\"></span>\n <span class=\"").concat(styles$1.title, "\"></span>\n <span class=\"").concat(styles$1.creatingIndicator, "\" />\n <span class=\"").concat(styles$1.destroyingIndicator, "\" />\n <span class=\"").concat(styles$1.failedIndicator, "\"\n title=\"").concat(I18n.t('pageflow_scrolled.editor.chapter_item.save_error'), "\" />\n </a>\n\n <ul class=\"").concat(styles$1.sections, "\"></ul>\n\n <a href=\"\" class=\"").concat(styles$1.addSection, "\">").concat(I18n.t('pageflow_scrolled.editor.chapter_item.add_section'), "</a>\n ");
1399
+ return "\n <a class=\"".concat(styles$1.link, "\" href=\"\">\n <span class=\"").concat(styles$1.dragHandle, "\"\n title=\"").concat(I18n.t('pageflow_scrolled.editor.chapter_item.drag_hint'), "\"></span>\n <span class=\"").concat(styles$1.number, "\"></span>\n <span class=\"").concat(styles$1.title, "\"></span>\n <span class=\"").concat(styles$1.creatingIndicator, "\" />\n <span class=\"").concat(styles$1.destroyingIndicator, "\" />\n <span class=\"").concat(styles$1.failedIndicator, "\"\n title=\"").concat(I18n.t('pageflow_scrolled.editor.chapter_item.save_error'), "\" />\n </a>\n\n <ul class=\"").concat(styles$1.sections, "\"></ul>\n\n <a href=\"\" class=\"").concat(styles$1.addSection, "\">").concat(I18n.t('pageflow_scrolled.editor.chapter_item.add_section'), "</a>\n ");
575
1400
  },
576
1401
  ui: cssModulesUtils.ui(styles$1, 'title', 'number', 'sections'),
577
1402
  events: cssModulesUtils.events(styles$1, {
@@ -609,8 +1434,8 @@ var ChapterItemView = Marionette.Layout.extend({
609
1434
  }
610
1435
  });
611
1436
 
612
- var css$2 = ".icons-module_icon__16IVx::before {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.buttons-module_iconButton__3ZSFV {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_addButton__2pN-g {\n}\n\n.EntryOutlineView-module_root__3NBUB {}\n\n.EntryOutlineView-module_chapters__3Gr1l {}\n\n.EntryOutlineView-module_addChapter__3_M-b {\n}\n";
613
- var styles$2 = {"root":"EntryOutlineView-module_root__3NBUB","chapters":"EntryOutlineView-module_chapters__3Gr1l","addChapter":"EntryOutlineView-module_addChapter__3_M-b buttons-module_addButton__2pN-g buttons-module_iconButton__3ZSFV icon_button icons-module_plusCircled__20FlJ icons-module_icon__16IVx"};
1437
+ var css$2 = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,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);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}.buttons-module_primaryIconButton__KHPA9 {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_secondaryIconButton__4LT0V {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_unstyledButton__3m76W {\n border: 0;\n text-align: initial;\n}.buttons-module_addButton__2pN-g {\n}.buttons-module_cancelButton__1xJCN {\n}.buttons-module_saveButton__1M-qM {\n}\n\n.EntryOutlineView-module_root__3NBUB {}\n\n.EntryOutlineView-module_chapters__3Gr1l {}\n\n.EntryOutlineView-module_addChapter__3_M-b {\n}\n";
1438
+ var styles$2 = {"root":"EntryOutlineView-module_root__3NBUB","chapters":"EntryOutlineView-module_chapters__3Gr1l","addChapter":"EntryOutlineView-module_addChapter__3_M-b buttons-module_addButton__2pN-g buttons-module_primaryIconButton__KHPA9 primary_icon_button icons-module_plusCircled__20FlJ icons-module_icon__16IVx"};
614
1439
  styleInject(css$2);
615
1440
 
616
1441
  var EntryOutlineView = Marionette.Layout.extend({
@@ -637,52 +1462,144 @@ var EntryOutlineView = Marionette.Layout.extend({
637
1462
  }
638
1463
  });
639
1464
 
640
- var css$3 = ".EntryPreviewView-module_root__1Nb6e {\n height: 100%;\n}\n\n.EntryPreviewView-module_iframe__1leJC {\n border: none;\n width: 100%;\n height: 100%;\n}\n";
641
- var styles$3 = {"root":"EntryPreviewView-module_root__1Nb6e","iframe":"EntryPreviewView-module_iframe__1leJC"};
1465
+ var css$3 = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,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);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}.buttons-module_primaryIconButton__KHPA9 {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_secondaryIconButton__4LT0V {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_unstyledButton__3m76W {\n border: 0;\n text-align: initial;\n}.buttons-module_addButton__2pN-g {\n}.buttons-module_cancelButton__1xJCN {\n}.buttons-module_saveButton__1M-qM {\n}\n\n.dialogView-module_backdrop__2Goe6 {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.dialogView-module_box__1Tgag {\n border: solid 1px #aaa;\n padding: 20px;\n margin: 20px 0;\n background-color: #eee;\n}\n\n.dialogView-module_header__35Taz {\n font-size: 17px;\n font-weight: bold;\n margin: 0 0 10px 0;\n}\n\n.dialogView-module_hint__2_hs9 {\n margin-bottom: 10px;\n}\n\n.dialogView-module_footer__347pC {\n margin-top: 10px;\n clear: left;\n text-align: right;\n}\n\n.dialogView-module_close__EwMQp {\n}\n";
1466
+ var dialogViewStyles = {"backdrop":"dialogView-module_backdrop__2Goe6","box":"dialogView-module_box__1Tgag","header":"dialogView-module_header__35Taz","hint":"dialogView-module_hint__2_hs9","footer":"dialogView-module_footer__347pC","close":"dialogView-module_close__EwMQp buttons-module_cancelButton__1xJCN buttons-module_secondaryIconButton__4LT0V secondary_icon_button icons-module_cancel__1PjiX icons-module_icon__16IVx"};
642
1467
  styleInject(css$3);
643
1468
 
644
- var EntryPreviewView = Marionette.ItemView.extend({
1469
+ var dialogView = {
1470
+ events: cssModulesUtils.events(dialogViewStyles, {
1471
+ 'mousedown backdrop': function mousedownBackdrop() {
1472
+ this.close();
1473
+ },
1474
+ 'mousedown box': function mousedownBox(event) {
1475
+ event.stopPropagation();
1476
+ },
1477
+ 'click close': function clickClose() {
1478
+ this.close();
1479
+ }
1480
+ })
1481
+ };
1482
+
1483
+ var css$4 = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,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);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}.buttons-module_primaryIconButton__KHPA9 {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_secondaryIconButton__4LT0V {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_unstyledButton__3m76W {\n border: 0;\n text-align: initial;\n}.buttons-module_addButton__2pN-g {\n}.buttons-module_cancelButton__1xJCN {\n}.buttons-module_saveButton__1M-qM {\n}\n\n.InsertContentElementDialogView-module_box__3sdFf {\n max-width: 500px;\n min-width: 200px;\n width: 70%;\n display: flex;\n flex-direction: column;\n}\n\n.InsertContentElementDialogView-module_list__3zAve {\n overflow-y: auto;\n padding: 2px;\n margin: -2px;\n}\n\n.InsertContentElementDialogView-module_button__2OFRx {\n display: block;\n width: 100%;\n padding: 10px;\n margin-bottom: 2px;\n background-color: #fff;\n}\n";
1484
+ var styles$3 = {"box":"InsertContentElementDialogView-module_box__3sdFf","list":"InsertContentElementDialogView-module_list__3zAve","button":"InsertContentElementDialogView-module_button__2OFRx buttons-module_unstyledButton__3m76W"};
1485
+ styleInject(css$4);
1486
+
1487
+ var InsertContentElementDialogView = Marionette.ItemView.extend({
645
1488
  template: function template() {
646
- return "\n <iframe class=\"".concat(styles$3.iframe, "\" />\n ");
1489
+ return "\n <div class=\"".concat(dialogViewStyles.backdrop, "\">\n <div class=\"editor ").concat(dialogViewStyles.box, " ").concat(styles$3.box, "\">\n <h1 class=\"").concat(dialogViewStyles.header, "\">").concat(I18n.t('pageflow_scrolled.editor.insert_content_element.header'), "</h1>\n <ul class=\"").concat(styles$3.list, "\"></ul>\n\n <div class=\"").concat(dialogViewStyles.footer, "\">\n <button class=\"").concat(dialogViewStyles.close, "\">").concat(I18n.t('pageflow_scrolled.editor.insert_content_element.cancel'), "</a>\n </div>\n </div>\n </div>\n ");
647
1490
  },
648
- className: styles$3.root,
649
- ui: cssModulesUtils.ui(styles$3, 'iframe'),
650
- initialize: function initialize() {
651
- this.messageListener = this.onMessage.bind(this);
1491
+ ui: {
1492
+ items: 'ul'
652
1493
  },
653
- onShow: function onShow() {
654
- window.addEventListener('message', this.messageListener);
655
- inject(this.ui.iframe[0], unescape($('[data-template="iframe_seed"]').html()));
1494
+ mixins: [dialogView],
1495
+ events: {
1496
+ 'click li button': function clickLiButton() {
1497
+ this.close();
1498
+ }
656
1499
  },
657
- onClose: function onClose() {
658
- window.removeEventListener('message', this.messageListener);
1500
+ onRender: function onRender() {
1501
+ this.subview(new CollectionView({
1502
+ el: this.ui.items,
1503
+ collection: new Backbone$1.Collection(this.getSupportedTypes()),
1504
+ itemViewConstructor: ItemView,
1505
+ itemViewOptions: {
1506
+ entry: this.options.entry,
1507
+ insertOptions: this.options.insertOptions
1508
+ }
1509
+ }));
1510
+ },
1511
+ getSupportedTypes: function getSupportedTypes() {
1512
+ return this.options.editor.contentElementTypes.getSupported(this.options.entry, this.options.insertOptions);
1513
+ }
1514
+ });
1515
+ var ItemView = Marionette.ItemView.extend({
1516
+ tagName: 'li',
1517
+ className: styles$3.item,
1518
+ template: function template(_ref) {
1519
+ var displayName = _ref.displayName;
1520
+ return "\n <button class=\"".concat(styles$3.button, "\">").concat(displayName, "</button>\n ");
1521
+ },
1522
+ events: {
1523
+ 'click button': function clickButton() {
1524
+ this.options.entry.insertContentElement({
1525
+ typeName: this.model.get('typeName')
1526
+ }, this.options.insertOptions);
1527
+ }
1528
+ }
1529
+ });
1530
+
1531
+ InsertContentElementDialogView.show = function (options) {
1532
+ var view = new InsertContentElementDialogView(options);
1533
+ app.dialogRegion.show(view.render());
1534
+ };
1535
+
1536
+ var PreviewMessageController = Object$1.extend({
1537
+ initialize: function initialize(_ref) {
1538
+ var entry = _ref.entry,
1539
+ iframeWindow = _ref.iframeWindow,
1540
+ editor = _ref.editor;
1541
+ this.entry = entry;
1542
+ this.iframeWindow = iframeWindow;
1543
+ this.editor = editor;
1544
+ this.listener = this.handleMessage.bind(this);
1545
+ window.addEventListener('message', this.listener);
659
1546
  },
660
- onMessage: function onMessage(message) {
1547
+ dispose: function dispose() {
1548
+ window.removeEventListener('message', this.listener);
1549
+ },
1550
+ handleMessage: function handleMessage(message) {
661
1551
  var _this = this;
662
1552
 
1553
+ var postMessage = function postMessage(message) {
1554
+ _this.iframeWindow.postMessage(message, window.location.origin);
1555
+ };
1556
+
663
1557
  if (window.location.href.indexOf(message.origin) === 0) {
664
1558
  if (message.data.type === 'READY') {
665
- var postMessage = function postMessage(message) {
666
- _this.ui.iframe[0].contentWindow.postMessage(message, window.location.origin);
667
- };
668
-
669
- watchCollections(this.model, {
1559
+ watchCollections(this.entry, {
670
1560
  dispatch: function dispatch(action) {
671
- return postMessage({
1561
+ postMessage({
672
1562
  type: 'ACTION',
673
1563
  payload: action
674
1564
  });
675
1565
  }
676
1566
  });
677
- this.listenTo(this.model, 'scrollToSection', function (section) {
1567
+ this.listenTo(this.entry, 'scrollToSection', function (section) {
678
1568
  return postMessage({
679
1569
  type: 'SCROLL_TO_SECTION',
680
1570
  payload: {
681
- index: _this.model.sections.indexOf(section)
1571
+ index: _this.entry.sections.indexOf(section)
1572
+ }
1573
+ });
1574
+ });
1575
+ this.listenTo(this.entry.contentElements, 'postCommand', function (contentElementId, command) {
1576
+ return postMessage({
1577
+ type: 'CONTENT_ELEMENT_EDITOR_COMMAND',
1578
+ payload: {
1579
+ contentElementId: contentElementId,
1580
+ command: command
1581
+ }
1582
+ });
1583
+ });
1584
+ this.listenTo(this.entry, 'selectSection', function (section) {
1585
+ return postMessage({
1586
+ type: 'SELECT',
1587
+ payload: {
1588
+ id: section.id,
1589
+ type: 'section'
1590
+ }
1591
+ });
1592
+ });
1593
+ this.listenTo(this.entry, 'selectSectionSettings', function (section) {
1594
+ return postMessage({
1595
+ type: 'SELECT',
1596
+ payload: {
1597
+ id: section.id,
1598
+ type: 'sectionSettings'
682
1599
  }
683
1600
  });
684
1601
  });
685
- this.listenTo(this.model, 'selectContentElement', function (contentElement) {
1602
+ this.listenTo(this.entry, 'selectContentElement', function (contentElement) {
686
1603
  return postMessage({
687
1604
  type: 'SELECT',
688
1605
  payload: {
@@ -691,35 +1608,157 @@ var EntryPreviewView = Marionette.ItemView.extend({
691
1608
  }
692
1609
  });
693
1610
  });
694
- this.listenTo(this.model, 'resetSelection', function (contentElement) {
1611
+ this.listenTo(this.entry, 'resetSelection', function (contentElement) {
695
1612
  return postMessage({
696
1613
  type: 'SELECT',
697
1614
  payload: null
698
1615
  });
699
1616
  });
1617
+ this.listenTo(this.entry, 'change:emulation_mode', function (entry) {
1618
+ return postMessage({
1619
+ type: 'CHANGE_EMULATION_MODE',
1620
+ payload: _this.entry.get('emulation_mode')
1621
+ });
1622
+ });
1623
+ postMessage({
1624
+ type: 'ACK'
1625
+ });
700
1626
  } else if (message.data.type === 'CHANGE_SECTION') {
701
- this.model.set('currentSectionIndex', message.data.payload.index);
1627
+ this.entry.set('currentSectionIndex', message.data.payload.index);
702
1628
  } else if (message.data.type === 'SELECTED') {
703
1629
  var _message$data$payload = message.data.payload,
704
- id = _message$data$payload.id,
705
- type = _message$data$payload.type;
706
- var editor = this.options.editor;
1630
+ type = _message$data$payload.type,
1631
+ id = _message$data$payload.id;
707
1632
 
708
1633
  if (type === 'contentElement') {
709
- editor.navigate("/scrolled/content_elements/".concat(id), {
1634
+ this.editor.navigate("/scrolled/content_elements/".concat(id), {
1635
+ trigger: true
1636
+ });
1637
+ } else if (type === 'sectionSettings') {
1638
+ this.editor.navigate("/scrolled/sections/".concat(id), {
710
1639
  trigger: true
711
1640
  });
712
- } else if (type === 'before' || type === 'after') {
713
- editor.navigate("/scrolled/content_elements/insert?position=".concat(type, "&id=").concat(id), {
1641
+ } else if (type === 'sectionTransition') {
1642
+ this.editor.navigate("/scrolled/sections/".concat(id, "/transition"), {
714
1643
  trigger: true
715
1644
  });
716
1645
  } else {
717
- editor.navigate('/', {
1646
+ this.editor.navigate('/', {
718
1647
  trigger: true
719
1648
  });
720
1649
  }
1650
+ } else if (message.data.type === 'INSERT_CONTENT_ELEMENT') {
1651
+ var _message$data$payload2 = message.data.payload,
1652
+ _id = _message$data$payload2.id,
1653
+ at = _message$data$payload2.at,
1654
+ splitPoint = _message$data$payload2.splitPoint;
1655
+ InsertContentElementDialogView.show({
1656
+ entry: this.entry,
1657
+ insertOptions: {
1658
+ at: at,
1659
+ id: _id,
1660
+ splitPoint: splitPoint
1661
+ },
1662
+ editor: this.editor
1663
+ });
1664
+ } else if (message.data.type === 'MOVE_CONTENT_ELEMENT') {
1665
+ var _message$data$payload3 = message.data.payload,
1666
+ _id2 = _message$data$payload3.id,
1667
+ to = _message$data$payload3.to;
1668
+ this.entry.moveContentElement(_id2, to);
1669
+ } else if (message.data.type === 'UPDATE_CONTENT_ELEMENT') {
1670
+ var _message$data$payload4 = message.data.payload,
1671
+ _id3 = _message$data$payload4.id,
1672
+ configuration = _message$data$payload4.configuration;
1673
+ this.entry.contentElements.get(_id3).configuration.set(configuration, {
1674
+ ignoreInWatchCollection: true
1675
+ });
1676
+ } else if (message.data.type === 'UPDATE_TRANSIENT_CONTENT_ELEMENT_STATE') {
1677
+ var _message$data$payload5 = message.data.payload,
1678
+ _id4 = _message$data$payload5.id,
1679
+ state = _message$data$payload5.state;
1680
+ this.entry.contentElements.get(_id4).set('transientState', state);
1681
+ } else if (message.data.type === 'SAVED_SCROLL_POINT' && this.currentScrollPointCallback) {
1682
+ this.currentScrollPointCallback();
1683
+ this.currentScrollPointCallback = null;
1684
+ setTimeout(function () {
1685
+ return postMessage({
1686
+ type: 'RESTORE_SCROLL_POINT'
1687
+ });
1688
+ }, 100);
721
1689
  }
722
1690
  }
1691
+ },
1692
+ preserveScrollPoint: function preserveScrollPoint(callback) {
1693
+ this.currentScrollPointCallback = callback;
1694
+ this.iframeWindow.postMessage({
1695
+ type: 'SAVE_SCROLL_POINT'
1696
+ }, window.location.origin);
1697
+ }
1698
+ });
1699
+
1700
+ var css$5 = ".BlankEntryView-module_blankEntry__2FcvR {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: #ffff;\n color: #000;\n}\n";
1701
+ var styles$4 = {"blankEntry":"BlankEntryView-module_blankEntry__2FcvR"};
1702
+ styleInject(css$5);
1703
+
1704
+ var BlankEntryView = Marionette.ItemView.extend({
1705
+ template: function template() {
1706
+ return "\n <div class=\"blank_entry\">\n <h2>".concat(t('pageflow_scrolled.editor.blank_entry.header'), "</h2>\n <p>").concat(t('pageflow_scrolled.editor.blank_entry.intro'), "</p>\n <ol>\n <li>").concat(t('pageflow_scrolled.editor.blank_entry.create_chapter'), "</li>\n <li>").concat(t('pageflow_scrolled.editor.blank_entry.create_section'), "</li>\n <li>").concat(t('pageflow_scrolled.editor.blank_entry.create_content_element'), "</li>\n </ol>\n <p>").concat(t('pageflow_scrolled.editor.blank_entry.outro'), "</p>\n </div>\n ");
1707
+ },
1708
+ className: styles$4.blankEntry,
1709
+ onRender: function onRender() {
1710
+ this.listenTo(this.model.sections, 'add remove', this.update);
1711
+ this.update();
1712
+ },
1713
+ update: function update() {
1714
+ this.$el.toggle(!this.model.sections.length);
1715
+ }
1716
+ });
1717
+
1718
+ var css$6 = ".EntryPreviewView-module_root__1Nb6e {\n height: 100%;\n width: 100%;\n background-color: #222;\n}\n\n.EntryPreviewView-module_iframe__1leJC {\n border: none;\n width: 100%;\n height: 100%;\n}\n\n.EntryPreviewView-module_phoneEmulationMode__3YXy_ {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.EntryPreviewView-module_phoneEmulationMode__3YXy_ .EntryPreviewView-module_iframe__1leJC {\n width: 400px;\n height: 700px;\n box-shadow: rgba(0, 0, 0, 0.5) 0px 1px 4px 0px;\n}\n";
1719
+ var styles$5 = {"root":"EntryPreviewView-module_root__1Nb6e","iframe":"EntryPreviewView-module_iframe__1leJC","phoneEmulationMode":"EntryPreviewView-module_phoneEmulationMode__3YXy_"};
1720
+ styleInject(css$6);
1721
+
1722
+ var EntryPreviewView = Marionette.ItemView.extend({
1723
+ template: function template() {
1724
+ return "\n <iframe class=\"".concat(styles$5.iframe, "\" />\n ");
1725
+ },
1726
+ className: styles$5.root,
1727
+ ui: cssModulesUtils.ui(styles$5, 'iframe'),
1728
+ modelEvents: {
1729
+ 'change:emulation_mode': 'updateEmulationMode'
1730
+ },
1731
+ onRender: function onRender() {
1732
+ this.appendSubview(new BlankEntryView({
1733
+ model: this.model
1734
+ }));
1735
+ },
1736
+ onShow: function onShow() {
1737
+ this.messageController = new PreviewMessageController({
1738
+ entry: this.model,
1739
+ editor: this.options.editor,
1740
+ iframeWindow: this.ui.iframe[0].contentWindow
1741
+ });
1742
+ inject(this.ui.iframe[0], unescape($('[data-template="iframe_seed"]').html()));
1743
+ },
1744
+ onClose: function onClose() {
1745
+ this.messageController.dispose();
1746
+ },
1747
+ updateEmulationMode: function updateEmulationMode() {
1748
+ var _this = this;
1749
+
1750
+ this.messageController.preserveScrollPoint(function () {
1751
+ if (_this.model.previous('emulation_mode')) {
1752
+ _this.$el.removeClass(styles$5[_this.emulationModeClassName(_this.model.previous('emulation_mode'))]);
1753
+ }
1754
+
1755
+ if (_this.model.get('emulation_mode')) {
1756
+ _this.$el.addClass(styles$5[_this.emulationModeClassName(_this.model.get('emulation_mode'))]);
1757
+ }
1758
+ });
1759
+ },
1760
+ emulationModeClassName: function emulationModeClassName(mode) {
1761
+ return "".concat(mode, "EmulationMode");
723
1762
  }
724
1763
  });
725
1764
 
@@ -734,23 +1773,22 @@ function unescape(text) {
734
1773
  return text.replace(/<\\\//g, '</');
735
1774
  }
736
1775
 
737
- ConfigurationEditorTabView.groups.define('ContentElementPosition', function () {
738
- this.input('position', SelectInputView, {
739
- attributeTranslationKeyPrefixes: ['pageflow_scrolled.editor.common_content_element_attributes'],
740
- values: ['inline', 'sticky', 'full']
741
- });
742
- });
743
- ConfigurationEditorTabView.groups.define('ContentElementCaption', function () {
744
- this.input('caption', TextInputView, {
745
- attributeTranslationKeyPrefixes: ['pageflow_scrolled.editor.common_content_element_attributes']
746
- });
1776
+ var css$7 = ".NoOptionsHintView-module_hint__1etP_ {\n color: #888;\n text-align: center;\n margin-top: 30px;\n}\n";
1777
+ var styles$6 = {"hint":"NoOptionsHintView-module_hint__1etP_"};
1778
+ styleInject(css$7);
1779
+
1780
+ var NoOptionsHintView = Marionette.ItemView.extend({
1781
+ className: styles$6.hint,
1782
+ template: function template() {
1783
+ return I18n.t('pageflow_scrolled.editor.no_options');
1784
+ }
747
1785
  });
748
1786
 
749
1787
  var SideBarRouter = Marionette.AppRouter.extend({
750
1788
  appRoutes: {
751
1789
  'scrolled/chapters/:id': 'chapter',
1790
+ 'scrolled/sections/:id/transition': 'sectionTransition',
752
1791
  'scrolled/sections/:id': 'section',
753
- 'scrolled/content_elements/insert?position=:position&id=:id': 'insertContentElement',
754
1792
  'scrolled/content_elements/:id': 'contentElement'
755
1793
  }
756
1794
  });
@@ -767,96 +1805,1684 @@ var EditChapterView = EditConfigurationView.extend({
767
1805
  }
768
1806
  });
769
1807
 
1808
+ function _toArray(arr) {
1809
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
1810
+ }
1811
+
1812
+ var css$8 = ".imgareaselect-border1,\n.imgareaselect-border2,\n.imgareaselect-border3,\n.imgareaselect-border4 {\n opacity: 0.5;\n}\n\n.imgareaselect-handle {\n background-color: #fff;\n border: solid 1px #000;\n opacity: 0.5;\n}\n\n.imgareaselect-outer {\n background-color: #000;\n opacity: 0.5;\n}\n";
1813
+ styleInject(css$8);
1814
+
1815
+ // version 0.9.10
1816
+ //
1817
+ // Copyright (c) 2008-2013 Michal Wojciechowski (odyniec.net)
1818
+ //
1819
+ // Dual licensed under the MIT (MIT-LICENSE.txt)
1820
+ // and GPL (GPL-LICENSE.txt) licenses.
1821
+ //
1822
+ // http://odyniec.net/projects/imgareaselect/
1823
+
1824
+ (function ($) {
1825
+ //
1826
+ // Math functions will be used extensively, so it's convenient to make a few
1827
+ // shortcuts
1828
+ //
1829
+ var abs = Math.abs,
1830
+ max = Math.max,
1831
+ min = Math.min,
1832
+ round = Math.round; //
1833
+ // Create a new HTML div element
1834
+ //
1835
+ // @return A jQuery object representing the new element
1836
+ //
1837
+
1838
+ function div() {
1839
+ return $('<div/>');
1840
+ } //
1841
+ // imgAreaSelect initialization
1842
+ //
1843
+ // @param img
1844
+ // A HTML image element to attach the plugin to
1845
+ // @param options
1846
+ // An options object
1847
+ //
1848
+
1849
+
1850
+ $.imgAreaSelect = function (img, options) {
1851
+ var
1852
+ /* jQuery object representing the image */
1853
+ $img = $(img),
1854
+
1855
+ /* Has the image finished loading? */
1856
+ imgLoaded,
1857
+
1858
+ /* Plugin elements */
1859
+
1860
+ /* Container box */
1861
+ $box = div(),
1862
+
1863
+ /* Selection area */
1864
+ $area = div(),
1865
+
1866
+ /* Border (four divs) */
1867
+ $border = div().add(div()).add(div()).add(div()),
1868
+
1869
+ /* Outer area (four divs) */
1870
+ $outer = div().add(div()).add(div()).add(div()),
1871
+
1872
+ /* Handles (empty by default, initialized in setOptions()) */
1873
+ $handles = $([]),
1874
+
1875
+ /*
1876
+ * Additional element to work around a cursor problem in Opera
1877
+ * (explained later)
1878
+ */
1879
+ $areaOpera,
1880
+
1881
+ /* Image position (relative to viewport) */
1882
+ left,
1883
+ top,
1884
+
1885
+ /* Image offset (as returned by .offset()) */
1886
+ imgOfs = {
1887
+ left: 0,
1888
+ top: 0
1889
+ },
1890
+
1891
+ /* Image dimensions (as returned by .width() and .height()) */
1892
+ imgWidth,
1893
+ imgHeight,
1894
+ gridX,
1895
+ gridY,
1896
+ gridSteps = 20,
1897
+
1898
+ /*
1899
+ * jQuery object representing the parent element that the plugin
1900
+ * elements are appended to
1901
+ */
1902
+ $parent,
1903
+
1904
+ /* Parent element offset (as returned by .offset()) */
1905
+ parOfs = {
1906
+ left: 0,
1907
+ top: 0
1908
+ },
1909
+
1910
+ /* Base z-index for plugin elements */
1911
+ zIndex = 0,
1912
+
1913
+ /* Plugin elements position */
1914
+ position = 'absolute',
1915
+
1916
+ /* X/Y coordinates of the starting point for move/resize operations */
1917
+ startX,
1918
+ startY,
1919
+
1920
+ /* Horizontal and vertical scaling factors */
1921
+ scaleX,
1922
+ scaleY,
1923
+
1924
+ /* Current resize mode ("nw", "se", etc.) */
1925
+ resize,
1926
+
1927
+ /* Selection area constraints */
1928
+ minWidth,
1929
+ minHeight,
1930
+ maxWidth,
1931
+ maxHeight,
1932
+
1933
+ /* Aspect ratio to maintain (floating point number) */
1934
+ aspectRatio,
1935
+
1936
+ /* Are the plugin elements currently displayed? */
1937
+ shown,
1938
+
1939
+ /* Current selection (relative to parent element) */
1940
+ x1,
1941
+ y1,
1942
+ x2,
1943
+ y2,
1944
+
1945
+ /* Current selection (relative to scaled image) */
1946
+ selection = {
1947
+ x1: 0,
1948
+ y1: 0,
1949
+ x2: 0,
1950
+ y2: 0,
1951
+ width: 0,
1952
+ height: 0
1953
+ },
1954
+
1955
+ /* Document element */
1956
+ docElem = document.documentElement,
1957
+
1958
+ /* User agent */
1959
+ ua = navigator.userAgent,
1960
+
1961
+ /* Various helper variables used throughout the code */
1962
+ $p,
1963
+ d,
1964
+ i,
1965
+ o,
1966
+ w,
1967
+ h,
1968
+ adjusted;
1969
+ /*
1970
+ * Translate selection coordinates (relative to scaled image) to viewport
1971
+ * coordinates (relative to parent element)
1972
+ */
1973
+ //
1974
+ // Translate selection X to viewport X
1975
+ //
1976
+ // @param x
1977
+ // Selection X
1978
+ // @return Viewport X
1979
+ //
1980
+
1981
+ function viewX(x) {
1982
+ return x + imgOfs.left - parOfs.left;
1983
+ } //
1984
+ // Translate selection Y to viewport Y
1985
+ //
1986
+ // @param y
1987
+ // Selection Y
1988
+ // @return Viewport Y
1989
+ //
1990
+
1991
+
1992
+ function viewY(y) {
1993
+ return y + imgOfs.top - parOfs.top;
1994
+ }
1995
+ /*
1996
+ * Translate viewport coordinates to selection coordinates
1997
+ */
1998
+ //
1999
+ // Translate viewport X to selection X
2000
+ //
2001
+ // @param x
2002
+ // Viewport X
2003
+ // @return Selection X
2004
+ //
2005
+
2006
+
2007
+ function selX(x) {
2008
+ return x - imgOfs.left + parOfs.left;
2009
+ } //
2010
+ // Translate viewport Y to selection Y
2011
+ //
2012
+ // @param y
2013
+ // Viewport Y
2014
+ // @return Selection Y
2015
+ //
2016
+
2017
+
2018
+ function selY(y) {
2019
+ return y - imgOfs.top + parOfs.top;
2020
+ }
2021
+ /*
2022
+ * Translate event coordinates (relative to document) to viewport
2023
+ * coordinates
2024
+ */
2025
+ //
2026
+ // Get event X and translate it to viewport X
2027
+ //
2028
+ // @param event
2029
+ // The event object
2030
+ // @return Viewport X
2031
+ //
2032
+
2033
+
2034
+ function evX(event) {
2035
+ return event.pageX - parOfs.left;
2036
+ } //
2037
+ // Get event Y and translate it to viewport Y
2038
+ //
2039
+ // @param event
2040
+ // The event object
2041
+ // @return Viewport Y
2042
+ //
2043
+
2044
+
2045
+ function evY(event) {
2046
+ return event.pageY - parOfs.top;
2047
+ } //
2048
+ // Get the current selection
2049
+ //
2050
+ // @param noScale
2051
+ // If set to <code>true</code>, scaling is not applied to the
2052
+ // returned selection
2053
+ // @return Selection object
2054
+ //
2055
+
2056
+
2057
+ function getSelection(noScale) {
2058
+ var sx = noScale || scaleX,
2059
+ sy = noScale || scaleY;
2060
+ return {
2061
+ x1: round(selection.x1 * sx),
2062
+ y1: round(selection.y1 * sy),
2063
+ x2: round(selection.x2 * sx),
2064
+ y2: round(selection.y2 * sy),
2065
+ width: round(selection.x2 * sx) - round(selection.x1 * sx),
2066
+ height: round(selection.y2 * sy) - round(selection.y1 * sy)
2067
+ };
2068
+ } //
2069
+ // Set the current selection
2070
+ //
2071
+ // @param x1
2072
+ // X coordinate of the upper left corner of the selection area
2073
+ // @param y1
2074
+ // Y coordinate of the upper left corner of the selection area
2075
+ // @param x2
2076
+ // X coordinate of the lower right corner of the selection area
2077
+ // @param y2
2078
+ // Y coordinate of the lower right corner of the selection area
2079
+ // @param noScale
2080
+ // If set to <code>true</code>, scaling is not applied to the
2081
+ // new selection
2082
+ //
2083
+
2084
+
2085
+ function setSelection(x1, y1, x2, y2, noScale) {
2086
+ var sx = noScale || scaleX,
2087
+ sy = noScale || scaleY;
2088
+ selection = {
2089
+ x1: round(x1 / sx || 0),
2090
+ y1: round(y1 / sy || 0),
2091
+ x2: round(x2 / sx || 0),
2092
+ y2: round(y2 / sy || 0)
2093
+ };
2094
+ selection.width = selection.x2 - selection.x1;
2095
+ selection.height = selection.y2 - selection.y1;
2096
+ } //
2097
+ // Recalculate image and parent offsets
2098
+ //
2099
+
2100
+
2101
+ function adjust() {
2102
+ /*
2103
+ * Do not adjust if image has not yet loaded or if width is not a
2104
+ * positive number. The latter might happen when imgAreaSelect is put
2105
+ * on a parent element which is then hidden.
2106
+ */
2107
+ if (!imgLoaded || !$img.width()) return;
2108
+ /*
2109
+ * Get image offset. The .offset() method returns float values, so they
2110
+ * need to be rounded.
2111
+ */
2112
+
2113
+ imgOfs = {
2114
+ left: round($img.offset().left),
2115
+ top: round($img.offset().top)
2116
+ };
2117
+ /* Get image dimensions */
2118
+
2119
+ imgWidth = $img.innerWidth();
2120
+ imgHeight = $img.innerHeight();
2121
+ imgOfs.top += $img.outerHeight() - imgHeight >> 1;
2122
+ imgOfs.left += $img.outerWidth() - imgWidth >> 1;
2123
+ /* Set minimum and maximum selection area dimensions */
2124
+
2125
+ minWidth = round(options.minWidth / scaleX) || 0;
2126
+ minHeight = round(options.minHeight / scaleY) || 0;
2127
+ maxWidth = round(min(options.maxWidth / scaleX || 1 << 24, imgWidth));
2128
+ maxHeight = round(min(options.maxHeight / scaleY || 1 << 24, imgHeight));
2129
+
2130
+ if (imgWidth > imgHeight) {
2131
+ gridX = imgWidth / gridSteps;
2132
+ gridY = imgHeight < gridX ? imgHeight : gridX + imgHeight % gridX / Math.floor(imgHeight / gridX);
2133
+ } else {
2134
+ gridY = imgHeight / gridSteps;
2135
+ gridX = imgWidth < gridY ? imgWidth : gridY + imgWidth % gridY / Math.floor(imgWidth / gridY);
2136
+ }
2137
+ /*
2138
+ * Workaround for jQuery 1.3.2 incorrect offset calculation, originally
2139
+ * observed in Safari 3. Firefox 2 is also affected.
2140
+ */
2141
+
2142
+
2143
+ if ($().jquery == '1.3.2' && position == 'fixed' && !docElem['getBoundingClientRect']) {
2144
+ imgOfs.top += max(document.body.scrollTop, docElem.scrollTop);
2145
+ imgOfs.left += max(document.body.scrollLeft, docElem.scrollLeft);
2146
+ }
2147
+ /* Determine parent element offset */
2148
+
2149
+
2150
+ parOfs = /absolute|relative/.test($parent.css('position')) ? {
2151
+ left: round($parent.offset().left) - $parent.scrollLeft(),
2152
+ top: round($parent.offset().top) - $parent.scrollTop()
2153
+ } : position == 'fixed' ? {
2154
+ left: $(document).scrollLeft(),
2155
+ top: $(document).scrollTop()
2156
+ } : {
2157
+ left: 0,
2158
+ top: 0
2159
+ };
2160
+ left = viewX(0);
2161
+ top = viewY(0);
2162
+ /*
2163
+ * Check if selection area is within image boundaries, adjust if
2164
+ * necessary
2165
+ */
2166
+
2167
+ if (selection.x2 > imgWidth || selection.y2 > imgHeight) doResize();
2168
+ } //
2169
+ // Update plugin elements
2170
+ //
2171
+ // @param resetKeyPress
2172
+ // If set to <code>false</code>, this instance's keypress
2173
+ // event handler is not activated
2174
+ //
2175
+
2176
+
2177
+ function update(resetKeyPress) {
2178
+ /* If plugin elements are hidden, do nothing */
2179
+ if (!shown) return;
2180
+ /*
2181
+ * Set the position and size of the container box and the selection area
2182
+ * inside it
2183
+ */
2184
+
2185
+ $box.css({
2186
+ left: viewX(selection.x1),
2187
+ top: viewY(selection.y1)
2188
+ }).add($area).width(w = selection.width).height(h = selection.height);
2189
+ /*
2190
+ * Reset the position of selection area, borders, and handles (IE6/IE7
2191
+ * position them incorrectly if we don't do this)
2192
+ */
2193
+
2194
+ $area.add($border).add($handles).css({
2195
+ left: 0,
2196
+ top: 0
2197
+ });
2198
+ /* Set border dimensions */
2199
+
2200
+ $border.width(max(w - $border.outerWidth() + $border.innerWidth(), 0)).height(max(h - $border.outerHeight() + $border.innerHeight(), 0));
2201
+ /* Arrange the outer area elements */
2202
+
2203
+ $($outer[0]).css({
2204
+ left: left,
2205
+ top: top,
2206
+ width: selection.x1,
2207
+ height: imgHeight
2208
+ });
2209
+ $($outer[1]).css({
2210
+ left: left + selection.x1,
2211
+ top: top,
2212
+ width: w,
2213
+ height: selection.y1
2214
+ });
2215
+ $($outer[2]).css({
2216
+ left: left + selection.x2,
2217
+ top: top,
2218
+ width: imgWidth - selection.x2,
2219
+ height: imgHeight
2220
+ });
2221
+ $($outer[3]).css({
2222
+ left: left + selection.x1,
2223
+ top: top + selection.y2,
2224
+ width: w,
2225
+ height: imgHeight - selection.y2
2226
+ });
2227
+ w -= $handles.outerWidth();
2228
+ h -= $handles.outerHeight();
2229
+ /* Arrange handles */
2230
+
2231
+ switch ($handles.length) {
2232
+ case 8:
2233
+ $($handles[4]).css({
2234
+ left: w >> 1
2235
+ });
2236
+ $($handles[5]).css({
2237
+ left: w,
2238
+ top: h >> 1
2239
+ });
2240
+ $($handles[6]).css({
2241
+ left: w >> 1,
2242
+ top: h
2243
+ });
2244
+ $($handles[7]).css({
2245
+ top: h >> 1
2246
+ });
2247
+
2248
+ case 4:
2249
+ $handles.slice(1, 3).css({
2250
+ left: w
2251
+ });
2252
+ $handles.slice(2, 4).css({
2253
+ top: h
2254
+ });
2255
+ }
2256
+
2257
+ if (resetKeyPress !== false) {
2258
+ /*
2259
+ * Need to reset the document keypress event handler -- unbind the
2260
+ * current handler
2261
+ */
2262
+ if ($.imgAreaSelect.onKeyPress != docKeyPress) $(document).unbind($.imgAreaSelect.keyPress, $.imgAreaSelect.onKeyPress);
2263
+ if (options.keys)
2264
+ /*
2265
+ * Set the document keypress event handler to this instance's
2266
+ * docKeyPress() function
2267
+ */
2268
+ $(document)[$.imgAreaSelect.keyPress]($.imgAreaSelect.onKeyPress = docKeyPress);
2269
+ }
2270
+ /*
2271
+ * Internet Explorer displays 1px-wide dashed borders incorrectly by
2272
+ * filling the spaces between dashes with white. Toggling the margin
2273
+ * property between 0 and "auto" fixes this in IE6 and IE7 (IE8 is still
2274
+ * broken). This workaround is not perfect, as it requires setTimeout()
2275
+ * and thus causes the border to flicker a bit, but I haven't found a
2276
+ * better solution.
2277
+ *
2278
+ * Note: This only happens with CSS borders, set with the borderWidth,
2279
+ * borderOpacity, borderColor1, and borderColor2 options (which are now
2280
+ * deprecated). Borders created with GIF background images are fine.
2281
+ */
2282
+
2283
+
2284
+ if (msie && $border.outerWidth() - $border.innerWidth() == 2) {
2285
+ $border.css('margin', 0);
2286
+ setTimeout(function () {
2287
+ $border.css('margin', 'auto');
2288
+ }, 0);
2289
+ }
2290
+ } //
2291
+ // Do the complete update sequence: recalculate offsets, update the
2292
+ // elements, and set the correct values of x1, y1, x2, and y2.
2293
+ //
2294
+ // @param resetKeyPress
2295
+ // If set to <code>false</code>, this instance's keypress
2296
+ // event handler is not activated
2297
+ //
2298
+
2299
+
2300
+ function doUpdate(resetKeyPress) {
2301
+ adjust();
2302
+ update(resetKeyPress);
2303
+ x1 = viewX(selection.x1);
2304
+ y1 = viewY(selection.y1);
2305
+ x2 = viewX(selection.x2);
2306
+ y2 = viewY(selection.y2);
2307
+ } //
2308
+ // Hide or fade out an element (or multiple elements)
2309
+ //
2310
+ // @param $elem
2311
+ // A jQuery object containing the element(s) to hide/fade out
2312
+ // @param fn
2313
+ // Callback function to be called when fadeOut() completes
2314
+ //
2315
+
2316
+
2317
+ function hide($elem, fn) {
2318
+ options.fadeSpeed ? $elem.fadeOut(options.fadeSpeed, fn) : $elem.hide();
2319
+ } //
2320
+ // Selection area mousemove event handler
2321
+ //
2322
+ // @param event
2323
+ // The event object
2324
+ //
2325
+
2326
+
2327
+ function areaMouseMove(event) {
2328
+ var x = selX(evX(event)) - selection.x1,
2329
+ y = selY(evY(event)) - selection.y1;
2330
+
2331
+ if (!adjusted) {
2332
+ adjust();
2333
+ adjusted = true;
2334
+ $box.one('mouseout', function () {
2335
+ adjusted = false;
2336
+ });
2337
+ }
2338
+ /* Clear the resize mode */
2339
+
2340
+
2341
+ resize = '';
2342
+
2343
+ if (options.resizable) {
2344
+ /*
2345
+ * Check if the mouse pointer is over the resize margin area and set
2346
+ * the resize mode accordingly
2347
+ */
2348
+ if (y <= options.resizeMargin) resize = 'n';else if (y >= selection.height - options.resizeMargin) resize = 's';
2349
+ if (x <= options.resizeMargin) resize += 'w';else if (x >= selection.width - options.resizeMargin) resize += 'e';
2350
+ }
2351
+
2352
+ $box.css('cursor', resize ? resize + '-resize' : options.movable ? 'move' : '');
2353
+ if ($areaOpera) $areaOpera.toggle();
2354
+ } //
2355
+ // Document mouseup event handler
2356
+ //
2357
+ // @param event
2358
+ // The event object
2359
+ //
2360
+
2361
+
2362
+ function docMouseUp(event) {
2363
+ /* Set back the default cursor */
2364
+ $('body').css('cursor', '');
2365
+ /*
2366
+ * If autoHide is enabled, or if the selection has zero width/height,
2367
+ * hide the selection and the outer area
2368
+ */
2369
+
2370
+ if (options.autoHide || selection.width * selection.height == 0) hide($box.add($outer), function () {
2371
+ $(this).hide();
2372
+ });
2373
+ $(document).unbind('mousemove', selectingMouseMove);
2374
+ $box.mousemove(areaMouseMove);
2375
+ options.onSelectEnd(img, getSelection());
2376
+ } //
2377
+ // Selection area mousedown event handler
2378
+ //
2379
+ // @param event
2380
+ // The event object
2381
+ // @return false
2382
+ //
2383
+
2384
+
2385
+ function areaMouseDown(event) {
2386
+ if (event.which != 1) return false;
2387
+ adjust();
2388
+
2389
+ if (resize) {
2390
+ /* Resize mode is in effect */
2391
+ $('body').css('cursor', resize + '-resize');
2392
+ x1 = viewX(selection[/w/.test(resize) ? 'x2' : 'x1']);
2393
+ y1 = viewY(selection[/n/.test(resize) ? 'y2' : 'y1']);
2394
+ $(document).mousemove(selectingMouseMove).one('mouseup', docMouseUp);
2395
+ $box.unbind('mousemove', areaMouseMove);
2396
+ } else if (options.movable) {
2397
+ startX = left + selection.x1 - evX(event);
2398
+ startY = top + selection.y1 - evY(event);
2399
+ $box.unbind('mousemove', areaMouseMove);
2400
+ $(document).mousemove(movingMouseMove).one('mouseup', function () {
2401
+ options.onSelectEnd(img, getSelection());
2402
+ $(document).unbind('mousemove', movingMouseMove);
2403
+ $box.mousemove(areaMouseMove);
2404
+ });
2405
+ } else $img.mousedown(event);
2406
+
2407
+ return false;
2408
+ } //
2409
+ // Adjust the x2/y2 coordinates to maintain aspect ratio (if defined)
2410
+ //
2411
+ // @param xFirst
2412
+ // If set to <code>true</code>, calculate x2 first. Otherwise,
2413
+ // calculate y2 first.
2414
+ //
2415
+
2416
+
2417
+ function fixAspectRatio(xFirst) {
2418
+ if (aspectRatio) if (xFirst) {
2419
+ x2 = max(left, min(left + imgWidth, x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1)));
2420
+ y2 = round(max(top, min(top + imgHeight, y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1))));
2421
+ x2 = round(x2);
2422
+ } else {
2423
+ y2 = max(top, min(top + imgHeight, y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1)));
2424
+ x2 = round(max(left, min(left + imgWidth, x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1))));
2425
+ y2 = round(y2);
2426
+ }
2427
+ } //
2428
+ // Resize the selection area respecting the minimum/maximum dimensions and
2429
+ // aspect ratio
2430
+ //
2431
+
2432
+
2433
+ function doResize() {
2434
+ /*
2435
+ * Make sure the top left corner of the selection area stays within
2436
+ * image boundaries (it might not if the image source was dynamically
2437
+ * changed).
2438
+ */
2439
+ x1 = min(x1, left + imgWidth);
2440
+ y1 = min(y1, top + imgHeight);
2441
+
2442
+ if (abs(x2 - x1) < minWidth) {
2443
+ /* Selection width is smaller than minWidth */
2444
+ x2 = x1 - minWidth * (x2 < x1 || -1);
2445
+ if (x2 < left) x1 = left + minWidth;else if (x2 > left + imgWidth) x1 = left + imgWidth - minWidth;
2446
+ }
2447
+
2448
+ if (abs(y2 - y1) < minHeight) {
2449
+ /* Selection height is smaller than minHeight */
2450
+ y2 = y1 - minHeight * (y2 < y1 || -1);
2451
+ if (y2 < top) y1 = top + minHeight;else if (y2 > top + imgHeight) y1 = top + imgHeight - minHeight;
2452
+ }
2453
+
2454
+ x2 = max(left, min(x2, left + imgWidth));
2455
+ y2 = max(top, min(y2, top + imgHeight));
2456
+ fixAspectRatio(abs(x2 - x1) < abs(y2 - y1) * aspectRatio);
2457
+
2458
+ if (abs(x2 - x1) > maxWidth) {
2459
+ /* Selection width is greater than maxWidth */
2460
+ x2 = x1 - maxWidth * (x2 < x1 || -1);
2461
+ fixAspectRatio();
2462
+ }
2463
+
2464
+ if (abs(y2 - y1) > maxHeight) {
2465
+ /* Selection height is greater than maxHeight */
2466
+ y2 = y1 - maxHeight * (y2 < y1 || -1);
2467
+ fixAspectRatio(true);
2468
+ }
2469
+
2470
+ snapToGrid();
2471
+ selection = {
2472
+ x1: selX(min(x1, x2)),
2473
+ x2: selX(max(x1, x2)),
2474
+ y1: selY(min(y1, y2)),
2475
+ y2: selY(max(y1, y2)),
2476
+ width: abs(x2 - x1),
2477
+ height: abs(y2 - y1)
2478
+ };
2479
+ update();
2480
+ options.onSelectChange(img, getSelection());
2481
+ } //
2482
+ // Mousemove event handler triggered when the user is selecting an area
2483
+ //
2484
+ // @param event
2485
+ // The event object
2486
+ // @return false
2487
+ //
2488
+
2489
+
2490
+ function selectingMouseMove(event) {
2491
+ x2 = /w|e|^$/.test(resize) || aspectRatio ? evX(event) : viewX(selection.x2);
2492
+ y2 = /n|s|^$/.test(resize) || aspectRatio ? evY(event) : viewY(selection.y2);
2493
+ doResize();
2494
+ return false;
2495
+ } //
2496
+ // Move the selection area
2497
+ //
2498
+ // @param newX1
2499
+ // New viewport X1
2500
+ // @param newY1
2501
+ // New viewport Y1
2502
+ //
2503
+
2504
+
2505
+ function doMove(newX1, newY1) {
2506
+ x1 = newX1;
2507
+ y1 = newY1;
2508
+ snapToGrid();
2509
+ x2 = x1 + selection.width;
2510
+ y2 = y1 + selection.height;
2511
+ $.extend(selection, {
2512
+ x1: selX(x1),
2513
+ y1: selY(y1),
2514
+ x2: selX(x2),
2515
+ y2: selY(y2)
2516
+ });
2517
+ update();
2518
+ options.onSelectChange(img, getSelection());
2519
+ }
2520
+
2521
+ function snapToGrid() {
2522
+ x1 = Math.round(x1 / gridX) * gridX;
2523
+ x2 = Math.round(x2 / gridX) * gridX;
2524
+ y1 = Math.round(y1 / gridY) * gridY;
2525
+ y2 = Math.round(y2 / gridY) * gridY;
2526
+ } //
2527
+ // Mousemove event handler triggered when the selection area is being moved
2528
+ //
2529
+ // @param event
2530
+ // The event object
2531
+ // @return false
2532
+ //
2533
+
2534
+
2535
+ function movingMouseMove(event) {
2536
+ x1 = max(left, min(startX + evX(event), left + imgWidth - selection.width));
2537
+ y1 = max(top, min(startY + evY(event), top + imgHeight - selection.height));
2538
+ doMove(x1, y1);
2539
+ event.preventDefault();
2540
+ return false;
2541
+ } //
2542
+ // Start selection
2543
+ //
2544
+
2545
+
2546
+ function startSelection() {
2547
+ $(document).unbind('mousemove', startSelection);
2548
+ adjust();
2549
+ x2 = x1;
2550
+ y2 = y1;
2551
+ doResize();
2552
+ resize = '';
2553
+ if (!$outer.is(':visible'))
2554
+ /* Show the plugin elements */
2555
+ $box.add($outer).hide().fadeIn(options.fadeSpeed || 0);
2556
+ shown = true;
2557
+ $(document).unbind('mouseup', cancelSelection).mousemove(selectingMouseMove).one('mouseup', docMouseUp);
2558
+ $box.unbind('mousemove', areaMouseMove);
2559
+ options.onSelectStart(img, getSelection());
2560
+ } //
2561
+ // Cancel selection
2562
+ //
2563
+
2564
+
2565
+ function cancelSelection() {
2566
+ $(document).unbind('mousemove', startSelection).unbind('mouseup', cancelSelection);
2567
+ hide($box.add($outer));
2568
+ setSelection(selX(x1), selY(y1), selX(x1), selY(y1));
2569
+ /* If this is an API call, callback functions should not be triggered */
2570
+
2571
+ if (!(this instanceof $.imgAreaSelect)) {
2572
+ options.onSelectChange(img, getSelection());
2573
+ options.onSelectEnd(img, getSelection());
2574
+ }
2575
+ } //
2576
+ // Image mousedown event handler
2577
+ //
2578
+ // @param event
2579
+ // The event object
2580
+ // @return false
2581
+ //
2582
+
2583
+
2584
+ function imgMouseDown(event) {
2585
+ /* Ignore the event if animation is in progress */
2586
+ if (event.which != 1 || $outer.is(':animated')) return false;
2587
+ adjust();
2588
+ startX = x1 = evX(event);
2589
+ startY = y1 = evY(event);
2590
+ /* Selection will start when the mouse is moved */
2591
+
2592
+ $(document).mousemove(startSelection).mouseup(cancelSelection);
2593
+ return false;
2594
+ } //
2595
+ // Window resize event handler
2596
+ //
2597
+
2598
+
2599
+ function windowResize() {
2600
+ doUpdate(false);
2601
+ } //
2602
+ // Image load event handler. This is the final part of the initialization
2603
+ // process.
2604
+ //
2605
+
2606
+
2607
+ function imgLoad() {
2608
+ imgLoaded = true;
2609
+ /* Set options */
2610
+
2611
+ setOptions(options = $.extend({
2612
+ classPrefix: 'imgareaselect',
2613
+ movable: true,
2614
+ parent: 'body',
2615
+ resizable: true,
2616
+ resizeMargin: 10,
2617
+ onInit: function onInit() {},
2618
+ onSelectStart: function onSelectStart() {},
2619
+ onSelectChange: function onSelectChange() {},
2620
+ onSelectEnd: function onSelectEnd() {}
2621
+ }, options));
2622
+ $box.add($outer).css({
2623
+ visibility: ''
2624
+ });
2625
+
2626
+ if (options.show) {
2627
+ shown = true;
2628
+ adjust();
2629
+ update();
2630
+ $box.add($outer).hide().fadeIn(options.fadeSpeed || 0);
2631
+ }
2632
+ /*
2633
+ * Call the onInit callback. The setTimeout() call is used to ensure
2634
+ * that the plugin has been fully initialized and the object instance is
2635
+ * available (so that it can be obtained in the callback).
2636
+ */
2637
+
2638
+
2639
+ setTimeout(function () {
2640
+ options.onInit(img, getSelection());
2641
+ }, 0);
2642
+ } //
2643
+ // Document keypress event handler
2644
+ //
2645
+ // @param event
2646
+ // The event object
2647
+ // @return false
2648
+ //
2649
+
2650
+
2651
+ var docKeyPress = function docKeyPress(event) {
2652
+ var k = options.keys,
2653
+ d,
2654
+ t,
2655
+ key = event.keyCode;
2656
+ d = !isNaN(k.alt) && (event.altKey || event.originalEvent.altKey) ? k.alt : !isNaN(k.ctrl) && event.ctrlKey ? k.ctrl : !isNaN(k.shift) && event.shiftKey ? k.shift : !isNaN(k.arrows) ? k.arrows : 10;
2657
+
2658
+ if (k.arrows == 'resize' || k.shift == 'resize' && event.shiftKey || k.ctrl == 'resize' && event.ctrlKey || k.alt == 'resize' && (event.altKey || event.originalEvent.altKey)) {
2659
+ /* Resize selection */
2660
+ switch (key) {
2661
+ case 37:
2662
+ /* Left */
2663
+ d = -d;
2664
+
2665
+ case 39:
2666
+ /* Right */
2667
+ t = max(x1, x2);
2668
+ x1 = min(x1, x2);
2669
+ x2 = max(t + d, x1);
2670
+ fixAspectRatio();
2671
+ break;
2672
+
2673
+ case 38:
2674
+ /* Up */
2675
+ d = -d;
2676
+
2677
+ case 40:
2678
+ /* Down */
2679
+ t = max(y1, y2);
2680
+ y1 = min(y1, y2);
2681
+ y2 = max(t + d, y1);
2682
+ fixAspectRatio(true);
2683
+ break;
2684
+
2685
+ default:
2686
+ return;
2687
+ }
2688
+
2689
+ doResize();
2690
+ } else {
2691
+ /* Move selection */
2692
+ x1 = min(x1, x2);
2693
+ y1 = min(y1, y2);
2694
+
2695
+ switch (key) {
2696
+ case 37:
2697
+ /* Left */
2698
+ doMove(max(x1 - d, left), y1);
2699
+ break;
2700
+
2701
+ case 38:
2702
+ /* Up */
2703
+ doMove(x1, max(y1 - d, top));
2704
+ break;
2705
+
2706
+ case 39:
2707
+ /* Right */
2708
+ doMove(x1 + min(d, imgWidth - selX(x2)), y1);
2709
+ break;
2710
+
2711
+ case 40:
2712
+ /* Down */
2713
+ doMove(x1, y1 + min(d, imgHeight - selY(y2)));
2714
+ break;
2715
+
2716
+ default:
2717
+ return;
2718
+ }
2719
+ }
2720
+
2721
+ return false;
2722
+ }; //
2723
+ // Apply style options to plugin element (or multiple elements)
2724
+ //
2725
+ // @param $elem
2726
+ // A jQuery object representing the element(s) to style
2727
+ // @param props
2728
+ // An object that maps option names to corresponding CSS
2729
+ // properties
2730
+ //
2731
+
2732
+
2733
+ function styleOptions($elem, props) {
2734
+ for (var option in props) {
2735
+ if (options[option] !== undefined) $elem.css(props[option], options[option]);
2736
+ }
2737
+ } //
2738
+ // Set plugin options
2739
+ //
2740
+ // @param newOptions
2741
+ // The new options object
2742
+ //
2743
+
2744
+
2745
+ function setOptions(newOptions) {
2746
+ if (newOptions.parent) ($parent = $(newOptions.parent)).append($box.add($outer));
2747
+ /* Merge the new options with the existing ones */
2748
+
2749
+ $.extend(options, newOptions);
2750
+ adjust();
2751
+
2752
+ if (newOptions.handles != null) {
2753
+ /* Recreate selection area handles */
2754
+ $handles.remove();
2755
+ $handles = $([]);
2756
+ i = newOptions.handles ? newOptions.handles == 'corners' ? 4 : 8 : 0;
2757
+
2758
+ while (i--) {
2759
+ $handles = $handles.add(div());
2760
+ }
2761
+ /* Add a class to handles and set the CSS properties */
2762
+
2763
+
2764
+ $handles.addClass(options.classPrefix + '-handle').css({
2765
+ position: 'absolute',
2766
+
2767
+ /*
2768
+ * The font-size property needs to be set to zero, otherwise
2769
+ * Internet Explorer makes the handles too large
2770
+ */
2771
+ fontSize: 0,
2772
+ zIndex: zIndex + 1 || 1
2773
+ });
2774
+ /*
2775
+ * If handle width/height has not been set with CSS rules, set the
2776
+ * default 5px
2777
+ */
2778
+
2779
+ if (!parseInt($handles.css('width')) >= 0) $handles.width(5).height(5);
2780
+ /*
2781
+ * If the borderWidth option is in use, add a solid border to
2782
+ * handles
2783
+ */
2784
+
2785
+ if (o = options.borderWidth) $handles.css({
2786
+ borderWidth: o,
2787
+ borderStyle: 'solid'
2788
+ });
2789
+ /* Apply other style options */
2790
+
2791
+ styleOptions($handles, {
2792
+ borderColor1: 'border-color',
2793
+ borderColor2: 'background-color',
2794
+ borderOpacity: 'opacity'
2795
+ });
2796
+ }
2797
+ /* Calculate scale factors */
2798
+
2799
+
2800
+ scaleX = options.imageWidth / imgWidth || 1;
2801
+ scaleY = options.imageHeight / imgHeight || 1;
2802
+ /* Set selection */
2803
+
2804
+ if (newOptions.x1 != null) {
2805
+ setSelection(newOptions.x1, newOptions.y1, newOptions.x2, newOptions.y2);
2806
+ newOptions.show = !newOptions.hide;
2807
+ }
2808
+
2809
+ if (newOptions.keys)
2810
+ /* Enable keyboard support */
2811
+ options.keys = $.extend({
2812
+ shift: 1,
2813
+ ctrl: 'resize'
2814
+ }, newOptions.keys);
2815
+ /* Add classes to plugin elements */
2816
+
2817
+ $outer.addClass(options.classPrefix + '-outer');
2818
+ $area.addClass(options.classPrefix + '-selection');
2819
+
2820
+ for (i = 0; i++ < 4;) {
2821
+ $($border[i - 1]).addClass(options.classPrefix + '-border' + i);
2822
+ }
2823
+ /* Apply style options */
2824
+
2825
+
2826
+ styleOptions($area, {
2827
+ selectionColor: 'background-color',
2828
+ selectionOpacity: 'opacity'
2829
+ });
2830
+ styleOptions($border, {
2831
+ borderOpacity: 'opacity',
2832
+ borderWidth: 'border-width'
2833
+ });
2834
+ styleOptions($outer, {
2835
+ outerColor: 'background-color',
2836
+ outerOpacity: 'opacity'
2837
+ });
2838
+ if (o = options.borderColor1) $($border[0]).css({
2839
+ borderStyle: 'solid',
2840
+ borderColor: o
2841
+ });
2842
+ if (o = options.borderColor2) $($border[1]).css({
2843
+ borderStyle: 'dashed',
2844
+ borderColor: o
2845
+ });
2846
+ /* Append all the selection area elements to the container box */
2847
+
2848
+ $box.append($area.add($border).add($areaOpera)).append($handles);
2849
+
2850
+ if (msie) {
2851
+ if (o = ($outer.css('filter') || '').match(/opacity=(\d+)/)) $outer.css('opacity', o[1] / 100);
2852
+ if (o = ($border.css('filter') || '').match(/opacity=(\d+)/)) $border.css('opacity', o[1] / 100);
2853
+ }
2854
+
2855
+ if (newOptions.hide) hide($box.add($outer));else if (newOptions.show && imgLoaded) {
2856
+ shown = true;
2857
+ $box.add($outer).fadeIn(options.fadeSpeed || 0);
2858
+ doUpdate();
2859
+ }
2860
+ /* Calculate the aspect ratio factor */
2861
+
2862
+ aspectRatio = (d = (options.aspectRatio || '').split(/:/))[0] / d[1];
2863
+ $img.add($outer).unbind('mousedown', imgMouseDown);
2864
+
2865
+ if (options.disable || options.enable === false) {
2866
+ /* Disable the plugin */
2867
+ $box.unbind('mousemove', areaMouseMove).unbind('mousedown', areaMouseDown);
2868
+ $(window).unbind('resize', windowResize);
2869
+ } else {
2870
+ if (options.enable || options.disable === false) {
2871
+ /* Enable the plugin */
2872
+ if (options.resizable || options.movable) $box.mousemove(areaMouseMove).mousedown(areaMouseDown);
2873
+ $(window).resize(windowResize);
2874
+ }
2875
+
2876
+ if (!options.persistent) $img.add($outer).mousedown(imgMouseDown);
2877
+ }
2878
+
2879
+ options.enable = options.disable = undefined;
2880
+ } //
2881
+ // Remove plugin completely
2882
+ //
2883
+
2884
+
2885
+ this.remove = function () {
2886
+ /*
2887
+ * Call setOptions with { disable: true } to unbind the event handlers
2888
+ */
2889
+ setOptions({
2890
+ disable: true
2891
+ });
2892
+ $box.add($outer).remove();
2893
+ };
2894
+ /*
2895
+ * Public API
2896
+ */
2897
+ //
2898
+ // Get current options
2899
+ //
2900
+ // @return An object containing the set of options currently in use
2901
+ //
2902
+
2903
+
2904
+ this.getOptions = function () {
2905
+ return options;
2906
+ }; //
2907
+ // Set plugin options
2908
+ //
2909
+ // @param newOptions
2910
+ // The new options object
2911
+ //
2912
+
2913
+
2914
+ this.setOptions = setOptions; //
2915
+ // Get the current selection
2916
+ //
2917
+ // @param noScale
2918
+ // If set to <code>true</code>, scaling is not applied to the
2919
+ // returned selection
2920
+ // @return Selection object
2921
+ //
2922
+
2923
+ this.getSelection = getSelection; //
2924
+ // Set the current selection
2925
+ //
2926
+ // @param x1
2927
+ // X coordinate of the upper left corner of the selection area
2928
+ // @param y1
2929
+ // Y coordinate of the upper left corner of the selection area
2930
+ // @param x2
2931
+ // X coordinate of the lower right corner of the selection area
2932
+ // @param y2
2933
+ // Y coordinate of the lower right corner of the selection area
2934
+ // @param noScale
2935
+ // If set to <code>true</code>, scaling is not applied to the
2936
+ // new selection
2937
+ //
2938
+
2939
+ this.setSelection = setSelection; //
2940
+ // Cancel selection
2941
+ //
2942
+
2943
+ this.cancelSelection = cancelSelection; //
2944
+ // Update plugin elements
2945
+ //
2946
+ // @param resetKeyPress
2947
+ // If set to <code>false</code>, this instance's keypress
2948
+ // event handler is not activated
2949
+ //
2950
+
2951
+ this.update = doUpdate;
2952
+ /* Do the dreaded browser detection */
2953
+
2954
+ var msie = (/msie ([\w.]+)/i.exec(ua) || [])[1],
2955
+ opera = /opera/i.test(ua),
2956
+ safari = /webkit/i.test(ua) && !/chrome/i.test(ua);
2957
+ /*
2958
+ * Traverse the image's parent elements (up to <body>) and find the
2959
+ * highest z-index
2960
+ */
2961
+
2962
+ $p = $img;
2963
+
2964
+ while ($p.length) {
2965
+ zIndex = max(zIndex, !isNaN($p.css('z-index')) ? $p.css('z-index') : zIndex);
2966
+ /* Also check if any of the ancestor elements has fixed position */
2967
+
2968
+ if ($p.css('position') == 'fixed') position = 'fixed';
2969
+ $p = $p.parent(':not(body)');
2970
+ }
2971
+ /*
2972
+ * If z-index is given as an option, it overrides the one found by the
2973
+ * above loop
2974
+ */
2975
+
2976
+
2977
+ zIndex = options.zIndex || zIndex;
2978
+ if (msie) $img.attr('unselectable', 'on');
2979
+ /*
2980
+ * In MSIE and WebKit, we need to use the keydown event instead of keypress
2981
+ */
2982
+
2983
+ $.imgAreaSelect.keyPress = msie || safari ? 'keydown' : 'keypress';
2984
+ /*
2985
+ * There is a bug affecting the CSS cursor property in Opera (observed in
2986
+ * versions up to 10.00) that prevents the cursor from being updated unless
2987
+ * the mouse leaves and enters the element again. To trigger the mouseover
2988
+ * event, we're adding an additional div to $box and we're going to toggle
2989
+ * it when mouse moves inside the selection area.
2990
+ */
2991
+
2992
+ if (opera) $areaOpera = div().css({
2993
+ width: '100%',
2994
+ height: '100%',
2995
+ position: 'absolute',
2996
+ zIndex: zIndex + 2 || 2
2997
+ });
2998
+ /*
2999
+ * We initially set visibility to "hidden" as a workaround for a weird
3000
+ * behaviour observed in Google Chrome 1.0.154.53 (on Windows XP). Normally
3001
+ * we would just set display to "none", but, for some reason, if we do so
3002
+ * then Chrome refuses to later display the element with .show() or
3003
+ * .fadeIn().
3004
+ */
3005
+
3006
+ $box.add($outer).css({
3007
+ visibility: 'hidden',
3008
+ position: position,
3009
+ overflow: 'hidden',
3010
+ zIndex: zIndex || '0'
3011
+ });
3012
+ $box.css({
3013
+ zIndex: zIndex + 2 || 2
3014
+ });
3015
+ $area.add($border).css({
3016
+ position: 'absolute',
3017
+ fontSize: 0
3018
+ });
3019
+ /*
3020
+ * If the image has been fully loaded, or if it is not really an image (eg.
3021
+ * a div), call imgLoad() immediately; otherwise, bind it to be called once
3022
+ * on image load event.
3023
+ */
3024
+
3025
+ img.complete || img.readyState == 'complete' || !$img.is('img') ? imgLoad() : $img.one('load', imgLoad);
3026
+ /*
3027
+ * MSIE 9.0 doesn't always fire the image load event -- resetting the src
3028
+ * attribute seems to trigger it. The check is for version 7 and above to
3029
+ * accommodate for MSIE 9 running in compatibility mode.
3030
+ */
3031
+
3032
+ if (!imgLoaded && msie && msie >= 7) img.src = img.src;
3033
+ }; //
3034
+ // Invoke imgAreaSelect on a jQuery object containing the image(s)
3035
+ //
3036
+ // @param options
3037
+ // Options object
3038
+ // @return The jQuery object or a reference to imgAreaSelect instance (if the
3039
+ // <code>instance</code> option was specified)
3040
+ //
3041
+
3042
+
3043
+ $.fn.imgAreaSelect = function (options) {
3044
+ options = options || {};
3045
+ this.each(function () {
3046
+ /* Is there already an imgAreaSelect instance bound to this element? */
3047
+ if ($(this).data('imgAreaSelect')) {
3048
+ /* Yes there is -- is it supposed to be removed? */
3049
+ if (options.remove) {
3050
+ /* Remove the plugin */
3051
+ $(this).data('imgAreaSelect').remove();
3052
+ $(this).removeData('imgAreaSelect');
3053
+ } else
3054
+ /* Reset options */
3055
+ $(this).data('imgAreaSelect').setOptions(options);
3056
+ } else if (!options.remove) {
3057
+ /* No exising instance -- create a new one */
3058
+
3059
+ /*
3060
+ * If neither the "enable" nor the "disable" option is present, add
3061
+ * "enable" as the default
3062
+ */
3063
+ if (options.enable === undefined && options.disable === undefined) options.enable = true;
3064
+ $(this).data('imgAreaSelect', new $.imgAreaSelect(this, options));
3065
+ }
3066
+ });
3067
+ if (options.instance)
3068
+ /*
3069
+ * Return the imgAreaSelect instance bound to the first element in the
3070
+ * set
3071
+ */
3072
+ return $(this).data('imgAreaSelect');
3073
+ return this;
3074
+ };
3075
+ })($);
3076
+
3077
+ var css$9 = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAVB0lEQVR4nO1deXAc1Zn/vfe6p+eUZMvYxsbGYHwAxnaMveSEQIAssCTZTYVNNiEJqVzsEthANktcyZadpCoJm4Oq3bAH2YTNHULYEI6wsKydGEKE5UM2ljG2EbIs2ZItzYyk0Uyfb//o7pnunp7pnpmW5arVr6r1+njzju/3fd977+tDwCxmMYtZzGIWs5jFLGYxi/9vIDPdgJrgnK7r6XkzY+K1RCObmM5WUZ3OoxwiMQyRcjCqGxTEACcq51TXOdUMDk0zBHVcZ9pxzvghEHUvj+O57hU37pnpLvnhrCJgY0/vGh3sLkGRrpeK8SXUoIQQA4B300GgA9ABoruPoYEQzUyhlo9VUVcVUe/XRb5dp/w/d116y/Mz1E0XZpyAtT1H5gucfjtWTL4nJidTXmFXE+AROHEKXweBBjgJIJp5DhoIFICoAFQoMRSKEnuGxNQtXas/sW8m+g7MIAFr9h++XpKl+xLF9rVUpwTgqGwhCfDT/poEqNaxldpkEBUlSTwlS7FvdF16+7fOtBzOOAHrDh5cKRRSDycmO9dRAG7B25uOegTUdT8WAbbQXQQQU/AmAfaxCgIZIApKIivK8dSPxsnkZw5cukU5E/I4YwSs7TkyX9BiDycmO6+iBgXAQYif8INdUH3/b/l92+1Yx6bAFfhZgk0AgQxAgSzFCoVk56e7Vt/74+mWyxkhYN3+w7cmJxZ8T5ClmFPYQQSE8f9hCTCF7iRAqRBAFABymQBCZHAomErOfa2YmnfDS8s3vzpdsqHTVTAAYNs2YcOuY4+2jS75oSDHY80V4iSnfj5SzmPlJ57jcp5apHOAGFY+A+ni0IVzc4cPvrH3y59vru3BmDYLeENv7/ni+II9UjEzp3LW3XF/C6jn/w2Y2lxrBqTWGYAVt9tx+X9L8619YlkBoIFQAlCKfGLpMzsulm4A2WJEKadpsYD1+4+8OZ4975BUbJsTnNuJYC0vo0p1KtpeZQngVn4/zbctwyLdaRFWHYRzdBT7r7+mNz/4pgNb5jbWp/qInID1+47+VTK3cIegJKSoy66GnwVVzpNaeYiXBMPn2AApMwAQAqSVkYVpZF+78shXl0TVg0gJWL/vyHuSuXN/zDSpiXJrab/HbdUbE8paDvgRUp8Mo+z//S3N3Emqo+0p5cShNx365upGe+iHyAi4bF/fVan8okeYLjYwrtQbYMMMvLXyey2h9jU/t2SOPTA131EDIeY5Scsn2o3+7iteu39BAw30RSQEbOw5siY9cc6zVIuxcL+wB2D/a+EEX9v1VPbdKakipJ5l2PUQn4QgoeVSHWr/yzcP/VsyRGNromUClvX1xVlx7g5BiYvBuYOE24jg6/2W+7ij6tRLiJOYKs23flFOCJDSRudNFfp2hmh0TbRMwNwxaUes2NYRnLMRd+LstPP3ta2GuPJ502Y2t+ZXGlaxAgDo0E5c8rajWx8I2y8vWiJg3d7+r6fG529spYzWwX32PUTVtIZ6G1xuiLiO4bo+Vxv49FuOf+PqZlrfNAFrug8vT07M/7tmf98Y/DWf+Arf+7taBNWbmtrluypz7zguilwjbfLJ/wLf0rA8myYgztufFrRYSxZkaDpUWYGmqOC83qDsdy6IlBrkOAd/3/maV/t9K3G5IRAgpWfbrzxGv1vnV7WKahzr9/R9PpNb+g3zyCuI6mO1JCM7PIxCbhxT4xOYmiigVCxZrpaUm0EohSgyxNNxJDMJJNsktHUm0daZtGZN1g2XqjCEHYZWy0G4yr7iDkOXg3CyFW6QHSEI+5wKQgkIMSVt7sM6JiDUsV++TqBSyRhLrFj2+8X3DISVpdCg7IFt24R4sXNLULZCPo/Tx45jbHgEk9kJa+ZAAVBT6FREeYlZXrMSKBqg5GSM52QAHOAcTCSYMy+F+UsymLc4BRpod0HWFDAFDtD+Wscil6mg5h4C8I6gFtYqLhDrd7/+QCa/5PbKGe7aHR08juOvHMb4WM4UOKVmam82AYSiYssVEtzlcqt4DnAD4BwxieDc81NYsqoNYsy0imoLUK37wvaNFzsMbQfkFJiWUYKvBRANhBBrA0C9+yhfB3Xv6yTG+9nqxbuWffZEGHk2ZAGXDw0lY33tH/e7lh8ZwdE9PSjkJ02hMxEgLAQBtuD9CADAbSJMAhTNQP+RKQz1T+H8VSmcd1HCKiLsNDfICjxoxBoACFBJB8s/CODPwhTfEAH6sPJN74JLU1Uc3bUHIwPHATCH4Jkl9DokeAmwd3n5j4MAiwQYADeg6gaOvFzEyKCMSzYlkEw10pN6CENMfceR0cauB99Cw4SuG5rFxIvttzqPJ7NZ7HnmOYwMDAJENIXPRIDFHGmdTbD3Jce+fV7y5PHsW9t4nqB7+xRGh/VGujKtkHhBvGow9qkweUNbwLr9r90qnm5L28e5k8PofeFF6AYAGjM1ngoV7afM3CeseiwouyHb9zvHAsDl+8vabwbKTFdkAIYBEB3gDJqhY99LOi55A7Cw5UBxmGHRsVKugTgv3AHgX4JKCk2AWEpvtvezQyfR+4cXYYACTDAF7yJAqO+GvASQGoMwr0MAMQCuW2To4FxH7x4NgmBg3rn1enJmnkNIGfmVYfKFckHL+vrisVLbSgCYyudxsOslGGDmVLK8xcy07H5EtxuiPi6IihWyiGecsImkPq7MVValLk5jeHl3DBN5EsKTE8/mj8r6sLrEqrWj41g0isKbBu7706BWhCKgI4c7mSZSXdVw4Pk/mm7HJWSP76deQYkVgRPmGHgbACEWKZ4xxlWXCB0xvLwrCV0HKoKtNdNyVVDZWg3YWpmSkD8UlDMUAYKa+DAAvP7yAZRKckVzbe23CbAtoYoQoTmh1wIhZpleBbDaM1WUcOSAHab3q7e25ru1mvslnh/YSSWTnY9BXhPUlVBjAJtMrJrIjmHo6LGKQMsdFnw2BpCIhc45aGmMxxbo/SStPyq08V9LMeyVdTFmgG6gBm5QRoX3KSeE87hKMHg8g/OWTSHdploFWG3hnuku8bqiEG0uj8HWjndMthiI8VLglCCQgMv29a2OjaaFV3tfBBjzEb7oGIiFik+PCqoCNnIMLFEaZcvbbi7e8fYX7UsTlVzPWtvd6UdfuEY9Gf+ZPCjOP3qoA+s2FeHvijwb90wGuJsrr9A5r+gXB8wYHzEtwb6ZLxhyJqh7gQQYBeOThXwe2VNjlYG2LGxb+I5zJKLbzJyDDveDneiDcNm5vy9ufddVYX42+Rdv+V8AC1I/6fqfU6+k31GYjCGdVn1W3H6a77EAh9A5SFnIfte9YwcnHIxogZoYHNbKkuuGjvabCy2n4Knb75or4GiET5QShINdYAOHIKxZuK249cZQwnei8MErrk1cpL1wfKAD4QZjLwk1HH/Zx1t/OarHAesy09VAgQRn0KXFo8OnK8JnntS2gojm16SQh3DgDyCFPMjShbnil2+6ptmyihuT12S15Djn/prOa1oAdcvdOxWtNVCX44fmOSOETAIJKE1OJVTVqCy0vFuUwp/MQzjYBagqIAiQVmbe1VKBl16q0PnGHePjSTi1n1tphQiKakJscHdoqnLaNWPiZbvgZSIMCK3Hggr5ggjiN9MRKzH9CEBKBQiHuswQA6Ugi8/JTtx57Y5Wyx1/7xt/VFCTRX+Nt1blXsvgNdYCfosyx4LdZQWcQ0WsFNS+QAKmxhVS0X5relkecCOaZho62OHdgK6XV8J0vvRkNIUDRSZ0m3s1Zj/lfZsQSywuLXdYQvm8O7TNPalCEiNBbQsmIC9TV6wn6tkOANZ/AGRqwmyOVS5rYw9FVb4u8J/XFLrLGryW4VhceYlwnq9hBTKNdwe1LVCKmqY7FlYOIiICmciCDh9HJQZkzscLa8UXoqqDCfoOf6F73RAtjwfugdgz0FoHztmQnxVoiP8wqG2BBJAY464Qc4TCBwD2eq8lC3shBAAc6D0VWUVLF2X7/GdA1JFWBA/QyjjgCC143RA82u9MSyQtP3/+vY8HtS2YAInpFeGzSF0PyQ6DFLKoujvGgZSSuiiqevK6tKH21NMteNNSnFYBj983T3j1Hc6Uc0yyzmfDtC2MBeiVGysRhhgAsBN9DuG7m2KosWujqkcg5FZe09/bg69T8BQAg2kZXuHWmvXYKYdGRD5BOz4Zpm3BBIiQp0X75SmQ8dMoC98zo+IF5Yao6orJ/L3+Qndv3Jty6qv9dlrl9a28eXHRU2GfigiUKEvxkenQfnJ6yNrxLnxM8Jy2Nop6Lt//1D2JEp/j1nTvOFBNRsUKCLiP9vtZAcBRYulSJrH4lrDtCw5FxNBXuZUYHUj2JMrC8FlO6MPjna3WsWb/HxekC/xr1WEG7wKMOiyCeayD+cR6PFbATe03ICArnfeBxxd9aipsG4MJiBsHohY+DN0afIHqpb8JUiqRxH3Pfq6VajJq/nlBJWJF8N5FWC03xMDBzJRXFmX+sx5uneYYk5be/+IFm3/dSBvDzIJ+F7n7KeRBDI6y9tdYUesDk5t9L4TA5XufuSdZoBe5Zz61XA21BO4457QIsCqPbz4oAGsjGItf+JMdK7Z+ttF2BhIw0TH1BI0bfpGRpkEKOVS0vnY4gw9m5yTv376pqToI3RQYevCSw01hV4RuWwHz+PsKHQZhOJ1Y/p0dK78ceP/XD8G+5eqrNbFDDoxpNIRSSBdp6ND7c080U4Ui6V9QRKL6r3od40Cd2ZB5zUGIpfW2CyqxjDwSX/G+F1ZtubuZNgJhCADAMlpgTKMREHmqnuK7YPSPzk9+578/1mgd+1a/s6/YaVwhx0nWqfV+Mx7uckNeK7DGBF6ZEelE4Lnk0mdGjNULu1Z/6ZFG2+ZEuKci4upPWqmkCqrsXN/Xh2FA3T36IP7jscD7q150r7huz/Obrp+b7SBbinE6xu0HgnltMmyLKJPhcEs6Sxm5xLLto3MuXr3jkq+/c+8bPptrtE1ehI4nC/cfkrUJsckPbrjB9m0HLUzAFeYOAF0+f0D+1ruXtlLvhv2PrWXgnxFV7a2irpzPNCUuGAqpfDvIfqHDfHwdRIcsipNKTHxFZbGfFrj83ai/IxSagMSP9/yu2Nd+ZRSVsr3PgRYLcIW5g0AAtnbxM6WtN74zijbYWHfw5ytjurEKgtpOdX2hzg2dCNopQyeHd11yYmfUH+fwIjQBbY913zS+b25TA6IXrGcb6NSE4wZPyKflCAW7fNFDpS/ecFsU7TgbEHqFNf7ujU+KnfJ4JLUyAeV7p6EHAwDcgL576KPxr/z2Z5G04yxAQ0vc2Pxi0y8kuyCIDuG7Il3BMAzouwffL21+sjeStswwGiKg0Jn/kpBRWx6EuJSC+25Hg+s8zmH0Dl0s/vWvJlMP/DaSoN1MobEgz9VXa9LCws9brjWVQeWZf+7YbxBDYyl5+0hPYutTD7fcphlCw1G2woL8p4R2NfBxi3rgyXaYURUO870v183WhkAUBdqewffFPvawmvz601tbaVejSHzxX++SPvFP/Yl7HvjnZsto6rmSzKPdn5s4MPcfm60U4BC6ngR0DcR+lcm+6dPKc0YEIHPbVHZB+6PFleMfxi23TMu3PxP3PvhN7ZhyB/K6xA0dEDjXHr+7qZBx072VvvfyoHwiuajZ37NXu0BODQGUgbjeK4sm9M0lCWxh+ym6QPpF8bJ5f4+bN4aO0fsh/ZUfvF09rX3LOMnXYUpn4Hr51Sh6LjuufP+upt5Oa5qAtt+8tGnylTldhsyaKoOMDoK98keAsGitwA+UgXSkNDInfpJkxINEEnbTJJ4V2wq7crf9uSuckLn/sVVMLl1cmuI3YFJfb0yoF/GcNgcKNxtl6HAKn1ODixuTF5a23P56M01rqaepR3bdVzg4p7kvpnAOYedTgKq4rYDQUKGJyECI+d6DYb15WQ/225kOAsSLY98tfvuOO5quvtkf2og/tP9gaSDV1AfsaP8B0OOvmFZQJsDxRuXZBM4twZsEcEMHW0Jfk//9ruWtFNtyL8VO+W3iHKXQzG+NxSvMp6u5Ac4dr6BanyU4q+BoG+cGSDspytk7Q72KWg8tEzBx88bT8QvyG4SMqgbn9kCIwVi8EvYnCEwS9LOPBMOjHHFuCGvEVfglafn1/EjsfOKmK16VLph8F5X0hiVmLF4Fnsy4O2k4iZhhEgy3UnDR4In1wpXFL/5N6G8C1UNkjrbw7sufTq/OfYTGg0YybwsojJWbAGL6WH42kWDPeCzL5Mzg0obEdRP/8JnIHhyOeL4HtD2+88bC4Y7f6AXW0FSGDr4K2tcD+615UvNLK2cA9pdZypsOHudGfGPqHZNf+MT2KKuKnAAAyDza/dZif+Y5bbKxO2j08C7Q4dc8JPht09JsE97JgGEA7VDY2tiq0heam+vXw7T1JPl097n6oNQlD6XCrxANDnboRZDRQZS/F+EignhIiLD5tqvzEECXxE7Kq+ZdiLtvKUZXWQXTqEoAOKfJX/T8qngk8x7OQ1bFOdihLpBTAy6trybBeszE9V5Bw+1DJRprjzXWYEs5hDXpn5a+9vEPNld4OEwvARbafrP7A8Vj8QfVbDzcd604QAcOgPb3erSemt9mcwne8Wi70yqqSHHceyinNgEGXER0xorCxW3XFTd/KLLBthbOCAEAgG3bhNRIxw+L/Zn3GzINVS/JngB7daf5GAvcFkDsFzp8vznk88Cv6/FyLwmm9nNJ5MLq1C9LX/voX7bc35A4cwRYyDzevVrLiT8oDaav4GoI36GpoK/3gJ6w3zKynu1xfPSvTAbg0Hy/op134Lj1iCEHBAa2PLMv0Y6rcltua/lZn0Zwxgmw0f7EzguVvPB9eTB9ZZiIKpnKgw4cNMcGAGU3VCV84ukUga3+5b8WCVySuLA0vZcuS9xcvPuWwUg61iBmjAAb5zy8LT1F2jdrudhHlJHEIm7UbxIpTYIMv25u8lRtF+RIXO6HCSAL2ybZeclHSssW3I7brm7p7l6rmHECnGh/YueFeoneqU3GrtOysYuC1hFkKm++6Dd+GihNghQnAN3+5zuOrqXTnMzPjAnnxH+PZPxvi/fefGx6exIeZxUBXrQ/3rNB1/QbDYVuMEpshVFiiwyZJbgBgStU4Col4AARDU4kQyOM6wRKiYrKMOOlYySFbrEz9nDupj/ZO9N9mcUsZjGLWcxiFrOYxSxmMQsb/we5XAajHPmTtAAAAABJRU5ErkJggg==);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}.buttons-module_primaryIconButton__KHPA9 {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_secondaryIconButton__4LT0V {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}.buttons-module_unstyledButton__3m76W {\n border: 0;\n text-align: initial;\n}.buttons-module_addButton__2pN-g {\n}.buttons-module_cancelButton__1xJCN {\n}.buttons-module_saveButton__1M-qM {\n}\n\n.EditMotifAreaDialogView-module_box__1fwA5 {\n width: -webkit-min-content;\n width: -moz-min-content;\n width: min-content;\n min-height: 310px;\n min-width: 400px;\n}\n\n.EditMotifAreaDialogView-module_wrapper__2uBFA {\n display: flex;\n justify-content: center;\n}\n\n.EditMotifAreaDialogView-module_helpLink__1Dv5E {\n color: #005dc7;\n float: left;\n padding: 7px 0;\n}\n\n.EditMotifAreaDialogView-module_helpLink__1Dv5E::before {\n color: #a0c4e0;\n}\n\n.EditMotifAreaDialogView-module_thumbnail__dM9gN {\n position: relative;\n display: inline-block;\n overflow: hidden;\n}\n\n.EditMotifAreaDialogView-module_image__2-Iaj {\n display: block;\n height: calc(100vh - 200px);\n max-height: 600px;\n min-height: 200px;\n}\n\n.EditMotifAreaDialogView-module_blankSlate__3lvPl {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n background-color: rgba(0, 0, 0, 0.5);\n color: #fff;\n display: none;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.EditMotifAreaDialogView-module_blank__yAuNx .EditMotifAreaDialogView-module_blankSlate__3lvPl {\n display: flex;\n}\n\n.EditMotifAreaDialogView-module_reset__3YOxk {\n position: absolute;\n top: 5px;\n right: 5px;\n z-index: 10;\n padding: 5px;\n background-color: #000;\n color: #fff;\n border: solid 1px #fff;\n border-radius: 3px;\n}\n\n.EditMotifAreaDialogView-module_blank__yAuNx .EditMotifAreaDialogView-module_reset__3YOxk {\n display: none;\n}\n\n.EditMotifAreaDialogView-module_dragging__1Cx0- .EditMotifAreaDialogView-module_reset__3YOxk,\n.EditMotifAreaDialogView-module_dragging__1Cx0- .EditMotifAreaDialogView-module_blankSlate__3lvPl {\n display: none;\n}\n\n.EditMotifAreaDialogView-module_save__1Qaw1 {\n}\n";
3078
+ var styles$7 = {"linkColor":"#005dc7","helpIconColor":"#a0c4e0","box":"EditMotifAreaDialogView-module_box__1fwA5","wrapper":"EditMotifAreaDialogView-module_wrapper__2uBFA","helpLink":"EditMotifAreaDialogView-module_helpLink__1Dv5E buttons-module_unstyledButton__3m76W icons-module_helpCircled__D_oKU icons-module_icon__16IVx","thumbnail":"EditMotifAreaDialogView-module_thumbnail__dM9gN","image":"EditMotifAreaDialogView-module_image__2-Iaj","blankSlate":"EditMotifAreaDialogView-module_blankSlate__3lvPl","blank":"EditMotifAreaDialogView-module_blank__yAuNx","reset":"EditMotifAreaDialogView-module_reset__3YOxk buttons-module_unstyledButton__3m76W","dragging":"EditMotifAreaDialogView-module_dragging__1Cx0-","save":"EditMotifAreaDialogView-module_save__1Qaw1 buttons-module_saveButton__1M-qM buttons-module_primaryIconButton__KHPA9 primary_icon_button icons-module_check__3Lkw9 icons-module_icon__16IVx"};
3079
+ styleInject(css$9);
3080
+
3081
+ var EditMotifAreaDialogView = Marionette.ItemView.extend({
3082
+ template: function template() {
3083
+ return "\n <div class=\"".concat(dialogViewStyles.backdrop, "\">\n <div class=\"editor ").concat(dialogViewStyles.box, " ").concat(styles$7.box, "\">\n <h1 class=\"").concat(dialogViewStyles.header, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.header'), "\n </h1>\n <p class=\"").concat(dialogViewStyles.hint, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.hint'), "\n </p>\n\n <div class=\"").concat(styles$7.wrapper, "\">\n <div class=\"").concat(styles$7.thumbnail, "\">\n <img class=\"").concat(styles$7.image, "\" />\n <div class=\"").concat(styles$7.blankSlate, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.blank_slate'), "\n </div>\n <button class=\"").concat(styles$7.reset, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.reset'), "\n </button>\n </div>\n </div>\n\n <div class=\"").concat(dialogViewStyles.footer, "\">\n <button class=\"").concat(styles$7.helpLink, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.help_link'), "\n </button>\n <button class=\"").concat(styles$7.save, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.save'), "\n </button>\n <button class=\"").concat(dialogViewStyles.close, "\">\n ").concat(I18n.t('pageflow_scrolled.editor.edit_motif_area.cancel'), "\n </button>\n </div>\n </div>\n </div>\n ");
3084
+ },
3085
+ mixins: [dialogView],
3086
+ ui: cssModulesUtils$1.ui(styles$7, 'image', 'thumbnail'),
3087
+ events: cssModulesUtils$1.events(styles$7, {
3088
+ 'click helpLink': function clickHelpLink() {
3089
+ app.trigger('toggle-help', 'pageflow_scrolled.help_entries.motif_area');
3090
+ },
3091
+ 'click reset': function clickReset() {
3092
+ this.motifArea = null;
3093
+ this.updateAreaSelect();
3094
+ this.updateBlankSlate();
3095
+ },
3096
+ 'click save': function clickSave() {
3097
+ this.save();
3098
+ this.close();
3099
+ }
3100
+ }),
3101
+ save: function save() {
3102
+ var motifArea = this.getMotifAreaWithRoundedValues();
3103
+ this.model.set(this.getPropertyName(), motifArea);
3104
+ this.options.file.configuration.set('motifArea', motifArea);
3105
+ },
3106
+ onRender: function onRender() {
3107
+ this.ui.image.attr('src', this.options.file.getBackgroundPositioningImageUrl());
3108
+ },
3109
+ onShow: function onShow() {
3110
+ var _this = this;
3111
+
3112
+ this.motifArea = this.model.get(this.getPropertyName());
3113
+ this.updateAreaSelect();
3114
+ this.updateBlankSlate();
3115
+
3116
+ this.resizeListener = function () {
3117
+ return _this.updateAreaSelect();
3118
+ };
3119
+
3120
+ $(window).on('resize', this.resizeListener);
3121
+ },
3122
+ getPropertyName: function getPropertyName() {
3123
+ return "".concat(this.options.propertyName, "MotifArea");
3124
+ },
3125
+ getMotifAreaWithRoundedValues: function getMotifAreaWithRoundedValues() {
3126
+ return this.motifArea && {
3127
+ left: Math.round(this.motifArea.left),
3128
+ top: Math.round(this.motifArea.top),
3129
+ width: Math.round(this.motifArea.width),
3130
+ height: Math.round(this.motifArea.height)
3131
+ };
3132
+ },
3133
+ updateAreaSelect: function updateAreaSelect() {
3134
+ var _this2 = this;
3135
+
3136
+ var imageWidth = this.options.file.get('width');
3137
+ var imageHeight = this.options.file.get('height');
3138
+ this.ui.image.imgAreaSelect(_objectSpread2(_objectSpread2({
3139
+ parent: this.ui.thumbnail,
3140
+ handles: true,
3141
+ imageWidth: imageWidth,
3142
+ imageHeight: imageHeight
3143
+ }, this.getSelection(imageWidth, imageHeight)), {}, {
3144
+ onSelectStart: function onSelectStart() {
3145
+ _this2.$el.addClass(styles$7.dragging);
3146
+ },
3147
+ onSelectEnd: function onSelectEnd(img, selection) {
3148
+ _this2.$el.removeClass(styles$7.dragging);
3149
+
3150
+ var motifArea = {
3151
+ left: selection.x1 / imageWidth * 100.0,
3152
+ top: selection.y1 / imageHeight * 100.0,
3153
+ width: (selection.x2 - selection.x1) / imageWidth * 100.0,
3154
+ height: (selection.y2 - selection.y1) / imageHeight * 100.0
3155
+ };
3156
+
3157
+ if (motifArea.width > 0 && motifArea.height > 0) {
3158
+ _this2.motifArea = motifArea;
3159
+ } else {
3160
+ _this2.ui.image.imgAreaSelect(_objectSpread2({}, _this2.getSelection(imageWidth, imageHeight)));
3161
+ }
3162
+
3163
+ _this2.updateBlankSlate();
3164
+ }
3165
+ }));
3166
+ },
3167
+ getSelection: function getSelection(imageWidth, imageHeight) {
3168
+ if (!this.motifArea) {
3169
+ return {
3170
+ hide: true
3171
+ };
3172
+ }
3173
+
3174
+ var x1 = imageWidth * (this.motifArea.left / 100);
3175
+ var y1 = imageHeight * (this.motifArea.top / 100);
3176
+ var width = imageWidth * (this.motifArea.width / 100);
3177
+ var height = imageHeight * (this.motifArea.height / 100);
3178
+ return {
3179
+ x1: x1,
3180
+ x2: x1 + width,
3181
+ y1: y1,
3182
+ y2: y1 + height
3183
+ };
3184
+ },
3185
+ updateBlankSlate: function updateBlankSlate() {
3186
+ this.$el.toggleClass(styles$7.blank, !this.motifArea);
3187
+ },
3188
+ onBeforeClose: function onBeforeClose() {
3189
+ $(window).off('resize', this.resizeListener);
3190
+ this.ui.image.imgAreaSelect({
3191
+ remove: true
3192
+ });
3193
+ }
3194
+ });
3195
+
3196
+ EditMotifAreaDialogView.show = function (options) {
3197
+ app.dialogRegion.show(new EditMotifAreaDialogView(options));
3198
+ };
3199
+
770
3200
  var EditSectionView = EditConfigurationView.extend({
771
3201
  translationKeyPrefix: 'pageflow_scrolled.editor.edit_section',
772
3202
  configure: function configure(configurationEditor) {
3203
+ var editMotifAreaMenuItem = {
3204
+ name: 'editMotifArea',
3205
+ label: I18n.t('pageflow_scrolled.editor.edit_section.edit_motif_area'),
3206
+ selected: function selected(_ref) {
3207
+ var inputModel = _ref.inputModel,
3208
+ propertyName = _ref.propertyName,
3209
+ file = _ref.file;
3210
+ EditMotifAreaDialogView.show({
3211
+ model: inputModel,
3212
+ propertyName: propertyName,
3213
+ file: file
3214
+ });
3215
+ }
3216
+ };
773
3217
  configurationEditor.tab('section', function () {
774
- this.input('transition', SelectInputView, {
775
- values: ['beforeAfter', 'fade', 'fadeBg', 'reveal', 'scroll', 'scrollOver']
776
- });
777
- this.input('layout', SelectInputView, {
778
- values: ['left', 'right', 'center']
779
- });
780
- this.input('appearance', SelectInputView, {
781
- values: ['shadow', 'cards', 'transparent']
782
- });
3218
+ this.input('fullHeight', CheckBoxInputView);
783
3219
  this.input('backdropType', SelectInputView, {
784
- values: ['image', 'color'],
785
- texts: ['Bild', 'Farbe']
3220
+ values: ['image', 'video', 'color']
786
3221
  });
787
3222
  this.input('backdropImage', FileInputView, {
788
3223
  collection: 'image_files',
789
3224
  fileSelectionHandler: 'sectionConfiguration',
790
3225
  visibleBinding: 'backdropType',
791
- visibleBindingValue: 'image'
3226
+ visibleBindingValue: 'image',
3227
+ positioning: false,
3228
+ dropDownMenuItems: [editMotifAreaMenuItem]
3229
+ });
3230
+ this.input('backdropImageMobile', FileInputView, {
3231
+ collection: 'image_files',
3232
+ fileSelectionHandler: 'sectionConfiguration',
3233
+ visibleBinding: 'backdropType',
3234
+ visibleBindingValue: 'image',
3235
+ positioning: false,
3236
+ dropDownMenuItems: [editMotifAreaMenuItem]
792
3237
  });
793
- this.input('backdropImage', ColorInputView, {
3238
+ this.input('backdropColor', ColorInputView, {
794
3239
  visibleBinding: 'backdropType',
795
3240
  visibleBindingValue: 'color'
796
3241
  });
797
- this.input('fullHeight', CheckBoxInputView);
3242
+ this.input('backdropVideo', FileInputView, {
3243
+ collection: 'video_files',
3244
+ fileSelectionHandler: 'sectionConfiguration',
3245
+ visibleBinding: 'backdropType',
3246
+ visibleBindingValue: 'video',
3247
+ positioning: false,
3248
+ dropDownMenuItems: [editMotifAreaMenuItem]
3249
+ });
3250
+ this.input('layout', SelectInputView, {
3251
+ values: ['left', 'right', 'center']
3252
+ });
3253
+ this.input('appearance', SelectInputView, {
3254
+ values: ['shadow', 'cards', 'transparent']
3255
+ });
798
3256
  this.input('invert', CheckBoxInputView);
3257
+ this.input('exposeMotifArea', CheckBoxInputView, {
3258
+ displayUncheckedIfDisabled: true,
3259
+ visibleBinding: ['backdropType'],
3260
+ visible: function visible(_ref2) {
3261
+ var _ref3 = _slicedToArray(_ref2, 1),
3262
+ backdropType = _ref3[0];
3263
+
3264
+ return backdropType !== 'color';
3265
+ },
3266
+ disabledBinding: motifAreaDisabledBinding,
3267
+ disabled: motifAreaDisabled
3268
+ });
3269
+ this.input('staticShadowOpacity', SliderInputView, {
3270
+ defaultValue: 70,
3271
+ visibleBinding: 'appearance',
3272
+ visible: function visible(appearance) {
3273
+ return !appearance || appearance === 'shadow';
3274
+ }
3275
+ });
3276
+ this.input('dynamicShadowOpacity', SliderInputView, {
3277
+ defaultValue: 70,
3278
+ visibleBinding: ['backdropType', 'appearance'],
3279
+ visible: function visible(_ref4) {
3280
+ var _ref5 = _slicedToArray(_ref4, 2),
3281
+ backdropType = _ref5[0],
3282
+ appearance = _ref5[1];
3283
+
3284
+ return backdropType !== 'color' && (!appearance || appearance === 'shadow');
3285
+ },
3286
+ disabledBinding: ['exposeMotifArea'].concat(motifAreaDisabledBinding),
3287
+ disabled: function disabled(_ref6) {
3288
+ var _ref7 = _toArray(_ref6),
3289
+ exposeMotifArea = _ref7[0],
3290
+ motifAreaDisabledBindingValues = _ref7.slice(1);
3291
+
3292
+ return !exposeMotifArea || motifAreaDisabled(motifAreaDisabledBindingValues);
3293
+ }
3294
+ });
3295
+ this.input('atmoAudioFileId', FileInputView, {
3296
+ collection: 'audio_files',
3297
+ fileSelectionHandler: 'sectionConfiguration',
3298
+ positioning: false
3299
+ });
799
3300
  });
800
3301
  }
801
3302
  });
802
-
803
- var EditContentElementView = EditConfigurationView.extend({
804
- translationKeyPrefix: function translationKeyPrefix() {
805
- return "pageflow_scrolled.editor.content_elements.".concat(this.model.get('typeName'));
806
- },
807
- configure: function configure(configurationEditor) {
808
- this.options.editor.contentElementTypes.setupConfigurationEditor(this.model.get('typeName'), configurationEditor);
3303
+ var motifAreaDisabledBinding = ['backdropType', 'backdropImageMotifArea', 'backdropImageMobileMotifArea', 'backdropVideoMotifArea', 'backdropImage', 'backdropImageMobile', 'backdropVideo'];
3304
+
3305
+ function motifAreaDisabled(_ref8) {
3306
+ var _ref9 = _slicedToArray(_ref8, 7),
3307
+ backdropType = _ref9[0],
3308
+ backdropImageMotifArea = _ref9[1],
3309
+ backdropImageMobileMotifArea = _ref9[2],
3310
+ backdropVideoMotifArea = _ref9[3],
3311
+ backdropImage = _ref9[4],
3312
+ backdropImageMobile = _ref9[5],
3313
+ backdropVideo = _ref9[6];
3314
+
3315
+ if (backdropType === 'video') {
3316
+ return !backdropVideo || !backdropVideoMotifArea;
3317
+ } else if (backdropType !== 'color') {
3318
+ return (!backdropImage || !backdropImageMotifArea) && (!backdropImageMobile || !backdropImageMobileMotifArea);
809
3319
  }
810
- });
811
3320
 
812
- var css$4 = ".InsertContentElementView-module_item__1EIxA a {\n display: block;\n padding: 10px;\n margin-bottom: 2px;\n background-color: #efefef;\n}\n";
813
- var styles$4 = {"item":"InsertContentElementView-module_item__1EIxA"};
814
- styleInject(css$4);
3321
+ return true;
3322
+ }
3323
+
3324
+ var css$a = "\n\n.EditSectionTransitionEffectView-module_upper_section__AI6fG {\n background: #50514f;\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: normal;\n}\n\n.EditSectionTransitionEffectView-module_lower_section__kZyic {\n background: #A2A2A2;\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: normal;\n}\n\n.EditSectionTransitionEffectView-module_upper_background__2ecP0, .EditSectionTransitionEffectView-module_lower_background__3NowS {\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.EditSectionTransitionEffectView-module_disabled__1ZRYF {\n pointer-events: none;\n opacity: 0.3;\n}\n\n.EditSectionTransitionEffectView-module_active__3F2NM {\n background: #1c86fe !important;\n}\n\n.EditSectionTransitionEffectView-module_active__3F2NM div,\n.EditSectionTransitionEffectView-module_active__3F2NM .EditSectionTransitionEffectView-module_extended_option__3FO6S {\n color: #ffffff;\n}\n\n.EditSectionTransitionEffectView-module_extended_option__3FO6S {\n display: none !important;\n}\n\n.EditSectionTransitionEffectView-module_active__3F2NM .EditSectionTransitionEffectView-module_extended_option__3FO6S {\n display: flex !important;\n height: auto;\n width: 82.5%;\n align-items: center;\n padding: 5% 2.5%;\n padding-left: 15%;\n}\n\n.EditSectionTransitionEffectView-module_extended_option__3FO6S input {\n opacity: 1 !important;\n visibility: hidden;\n position: absolute;\n left: -15px;\n top: 8px;\n width: auto;\n}\n\n.EditSectionTransitionEffectView-module_container__32mkr.EditSectionTransitionEffectView-module_container_with_option__H-xli label:first-child {\n padding-bottom: 10px;\n}\n\n.EditSectionTransitionEffectView-module_active__3F2NM .EditSectionTransitionEffectView-module_extended_option__3FO6S input:before {\n visibility: visible;\n display: block;\n content: ' ';\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjZmZmZmZmIj48cGF0aCBkPSJNMjIgMnYyMGgtMjB2LTIwaDIwem0yLTJoLTI0djI0aDI0di0yNHoiLz48L3N2Zz4=);\n background-size: 15px 15px;\n height: 15px;\n width: 15px;\n position: absolute;\n left: 30px;\n top: 4px;\n}\n\n.EditSectionTransitionEffectView-module_active__3F2NM .EditSectionTransitionEffectView-module_extended_option__3FO6S.EditSectionTransitionEffectView-module_active__3F2NM input:before {\n visibility: visible;\n display: block;\n content: ' ';\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTIyIDJ2MjBoLTIwdi0yMGgyMHptMi0yaC0yNHYyNGgyNHYtMjR6bS01LjU0MSA4LjQwOWwtMS40MjItMS40MDktNy4wMjEgNy4xODMtMy4wOC0yLjkzNy0xLjM5NSAxLjQzNSA0LjUgNC4zMTkgOC40MTgtOC41OTF6Ii8+PC9zdmc+);\n background-size: 15px 15px;\n height: 15px;\n width: 15px;\n position: absolute;\n left: 30px;\n top: 4px;\n}\n\n.EditSectionTransitionEffectView-module_container__32mkr {\n height: 90px;\n display: flex !important;\n align-items: center;\n border-top: 1px solid #ffffff;\n background: #e5e5e5;\n}\n.EditSectionTransitionEffectView-module_container__32mkr:hover {\n background: #ddd;\n}\n\n.EditSectionTransitionEffectView-module_container__32mkr label:first-child {\n height: 60px;\n width: 100%;\n padding: 15px 0;\n}\n\n.EditSectionTransitionEffectView-module_container_with_option__H-xli.EditSectionTransitionEffectView-module_active__3F2NM {\n height: auto;\n flex-direction: column;\n}\n\n.EditSectionTransitionEffectView-module_transition__1HHuP {\n height: 100%;\n width: 100%;\n display: flex;\n}\n\n\n/*Fade AND Fade Background Upper*/\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_fadeBg__2dHin .EditSectionTransitionEffectView-module_upper_section__AI6fG {\n -webkit-animation: EditSectionTransitionEffectView-module_FadeA__3u-VS 4s linear infinite;\n animation: EditSectionTransitionEffectView-module_FadeA__3u-VS 4s linear infinite;\n}\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_fadeBg__2dHin .EditSectionTransitionEffectView-module_lower_section__kZyic {\n -webkit-animation: EditSectionTransitionEffectView-module_FadeB__a1PxS 4s linear infinite;\n animation: EditSectionTransitionEffectView-module_FadeB__a1PxS 4s linear infinite;\n}\n\n/*Scroll, Scroll Over, Reveal, AND Fade Background Lower*/\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_scroll__2RfMf .EditSectionTransitionEffectView-module_upper_section__AI6fG,\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_scroll__2RfMf .EditSectionTransitionEffectView-module_lower_section__kZyic,\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_scrollOver__3cJJ7 .EditSectionTransitionEffectView-module_lower_section__kZyic,\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_reveal__1_gtk .EditSectionTransitionEffectView-module_upper_section__AI6fG{\n -webkit-animation: EditSectionTransitionEffectView-module_Translate__CLYTi 2s linear infinite;\n animation: EditSectionTransitionEffectView-module_Translate__CLYTi 2s linear infinite;\n}\n\n/*Before After*/\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_beforeAfter__3oeDi .EditSectionTransitionEffectView-module_upper_section__AI6fG {\n -webkit-animation: EditSectionTransitionEffectView-module_Translate__CLYTi 2s linear infinite;\n animation: EditSectionTransitionEffectView-module_Translate__CLYTi 2s linear infinite;\n}\n.EditSectionTransitionEffectView-module_container__32mkr:hover .EditSectionTransitionEffectView-module_beforeAfter__3oeDi .EditSectionTransitionEffectView-module_upper_section__AI6fG div {\n -webkit-animation: EditSectionTransitionEffectView-module_TranslateYPositive__10FZp 2s linear infinite;\n animation: EditSectionTransitionEffectView-module_TranslateYPositive__10FZp 2s linear infinite;\n}\n\n.EditSectionTransitionEffectView-module_animation__3PSoZ {\n width: 30%;\n height: 100%;\n margin: 0 2%;\n border-radius: 5%;\n color: #ffffff;\n text-align: center;\n font-size: 26px;\n overflow: hidden;\n}\n\n/*Fade + Reveal + Before After*/\n.EditSectionTransitionEffectView-module_fadeBg__2dHin .EditSectionTransitionEffectView-module_animation__3PSoZ,\n.EditSectionTransitionEffectView-module_reveal__1_gtk .EditSectionTransitionEffectView-module_animation__3PSoZ,\n.EditSectionTransitionEffectView-module_beforeAfter__3oeDi .EditSectionTransitionEffectView-module_animation__3PSoZ {\n position: relative;\n}\n\n/*Fade + Reveal + Before After Lower Sections*/\n.EditSectionTransitionEffectView-module_fadeBg__2dHin .EditSectionTransitionEffectView-module_lower_section__kZyic,\n.EditSectionTransitionEffectView-module_reveal__1_gtk .EditSectionTransitionEffectView-module_lower_section__kZyic,\n.EditSectionTransitionEffectView-module_beforeAfter__3oeDi .EditSectionTransitionEffectView-module_lower_section__kZyic {\n position: absolute;\n}\n\n/*Reveal, fade Upper Section, & Before After Upper Section*/\n.EditSectionTransitionEffectView-module_reveal__1_gtk .EditSectionTransitionEffectView-module_upper_section__AI6fG,\n.EditSectionTransitionEffectView-module_beforeAfter__3oeDi .EditSectionTransitionEffectView-module_upper_section__AI6fG,\n.EditSectionTransitionEffectView-module_fadeBg__2dHin .EditSectionTransitionEffectView-module_upper_section__AI6fG {\n position: absolute;\n z-index: 1;\n}\n\n.EditSectionTransitionEffectView-module_beforeAfter__3oeDi .EditSectionTransitionEffectView-module_upper_section__AI6fG {\n overflow: hidden;\n}\n\n/*Input*/\n.EditSectionTransitionEffectView-module_container__32mkr input {\n opacity: 0;\n}\n\n/*Label*/\n.EditSectionTransitionEffectView-module_container__32mkr .EditSectionTransitionEffectView-module_input__3i8nA {\n display: block;\n text-align: left;\n height: 100%;\n width: 70%;\n}\n\n/*Keyframes*/\n@-webkit-keyframes EditSectionTransitionEffectView-module_Translate__CLYTi {\n 50% {\n transform: translateY(-100%);\n }\n}\n@keyframes EditSectionTransitionEffectView-module_Translate__CLYTi {\n 50% {\n transform: translateY(-100%);\n }\n}\n@-webkit-keyframes EditSectionTransitionEffectView-module_TranslateYPositive__10FZp {\n 50% {\n transform: translateY(100%);\n }\n}\n@keyframes EditSectionTransitionEffectView-module_TranslateYPositive__10FZp {\n 50% {\n transform: translateY(100%);\n }\n}\n@-webkit-keyframes EditSectionTransitionEffectView-module_FadeA__3u-VS {\n 25%,50% {\n opacity: 0;\n visibility: hidden;\n }\n 10%, 80% {\n visibility: visible;\n }\n}\n@keyframes EditSectionTransitionEffectView-module_FadeA__3u-VS {\n 25%,50% {\n opacity: 0;\n visibility: hidden;\n }\n 10%, 80% {\n visibility: visible;\n }\n}\n@-webkit-keyframes EditSectionTransitionEffectView-module_FadeB__a1PxS {\n 25%, 50% {\n opacity: 1;\n }\n 90% {\n visibility: hidden;\n opacity: 0;\n }\n}\n@keyframes EditSectionTransitionEffectView-module_FadeB__a1PxS {\n 25%, 50% {\n opacity: 1;\n }\n 90% {\n visibility: hidden;\n opacity: 0;\n }\n}";
3325
+ var styles$8 = {"selectionColor":"#1c86fe","upper_section":"EditSectionTransitionEffectView-module_upper_section__AI6fG","lower_section":"EditSectionTransitionEffectView-module_lower_section__kZyic","upper_background":"EditSectionTransitionEffectView-module_upper_background__2ecP0","lower_background":"EditSectionTransitionEffectView-module_lower_background__3NowS","disabled":"EditSectionTransitionEffectView-module_disabled__1ZRYF","active":"EditSectionTransitionEffectView-module_active__3F2NM","extended_option":"EditSectionTransitionEffectView-module_extended_option__3FO6S","container":"EditSectionTransitionEffectView-module_container__32mkr","container_with_option":"EditSectionTransitionEffectView-module_container_with_option__H-xli","transition":"EditSectionTransitionEffectView-module_transition__1HHuP","fadeBg":"EditSectionTransitionEffectView-module_fadeBg__2dHin","FadeA":"EditSectionTransitionEffectView-module_FadeA__3u-VS","FadeB":"EditSectionTransitionEffectView-module_FadeB__a1PxS","scroll":"EditSectionTransitionEffectView-module_scroll__2RfMf","scrollOver":"EditSectionTransitionEffectView-module_scrollOver__3cJJ7","reveal":"EditSectionTransitionEffectView-module_reveal__1_gtk","Translate":"EditSectionTransitionEffectView-module_Translate__CLYTi","beforeAfter":"EditSectionTransitionEffectView-module_beforeAfter__3oeDi","TranslateYPositive":"EditSectionTransitionEffectView-module_TranslateYPositive__10FZp","-webkit-animation":"EditSectionTransitionEffectView-module_animation__3PSoZ","animation":"EditSectionTransitionEffectView-module_animation__3PSoZ","input":"EditSectionTransitionEffectView-module_input__3i8nA"};
3326
+ styleInject(css$a);
815
3327
 
816
- var InsertContentElementView = Marionette.ItemView.extend({
3328
+ var EditSectionTransitionEffectView = Marionette.ItemView.extend({
3329
+ mixins: [inputView],
817
3330
  template: function template() {
818
- return "\n <h2>".concat(I18n.t('pageflow_scrolled.editor.insert_content_element.header'), "</h2>\n <ul></ul>\n ");
3331
+ return "\n <label>\n <span class=\"name\"></span>\n <span class=\"inline_help\"></span>\n </label>\n <div class=\"transitions_container\" />\n ";
3332
+ },
3333
+ events: {
3334
+ 'change': 'save'
819
3335
  },
820
3336
  ui: {
821
- items: 'ul'
3337
+ label: 'label',
3338
+ container: ".transitions_container"
3339
+ },
3340
+ initialize: function initialize() {
3341
+ if (!this.options.texts) {
3342
+ if (!this.options.translationKeys) {
3343
+ var translationKeyPrefix = this.options.attributeTranslationKeyPrefixes;
3344
+ this.options.translationKeys = _.map(this.options.values, function (value) {
3345
+ return translationKeyPrefix + '.transition.values.' + value;
3346
+ }, this);
3347
+ }
3348
+
3349
+ this.options.texts = _.map(this.options.translationKeys, function (key) {
3350
+ return I18n.t(key);
3351
+ });
3352
+ }
3353
+
3354
+ if (!this.options.groups) {
3355
+ this.options.groups = _.map(this.options.groupTanslationKeys, function (key) {
3356
+ return I18n.t(key);
3357
+ });
3358
+ }
822
3359
  },
823
3360
  onRender: function onRender() {
824
- this.subview(new CollectionView({
825
- el: this.ui.items,
826
- collection: new Backbone$1.Collection(this.options.editor.contentElementTypes.toArray()),
827
- itemViewConstructor: ItemView,
828
- itemViewOptions: {
829
- entry: this.options.entry,
830
- insertOptions: this.options.insertOptions
3361
+ this.ui.label.attr('for', this.cid);
3362
+ this.appendOptions();
3363
+ this.load();
3364
+ this.listenTo(this.model, 'change:' + this.options.propertyName, this.load);
3365
+ this.loadCheckbox();
3366
+ },
3367
+ appendOptions: function appendOptions() {
3368
+ var extendedOption = {};
3369
+
3370
+ _.each(this.options.values, function (value, index) {
3371
+ if (value === 'fade') {
3372
+ extendedOption = "<label class=".concat(styles$8.extended_option, " for=").concat(value, ">\n <input type='checkbox' name='transitions' value='").concat(value, "' id='").concat(value, "' ").concat(this.options.optionDisabled(value) ? 'disabled' : '', "/>\n ").concat(this.options.texts[index], "\n </label>");
3373
+ } else {
3374
+ var option = "<div class='".concat(styles$8.container, "\n ").concat(this.options.optionDisabled(value) ? styles$8['disabled'] : 'enabled', "\n ").concat(value === 'fadeBg' ? styles$8.container_with_option : '', "'>\n <label for='").concat(value, "'>\n <div class='").concat(styles$8.transition, " ").concat(styles$8[value], "'>\n <div class='").concat(styles$8.animation, "'>\n <div class='").concat(styles$8.upper_section, "'>\n <div class='").concat(styles$8.upper_background, "'>A</div>\n </div>\n <div class='").concat(styles$8.lower_section, "'>\n <div class='").concat(styles$8.lower_background, "'>B</div>\n </div>\n </div>\n <div class='").concat(styles$8.input, "'>\n <input type='radio' name='transitions' value='").concat(value, "' id='").concat(value, "' ").concat(this.options.optionDisabled(value) ? 'disabled' : '', "/>\n ").concat(this.options.texts[index], "\n </div>\n </div>\n </label>\n </div>");
3375
+ this.ui.container.append($(option));
831
3376
  }
832
- }));
3377
+
3378
+ if (value === 'fadeBg') {
3379
+ this.ui.container.find("div.".concat(styles$8.container_with_option)).append($(extendedOption));
3380
+ }
3381
+ }, this);
3382
+ },
3383
+ save: function save() {
3384
+ var configured = {};
3385
+
3386
+ _.each(this.ui.container.find('input'), function (input) {
3387
+ if ($(input).is(':checked')) {
3388
+ configured = $(input);
3389
+ }
3390
+ }); //This is the case, if a user unchecks the checkbox, then there is no checked item.
3391
+ //So the parent 'fade' transition will be selected.
3392
+
3393
+
3394
+ _.each(this.ui.container.find('input'), function (input) {
3395
+ if (!configured.length && $(input).context.id === 'fadeBg') {
3396
+ configured = $(input);
3397
+ } else if ($(input).context.id !== configured.context.id) {
3398
+ $(input).context.checked = false;
3399
+ }
3400
+ });
3401
+
3402
+ this.model.set(this.options.propertyName, configured.attr('value'));
3403
+ },
3404
+ load: function load() {
3405
+ if (!this.isClosed) {
3406
+ var value = this.model.get(this.options.propertyName);
3407
+
3408
+ if (this.model.has(this.options.propertyName) && this.ui.container.find('input[value="' + value + '"]:not([checked])').length) {
3409
+ var select = {};
3410
+
3411
+ _.each(this.ui.container.find('label'), function (label) {
3412
+ if ($(label).context.htmlFor === value) {
3413
+ select = $(label);
3414
+ } else {
3415
+ if ($(label).context.htmlFor === 'fade') {
3416
+ $(label).context.classList.remove(styles$8.active);
3417
+ }
3418
+
3419
+ $(label).context.parentElement.classList.remove(styles$8.active);
3420
+ }
3421
+ });
3422
+
3423
+ select.context.parentElement.classList.add(styles$8.active);
3424
+
3425
+ if (select.context.htmlFor === 'fade') {
3426
+ select.context.classList.add(styles$8.active);
3427
+ } else {
3428
+ select.context.classList.remove(styles$8.active);
3429
+ }
3430
+ }
3431
+ }
833
3432
  },
834
- onGoBack: function onGoBack() {
835
- this.options.entry.trigger('resetSelection');
3433
+ //Checkbox doesn't retain it's state after a reload, so this will make sure if it was selected it retain it's value.
3434
+ loadCheckbox: function loadCheckbox() {
3435
+ var value = this.model.get(this.options.propertyName);
3436
+
3437
+ if (value === 'fade') {
3438
+ var input = this.ui.container.find('input[value="' + value + '"]');
3439
+ $(input).prop('checked', true);
3440
+ }
836
3441
  }
837
3442
  });
838
- var ItemView = Marionette.ItemView.extend({
839
- tagName: 'li',
840
- className: styles$4.item,
841
- template: function template(_ref) {
842
- var displayName = _ref.displayName;
843
- return "\n <a href=\"\">".concat(displayName, "</a>\n ");
3443
+
3444
+ var EditSectionTransitionView = EditConfigurationView.extend({
3445
+ translationKeyPrefix: 'pageflow_scrolled.editor.edit_section_transition',
3446
+ configure: function configure(configurationEditor) {
3447
+ var entry = this.options.entry;
3448
+ var sectionIndex = entry.sections.indexOf(this.model);
3449
+ var previousSection = entry.sections.at(sectionIndex - 1);
3450
+ var availableTransitions = getAvailableTransitionNames(this.model.configuration.attributes, previousSection.configuration.attributes);
3451
+ configurationEditor.tab('transition', function () {
3452
+ this.input('transition', EditSectionTransitionEffectView, {
3453
+ values: getTransitionNames(),
3454
+ optionDisabled: function optionDisabled(value) {
3455
+ return !availableTransitions.includes(value);
3456
+ }
3457
+ });
3458
+ });
3459
+ }
3460
+ });
3461
+
3462
+ var EditContentElementView = EditConfigurationView.extend({
3463
+ translationKeyPrefix: function translationKeyPrefix() {
3464
+ return "pageflow_scrolled.editor.content_elements.".concat(this.model.get('typeName'));
844
3465
  },
845
- events: {
846
- 'click a': function clickA() {
847
- this.options.entry.insertContentElement({
848
- typeName: this.model.get('typeName')
849
- }, this.options.insertOptions, this.model.get('defaultConfig'));
3466
+ configure: function configure(configurationEditor) {
3467
+ this.options.editor.contentElementTypes.setupConfigurationEditor(this.model.get('typeName'), configurationEditor, {
3468
+ entry: this.options.entry
3469
+ });
3470
+ },
3471
+ destroyModel: function destroyModel() {
3472
+ var contentElementType = this.options.editor.contentElementTypes.findByTypeName(this.model.get('typeName'));
3473
+
3474
+ if (contentElementType.handleDestroy) {
3475
+ var result = contentElementType.handleDestroy(this.model);
3476
+
3477
+ if (result === false) {
3478
+ return false;
3479
+ }
850
3480
  }
3481
+
3482
+ this.options.entry.deleteContentElement(this.model);
851
3483
  }
852
3484
  });
853
3485
 
854
- InsertContentElementView.create = function (options) {
855
- return new BackButtonDecoratorView({
856
- view: new InsertContentElementView(options)
857
- });
858
- };
859
-
860
3486
  var SideBarController = Marionette.Controller.extend({
861
3487
  initialize: function initialize(options) {
862
3488
  this.region = options.region;
@@ -876,138 +3502,64 @@ var SideBarController = Marionette.Controller.extend({
876
3502
  editor: editor$2
877
3503
  }));
878
3504
  },
879
- contentElement: function contentElement(id, tab) {
880
- this.region.show(new EditContentElementView({
3505
+ sectionTransition: function sectionTransition(id, tab) {
3506
+ this.region.show(new EditSectionTransitionView({
881
3507
  entry: this.entry,
882
- model: this.entry.contentElements.get(id),
3508
+ model: this.entry.sections.get(id),
883
3509
  editor: editor$2
884
3510
  }));
885
3511
  },
886
- insertContentElement: function insertContentElement(position, id) {
887
- this.region.show(InsertContentElementView.create({
3512
+ contentElement: function contentElement(id, tab) {
3513
+ this.region.show(new EditContentElementView({
888
3514
  entry: this.entry,
889
- insertOptions: {
890
- position: position,
891
- id: id
892
- },
3515
+ model: this.entry.contentElements.get(id),
893
3516
  editor: editor$2
894
3517
  }));
895
3518
  }
896
3519
  });
897
3520
 
898
- function _classCallCheck(instance, Constructor) {
899
- if (!(instance instanceof Constructor)) {
900
- throw new TypeError("Cannot call a class as a function");
901
- }
902
- }
903
-
904
- function _defineProperties(target, props) {
905
- for (var i = 0; i < props.length; i++) {
906
- var descriptor = props[i];
907
- descriptor.enumerable = descriptor.enumerable || false;
908
- descriptor.configurable = true;
909
- if ("value" in descriptor) descriptor.writable = true;
910
- Object.defineProperty(target, descriptor.key, descriptor);
911
- }
912
- }
913
-
914
- function _createClass(Constructor, protoProps, staticProps) {
915
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
916
- if (staticProps) _defineProperties(Constructor, staticProps);
917
- return Constructor;
918
- }
3521
+ var css$b = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,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);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}\n\n.BrowserNotSupportedView-module_main__TMVR7 {\n height: 97vh;\n width: 100vw;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.BrowserNotSupportedView-module_container__2FpC1 {\n color: #000000;\n height: auto;\n width: 80%;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n\n.BrowserNotSupportedView-module_texts__3kcI1 {\n display: flex;\n height: auto;\n flex-direction: column;\n width: 80%;\n align-items: center;\n padding: 2%;\n}\n\n.BrowserNotSupportedView-module_texts__3kcI1 h2 {\n text-align: center;\n}\n\n.BrowserNotSupportedView-module_texts__3kcI1 p {\n margin-top: 0;\n text-align: center;\n}\n\n.BrowserNotSupportedView-module_icons__3i7mG {\n display: flex;\n opacity: 0.65;\n width: 80%;\n height: auto;\n flex-wrap: wrap;\n justify-content: center;\n padding: 1%;\n background-color: #FAF9ED;\n}\n\n.BrowserNotSupportedView-module_child__1sr8s {\n height: 100px;\n width: 100px;\n margin-left: 1%;\n}\n\n\n.BrowserNotSupportedView-module_chrome__1hS6F { \n}\n\n.BrowserNotSupportedView-module_edge__1aaHV {\n}\n\n.BrowserNotSupportedView-module_firefox__1fM8y {\n}\n\n.BrowserNotSupportedView-module_safari__Y2ea8 {\n}\n\n/*Media Queries*/\n/*Small mobile devices in landscape.*/\n@media (max-width: 767px) and (orientation: landscape){\n .BrowserNotSupportedView-module_texts__3kcI1 p {\n font-size: 14px;\n }\n .BrowserNotSupportedView-module_icons__3i7mG, .BrowserNotSupportedView-module_texts__3kcI1 {\n width: 100%;\n } \n}";
3522
+ var styles$9 = {"main":"BrowserNotSupportedView-module_main__TMVR7","container":"BrowserNotSupportedView-module_container__2FpC1","texts":"BrowserNotSupportedView-module_texts__3kcI1","icons":"BrowserNotSupportedView-module_icons__3i7mG","child":"BrowserNotSupportedView-module_child__1sr8s","chrome":"BrowserNotSupportedView-module_chrome__1hS6F icons-module_chrome__1XHpi","edge":"BrowserNotSupportedView-module_edge__1aaHV icons-module_edge__2KQ9q","firefox":"BrowserNotSupportedView-module_firefox__1fM8y icons-module_firefox__22UR1","safari":"BrowserNotSupportedView-module_safari__Y2ea8 icons-module_safari__3nzsc"};
3523
+ styleInject(css$b);
919
3524
 
920
- /**
921
- * Integrate new content types into the editor.
922
- * @name editor_contentElementTypes
923
- */
924
-
925
- var ContentElementTypeRegistry =
926
- /*#__PURE__*/
927
- function () {
928
- function ContentElementTypeRegistry() {
929
- _classCallCheck(this, ContentElementTypeRegistry);
930
-
931
- this.contentElementTypes = {};
3525
+ var BrowserNotSupportedView = Marionette.ItemView.extend({
3526
+ template: function template() {
3527
+ return "\n <div class=\"".concat(styles$9.main, "\" />\n ");
3528
+ },
3529
+ className: styles$9.main,
3530
+ ui: cssModulesUtils.ui(styles$9, 'main'),
3531
+ onShow: function onShow() {
3532
+ this.appendOptions();
3533
+ },
3534
+ appendOptions: function appendOptions() {
3535
+ var container = "<div class='".concat(styles$9.container, "'>\n <div class='").concat(styles$9.texts, "'>\n <h2>").concat(I18n.t('pageflow_scrolled.editor.browser_not_supported.heading'), "</h2>\n <p>").concat(I18n.t('pageflow_scrolled.editor.browser_not_supported.text'), "</p>\n </div>\n <div class='").concat(styles$9.icons, "'>\n <span class='").concat(styles$9.chrome, " ").concat(styles$9.child, "'></span>\n <div class='").concat(styles$9.firefox, " ").concat(styles$9.child, "'></div>\n <div class='").concat(styles$9.safari, " ").concat(styles$9.child, "'></div>\n <div class='").concat(styles$9.edge, " ").concat(styles$9.child, "'></div>\n </div>\n </div>");
3536
+ this.ui.main.append($(container));
932
3537
  }
933
- /**
934
- * Register a new type of content element in the editor.
935
- *
936
- * @param {string} typeName - Name of the content element type.
937
- * @param {Object} options
938
- * @param {Function} options.configurationEditor -
939
- * Function that is evaluated in the context of a
940
- * `ConfigurationEditorView` (see `pageflow/ui`) which will
941
- * be used to edit the configuration of content elements of
942
- * this type.
943
- * @param {Object} options.defaultConfig -
944
- * Object that is set as initial config for the content element.
945
- * @memberof editor_contentElementTypes
946
- *
947
- * @example
948
- *
949
- * // editor.js
950
- * editor.contentElementTypes.register('inlineImage', {
951
- * configurationEditor() {
952
- * this.tab('general', function() {
953
- * this.input('caption', TextInputView);
954
- * });
955
- * }
956
- * });
957
- */
958
-
959
-
960
- _createClass(ContentElementTypeRegistry, [{
961
- key: "register",
962
- value: function register(typeName, options) {
963
- this.contentElementTypes[typeName] = options;
964
- }
965
- }, {
966
- key: "setupConfigurationEditor",
967
- value: function setupConfigurationEditor(name, configurationEditorView, options) {
968
- if (!this.contentElementTypes[name]) {
969
- throw new Error("Unknown content element type ".concat(name));
970
- }
971
-
972
- return this.contentElementTypes[name].configurationEditor.call(configurationEditorView, options);
973
- }
974
- }, {
975
- key: "toArray",
976
- value: function toArray() {
977
- var _this = this;
978
-
979
- return Object.keys(this.contentElementTypes).map(function (typeName) {
980
- return {
981
- typeName: typeName,
982
- displayName: I18n.t("pageflow_scrolled.editor.content_elements.".concat(typeName, ".name")),
983
- defaultConfig: _this.contentElementTypes[typeName].defaultConfig
984
- };
985
- });
986
- }
987
- }]);
988
-
989
- return ContentElementTypeRegistry;
990
- }();
991
-
992
- function extend(api) {
993
- return Object.assign(api, {
994
- contentElementTypes: new ContentElementTypeRegistry()
995
- });
996
- }
997
- var editor = extend(editor$1);
998
-
999
- function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
3538
+ });
1000
3539
 
1001
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1002
- Object.assign(pageflow, globalInterop);
1003
3540
  editor.registerEntryType('scrolled', {
1004
3541
  entryModel: ScrolledEntry,
1005
3542
  previewView: function previewView(options) {
1006
- return new EntryPreviewView(_objectSpread$2({}, options, {
3543
+ return new EntryPreviewView(_objectSpread2(_objectSpread2({}, options), {}, {
1007
3544
  editor: editor
1008
3545
  }));
1009
3546
  },
1010
- outlineView: EntryOutlineView
3547
+ outlineView: EntryOutlineView,
3548
+ appearanceInputs: function appearanceInputs(tabView) {
3549
+ tabView.view(NoOptionsHintView);
3550
+ },
3551
+ isBrowserSupported: function isBrowserSupported() {
3552
+ return browser.agent.matchesDesktopChrome({
3553
+ minVersion: 20
3554
+ }) || browser.agent.matchesDesktopFirefox({
3555
+ minVersion: 20
3556
+ }) || browser.agent.matchesDesktopSafari({
3557
+ minVersion: 3
3558
+ }) || browser.agent.matchesDesktopEdge({
3559
+ minVersion: 20
3560
+ });
3561
+ },
3562
+ browserNotSupportedView: BrowserNotSupportedView
1011
3563
  });
1012
3564
  editor.registerSideBarRouting({
1013
3565
  router: SideBarRouter,
@@ -1015,4 +3567,11 @@ editor.registerSideBarRouting({
1015
3567
  });
1016
3568
  editor.registerFileSelectionHandler('contentElementConfiguration', ContentElementFileSelectionHandler);
1017
3569
 
1018
- export { editor };
3570
+ var css$c = ".icons-module_icon__16IVx::before,\n.icons-module_icon__16IVx::after {\n font-family: \"entypo\";\n}.icons-module_arrowsCcw__3_nrJ,\n.icons-module_attention__1sssG,\n.icons-module_cancel__1PjiX,\n.icons-module_check__3Lkw9,\n.icons-module_drag__p7HUE,\n.icons-module_helpCircled__D_oKU,\n.icons-module_plusCircled__20FlJ,\n.icons-module_rightOpen__9vsOG,\n.icons-module_trash__DH1EH {\n}.icons-module_arrowsCcw__3_nrJ::before {\n content: \"\\1F504\";\n}.icons-module_attention__1sssG::before {\n content: \"\\26A0\";\n}.icons-module_cancel__1PjiX::before {\n content: \"\\2715\";\n}.icons-module_check__3Lkw9::before {\n content: \"\\2713\";\n}.icons-module_drag__p7HUE {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n line-height: 10px;\n}.icons-module_drag__p7HUE::before {\n content: \"\\E75F\";\n}.icons-module_drag__p7HUE::after {\n content: \"\\E75C\";\n}.icons-module_helpCircled__D_oKU::before {\n content: \"\\E704\";\n}.icons-module_plusCircled__20FlJ::before {\n content: \"\\2795\";\n}.icons-module_rightOpen__9vsOG::before {\n content: \"\\E75E\"\n}.icons-module_trash__DH1EH::before {\n content: \"\\E729\";\n}.icons-module_chrome__1XHpi {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LDI0YzAsNS41MjEtNC40NzksMTAtMTAsMTBzLTEwLTQuNDc5LTEwLTEwczQuNDc5LTEwLDEwLTEwUzM0LDE4LjQ3OSwzNCwyNHoiLz48bGluZWFyR3JhZGllbnQgaWQ9IlBheDhKY25Neml2dThmflNafmsxeWEiIHgxPSI1Ljc4OSIgeDI9IjMxLjMyNCIgeTE9IjM0LjM1NiIgeTI9IjIwLjc3OSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDUwKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRjYWY1MCIvPjxzdG9wIG9mZnNldD0iLjQ4OSIgc3RvcC1jb2xvcj0iIzRhYWY1MCIvPjxzdG9wIG9mZnNldD0iLjY2NSIgc3RvcC1jb2xvcj0iIzQzYWQ1MCIvPjxzdG9wIG9mZnNldD0iLjc5IiBzdG9wLWNvbG9yPSIjMzhhYTUwIi8+PHN0b3Agb2Zmc2V0PSIuODkyIiBzdG9wLWNvbG9yPSIjMjdhNTUwIi8+PHN0b3Agb2Zmc2V0PSIuOTc4IiBzdG9wLWNvbG9yPSIjMTFhMDUwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGE5ZTUwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWEpIiBkPSJNMzEuMzMsMjkuMjFsLTguMTYsMTQuNzdDMTIuNTEsNDMuNTUsNCwzNC43Niw0LDI0QzQsMTIuOTYsMTIuOTYsNCwyNCw0djExIGMtNC45NywwLTksNC4wMy05LDlzNC4wMyw5LDksOUMyNy4wMywzMywyOS43LDMxLjUxLDMxLjMzLDI5LjIxeiIvPjxsaW5lYXJHcmFkaWVudCBpZD0iUGF4OEpjbk16aXZ1OGZ+U1p+azF5YiIgeDE9IjMzLjU4IiB4Mj0iMzMuNTgiIHkxPSI2IiB5Mj0iMzQuNzk3IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZkNzQ3Ii8+PHN0b3Agb2Zmc2V0PSIuNDgyIiBzdG9wLWNvbG9yPSIjZmZkNjQ1Ii8+PHN0b3Agb2Zmc2V0PSIuNjU1IiBzdG9wLWNvbG9yPSIjZmVkNDNlIi8+PHN0b3Agb2Zmc2V0PSIuNzc5IiBzdG9wLWNvbG9yPSIjZmNjZjMzIi8+PHN0b3Agb2Zmc2V0PSIuODc5IiBzdG9wLWNvbG9yPSIjZmFjOTIyIi8+PHN0b3Agb2Zmc2V0PSIuOTY0IiBzdG9wLWNvbG9yPSIjZjdjMTBjIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjViYzAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWIpIiBkPSJNNDQsMjRjMCwxMS4wNS04Ljk1LDIwLTIwLDIwaC0wLjg0bDguMTctMTQuNzlDMzIuMzgsMjcuNzQsMzMsMjUuOTQsMzMsMjQgYzAtNC45Ny00LjAzLTktOS05VjRjNy44MSwwLDE0LjU1LDQuNDgsMTcuODUsMTFDNDMuMjEsMTcuNzEsNDQsMjAuNzYsNDQsMjR6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXljIiB4MT0iMzYuMTI4IiB4Mj0iMTEuNTc0IiB5MT0iNDQuMjk3IiB5Mj0iMjguOTU0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNTApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZjc1NzJmIi8+PHN0b3Agb2Zmc2V0PSIuNTIzIiBzdG9wLWNvbG9yPSIjZjc1NTJkIi8+PHN0b3Agb2Zmc2V0PSIuNzEyIiBzdG9wLWNvbG9yPSIjZjc1MDI2Ii8+PHN0b3Agb2Zmc2V0PSIuODQ2IiBzdG9wLWNvbG9yPSIjZjc0NjFiIi8+PHN0b3Agb2Zmc2V0PSIuOTU0IiBzdG9wLWNvbG9yPSIjZjczOTBhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjczMTAwIi8+PC9saW5lYXJHcmFkaWVudD48cGF0aCBmaWxsPSJ1cmwoI1BheDhKY25Neml2dThmflNafmsxeWMpIiBkPSJNNDEuODQsMTVIMjRjLTQuOTcsMC05LDQuMDMtOSw5YzAsMS40OSwwLjM2LDIuODksMS4wMSw0LjEzSDE2TDcuMTYsMTMuMjZINy4xNCBDMTAuNjgsNy42OSwxNi45MSw0LDI0LDRDMzEuOCw0LDM4LjU1LDguNDgsNDEuODQsMTV6Ii8+PGxpbmVhckdyYWRpZW50IGlkPSJQYXg4SmNuTXppdnU4Zn5TWn5rMXlkIiB4MT0iMTkuMDUiIHgyPSIyOC45NSIgeTE9IjMwLjk1IiB5Mj0iMjEuMDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA1MCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMyYWE0ZjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDdhZDkiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGZpbGw9InVybCgjUGF4OEpjbk16aXZ1OGZ+U1p+azF5ZCkiIGQ9Ik0zMSwyNGMwLDMuODY3LTMuMTMzLDctNyw3cy03LTMuMTMzLTctN3MzLjEzMy03LDctN1MzMSwyMC4xMzMsMzEsMjR6Ii8+PC9zdmc+); \n}.icons-module_edge__2KQ9q {\n background: url(data:image/png;base64,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);\n}.icons-module_firefox__22UR1 {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iIzAxNTc5QiIgZD0iTTI0IDVBMTkgMTkgMCAxIDAgMjQgNDNBMTkgMTkgMCAxIDAgMjQgNVoiLz48cGF0aCBmaWxsPSIjMDI3N0JEIiBkPSJNMzQsMjAuOGMwLTAuNiwwLTIuOS0xLjUtNC43Yy0wLjEtMC4xLTAuMi0wLjMtMC4yLTAuNGMtMC4xLTAuMS0wLjEtMC4yLTAuMi0wLjRMMzEuOSwxNWwtMC4yLTAuM2MtMC4yLTAuMy0wLjMtMC41LTAuMy0wLjVjLTAuNC0wLjYtMC41LTEuNC0wLjEtMi4xYzAuMS0wLjIsMC4zLTAuNCwwLjQtMC42Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuMmMwLDAsMCwwLTAuMSwwYy0wLjMtMC4yLTAuNi0wLjQtMC44LTAuNmwtMC43LTAuNWwwLDBDMjkuMyw5LjksMjksOS44LDI5LDkuN2MtMC43LTAuNC0xLjEtMS4xLTEtMS45YzAuMS0wLjgsMC42LTEuNSwxLjQtMS43YzAuMSwwLDAuMy0wLjEsMC41LTAuMWMwLDAsMCwwLTAuMS0wLjFDMjgsNS4zLDI2LDUsMjQsNUMxNi42LDUsMTAuMSw5LjMsNywxNS41YzAsMC4yLDAsMC4zLDAsMC41YzAsNy4yLDYuMywxMywxNCwxM0MyNi45LDI5LDMxLjksMjUuNiwzNCwyMC44eiIvPjxwYXRoIGZpbGw9IiNGRkYxNzYiIGQ9Ik0zMCw4YzAsMCwwLjMtMC4xLDAuOS0wLjFjMC4zLDAsMC42LDAsMSwwYzAuNCwwLDAuOCwwLjEsMS4zLDAuMmMwLjUsMC4xLDEsMC4zLDEuNSwwLjVjMC41LDAuMiwxLjEsMC41LDEuNiwwLjljMC41LDAuMywxLDAuOCwxLjUsMS4yYzAuNSwwLjQsMC45LDEsMS4zLDEuNWMwLjMsMC42LDAuNywxLjEsMSwxLjdjMC4zLDAuNiwwLjUsMS4yLDAuNywxLjhjMC4yLDAuNiwwLjMsMS4yLDAuNCwxLjdjMC4xLDAuNiwwLjEsMS4xLDAuMSwxLjVjMCwwLjIsMCwwLjUsMCwwLjdjMCwwLjIsMCwwLjQtMC4xLDAuNmMwLDAuNC0wLjEsMC43LTAuMSwxQzQxLjEsMjEuNyw0MSwyMiw0MSwyMnMtMC4yLTAuMy0wLjQtMC44Yy0wLjEtMC4yLTAuMy0wLjUtMC40LTAuOWMtMC4xLTAuMy0wLjMtMC43LTAuNS0xLjFjLTAuMi0wLjQtMC40LTAuOC0wLjYtMS4zYy0wLjItMC40LTAuNS0wLjktMC43LTEuNGMtMC4yLTAuNS0wLjUtMC45LTAuOC0xLjRjLTAuMy0wLjUtMC42LTAuOS0wLjktMS4zYy0wLjMtMC40LTAuNi0wLjktMS0xLjJjLTAuNC0wLjQtMC43LTAuOC0xLjEtMS4xYy0wLjMtMC40LTAuNy0wLjctMS4xLTFjLTAuNC0wLjMtMC43LTAuNi0xLjEtMC44Yy0wLjMtMC4zLTAuNy0wLjUtMS0wLjdjLTAuMy0wLjItMC42LTAuNC0wLjgtMC41QzMwLjMsOC4yLDMwLDgsMzAsOHoiLz48cGF0aCBmaWxsPSIjRkREODM1IiBkPSJNNDMuMSwxNy42Yy0wLjMtMi4yLTEuMi00LjItMi4yLTUuNmMtMC41LTAuNy0xLTEuMi0xLjMtMS41QzM5LjIsMTAuMiwzOSwxMCwzOSwxMHMwLDAuMywwLjEsMC44YzAuMSwwLjUsMC4xLDEuMSwwLjIsMS45YzAuMSwwLjQsMC4xLDAuOCwwLjIsMS4yYy0wLjQtMC42LTAuOS0xLjItMS40LTEuNmMtMC41LTAuNS0xLjEtMC44LTEuNC0xQzM2LjIsMTEuMSwzNiwxMSwzNiwxMXMwLjEsMC4yLDAuMiwwLjZjMC4xLDAuNCwwLjMsMC45LDAuNSwxLjZjMC4yLDAuNywwLjUsMS42LDAuOCwyLjVjLTAuNi0wLjctMS4yLTEuMy0xLjgtMS43Yy0wLjctMC40LTEuMy0wLjctMS44LTAuOEMzMy4zLDEzLDMzLDEzLDMzLDEzczAuMiwwLjIsMC40LDAuNmMwLjEsMC4yLDAuMywwLjQsMC40LDAuN2MwLjIsMC4zLDAuMywwLjYsMC41LDAuOWMwLjMsMC42LDAuNywxLjMsMSwyLjFjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjJjMC4xLDAuNCwwLjQsMC44LDAuNSwxLjNjMC4yLDAuNCwwLjMsMC44LDAuNSwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjNjMC4xLDAuNCwwLjMsMC44LDAuNCwxLjJjMC4xLDAuNCwwLjIsMC44LDAuNCwxLjFjMC4zLDAuNywwLjUsMS4zLDAuNywxLjdDMzguOSwyNi44LDM5LDI3LDM5LDI3czAuMS0wLjIsMC4zLTAuN2MwLjEtMC4yLDAuMi0wLjUsMC4yLTAuOGMwLjEtMC4zLDAuMi0wLjcsMC4yLTEuMWMwLTAuMywwLjEtMC42LDAuMS0wLjlDMzkuOSwyMy44LDQwLDI0LDQwLDI0czAuMS0wLjIsMC4zLTAuNmMwLjEtMC4yLDAuMi0wLjQsMC4zLTAuN2MwLDAsMC0wLjEsMC0wLjFjMCwwLjIsMCwwLjUsMC4xLDAuN2MwLDAuNCwwLjEsMC43LDAuMSwxYzAsMC4zLDAsMC42LDAsMC45YzAsMC41LDAuMSwwLjgsMC4xLDAuOHMwLjItMC4yLDAuNS0wLjZjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjdjMC4yLTAuMywwLjMtMC42LDAuNS0xYzAuMi0wLjQsMC4zLTAuOCwwLjQtMS4zYzAuMS0wLjUsMC4yLTEsMC4zLTEuNWMwLjEtMC41LDAuMS0xLjEsMC4xLTEuNkM0My4zLDE4LjcsNDMuMiwxOC4xLDQzLjEsMTcuNnoiLz48cGF0aCBmaWxsPSIjRkZCMzAwIiBkPSJNNDQuMSwxOS44QzQ0LjEsMTkuMyw0NCwxOSw0NCwxOXMtMC4yLDAuMy0wLjUsMC43Yy0wLjMsMC41LTAuNiwxLjEtMSwxLjljLTAuMywwLjctMC43LDEuNS0xLjEsMi4zYzAtMC44LDAtMS41LTAuMS0yLjJjLTAuMS0wLjYtMC4yLTEuMS0wLjMtMS42Yy0wLjItMC41LTAuMy0xLTAuNS0xLjRjLTAuMy0wLjktMC43LTEuNS0xLTJDMzkuMiwxNi4yLDM5LDE2LDM5LDE2cy0wLjEsMS4yLTAuMSwzYzAsMC45LTAuMSwxLjgtMC4yLDIuOWMwLDAuNS0wLjEsMS0wLjEsMS42YzAsMC41LTAuMSwxLjEtMC4yLDEuNmMwLDAuMSwwLDAuMywwLDAuNGMtMC4xLTAuOS0wLjQtMS44LTAuOC0yLjRjLTAuMy0wLjctMC43LTEuMi0xLTEuNUMzNi4yLDIxLjEsMzYsMjEsMzYsMjFzMCwwLjMsMCwwLjdjMCwwLjQsMCwxLTAuMSwxLjdjLTAuMSwxLjMtMC4zLDMtMC41LDQuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjJjLTAuMSwwLjQtMC4yLDAuOC0wLjIsMS4yYy0wLjEsMC40LTAuMiwwLjgtMC4zLDEuMWMtMC4xLDAuNC0wLjIsMC43LTAuMiwxYy0wLjEsMC4zLTAuMSwwLjctMC4yLDAuOWMtMC4xLDAuMy0wLjEsMC41LTAuMiwwLjhDMzQsMzQuNywzNCwzNSwzNCwzNXMwLjItMC4xLDAuNi0wLjRjMC40LTAuMywwLjktMC42LDEuNC0xLjJjMC4yLTAuMywwLjUtMC42LDAuOC0xYzAuMi0wLjQsMC41LTAuNywwLjctMS4xYzAsMC4zLTAuMSwwLjYtMC4xLDAuOWMtMC4xLDAuMy0wLjEsMC43LTAuMiwwLjlDMzcsMzMuNywzNywzNCwzNywzNGMwLjEtMC4xLDAuNCwwLDAuNywwLjFjMCwwLjEtMC4xLDAuMi0wLjEsMC4yYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOUMzNy4xLDM1LjcsMzcsMzYsMzcsMzZzMC4zLTAuMSwwLjctMC40YzAuMi0wLjIsMC41LTAuMywwLjgtMC42YzAuMy0wLjIsMC42LTAuNSwwLjktMC45YzAuMy0wLjMsMC42LTAuNywxLTEuMWMwLjMtMC40LDAuNi0wLjksMC45LTEuNGMwLjYtMSwxLjEtMi4xLDEuNS0zLjJjMC40LTEuMSwwLjgtMi4zLDEtMy40YzAuMi0xLjEsMC4zLTIuMSwwLjQtM0M0NC4yLDIxLjEsNDQuMiwyMC40LDQ0LjEsMTkuOHoiLz48cGF0aCBmaWxsPSIjRkY5ODAwIiBkPSJNNDEuNCwzMC40Yy0wLjQsMC4yLTAuOCwwLjYtMS40LDFjLTAuOCwwLjYtMS43LDEuNC0yLjYsMi4zYzAuMS0wLjMsMC4zLTAuNiwwLjQtMC45YzAuMy0wLjksMC40LTEuNywwLjUtMi40YzAtMC43LDAtMS4zLTAuMS0xLjdDMzguMSwyOC4yLDM4LDI4LDM4LDI4cy0wLjIsMC4yLTAuNCwwLjVjLTAuMiwwLjMtMC42LDAuOC0xLDEuM2MtMC40LDAuNS0wLjgsMS4yLTEuMiwxLjhjLTAuMSwwLjEtMC4xLDAuMi0wLjIsMC4zYzAuMi0wLjYsMC4yLTEuMywwLjItMS45YzAtMC44LTAuMi0xLjYtMC40LTIuMmMtMC4yLTAuNi0wLjUtMS4xLTAuNy0xLjRDMzQuMiwyNi4yLDM0LDI2LDM0LDI2cy0wLjEsMC4yLTAuMiwwLjZjLTAuMSwwLjMtMC4zLDAuOC0wLjUsMS40Yy0wLjIsMC41LTAuMywxLjEtMC41LDEuOGMtMC4xLDAuMy0wLjIsMC42LTAuMywxYy0wLjEsMC4zLTAuMiwwLjYtMC4zLDAuOGMtMS45LDEuOS00LjIsMi40LTYuNCwyLjVjLTEuMiwwLTIuMy0wLjItMy4zLTAuNWMwLDAsMCwwLDAsMGMwLDAsMCwwLDAsMGMtMS41LTAuNS0yLjktMS40LTQuMi0yLjZjMS45LDAuMiwzLjctMC4yLDUuMi0wLjlsMi41LTEuNmwwLDBjMC4zLTAuMSwwLjYtMC4xLDAuOSwwYzAuNi0wLjEsMC44LTAuNCwwLjYtMWMtMC4zLTAuNC0wLjgtMC44LTEuMy0xLjFjLTEuMy0wLjctMi42LTAuNi00LDAuM2MtMS4zLDAuNy0yLjUsMC42LTMuOC0wLjFjLTMuMS0xLjYtMS45LTUuNywxLjQtMy42YzAuMi0xLTAuMS0yLjEtMC43LTMuMmMwLDAsMCwwLDAsMGMtMi45LTUuMywwLjQtOS42LDEuNS0xMC4zYy0yLDAuMi0zLjgsMS4xLTUuNCwyLjZDNC45LDEwLjksNCwyMC45LDQsMjFsMS4yLTEuMWMtMC40LDEuMS0wLjcsMi4yLTAuOCwzLjRDNCwyNy4yLDUuMSwzMSw3LjcsMzQuOEMxMS43LDM5LjksMTgsNDMsMjQsNDNjNi44LDAsMTEuMi0yLjUsMTQuMS01LjdjMC4yLTAuMiwwLjQtMC40LDAuNi0wLjZjMC42LTAuNywxLjItMS40LDEuNy0yLjJjMC41LTAuNywwLjgtMS41LDEuMS0yLjJjMC4yLTAuNywwLjQtMS4zLDAuNS0xLjdDNDIsMzAuMyw0MiwzMCw0MiwzMFM0MS44LDMwLjEsNDEuNCwzMC40eiIvPjxwYXRoIGZpbGw9IiNFRjZDMDAiIGQ9Ik0xMiwyOGMtMC4yLTcsNC4zLTYuNCw2LjYtNS42QzE3LDIyLjEsMTYuMywyMy42LDE3LDI1QzE2LjcsMjUsMTMuNiwyNC43LDEyLDI4eiBNMTguMywzMC45YzEuOSwwLjIsMy43LTAuMiw1LjItMC45bDIuNS0xLjZsMCwwYzAuMi0wLjEsMC41LTAuMSwwLjcsMGwwLDBjLTIuOS0xLjctNiwxLjktMTIuOCwwLjhDMTUuNiwzMC41LDE4LjMsMzAuOSwxOC4zLDMwLjl6IE0xOC4xLDE0LjVjLTAuMiwxLjUsMC4xLDMuMywxLjEsNS4yYzAsMCwwLDAsMCwwYzAsMCwwLDAsMCwwQzIwLjYsMTguOSwyMiwxOCwyMiwxOHMyLTIsMC0yQzIwLjEsMTYsMTguOCwxNS4yLDE4LjEsMTQuNXogTTEwLjMsMTIuNEM5LjQsMTEuNiw4LDEwLDgsOGMwLDAtMi40LDMuOS0xLjUsN0M3LjQsMTMuOSw4LjcsMTMsMTAuMywxMi40eiIvPjxwYXRoIGZpbGw9IiNGRkNDODAiIGQ9Ik0xOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMTkuMiwxOS43LDE5LjIsMTkuNywxOS4yLDE5LjdDMjAuNiwxOC45LDIyLDE4LDIyLDE4czAuMi0wLjIsMC40LTAuNEwyMiwxN2gtMy44QzE4LjQsMTcuOSwxOC43LDE4LjgsMTkuMiwxOS43eiIvPjxwYXRoIGZpbGw9IiM1RDQwMzciIGQ9Ik0yMiwxNmMtMC4zLDAtMC42LDAtMC45LTAuMUwyMSwxNmMwLDAsMC44LDEuMywxLDJDMjIsMTgsMjQsMTYsMjIsMTZ6Ii8+PC9zdmc+);\n}.icons-module_safari__3nzsc {\n background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgd2lkdGg9Ijk2cHgiIGhlaWdodD0iOTZweCI+PHBhdGggZmlsbD0iI2NmZDhkYyIgZD0iTTQ0LDI0YzAsMTEuMDQ0LTguOTU2LDIwLTIwLDIwUzQsMzUuMDQ0LDQsMjRTMTIuOTU2LDQsMjQsNFM0NCwxMi45NTYsNDQsMjR6Ii8+PHBhdGggZmlsbD0iIzQ0OGFmZiIgZD0iTTQxLDI0YzAsOS4zOTEtNy42MDksMTctMTcsMTdTNywzMy4zOTEsNywyNFMxNC42MDksNywyNCw3UzQxLDE0LjYwOSw0MSwyNHoiLz48cGF0aCBmaWxsPSIjZmYzZDAwIiBkPSJNMjEuODk4LDIxLjg5OGw0LjIwMyw0LjIwM2w5LjE5OS0xMy40MDJMMjEuODk4LDIxLjg5OHoiLz48cGF0aCBmaWxsPSIjYmYzNjBjIiBkPSJNMjQsMjRsMTEuMzAxLTExLjMwMWwtOS4xOTksMTMuNDAyTDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMS44OTgsMjEuODk4bC05LjE5OSwxMy40MDJsMTMuNDAyLTkuMTk5TDIxLjg5OCwyMS44OTh6Ii8+PHBhdGggZmlsbD0iI2JkYmRiZCIgZD0iTTI0LDI0TDEyLjY5OSwzNS4zMDFsMTMuNDAyLTkuMTk5TDI0LDI0eiIvPjxwYXRoIGZpbGw9IiNiYmRlZmIiIGQ9Ik0xNy4xMDIsMTAuNjk5YzAuNTk4LTAuMzAxLDEuMTk5LTAuNTk4LDEuNzk3LTAuODAxbDEuMjAzLDIuNzAzbC0xLjgwMSwwLjc5N0wxNy4xMDIsMTAuNjk5eiBNMzYsMjVoMi44OThjMC0wLjMwMSwwLjEwMi0wLjY5OSwwLjEwMi0xczAtMC42OTktMC4xMDItMUgzNlYyNXogTTEyLjY5OSwxNC4xMDJsMi4xMDIsMi4wOThsMS4zOTgtMS4zOThsLTIuMDk4LTIuMTAyQzEzLjYwMiwxMy4xOTksMTMuMTk5LDEzLjYwMiwxMi42OTksMTQuMTAyeiBNMjUsOS4xMDJDMjQuNjk5LDksMjQuMzAxLDksMjQsOXMtMC42OTksMC0xLDAuMTAyVjEyaDJWOS4xMDJ6IE0zMC4zOTgsMTAuNWMtMC41OTgtMC4zMDEtMS4xOTktMC41LTEuODk4LTAuNjk5bC0xLjEwMiwyLjgwMWwxLjkwMiwwLjY5OUwzMC4zOTgsMTAuNXogTTEyLjUsMjAuNWwwLjY5OS0xLjg5OEwxMC41LDE3LjVjLTAuMzAxLDAuNjAyLTAuNSwxLjE5OS0wLjY5OSwxLjg5OEwxMi41LDIwLjV6IE0xMiwyM0g5LjEwMkM5LDIzLjMwMSw5LDIzLjY5OSw5LDI0czAsMC42OTksMC4xMDIsMUgxMlYyM3ogTTM1LjUsMjcuNWwtMC42OTksMS44OThMMzcuNSwzMC41YzAuMzAxLTAuNjAyLDAuNS0xLjE5OSwwLjY5OS0xLjg5OEwzNS41LDI3LjV6IE0zOC4xMDIsMTguODk4Yy0wLjIwMy0wLjU5OC0wLjUtMS4xOTktMC44MDEtMS43OTdsLTIuNjk5LDEuMTk5bDAuNzk3LDEuODAxTDM4LjEwMiwxOC44OTh6IE0zNS4zMDEsMzMuODk4bC0yLjEwMi0yLjA5OGwtMS4zOTgsMS4zOThsMi4wOTgsMi4xMDJDMzQuMzk4LDM0LjgwMSwzNC44MDEsMzQuMzk4LDM1LjMwMSwzMy44OTh6IE0xMy4zOTgsMjkuNjk5bC0wLjc5Ny0xLjgwMWwtMi43MDMsMS4yMDNjMC4yMDMsMC41OTgsMC41LDEuMTk5LDAuODAxLDEuNzk3TDEzLjM5OCwyOS42OTl6IE0yOS42OTksMzQuNjAybC0xLjgwMSwwLjc5N2wxLjIwMywyLjcwM2MwLjU5OC0wLjIwMywxLjE5OS0wLjUsMS43OTctMC44MDFMMjkuNjk5LDM0LjYwMnogTTIwLjUsMzUuNWwtMS44OTgtMC42OTlMMTcuNSwzNy41YzAuNjAyLDAuMzAxLDEuMTk5LDAuNSwxLjg5OCwwLjY5OUwyMC41LDM1LjV6IE0yNSwzOC44OThWMzZoLTJ2Mi44OThjMC4zMDEsMCwwLjY5OSwwLjEwMiwxLDAuMTAyUzI0LjY5OSwzOSwyNSwzOC44OTh6Ii8+PC9zdmc+);\n}\n\n.buttons-module_primaryIconButton__KHPA9 {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}\n\n.buttons-module_secondaryIconButton__4LT0V {\n /* see app/assets/stylesheets/pageflow/editor/composable.scss */\n}\n\n.buttons-module_unstyledButton__3m76W {\n border: 0;\n text-align: initial;\n}\n\n.buttons-module_addButton__2pN-g {\n}\n\n.buttons-module_cancelButton__1xJCN {\n}\n\n.buttons-module_saveButton__1M-qM {\n}\n";
3571
+ var buttons_module = {"primaryIconButton":"buttons-module_primaryIconButton__KHPA9 primary_icon_button","secondaryIconButton":"buttons-module_secondaryIconButton__4LT0V secondary_icon_button","unstyledButton":"buttons-module_unstyledButton__3m76W","addButton":"buttons-module_addButton__2pN-g buttons-module_primaryIconButton__KHPA9 primary_icon_button icons-module_plusCircled__20FlJ icons-module_icon__16IVx","cancelButton":"buttons-module_cancelButton__1xJCN buttons-module_secondaryIconButton__4LT0V secondary_icon_button icons-module_cancel__1PjiX icons-module_icon__16IVx","saveButton":"buttons-module_saveButton__1M-qM buttons-module_primaryIconButton__KHPA9 primary_icon_button icons-module_check__3Lkw9 icons-module_icon__16IVx"};
3572
+ styleInject(css$c);
3573
+
3574
+ /*global pageflow*/
3575
+ Object.assign(pageflow, globalInterop);
3576
+
3577
+ export { NoOptionsHintView, buttons_module as buttonStyles, editor };