pageflow 15.2.2 → 15.3.0

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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +338 -85
  3. data/admins/pageflow/accounts.rb +1 -98
  4. data/admins/pageflow/entry.rb +21 -1
  5. data/admins/pageflow/entry_templates.rb +140 -0
  6. data/admins/pageflow/membership.rb +12 -0
  7. data/admins/pageflow/user.rb +5 -3
  8. data/app/assets/javascripts/pageflow/admin/entries.js +65 -0
  9. data/app/assets/javascripts/pageflow/admin/users.js +1 -1
  10. data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -0
  11. data/app/assets/javascripts/pageflow/base.js +0 -12
  12. data/app/assets/javascripts/pageflow/components.js +2 -6
  13. data/app/assets/javascripts/pageflow/dist/ui.js +47 -14
  14. data/app/assets/javascripts/pageflow/vendor.js +13 -10
  15. data/app/assets/stylesheets/pageflow/base.scss +0 -7
  16. data/app/assets/stylesheets/pageflow/editor/base.scss +2 -0
  17. data/app/assets/stylesheets/pageflow/editor/composables.scss +5 -1
  18. data/app/assets/stylesheets/pageflow/editor/emulation_mode_button.scss +44 -55
  19. data/app/assets/stylesheets/pageflow/editor/help.scss +2 -2
  20. data/app/assets/stylesheets/pageflow/ui/tooltip.scss +17 -3
  21. data/app/helpers/pageflow/admin/entries_helper.rb +16 -0
  22. data/app/helpers/pageflow/structured_data_helper.rb +0 -2
  23. data/app/models/pageflow/account.rb +21 -1
  24. data/app/models/pageflow/entry.rb +9 -2
  25. data/app/models/pageflow/entry_duplicate.rb +1 -0
  26. data/app/models/pageflow/entry_template.rb +16 -2
  27. data/app/policies/pageflow/account_policy.rb +10 -0
  28. data/app/policies/pageflow/entry_template_policy.rb +5 -1
  29. data/app/views/admin/accounts/_entry_template_details.html.arb +7 -5
  30. data/app/views/admin/accounts/_form.html.erb +3 -49
  31. data/app/views/admin/entries/_attributes_table.html.arb +5 -0
  32. data/app/views/admin/entries/_not_allowed_to_see_entry_types.json.jbuilder +2 -0
  33. data/app/views/admin/entries/entry_types.json.jbuilder +4 -0
  34. data/app/views/admin/entry_templates/_form.html.erb +58 -0
  35. data/app/views/admin/users/_not_allowed_to_see_user_quota.html.erb +3 -0
  36. data/app/views/components/pageflow/admin/entry_templates_tab.rb +48 -0
  37. data/app/views/pageflow/admin/users/_quota_exhausted.html.erb +1 -1
  38. data/config/initializers/admin_resource_tabs.rb +5 -0
  39. data/config/initializers/help_entries.rb +1 -5
  40. data/config/locales/de.yml +88 -155
  41. data/config/locales/en.yml +79 -143
  42. data/db/migrate/20200515112500_add_constraints_to_entry_templates.rb +21 -0
  43. data/db/migrate/20200807135200_rename_pageflow_entry_template_entry_type_to_entry_type_name.rb +7 -0
  44. data/entry_types/paged/app/assets/javascripts/pageflow_paged/components.js +7 -0
  45. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +1479 -1391
  46. data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +9218 -0
  47. data/{app/assets/javascripts/pageflow → entry_types/paged/app/assets/javascripts/pageflow_paged}/dist/react-client.js +1 -1
  48. data/{app/assets/javascripts/pageflow → entry_types/paged/app/assets/javascripts/pageflow_paged}/dist/react-server.js +3 -3
  49. data/entry_types/paged/app/assets/javascripts/pageflow_paged/frontend.js +6 -0
  50. data/entry_types/paged/app/assets/javascripts/pageflow_paged/server_rendering.js +9 -0
  51. data/entry_types/paged/app/assets/javascripts/pageflow_paged/vendor.js +8 -0
  52. data/entry_types/paged/app/controllers/pageflow_paged/application_controller.rb +2 -2
  53. data/{app/helpers/pageflow → entry_types/paged/app/helpers/pageflow_paged}/page_background_asset_helper.rb +4 -3
  54. data/{app/helpers/pageflow → entry_types/paged/app/helpers/pageflow_paged}/react_server_side_rendering_helper.rb +23 -2
  55. data/entry_types/paged/app/views/layouts/pageflow_paged/application.html.erb +2 -2
  56. data/entry_types/paged/app/views/pageflow_paged/editor/entries/_head.html.erb +2 -2
  57. data/entry_types/paged/app/views/pageflow_paged/entries/_entry.html.erb +1 -1
  58. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/page_background_asset/_element.html.erb +0 -0
  59. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/react/_widget.html.erb +0 -0
  60. data/{app/views/pageflow → entry_types/paged/app/views/pageflow_paged}/react/page.html.erb +0 -0
  61. data/entry_types/paged/config/initializers/features.rb +1 -1
  62. data/entry_types/paged/config/initializers/help_entries.rb +17 -0
  63. data/entry_types/paged/config/locales/new/help.de.yml +162 -0
  64. data/entry_types/paged/config/locales/new/help.en.yml +153 -0
  65. data/entry_types/paged/lib/pageflow_paged/engine.rb +13 -0
  66. data/entry_types/paged/lib/pageflow_paged/plugin.rb +5 -1
  67. data/entry_types/paged/lib/pageflow_paged/react.rb +12 -0
  68. data/{lib/pageflow → entry_types/paged/lib/pageflow_paged}/react/page_type.rb +2 -2
  69. data/{lib/pageflow → entry_types/paged/lib/pageflow_paged}/react/widget_type.rb +2 -2
  70. data/entry_types/paged/vendor/assets/javascripts/development/pageflow_paged/vendor/react-server.js +20613 -0
  71. data/entry_types/paged/vendor/assets/javascripts/development/pageflow_paged/vendor/react.js +21495 -0
  72. data/entry_types/paged/vendor/assets/javascripts/production/pageflow_paged/vendor/react-server.js +24 -0
  73. data/entry_types/paged/vendor/assets/javascripts/production/pageflow_paged/vendor/react.js +24 -0
  74. data/entry_types/scrolled/app/assets/javascripts/pageflow_scrolled/legacy.js +0 -0
  75. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
  76. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +14 -4
  77. data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +2 -2
  78. data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +8 -0
  79. data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +6 -0
  80. data/entry_types/scrolled/app/helpers/pageflow_scrolled/entry_json_seed_helper.rb +2 -0
  81. data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +33 -0
  82. data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +8 -0
  83. data/entry_types/scrolled/app/models/pageflow_scrolled/content_element.rb +38 -0
  84. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/content_elements/batch.json.jbuilder +2 -0
  85. data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +1 -7
  86. data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +19 -3
  87. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +3 -0
  88. data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_theme.json.jbuilder +7 -0
  89. data/entry_types/scrolled/config/initializers/help_entries.rb +16 -0
  90. data/entry_types/scrolled/config/locales/new/de.yml +345 -13
  91. data/entry_types/scrolled/config/locales/new/en.yml +257 -14
  92. data/entry_types/scrolled/config/routes.rb +1 -0
  93. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +28 -0
  94. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoDesktop.svg +56 -0
  95. data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/templates/theme/logoMobile.svg +22 -0
  96. data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +4 -0
  97. data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +3 -1
  98. data/entry_types/scrolled/lib/pageflow_scrolled/seeds.rb +90 -30
  99. data/entry_types/scrolled/lib/tasks/pageflow_scrolled_tasks.rake +64 -27
  100. data/entry_types/scrolled/package/contentElements-editor.js +242 -183
  101. data/entry_types/scrolled/package/contentElements-frontend.css +1 -0
  102. data/entry_types/scrolled/package/contentElements-frontend.js +624 -279
  103. data/entry_types/scrolled/package/editor.js +2561 -363
  104. data/entry_types/scrolled/package/frontend-server.js +228 -0
  105. data/entry_types/scrolled/package/frontend/EditableText-4264c349.js +1993 -0
  106. data/entry_types/scrolled/package/frontend/Wavesurfer-c3c45324.js +378 -0
  107. data/entry_types/scrolled/package/frontend/components-cfe6a479.js +2115 -0
  108. data/entry_types/scrolled/package/frontend/getPrototypeOf-63c7c8e8.js +86 -0
  109. data/entry_types/scrolled/package/frontend/index.css +9 -0
  110. data/entry_types/scrolled/package/frontend/index.js +4425 -0
  111. data/entry_types/scrolled/package/package.json +17 -6
  112. data/entry_types/scrolled/spec/fixtures/audio.m4a +0 -0
  113. data/entry_types/scrolled/spec/fixtures/video.mp4 +0 -0
  114. data/lib/generators/pageflow/initializer/templates/pageflow.rb +20 -9
  115. data/lib/pageflow/ability_mixin.rb +14 -2
  116. data/lib/pageflow/configuration.rb +6 -5
  117. data/lib/pageflow/engine.rb +1 -0
  118. data/lib/pageflow/entry_type_configuration.rb +1 -0
  119. data/lib/pageflow/global_config_api.rb +5 -4
  120. data/lib/pageflow/react.rb +4 -2
  121. data/lib/pageflow/version.rb +1 -1
  122. data/{packages/pageflow → package}/config/jest/index.js +2 -1
  123. data/{packages/pageflow → package}/config/jest/transformers/jst.js +0 -0
  124. data/{packages/pageflow → package}/config/jest/transformers/upwardBabel.js +0 -0
  125. data/package/config/webpack.js +22 -0
  126. data/{packages/pageflow → package}/editor.js +480 -1129
  127. data/package/frontend.js +2525 -0
  128. data/{packages/pageflow → package}/package.json +3 -0
  129. data/{packages/pageflow → package}/testHelpers.js +114 -13
  130. data/{packages/pageflow → package}/ui.js +47 -14
  131. data/spec/factories/accounts.rb +3 -1
  132. data/spec/factories/entry_templates.rb +1 -0
  133. data/spec/factories/published_entries.rb +6 -1
  134. metadata +62 -26
  135. data/app/assets/javascripts/pageflow/dist/frontend.js +0 -5800
  136. data/config/initializers/entry_types.rb +0 -4
  137. data/entry_types/scrolled/package/frontend.js +0 -2879
  138. data/packages/pageflow/config/jest/transformers/cssModules.js +0 -1
  139. data/packages/pageflow/config/webpack.js +0 -14
