nextcloud/apps/settings/js/vue-editor.js.map

1 line
169 KiB
Plaintext

{"version":3,"file":"vue-editor.js?v=e8db6d8b389732baa316","sources":["webpack:///./apps/text/src/EditorFactory.js","webpack:///./apps/text/src/components/CollisionResolveDialog.vue","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?5bd8","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?8d51","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?d74e","webpack:///./apps/text/src/components/EditorWrapper.vue","webpack:///./apps/text/src/components/EditorWrapper.vue?9caf","webpack:///./apps/text/src/components/EditorWrapper.vue?499b","webpack:///./apps/text/src/components/EditorWrapper.vue?5f5e","webpack:///./apps/text/src/components/EditorWrapper.vue?a1d4","webpack:///./apps/text/src/components/ReadOnlyEditor.vue","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?7aee","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?419c","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?4731","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?cc54","webpack:///./apps/text/src/extensions/Keymap.js","webpack:///./apps/text/src/extensions/index.js","webpack:///./apps/text/src/helpers/index.js","webpack:///./apps/text/src/helpers/mappings.js","webpack:///./apps/text/src/marks/index.js","webpack:///./apps/text/src/mixins/isMobile.js","webpack:///./apps/text/src/nodes/Image.js","webpack:///./apps/text/src/nodes/ImageView.vue","webpack:///./apps/text/src/nodes/ImageView.vue?e288","webpack:///./apps/text/src/nodes/ImageView.vue?662d","webpack:///./apps/text/src/nodes/ImageView.vue?1ce6","webpack:///./apps/text/src/nodes/ListItem.js","webpack:///./apps/text/src/nodes/PlainTextDocument.js","webpack:///./apps/text/src/nodes/index.js","webpack:///./apps/text/src/services/PollingBackend.js","webpack:///./apps/text/src/services/SyncService.js","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?aacd","webpack:///./apps/text/src/components/EditorWrapper.vue?7dda","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?3dac","webpack:///./apps/text/src/nodes/ImageView.vue?85be","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?bf35","webpack:///./apps/text/src/components/EditorWrapper.vue?fdf2","webpack:///./apps/text/src/components/EditorWrapper.vue?16ac","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?b3e0","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?2956","webpack:///./apps/text/src/nodes/ImageView.vue?23a9","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?0f56","webpack:///./apps/text/src/components/EditorWrapper.vue?6617","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?12bd","webpack:///./apps/text/src/nodes/ImageView.vue?3b8c","webpack:///./apps/text/src/components/CollisionResolveDialog.vue?c8fc","webpack:///./apps/text/src/components/EditorWrapper.vue?6980","webpack:///./apps/text/src/components/EditorWrapper.vue?73b8","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?8adb","webpack:///./apps/text/src/components/ReadOnlyEditor.vue?57d7","webpack:///./apps/text/src/nodes/ImageView.vue?1bd6"],"sourcesContent":["function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction 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; }\n\nfunction _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; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Editor, Text } from 'tiptap';\nimport { HardBreak, Heading, Code, Link, BulletList, OrderedList, Blockquote, CodeBlock, CodeBlockHighlight, HorizontalRule, History, Placeholder } from 'tiptap-extensions';\nimport { Strong, Italic, Strike } from './marks';\nimport { Image, PlainTextDocument, ListItem } from './nodes';\nimport MarkdownIt from 'markdown-it';\nimport taskLists from 'markdown-it-task-lists';\nimport { MarkdownSerializer, defaultMarkdownSerializer } from 'prosemirror-markdown';\n\nvar loadSyntaxHighlight = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(language) {\n var languages, modules, i, lang;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n languages = [language];\n modules = {};\n i = 0;\n\n case 3:\n if (!(i < languages.length)) {\n _context.next = 17;\n break;\n }\n\n _context.prev = 4;\n _context.next = 7;\n return import(\n /* webpackChunkName: \"highlight/[request]\" */\n 'highlight.js/lib/languages/' + languages[i]);\n\n case 7:\n lang = _context.sent;\n modules[languages[i]] = lang.default;\n _context.next = 14;\n break;\n\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](4);\n return _context.abrupt(\"return\", undefined);\n\n case 14:\n i++;\n _context.next = 3;\n break;\n\n case 17:\n if (!(Object.keys(modules).length === 0 && modules.constructor === Object)) {\n _context.next = 19;\n break;\n }\n\n return _context.abrupt(\"return\", undefined);\n\n case 19:\n return _context.abrupt(\"return\", {\n languages: modules\n });\n\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[4, 11]]);\n }));\n\n return function loadSyntaxHighlight(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar createEditor = function createEditor(_ref2) {\n var content = _ref2.content,\n onInit = _ref2.onInit,\n onUpdate = _ref2.onUpdate,\n extensions = _ref2.extensions,\n enableRichEditing = _ref2.enableRichEditing,\n languages = _ref2.languages;\n var richEditingExtensions = [];\n\n if (enableRichEditing) {\n richEditingExtensions = [new Heading(), new Code(), new Strong(), new Italic(), new Strike(), new HardBreak(), new HorizontalRule(), new BulletList(), new OrderedList(), new Blockquote(), new CodeBlock(), new ListItem(), new Link(), new Image(), new Placeholder({\n emptyNodeClass: 'is-empty',\n emptyNodeText: 'Add notes, lists or links …',\n showOnlyWhenEditable: true\n })];\n } else {\n richEditingExtensions = [new PlainTextDocument(), new Text(), new CodeBlockHighlight(_objectSpread({}, languages))];\n }\n\n extensions = extensions || [];\n return new Editor({\n content: content,\n onInit: onInit,\n onUpdate: onUpdate,\n extensions: [].concat(_toConsumableArray(richEditingExtensions), [new History()]).concat(extensions),\n useBuiltInExtensions: enableRichEditing\n });\n};\n\nvar markdownit = MarkdownIt('commonmark', {\n html: false,\n breaks: false\n}).enable('strikethrough').use(taskLists, {\n enable: true,\n labelAfter: true\n});\n\nvar SerializeException = function SerializeException(message) {\n this.message = message;\n};\n\nvar createMarkdownSerializer = function createMarkdownSerializer(_nodes, _marks) {\n var nodes = Object.entries(_nodes).filter(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n node = _ref4[1];\n\n return node.toMarkdown;\n }).reduce(function (items, _ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n name = _ref6[0],\n toMarkdown = _ref6[1].toMarkdown;\n\n return _objectSpread({}, items, _defineProperty({}, name, toMarkdown));\n }, {});\n var marks = Object.entries(_marks).filter(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n node = _ref8[1];\n\n return node.toMarkdown;\n }).reduce(function (items, _ref9) {\n var _ref10 = _slicedToArray(_ref9, 2),\n name = _ref10[0],\n toMarkdown = _ref10[1].toMarkdown;\n\n return _objectSpread({}, items, _defineProperty({}, name, toMarkdown));\n }, {});\n return {\n serializer: new MarkdownSerializer(_objectSpread({}, defaultMarkdownSerializer.nodes, {}, nodes), _objectSpread({}, defaultMarkdownSerializer.marks, {}, marks)),\n serialize: function serialize(content, options) {\n return this.serializer.serialize(content, _objectSpread({}, options, {\n tightLists: true\n })).split('\\\\[').join('[').split('\\\\]').join(']');\n }\n };\n};\n\nvar serializePlainText = function serializePlainText(tiptap) {\n var doc = tiptap.getJSON();\n\n if (doc.content.length !== 1 || typeof doc.content[0].content === 'undefined' || doc.content[0].content.length !== 1) {\n if (doc.content[0].type === 'code_block' && typeof doc.content[0].content === 'undefined') {\n return '';\n }\n\n throw new SerializeException('Failed to serialize document to plain text');\n }\n\n var codeBlock = doc.content[0].content[0];\n\n if (codeBlock.type !== 'text') {\n throw new SerializeException('Failed to serialize document to plain text');\n }\n\n return codeBlock.text;\n};\n\nexport default createEditor;\nexport { markdownit, createEditor, createMarkdownSerializer, serializePlainText, loadSyntaxHighlight };","import { render, staticRenderFns } from \"./CollisionResolveDialog.vue?vue&type=template&id=a0d25866&scoped=true&\"\nimport script from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CollisionResolveDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CollisionResolveDialog.vue?vue&type=style&index=0&id=a0d25866&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0d25866\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/user/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('a0d25866')) {\n api.createRecord('a0d25866', component.options)\n } else {\n api.reload('a0d25866', component.options)\n }\n module.hot.accept(\"./CollisionResolveDialog.vue?vue&type=template&id=a0d25866&scoped=true&\", function () {\n api.rerender('a0d25866', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/text/src/components/CollisionResolveDialog.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=a0d25866&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=a0d25866&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=template&id=a0d25866&scoped=true&\"","import { render, staticRenderFns } from \"./EditorWrapper.vue?vue&type=template&id=782c4aaa&scoped=true&\"\nimport script from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorWrapper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorWrapper.vue?vue&type=style&index=0&id=782c4aaa&scoped=true&lang=scss&\"\nimport style1 from \"./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"782c4aaa\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/user/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('782c4aaa')) {\n api.createRecord('782c4aaa', component.options)\n } else {\n api.reload('782c4aaa', component.options)\n }\n module.hot.accept(\"./EditorWrapper.vue?vue&type=template&id=782c4aaa&scoped=true&\", function () {\n api.rerender('782c4aaa', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/text/src/components/EditorWrapper.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=782c4aaa&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=782c4aaa&scoped=true&lang=scss&\"","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=template&id=782c4aaa&scoped=true&\"","import { render, staticRenderFns } from \"./ReadOnlyEditor.vue?vue&type=template&id=a279db0c&\"\nimport script from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./ReadOnlyEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/user/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('a279db0c')) {\n api.createRecord('a279db0c', component.options)\n } else {\n api.reload('a279db0c', component.options)\n }\n module.hot.accept(\"./ReadOnlyEditor.vue?vue&type=template&id=a279db0c&\", function () {\n api.rerender('a279db0c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/text/src/components/ReadOnlyEditor.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=template&id=a279db0c&\"","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Extension } from 'tiptap';\n\nvar Keymap = /*#__PURE__*/function (_Extension) {\n _inherits(Keymap, _Extension);\n\n function Keymap() {\n _classCallCheck(this, Keymap);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Keymap).apply(this, arguments));\n }\n\n _createClass(Keymap, [{\n key: \"keys\",\n value: function keys(_ref) {\n var schema = _ref.schema;\n return this.options;\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'save';\n }\n }]);\n\n return Keymap;\n}(Extension);\n\nexport { Keymap as default };","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Keymap from './Keymap';\nexport { Keymap };","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Callback that should be executed after the document is ready\n * @param callback\n */\nimport { generateUrl } from '@nextcloud/router';\n\nvar documentReady = function documentReady(callback) {\n var fn = function fn() {\n return setTimeout(callback, 0);\n };\n\n if (document.attachEvent ? document.readyState === 'complete' : document.readyState !== 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n};\n\nvar _baseUrl = generateUrl('/apps/text');\n\nvar endpointUrl = function endpointUrl(endpoint) {\n var isPublic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isPublic) {\n return \"\".concat(_baseUrl, \"/public/\").concat(endpoint);\n }\n\n return \"\".concat(_baseUrl, \"/\").concat(endpoint);\n};\n\nvar randomGuestNames = ['Artichoke', 'Arugula', 'Asparagus', 'Avocado', 'Bamboo Shoot', 'Bean Sprout', 'Bean', 'Beet', 'Belgian Endive', 'Bell Pepper', 'Bitter Melon', 'Bitter Gourd', 'Bok Choy', 'Broccoli', 'Brussels Sprout', 'Burdock Root', 'Cabbage', 'Calabash', 'Caper', 'Carrot', 'Cassava', 'Cauliflower', 'Celery', 'Celery Root', 'Celtuce', 'Chayote', 'Chinese Broccoli', 'Corn', 'Baby Corn', 'Cucumber', 'English Cucumber', 'Gherkin', 'Pickling Cucumber', 'Daikon Radish', 'Edamame', 'Eggplant', 'Elephant Garlic', 'Endive', 'Curly', 'Escarole', 'Fennel', 'Fiddlehead', 'Galangal', 'Garlic', 'Ginger', 'Grape Leave', 'Green Bean', 'Wax Bean', 'Green', 'Amaranth Leave', 'Beet Green', 'Collard Green', 'Dandelion Green', 'Kale', 'Kohlrabi Green', 'Mustard Green', 'Rapini', 'Spinach', 'Swiss Chard', 'Turnip Green', 'Hearts of Palm', 'Horseradish', 'Jerusalem Artichoke', 'Jícama', 'Kale', 'Curly', 'Lacinato', 'Ornamental', 'Kohlrabi', 'Leeks', 'Lemongrass', 'Lettuce', 'Butterhead', 'Iceberg', 'Leaf', 'Romaine', 'Lotus Root', 'Lotus Seed', 'Mushroom', 'Napa Cabbage', 'Nopales', 'Okra', 'Olive', 'Onion', 'Green Onion', 'Parsley', 'Parsley Root', 'Parsnip', 'Pepper', 'Plantain', 'Potato', 'Pumpkin', 'Purslane', 'Radicchio', 'Radish', 'Rutabaga', 'Shallots', 'Spinach', 'Squash', 'Sweet Potato', 'Swiss Chard', 'Taro', 'Tomatillo', 'Tomato', 'Turnip', 'Water Chestnut', 'Water Spinach', 'Watercress', 'Winter Melon', 'Yams', 'Zucchini'];\n\nvar getRandomGuestName = function getRandomGuestName() {\n return randomGuestNames[Math.floor(Math.random() * randomGuestNames.length)];\n};\n\nexport { documentReady, endpointUrl, getRandomGuestName };","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar extensionHighlight = {\n py: 'python',\n gyp: 'python',\n wsgi: 'python',\n htm: 'html',\n xhtml: 'html',\n erl: 'erlang',\n jsp: 'java',\n pl: 'perl',\n rss: 'xml',\n atom: 'xml',\n xsl: 'xml',\n plist: 'xml',\n rb: 'ruby',\n builder: 'ruby',\n gemspec: 'ruby',\n podspec: 'ruby',\n thor: 'ruby',\n diff: 'patch',\n hs: 'haskell',\n icl: 'haskell',\n php3: 'php',\n php4: 'php',\n php5: 'php',\n php6: 'php',\n sh: 'bash',\n zsh: 'bash',\n st: 'smalltalk',\n as: 'actionscript',\n apacheconf: 'apache',\n osacript: 'applescript',\n b: 'brainfuck',\n bf: 'brainfuck',\n clj: 'clojure',\n 'cmake.in': 'cmake',\n coffee: 'coffeescript',\n cson: 'coffescript',\n iced: 'coffescript',\n c: 'cpp',\n 'c++': 'cpp',\n 'h++': 'cpp',\n hh: 'cpp',\n jinja: 'django',\n bat: 'dos',\n cmd: 'dos',\n fs: 'fsharp',\n hbs: 'handlebars',\n 'html.hbs': 'handlebars',\n 'html.handlebars': 'handlebars',\n 'sublime_metrics': 'json',\n 'sublime_session': 'json',\n 'sublime-keymap': 'json',\n 'sublime-mousemap': 'json',\n 'sublime-project': 'json',\n 'sublime-settings': 'json',\n 'sublime-workspace': 'json',\n mk: 'makefile',\n mak: 'makefile',\n md: 'markdown',\n mkdown: 'markdown',\n mkd: 'markdown',\n nginxconf: 'nginx',\n m: 'objectivec',\n mm: 'objectivec',\n ml: 'ocaml',\n rs: 'rust',\n sci: 'scilab',\n vb: 'vbnet',\n vbs: 'vbscript'\n};\nexport default extensionHighlight;\nexport { extensionHighlight };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Bold, Italic as TipTapItalic, Strike as TipTapStrike } from 'tiptap-extensions';\n/**\n * This file maps prosemirror mark names to tiptap classes,\n * so we can reuse the prosemirror-markdown default parser for now\n */\n\nvar Strong = /*#__PURE__*/function (_Bold) {\n _inherits(Strong, _Bold);\n\n function Strong() {\n _classCallCheck(this, Strong);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Strong).apply(this, arguments));\n }\n\n _createClass(Strong, [{\n key: \"name\",\n get: function get() {\n return 'strong';\n }\n }]);\n\n return Strong;\n}(Bold);\n\nvar Italic = /*#__PURE__*/function (_TipTapItalic) {\n _inherits(Italic, _TipTapItalic);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Italic).apply(this, arguments));\n }\n\n _createClass(Italic, [{\n key: \"name\",\n get: function get() {\n return 'em';\n }\n }]);\n\n return Italic;\n}(TipTapItalic);\n\nvar Strike = /*#__PURE__*/function (_TipTapStrike) {\n _inherits(Strike, _TipTapStrike);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Strike).apply(this, arguments));\n }\n\n _createClass(Strike, [{\n key: \"schema\",\n get: function get() {\n return {\n parseDOM: [{\n tag: 's'\n }, {\n tag: 'del'\n }, {\n tag: 'strike'\n }, {\n style: 'text-decoration',\n getAttrs: function getAttrs(value) {\n return value === 'line-through';\n }\n }],\n toDOM: function toDOM() {\n return ['s', 0];\n },\n toMarkdown: {\n open: '~~',\n close: '~~',\n mixable: true,\n expelEnclosingWhitespace: true\n }\n };\n }\n }]);\n\n return Strike;\n}(TipTapStrike);\n/** Strike is currently unsupported by prosemirror-markdown */\n\n\nexport { Strong, Italic, Strike };","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport default {\n data: function data() {\n return {\n isMobile: this._isMobile()\n };\n },\n beforeMount: function beforeMount() {\n window.addEventListener('resize', this._onResize);\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('resize', this._onResize);\n },\n methods: {\n _onResize: function _onResize() {\n // Update mobile mode\n this.isMobile = this._isMobile();\n },\n _isMobile: function _isMobile() {\n // check if content width is under 768px\n return document.documentElement.clientWidth < 768;\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction 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; }\n\nfunction _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; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Image as TiptapImage } from 'tiptap-extensions';\nimport ImageView from './ImageView';\n\nvar Image = /*#__PURE__*/function (_TiptapImage) {\n _inherits(Image, _TiptapImage);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Image).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: \"view\",\n get: function get() {\n return ImageView;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return _objectSpread({}, _get(_getPrototypeOf(Image.prototype), \"schema\", this), {\n selectable: false\n });\n }\n }]);\n\n return Image;\n}(TiptapImage);\n\nexport { Image as default };","import { render, staticRenderFns } from \"./ImageView.vue?vue&type=template&id=38673bf4&scoped=true&\"\nimport script from \"./ImageView.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageView.vue?vue&type=style&index=0&id=38673bf4&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38673bf4\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/user/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('38673bf4')) {\n api.createRecord('38673bf4', component.options)\n } else {\n api.reload('38673bf4', component.options)\n }\n module.hot.accept(\"./ImageView.vue?vue&type=template&id=38673bf4&scoped=true&\", function () {\n api.rerender('38673bf4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/text/src/nodes/ImageView.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=38673bf4&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/vue-style-loader/index.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=38673bf4&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=template&id=38673bf4&scoped=true&\"","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { ListItem as TiptapListItem } from 'tiptap-extensions';\nimport { Plugin } from 'tiptap';\nimport { toggleList } from 'tiptap-commands';\nimport { findParentNode } from 'prosemirror-utils';\nvar TYPES = {\n BULLET: 0,\n CHECKBOX: 1\n};\n\nvar getParentList = function getParentList(schema, selection) {\n return findParentNode(function (node) {\n return node.type === schema.nodes.list_item;\n })(selection);\n};\n\nvar ListItem = /*#__PURE__*/function (_TiptapListItem) {\n _inherits(ListItem, _TiptapListItem);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ListItem).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: \"commands\",\n value: function commands(_ref) {\n var type = _ref.type,\n schema = _ref.schema;\n return {\n 'bullet_list_item': function bullet_list_item() {\n return function (state, dispatch, view) {\n return toggleList(schema.nodes.bullet_list, type)(state, dispatch, view);\n };\n },\n 'todo_item': function todo_item() {\n return function (state, dispatch, view) {\n var schema = state.schema;\n var selection = state.selection;\n var $from = selection.$from;\n var $to = selection.$to;\n var range = $from.blockRange($to);\n var tr = state.tr;\n var parentList = getParentList(schema, selection);\n\n if (typeof parentList === 'undefined') {\n toggleList(schema.nodes.bullet_list, type)(state, function (_transaction) {\n tr = _transaction;\n }, view);\n parentList = getParentList(schema, tr.selection);\n }\n\n if (!range || typeof parentList === 'undefined') {\n return false;\n }\n\n tr.setNodeMarkup(parentList.pos, schema.nodes.list_item, {\n type: parentList.node.attrs.type === TYPES.CHECKBOX ? TYPES.BULLET : TYPES.CHECKBOX\n });\n tr.scrollIntoView();\n\n if (dispatch) {\n dispatch(tr);\n }\n };\n }\n };\n }\n }, {\n key: \"defaultOptions\",\n get: function get() {\n return {\n nested: true\n };\n }\n }, {\n key: \"schema\",\n get: function get() {\n return {\n attrs: {\n done: {\n default: false\n },\n type: {\n default: TYPES.BULLET\n }\n },\n draggable: true,\n content: 'paragraph block*',\n toDOM: function toDOM(node) {\n if (node.attrs.type === TYPES.BULLET) {\n return ['li', 0];\n }\n\n var checkboxAttributes = {\n type: 'checkbox',\n class: 'checkbox'\n };\n\n if (node.attrs.done) {\n checkboxAttributes.checked = true;\n }\n\n return ['li', ['input', checkboxAttributes], ['label', {\n class: 'checkbox-label'\n }, ['div', {\n class: 'checkbox-wrapper'\n }, 0]]];\n },\n parseDOM: [{\n priority: 100,\n tag: 'li',\n getAttrs: function getAttrs(el) {\n var checkbox = el.querySelector('input[type=checkbox]');\n return {\n done: checkbox && checkbox.checked,\n type: checkbox ? TYPES.CHECKBOX : TYPES.BULLET\n };\n }\n }],\n toMarkdown: function toMarkdown(state, node) {\n if (node.attrs.type === TYPES.CHECKBOX) {\n state.write(\"[\".concat(node.attrs.done ? 'x' : ' ', \"] \"));\n }\n\n state.renderContent(node);\n }\n };\n }\n }, {\n key: \"plugins\",\n get: function get() {\n return [new Plugin({\n props: {\n handleClick: function handleClick(view, pos, event) {\n var state = view.state;\n var schema = state.schema;\n var selection = state.selection;\n var $from = selection.$from;\n var $to = selection.$to;\n var range = $from.blockRange($to);\n\n if (!range) {\n return false;\n }\n\n var parentList = findParentNode(function (node) {\n return node.type === schema.nodes.list_item;\n })(selection);\n var isLabel = event.target.tagName.toLowerCase() === 'label';\n\n if (typeof parentList === 'undefined' || parentList.node.attrs.type !== TYPES.CHECKBOX || !isLabel) {\n return;\n }\n\n var tr = state.tr;\n tr.setNodeMarkup(parentList.pos, schema.nodes.list_item, {\n done: !parentList.node.attrs.done,\n type: TYPES.CHECKBOX\n });\n view.dispatch(tr);\n }\n }\n })];\n }\n }]);\n\n return ListItem;\n}(TiptapListItem);\n\nexport { ListItem as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node } from 'tiptap';\nimport { insertText } from 'tiptap-commands';\n\nvar PlainTextDocument = /*#__PURE__*/function (_Node) {\n _inherits(PlainTextDocument, _Node);\n\n function PlainTextDocument() {\n _classCallCheck(this, PlainTextDocument);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PlainTextDocument).apply(this, arguments));\n }\n\n _createClass(PlainTextDocument, [{\n key: \"keys\",\n value: function keys() {\n var _this = this;\n\n return {\n Tab: function Tab(state) {\n insertText('\\t')(state, _this.editor.view.dispatch, _this.editor.view);\n return true;\n }\n };\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'doc';\n }\n }, {\n key: \"schema\",\n get: function get() {\n return {\n content: 'block'\n };\n }\n }]);\n\n return PlainTextDocument;\n}(Node);\n\nexport { PlainTextDocument as default };","/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Image from './Image';\nimport PlainTextDocument from './PlainTextDocument';\nimport ListItem from './ListItem';\nexport { Image, PlainTextDocument, ListItem };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios';\nimport { endpointUrl } from '../helpers';\nimport { ERROR_TYPE } from './SyncService';\nimport { sendableSteps } from 'prosemirror-collab';\n/**\n * Minimum inverval to refetch the document changes\n * @type {number}\n */\n\nvar FETCH_INTERVAL = 300;\n/**\n * Maximum interval between refetches of document state if multiple users have joined\n * @type {number}\n */\n\nvar FETCH_INTERVAL_MAX = 5000;\n/**\n * Interval to check for changes when there is only one user joined\n * @type {number}\n */\n\nvar FETCH_INTERVAL_SINGLE_EDITOR = 5000;\nvar MIN_PUSH_RETRY = 500;\nvar MAX_PUSH_RETRY = 10000;\n/* Timeout after that a PUSH_FAILURE error is emitted */\n\nvar WARNING_PUSH_RETRY = 5000;\n/* Maximum number of retries for fetching before emitting a connection error */\n\nvar MAX_RETRY_FETCH_COUNT = 5;\n/* Timeout for sessions to be marked as disconnected */\n\nvar COLLABORATOR_DISCONNECT_TIME = 20;\n\nvar PollingBackend = /*#__PURE__*/function () {\n function PollingBackend(authority) {\n _classCallCheck(this, PollingBackend);\n\n /** @type SyncService */\n this._authority = authority;\n this.fetchInterval = FETCH_INTERVAL;\n this.retryTime = MIN_PUSH_RETRY;\n this.lock = false;\n this.fetchRetryCounter = 0;\n }\n\n _createClass(PollingBackend, [{\n key: \"connect\",\n value: function connect() {\n this.fetcher = setInterval(this._fetchSteps.bind(this), 0);\n }\n }, {\n key: \"_isPublic\",\n value: function _isPublic() {\n return !!this._authority.options.shareToken;\n }\n }, {\n key: \"forceSave\",\n value: function forceSave() {\n this._forcedSave = true;\n this.fetchSteps();\n }\n }, {\n key: \"save\",\n value: function save() {\n this._manualSave = true;\n this.fetchSteps();\n }\n }, {\n key: \"fetchSteps\",\n value: function fetchSteps() {\n this._fetchSteps();\n }\n /**\n * This method is only called though the timer\n */\n\n }, {\n key: \"_fetchSteps\",\n value: function _fetchSteps() {\n var _this = this;\n\n if (this.lock || !this.fetcher) {\n return;\n }\n\n this.lock = true;\n var autosaveContent;\n\n if (this._forcedSave || this._manualSave || !sendableSteps(this._authority.state) && this._authority._getVersion() !== this._authority.document.lastSavedVersion) {\n autosaveContent = this._authority._getContent();\n }\n\n axios.post(endpointUrl('session/sync', this._isPublic()), {\n documentId: this._authority.document.id,\n sessionId: this._authority.session.id,\n sessionToken: this._authority.session.token,\n version: this._authority._getVersion(),\n autosaveContent: autosaveContent,\n force: !!this._forcedSave,\n manualSave: !!this._manualSave,\n token: this._authority.options.shareToken,\n filePath: this._authority.options.filePath\n }).then(function (response) {\n _this.fetchRetryCounter = 0;\n\n if (_this._authority.document.lastSavedVersion < response.data.document.lastSavedVersion) {\n console.debug('Saved document', response.data.document);\n\n _this._authority.emit('save', {\n document: response.data.document,\n sessions: response.data.sessions\n });\n }\n\n _this._authority.emit('change', {\n document: response.data.document,\n sessions: response.data.sessions\n });\n\n _this._authority.document = response.data.document;\n _this._authority.sessions = response.data.sessions;\n\n if (response.data.steps.length === 0) {\n _this.lock = false;\n\n if (response.data.sessions.filter(function (session) {\n return session.lastContact > Date.now() / 1000 - COLLABORATOR_DISCONNECT_TIME;\n }).length < 2) {\n _this.maximumRefetchTimer();\n } else {\n _this.increaseRefetchTimer();\n }\n\n _this._authority.emit('stateChange', {\n dirty: false\n });\n\n _this._authority.emit('stateChange', {\n initialLoading: true\n });\n\n return;\n }\n\n _this._authority._receiveSteps(response.data);\n\n _this.lock = false;\n _this._forcedSave = false;\n\n _this.resetRefetchTimer();\n }).catch(function (e) {\n _this.lock = false;\n\n if (!e.response || e.code === 'ECONNABORTED') {\n if (_this.fetchRetryCounter++ >= MAX_RETRY_FETCH_COUNT) {\n console.error('[PollingBackend:fetchSteps] Network error when fetching steps, emitting CONNECTION_FAILED');\n\n _this._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {});\n } else {\n console.error(\"[PollingBackend:fetchSteps] Network error when fetching steps, retry \".concat(_this.fetchRetryCounter));\n }\n } else if (e.response.status === 409 && e.response.data.document.currentVersion === _this._authority.document.currentVersion) {\n // Only emit conflict event if we have synced until the latest version\n console.error('Conflict during file save, please resolve');\n\n _this._authority.emit('error', ERROR_TYPE.SAVE_COLLISSION, {\n outsideChange: e.response.data.outsideChange\n });\n } else if (e.response.status === 403) {\n _this._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {});\n } else if (e.response.status === 404) {\n _this._authority.emit('error', ERROR_TYPE.SOURCE_NOT_FOUND, {});\n } else if (e.response.status === 503) {\n _this.increaseRefetchTimer();\n\n _this._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {\n retry: true\n });\n\n console.error('Failed to fetch steps due to unavailable service', e);\n } else {\n _this.increaseRefetchTimer();\n\n _this._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {\n retry: false\n });\n\n console.error('Failed to fetch steps due to other reason', e);\n }\n });\n this._manualSave = false;\n this._forcedSave = false;\n }\n }, {\n key: \"sendSteps\",\n value: function sendSteps(_sendable) {\n var _this2 = this;\n\n this._authority.emit('stateChange', {\n dirty: true\n });\n\n if (this.lock) {\n setTimeout(function () {\n _this2._authority.sendSteps();\n }, 100);\n return;\n }\n\n this.lock = true;\n var sendable = typeof _sendable === 'function' ? _sendable() : _sendable;\n var steps = sendable.steps;\n axios.post(endpointUrl('session/push', !!this._authority.options.shareToken), {\n documentId: this._authority.document.id,\n sessionId: this._authority.session.id,\n sessionToken: this._authority.session.token,\n steps: steps.map(function (s) {\n return s.toJSON ? s.toJSON() : s;\n }) || [],\n version: sendable.version,\n token: this._authority.options.shareToken,\n filePath: this._authority.options.filePath\n }).then(function (response) {\n _this2.carefulRetryReset();\n\n _this2.lock = false;\n\n _this2.fetchSteps();\n }).catch(function (e) {\n console.error('failed to apply steps due to collission, retrying');\n _this2.lock = false;\n\n if (!e.response || e.code === 'ECONNABORTED') {\n _this2._authority.emit('error', ERROR_TYPE.CONNECTION_FAILED, {});\n\n return;\n } else if (e.response.status === 403 && e.response.data.document.currentVersion === _this2._authority.document.currentVersion) {\n // Only emit conflict event if we have synced until the latest version\n _this2._authority.emit('error', ERROR_TYPE.PUSH_FAILURE, {});\n\n OC.Notification.showTemporary('Changes could not be sent yet');\n }\n\n _this2.fetchSteps();\n\n _this2.carefulRetry();\n });\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n clearInterval(this.fetcher);\n this.fetcher = 0;\n }\n }, {\n key: \"resetRefetchTimer\",\n value: function resetRefetchTimer() {\n if (this.fetcher === 0) {\n return;\n }\n\n this.fetchInterval = FETCH_INTERVAL;\n clearInterval(this.fetcher);\n this.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval);\n }\n }, {\n key: \"increaseRefetchTimer\",\n value: function increaseRefetchTimer() {\n if (this.fetcher === 0) {\n return;\n }\n\n this.fetchInterval = Math.min(this.fetchInterval * 2, FETCH_INTERVAL_MAX);\n clearInterval(this.fetcher);\n this.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval);\n }\n }, {\n key: \"maximumRefetchTimer\",\n value: function maximumRefetchTimer() {\n if (this.fetcher === 0) {\n return;\n }\n\n this.fetchInterval = FETCH_INTERVAL_SINGLE_EDITOR;\n clearInterval(this.fetcher);\n this.fetcher = setInterval(this._fetchSteps.bind(this), this.fetchInterval);\n }\n }, {\n key: \"carefulRetry\",\n value: function carefulRetry() {\n var newRetry = this.retryTime ? Math.min(this.retryTime * 2, MAX_PUSH_RETRY) : MIN_PUSH_RETRY;\n\n if (newRetry > WARNING_PUSH_RETRY && this.retryTime < WARNING_PUSH_RETRY) {\n OC.Notification.showTemporary('Changes could not be sent yet');\n\n this._authority.emit('error', ERROR_TYPE.PUSH_FAILURE, {});\n }\n\n this.retryTime = newRetry;\n }\n }, {\n key: \"carefulRetryReset\",\n value: function carefulRetryReset() {\n this.retryTime = MIN_PUSH_RETRY;\n }\n }]);\n\n return PollingBackend;\n}();\n\nexport default PollingBackend;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios';\nimport PollingBackend from './PollingBackend';\nimport { endpointUrl } from './../helpers';\nimport { getVersion, sendableSteps } from 'prosemirror-collab';\nvar defaultOptions = {\n shareToken: null,\n forceRecreate: false,\n serialize: function serialize(document) {\n return document;\n }\n};\nvar ERROR_TYPE = {\n /**\n * Failed to save collaborative document due to external change\n * collission needs to be resolved manually\n */\n SAVE_COLLISSION: 0,\n\n /**\n * Failed to push changes for MAX_REBASE_RETRY times\n */\n PUSH_FAILURE: 1,\n LOAD_ERROR: 2,\n CONNECTION_FAILED: 3,\n SOURCE_NOT_FOUND: 4\n};\n\nvar SyncService = /*#__PURE__*/function () {\n function SyncService(options) {\n _classCallCheck(this, SyncService);\n\n this.eventHandlers = {\n /* Document state */\n opened: [],\n loaded: [],\n\n /* All initial steps fetched */\n fetched: [],\n\n /* received new steps */\n sync: [],\n\n /* state changed (dirty) */\n stateChange: [],\n\n /* error */\n error: [],\n\n /* Events for session and document meta data */\n change: [],\n\n /* Emitted after successful save */\n save: []\n };\n this.backend = new PollingBackend(this);\n this.options = Object.assign({}, defaultOptions, options);\n this.document = null;\n this.session = null;\n this.sessions = [];\n this.steps = [];\n this.stepClientIDs = [];\n return this;\n }\n\n _createClass(SyncService, [{\n key: \"open\",\n value: function () {\n var _open = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(_ref) {\n var _this2 = this;\n\n var fileId, filePath, initialSession, connectionData, response;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n fileId = _ref.fileId, filePath = _ref.filePath, initialSession = _ref.initialSession;\n connectionData = null;\n\n if (!(typeof initialSession === 'undefined')) {\n _context.next = 16;\n break;\n }\n\n _context.prev = 3;\n _context.next = 6;\n return this._openDocument({\n fileId: fileId,\n filePath: filePath\n });\n\n case 6:\n response = _context.sent;\n connectionData = response.data;\n _context.next = 14;\n break;\n\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](3);\n\n if (!_context.t0.response || _context.t0.code === 'ECONNABORTED') {\n this.emit('error', ERROR_TYPE.CONNECTION_FAILED, {});\n } else {\n this.emit('error', ERROR_TYPE.LOAD_ERROR, _context.t0.response.status);\n }\n\n throw _context.t0;\n\n case 14:\n _context.next = 17;\n break;\n\n case 16:\n connectionData = initialSession;\n\n case 17:\n this.document = connectionData.document;\n this.document.readOnly = connectionData.readOnly;\n this.session = connectionData.session;\n this.emit('opened', {\n document: this.document,\n session: this.session\n });\n return _context.abrupt(\"return\", this._fetchDocument().then(function (_ref2) {\n var data = _ref2.data;\n\n _this2.emit('loaded', {\n document: _this2.document,\n session: _this2.session,\n documentSource: '' + data\n });\n }));\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[3, 10]]);\n }));\n\n function open(_x) {\n return _open.apply(this, arguments);\n }\n\n return open;\n }()\n }, {\n key: \"startSync\",\n value: function startSync() {\n this.backend.connect();\n }\n }, {\n key: \"_openDocument\",\n value: function _openDocument(_ref3) {\n var fileId = _ref3.fileId,\n filePath = _ref3.filePath;\n return axios.get(endpointUrl('session/create', !!this.options.shareToken), {\n params: {\n fileId: fileId,\n filePath: filePath,\n token: this.options.shareToken,\n guestName: this.options.guestName,\n forceRecreate: this.options.forceRecreate\n }\n });\n }\n }, {\n key: \"_fetchDocument\",\n value: function _fetchDocument() {\n return axios.get(endpointUrl('session/fetch', !!this.options.shareToken), {\n transformResponse: [function (data) {\n return data;\n }],\n params: {\n documentId: this.document.id,\n sessionId: this.session.id,\n sessionToken: this.session.token,\n token: this.options.shareToken\n }\n });\n }\n }, {\n key: \"updateSession\",\n value: function updateSession(guestName) {\n var _this3 = this;\n\n if (!this.isPublic()) {\n return;\n }\n\n return axios.post(endpointUrl('session', !!this.options.shareToken), {\n documentId: this.document.id,\n sessionId: this.session.id,\n sessionToken: this.session.token,\n token: this.options.shareToken,\n guestName: guestName\n }).then(function (_ref4) {\n var data = _ref4.data;\n _this3.session = data;\n return data;\n }).catch(function (error) {\n console.error('Failed to update the session', error);\n return Promise.reject(error);\n });\n }\n }, {\n key: \"sendSteps\",\n value: function sendSteps(_sendable) {\n var sendable = _sendable || sendableSteps(this.state);\n\n if (!sendable) {\n return;\n }\n\n return this.backend.sendSteps(sendable);\n }\n }, {\n key: \"stepsSince\",\n value: function stepsSince(version) {\n return {\n steps: this.steps.slice(version),\n clientIDs: this.stepClientIDs.slice(version)\n };\n }\n }, {\n key: \"_receiveSteps\",\n value: function _receiveSteps(_ref5) {\n var _this4 = this;\n\n var steps = _ref5.steps,\n document = _ref5.document;\n var newSteps = [];\n\n var _loop = function _loop(i) {\n var singleSteps = steps[i].data;\n\n if (!Array.isArray(singleSteps)) {\n console.error('Invalid step data, skipping step', steps[i]); // TODO: recover\n\n return \"continue\";\n }\n\n singleSteps.forEach(function (step) {\n _this4.steps.push(step);\n\n newSteps.push({\n step: step,\n clientID: steps[i].sessionId\n });\n });\n };\n\n for (var i = 0; i < steps.length; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n this.emit('sync', {\n steps: newSteps,\n document: document\n });\n console.debug('receivedSteps', 'newVersion', this._getVersion());\n }\n }, {\n key: \"_getVersion\",\n value: function _getVersion() {\n if (this.state) {\n return getVersion(this.state);\n }\n\n return 0;\n }\n }, {\n key: \"_getDocument\",\n value: function _getDocument() {\n if (this.state) {\n return this.state.doc;\n }\n }\n }, {\n key: \"_getContent\",\n value: function _getContent() {\n return this.options.serialize(this._getDocument());\n }\n }, {\n key: \"save\",\n value: function save() {\n if (this.backend.save) {\n this.backend.save();\n }\n }\n }, {\n key: \"forceSave\",\n value: function forceSave() {\n if (this.backend.forceSave) {\n this.backend.forceSave();\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this5 = this;\n\n var closed = false;\n return new Promise(function (resolve, reject) {\n _this5.on('save', function () {\n _this5._close().then(function () {\n closed = true;\n resolve();\n }).catch(function () {\n return resolve();\n });\n });\n\n setTimeout(function () {\n if (!closed) {\n _this5._close().then(function () {\n resolve();\n }).catch(function () {\n return resolve();\n });\n }\n }, 2000);\n\n _this5.save();\n });\n }\n }, {\n key: \"_close\",\n value: function _close() {\n if (this.document === null || this.session === null) {\n return Promise.resolve();\n }\n\n this.backend.disconnect();\n return axios.get(endpointUrl('session/close', !!this.options.shareToken), {\n params: {\n documentId: this.document.id,\n sessionId: this.session.id,\n sessionToken: this.session.token,\n token: this.options.shareToken\n }\n });\n }\n }, {\n key: \"on\",\n value: function on(event, callback, _this) {\n this.eventHandlers[event].push(callback.bind(_this));\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(event, data, additionalData) {\n if (typeof this.eventHandlers[event] !== 'undefined') {\n this.eventHandlers[event].forEach(function (callback) {\n callback(data, additionalData);\n });\n } else {\n console.error('Event not found', event);\n }\n }\n }, {\n key: \"isPublic\",\n value: function isPublic() {\n return !!this.options.shareToken;\n }\n }]);\n\n return SyncService;\n}();\n\nexport default SyncService;\nexport { SyncService, ERROR_TYPE };","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n name: 'CollisionResolveDialog'\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport Vue from 'vue';\nimport escapeHtml from 'escape-html';\nimport { SyncService, ERROR_TYPE } from './../services/SyncService';\nimport { endpointUrl, getRandomGuestName } from './../helpers';\nimport { extensionHighlight } from '../helpers/mappings';\nimport { createEditor, markdownit, createMarkdownSerializer, serializePlainText, loadSyntaxHighlight } from './../EditorFactory';\nimport { EditorContent } from 'tiptap';\nimport { Collaboration } from 'tiptap-extensions';\nimport { Keymap } from './../extensions';\nimport isMobile from './../mixins/isMobile';\nimport Tooltip from '@nextcloud/vue/dist/Directives/Tooltip';\nvar EDITOR_PUSH_DEBOUNCE = 200;\nexport default {\n name: 'EditorWrapper',\n components: {\n EditorContent: EditorContent,\n MenuBar: function MenuBar() {\n return import(\n /* webpackChunkName: \"editor-rich\" */\n './MenuBar');\n },\n MenuBubble: function MenuBubble() {\n return import(\n /* webpackChunkName: \"editor-rich\" */\n './MenuBubble');\n },\n ReadOnlyEditor: function ReadOnlyEditor() {\n return import(\n /* webpackChunkName: \"editor\" */\n './ReadOnlyEditor');\n },\n CollisionResolveDialog: function CollisionResolveDialog() {\n return import(\n /* webpackChunkName: \"editor\" */\n './CollisionResolveDialog');\n },\n GuestNameDialog: function GuestNameDialog() {\n return import(\n /* webpackChunkName: \"editor-guest\" */\n './GuestNameDialog');\n },\n SessionList: function SessionList() {\n return import(\n /* webpackChunkName: \"editor-collab\" */\n './SessionList');\n }\n },\n directives: {\n Tooltip: Tooltip\n },\n mixins: [isMobile],\n props: {\n initialSession: {\n type: Object,\n default: null\n },\n relativePath: {\n type: String,\n default: null\n },\n fileId: {\n type: Number,\n default: null\n },\n active: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: true\n },\n shareToken: {\n type: String,\n default: null\n },\n mime: {\n type: String,\n default: null\n },\n autohide: {\n type: Boolean,\n default: false\n },\n isDirectEditing: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n tiptap: null,\n\n /** @type SyncService */\n syncService: null,\n document: null,\n sessions: [],\n currentSession: null,\n filteredSessions: {},\n dirty: false,\n initialLoading: false,\n lastSavedString: '',\n syncError: null,\n hasConnectionIssue: false,\n readOnly: true,\n forceRecreate: false,\n saveStatusPolling: null\n };\n },\n computed: {\n lastSavedStatus: function lastSavedStatus() {\n var status = this.dirtyStateIndicator ? '*' : '';\n\n if (!this.isMobile) {\n status += this.lastSavedString;\n }\n\n return status;\n },\n lastSavedStatusClass: function lastSavedStatusClass() {\n return this.syncError && this.lastSavedString !== '' ? 'error' : '';\n },\n dirtyStateIndicator: function dirtyStateIndicator() {\n return this.hasUnpushedChanges || this.hasUnsavedChanges;\n },\n lastSavedStatusTooltip: function lastSavedStatusTooltip() {\n var message = t('text', 'Last saved {lastSaved}', {\n lastSaved: this.lastSavedString\n });\n\n if (this.hasSyncCollission) {\n message = t('text', 'The document has been changed outside of the editor. The changes cannot be applied.');\n }\n\n if (this.hasUnpushedChanges) {\n message += ' - ' + t('text', 'Unpushed changes');\n }\n\n if (this.hasUnsavedChanges) {\n message += ' - ' + t('text', 'Unsaved changes');\n }\n\n return {\n content: message,\n placement: 'bottom'\n };\n },\n hasSyncCollission: function hasSyncCollission() {\n return this.syncError && this.syncError.type === ERROR_TYPE.SAVE_COLLISSION;\n },\n hasUnpushedChanges: function hasUnpushedChanges() {\n return this.dirty;\n },\n hasUnsavedChanges: function hasUnsavedChanges() {\n return this.document && this.document.lastSavedVersion < this.document.currentVersion;\n },\n backendUrl: function backendUrl() {\n var _this = this;\n\n return function (endpoint) {\n return endpointUrl(endpoint, !!_this.shareToken);\n };\n },\n hasDocumentParameters: function hasDocumentParameters() {\n return this.fileId || this.shareToken || this.initialSession;\n },\n isPublic: function isPublic() {\n return this.isDirectEditing || document.getElementById('isPublic') && document.getElementById('isPublic').value === '1';\n },\n isRichEditor: function isRichEditor() {\n return this.mime === 'text/markdown';\n },\n fileExtension: function fileExtension() {\n return this.relativePath ? this.relativePath.split('/').pop().split('.').pop() : 'txt';\n }\n },\n watch: {\n lastSavedStatus: function lastSavedStatus() {\n this.$refs.menubar && this.$refs.menubar.redrawMenuBar();\n }\n },\n mounted: function mounted() {\n if (this.active && this.hasDocumentParameters) {\n this.initSession();\n }\n\n this.$parent.$emit('update:loaded', true);\n },\n created: function created() {\n var _this2 = this;\n\n this.saveStatusPolling = setInterval(function () {\n _this2.updateLastSavedStatus();\n }, 2000);\n document.addEventListener('keydown', this._keyUpHandler, true);\n },\n beforeDestroy: function beforeDestroy() {\n this.close();\n },\n methods: {\n close: function close() {\n var _this3 = this;\n\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n document.removeEventListener('keydown', _this3._keyUpHandler, true);\n clearInterval(_this3.saveStatusPolling);\n\n if (!(_this3.currentSession && _this3.syncService)) {\n _context.next = 12;\n break;\n }\n\n _context.prev = 3;\n _context.next = 6;\n return _this3.syncService.close();\n\n case 6:\n _this3.currentSession = null;\n _this3.syncService = null;\n _context.next = 12;\n break;\n\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](3);\n\n case 12:\n return _context.abrupt(\"return\", true);\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 10]]);\n }))();\n },\n updateLastSavedStatus: function updateLastSavedStatus() {\n if (this.document) {\n this.lastSavedString = window.moment(this.document.lastSavedVersionTime * 1000).fromNow();\n }\n },\n initSession: function initSession() {\n var _this4 = this;\n\n if (!this.hasDocumentParameters) {\n this.$parent.$emit('error', 'No valid file provided');\n return;\n }\n\n var guestName = localStorage.getItem('nick') ? localStorage.getItem('nick') : getRandomGuestName();\n this.syncService = new SyncService({\n shareToken: this.shareToken,\n filePath: this.relativePath,\n guestName: guestName,\n forceRecreate: this.forceRecreate,\n serialize: function serialize(document) {\n if (_this4.isRichEditor) {\n var markdown = createMarkdownSerializer(_this4.tiptap.nodes, _this4.tiptap.marks).serialize(document);\n console.debug('serialized document', {\n markdown: markdown\n });\n return markdown;\n }\n\n var file = serializePlainText(_this4.tiptap);\n console.debug('serialized document', {\n file: file\n });\n return file;\n }\n }).on('opened', function (_ref) {\n var document = _ref.document,\n session = _ref.session;\n _this4.currentSession = session;\n _this4.document = document;\n _this4.readOnly = document.readOnly;\n localStorage.setItem('nick', _this4.currentSession.guestName);\n }).on('change', function (_ref2) {\n var document = _ref2.document,\n sessions = _ref2.sessions;\n\n if (_this4.document.baseVersionEtag !== '' && document.baseVersionEtag !== _this4.document.baseVersionEtag) {\n _this4.resolveUseServerVersion();\n\n return;\n }\n\n _this4.updateSessions.bind(_this4)(sessions);\n\n _this4.document = document;\n _this4.syncError = null;\n\n _this4.tiptap.setOptions({\n editable: !_this4.readOnly\n });\n }).on('loaded', function (_ref3) {\n var documentSource = _ref3.documentSource;\n _this4.hasConnectionIssue = false;\n loadSyntaxHighlight(extensionHighlight[_this4.fileExtension] ? extensionHighlight[_this4.fileExtension] : _this4.fileExtension).then(function (languages) {\n _this4.tiptap = createEditor({\n content: _this4.isRichEditor ? markdownit.render(documentSource) : '<pre>' + escapeHtml(documentSource) + '</pre>',\n onInit: function onInit(_ref4) {\n var state = _ref4.state;\n _this4.syncService.state = state;\n\n _this4.syncService.startSync();\n },\n onUpdate: function onUpdate(_ref5) {\n var state = _ref5.state;\n _this4.syncService.state = state;\n },\n extensions: [new Collaboration({\n // the initial version we start with\n // version is an integer which is incremented with every change\n version: _this4.document.initialVersion,\n clientID: _this4.currentSession.id,\n // debounce changes so we can save some bandwidth\n debounce: EDITOR_PUSH_DEBOUNCE,\n onSendable: function onSendable(_ref6) {\n var sendable = _ref6.sendable;\n\n if (_this4.syncService) {\n _this4.syncService.sendSteps();\n }\n }\n }), new Keymap({\n 'Ctrl-s': function CtrlS() {\n _this4.syncService.save();\n\n return true;\n }\n })],\n enableRichEditing: _this4.isRichEditor,\n languages: languages\n });\n\n _this4.tiptap.on('focus', function () {\n _this4.$emit('focus');\n });\n\n _this4.tiptap.on('blur', function () {\n _this4.$emit('blur');\n });\n\n _this4.syncService.state = _this4.tiptap.state;\n });\n }).on('sync', function (_ref7) {\n var steps = _ref7.steps,\n document = _ref7.document;\n _this4.hasConnectionIssue = false;\n\n try {\n _this4.tiptap.extensions.options.collaboration.update({\n version: document.currentVersion,\n steps: steps\n });\n\n _this4.syncService.state = _this4.tiptap.state;\n\n _this4.updateLastSavedStatus();\n } catch (e) {\n console.error('Failed to update steps in collaboration plugin', e); // TODO: we should recreate the editing session when this happens\n }\n\n _this4.document = document;\n }).on('error', function (error, data) {\n _this4.tiptap.setOptions({\n editable: false\n });\n\n if (error === ERROR_TYPE.SAVE_COLLISSION && (!_this4.syncError || _this4.syncError.type !== ERROR_TYPE.SAVE_COLLISSION)) {\n _this4.initialLoading = true;\n _this4.syncError = {\n type: error,\n data: data\n };\n }\n\n if (error === ERROR_TYPE.CONNECTION_FAILED && !_this4.hasConnectionIssue) {\n _this4.hasConnectionIssue = true; // FIXME: ideally we just try to reconnect in the service, so we don't loose steps\n\n OC.Notification.showTemporary('Connection failed, reconnecting');\n\n if (data.retry !== false) {\n setTimeout(_this4.reconnect.bind(_this4), 5000);\n }\n }\n\n if (error === ERROR_TYPE.SOURCE_NOT_FOUND) {\n _this4.initialLoading = false;\n\n _this4.$emit('close');\n\n _this4.$emit('error');\n }\n }).on('stateChange', function (state) {\n if (state.initialLoading && !_this4.initialLoading) {\n _this4.initialLoading = true;\n\n if (_this4.autofocus) {\n _this4.tiptap.focus('start');\n }\n\n _this4.$emit('ready');\n }\n\n if (state.hasOwnProperty('dirty')) {\n _this4.dirty = state.dirty;\n }\n });\n\n if (this.initialSession === null) {\n this.syncService.open({\n fileId: this.fileId,\n filePath: this.relativePath\n }).catch(function (e) {\n _this4.hasConnectionIssue = true;\n });\n } else {\n this.syncService.open({\n initialSession: this.initialSession\n }).catch(function (e) {\n _this4.hasConnectionIssue = true;\n });\n }\n\n this.forceRecreate = false;\n },\n resolveUseThisVersion: function resolveUseThisVersion() {\n this.syncService.forceSave();\n this.tiptap.setOptions({\n editable: !this.readOnly\n });\n },\n resolveUseServerVersion: function resolveUseServerVersion() {\n this.forceRecreate = true;\n this.reconnect();\n },\n reconnect: function reconnect() {\n var _this5 = this;\n\n if (this.syncService) {\n this.syncService.close().then(function () {\n _this5.syncService = null;\n\n _this5.tiptap.destroy();\n\n _this5.initSession();\n }).catch(function (e) {// Ignore issues closing the session since those might happen due to network issues\n });\n } else {\n this.syncService = null;\n this.tiptap.destroy();\n this.initSession();\n }\n },\n updateSessions: function updateSessions(sessions) {\n this.sessions = sessions.sort(function (a, b) {\n return b.lastContact - a.lastContact;\n });\n var currentSessionIds = this.sessions.map(function (session) {\n return session.userId;\n });\n var currentGuestIds = this.sessions.map(function (session) {\n return session.guestId;\n });\n var removedSessions = Object.keys(this.filteredSessions).filter(function (sessionId) {\n return !currentSessionIds.includes(sessionId) && !currentGuestIds.includes(sessionId);\n });\n\n for (var index in removedSessions) {\n Vue.delete(this.filteredSessions, removedSessions[index]);\n }\n\n for (var _index in this.sessions) {\n var session = this.sessions[_index];\n var sessionKey = session.displayName ? session.userId : session.id;\n\n if (this.filteredSessions[sessionKey]) {\n // update timestamp if relevant\n if (this.filteredSessions[sessionKey].lastContact < session.lastContact) {\n Vue.set(this.filteredSessions[sessionKey], 'lastContact', session.lastContact);\n }\n } else {\n Vue.set(this.filteredSessions, sessionKey, session);\n }\n\n if (session.id === this.currentSession.id) {\n Vue.set(this.filteredSessions[sessionKey], 'isCurrent', true);\n }\n }\n },\n _keyUpHandler: function _keyUpHandler(event) {\n var key = event.key || event.keyCode;\n\n if ((event.ctrlKey || event.metaKey) && !event.shiftKey && (key === 'f' || key === 70)) {\n event.stopPropagation();\n return true;\n }\n }\n }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { EditorContent } from 'tiptap';\nimport escapeHtml from 'escape-html';\nimport { createEditor, markdownit } from '../EditorFactory';\nexport default {\n name: 'ReadOnlyEditor',\n components: {\n EditorContent: EditorContent\n },\n props: {\n content: {\n type: String,\n required: true\n },\n isRichEditor: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n editor: null\n };\n },\n mounted: function mounted() {\n this.editor = createEditor({\n content: this.isRichEditor ? markdownit.render(this.content) : '<pre>' + escapeHtml(this.content) + '</pre>',\n enableRichEditing: this.isRichEditor\n });\n this.editor.setOptions({\n editable: false\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.editor.destroy();\n }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar imageMimes = ['image/png', 'image/jpeg', 'image/gif', 'image/x-xbitmap', 'image/bmp', 'image/svg+xml'];\n\nvar getQueryVariable = function getQueryVariable(src, variable) {\n var query = src.split('#')[1];\n\n if (typeof query === 'undefined') {\n return;\n }\n\n var vars = query.split('&');\n\n if (typeof vars === 'undefined') {\n return;\n }\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) === variable) {\n return decodeURIComponent(pair[1]);\n }\n }\n};\n\nexport default {\n name: 'ImageView',\n props: ['node', 'updateAttrs', 'view'],\n // eslint-disable-line\n data: function data() {\n return {\n imageLoaded: false,\n loaded: false,\n failed: false\n };\n },\n computed: {\n mimeIcon: function mimeIcon() {\n var mime = getQueryVariable(this.src, 'mimetype');\n\n if (mime) {\n return {\n backgroundImage: 'url(' + window.OC.MimeType.getIconUrl(mime) + ')'\n };\n }\n\n return {};\n },\n isSupportedImage: function isSupportedImage() {\n var mime = getQueryVariable(this.src, 'mimetype');\n return typeof mime === 'undefined' || imageMimes.indexOf(mime) !== -1;\n },\n internalLinkOrImage: function internalLinkOrImage() {\n var fileId = getQueryVariable(this.src, 'fileId');\n\n if (fileId) {\n return OC.generateUrl('/f/' + fileId);\n }\n\n return this.src;\n },\n src: {\n get: function get() {\n return this.node.attrs.src;\n },\n set: function set(src) {\n this.updateAttrs({\n src: src\n });\n }\n },\n alt: {\n get: function get() {\n return this.node.attrs.alt ? this.node.attrs.alt : '';\n },\n set: function set(alt) {\n this.updateAttrs({\n alt: alt\n });\n }\n },\n t: function t() {\n return function (a, s) {\n return window.t(a, s);\n };\n }\n },\n beforeMount: function beforeMount() {\n var _this = this;\n\n if (!this.isSupportedImage) {\n // TODO check if hasPreview and render a file preview if available\n this.failed = true;\n this.imageLoaded = false;\n this.loaded = true;\n return;\n }\n\n var img = new Image();\n img.src = this.node.attrs.src;\n\n img.onload = function () {\n _this.imageLoaded = true;\n };\n\n img.onerror = function () {\n _this.failed = true;\n _this.imageLoaded = false;\n _this.loaded = true;\n };\n },\n methods: {\n updateAlt: function updateAlt() {\n this.alt = this.$refs.altInput.value;\n },\n onLoaded: function onLoaded() {\n this.loaded = true;\n }\n }\n};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"#resolve-conflicts[data-v-a0d25866] {\\n display: flex;\\n position: fixed;\\n z-index: 10000;\\n bottom: 0;\\n max-width: 900px;\\n width: 100vw;\\n margin: auto;\\n padding: 20px 0;\\n}\\n#resolve-conflicts button[data-v-a0d25866] {\\n margin: auto;\\n box-shadow: 0 0 10px var(--color-box-shadow);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"#editor-container[data-v-782c4aaa] {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n height: 100%;\\n left: 0;\\n margin: 0 auto;\\n position: relative;\\n background-color: var(--color-main-background);\\n}\\n#editor-wrapper[data-v-782c4aaa] {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n position: absolute;\\n}\\n#editor-wrapper .ProseMirror[data-v-782c4aaa] {\\n margin-top: 0 !important;\\n}\\n#editor-wrapper.icon-loading #editor[data-v-782c4aaa] {\\n opacity: 0.3;\\n}\\n#editor[data-v-782c4aaa], .editor[data-v-782c4aaa] {\\n background: var(--color-main-background);\\n color: var(--color-main-text);\\n background-clip: padding-box;\\n border-radius: var(--border-radius);\\n padding: 0;\\n position: relative;\\n overflow-y: auto;\\n overflow-x: hidden;\\n width: 100%;\\n}\\n.msg.icon-error[data-v-782c4aaa] {\\n padding: 12px;\\n border-bottom: 1px solid var(--color-border);\\n padding-left: 30px;\\n background-position: 8px center;\\n}\\n.save-status[data-v-782c4aaa] {\\n padding: 9px;\\n text-overflow: ellipsis;\\n color: var(--color-text-lighter);\\n}\\n.save-status.error[data-v-782c4aaa] {\\n background-color: var(--color-error);\\n color: var(--color-main-background);\\n border-radius: 3px;\\n}\\n#editor-container #editor-wrapper.has-conflicts[data-v-782c4aaa] {\\n height: calc(100% - 50px);\\n}\\n#editor-container #editor-wrapper.has-conflicts #editor[data-v-782c4aaa], #editor-container #editor-wrapper.has-conflicts #read-only-editor[data-v-782c4aaa] {\\n width: 50%;\\n height: 100%;\\n}\\n#editor-session-list[data-v-782c4aaa] {\\n padding: 4px 16px 4px 4px;\\n display: flex;\\n}\\n#editor-session-list input[data-v-782c4aaa], #editor-session-list div[data-v-782c4aaa] {\\n vertical-align: middle;\\n margin-left: 3px;\\n}\\n.editor__content[data-v-782c4aaa] {\\n max-width: 670px;\\n margin: auto;\\n position: relative;\\n}\\n#body-public[data-v-782c4aaa] {\\n height: auto;\\n}\\n#files-public-content[data-v-782c4aaa] {\\n height: auto;\\n}\\n#files-public-content #editor-wrapper[data-v-782c4aaa] {\\n position: relative;\\n}\\n#files-public-content #editor-container[data-v-782c4aaa] {\\n top: 0;\\n width: 100%;\\n}\\n#files-public-content #editor-container #editor[data-v-782c4aaa] .menubar {\\n position: fixed;\\n top: 50px;\\n width: 100%;\\n}\\n#files-public-content #editor-container #editor[data-v-782c4aaa] {\\n padding-top: 50px;\\n overflow: auto;\\n}\\n#files-public-content #editor-container .has-conflicts #editor[data-v-782c4aaa] {\\n padding-top: 0px;\\n}\\n.ie #editor[data-v-782c4aaa] .menubar {\\n position: fixed;\\n top: 50px;\\n width: 100%;\\n}\\n.ie .editor__content[data-v-782c4aaa] .ProseMirror {\\n padding-top: 50px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".modal-container #editor-container {\\n position: absolute;\\n}\\n.ProseMirror-hideselection *::selection {\\n background: transparent;\\n}\\n.ProseMirror-hideselection *::-moz-selection {\\n background: transparent;\\n}\\n.ProseMirror-hideselection {\\n caret-color: transparent;\\n}\\n.ProseMirror-selectednode {\\n outline: 2px solid #8cf;\\n}\\n\\n/* Make sure li selections wrap around markers */\\nli.ProseMirror-selectednode {\\n outline: none;\\n}\\nli.ProseMirror-selectednode:after {\\n content: \\\"\\\";\\n position: absolute;\\n left: -32px;\\n right: -2px;\\n top: -2px;\\n bottom: -2px;\\n border: 2px solid #8cf;\\n pointer-events: none;\\n}\\n.has-conflicts .ProseMirror-menubar,\\n#editor-wrapper.icon-loading .ProseMirror-menubar {\\n display: none;\\n}\\n.ProseMirror-gapcursor {\\n display: none;\\n pointer-events: none;\\n position: absolute;\\n}\\n.ProseMirror-gapcursor:after {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n top: -2px;\\n width: 20px;\\n border-top: 1px solid var(--color-main-text);\\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\\n}\\n@keyframes ProseMirror-cursor-blink {\\nto {\\n visibility: hidden;\\n}\\n}\\n#editor-wrapper {\\n /* Document rendering styles */\\n}\\n#editor-wrapper div.ProseMirror {\\n margin-top: 44px;\\n height: 100%;\\n position: relative;\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n -webkit-font-variant-ligatures: none;\\n font-variant-ligatures: none;\\n padding: 4px 8px 200px 14px;\\n line-height: 150%;\\n font-size: 14px;\\n outline: none;\\n}\\n#editor-wrapper div.ProseMirror[contenteditable=true], #editor-wrapper div.ProseMirror[contenteditable=false] {\\n border: none !important;\\n width: 100%;\\n background-color: transparent;\\n color: var(--color-main-text);\\n opacity: 1;\\n -webkit-user-select: text;\\n user-select: text;\\n font-size: 14px;\\n}\\n#editor-wrapper div.ProseMirror li label.checkbox-label {\\n width: 100%;\\n display: flex;\\n margin-top: 10px;\\n margin-bottom: 1em;\\n}\\n#editor-wrapper div.ProseMirror li label.checkbox-label:before {\\n position: relative;\\n top: 2px;\\n}\\n#editor-wrapper div.ProseMirror li label.checkbox-label div.checkbox-wrapper {\\n margin-bottom: -1em;\\n width: 100%;\\n}\\n#editor-wrapper div.ProseMirror li label.checkbox-label div.checkbox-wrapper > p {\\n margin-top: -1px;\\n margin-bottom: 0;\\n padding-bottom: 10px;\\n}\\n#editor-wrapper div.ProseMirror p:first-child,\\n #editor-wrapper div.ProseMirror h1:first-child,\\n #editor-wrapper div.ProseMirror h2:first-child,\\n #editor-wrapper div.ProseMirror h3:first-child,\\n #editor-wrapper div.ProseMirror h4:first-child,\\n #editor-wrapper div.ProseMirror h5:first-child,\\n #editor-wrapper div.ProseMirror h6:first-child {\\n margin-top: 10px;\\n}\\n#editor-wrapper div.ProseMirror a {\\n color: var(--color-primary-element);\\n text-decoration: underline;\\n padding: .5em 0;\\n}\\n#editor-wrapper div.ProseMirror p {\\n margin-bottom: 1em;\\n line-height: 150%;\\n}\\n#editor-wrapper div.ProseMirror em {\\n font-style: italic;\\n}\\n#editor-wrapper div.ProseMirror h1,\\n #editor-wrapper div.ProseMirror h2,\\n #editor-wrapper div.ProseMirror h3,\\n #editor-wrapper div.ProseMirror h4,\\n #editor-wrapper div.ProseMirror h5,\\n #editor-wrapper div.ProseMirror h6 {\\n font-weight: 600;\\n line-height: 120%;\\n margin-top: 24px;\\n margin-bottom: 12px;\\n color: var(--color-main-text);\\n}\\n#editor-wrapper div.ProseMirror h1 {\\n font-size: 36px;\\n margin-top: 48px;\\n}\\n#editor-wrapper div.ProseMirror h2 {\\n font-size: 28px;\\n margin-top: 48px;\\n}\\n#editor-wrapper div.ProseMirror h3 {\\n font-size: 24px;\\n}\\n#editor-wrapper div.ProseMirror h4 {\\n font-size: 21px;\\n}\\n#editor-wrapper div.ProseMirror h5 {\\n font-size: 17px;\\n}\\n#editor-wrapper div.ProseMirror h6 {\\n font-size: 14px;\\n}\\n#editor-wrapper div.ProseMirror img {\\n cursor: default;\\n max-width: 100%;\\n}\\n#editor-wrapper div.ProseMirror hr {\\n padding: 2px 0;\\n border: none;\\n margin: 1em 0;\\n width: 100%;\\n}\\n#editor-wrapper div.ProseMirror hr:after {\\n content: \\\"\\\";\\n display: block;\\n height: 1px;\\n background-color: var(--color-border-dark);\\n line-height: 2px;\\n}\\n#editor-wrapper div.ProseMirror pre {\\n white-space: pre-wrap;\\n background-color: var(--color-background-dark);\\n border-radius: var(--border-radius);\\n padding: 1em 1.3em;\\n margin-bottom: 1em;\\n}\\n#editor-wrapper div.ProseMirror p code {\\n background-color: var(--color-background-dark);\\n border-radius: var(--border-radius);\\n padding: .1em .3em;\\n}\\n#editor-wrapper div.ProseMirror li {\\n position: relative;\\n}\\n#editor-wrapper div.ProseMirror ul, #editor-wrapper div.ProseMirror ol {\\n padding-left: 10px;\\n margin-left: 10px;\\n}\\n#editor-wrapper div.ProseMirror ul li {\\n list-style-type: disc;\\n}\\n#editor-wrapper div.ProseMirror ul > li > ul > li {\\n list-style-type: circle;\\n}\\n#editor-wrapper div.ProseMirror ul > li > ul > li ul li {\\n list-style-type: square;\\n}\\n#editor-wrapper div.ProseMirror blockquote {\\n padding-left: 1em;\\n border-left: 4px solid var(--color-primary-element);\\n color: var(--color-text-maxcontrast);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n#editor-wrapper .ProseMirror-focused .ProseMirror-gapcursor {\\n display: block;\\n}\\n#editor-wrapper .editor__content p.is-empty:first-child::before {\\n content: attr(data-empty-text);\\n float: left;\\n color: var(--color-text-maxcontrast);\\n pointer-events: none;\\n height: 0;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre {\\n background-color: var(--color-main-background);\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre::before {\\n content: attr(data-language);\\n text-transform: uppercase;\\n display: block;\\n text-align: right;\\n font-weight: bold;\\n font-size: 0.6rem;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-comment,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-quote {\\n color: #999999;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-variable,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-template-variable,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-attribute,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-tag,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-name,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-regexp,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-link,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-selector-id,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-selector-class {\\n color: #f2777a;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-number,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-meta,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-built_in,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-builtin-name,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-literal,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-type,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-params {\\n color: #f99157;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-string,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-symbol,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-bullet {\\n color: #99cc99;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-title,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-section {\\n color: #ffcc66;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-keyword,\\n #editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-selector-tag {\\n color: #6699cc;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-emphasis {\\n font-style: italic;\\n}\\n#editor-wrapper:not(.richEditor) .ProseMirror pre code .hljs-strong {\\n font-weight: 700;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"#read-only-editor {\\n /* Document rendering styles */\\n overflow: scroll;\\n}\\n#read-only-editor div.ProseMirror {\\n margin-top: 44px;\\n height: 100%;\\n position: relative;\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n -webkit-font-variant-ligatures: none;\\n font-variant-ligatures: none;\\n padding: 4px 8px 200px 14px;\\n line-height: 150%;\\n font-size: 14px;\\n outline: none;\\n}\\n#read-only-editor div.ProseMirror[contenteditable=true], #read-only-editor div.ProseMirror[contenteditable=false] {\\n border: none !important;\\n width: 100%;\\n background-color: transparent;\\n color: var(--color-main-text);\\n opacity: 1;\\n -webkit-user-select: text;\\n user-select: text;\\n font-size: 14px;\\n}\\n#read-only-editor div.ProseMirror li label.checkbox-label {\\n width: 100%;\\n display: flex;\\n margin-top: 10px;\\n margin-bottom: 1em;\\n}\\n#read-only-editor div.ProseMirror li label.checkbox-label:before {\\n position: relative;\\n top: 2px;\\n}\\n#read-only-editor div.ProseMirror li label.checkbox-label div.checkbox-wrapper {\\n margin-bottom: -1em;\\n width: 100%;\\n}\\n#read-only-editor div.ProseMirror li label.checkbox-label div.checkbox-wrapper > p {\\n margin-top: -1px;\\n margin-bottom: 0;\\n padding-bottom: 10px;\\n}\\n#read-only-editor div.ProseMirror p:first-child,\\n #read-only-editor div.ProseMirror h1:first-child,\\n #read-only-editor div.ProseMirror h2:first-child,\\n #read-only-editor div.ProseMirror h3:first-child,\\n #read-only-editor div.ProseMirror h4:first-child,\\n #read-only-editor div.ProseMirror h5:first-child,\\n #read-only-editor div.ProseMirror h6:first-child {\\n margin-top: 10px;\\n}\\n#read-only-editor div.ProseMirror a {\\n color: var(--color-primary-element);\\n text-decoration: underline;\\n padding: .5em 0;\\n}\\n#read-only-editor div.ProseMirror p {\\n margin-bottom: 1em;\\n line-height: 150%;\\n}\\n#read-only-editor div.ProseMirror em {\\n font-style: italic;\\n}\\n#read-only-editor div.ProseMirror h1,\\n #read-only-editor div.ProseMirror h2,\\n #read-only-editor div.ProseMirror h3,\\n #read-only-editor div.ProseMirror h4,\\n #read-only-editor div.ProseMirror h5,\\n #read-only-editor div.ProseMirror h6 {\\n font-weight: 600;\\n line-height: 120%;\\n margin-top: 24px;\\n margin-bottom: 12px;\\n color: var(--color-main-text);\\n}\\n#read-only-editor div.ProseMirror h1 {\\n font-size: 36px;\\n margin-top: 48px;\\n}\\n#read-only-editor div.ProseMirror h2 {\\n font-size: 28px;\\n margin-top: 48px;\\n}\\n#read-only-editor div.ProseMirror h3 {\\n font-size: 24px;\\n}\\n#read-only-editor div.ProseMirror h4 {\\n font-size: 21px;\\n}\\n#read-only-editor div.ProseMirror h5 {\\n font-size: 17px;\\n}\\n#read-only-editor div.ProseMirror h6 {\\n font-size: 14px;\\n}\\n#read-only-editor div.ProseMirror img {\\n cursor: default;\\n max-width: 100%;\\n}\\n#read-only-editor div.ProseMirror hr {\\n padding: 2px 0;\\n border: none;\\n margin: 1em 0;\\n width: 100%;\\n}\\n#read-only-editor div.ProseMirror hr:after {\\n content: \\\"\\\";\\n display: block;\\n height: 1px;\\n background-color: var(--color-border-dark);\\n line-height: 2px;\\n}\\n#read-only-editor div.ProseMirror pre {\\n white-space: pre-wrap;\\n background-color: var(--color-background-dark);\\n border-radius: var(--border-radius);\\n padding: 1em 1.3em;\\n margin-bottom: 1em;\\n}\\n#read-only-editor div.ProseMirror p code {\\n background-color: var(--color-background-dark);\\n border-radius: var(--border-radius);\\n padding: .1em .3em;\\n}\\n#read-only-editor div.ProseMirror li {\\n position: relative;\\n}\\n#read-only-editor div.ProseMirror ul, #read-only-editor div.ProseMirror ol {\\n padding-left: 10px;\\n margin-left: 10px;\\n}\\n#read-only-editor div.ProseMirror ul li {\\n list-style-type: disc;\\n}\\n#read-only-editor div.ProseMirror ul > li > ul > li {\\n list-style-type: circle;\\n}\\n#read-only-editor div.ProseMirror ul > li > ul > li ul li {\\n list-style-type: square;\\n}\\n#read-only-editor div.ProseMirror blockquote {\\n padding-left: 1em;\\n border-left: 4px solid var(--color-primary-element);\\n color: var(--color-text-maxcontrast);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n#read-only-editor .ProseMirror-focused .ProseMirror-gapcursor {\\n display: block;\\n}\\n#read-only-editor .editor__content p.is-empty:first-child::before {\\n content: attr(data-empty-text);\\n float: left;\\n color: var(--color-text-maxcontrast);\\n pointer-events: none;\\n height: 0;\\n}\\n.thumbnailContainer #read-only-editor {\\n width: 100%;\\n}\\n.thumbnailContainer #read-only-editor .ProseMirror {\\n height: auto;\\n margin: 0 0 0 0;\\n padding: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/* Document rendering styles */\\ndiv.ProseMirror {\\n margin-top: 44px;\\n height: 100%;\\n position: relative;\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n -webkit-font-variant-ligatures: none;\\n font-variant-ligatures: none;\\n padding: 4px 8px 200px 14px;\\n line-height: 150%;\\n font-size: 14px;\\n outline: none;\\n}\\ndiv.ProseMirror[contenteditable=true], div.ProseMirror[contenteditable=false] {\\n border: none !important;\\n width: 100%;\\n background-color: transparent;\\n color: var(--color-main-text);\\n opacity: 1;\\n -webkit-user-select: text;\\n user-select: text;\\n font-size: 14px;\\n}\\ndiv.ProseMirror li label.checkbox-label {\\n width: 100%;\\n display: flex;\\n margin-top: 10px;\\n margin-bottom: 1em;\\n}\\ndiv.ProseMirror li label.checkbox-label:before {\\n position: relative;\\n top: 2px;\\n}\\ndiv.ProseMirror li label.checkbox-label div.checkbox-wrapper {\\n margin-bottom: -1em;\\n width: 100%;\\n}\\ndiv.ProseMirror li label.checkbox-label div.checkbox-wrapper > p {\\n margin-top: -1px;\\n margin-bottom: 0;\\n padding-bottom: 10px;\\n}\\ndiv.ProseMirror p:first-child,\\n div.ProseMirror h1:first-child,\\n div.ProseMirror h2:first-child,\\n div.ProseMirror h3:first-child,\\n div.ProseMirror h4:first-child,\\n div.ProseMirror h5:first-child,\\n div.ProseMirror h6:first-child {\\n margin-top: 10px;\\n}\\ndiv.ProseMirror a {\\n color: var(--color-primary-element);\\n text-decoration: underline;\\n padding: .5em 0;\\n}\\ndiv.ProseMirror p {\\n margin-bottom: 1em;\\n line-height: 150%;\\n}\\ndiv.ProseMirror em {\\n font-style: italic;\\n}\\ndiv.ProseMirror h1,\\n div.ProseMirror h2,\\n div.ProseMirror h3,\\n div.ProseMirror h4,\\n div.ProseMirror h5,\\n div.ProseMirror h6 {\\n font-weight: 600;\\n line-height: 120%;\\n margin-top: 24px;\\n margin-bottom: 12px;\\n color: var(--color-main-text);\\n}\\ndiv.ProseMirror h1 {\\n font-size: 36px;\\n margin-top: 48px;\\n}\\ndiv.ProseMirror h2 {\\n font-size: 28px;\\n margin-top: 48px;\\n}\\ndiv.ProseMirror h3 {\\n font-size: 24px;\\n}\\ndiv.ProseMirror h4 {\\n font-size: 21px;\\n}\\ndiv.ProseMirror h5 {\\n font-size: 17px;\\n}\\ndiv.ProseMirror h6 {\\n font-size: 14px;\\n}\\ndiv.ProseMirror img {\\n cursor: default;\\n max-width: 100%;\\n}\\ndiv.ProseMirror hr {\\n padding: 2px 0;\\n border: none;\\n margin: 1em 0;\\n width: 100%;\\n}\\ndiv.ProseMirror hr:after {\\n content: \\\"\\\";\\n display: block;\\n height: 1px;\\n background-color: var(--color-border-dark);\\n line-height: 2px;\\n}\\ndiv.ProseMirror pre {\\n white-space: pre-wrap;\\n background-color: var(--color-background-dark);\\n border-radius: var(--border-radius);\\n padding: 1em 1.3em;\\n margin-bottom: 1em;\\n}\\ndiv.ProseMirror p code {\\n background-color: var(--color-background-dark);\\n border-radius: var(--border-radius);\\n padding: .1em .3em;\\n}\\ndiv.ProseMirror li {\\n position: relative;\\n}\\ndiv.ProseMirror ul, div.ProseMirror ol {\\n padding-left: 10px;\\n margin-left: 10px;\\n}\\ndiv.ProseMirror ul li {\\n list-style-type: disc;\\n}\\ndiv.ProseMirror ul > li > ul > li {\\n list-style-type: circle;\\n}\\ndiv.ProseMirror ul > li > ul > li ul li {\\n list-style-type: square;\\n}\\ndiv.ProseMirror blockquote {\\n padding-left: 1em;\\n border-left: 4px solid var(--color-primary-element);\\n color: var(--color-text-maxcontrast);\\n margin-left: 0;\\n margin-right: 0;\\n}\\n.ProseMirror-focused .ProseMirror-gapcursor {\\n display: block;\\n}\\n.editor__content p.is-empty:first-child::before {\\n content: attr(data-empty-text);\\n float: left;\\n color: var(--color-text-maxcontrast);\\n pointer-events: none;\\n height: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".image[data-v-38673bf4] {\\n margin: 0;\\n padding: 0;\\n}\\n.image__caption[data-v-38673bf4] {\\n text-align: center;\\n color: var(--color-text-lighter);\\n}\\n.image__caption input[type='text'][data-v-38673bf4] {\\n width: 100%;\\n border: none;\\n text-align: center;\\n}\\n.icon-image[data-v-38673bf4] {\\n margin-top: 10px;\\n height: 32px;\\n padding: 20px;\\n background-size: contain;\\n}\\n.image__loading[data-v-38673bf4] {\\n height: 100px;\\n}\\n.image__placeholder .image__main[data-v-38673bf4] {\\n background-color: var(--color-background-dark);\\n text-align: center;\\n padding: 20px;\\n border-radius: var(--border-radius);\\n}\\n.image__placeholder .image__main .icon-image[data-v-38673bf4] {\\n opacity: 0.7;\\n}\\n.fade-enter-active[data-v-38673bf4] {\\n transition: opacity .3s ease-in-out;\\n}\\n.fade-enter-to[data-v-38673bf4] {\\n opacity: 1;\\n}\\n.fade-enter[data-v-38673bf4] {\\n opacity: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"collision-resolve-dialog\",\n attrs: { id: \"resolve-conflicts\" }\n },\n [\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n return _vm.$emit(\"resolveUseThisVersion\")\n }\n }\n },\n [\n _vm._v(\n \"\\n\\t\\t\" + _vm._s(_vm.t(\"text\", \"Use current version\")) + \"\\n\\t\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n on: {\n click: function($event) {\n return _vm.$emit(\"resolveUseServerVersion\")\n }\n }\n },\n [\n _vm._v(\n \"\\n\\t\\t\" + _vm._s(_vm.t(\"text\", \"Use the saved version\")) + \"\\n\\t\"\n )\n ]\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"editor-container\" } },\n [\n _vm.currentSession && _vm.active\n ? _c(\"div\", [\n _vm.hasSyncCollission\n ? _c(\"p\", { staticClass: \"msg icon-error\" }, [\n _vm._v(\n \"\\n\\t\\t\\t\" +\n _vm._s(\n _vm.t(\n \"text\",\n \"The document has been changed outside of the editor. The changes cannot be applied.\"\n )\n ) +\n \"\\n\\t\\t\"\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.hasConnectionIssue\n ? _c(\"p\", { staticClass: \"msg icon-info\" }, [\n _vm._v(\n \"\\n\\t\\t\\t\" +\n _vm._s(\n _vm.t(\n \"text\",\n \"File could not be loaded. Please check your internet connection.\"\n )\n ) +\n \" \"\n ),\n _c(\n \"a\",\n {\n staticClass: \"button primary\",\n on: { click: _vm.reconnect }\n },\n [_vm._v(_vm._s(_vm.t(\"text\", \"Retry\")))]\n )\n ])\n : _vm._e()\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.currentSession && _vm.active\n ? _c(\n \"div\",\n {\n class: {\n \"has-conflicts\": _vm.hasSyncCollission,\n \"icon-loading\": !_vm.initialLoading || _vm.hasConnectionIssue,\n richEditor: _vm.isRichEditor\n },\n attrs: { id: \"editor-wrapper\" }\n },\n [\n _c(\n \"div\",\n { attrs: { id: \"editor\" } },\n [\n !_vm.syncError && !_vm.readOnly\n ? _c(\n \"MenuBar\",\n {\n ref: \"menubar\",\n attrs: {\n editor: _vm.tiptap,\n \"is-rich-editor\": _vm.isRichEditor,\n \"is-public\": _vm.isPublic,\n autohide: _vm.autohide\n }\n },\n [\n _vm.currentSession && _vm.active\n ? _c(\n \"div\",\n { attrs: { id: \"editor-session-list\" } },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip\",\n value: _vm.lastSavedStatusTooltip,\n expression: \"lastSavedStatusTooltip\"\n }\n ],\n staticClass: \"save-status\",\n class: _vm.lastSavedStatusClass\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\\t\\t\\t\" +\n _vm._s(_vm.lastSavedStatus) +\n \"\\n\\t\\t\\t\\t\\t\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"SessionList\",\n {\n attrs: { sessions: _vm.filteredSessions }\n },\n [\n _vm.isPublic &&\n _vm.currentSession.guestName\n ? _c(\"GuestNameDialog\", {\n attrs: {\n \"sync-service\": _vm.syncService\n }\n })\n : _vm._e()\n ],\n 1\n )\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._t(\"header\")\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n [\n !_vm.readOnly && _vm.isRichEditor\n ? _c(\"MenuBubble\", { attrs: { editor: _vm.tiptap } })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"EditorContent\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.initialLoading,\n expression: \"initialLoading\"\n }\n ],\n staticClass: \"editor__content\",\n attrs: { editor: _vm.tiptap }\n })\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.hasSyncCollission\n ? _c(\"ReadOnlyEditor\", {\n attrs: {\n content: _vm.syncError.data.outsideChange,\n \"is-rich-editor\": _vm.isRichEditor\n }\n })\n : _vm._e()\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.hasSyncCollission && !_vm.readOnly\n ? _c(\"CollisionResolveDialog\", {\n on: {\n resolveUseThisVersion: _vm.resolveUseThisVersion,\n resolveUseServerVersion: _vm.resolveUseServerVersion\n }\n })\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.editor\n ? _c(\"EditorContent\", {\n attrs: { id: \"read-only-editor\", editor: _vm.editor }\n })\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"image\",\n class: { \"icon-loading\": !_vm.loaded },\n attrs: { \"data-src\": _vm.src }\n },\n [\n _vm.imageLoaded && _vm.isSupportedImage\n ? _c(\n \"div\",\n [\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\"img\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loaded,\n expression: \"loaded\"\n }\n ],\n staticClass: \"image__main\",\n attrs: { src: _vm.src },\n on: { load: _vm.onLoaded }\n })\n ]),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loaded,\n expression: \"loaded\"\n }\n ],\n staticClass: \"image__caption\"\n },\n [\n _c(\"input\", {\n ref: \"altInput\",\n attrs: { type: \"text\" },\n domProps: { value: _vm.alt },\n on: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return _vm.updateAlt()\n }\n }\n })\n ]\n )\n ])\n ],\n 1\n )\n : _c(\n \"div\",\n { staticClass: \"image__placeholder\" },\n [\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loaded,\n expression: \"loaded\"\n }\n ],\n staticClass: \"image__main\"\n },\n [\n _c(\"div\", {\n staticClass: \"icon-image\",\n style: _vm.mimeIcon\n }),\n _vm._v(\" \"),\n _c(\"p\", [\n _c(\n \"a\",\n {\n attrs: {\n href: _vm.internalLinkOrImage,\n target: \"_blank\"\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.isSupportedImage\n ? _vm.t(\"text\", \"Show image\")\n : _vm.t(\"text\", \"Show file\")\n )\n )\n ]\n )\n ])\n ]\n )\n ]),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loaded,\n expression: \"loaded\"\n }\n ],\n staticClass: \"image__caption\"\n },\n [\n _c(\"input\", {\n ref: \"altInput\",\n attrs: { type: \"text\" },\n domProps: { value: _vm.alt },\n on: {\n keyup: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"enter\",\n 13,\n $event.key,\n \"Enter\"\n )\n ) {\n return null\n }\n return _vm.updateAlt()\n }\n }\n })\n ]\n )\n ])\n ],\n 1\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=a0d25866&scoped=true&lang=scss&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6e2092d3\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=a0d25866&scoped=true&lang=scss&\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=style&index=0&id=a0d25866&scoped=true&lang=scss&\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=782c4aaa&scoped=true&lang=scss&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"09dbb210\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=782c4aaa&scoped=true&lang=scss&\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=0&id=782c4aaa&scoped=true&lang=scss&\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0a97a801\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=style&index=1&lang=scss&\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9655b5c4\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=0&lang=scss&\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"491394bd\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=style&index=1&lang=scss&\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=38673bf4&scoped=true&lang=scss&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"718b5285\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=38673bf4&scoped=true&lang=scss&\", function() {\n var newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=style&index=0&id=38673bf4&scoped=true&lang=scss&\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sJAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5NA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACvCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACxCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACxCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjEA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3FA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7HA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACvCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChNA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpZA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+KAEA;AACA;AACA;AACA,qLAEA;AACA;AACA;AACA,mLAEA;AACA;AACA;AACA,mMAEA;AACA;AACA;AACA,4QAEA;AACA;AACA;AACA,sQAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7DA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5LA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;A","sourceRoot":""}