@@ -1,14 +1,29 @@
1
+ import { ConfigurationEditorTabView, SelectInputView, TextInputView, cssModulesUtils, SortableCollectionView, Object as Object$1, TextAreaInputView, CheckBoxInputView, 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 { SectionThumbnail, getAvailableTransitionNames, getTransitionNames } from 'pageflow-scrolled/frontend';
10
10
  import $ from 'jquery';
11
11
  import { editor as editor$2 } from 'pageflow-scrolled/editor';
12
+ import _ from 'underscore';
13
+ import { browser } from 'pageflow/frontend';
14
+
15
+ ConfigurationEditorTabView.groups.define('ContentElementPosition', function () {
16
+ var contentElement = this.model.parent;
17
+ this.input('position', SelectInputView, {
18
+ attributeTranslationKeyPrefixes: ['pageflow_scrolled.editor.common_content_element_attributes'],
19
+ values: contentElement.getAvailablePositions()
20
+ });
21
+ });
22
+ ConfigurationEditorTabView.groups.define('ContentElementCaption', function () {
23
+ this.input('caption', TextInputView, {
24
+ attributeTranslationKeyPrefixes: ['pageflow_scrolled.editor.common_content_element_attributes']
25
+ });
26
+ });
12
27
 
13
28
  function _defineProperty(obj, key, value) {
14
29
  if (key in obj) {
@@ -25,9 +40,270 @@ function _defineProperty(obj, key, value) {
25
40
  return obj;
26
41
  }
27
42
 
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; }
43
+ function ownKeys(object, enumerableOnly) {
44
+ var keys = Object.keys(object);
45
+
46
+ if (Object.getOwnPropertySymbols) {
47
+ var symbols = Object.getOwnPropertySymbols(object);
48
+ if (enumerableOnly) symbols = symbols.filter(function (sym) {
49
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
50
+ });
51
+ keys.push.apply(keys, symbols);
52
+ }
53
+
54
+ return keys;
55
+ }
56
+
57
+ function _objectSpread2(target) {
58
+ for (var i = 1; i < arguments.length; i++) {
59
+ var source = arguments[i] != null ? arguments[i] : {};
60
+
61
+ if (i % 2) {
62
+ ownKeys(Object(source), true).forEach(function (key) {
63
+ _defineProperty(target, key, source[key]);
64
+ });
65
+ } else if (Object.getOwnPropertyDescriptors) {
66
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
67
+ } else {
68
+ ownKeys(Object(source)).forEach(function (key) {
69
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
70
+ });
71
+ }
72
+ }
73
+
74
+ return target;
75
+ }
76
+
77
+ function _arrayWithHoles(arr) {
78
+ if (Array.isArray(arr)) return arr;
79
+ }
80
+
81
+ function _iterableToArrayLimit(arr, i) {
82
+ if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
83
+ var _arr = [];
84
+ var _n = true;
85
+ var _d = false;
86
+ var _e = undefined;
87
+
88
+ try {
89
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
90
+ _arr.push(_s.value);
91
+
92
+ if (i && _arr.length === i) break;
93
+ }
94
+ } catch (err) {
95
+ _d = true;
96
+ _e = err;
97
+ } finally {
98
+ try {
99
+ if (!_n && _i["return"] != null) _i["return"]();
100
+ } finally {
101
+ if (_d) throw _e;
102
+ }
103
+ }
104
+
105
+ return _arr;
106
+ }
107
+
108
+ function _arrayLikeToArray(arr, len) {
109
+ if (len == null || len > arr.length) len = arr.length;
110
+
111
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
112
+ arr2[i] = arr[i];
113
+ }
114
+
115
+ return arr2;
116
+ }
117
+
118
+ function _unsupportedIterableToArray(o, minLen) {
119
+ if (!o) return;
120
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
121
+ var n = Object.prototype.toString.call(o).slice(8, -1);
122
+ if (n === "Object" && o.constructor) n = o.constructor.name;
123
+ if (n === "Map" || n === "Set") return Array.from(n);
124
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
125
+ }
126
+
127
+ function _nonIterableRest() {
128
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
129
+ }
130
+
131
+ function _slicedToArray(arr, i) {
132
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
133
+ }
134
+
135
+ function _classCallCheck(instance, Constructor) {
136
+ if (!(instance instanceof Constructor)) {
137
+ throw new TypeError("Cannot call a class as a function");
138
+ }
139
+ }
140
+
141
+ function _defineProperties(target, props) {
142
+ for (var i = 0; i < props.length; i++) {
143
+ var descriptor = props[i];
144
+ descriptor.enumerable = descriptor.enumerable || false;
145
+ descriptor.configurable = true;
146
+ if ("value" in descriptor) descriptor.writable = true;
147
+ Object.defineProperty(target, descriptor.key, descriptor);
148
+ }
149
+ }
150
+
151
+ function _createClass(Constructor, protoProps, staticProps) {
152
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
153
+ if (staticProps) _defineProperties(Constructor, staticProps);
154
+ return Constructor;
155
+ }
156
+
157
+ /**
158
+ * Integrate new content types into the editor.
159
+ * @name editor_contentElementTypes
160
+ */
161
+
162
+ var ContentElementTypeRegistry =
163
+ /*#__PURE__*/
164
+ function () {
165
+ function ContentElementTypeRegistry() {
166
+ _classCallCheck(this, ContentElementTypeRegistry);
167
+
168
+ this.contentElementTypes = {};
169
+ }
170
+ /**
171
+ * Register a new type of content element in the editor.
172
+ *
173
+ * @param {string} typeName - Name of the content element type.
174
+ * @param {Object} options
175
+ * @param {Function} options.configurationEditor -
176
+ * Function that is evaluated in the context of a
177
+ * `ConfigurationEditorView` (see `pageflow/ui`) which will
178
+ * be used to edit the configuration of content elements of
179
+ * this type. Receives an options object with an `entry`
180
+ * property containing the entry model.
181
+ * @param {Object} options.defaultConfig -
182
+ * Object that is set as initial config for the content element.
183
+ * @param {Function} [options.split] -
184
+ * Function that receives configuration attributes and a split point
185
+ * and needs to return a two element array of configuration attributes
186
+ * objects representing the content elements that arise from splitting
187
+ * a content element with the given configuration at the specified
188
+ * split point. Called when inserting content elements at custom split
189
+ * points.
190
+ * @param {Function} [options.merge] -
191
+ * Function that receives two configuration attributes objects and
192
+ * needs to return a single merged configuration. If provided, this
193
+ * will function will be called whenever two content elements of this
194
+ * type become adjacent because a common neighbor has been deleted.
195
+ * @param {string[]} [options.supportedPositions] -
196
+ * Pass array containing a subset of the positions `left`, `right`,
197
+ * `sticky`, `full` and `inline`. When inserting a content element
198
+ * next to a `sticky`, `left` or `right` positioned sibling, only
199
+ * types supporting this position will be offered in the type
200
+ * selection dialog. By default all positions are supported.
201
+ * @memberof editor_contentElementTypes
202
+ *
203
+ * @example
204
+ *
205
+ * // editor.js
206
+ * editor.contentElementTypes.register('inlineImage', {
207
+ * configurationEditor() {
208
+ * this.tab('general', function() {
209
+ * this.input('caption', TextInputView);
210
+ * });
211
+ * }
212
+ * });
213
+ */
214
+
215
+
216
+ _createClass(ContentElementTypeRegistry, [{
217
+ key: "register",
218
+ value: function register(typeName, options) {
219
+ this.contentElementTypes[typeName] = options;
220
+ }
221
+ }, {
222
+ key: "setupConfigurationEditor",
223
+ value: function setupConfigurationEditor(typeName, configurationEditorView, options) {
224
+ return this.findByTypeName(typeName).configurationEditor.call(configurationEditorView, options);
225
+ }
226
+ }, {
227
+ key: "findByTypeName",
228
+ value: function findByTypeName(typeName) {
229
+ if (!this.contentElementTypes[typeName]) {
230
+ throw new Error("Unknown content element type ".concat(typeName));
231
+ }
232
+
233
+ return this.contentElementTypes[typeName];
234
+ }
235
+ }, {
236
+ key: "getSupported",
237
+ value: function getSupported(entry, insertOptions) {
238
+ var _getSiblings = getSiblings(entry, insertOptions),
239
+ _getSiblings2 = _slicedToArray(_getSiblings, 2),
240
+ sibling = _getSiblings2[0],
241
+ otherSibling = _getSiblings2[1];
242
+
243
+ var position = sibling ? sibling.getDefaultSiblingPosition() : 'inline';
244
+ return this.toArray().filter(function (type) {
245
+ if (type.supportedPositions && !type.supportedPositions.includes(position)) {
246
+ return false;
247
+ }
248
+
249
+ if (canBeMerged(type, sibling) || canBeMerged(type, otherSibling)) {
250
+ return false;
251
+ }
252
+
253
+ return true;
254
+ });
255
+ }
256
+ }, {
257
+ key: "toArray",
258
+ value: function toArray() {
259
+ var _this = this;
260
+
261
+ return Object.keys(this.contentElementTypes).map(function (typeName) {
262
+ return _objectSpread2(_objectSpread2({}, _this.contentElementTypes[typeName]), {}, {
263
+ typeName: typeName,
264
+ displayName: I18n.t("pageflow_scrolled.editor.content_elements.".concat(typeName, ".name"))
265
+ });
266
+ });
267
+ }
268
+ }]);
269
+
270
+ return ContentElementTypeRegistry;
271
+ }();
272
+
273
+ function getSiblings(entry, insertOptions) {
274
+ if (insertOptions.at === 'endOfSection') {
275
+ return [undefined, entry.sections.get(insertOptions.id).contentElements.last()];
276
+ }
277
+
278
+ var sibling = entry.contentElements.get(insertOptions.id);
279
+ var otherSibling = getOtherSibling(sibling, insertOptions);
280
+ return [sibling, otherSibling];
281
+ }
282
+
283
+ function canBeMerged(type, sibling) {
284
+ return type.merge && sibling && sibling.get('typeName') === type.typeName;
285
+ }
286
+
287
+ function getOtherSibling(sibling, insertOptions) {
288
+ var _sibling$getAdjacentC = sibling.getAdjacentContentElements(),
289
+ _sibling$getAdjacentC2 = _slicedToArray(_sibling$getAdjacentC, 2),
290
+ before = _sibling$getAdjacentC2[0],
291
+ after = _sibling$getAdjacentC2[1];
292
+
293
+ if (insertOptions.at === 'before') {
294
+ return before;
295
+ } else if (insertOptions.at === 'after') {
296
+ return after;
297
+ }
298
+ }
299
+
300
+ function extend(api) {
301
+ return Object.assign(api, {
302
+ contentElementTypes: new ContentElementTypeRegistry()
303
+ });
304
+ }
305
+ var editor = extend(editor$1);
29
306
 
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
307
  var Chapter = Backbone$1.Model.extend({
32
308
  mixins: [configurationContainer({
33
309
  autoSave: true,
@@ -45,18 +321,22 @@ var Chapter = Backbone$1.Model.extend({
45
321
  this.entry = options.entry;
46
322
  },
47
323
  addSection: function addSection(attributes) {
48
- var section = this.sections.create(_objectSpread({
324
+ var _this = this;
325
+
326
+ var section = this.sections.create(_objectSpread2({
49
327
  position: this.sections.length,
50
328
  chapterId: this.id
51
329
  }, attributes), {
52
330
  contentElements: this.entry.contentElements
53
331
  });
54
332
  section.once('sync', function () {
333
+ _this.entry.trigger('selectSectionSettings', section);
334
+
335
+ _this.entry.trigger('scrollToSection', section);
336
+
55
337
  section.contentElements.create({
56
- typeName: 'heading',
57
- configuration: {
58
- children: 'Neuer Abschnitt'
59
- }
338
+ typeName: 'textBlock',
339
+ configuration: {}
60
340
  });
61
341
  });
62
342
  }
@@ -75,29 +355,64 @@ var ChaptersCollection = Backbone$1.Collection.extend({
75
355
  var SectionConfiguration = Configuration.extend({
76
356
  defaults: {
77
357
  transition: 'scroll',
78
- backdrop: {
79
- image: '#fff'
80
- }
358
+ fullHeight: true,
359
+ backdrop: {}
81
360
  },
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');
361
+ initialize: function initialize() {
362
+ Configuration.prototype.initialize.apply(this, arguments);
363
+ this.attributes = _objectSpread2(_objectSpread2({}, this.getBackdropAttributes()), this.attributes);
364
+ },
365
+ getBackdropAttributes: function getBackdropAttributes() {
366
+ var backdrop = this.attributes.backdrop || {};
367
+
368
+ if (backdrop.image && backdrop.image.toString().startsWith('#')) {
369
+ return {
370
+ backdropType: 'color',
371
+ backdropColor: backdrop.image
372
+ };
373
+ } else if (backdrop.color) {
374
+ return {
375
+ backdropType: 'color',
376
+ backdropColor: backdrop.color
377
+ };
378
+ } else if (backdrop.video) {
379
+ return {
380
+ backdropType: 'video',
381
+ backdropVideo: backdrop.video
382
+ };
383
+ } else {
384
+ return {
385
+ backdropType: 'image',
386
+ backdropImage: backdrop.image,
387
+ backdropImageMobile: backdrop.imageMobile
388
+ };
89
389
  }
90
-
91
- return Configuration.prototype.get.apply(this, arguments);
92
390
  },
93
391
  set: function set(name, value) {
94
- if (name === 'backdropImage' && value) {
95
- this.set('backdrop', {
96
- image: value
97
- });
392
+ Configuration.prototype.set.apply(this, arguments);
393
+
394
+ if (name !== 'backdrop' && name.startsWith && name.startsWith('backdrop')) {
395
+ this.updateBackdropAttribute();
98
396
  }
397
+ },
398
+ updateBackdropAttribute: function updateBackdropAttribute() {
399
+ switch (this.get('backdropType')) {
400
+ case 'color':
401
+ return this.set('backdrop', {
402
+ color: this.get('backdropColor')
403
+ });
404
+
405
+ case 'video':
406
+ return this.set('backdrop', {
407
+ video: this.get('backdropVideo')
408
+ });
99
409
 
100
- return Configuration.prototype.set.apply(this, arguments);
410
+ default:
411
+ return this.set('backdrop', {
412
+ image: this.get('backdropImage'),
413
+ imageMobile: this.get('backdropImageMobile')
414
+ });
415
+ }
101
416
  }
102
417
  });
103
418
  var FileSelectionHandler = function FileSelectionHandler(options) {
@@ -126,7 +441,8 @@ var Section = Backbone$1.Model.extend({
126
441
  parent: options.contentElements,
127
442
  parentModel: this,
128
443
  foreignKeyAttribute: 'sectionId',
129
- parentReferenceAttribute: 'section'
444
+ parentReferenceAttribute: 'section',
445
+ autoConsolidatePositions: false
130
446
  });
131
447
  },
132
448
  chapterPosition: function chapterPosition() {
@@ -161,7 +477,35 @@ var ContentElement = Backbone$1.Model.extend({
161
477
  includeAttributesInJSON: ['position', 'typeName']
162
478
  }), delayedDestroying, entryTypeEditorControllerUrls.forModel({
163
479
  resources: 'content_elements'
164
- }), failureTracking]
480
+ }), failureTracking],
481
+ getType: function getType(contentElement) {
482
+ return editor.contentElementTypes.findByTypeName(this.get('typeName'));
483
+ },
484
+ postCommand: function postCommand(command) {
485
+ this.trigger('postCommand', this.id, command);
486
+ },
487
+ getAdjacentContentElements: function getAdjacentContentElements() {
488
+ var section = this.section;
489
+ var index = section.contentElements.indexOf(this);
490
+ return [section.contentElements.at(index - 1), section.contentElements.at(index + 1)];
491
+ },
492
+ applyDefaultConfiguration: function applyDefaultConfiguration(sibling) {
493
+ this.configuration.set(_objectSpread2(_objectSpread2({}, this.getType().defaultConfig), {}, {
494
+ position: sibling.getDefaultSiblingPosition()
495
+ }));
496
+ },
497
+ getAvailablePositions: function getAvailablePositions() {
498
+ return this.section.configuration.get('layout') === 'center' ? ['inline', 'left', 'right', 'full'] : ['inline', 'sticky', 'full'];
499
+ },
500
+ getDefaultSiblingPosition: function getDefaultSiblingPosition() {
501
+ var position = this.configuration.get('position') || 'inline';
502
+
503
+ if (position === 'full') {
504
+ return 'inline';
505
+ }
506
+
507
+ return position;
508
+ }
165
509
  });
166
510
 
167
511
  var ContentElementsCollection = Backbone$1.Collection.extend({
@@ -172,79 +516,276 @@ var ContentElementsCollection = Backbone$1.Collection.extend({
172
516
  comparator: 'position'
173
517
  });
174
518
 
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; }
519
+ // update the order of content elements in a section. New content
520
+ // elements are persisted and updated with ids/perma ids read from the
521
+ // response.
522
+ //
523
+ // More complex changes can be performed via command
524
+ // objects. Those can be used to manipulate items that represents a
525
+ // content element in the batch request. Moreover, each command can
526
+ // contain logic that performs updates once the request has succeeded
527
+ // or rolls back local changes if the request fails.
528
+
529
+ function batch(section, commands) {
530
+ Backbone$1.sync('update', section, {
531
+ url: "".concat(section.url(), "/content_elements/batch"),
532
+ attrs: {
533
+ content_elements: createBatchItems(section, commands)
534
+ },
535
+ success: function success(response) {
536
+ storePersistedIds(section, response);
537
+ commands.forEach(function (command) {
538
+ return command.complete();
539
+ });
540
+ },
541
+ error: function error() {
542
+ commands.forEach(function (command) {
543
+ return command.rollback();
544
+ });
545
+ }
546
+ });
547
+ }
548
+ var nullCommand = {
549
+ batchItemFor: function batchItemFor() {},
550
+ complete: function complete() {},
551
+ rollback: function rollback() {}
552
+ };
176
553
 
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;
554
+ function createBatchItems(section, commands) {
555
+ return section.contentElements.map(function (contentElement) {
556
+ var item = findBatchItemFromCommand(contentElement, commands);
557
+
558
+ if (item) {
559
+ return item;
560
+ } else if (contentElement.isNew()) {
561
+ return {
562
+ typeName: contentElement.get('typeName'),
563
+ configuration: contentElement.configuration.toJSON()
564
+ };
565
+ } else {
566
+ return contentElement.pick('id');
567
+ }
568
+ });
569
+ }
208
570
 
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
- }
571
+ function findBatchItemFromCommand(contentElement, commands) {
572
+ return commands.reduce(function (result, command) {
573
+ return result || command.batchItemFor(contentElement);
574
+ }, null);
575
+ }
219
576
 
220
- contentElement.set('position', index + delta);
577
+ function storePersistedIds(section, response) {
578
+ section.contentElements.each(function (contentElement, index) {
579
+ if (contentElement.isNew()) {
580
+ contentElement.set({
581
+ id: response[index].id,
582
+ permaId: response[index].permaId
583
+ });
584
+ }
585
+ });
586
+ }
221
587
 
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();
588
+ function insertContentElement(entry, sibling, attributes, _ref) {
589
+ var at = _ref.at,
590
+ splitPoint = _ref.splitPoint;
591
+ var section = sibling.section;
592
+ var insertIndex = reindexPositionsToMakeRoomForInsertion(section, sibling, at);
593
+ var commands = [at === 'split' && prepareSplit(entry, section, sibling, splitPoint), prepareInsertion(entry, section, sibling, attributes, insertIndex)].filter(Boolean);
594
+ section.contentElements.sort();
595
+ batch(section, commands);
596
+ }
236
597
 
237
- _this.trigger('selectContentElement', newContentElement);
238
- });
239
- }
240
- });
598
+ function reindexPositionsToMakeRoomForInsertion(section, sibling, at) {
599
+ var delta = 0;
600
+ var insertIndex;
601
+ section.contentElements.forEach(function (contentElement, index) {
602
+ if (contentElement === sibling && at === 'before') {
603
+ delta = 1;
604
+ insertIndex = index;
605
+ }
241
606
 
242
- var ContentElementFileSelectionHandler = function ContentElementFileSelectionHandler(options) {
243
- var contentElement = options.entry.contentElements.get(options.id);
607
+ contentElement.set('position', index + delta);
244
608
 
245
- this.call = function (file) {
246
- contentElement.configuration.setReference(options.attributeName, file);
247
- };
609
+ if (contentElement === sibling) {
610
+ if (at === 'after') {
611
+ delta = 1;
612
+ insertIndex = index + 1;
613
+ } else if (at === 'split') {
614
+ delta = 2;
615
+ insertIndex = index + 1;
616
+ }
617
+ }
618
+ });
619
+ return insertIndex;
620
+ }
621
+
622
+ function prepareSplit(entry, section, sibling, splitPoint) {
623
+ var _sibling$getType$spli = sibling.getType().split(sibling.configuration.attributes, splitPoint),
624
+ _sibling$getType$spli2 = _slicedToArray(_sibling$getType$spli, 2),
625
+ c1 = _sibling$getType$spli2[0],
626
+ c2 = _sibling$getType$spli2[1];
627
+
628
+ var splitOffContentElement = new ContentElement({
629
+ typeName: sibling.get('typeName'),
630
+ configuration: c2,
631
+ position: sibling.get('position') + 2
632
+ });
633
+ section.contentElements.add(splitOffContentElement);
634
+ return {
635
+ batchItemFor: function batchItemFor(contentElement) {
636
+ if (contentElement === sibling) {
637
+ return {
638
+ id: contentElement.id,
639
+ configuration: c1
640
+ };
641
+ }
642
+ },
643
+ complete: function complete() {
644
+ // Only persisted models are synchronized to React state. The
645
+ // added content element therefore only becomes visible in the
646
+ // preview after the batch request completed. Thus, we have to
647
+ // wait with removing the split off part of the configuration.
648
+ sibling.configuration.set(c1, {
649
+ autoSave: false
650
+ });
651
+ },
652
+ rollback: function rollback() {
653
+ entry.contentElements.remove(splitOffContentElement);
654
+ }
655
+ };
656
+ }
657
+
658
+ function prepareInsertion(entry, section, sibling, attributes, index) {
659
+ var contentElement = new ContentElement(_objectSpread2(_objectSpread2({}, attributes), {}, {
660
+ position: index
661
+ }));
662
+ contentElement.applyDefaultConfiguration(sibling);
663
+ section.contentElements.add(contentElement);
664
+ return _objectSpread2(_objectSpread2({}, nullCommand), {}, {
665
+ complete: function complete() {
666
+ entry.trigger('selectContentElement', contentElement);
667
+ },
668
+ rollback: function rollback() {
669
+ entry.contentElements.remove(contentElement);
670
+ }
671
+ });
672
+ }
673
+
674
+ function deleteContentElement(entry, contentElement) {
675
+ batch(contentElement.section, [prepareMerge(entry, contentElement), prepareDeletion(entry, contentElement)]);
676
+ }
677
+
678
+ function prepareDeletion(entry, deletedContentElement) {
679
+ return _objectSpread2(_objectSpread2({}, nullCommand), {}, {
680
+ batchItemFor: function batchItemFor(contentElement) {
681
+ if (contentElement === deletedContentElement) {
682
+ return {
683
+ id: contentElement.id,
684
+ _delete: true
685
+ };
686
+ }
687
+ },
688
+ complete: function complete() {
689
+ entry.contentElements.remove(deletedContentElement);
690
+ }
691
+ });
692
+ }
693
+
694
+ function prepareMerge(entry, deletedContentElement) {
695
+ var _deletedContentElemen = deletedContentElement.getAdjacentContentElements(),
696
+ _deletedContentElemen2 = _slicedToArray(_deletedContentElemen, 2),
697
+ before = _deletedContentElemen2[0],
698
+ after = _deletedContentElemen2[1];
699
+
700
+ if (!before || !after || before.get('typeName') !== after.get('typeName') || !before.getType().merge) {
701
+ return nullCommand;
702
+ }
703
+
704
+ var mergedConfiguration = before.getType().merge(before.configuration.attributes, after.configuration.attributes);
705
+ return _objectSpread2(_objectSpread2({}, nullCommand), {}, {
706
+ batchItemFor: function batchItemFor(contentElement) {
707
+ if (contentElement === before) {
708
+ return {
709
+ id: contentElement.id,
710
+ configuration: mergedConfiguration
711
+ };
712
+ } else if (contentElement === after) {
713
+ return {
714
+ id: contentElement.id,
715
+ _delete: true
716
+ };
717
+ }
718
+ },
719
+ complete: function complete() {
720
+ before.configuration.set(mergedConfiguration, {
721
+ autoSave: false
722
+ });
723
+ entry.contentElements.remove(after);
724
+ }
725
+ });
726
+ }
727
+
728
+ var ScrolledEntry = Entry.extend({
729
+ setupFromEntryTypeSeed: function setupFromEntryTypeSeed(seed) {
730
+ this.contentElements = new ContentElementsCollection(seed.collections.contentElements);
731
+ this.sections = new SectionsCollection(seed.collections.sections, {
732
+ contentElements: this.contentElements
733
+ });
734
+ this.chapters = new ChaptersCollection(seed.collections.chapters, {
735
+ sections: this.sections,
736
+ entry: this
737
+ });
738
+ this.chapters.parentModel = this;
739
+ this.sections.sort();
740
+ editor$1.failures.watch(this.contentElements);
741
+ editor$1.failures.watch(this.sections);
742
+ editor$1.failures.watch(this.chapters);
743
+ editor$1.savingRecords.watch(this.contentElements);
744
+ editor$1.savingRecords.watch(this.sections);
745
+ editor$1.savingRecords.watch(this.chapters);
746
+ this.scrolledSeed = seed;
747
+ },
748
+ addChapter: function addChapter(attributes) {
749
+ this.chapters.create(_objectSpread2({
750
+ position: this.chapters.length
751
+ }, attributes), {
752
+ entry: this,
753
+ sections: this.sections
754
+ });
755
+ },
756
+ insertContentElement: function insertContentElement$1(attributes, _ref) {
757
+ var _this = this;
758
+
759
+ var id = _ref.id,
760
+ at = _ref.at,
761
+ splitPoint = _ref.splitPoint;
762
+
763
+ if (at === 'endOfSection') {
764
+ var contentElement = this.sections.get(id).contentElements.create(_objectSpread2({
765
+ position: this.contentElements.length
766
+ }, attributes));
767
+ contentElement.once('sync', function () {
768
+ _this.trigger('selectContentElement', contentElement);
769
+ });
770
+ } else {
771
+ insertContentElement(this, this.contentElements.get(id), attributes, {
772
+ id: id,
773
+ at: at,
774
+ splitPoint: splitPoint
775
+ });
776
+ }
777
+ },
778
+ deleteContentElement: function deleteContentElement$1(id) {
779
+ deleteContentElement(this, this.contentElements.get(id));
780
+ }
781
+ });
782
+
783
+ var ContentElementFileSelectionHandler = function ContentElementFileSelectionHandler(options) {
784
+ var contentElement = options.entry.contentElements.get(options.id);
785
+
786
+ this.call = function (file) {
787
+ contentElement.configuration.setReference(options.attributeName, file);
788
+ };
248
789
 
249
790
  this.getReferer = function () {
250
791
  return '/scrolled/content_elements/' + contentElement.id;
@@ -257,14 +798,13 @@ var ADD = "".concat(PREFIX, "_ADD");
257
798
  var CHANGE = "".concat(PREFIX, "_CHANGE");
258
799
  var REMOVE = "".concat(PREFIX, "_REMOVE");
259
800
  var SORT = "".concat(PREFIX, "_SORT");
260
-
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;
801
+ function watchCollection(collection, _ref3) {
802
+ var name = _ref3.name,
803
+ dispatch = _ref3.dispatch,
804
+ attributes = _ref3.attributes,
805
+ includeConfiguration = _ref3.includeConfiguration,
806
+ _ref3$keyAttribute = _ref3.keyAttribute,
807
+ keyAttribute = _ref3$keyAttribute === void 0 ? 'id' : _ref3$keyAttribute;
268
808
  var handle = {};
269
809
  var options = {
270
810
  attributeNames: attributes,
@@ -272,6 +812,7 @@ function watchCollection(collection, _ref2) {
272
812
  };
273
813
  var tearingDown = false;
274
814
  var watchedAttributeNames = getWatchedAttributeNames(attributes);
815
+ var sourceKeyAttribute = findSourceAttributeName(attributes, keyAttribute);
275
816
  dispatch({
276
817
  type: RESET,
277
818
  payload: {
@@ -289,14 +830,14 @@ function watchCollection(collection, _ref2) {
289
830
  payload: {
290
831
  collectionName: name,
291
832
  keyAttribute: keyAttribute,
292
- order: collection.pluck(keyAttribute),
833
+ order: collection.pluck(sourceKeyAttribute).filter(Boolean),
293
834
  attributes: getAttributes(model, options)
294
835
  }
295
836
  });
296
837
  }
297
838
  }, handle);
298
839
  collection.on('change', function (model) {
299
- if (hasChangedAttributes(model, watchedAttributeNames)) {
840
+ if (hasChangedAttributes(model, watchedAttributeNames) && !model.isNew()) {
300
841
  dispatch({
301
842
  type: CHANGE,
302
843
  payload: {
@@ -309,26 +850,31 @@ function watchCollection(collection, _ref2) {
309
850
  }, handle);
310
851
 
311
852
  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
- });
853
+ collection.on('change:configuration', function (model, value) {
854
+ var _ref4 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
855
+ ignoreInWatchCollection = _ref4.ignoreInWatchCollection;
856
+
857
+ if (!model.isNew() && !ignoreInWatchCollection) {
858
+ dispatch({
859
+ type: CHANGE,
860
+ payload: {
861
+ collectionName: name,
862
+ keyAttribute: keyAttribute,
863
+ attributes: getAttributes(model, options)
864
+ }
865
+ });
866
+ }
321
867
  }, handle);
322
868
  }
323
869
 
324
870
  collection.on('remove', function (model) {
325
- if (!tearingDown) {
871
+ if (!tearingDown && !model.isNew()) {
326
872
  dispatch({
327
873
  type: REMOVE,
328
874
  payload: {
329
875
  collectionName: name,
330
- order: collection.pluck(keyAttribute),
331
- key: model.attributes[keyAttribute]
876
+ order: collection.pluck(sourceKeyAttribute).filter(Boolean),
877
+ key: model.attributes[sourceKeyAttribute]
332
878
  }
333
879
  });
334
880
  }
@@ -338,7 +884,7 @@ function watchCollection(collection, _ref2) {
338
884
  type: SORT,
339
885
  payload: {
340
886
  collectionName: name,
341
- order: collection.pluck(keyAttribute).filter(Boolean)
887
+ order: collection.pluck(sourceKeyAttribute).filter(Boolean)
342
888
  }
343
889
  });
344
890
  }, handle);
@@ -348,6 +894,13 @@ function watchCollection(collection, _ref2) {
348
894
  };
349
895
  }
350
896
 
897
+ function findSourceAttributeName(attributeNames, targetAttributeName) {
898
+ var mapping = attributeNames.find(function (attributeName) {
899
+ return typeof attributeName === 'object' && mappedAttributeTarget(attributeName) === targetAttributeName;
900
+ });
901
+ return mapping ? mappedAttributeSource(mapping) : targetAttributeName;
902
+ }
903
+
351
904
  function hasChangedAttributes(model, attributeNames) {
352
905
  return attributeNames.some(function (attributeName) {
353
906
  return model.hasChanged(attributeName);
@@ -364,9 +917,13 @@ function mappedAttributeSource(attributeName) {
364
917
  return attributeName[Object.keys(attributeName)[0]];
365
918
  }
366
919
 
367
- function getAttributes(model, _ref3) {
368
- var attributeNames = _ref3.attributeNames,
369
- includeConfiguration = _ref3.includeConfiguration;
920
+ function mappedAttributeTarget(attributeName) {
921
+ return Object.keys(attributeName)[0];
922
+ }
923
+
924
+ function getAttributes(model, _ref5) {
925
+ var attributeNames = _ref5.attributeNames,
926
+ includeConfiguration = _ref5.includeConfiguration;
370
927
  var result = attributeNames.reduce(function (result, attributeName) {
371
928
  if (typeof attributeName == 'object') {
372
929
  var key = Object.keys(attributeName)[0];
@@ -385,7 +942,7 @@ function getAttributes(model, _ref3) {
385
942
  }, {});
386
943
 
387
944
  if (includeConfiguration) {
388
- result.configuration = model.configuration.attributes;
945
+ result.configuration = _objectSpread2({}, model.configuration.attributes);
389
946
  }
390
947
  return result;
391
948
  }
@@ -440,7 +997,15 @@ function watchCollections(entry, _ref) {
440
997
  name: camelize(collectionName),
441
998
  attributes: ['id', {
442
999
  permaId: 'perma_id'
443
- }, 'width', 'height', 'basename', 'rights'],
1000
+ }, 'width', 'height', 'basename', 'rights', {
1001
+ isReady: 'is_ready'
1002
+ }, 'variants', {
1003
+ durationInMs: 'duration_in_ms'
1004
+ }, {
1005
+ parentFileId: 'parent_file_id'
1006
+ }, {
1007
+ parentFileModelType: 'parent_file_model_type'
1008
+ }],
444
1009
  keyAttribute: 'permaId',
445
1010
  includeConfiguration: true,
446
1011
  dispatch: dispatch
@@ -486,8 +1051,8 @@ function styleInject(css, ref) {
486
1051
  }
487
1052
  }
488
1053
 
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"};
1054
+ 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,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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}\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";
1055
+ 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
1056
  styleInject(css);
492
1057
 
493
1058
  var _events;
@@ -498,20 +1063,15 @@ var SectionItemView = Marionette.ItemView.extend({
498
1063
  classNames: styles
499
1064
  })],
500
1065
  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 ");
1066
+ 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
1067
  },
503
1068
  ui: cssModulesUtils.ui(styles, 'thumbnail'),
504
1069
  events: (_events = {}, _defineProperty(_events, "click .".concat(styles.clickMask), function click() {
1070
+ this.options.entry.trigger('selectSection', this.model);
1071
+ this.options.entry.trigger('scrollToSection', this.model);
1072
+ }), _defineProperty(_events, "dblclick .".concat(styles.clickMask), function dblclick() {
1073
+ this.options.entry.trigger('selectSectionSettings', this.model);
505
1074
  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
1075
  }), _events),
516
1076
  modelEvents: {
517
1077
  'change:id': 'renderThumbnail'
@@ -520,9 +1080,7 @@ var SectionItemView = Marionette.ItemView.extend({
520
1080
  var _this = this;
521
1081
 
522
1082
  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);
1083
+ var active = _this.updateActive();
526
1084
 
527
1085
  if (active) {
528
1086
  _this.$el[0].scrollIntoView({
@@ -535,6 +1093,8 @@ var SectionItemView = Marionette.ItemView.extend({
535
1093
  onRender: function onRender() {
536
1094
  var _this2 = this;
537
1095
 
1096
+ this.updateActive();
1097
+ this.$el.toggleClass(styles.invert, !!this.model.configuration.get('invert'));
538
1098
  this.timeout = setTimeout(function () {
539
1099
  _this2.renderThumbnail();
540
1100
  }, 100);
@@ -557,11 +1117,16 @@ var SectionItemView = Marionette.ItemView.extend({
557
1117
  }
558
1118
  }), this.ui.thumbnail[0]);
559
1119
  }
1120
+ },
1121
+ updateActive: function updateActive() {
1122
+ var active = this.options.entry.sections.indexOf(this.model) === this.options.entry.get('currentSectionIndex');
1123
+ this.$el.toggleClass(styles.active, active);
1124
+ return active;
560
1125
  }
561
1126
  });
562
1127
 
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"};
1128
+ 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";
1129
+ 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
1130
  styleInject(css$1);
566
1131
 
567
1132
  var ChapterItemView = Marionette.Layout.extend({
@@ -571,7 +1136,7 @@ var ChapterItemView = Marionette.Layout.extend({
571
1136
  classNames: styles$1
572
1137
  })],
573
1138
  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 ");
1139
+ 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
1140
  },
576
1141
  ui: cssModulesUtils.ui(styles$1, 'title', 'number', 'sections'),
577
1142
  events: cssModulesUtils.events(styles$1, {
@@ -609,8 +1174,8 @@ var ChapterItemView = Marionette.Layout.extend({
609
1174
  }
610
1175
  });
611
1176
 
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"};
1177
+ 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";
1178
+ 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
1179
  styleInject(css$2);
615
1180
 
616
1181
  var EntryOutlineView = Marionette.Layout.extend({
@@ -637,52 +1202,144 @@ var EntryOutlineView = Marionette.Layout.extend({
637
1202
  }
638
1203
  });
639
1204
 
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"};
1205
+ 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";
1206
+ 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
1207
  styleInject(css$3);
643
1208
 
644
- var EntryPreviewView = Marionette.ItemView.extend({
1209
+ var dialogView = {
1210
+ events: cssModulesUtils.events(dialogViewStyles, {
1211
+ 'mousedown backdrop': function mousedownBackdrop() {
1212
+ this.close();
1213
+ },
1214
+ 'mousedown box': function mousedownBox(event) {
1215
+ event.stopPropagation();
1216
+ },
1217
+ 'click close': function clickClose() {
1218
+ this.close();
1219
+ }
1220
+ })
1221
+ };
1222
+
1223
+ 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";
1224
+ var styles$3 = {"box":"InsertContentElementDialogView-module_box__3sdFf","list":"InsertContentElementDialogView-module_list__3zAve","button":"InsertContentElementDialogView-module_button__2OFRx buttons-module_unstyledButton__3m76W"};
1225
+ styleInject(css$4);
1226
+
1227
+ var InsertContentElementDialogView = Marionette.ItemView.extend({
645
1228
  template: function template() {
646
- return "\n <iframe class=\"".concat(styles$3.iframe, "\" />\n ");
1229
+ 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
1230
  },
648
- className: styles$3.root,
649
- ui: cssModulesUtils.ui(styles$3, 'iframe'),
650
- initialize: function initialize() {
651
- this.messageListener = this.onMessage.bind(this);
1231
+ ui: {
1232
+ items: 'ul'
652
1233
  },
653
- onShow: function onShow() {
654
- window.addEventListener('message', this.messageListener);
655
- inject(this.ui.iframe[0], unescape($('[data-template="iframe_seed"]').html()));
1234
+ mixins: [dialogView],
1235
+ events: {
1236
+ 'click li button': function clickLiButton() {
1237
+ this.close();
1238
+ }
656
1239
  },
657
- onClose: function onClose() {
658
- window.removeEventListener('message', this.messageListener);
1240
+ onRender: function onRender() {
1241
+ this.subview(new CollectionView({
1242
+ el: this.ui.items,
1243
+ collection: new Backbone$1.Collection(this.getSupportedTypes()),
1244
+ itemViewConstructor: ItemView,
1245
+ itemViewOptions: {
1246
+ entry: this.options.entry,
1247
+ insertOptions: this.options.insertOptions
1248
+ }
1249
+ }));
1250
+ },
1251
+ getSupportedTypes: function getSupportedTypes() {
1252
+ return this.options.editor.contentElementTypes.getSupported(this.options.entry, this.options.insertOptions);
1253
+ }
1254
+ });
1255
+ var ItemView = Marionette.ItemView.extend({
1256
+ tagName: 'li',
1257
+ className: styles$3.item,
1258
+ template: function template(_ref) {
1259
+ var displayName = _ref.displayName;
1260
+ return "\n <button class=\"".concat(styles$3.button, "\">").concat(displayName, "</button>\n ");
1261
+ },
1262
+ events: {
1263
+ 'click button': function clickButton() {
1264
+ this.options.entry.insertContentElement({
1265
+ typeName: this.model.get('typeName')
1266
+ }, this.options.insertOptions);
1267
+ }
1268
+ }
1269
+ });
1270
+
1271
+ InsertContentElementDialogView.show = function (options) {
1272
+ var view = new InsertContentElementDialogView(options);
1273
+ app.dialogRegion.show(view.render());
1274
+ };
1275
+
1276
+ var PreviewMessageController = Object$1.extend({
1277
+ initialize: function initialize(_ref) {
1278
+ var entry = _ref.entry,
1279
+ iframeWindow = _ref.iframeWindow,
1280
+ editor = _ref.editor;
1281
+ this.entry = entry;
1282
+ this.iframeWindow = iframeWindow;
1283
+ this.editor = editor;
1284
+ this.listener = this.handleMessage.bind(this);
1285
+ window.addEventListener('message', this.listener);
1286
+ },
1287
+ dispose: function dispose() {
1288
+ window.removeEventListener('message', this.listener);
659
1289
  },
660
- onMessage: function onMessage(message) {
1290
+ handleMessage: function handleMessage(message) {
661
1291
  var _this = this;
662
1292
 
663
1293
  if (window.location.href.indexOf(message.origin) === 0) {
664
1294
  if (message.data.type === 'READY') {
665
1295
  var postMessage = function postMessage(message) {
666
- _this.ui.iframe[0].contentWindow.postMessage(message, window.location.origin);
1296
+ _this.iframeWindow.postMessage(message, window.location.origin);
667
1297
  };
668
1298
 
669
- watchCollections(this.model, {
1299
+ watchCollections(this.entry, {
670
1300
  dispatch: function dispatch(action) {
671
- return postMessage({
1301
+ postMessage({
672
1302
  type: 'ACTION',
673
1303
  payload: action
674
1304
  });
675
1305
  }
676
1306
  });
677
- this.listenTo(this.model, 'scrollToSection', function (section) {
1307
+ this.listenTo(this.entry, 'scrollToSection', function (section) {
678
1308
  return postMessage({
679
1309
  type: 'SCROLL_TO_SECTION',
680
1310
  payload: {
681
- index: _this.model.sections.indexOf(section)
1311
+ index: _this.entry.sections.indexOf(section)
1312
+ }
1313
+ });
1314
+ });
1315
+ this.listenTo(this.entry.contentElements, 'postCommand', function (contentElementId, command) {
1316
+ return postMessage({
1317
+ type: 'CONTENT_ELEMENT_EDITOR_COMMAND',
1318
+ payload: {
1319
+ contentElementId: contentElementId,
1320
+ command: command
1321
+ }
1322
+ });
1323
+ });
1324
+ this.listenTo(this.entry, 'selectSection', function (section) {
1325
+ return postMessage({
1326
+ type: 'SELECT',
1327
+ payload: {
1328
+ id: section.id,
1329
+ type: 'section'
1330
+ }
1331
+ });
1332
+ });
1333
+ this.listenTo(this.entry, 'selectSectionSettings', function (section) {
1334
+ return postMessage({
1335
+ type: 'SELECT',
1336
+ payload: {
1337
+ id: section.id,
1338
+ type: 'sectionSettings'
682
1339
  }
683
1340
  });
684
1341
  });
685
- this.listenTo(this.model, 'selectContentElement', function (contentElement) {
1342
+ this.listenTo(this.entry, 'selectContentElement', function (contentElement) {
686
1343
  return postMessage({
687
1344
  type: 'SELECT',
688
1345
  payload: {
@@ -691,38 +1348,137 @@ var EntryPreviewView = Marionette.ItemView.extend({
691
1348
  }
692
1349
  });
693
1350
  });
694
- this.listenTo(this.model, 'resetSelection', function (contentElement) {
1351
+ this.listenTo(this.entry, 'resetSelection', function (contentElement) {
695
1352
  return postMessage({
696
1353
  type: 'SELECT',
697
1354
  payload: null
698
1355
  });
699
1356
  });
1357
+ this.listenTo(this.entry, 'change:emulation_mode', function (entry) {
1358
+ return postMessage({
1359
+ type: 'CHANGE_EMULATION_MODE',
1360
+ payload: _this.entry.get('emulation_mode')
1361
+ });
1362
+ });
1363
+ postMessage({
1364
+ type: 'ACK'
1365
+ });
700
1366
  } else if (message.data.type === 'CHANGE_SECTION') {
701
- this.model.set('currentSectionIndex', message.data.payload.index);
1367
+ this.entry.set('currentSectionIndex', message.data.payload.index);
702
1368
  } else if (message.data.type === 'SELECTED') {
703
1369
  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;
1370
+ type = _message$data$payload.type,
1371
+ id = _message$data$payload.id;
707
1372
 
708
1373
  if (type === 'contentElement') {
709
- editor.navigate("/scrolled/content_elements/".concat(id), {
1374
+ this.editor.navigate("/scrolled/content_elements/".concat(id), {
1375
+ trigger: true
1376
+ });
1377
+ } else if (type === 'sectionSettings') {
1378
+ this.editor.navigate("/scrolled/sections/".concat(id), {
710
1379
  trigger: true
711
1380
  });
712
- } else if (type === 'before' || type === 'after') {
713
- editor.navigate("/scrolled/content_elements/insert?position=".concat(type, "&id=").concat(id), {
1381
+ } else if (type === 'sectionTransition') {
1382
+ this.editor.navigate("/scrolled/sections/".concat(id, "/transition"), {
714
1383
  trigger: true
715
1384
  });
716
1385
  } else {
717
- editor.navigate('/', {
1386
+ this.editor.navigate('/', {
718
1387
  trigger: true
719
1388
  });
720
1389
  }
1390
+ } else if (message.data.type === 'INSERT_CONTENT_ELEMENT') {
1391
+ var _message$data$payload2 = message.data.payload,
1392
+ _id = _message$data$payload2.id,
1393
+ at = _message$data$payload2.at,
1394
+ splitPoint = _message$data$payload2.splitPoint;
1395
+ InsertContentElementDialogView.show({
1396
+ entry: this.entry,
1397
+ insertOptions: {
1398
+ at: at,
1399
+ id: _id,
1400
+ splitPoint: splitPoint
1401
+ },
1402
+ editor: this.editor
1403
+ });
1404
+ } else if (message.data.type === 'UPDATE_CONTENT_ELEMENT') {
1405
+ var _message$data$payload3 = message.data.payload,
1406
+ _id2 = _message$data$payload3.id,
1407
+ configuration = _message$data$payload3.configuration;
1408
+ this.entry.contentElements.get(_id2).configuration.set(configuration, {
1409
+ ignoreInWatchCollection: true
1410
+ });
1411
+ } else if (message.data.type === 'UPDATE_TRANSIENT_CONTENT_ELEMENT_STATE') {
1412
+ var _message$data$payload4 = message.data.payload,
1413
+ _id3 = _message$data$payload4.id,
1414
+ state = _message$data$payload4.state;
1415
+ this.entry.contentElements.get(_id3).set('transientState', state);
721
1416
  }
722
1417
  }
723
1418
  }
724
1419
  });
725
1420
 
1421
+ 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";
1422
+ var styles$4 = {"blankEntry":"BlankEntryView-module_blankEntry__2FcvR"};
1423
+ styleInject(css$5);
1424
+
1425
+ var BlankEntryView = Marionette.ItemView.extend({
1426
+ template: function template() {
1427
+ 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 ");
1428
+ },
1429
+ className: styles$4.blankEntry,
1430
+ onRender: function onRender() {
1431
+ this.listenTo(this.model.sections, 'add remove', this.update);
1432
+ this.update();
1433
+ },
1434
+ update: function update() {
1435
+ this.$el.toggle(!this.model.sections.length);
1436
+ }
1437
+ });
1438
+
1439
+ 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";
1440
+ var styles$5 = {"root":"EntryPreviewView-module_root__1Nb6e","iframe":"EntryPreviewView-module_iframe__1leJC","phoneEmulationMode":"EntryPreviewView-module_phoneEmulationMode__3YXy_"};
1441
+ styleInject(css$6);
1442
+
1443
+ var EntryPreviewView = Marionette.ItemView.extend({
1444
+ template: function template() {
1445
+ return "\n <iframe class=\"".concat(styles$5.iframe, "\" />\n ");
1446
+ },
1447
+ className: styles$5.root,
1448
+ ui: cssModulesUtils.ui(styles$5, 'iframe'),
1449
+ modelEvents: {
1450
+ 'change:emulation_mode': 'updateEmulationMode'
1451
+ },
1452
+ onRender: function onRender() {
1453
+ this.appendSubview(new BlankEntryView({
1454
+ model: this.model
1455
+ }));
1456
+ },
1457
+ onShow: function onShow() {
1458
+ this.messageController = new PreviewMessageController({
1459
+ entry: this.model,
1460
+ editor: this.options.editor,
1461
+ iframeWindow: this.ui.iframe[0].contentWindow
1462
+ });
1463
+ inject(this.ui.iframe[0], unescape($('[data-template="iframe_seed"]').html()));
1464
+ },
1465
+ onClose: function onClose() {
1466
+ this.messageController.dispose();
1467
+ },
1468
+ updateEmulationMode: function updateEmulationMode() {
1469
+ if (this.model.previous('emulation_mode')) {
1470
+ this.$el.removeClass(styles$5[this.emulationModeClassName(this.model.previous('emulation_mode'))]);
1471
+ }
1472
+
1473
+ if (this.model.get('emulation_mode')) {
1474
+ this.$el.addClass(styles$5[this.emulationModeClassName(this.model.get('emulation_mode'))]);
1475
+ }
1476
+ },
1477
+ emulationModeClassName: function emulationModeClassName(mode) {
1478
+ return "".concat(mode, "EmulationMode");
1479
+ }
1480
+ });
1481
+
726
1482
  function inject(iframe, html) {
727
1483
  var doc = iframe.document || iframe.contentDocument || iframe.contentWindow.document;
728
1484
  doc.open();
@@ -734,23 +1490,22 @@ function unescape(text) {
734
1490
  return text.replace(/<\\\//g, '</');
735
1491
  }
736
1492
 
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
- });
1493
+ var css$7 = ".NoOptionsHintView-module_hint__1etP_ {\n color: #888;\n text-align: center;\n margin-top: 30px;\n}\n";
1494
+ var styles$6 = {"hint":"NoOptionsHintView-module_hint__1etP_"};
1495
+ styleInject(css$7);
1496
+
1497
+ var NoOptionsHintView = Marionette.ItemView.extend({
1498
+ className: styles$6.hint,
1499
+ template: function template() {
1500
+ return I18n.t('pageflow_scrolled.editor.no_options');
1501
+ }
747
1502
  });
748
1503
 
749
1504
  var SideBarRouter = Marionette.AppRouter.extend({
750
1505
  appRoutes: {
751
1506
  'scrolled/chapters/:id': 'chapter',
1507
+ 'scrolled/sections/:id/transition': 'sectionTransition',
752
1508
  'scrolled/sections/:id': 'section',
753
- 'scrolled/content_elements/insert?position=:position&id=:id': 'insertContentElement',
754
1509
  'scrolled/content_elements/:id': 'contentElement'
755
1510
  }
756
1511
  });
@@ -767,96 +1522,1606 @@ var EditChapterView = EditConfigurationView.extend({
767
1522
  }
768
1523
  });
769
1524
 
770
- var EditSectionView = EditConfigurationView.extend({
771
- translationKeyPrefix: 'pageflow_scrolled.editor.edit_section',
772
- configure: function configure(configurationEditor) {
773
- 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']
1525
+ 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";
1526
+ styleInject(css$8);
1527
+
1528
+ // version 0.9.10
1529
+ //
1530
+ // Copyright (c) 2008-2013 Michal Wojciechowski (odyniec.net)
1531
+ //
1532
+ // Dual licensed under the MIT (MIT-LICENSE.txt)
1533
+ // and GPL (GPL-LICENSE.txt) licenses.
1534
+ //
1535
+ // http://odyniec.net/projects/imgareaselect/
1536
+
1537
+ (function ($) {
1538
+ //
1539
+ // Math functions will be used extensively, so it's convenient to make a few
1540
+ // shortcuts
1541
+ //
1542
+ var abs = Math.abs,
1543
+ max = Math.max,
1544
+ min = Math.min,
1545
+ round = Math.round; //
1546
+ // Create a new HTML div element
1547
+ //
1548
+ // @return A jQuery object representing the new element
1549
+ //
1550
+
1551
+ function div() {
1552
+ return $('<div/>');
1553
+ } //
1554
+ // imgAreaSelect initialization
1555
+ //
1556
+ // @param img
1557
+ // A HTML image element to attach the plugin to
1558
+ // @param options
1559
+ // An options object
1560
+ //
1561
+
1562
+
1563
+ $.imgAreaSelect = function (img, options) {
1564
+ var
1565
+ /* jQuery object representing the image */
1566
+ $img = $(img),
1567
+
1568
+ /* Has the image finished loading? */
1569
+ imgLoaded,
1570
+
1571
+ /* Plugin elements */
1572
+
1573
+ /* Container box */
1574
+ $box = div(),
1575
+
1576
+ /* Selection area */
1577
+ $area = div(),
1578
+
1579
+ /* Border (four divs) */
1580
+ $border = div().add(div()).add(div()).add(div()),
1581
+
1582
+ /* Outer area (four divs) */
1583
+ $outer = div().add(div()).add(div()).add(div()),
1584
+
1585
+ /* Handles (empty by default, initialized in setOptions()) */
1586
+ $handles = $([]),
1587
+
1588
+ /*
1589
+ * Additional element to work around a cursor problem in Opera
1590
+ * (explained later)
1591
+ */
1592
+ $areaOpera,
1593
+
1594
+ /* Image position (relative to viewport) */
1595
+ left,
1596
+ top,
1597
+
1598
+ /* Image offset (as returned by .offset()) */
1599
+ imgOfs = {
1600
+ left: 0,
1601
+ top: 0
1602
+ },
1603
+
1604
+ /* Image dimensions (as returned by .width() and .height()) */
1605
+ imgWidth,
1606
+ imgHeight,
1607
+
1608
+ /*
1609
+ * jQuery object representing the parent element that the plugin
1610
+ * elements are appended to
1611
+ */
1612
+ $parent,
1613
+
1614
+ /* Parent element offset (as returned by .offset()) */
1615
+ parOfs = {
1616
+ left: 0,
1617
+ top: 0
1618
+ },
1619
+
1620
+ /* Base z-index for plugin elements */
1621
+ zIndex = 0,
1622
+
1623
+ /* Plugin elements position */
1624
+ position = 'absolute',
1625
+
1626
+ /* X/Y coordinates of the starting point for move/resize operations */
1627
+ startX,
1628
+ startY,
1629
+
1630
+ /* Horizontal and vertical scaling factors */
1631
+ scaleX,
1632
+ scaleY,
1633
+
1634
+ /* Current resize mode ("nw", "se", etc.) */
1635
+ resize,
1636
+
1637
+ /* Selection area constraints */
1638
+ minWidth,
1639
+ minHeight,
1640
+ maxWidth,
1641
+ maxHeight,
1642
+
1643
+ /* Aspect ratio to maintain (floating point number) */
1644
+ aspectRatio,
1645
+
1646
+ /* Are the plugin elements currently displayed? */
1647
+ shown,
1648
+
1649
+ /* Current selection (relative to parent element) */
1650
+ x1,
1651
+ y1,
1652
+ x2,
1653
+ y2,
1654
+
1655
+ /* Current selection (relative to scaled image) */
1656
+ selection = {
1657
+ x1: 0,
1658
+ y1: 0,
1659
+ x2: 0,
1660
+ y2: 0,
1661
+ width: 0,
1662
+ height: 0
1663
+ },
1664
+
1665
+ /* Document element */
1666
+ docElem = document.documentElement,
1667
+
1668
+ /* User agent */
1669
+ ua = navigator.userAgent,
1670
+
1671
+ /* Various helper variables used throughout the code */
1672
+ $p,
1673
+ d,
1674
+ i,
1675
+ o,
1676
+ w,
1677
+ h,
1678
+ adjusted;
1679
+ /*
1680
+ * Translate selection coordinates (relative to scaled image) to viewport
1681
+ * coordinates (relative to parent element)
1682
+ */
1683
+ //
1684
+ // Translate selection X to viewport X
1685
+ //
1686
+ // @param x
1687
+ // Selection X
1688
+ // @return Viewport X
1689
+ //
1690
+
1691
+ function viewX(x) {
1692
+ return x + imgOfs.left - parOfs.left;
1693
+ } //
1694
+ // Translate selection Y to viewport Y
1695
+ //
1696
+ // @param y
1697
+ // Selection Y
1698
+ // @return Viewport Y
1699
+ //
1700
+
1701
+
1702
+ function viewY(y) {
1703
+ return y + imgOfs.top - parOfs.top;
1704
+ }
1705
+ /*
1706
+ * Translate viewport coordinates to selection coordinates
1707
+ */
1708
+ //
1709
+ // Translate viewport X to selection X
1710
+ //
1711
+ // @param x
1712
+ // Viewport X
1713
+ // @return Selection X
1714
+ //
1715
+
1716
+
1717
+ function selX(x) {
1718
+ return x - imgOfs.left + parOfs.left;
1719
+ } //
1720
+ // Translate viewport Y to selection Y
1721
+ //
1722
+ // @param y
1723
+ // Viewport Y
1724
+ // @return Selection Y
1725
+ //
1726
+
1727
+
1728
+ function selY(y) {
1729
+ return y - imgOfs.top + parOfs.top;
1730
+ }
1731
+ /*
1732
+ * Translate event coordinates (relative to document) to viewport
1733
+ * coordinates
1734
+ */
1735
+ //
1736
+ // Get event X and translate it to viewport X
1737
+ //
1738
+ // @param event
1739
+ // The event object
1740
+ // @return Viewport X
1741
+ //
1742
+
1743
+
1744
+ function evX(event) {
1745
+ return event.pageX - parOfs.left;
1746
+ } //
1747
+ // Get event Y and translate it to viewport Y
1748
+ //
1749
+ // @param event
1750
+ // The event object
1751
+ // @return Viewport Y
1752
+ //
1753
+
1754
+
1755
+ function evY(event) {
1756
+ return event.pageY - parOfs.top;
1757
+ } //
1758
+ // Get the current selection
1759
+ //
1760
+ // @param noScale
1761
+ // If set to <code>true</code>, scaling is not applied to the
1762
+ // returned selection
1763
+ // @return Selection object
1764
+ //
1765
+
1766
+
1767
+ function getSelection(noScale) {
1768
+ var sx = noScale || scaleX,
1769
+ sy = noScale || scaleY;
1770
+ return {
1771
+ x1: round(selection.x1 * sx),
1772
+ y1: round(selection.y1 * sy),
1773
+ x2: round(selection.x2 * sx),
1774
+ y2: round(selection.y2 * sy),
1775
+ width: round(selection.x2 * sx) - round(selection.x1 * sx),
1776
+ height: round(selection.y2 * sy) - round(selection.y1 * sy)
1777
+ };
1778
+ } //
1779
+ // Set the current selection
1780
+ //
1781
+ // @param x1
1782
+ // X coordinate of the upper left corner of the selection area
1783
+ // @param y1
1784
+ // Y coordinate of the upper left corner of the selection area
1785
+ // @param x2
1786
+ // X coordinate of the lower right corner of the selection area
1787
+ // @param y2
1788
+ // Y coordinate of the lower right corner of the selection area
1789
+ // @param noScale
1790
+ // If set to <code>true</code>, scaling is not applied to the
1791
+ // new selection
1792
+ //
1793
+
1794
+
1795
+ function setSelection(x1, y1, x2, y2, noScale) {
1796
+ var sx = noScale || scaleX,
1797
+ sy = noScale || scaleY;
1798
+ selection = {
1799
+ x1: round(x1 / sx || 0),
1800
+ y1: round(y1 / sy || 0),
1801
+ x2: round(x2 / sx || 0),
1802
+ y2: round(y2 / sy || 0)
1803
+ };
1804
+ selection.width = selection.x2 - selection.x1;
1805
+ selection.height = selection.y2 - selection.y1;
1806
+ } //
1807
+ // Recalculate image and parent offsets
1808
+ //
1809
+
1810
+
1811
+ function adjust() {
1812
+ /*
1813
+ * Do not adjust if image has not yet loaded or if width is not a
1814
+ * positive number. The latter might happen when imgAreaSelect is put
1815
+ * on a parent element which is then hidden.
1816
+ */
1817
+ if (!imgLoaded || !$img.width()) return;
1818
+ /*
1819
+ * Get image offset. The .offset() method returns float values, so they
1820
+ * need to be rounded.
1821
+ */
1822
+
1823
+ imgOfs = {
1824
+ left: round($img.offset().left),
1825
+ top: round($img.offset().top)
1826
+ };
1827
+ /* Get image dimensions */
1828
+
1829
+ imgWidth = $img.innerWidth();
1830
+ imgHeight = $img.innerHeight();
1831
+ imgOfs.top += $img.outerHeight() - imgHeight >> 1;
1832
+ imgOfs.left += $img.outerWidth() - imgWidth >> 1;
1833
+ /* Set minimum and maximum selection area dimensions */
1834
+
1835
+ minWidth = round(options.minWidth / scaleX) || 0;
1836
+ minHeight = round(options.minHeight / scaleY) || 0;
1837
+ maxWidth = round(min(options.maxWidth / scaleX || 1 << 24, imgWidth));
1838
+ maxHeight = round(min(options.maxHeight / scaleY || 1 << 24, imgHeight));
1839
+ /*
1840
+ * Workaround for jQuery 1.3.2 incorrect offset calculation, originally
1841
+ * observed in Safari 3. Firefox 2 is also affected.
1842
+ */
1843
+
1844
+ if ($().jquery == '1.3.2' && position == 'fixed' && !docElem['getBoundingClientRect']) {
1845
+ imgOfs.top += max(document.body.scrollTop, docElem.scrollTop);
1846
+ imgOfs.left += max(document.body.scrollLeft, docElem.scrollLeft);
1847
+ }
1848
+ /* Determine parent element offset */
1849
+
1850
+
1851
+ parOfs = /absolute|relative/.test($parent.css('position')) ? {
1852
+ left: round($parent.offset().left) - $parent.scrollLeft(),
1853
+ top: round($parent.offset().top) - $parent.scrollTop()
1854
+ } : position == 'fixed' ? {
1855
+ left: $(document).scrollLeft(),
1856
+ top: $(document).scrollTop()
1857
+ } : {
1858
+ left: 0,
1859
+ top: 0
1860
+ };
1861
+ left = viewX(0);
1862
+ top = viewY(0);
1863
+ /*
1864
+ * Check if selection area is within image boundaries, adjust if
1865
+ * necessary
1866
+ */
1867
+
1868
+ if (selection.x2 > imgWidth || selection.y2 > imgHeight) doResize();
1869
+ } //
1870
+ // Update plugin elements
1871
+ //
1872
+ // @param resetKeyPress
1873
+ // If set to <code>false</code>, this instance's keypress
1874
+ // event handler is not activated
1875
+ //
1876
+
1877
+
1878
+ function update(resetKeyPress) {
1879
+ /* If plugin elements are hidden, do nothing */
1880
+ if (!shown) return;
1881
+ /*
1882
+ * Set the position and size of the container box and the selection area
1883
+ * inside it
1884
+ */
1885
+
1886
+ $box.css({
1887
+ left: viewX(selection.x1),
1888
+ top: viewY(selection.y1)
1889
+ }).add($area).width(w = selection.width).height(h = selection.height);
1890
+ /*
1891
+ * Reset the position of selection area, borders, and handles (IE6/IE7
1892
+ * position them incorrectly if we don't do this)
1893
+ */
1894
+
1895
+ $area.add($border).add($handles).css({
1896
+ left: 0,
1897
+ top: 0
779
1898
  });
780
- this.input('appearance', SelectInputView, {
781
- values: ['shadow', 'cards', 'transparent']
1899
+ /* Set border dimensions */
1900
+
1901
+ $border.width(max(w - $border.outerWidth() + $border.innerWidth(), 0)).height(max(h - $border.outerHeight() + $border.innerHeight(), 0));
1902
+ /* Arrange the outer area elements */
1903
+
1904
+ $($outer[0]).css({
1905
+ left: left,
1906
+ top: top,
1907
+ width: selection.x1,
1908
+ height: imgHeight
782
1909
  });
783
- this.input('backdropType', SelectInputView, {
784
- values: ['image', 'color'],
785
- texts: ['Bild', 'Farbe']
1910
+ $($outer[1]).css({
1911
+ left: left + selection.x1,
1912
+ top: top,
1913
+ width: w,
1914
+ height: selection.y1
786
1915
  });
787
- this.input('backdropImage', FileInputView, {
788
- collection: 'image_files',
789
- fileSelectionHandler: 'sectionConfiguration',
790
- visibleBinding: 'backdropType',
791
- visibleBindingValue: 'image'
1916
+ $($outer[2]).css({
1917
+ left: left + selection.x2,
1918
+ top: top,
1919
+ width: imgWidth - selection.x2,
1920
+ height: imgHeight
792
1921
  });
793
- this.input('backdropImage', ColorInputView, {
794
- visibleBinding: 'backdropType',
795
- visibleBindingValue: 'color'
1922
+ $($outer[3]).css({
1923
+ left: left + selection.x1,
1924
+ top: top + selection.y2,
1925
+ width: w,
1926
+ height: imgHeight - selection.y2
796
1927
  });
797
- this.input('fullHeight', CheckBoxInputView);
798
- this.input('invert', CheckBoxInputView);
799
- });
800
- }
801
- });
802
-
803
- var EditContentElementView = EditConfigurationView.extend({
804
- translationKeyPrefix: function translationKeyPrefix() {
805
- return "pageflow_scrolled.editor.content_elements.".concat(this.model.get('typeName'));
1928
+ w -= $handles.outerWidth();
1929
+ h -= $handles.outerHeight();
1930
+ /* Arrange handles */
1931
+
1932
+ switch ($handles.length) {
1933
+ case 8:
1934
+ $($handles[4]).css({
1935
+ left: w >> 1
1936
+ });
1937
+ $($handles[5]).css({
1938
+ left: w,
1939
+ top: h >> 1
1940
+ });
1941
+ $($handles[6]).css({
1942
+ left: w >> 1,
1943
+ top: h
1944
+ });
1945
+ $($handles[7]).css({
1946
+ top: h >> 1
1947
+ });
1948
+
1949
+ case 4:
1950
+ $handles.slice(1, 3).css({
1951
+ left: w
1952
+ });
1953
+ $handles.slice(2, 4).css({
1954
+ top: h
1955
+ });
1956
+ }
1957
+
1958
+ if (resetKeyPress !== false) {
1959
+ /*
1960
+ * Need to reset the document keypress event handler -- unbind the
1961
+ * current handler
1962
+ */
1963
+ if ($.imgAreaSelect.onKeyPress != docKeyPress) $(document).unbind($.imgAreaSelect.keyPress, $.imgAreaSelect.onKeyPress);
1964
+ if (options.keys)
1965
+ /*
1966
+ * Set the document keypress event handler to this instance's
1967
+ * docKeyPress() function
1968
+ */
1969
+ $(document)[$.imgAreaSelect.keyPress]($.imgAreaSelect.onKeyPress = docKeyPress);
1970
+ }
1971
+ /*
1972
+ * Internet Explorer displays 1px-wide dashed borders incorrectly by
1973
+ * filling the spaces between dashes with white. Toggling the margin
1974
+ * property between 0 and "auto" fixes this in IE6 and IE7 (IE8 is still
1975
+ * broken). This workaround is not perfect, as it requires setTimeout()
1976
+ * and thus causes the border to flicker a bit, but I haven't found a
1977
+ * better solution.
1978
+ *
1979
+ * Note: This only happens with CSS borders, set with the borderWidth,
1980
+ * borderOpacity, borderColor1, and borderColor2 options (which are now
1981
+ * deprecated). Borders created with GIF background images are fine.
1982
+ */
1983
+
1984
+
1985
+ if (msie && $border.outerWidth() - $border.innerWidth() == 2) {
1986
+ $border.css('margin', 0);
1987
+ setTimeout(function () {
1988
+ $border.css('margin', 'auto');
1989
+ }, 0);
1990
+ }
1991
+ } //
1992
+ // Do the complete update sequence: recalculate offsets, update the
1993
+ // elements, and set the correct values of x1, y1, x2, and y2.
1994
+ //
1995
+ // @param resetKeyPress
1996
+ // If set to <code>false</code>, this instance's keypress
1997
+ // event handler is not activated
1998
+ //
1999
+
2000
+
2001
+ function doUpdate(resetKeyPress) {
2002
+ adjust();
2003
+ update(resetKeyPress);
2004
+ x1 = viewX(selection.x1);
2005
+ y1 = viewY(selection.y1);
2006
+ x2 = viewX(selection.x2);
2007
+ y2 = viewY(selection.y2);
2008
+ } //
2009
+ // Hide or fade out an element (or multiple elements)
2010
+ //
2011
+ // @param $elem
2012
+ // A jQuery object containing the element(s) to hide/fade out
2013
+ // @param fn
2014
+ // Callback function to be called when fadeOut() completes
2015
+ //
2016
+
2017
+
2018
+ function hide($elem, fn) {
2019
+ options.fadeSpeed ? $elem.fadeOut(options.fadeSpeed, fn) : $elem.hide();
2020
+ } //
2021
+ // Selection area mousemove event handler
2022
+ //
2023
+ // @param event
2024
+ // The event object
2025
+ //
2026
+
2027
+
2028
+ function areaMouseMove(event) {
2029
+ var x = selX(evX(event)) - selection.x1,
2030
+ y = selY(evY(event)) - selection.y1;
2031
+
2032
+ if (!adjusted) {
2033
+ adjust();
2034
+ adjusted = true;
2035
+ $box.one('mouseout', function () {
2036
+ adjusted = false;
2037
+ });
2038
+ }
2039
+ /* Clear the resize mode */
2040
+
2041
+
2042
+ resize = '';
2043
+
2044
+ if (options.resizable) {
2045
+ /*
2046
+ * Check if the mouse pointer is over the resize margin area and set
2047
+ * the resize mode accordingly
2048
+ */
2049
+ if (y <= options.resizeMargin) resize = 'n';else if (y >= selection.height - options.resizeMargin) resize = 's';
2050
+ if (x <= options.resizeMargin) resize += 'w';else if (x >= selection.width - options.resizeMargin) resize += 'e';
2051
+ }
2052
+
2053
+ $box.css('cursor', resize ? resize + '-resize' : options.movable ? 'move' : '');
2054
+ if ($areaOpera) $areaOpera.toggle();
2055
+ } //
2056
+ // Document mouseup event handler
2057
+ //
2058
+ // @param event
2059
+ // The event object
2060
+ //
2061
+
2062
+
2063
+ function docMouseUp(event) {
2064
+ /* Set back the default cursor */
2065
+ $('body').css('cursor', '');
2066
+ /*
2067
+ * If autoHide is enabled, or if the selection has zero width/height,
2068
+ * hide the selection and the outer area
2069
+ */
2070
+
2071
+ if (options.autoHide || selection.width * selection.height == 0) hide($box.add($outer), function () {
2072
+ $(this).hide();
2073
+ });
2074
+ $(document).unbind('mousemove', selectingMouseMove);
2075
+ $box.mousemove(areaMouseMove);
2076
+ options.onSelectEnd(img, getSelection());
2077
+ } //
2078
+ // Selection area mousedown event handler
2079
+ //
2080
+ // @param event
2081
+ // The event object
2082
+ // @return false
2083
+ //
2084
+
2085
+
2086
+ function areaMouseDown(event) {
2087
+ if (event.which != 1) return false;
2088
+ adjust();
2089
+
2090
+ if (resize) {
2091
+ /* Resize mode is in effect */
2092
+ $('body').css('cursor', resize + '-resize');
2093
+ x1 = viewX(selection[/w/.test(resize) ? 'x2' : 'x1']);
2094
+ y1 = viewY(selection[/n/.test(resize) ? 'y2' : 'y1']);
2095
+ $(document).mousemove(selectingMouseMove).one('mouseup', docMouseUp);
2096
+ $box.unbind('mousemove', areaMouseMove);
2097
+ } else if (options.movable) {
2098
+ startX = left + selection.x1 - evX(event);
2099
+ startY = top + selection.y1 - evY(event);
2100
+ $box.unbind('mousemove', areaMouseMove);
2101
+ $(document).mousemove(movingMouseMove).one('mouseup', function () {
2102
+ options.onSelectEnd(img, getSelection());
2103
+ $(document).unbind('mousemove', movingMouseMove);
2104
+ $box.mousemove(areaMouseMove);
2105
+ });
2106
+ } else $img.mousedown(event);
2107
+
2108
+ return false;
2109
+ } //
2110
+ // Adjust the x2/y2 coordinates to maintain aspect ratio (if defined)
2111
+ //
2112
+ // @param xFirst
2113
+ // If set to <code>true</code>, calculate x2 first. Otherwise,
2114
+ // calculate y2 first.
2115
+ //
2116
+
2117
+
2118
+ function fixAspectRatio(xFirst) {
2119
+ if (aspectRatio) if (xFirst) {
2120
+ x2 = max(left, min(left + imgWidth, x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1)));
2121
+ y2 = round(max(top, min(top + imgHeight, y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1))));
2122
+ x2 = round(x2);
2123
+ } else {
2124
+ y2 = max(top, min(top + imgHeight, y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1)));
2125
+ x2 = round(max(left, min(left + imgWidth, x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1))));
2126
+ y2 = round(y2);
2127
+ }
2128
+ } //
2129
+ // Resize the selection area respecting the minimum/maximum dimensions and
2130
+ // aspect ratio
2131
+ //
2132
+
2133
+
2134
+ function doResize() {
2135
+ /*
2136
+ * Make sure the top left corner of the selection area stays within
2137
+ * image boundaries (it might not if the image source was dynamically
2138
+ * changed).
2139
+ */
2140
+ x1 = min(x1, left + imgWidth);
2141
+ y1 = min(y1, top + imgHeight);
2142
+
2143
+ if (abs(x2 - x1) < minWidth) {
2144
+ /* Selection width is smaller than minWidth */
2145
+ x2 = x1 - minWidth * (x2 < x1 || -1);
2146
+ if (x2 < left) x1 = left + minWidth;else if (x2 > left + imgWidth) x1 = left + imgWidth - minWidth;
2147
+ }
2148
+
2149
+ if (abs(y2 - y1) < minHeight) {
2150
+ /* Selection height is smaller than minHeight */
2151
+ y2 = y1 - minHeight * (y2 < y1 || -1);
2152
+ if (y2 < top) y1 = top + minHeight;else if (y2 > top + imgHeight) y1 = top + imgHeight - minHeight;
2153
+ }
2154
+
2155
+ x2 = max(left, min(x2, left + imgWidth));
2156
+ y2 = max(top, min(y2, top + imgHeight));
2157
+ fixAspectRatio(abs(x2 - x1) < abs(y2 - y1) * aspectRatio);
2158
+
2159
+ if (abs(x2 - x1) > maxWidth) {
2160
+ /* Selection width is greater than maxWidth */
2161
+ x2 = x1 - maxWidth * (x2 < x1 || -1);
2162
+ fixAspectRatio();
2163
+ }
2164
+
2165
+ if (abs(y2 - y1) > maxHeight) {
2166
+ /* Selection height is greater than maxHeight */
2167
+ y2 = y1 - maxHeight * (y2 < y1 || -1);
2168
+ fixAspectRatio(true);
2169
+ }
2170
+
2171
+ selection = {
2172
+ x1: selX(min(x1, x2)),
2173
+ x2: selX(max(x1, x2)),
2174
+ y1: selY(min(y1, y2)),
2175
+ y2: selY(max(y1, y2)),
2176
+ width: abs(x2 - x1),
2177
+ height: abs(y2 - y1)
2178
+ };
2179
+ update();
2180
+ options.onSelectChange(img, getSelection());
2181
+ } //
2182
+ // Mousemove event handler triggered when the user is selecting an area
2183
+ //
2184
+ // @param event
2185
+ // The event object
2186
+ // @return false
2187
+ //
2188
+
2189
+
2190
+ function selectingMouseMove(event) {
2191
+ x2 = /w|e|^$/.test(resize) || aspectRatio ? evX(event) : viewX(selection.x2);
2192
+ y2 = /n|s|^$/.test(resize) || aspectRatio ? evY(event) : viewY(selection.y2);
2193
+ doResize();
2194
+ return false;
2195
+ } //
2196
+ // Move the selection area
2197
+ //
2198
+ // @param newX1
2199
+ // New viewport X1
2200
+ // @param newY1
2201
+ // New viewport Y1
2202
+ //
2203
+
2204
+
2205
+ function doMove(newX1, newY1) {
2206
+ x2 = (x1 = newX1) + selection.width;
2207
+ y2 = (y1 = newY1) + selection.height;
2208
+ $.extend(selection, {
2209
+ x1: selX(x1),
2210
+ y1: selY(y1),
2211
+ x2: selX(x2),
2212
+ y2: selY(y2)
2213
+ });
2214
+ update();
2215
+ options.onSelectChange(img, getSelection());
2216
+ } //
2217
+ // Mousemove event handler triggered when the selection area is being moved
2218
+ //
2219
+ // @param event
2220
+ // The event object
2221
+ // @return false
2222
+ //
2223
+
2224
+
2225
+ function movingMouseMove(event) {
2226
+ x1 = max(left, min(startX + evX(event), left + imgWidth - selection.width));
2227
+ y1 = max(top, min(startY + evY(event), top + imgHeight - selection.height));
2228
+ doMove(x1, y1);
2229
+ event.preventDefault();
2230
+ return false;
2231
+ } //
2232
+ // Start selection
2233
+ //
2234
+
2235
+
2236
+ function startSelection() {
2237
+ $(document).unbind('mousemove', startSelection);
2238
+ adjust();
2239
+ x2 = x1;
2240
+ y2 = y1;
2241
+ doResize();
2242
+ resize = '';
2243
+ if (!$outer.is(':visible'))
2244
+ /* Show the plugin elements */
2245
+ $box.add($outer).hide().fadeIn(options.fadeSpeed || 0);
2246
+ shown = true;
2247
+ $(document).unbind('mouseup', cancelSelection).mousemove(selectingMouseMove).one('mouseup', docMouseUp);
2248
+ $box.unbind('mousemove', areaMouseMove);
2249
+ options.onSelectStart(img, getSelection());
2250
+ } //
2251
+ // Cancel selection
2252
+ //
2253
+
2254
+
2255
+ function cancelSelection() {
2256
+ $(document).unbind('mousemove', startSelection).unbind('mouseup', cancelSelection);
2257
+ hide($box.add($outer));
2258
+ setSelection(selX(x1), selY(y1), selX(x1), selY(y1));
2259
+ /* If this is an API call, callback functions should not be triggered */
2260
+
2261
+ if (!(this instanceof $.imgAreaSelect)) {
2262
+ options.onSelectChange(img, getSelection());
2263
+ options.onSelectEnd(img, getSelection());
2264
+ }
2265
+ } //
2266
+ // Image mousedown event handler
2267
+ //
2268
+ // @param event
2269
+ // The event object
2270
+ // @return false
2271
+ //
2272
+
2273
+
2274
+ function imgMouseDown(event) {
2275
+ /* Ignore the event if animation is in progress */
2276
+ if (event.which != 1 || $outer.is(':animated')) return false;
2277
+ adjust();
2278
+ startX = x1 = evX(event);
2279
+ startY = y1 = evY(event);
2280
+ /* Selection will start when the mouse is moved */
2281
+
2282
+ $(document).mousemove(startSelection).mouseup(cancelSelection);
2283
+ return false;
2284
+ } //
2285
+ // Window resize event handler
2286
+ //
2287
+
2288
+
2289
+ function windowResize() {
2290
+ doUpdate(false);
2291
+ } //
2292
+ // Image load event handler. This is the final part of the initialization
2293
+ // process.
2294
+ //
2295
+
2296
+
2297
+ function imgLoad() {
2298
+ imgLoaded = true;
2299
+ /* Set options */
2300
+
2301
+ setOptions(options = $.extend({
2302
+ classPrefix: 'imgareaselect',
2303
+ movable: true,
2304
+ parent: 'body',
2305
+ resizable: true,
2306
+ resizeMargin: 10,
2307
+ onInit: function onInit() {},
2308
+ onSelectStart: function onSelectStart() {},
2309
+ onSelectChange: function onSelectChange() {},
2310
+ onSelectEnd: function onSelectEnd() {}
2311
+ }, options));
2312
+ $box.add($outer).css({
2313
+ visibility: ''
2314
+ });
2315
+
2316
+ if (options.show) {
2317
+ shown = true;
2318
+ adjust();
2319
+ update();
2320
+ $box.add($outer).hide().fadeIn(options.fadeSpeed || 0);
2321
+ }
2322
+ /*
2323
+ * Call the onInit callback. The setTimeout() call is used to ensure
2324
+ * that the plugin has been fully initialized and the object instance is
2325
+ * available (so that it can be obtained in the callback).
2326
+ */
2327
+
2328
+
2329
+ setTimeout(function () {
2330
+ options.onInit(img, getSelection());
2331
+ }, 0);
2332
+ } //
2333
+ // Document keypress event handler
2334
+ //
2335
+ // @param event
2336
+ // The event object
2337
+ // @return false
2338
+ //
2339
+
2340
+
2341
+ var docKeyPress = function docKeyPress(event) {
2342
+ var k = options.keys,
2343
+ d,
2344
+ t,
2345
+ key = event.keyCode;
2346
+ 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;
2347
+
2348
+ if (k.arrows == 'resize' || k.shift == 'resize' && event.shiftKey || k.ctrl == 'resize' && event.ctrlKey || k.alt == 'resize' && (event.altKey || event.originalEvent.altKey)) {
2349
+ /* Resize selection */
2350
+ switch (key) {
2351
+ case 37:
2352
+ /* Left */
2353
+ d = -d;
2354
+
2355
+ case 39:
2356
+ /* Right */
2357
+ t = max(x1, x2);
2358
+ x1 = min(x1, x2);
2359
+ x2 = max(t + d, x1);
2360
+ fixAspectRatio();
2361
+ break;
2362
+
2363
+ case 38:
2364
+ /* Up */
2365
+ d = -d;
2366
+
2367
+ case 40:
2368
+ /* Down */
2369
+ t = max(y1, y2);
2370
+ y1 = min(y1, y2);
2371
+ y2 = max(t + d, y1);
2372
+ fixAspectRatio(true);
2373
+ break;
2374
+
2375
+ default:
2376
+ return;
2377
+ }
2378
+
2379
+ doResize();
2380
+ } else {
2381
+ /* Move selection */
2382
+ x1 = min(x1, x2);
2383
+ y1 = min(y1, y2);
2384
+
2385
+ switch (key) {
2386
+ case 37:
2387
+ /* Left */
2388
+ doMove(max(x1 - d, left), y1);
2389
+ break;
2390
+
2391
+ case 38:
2392
+ /* Up */
2393
+ doMove(x1, max(y1 - d, top));
2394
+ break;
2395
+
2396
+ case 39:
2397
+ /* Right */
2398
+ doMove(x1 + min(d, imgWidth - selX(x2)), y1);
2399
+ break;
2400
+
2401
+ case 40:
2402
+ /* Down */
2403
+ doMove(x1, y1 + min(d, imgHeight - selY(y2)));
2404
+ break;
2405
+
2406
+ default:
2407
+ return;
2408
+ }
2409
+ }
2410
+
2411
+ return false;
2412
+ }; //
2413
+ // Apply style options to plugin element (or multiple elements)
2414
+ //
2415
+ // @param $elem
2416
+ // A jQuery object representing the element(s) to style
2417
+ // @param props
2418
+ // An object that maps option names to corresponding CSS
2419
+ // properties
2420
+ //
2421
+
2422
+
2423
+ function styleOptions($elem, props) {
2424
+ for (var option in props) {
2425
+ if (options[option] !== undefined) $elem.css(props[option], options[option]);
2426
+ }
2427
+ } //
2428
+ // Set plugin options
2429
+ //
2430
+ // @param newOptions
2431
+ // The new options object
2432
+ //
2433
+
2434
+
2435
+ function setOptions(newOptions) {
2436
+ if (newOptions.parent) ($parent = $(newOptions.parent)).append($box.add($outer));
2437
+ /* Merge the new options with the existing ones */
2438
+
2439
+ $.extend(options, newOptions);
2440
+ adjust();
2441
+
2442
+ if (newOptions.handles != null) {
2443
+ /* Recreate selection area handles */
2444
+ $handles.remove();
2445
+ $handles = $([]);
2446
+ i = newOptions.handles ? newOptions.handles == 'corners' ? 4 : 8 : 0;
2447
+
2448
+ while (i--) {
2449
+ $handles = $handles.add(div());
2450
+ }
2451
+ /* Add a class to handles and set the CSS properties */
2452
+
2453
+
2454
+ $handles.addClass(options.classPrefix + '-handle').css({
2455
+ position: 'absolute',
2456
+
2457
+ /*
2458
+ * The font-size property needs to be set to zero, otherwise
2459
+ * Internet Explorer makes the handles too large
2460
+ */
2461
+ fontSize: 0,
2462
+ zIndex: zIndex + 1 || 1
2463
+ });
2464
+ /*
2465
+ * If handle width/height has not been set with CSS rules, set the
2466
+ * default 5px
2467
+ */
2468
+
2469
+ if (!parseInt($handles.css('width')) >= 0) $handles.width(5).height(5);
2470
+ /*
2471
+ * If the borderWidth option is in use, add a solid border to
2472
+ * handles
2473
+ */
2474
+
2475
+ if (o = options.borderWidth) $handles.css({
2476
+ borderWidth: o,
2477
+ borderStyle: 'solid'
2478
+ });
2479
+ /* Apply other style options */
2480
+
2481
+ styleOptions($handles, {
2482
+ borderColor1: 'border-color',
2483
+ borderColor2: 'background-color',
2484
+ borderOpacity: 'opacity'
2485
+ });
2486
+ }
2487
+ /* Calculate scale factors */
2488
+
2489
+
2490
+ scaleX = options.imageWidth / imgWidth || 1;
2491
+ scaleY = options.imageHeight / imgHeight || 1;
2492
+ /* Set selection */
2493
+
2494
+ if (newOptions.x1 != null) {
2495
+ setSelection(newOptions.x1, newOptions.y1, newOptions.x2, newOptions.y2);
2496
+ newOptions.show = !newOptions.hide;
2497
+ }
2498
+
2499
+ if (newOptions.keys)
2500
+ /* Enable keyboard support */
2501
+ options.keys = $.extend({
2502
+ shift: 1,
2503
+ ctrl: 'resize'
2504
+ }, newOptions.keys);
2505
+ /* Add classes to plugin elements */
2506
+
2507
+ $outer.addClass(options.classPrefix + '-outer');
2508
+ $area.addClass(options.classPrefix + '-selection');
2509
+
2510
+ for (i = 0; i++ < 4;) {
2511
+ $($border[i - 1]).addClass(options.classPrefix + '-border' + i);
2512
+ }
2513
+ /* Apply style options */
2514
+
2515
+
2516
+ styleOptions($area, {
2517
+ selectionColor: 'background-color',
2518
+ selectionOpacity: 'opacity'
2519
+ });
2520
+ styleOptions($border, {
2521
+ borderOpacity: 'opacity',
2522
+ borderWidth: 'border-width'
2523
+ });
2524
+ styleOptions($outer, {
2525
+ outerColor: 'background-color',
2526
+ outerOpacity: 'opacity'
2527
+ });
2528
+ if (o = options.borderColor1) $($border[0]).css({
2529
+ borderStyle: 'solid',
2530
+ borderColor: o
2531
+ });
2532
+ if (o = options.borderColor2) $($border[1]).css({
2533
+ borderStyle: 'dashed',
2534
+ borderColor: o
2535
+ });
2536
+ /* Append all the selection area elements to the container box */
2537
+
2538
+ $box.append($area.add($border).add($areaOpera)).append($handles);
2539
+
2540
+ if (msie) {
2541
+ if (o = ($outer.css('filter') || '').match(/opacity=(\d+)/)) $outer.css('opacity', o[1] / 100);
2542
+ if (o = ($border.css('filter') || '').match(/opacity=(\d+)/)) $border.css('opacity', o[1] / 100);
2543
+ }
2544
+
2545
+ if (newOptions.hide) hide($box.add($outer));else if (newOptions.show && imgLoaded) {
2546
+ shown = true;
2547
+ $box.add($outer).fadeIn(options.fadeSpeed || 0);
2548
+ doUpdate();
2549
+ }
2550
+ /* Calculate the aspect ratio factor */
2551
+
2552
+ aspectRatio = (d = (options.aspectRatio || '').split(/:/))[0] / d[1];
2553
+ $img.add($outer).unbind('mousedown', imgMouseDown);
2554
+
2555
+ if (options.disable || options.enable === false) {
2556
+ /* Disable the plugin */
2557
+ $box.unbind('mousemove', areaMouseMove).unbind('mousedown', areaMouseDown);
2558
+ $(window).unbind('resize', windowResize);
2559
+ } else {
2560
+ if (options.enable || options.disable === false) {
2561
+ /* Enable the plugin */
2562
+ if (options.resizable || options.movable) $box.mousemove(areaMouseMove).mousedown(areaMouseDown);
2563
+ $(window).resize(windowResize);
2564
+ }
2565
+
2566
+ if (!options.persistent) $img.add($outer).mousedown(imgMouseDown);
2567
+ }
2568
+
2569
+ options.enable = options.disable = undefined;
2570
+ } //
2571
+ // Remove plugin completely
2572
+ //
2573
+
2574
+
2575
+ this.remove = function () {
2576
+ /*
2577
+ * Call setOptions with { disable: true } to unbind the event handlers
2578
+ */
2579
+ setOptions({
2580
+ disable: true
2581
+ });
2582
+ $box.add($outer).remove();
2583
+ };
2584
+ /*
2585
+ * Public API
2586
+ */
2587
+ //
2588
+ // Get current options
2589
+ //
2590
+ // @return An object containing the set of options currently in use
2591
+ //
2592
+
2593
+
2594
+ this.getOptions = function () {
2595
+ return options;
2596
+ }; //
2597
+ // Set plugin options
2598
+ //
2599
+ // @param newOptions
2600
+ // The new options object
2601
+ //
2602
+
2603
+
2604
+ this.setOptions = setOptions; //
2605
+ // Get the current selection
2606
+ //
2607
+ // @param noScale
2608
+ // If set to <code>true</code>, scaling is not applied to the
2609
+ // returned selection
2610
+ // @return Selection object
2611
+ //
2612
+
2613
+ this.getSelection = getSelection; //
2614
+ // Set the current selection
2615
+ //
2616
+ // @param x1
2617
+ // X coordinate of the upper left corner of the selection area
2618
+ // @param y1
2619
+ // Y coordinate of the upper left corner of the selection area
2620
+ // @param x2
2621
+ // X coordinate of the lower right corner of the selection area
2622
+ // @param y2
2623
+ // Y coordinate of the lower right corner of the selection area
2624
+ // @param noScale
2625
+ // If set to <code>true</code>, scaling is not applied to the
2626
+ // new selection
2627
+ //
2628
+
2629
+ this.setSelection = setSelection; //
2630
+ // Cancel selection
2631
+ //
2632
+
2633
+ this.cancelSelection = cancelSelection; //
2634
+ // Update plugin elements
2635
+ //
2636
+ // @param resetKeyPress
2637
+ // If set to <code>false</code>, this instance's keypress
2638
+ // event handler is not activated
2639
+ //
2640
+
2641
+ this.update = doUpdate;
2642
+ /* Do the dreaded browser detection */
2643
+
2644
+ var msie = (/msie ([\w.]+)/i.exec(ua) || [])[1],
2645
+ opera = /opera/i.test(ua),
2646
+ safari = /webkit/i.test(ua) && !/chrome/i.test(ua);
2647
+ /*
2648
+ * Traverse the image's parent elements (up to <body>) and find the
2649
+ * highest z-index
2650
+ */
2651
+
2652
+ $p = $img;
2653
+
2654
+ while ($p.length) {
2655
+ zIndex = max(zIndex, !isNaN($p.css('z-index')) ? $p.css('z-index') : zIndex);
2656
+ /* Also check if any of the ancestor elements has fixed position */
2657
+
2658
+ if ($p.css('position') == 'fixed') position = 'fixed';
2659
+ $p = $p.parent(':not(body)');
2660
+ }
2661
+ /*
2662
+ * If z-index is given as an option, it overrides the one found by the
2663
+ * above loop
2664
+ */
2665
+
2666
+
2667
+ zIndex = options.zIndex || zIndex;
2668
+ if (msie) $img.attr('unselectable', 'on');
2669
+ /*
2670
+ * In MSIE and WebKit, we need to use the keydown event instead of keypress
2671
+ */
2672
+
2673
+ $.imgAreaSelect.keyPress = msie || safari ? 'keydown' : 'keypress';
2674
+ /*
2675
+ * There is a bug affecting the CSS cursor property in Opera (observed in
2676
+ * versions up to 10.00) that prevents the cursor from being updated unless
2677
+ * the mouse leaves and enters the element again. To trigger the mouseover
2678
+ * event, we're adding an additional div to $box and we're going to toggle
2679
+ * it when mouse moves inside the selection area.
2680
+ */
2681
+
2682
+ if (opera) $areaOpera = div().css({
2683
+ width: '100%',
2684
+ height: '100%',
2685
+ position: 'absolute',
2686
+ zIndex: zIndex + 2 || 2
2687
+ });
2688
+ /*
2689
+ * We initially set visibility to "hidden" as a workaround for a weird
2690
+ * behaviour observed in Google Chrome 1.0.154.53 (on Windows XP). Normally
2691
+ * we would just set display to "none", but, for some reason, if we do so
2692
+ * then Chrome refuses to later display the element with .show() or
2693
+ * .fadeIn().
2694
+ */
2695
+
2696
+ $box.add($outer).css({
2697
+ visibility: 'hidden',
2698
+ position: position,
2699
+ overflow: 'hidden',
2700
+ zIndex: zIndex || '0'
2701
+ });
2702
+ $box.css({
2703
+ zIndex: zIndex + 2 || 2
2704
+ });
2705
+ $area.add($border).css({
2706
+ position: 'absolute',
2707
+ fontSize: 0
2708
+ });
2709
+ /*
2710
+ * If the image has been fully loaded, or if it is not really an image (eg.
2711
+ * a div), call imgLoad() immediately; otherwise, bind it to be called once
2712
+ * on image load event.
2713
+ */
2714
+
2715
+ img.complete || img.readyState == 'complete' || !$img.is('img') ? imgLoad() : $img.one('load', imgLoad);
2716
+ /*
2717
+ * MSIE 9.0 doesn't always fire the image load event -- resetting the src
2718
+ * attribute seems to trigger it. The check is for version 7 and above to
2719
+ * accommodate for MSIE 9 running in compatibility mode.
2720
+ */
2721
+
2722
+ if (!imgLoaded && msie && msie >= 7) img.src = img.src;
2723
+ }; //
2724
+ // Invoke imgAreaSelect on a jQuery object containing the image(s)
2725
+ //
2726
+ // @param options
2727
+ // Options object
2728
+ // @return The jQuery object or a reference to imgAreaSelect instance (if the
2729
+ // <code>instance</code> option was specified)
2730
+ //
2731
+
2732
+
2733
+ $.fn.imgAreaSelect = function (options) {
2734
+ options = options || {};
2735
+ this.each(function () {
2736
+ /* Is there already an imgAreaSelect instance bound to this element? */
2737
+ if ($(this).data('imgAreaSelect')) {
2738
+ /* Yes there is -- is it supposed to be removed? */
2739
+ if (options.remove) {
2740
+ /* Remove the plugin */
2741
+ $(this).data('imgAreaSelect').remove();
2742
+ $(this).removeData('imgAreaSelect');
2743
+ } else
2744
+ /* Reset options */
2745
+ $(this).data('imgAreaSelect').setOptions(options);
2746
+ } else if (!options.remove) {
2747
+ /* No exising instance -- create a new one */
2748
+
2749
+ /*
2750
+ * If neither the "enable" nor the "disable" option is present, add
2751
+ * "enable" as the default
2752
+ */
2753
+ if (options.enable === undefined && options.disable === undefined) options.enable = true;
2754
+ $(this).data('imgAreaSelect', new $.imgAreaSelect(this, options));
2755
+ }
2756
+ });
2757
+ if (options.instance)
2758
+ /*
2759
+ * Return the imgAreaSelect instance bound to the first element in the
2760
+ * set
2761
+ */
2762
+ return $(this).data('imgAreaSelect');
2763
+ return this;
2764
+ };
2765
+ })($);
2766
+
2767
+ 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,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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.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}\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";
2768
+ 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"};
2769
+ styleInject(css$9);
2770
+
2771
+ var EditMotifAreaDialogView = Marionette.ItemView.extend({
2772
+ template: function template() {
2773
+ 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 ");
2774
+ },
2775
+ mixins: [dialogView],
2776
+ ui: cssModulesUtils$1.ui(styles$7, 'image', 'thumbnail'),
2777
+ events: cssModulesUtils$1.events(styles$7, {
2778
+ 'click helpLink': function clickHelpLink() {
2779
+ app.trigger('toggle-help', 'pageflow_scrolled.help_entries.motif_area');
2780
+ },
2781
+ 'click reset': function clickReset() {
2782
+ this.motifArea = null;
2783
+ this.updateAreaSelect();
2784
+ this.updateBlankSlate();
2785
+ },
2786
+ 'click save': function clickSave() {
2787
+ this.save();
2788
+ this.close();
2789
+ }
2790
+ }),
2791
+ save: function save() {
2792
+ this.options.file.configuration.set('motifArea', this.getMotifAreaWithRoundedValues());
2793
+ },
2794
+ onRender: function onRender() {
2795
+ this.ui.image.attr('src', this.options.file.getBackgroundPositioningImageUrl());
806
2796
  },
2797
+ onShow: function onShow() {
2798
+ var _this = this;
2799
+
2800
+ this.motifArea = this.options.file.configuration.get('motifArea');
2801
+ this.updateAreaSelect();
2802
+ this.updateBlankSlate();
2803
+
2804
+ this.resizeListener = function () {
2805
+ return _this.updateAreaSelect();
2806
+ };
2807
+
2808
+ $(window).on('resize', this.resizeListener);
2809
+ },
2810
+ getMotifAreaWithRoundedValues: function getMotifAreaWithRoundedValues() {
2811
+ return this.motifArea && {
2812
+ left: Math.round(this.motifArea.left),
2813
+ top: Math.round(this.motifArea.top),
2814
+ width: Math.round(this.motifArea.width),
2815
+ height: Math.round(this.motifArea.height)
2816
+ };
2817
+ },
2818
+ updateAreaSelect: function updateAreaSelect() {
2819
+ var _this2 = this;
2820
+
2821
+ var imageWidth = this.options.file.get('width');
2822
+ var imageHeight = this.options.file.get('height');
2823
+ this.ui.image.imgAreaSelect(_objectSpread2(_objectSpread2({
2824
+ parent: this.ui.thumbnail,
2825
+ handles: true,
2826
+ imageWidth: imageWidth,
2827
+ imageHeight: imageHeight
2828
+ }, this.getSelection(imageWidth, imageHeight)), {}, {
2829
+ onSelectStart: function onSelectStart() {
2830
+ _this2.$el.addClass(styles$7.dragging);
2831
+ },
2832
+ onSelectEnd: function onSelectEnd(img, selection) {
2833
+ _this2.$el.removeClass(styles$7.dragging);
2834
+
2835
+ var motifArea = {
2836
+ left: selection.x1 / imageWidth * 100.0,
2837
+ top: selection.y1 / imageHeight * 100.0,
2838
+ width: (selection.x2 - selection.x1) / imageWidth * 100.0,
2839
+ height: (selection.y2 - selection.y1) / imageHeight * 100.0
2840
+ };
2841
+
2842
+ if (motifArea.width > 0 && motifArea.height > 0) {
2843
+ _this2.motifArea = motifArea;
2844
+ } else {
2845
+ _this2.ui.image.imgAreaSelect(_objectSpread2({}, _this2.getSelection(imageWidth, imageHeight)));
2846
+ }
2847
+
2848
+ _this2.updateBlankSlate();
2849
+ }
2850
+ }));
2851
+ },
2852
+ getSelection: function getSelection(imageWidth, imageHeight) {
2853
+ if (!this.motifArea) {
2854
+ return {
2855
+ hide: true
2856
+ };
2857
+ }
2858
+
2859
+ var x1 = imageWidth * (this.motifArea.left / 100);
2860
+ var y1 = imageHeight * (this.motifArea.top / 100);
2861
+ var width = imageWidth * (this.motifArea.width / 100);
2862
+ var height = imageHeight * (this.motifArea.height / 100);
2863
+ return {
2864
+ x1: x1,
2865
+ x2: x1 + width,
2866
+ y1: y1,
2867
+ y2: y1 + height
2868
+ };
2869
+ },
2870
+ updateBlankSlate: function updateBlankSlate() {
2871
+ this.$el.toggleClass(styles$7.blank, !this.motifArea);
2872
+ },
2873
+ onBeforeClose: function onBeforeClose() {
2874
+ $(window).off('resize', this.resizeListener);
2875
+ this.ui.image.imgAreaSelect({
2876
+ remove: true
2877
+ });
2878
+ }
2879
+ });
2880
+
2881
+ EditMotifAreaDialogView.show = function (options) {
2882
+ app.dialogRegion.show(new EditMotifAreaDialogView(options));
2883
+ };
2884
+
2885
+ var EditSectionView = EditConfigurationView.extend({
2886
+ translationKeyPrefix: 'pageflow_scrolled.editor.edit_section',
807
2887
  configure: function configure(configurationEditor) {
808
- this.options.editor.contentElementTypes.setupConfigurationEditor(this.model.get('typeName'), configurationEditor);
2888
+ configurationEditor.tab('section', function () {
2889
+ this.input('layout', SelectInputView, {
2890
+ values: ['left', 'right', 'center']
2891
+ });
2892
+ this.input('appearance', SelectInputView, {
2893
+ values: ['shadow', 'cards', 'transparent']
2894
+ });
2895
+ this.input('backdropType', SelectInputView, {
2896
+ values: ['image', 'color', 'video'],
2897
+ texts: ['Bild', 'Farbe', 'Video']
2898
+ });
2899
+ this.input('backdropImage', FileInputView, {
2900
+ collection: 'image_files',
2901
+ fileSelectionHandler: 'sectionConfiguration',
2902
+ visibleBinding: 'backdropType',
2903
+ visibleBindingValue: 'image',
2904
+ positioning: false,
2905
+ dropDownMenuItems: [{
2906
+ name: 'editMofifArea',
2907
+ label: I18n.t('pageflow_scrolled.editor.edit_section.edit_motif_area'),
2908
+ selected: function selected(_ref) {
2909
+ var inputModel = _ref.inputModel,
2910
+ propertyName = _ref.propertyName,
2911
+ file = _ref.file;
2912
+ EditMotifAreaDialogView.show({
2913
+ model: inputModel,
2914
+ propertyName: propertyName,
2915
+ file: file
2916
+ });
2917
+ }
2918
+ }]
2919
+ });
2920
+ this.input('backdropImageMobile', FileInputView, {
2921
+ collection: 'image_files',
2922
+ fileSelectionHandler: 'sectionConfiguration',
2923
+ visibleBinding: 'backdropType',
2924
+ visibleBindingValue: 'image',
2925
+ positioning: false,
2926
+ dropDownMenuItems: [{
2927
+ name: 'editMofifArea',
2928
+ label: I18n.t('pageflow_scrolled.editor.edit_section.edit_motif_area'),
2929
+ selected: function selected(_ref2) {
2930
+ var inputModel = _ref2.inputModel,
2931
+ propertyName = _ref2.propertyName,
2932
+ file = _ref2.file;
2933
+ EditMotifAreaDialogView.show({
2934
+ model: inputModel,
2935
+ propertyName: propertyName,
2936
+ file: file
2937
+ });
2938
+ }
2939
+ }]
2940
+ });
2941
+ this.input('backdropColor', ColorInputView, {
2942
+ visibleBinding: 'backdropType',
2943
+ visibleBindingValue: 'color'
2944
+ });
2945
+ this.input('backdropVideo', FileInputView, {
2946
+ collection: 'video_files',
2947
+ fileSelectionHandler: 'sectionConfiguration',
2948
+ visibleBinding: 'backdropType',
2949
+ visibleBindingValue: 'video',
2950
+ positioning: false
2951
+ });
2952
+ this.input('invert', CheckBoxInputView);
2953
+ this.input('fullHeight', CheckBoxInputView);
2954
+ this.input('atmoAudioFileId', FileInputView, {
2955
+ collection: 'audio_files',
2956
+ fileSelectionHandler: 'sectionConfiguration',
2957
+ positioning: false
2958
+ });
2959
+ });
809
2960
  }
810
2961
  });
811
2962
 
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);
2963
+ 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}";
2964
+ 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"};
2965
+ styleInject(css$a);
815
2966
 
816
- var InsertContentElementView = Marionette.ItemView.extend({
2967
+ var EditSectionTransitionEffectView = Marionette.ItemView.extend({
2968
+ mixins: [inputView],
817
2969
  template: function template() {
818
- return "\n <h2>".concat(I18n.t('pageflow_scrolled.editor.insert_content_element.header'), "</h2>\n <ul></ul>\n ");
2970
+ return "\n <label>\n <span class=\"name\"></span>\n <span class=\"inline_help\"></span>\n </label>\n <div class=\"transitions_container\" />\n ";
2971
+ },
2972
+ events: {
2973
+ 'change': 'save'
819
2974
  },
820
2975
  ui: {
821
- items: 'ul'
2976
+ label: 'label',
2977
+ container: ".transitions_container"
2978
+ },
2979
+ initialize: function initialize() {
2980
+ if (!this.options.texts) {
2981
+ if (!this.options.translationKeys) {
2982
+ var translationKeyPrefix = this.options.attributeTranslationKeyPrefixes;
2983
+ this.options.translationKeys = _.map(this.options.values, function (value) {
2984
+ return translationKeyPrefix + '.transition.values.' + value;
2985
+ }, this);
2986
+ }
2987
+
2988
+ this.options.texts = _.map(this.options.translationKeys, function (key) {
2989
+ return I18n.t(key);
2990
+ });
2991
+ }
2992
+
2993
+ if (!this.options.groups) {
2994
+ this.options.groups = _.map(this.options.groupTanslationKeys, function (key) {
2995
+ return I18n.t(key);
2996
+ });
2997
+ }
822
2998
  },
823
2999
  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
3000
+ this.ui.label.attr('for', this.cid);
3001
+ this.appendOptions();
3002
+ this.load();
3003
+ this.listenTo(this.model, 'change:' + this.options.propertyName, this.load);
3004
+ this.loadCheckbox();
3005
+ },
3006
+ appendOptions: function appendOptions() {
3007
+ var extendedOption = {};
3008
+
3009
+ _.each(this.options.values, function (value, index) {
3010
+ if (value === 'fade') {
3011
+ 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>");
3012
+ } else {
3013
+ 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>");
3014
+ this.ui.container.append($(option));
831
3015
  }
832
- }));
3016
+
3017
+ if (value === 'fadeBg') {
3018
+ this.ui.container.find("div.".concat(styles$8.container_with_option)).append($(extendedOption));
3019
+ }
3020
+ }, this);
3021
+ },
3022
+ save: function save() {
3023
+ var configured = {};
3024
+
3025
+ _.each(this.ui.container.find('input'), function (input) {
3026
+ if ($(input).is(':checked')) {
3027
+ configured = $(input);
3028
+ }
3029
+ }); //This is the case, if a user unchecks the checkbox, then there is no checked item.
3030
+ //So the parent 'fade' transition will be selected.
3031
+
3032
+
3033
+ _.each(this.ui.container.find('input'), function (input) {
3034
+ if (!configured.length && $(input).context.id === 'fadeBg') {
3035
+ configured = $(input);
3036
+ } else if ($(input).context.id !== configured.context.id) {
3037
+ $(input).context.checked = false;
3038
+ }
3039
+ });
3040
+
3041
+ this.model.set(this.options.propertyName, configured.attr('value'));
833
3042
  },
834
- onGoBack: function onGoBack() {
835
- this.options.entry.trigger('resetSelection');
3043
+ load: function load() {
3044
+ if (!this.isClosed) {
3045
+ var value = this.model.get(this.options.propertyName);
3046
+
3047
+ if (this.model.has(this.options.propertyName) && this.ui.container.find('input[value="' + value + '"]:not([checked])').length) {
3048
+ var select = {};
3049
+
3050
+ _.each(this.ui.container.find('label'), function (label) {
3051
+ if ($(label).context.htmlFor === value) {
3052
+ select = $(label);
3053
+ } else {
3054
+ if ($(label).context.htmlFor === 'fade') {
3055
+ $(label).context.classList.remove(styles$8.active);
3056
+ }
3057
+
3058
+ $(label).context.parentElement.classList.remove(styles$8.active);
3059
+ }
3060
+ });
3061
+
3062
+ select.context.parentElement.classList.add(styles$8.active);
3063
+
3064
+ if (select.context.htmlFor === 'fade') {
3065
+ select.context.classList.add(styles$8.active);
3066
+ } else {
3067
+ select.context.classList.remove(styles$8.active);
3068
+ }
3069
+ }
3070
+ }
3071
+ },
3072
+ //Checkbox doesn't retain it's state after a reload, so this will make sure if it was selected it retain it's value.
3073
+ loadCheckbox: function loadCheckbox() {
3074
+ var value = this.model.get(this.options.propertyName);
3075
+
3076
+ if (value === 'fade') {
3077
+ var input = this.ui.container.find('input[value="' + value + '"]');
3078
+ $(input).prop('checked', true);
3079
+ }
836
3080
  }
837
3081
  });
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 ");
3082
+
3083
+ var EditSectionTransitionView = EditConfigurationView.extend({
3084
+ translationKeyPrefix: 'pageflow_scrolled.editor.edit_section_transition',
3085
+ configure: function configure(configurationEditor) {
3086
+ var entry = this.options.entry;
3087
+ var sectionIndex = entry.sections.indexOf(this.model);
3088
+ var previousSection = entry.sections.at(sectionIndex - 1);
3089
+ var availableTransitions = getAvailableTransitionNames(this.model.configuration.attributes, previousSection.configuration.attributes);
3090
+ configurationEditor.tab('transition', function () {
3091
+ this.input('transition', EditSectionTransitionEffectView, {
3092
+ values: getTransitionNames(),
3093
+ optionDisabled: function optionDisabled(value) {
3094
+ return !availableTransitions.includes(value);
3095
+ }
3096
+ });
3097
+ });
3098
+ }
3099
+ });
3100
+
3101
+ var EditContentElementView = EditConfigurationView.extend({
3102
+ translationKeyPrefix: function translationKeyPrefix() {
3103
+ return "pageflow_scrolled.editor.content_elements.".concat(this.model.get('typeName'));
844
3104
  },
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'));
3105
+ configure: function configure(configurationEditor) {
3106
+ this.options.editor.contentElementTypes.setupConfigurationEditor(this.model.get('typeName'), configurationEditor, {
3107
+ entry: this.options.entry
3108
+ });
3109
+ },
3110
+ destroyModel: function destroyModel() {
3111
+ var contentElementType = this.options.editor.contentElementTypes.findByTypeName(this.model.get('typeName'));
3112
+
3113
+ if (contentElementType.handleDestroy) {
3114
+ var result = contentElementType.handleDestroy(this.model);
3115
+
3116
+ if (result === false) {
3117
+ return false;
3118
+ }
850
3119
  }
3120
+
3121
+ this.options.entry.deleteContentElement(this.model);
851
3122
  }
852
3123
  });
853
3124
 
854
- InsertContentElementView.create = function (options) {
855
- return new BackButtonDecoratorView({
856
- view: new InsertContentElementView(options)
857
- });
858
- };
859
-
860
3125
  var SideBarController = Marionette.Controller.extend({
861
3126
  initialize: function initialize(options) {
862
3127
  this.region = options.region;
@@ -876,138 +3141,64 @@ var SideBarController = Marionette.Controller.extend({
876
3141
  editor: editor$2
877
3142
  }));
878
3143
  },
879
- contentElement: function contentElement(id, tab) {
880
- this.region.show(new EditContentElementView({
3144
+ sectionTransition: function sectionTransition(id, tab) {
3145
+ this.region.show(new EditSectionTransitionView({
881
3146
  entry: this.entry,
882
- model: this.entry.contentElements.get(id),
3147
+ model: this.entry.sections.get(id),
883
3148
  editor: editor$2
884
3149
  }));
885
3150
  },
886
- insertContentElement: function insertContentElement(position, id) {
887
- this.region.show(InsertContentElementView.create({
3151
+ contentElement: function contentElement(id, tab) {
3152
+ this.region.show(new EditContentElementView({
888
3153
  entry: this.entry,
889
- insertOptions: {
890
- position: position,
891
- id: id
892
- },
3154
+ model: this.entry.contentElements.get(id),
893
3155
  editor: editor$2
894
3156
  }));
895
3157
  }
896
3158
  });
897
3159
 
898
- function _classCallCheck(instance, Constructor) {
899
- if (!(instance instanceof Constructor)) {
900
- throw new TypeError("Cannot call a class as a function");
901
- }
902
- }
3160
+ 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,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}\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}";
3161
+ 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"};
3162
+ styleInject(css$b);
903
3163
 
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
- }
919
-
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 = {};
3164
+ var BrowserNotSupportedView = Marionette.ItemView.extend({
3165
+ template: function template() {
3166
+ return "\n <div class=\"".concat(styles$9.main, "\" />\n ");
3167
+ },
3168
+ className: styles$9.main,
3169
+ ui: cssModulesUtils.ui(styles$9, 'main'),
3170
+ onShow: function onShow() {
3171
+ this.appendOptions();
3172
+ },
3173
+ appendOptions: function appendOptions() {
3174
+ 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>");
3175
+ this.ui.main.append($(container));
932
3176
  }
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; }
3177
+ });
1000
3178
 
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
3179
  editor.registerEntryType('scrolled', {
1004
3180
  entryModel: ScrolledEntry,
1005
3181
  previewView: function previewView(options) {
1006
- return new EntryPreviewView(_objectSpread$2({}, options, {
3182
+ return new EntryPreviewView(_objectSpread2(_objectSpread2({}, options), {}, {
1007
3183
  editor: editor
1008
3184
  }));
1009
3185
  },
1010
- outlineView: EntryOutlineView
3186
+ outlineView: EntryOutlineView,
3187
+ appearanceInputs: function appearanceInputs(tabView) {
3188
+ tabView.view(NoOptionsHintView);
3189
+ },
3190
+ isBrowserSupported: function isBrowserSupported() {
3191
+ return browser.agent.matchesDesktopChrome({
3192
+ minVersion: 20
3193
+ }) || browser.agent.matchesDesktopFirefox({
3194
+ minVersion: 20
3195
+ }) || browser.agent.matchesDesktopSafari({
3196
+ minVersion: 3
3197
+ }) || browser.agent.matchesDesktopEdge({
3198
+ minVersion: 20
3199
+ });
3200
+ },
3201
+ browserNotSupportedView: BrowserNotSupportedView
1011
3202
  });
1012
3203
  editor.registerSideBarRouting({
1013
3204
  router: SideBarRouter,
@@ -1015,4 +3206,11 @@ editor.registerSideBarRouting({
1015
3206
  });
1016
3207
  editor.registerFileSelectionHandler('contentElementConfiguration', ContentElementFileSelectionHandler);
1017
3208
 
1018
- export { editor };
3209
+ 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";
3210
+ 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"};
3211
+ styleInject(css$c);
3212
+
3213
+ /*global pageflow*/
3214
+ Object.assign(pageflow, globalInterop);
3215
+
3216
+ export { NoOptionsHintView, buttons_module as buttonStyles, editor };