@nextcloud/vue 5.3.1 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/Components/ActionButton.js +1 -1
  3. package/dist/Components/ActionButton.js.LICENSE.txt +0 -22
  4. package/dist/Components/ActionButton.js.map +1 -1
  5. package/dist/Components/ActionCaption.js +1 -1
  6. package/dist/Components/ActionCaption.js.map +1 -1
  7. package/dist/Components/ActionCheckbox.js +1 -1
  8. package/dist/Components/ActionCheckbox.js.map +1 -1
  9. package/dist/Components/ActionInput.js +1 -1
  10. package/dist/Components/ActionInput.js.LICENSE.txt +0 -22
  11. package/dist/Components/ActionInput.js.map +1 -1
  12. package/dist/Components/ActionLink.js +1 -1
  13. package/dist/Components/ActionLink.js.LICENSE.txt +0 -22
  14. package/dist/Components/ActionLink.js.map +1 -1
  15. package/dist/Components/ActionRadio.js +1 -1
  16. package/dist/Components/ActionRadio.js.map +1 -1
  17. package/dist/Components/ActionRouter.js +1 -1
  18. package/dist/Components/ActionRouter.js.map +1 -1
  19. package/dist/Components/ActionSeparator.js +1 -1
  20. package/dist/Components/ActionSeparator.js.map +1 -1
  21. package/dist/Components/ActionText.js +1 -1
  22. package/dist/Components/ActionText.js.map +1 -1
  23. package/dist/Components/ActionTextEditable.js +1 -1
  24. package/dist/Components/ActionTextEditable.js.LICENSE.txt +0 -22
  25. package/dist/Components/ActionTextEditable.js.map +1 -1
  26. package/dist/Components/Actions.js +1 -1
  27. package/dist/Components/Actions.js.LICENSE.txt +0 -44
  28. package/dist/Components/Actions.js.map +1 -1
  29. package/dist/Components/AppContent.js +1 -1
  30. package/dist/Components/AppContent.js.map +1 -1
  31. package/dist/Components/AppContentDetails.js.map +1 -1
  32. package/dist/Components/AppContentList.js.map +1 -1
  33. package/dist/Components/AppNavigation.js +1 -1
  34. package/dist/Components/AppNavigation.js.LICENSE.txt +0 -88
  35. package/dist/Components/AppNavigation.js.map +1 -1
  36. package/dist/Components/AppNavigationCaption.js +1 -1
  37. package/dist/Components/AppNavigationCaption.js.LICENSE.txt +0 -22
  38. package/dist/Components/AppNavigationCaption.js.map +1 -1
  39. package/dist/Components/AppNavigationCounter.js +1 -1
  40. package/dist/Components/AppNavigationCounter.js.map +1 -1
  41. package/dist/Components/AppNavigationIconBullet.js +1 -1
  42. package/dist/Components/AppNavigationIconBullet.js.map +1 -1
  43. package/dist/Components/AppNavigationItem.js +1 -1
  44. package/dist/Components/AppNavigationItem.js.LICENSE.txt +0 -44
  45. package/dist/Components/AppNavigationItem.js.map +1 -1
  46. package/dist/Components/AppNavigationNew.js +1 -1
  47. package/dist/Components/AppNavigationNew.js.map +1 -1
  48. package/dist/Components/AppNavigationNewItem.js +1 -1
  49. package/dist/Components/AppNavigationNewItem.js.map +1 -1
  50. package/dist/Components/AppNavigationSettings.js +1 -1
  51. package/dist/Components/AppNavigationSettings.js.map +1 -1
  52. package/dist/Components/AppNavigationSpacer.js +1 -1
  53. package/dist/Components/AppNavigationSpacer.js.map +1 -1
  54. package/dist/Components/AppNavigationToggle.js +1 -1
  55. package/dist/Components/AppNavigationToggle.js.LICENSE.txt +0 -22
  56. package/dist/Components/AppNavigationToggle.js.map +1 -1
  57. package/dist/Components/AppSettingsDialog.js +1 -1
  58. package/dist/Components/AppSettingsDialog.js.LICENSE.txt +0 -44
  59. package/dist/Components/AppSettingsDialog.js.map +1 -1
  60. package/dist/Components/AppSettingsSection.js +1 -1
  61. package/dist/Components/AppSettingsSection.js.map +1 -1
  62. package/dist/Components/AppSidebar.js +1 -1
  63. package/dist/Components/AppSidebar.js.LICENSE.txt +0 -44
  64. package/dist/Components/AppSidebar.js.map +1 -1
  65. package/dist/Components/AppSidebarTab.js +1 -1
  66. package/dist/Components/AppSidebarTab.js.map +1 -1
  67. package/dist/Components/Avatar.js +1 -1
  68. package/dist/Components/Avatar.js.map +1 -1
  69. package/dist/Components/Breadcrumb.js +1 -1
  70. package/dist/Components/Breadcrumb.js.LICENSE.txt +0 -44
  71. package/dist/Components/Breadcrumb.js.map +1 -1
  72. package/dist/Components/Breadcrumbs.js +1 -1
  73. package/dist/Components/Breadcrumbs.js.LICENSE.txt +0 -66
  74. package/dist/Components/Breadcrumbs.js.map +1 -1
  75. package/dist/Components/Button.js +1 -1
  76. package/dist/Components/Button.js.map +1 -1
  77. package/dist/Components/CheckboxRadioSwitch.js +1 -1
  78. package/dist/Components/CheckboxRadioSwitch.js.map +1 -1
  79. package/dist/Components/ColorPicker.js +1 -1
  80. package/dist/Components/ColorPicker.js.LICENSE.txt +0 -22
  81. package/dist/Components/ColorPicker.js.map +1 -1
  82. package/dist/Components/Content.js +1 -1
  83. package/dist/Components/Content.js.map +1 -1
  84. package/dist/Components/CounterBubble.js +1 -1
  85. package/dist/Components/CounterBubble.js.map +1 -1
  86. package/dist/Components/DashboardWidget.js +3 -0
  87. package/dist/Components/DashboardWidget.js.LICENSE.txt +110 -0
  88. package/dist/Components/DashboardWidget.js.map +1 -0
  89. package/dist/Components/DashboardWidgetItem.js +3 -0
  90. package/dist/Components/DashboardWidgetItem.js.LICENSE.txt +110 -0
  91. package/dist/Components/DashboardWidgetItem.js.map +1 -0
  92. package/dist/Components/DatetimePicker.js +1 -1
  93. package/dist/Components/DatetimePicker.js.LICENSE.txt +0 -22
  94. package/dist/Components/DatetimePicker.js.map +1 -1
  95. package/dist/Components/EmojiPicker.js +1 -2
  96. package/dist/Components/EmojiPicker.js.map +1 -1
  97. package/dist/Components/EmptyContent.js +1 -2
  98. package/dist/Components/EmptyContent.js.map +1 -1
  99. package/dist/Components/Highlight.js.map +1 -1
  100. package/dist/Components/InputField.js +2 -0
  101. package/dist/Components/InputField.js.map +1 -0
  102. package/dist/Components/ListItem.js +1 -1
  103. package/dist/Components/ListItem.js.LICENSE.txt +0 -44
  104. package/dist/Components/ListItem.js.map +1 -1
  105. package/dist/Components/ListItemIcon.js +1 -1
  106. package/dist/Components/ListItemIcon.js.map +1 -1
  107. package/dist/Components/Modal.js +1 -1
  108. package/dist/Components/Modal.js.LICENSE.txt +0 -44
  109. package/dist/Components/Modal.js.map +1 -1
  110. package/dist/Components/Multiselect.js +1 -1
  111. package/dist/Components/Multiselect.js.map +1 -1
  112. package/dist/Components/MultiselectTags.js +1 -1
  113. package/dist/Components/MultiselectTags.js.map +1 -1
  114. package/dist/Components/Popover.js +1 -2
  115. package/dist/Components/Popover.js.map +1 -1
  116. package/dist/Components/PopoverMenu.js +1 -1
  117. package/dist/Components/PopoverMenu.js.map +1 -1
  118. package/dist/Components/ProgressBar.js +1 -1
  119. package/dist/Components/ProgressBar.js.map +1 -1
  120. package/dist/Components/RichContenteditable.js +1 -1
  121. package/dist/Components/RichContenteditable.js.map +1 -1
  122. package/dist/Components/SettingsInputText.js +1 -1
  123. package/dist/Components/SettingsInputText.js.map +1 -1
  124. package/dist/Components/SettingsSection.js +1 -1
  125. package/dist/Components/SettingsSection.js.map +1 -1
  126. package/dist/Components/SettingsSelectGroup.js +1 -1
  127. package/dist/Components/SettingsSelectGroup.js.LICENSE.txt +22 -0
  128. package/dist/Components/SettingsSelectGroup.js.map +1 -1
  129. package/dist/Components/TextField.js +3 -0
  130. package/dist/Components/{EmojiPicker.js.LICENSE.txt → TextField.js.LICENSE.txt} +2 -2
  131. package/dist/Components/TextField.js.map +1 -0
  132. package/dist/Components/TimezonePicker.js +1 -1
  133. package/dist/Components/TimezonePicker.js.map +1 -1
  134. package/dist/Components/UserBubble.js +1 -1
  135. package/dist/Components/UserBubble.js.LICENSE.txt +0 -22
  136. package/dist/Components/UserBubble.js.map +1 -1
  137. package/dist/Components/VNodes.js +2 -0
  138. package/dist/Components/VNodes.js.map +1 -0
  139. package/dist/Directives/Linkify.js.map +1 -1
  140. package/dist/Directives/Tooltip.js +1 -1
  141. package/dist/Directives/Tooltip.js.map +1 -1
  142. package/dist/Functions/usernameToColor.js +1 -1
  143. package/dist/Functions/usernameToColor.js.map +1 -1
  144. package/dist/Mixins/isMobile.js.map +1 -1
  145. package/dist/Mixins/richEditor.js +1 -1
  146. package/dist/Mixins/richEditor.js.map +1 -1
  147. package/dist/ncvuecomponents.js +1 -1
  148. package/dist/ncvuecomponents.js.LICENSE.txt +0 -66
  149. package/dist/ncvuecomponents.js.map +1 -1
  150. package/package.json +9 -10
  151. package/dist/Components/EmptyContent.js.LICENSE.txt +0 -21
  152. package/dist/Components/Popover.js.LICENSE.txt +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"Mixins/richEditor.js","mappings":"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","sources":["webpack://NextcloudVue/webpack/universalModuleDefinition","webpack://NextcloudVue/external commonjs \"linkify-string\"","webpack://NextcloudVue/./src/utils/Linkify.js","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?fdcf","webpack://NextcloudVue/./node_modules/css-loader/dist/runtime/api.js","webpack://NextcloudVue/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://NextcloudVue/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://NextcloudVue/external commonjs \"@nextcloud/router\"","webpack://NextcloudVue/external commonjs \"vue\"","webpack://NextcloudVue/webpack/bootstrap","webpack://NextcloudVue/webpack/runtime/compat get default export","webpack://NextcloudVue/webpack/runtime/define property getters","webpack://NextcloudVue/webpack/runtime/hasOwnProperty shorthand","webpack://NextcloudVue/webpack/runtime/make namespace object","webpack://NextcloudVue/external commonjs \"escape-html\"","webpack://NextcloudVue/external commonjs \"striptags\"","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?0b95","webpack://NextcloudVue/src/components/RichContenteditable/MentionBubble.vue","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?fc7f","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?059c","webpack://NextcloudVue/./src/mixins/richEditor/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NextcloudVue\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NextcloudVue\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Mixins/richEditor\"] = factory();\n})(self, function() {\nreturn ","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"linkify-string\");","/**\n * @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\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 linkifyStr from 'linkify-string'\n\n/**\n * Linkify text\n *\n * @param {string} text The text to linkify\n * @return {string} The linkified string\n */\nconst Linkify = (text) => {\n\treturn linkifyStr(text, {\n\t\tdefaultProtocol: 'https',\n\t\ttarget: '_blank',\n\t\tclassName: 'external linkified',\n\t\tattributes: {\n\t\t\trel: 'nofollow noopener noreferrer',\n\t\t},\n\t})\n}\n\nexport default Linkify\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-724f9d58]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-724f9d58]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-724f9d58]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-724f9d58]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-724f9d58]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-724f9d58]{color:inherit;background-size:cover}.mention-bubble__title[data-v-724f9d58]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-724f9d58]::before{content:attr(title)}.mention-bubble__select[data-v-724f9d58]{position:absolute;z-index:-1;left:-1000px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/RichContenteditable/MentionBubble.vue\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CC8FvB,mEACC,+BAAgC,CAChC,6CAA8C,CAC9C,0CAGA,eAXsB,CAatB,WAAwC,CACxC,0BAA2B,CAC3B,mBAAoB,CACpB,kBAAmB,CACnB,0CAGA,mBAAoB,CACpB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,WAzBkB,CA0BlB,wBAAyB,CACzB,gBAAiB,CACjB,iBAAkC,CAClC,gBA3BkB,CA4BlB,kBAAiC,CACjC,6CAA8C,CAC9C,uCAGA,iBAAkB,CAClB,UAjCuD,CAkCvD,WAlCuD,CAmCvD,iBAAsC,CACtC,+CAAgD,CAChD,2BAA4B,CAC5B,0BAA2B,CAC3B,oBAA0D,CAE1D,oDACC,aAAc,CACd,qBAAsB,CACtB,wCAID,eAAgB,CAChB,eAlDkB,CAmDlB,kBAAmB,CACnB,sBAAuB,CAJvB,gDAOC,mBAAoB,CACpB,yCAKD,iBAAkB,CAClB,UAAW,CACX,YAAa\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"17fd6e1\\\"; @import 'variables'; @import 'material-icons';\\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\\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$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: $bubble-height / 2;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: $bubble-avatar-size / 2;\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _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 _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(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\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 _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","module.exports = require(\"@nextcloud/router\");","module.exports = require(\"vue\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"escape-html\");","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"striptags\");","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.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!./MentionBubble.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\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<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"label\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'MentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn this.id.indexOf(' ') === -1\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: $bubble-height / 2;\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: $bubble-avatar-size / 2;\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put label in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=style&index=0&id=724f9d58&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=style&index=0&id=724f9d58&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MentionBubble.vue?vue&type=template&id=724f9d58&scoped=true&\"\nimport script from \"./MentionBubble.vue?vue&type=script&lang=js&\"\nexport * from \"./MentionBubble.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MentionBubble.vue?vue&type=style&index=0&id=724f9d58&lang=scss&scoped=true&\"\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 \"724f9d58\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"mention-bubble\",class:{'mention-bubble--primary': _vm.primary},attrs:{\"contenteditable\":\"false\"}},[_c('span',{staticClass:\"mention-bubble__wrapper\"},[_c('span',{staticClass:\"mention-bubble__content\"},[_c('span',{staticClass:\"mention-bubble__icon\",class:[_vm.icon, (\"mention-bubble__icon--\" + (_vm.avatarUrl ? 'with-avatar' : ''))],style:(_vm.avatarUrl ? { backgroundImage: (\"url(\" + _vm.avatarUrl + \")\") } : null)}),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__title\",attrs:{\"role\":\"heading\",\"title\":_vm.label}})]),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__select\",attrs:{\"role\":\"none\"}},[_vm._v(_vm._s(_vm.mentionText))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\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\nimport escapeHtml from 'escape-html'\nimport Linkify from '../../utils/Linkify'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\nimport MentionBubble from '../../components/RichContenteditable/MentionBubble'\n\n// Beginning or whitespace. Non-capturing group\nconst MENTION_START = '(?:^|\\\\s)'\n// Anything that is not text or end-of-line. Non-capturing group\nconst MENTION_END = '(?:[^a-z]|$)'\nexport const USERID_REGEX = new RegExp(`${MENTION_START}(@[a-zA-Z0-9_.@\\\\-']+)(${MENTION_END})`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}(@&quot;[a-zA-Z0-9 _.@\\\\-']+&quot;)(${MENTION_END})`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the \" and @\n\t\t\t\t\tconst id = part.replace(/@|&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn ' ' + this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content.replace(/<br>/gmi, '\\n')\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return `@${value}`\n\t\t\t\treturn value.indexOf(' ') === -1\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, MentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["root","factory","exports","module","define","amd","self","require","text","linkifyStr","defaultProtocol","target","className","attributes","rel","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","concat","join","i","modules","mediaQuery","dedupe","alreadyImportedModules","length","_i","_arrayLikeToArray","arr","len","arr2","Array","_item","isArray","_arrayWithHoles","Symbol","iterator","_s","_e","_arr","_n","_d","call","next","done","value","err","_iterableToArrayLimit","o","minLen","n","Object","prototype","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_index","memo","insert","style","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","setAttributes","styleElement","nonce","setAttribute","insertStyleElement","needLayer","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","d","a","definition","key","defineProperty","enumerable","get","prop","hasOwnProperty","r","toStringTag","_vm","_h","$createElement","_c","_self","staticClass","class","primary","attrs","icon","avatarUrl","backgroundImage","_v","label","mentionText","MENTION_START","MENTION_END","USERID_REGEX","RegExp","USERID_REGEX_WITH_SPACE","props","userData","type","default","methods","renderContent","escapeHtml","split","part","flat","startsWith","Linkify","replace","genSelectTemplate","parseContent","stripTags","renderComponentHtml","MentionBubble","indexOf","propsData","component","Item","Vue","wrapper","mount","display","body","$mount","renderedHtml","innerHTML","$destroy"],"sourceRoot":""}
1
+ {"version":3,"file":"Mixins/richEditor.js","mappings":"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","sources":["webpack://NextcloudVue/webpack/universalModuleDefinition","webpack://NextcloudVue/external commonjs \"linkify-string\"","webpack://NextcloudVue/./src/utils/Linkify.js","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?8fb4","webpack://NextcloudVue/./node_modules/css-loader/dist/runtime/api.js","webpack://NextcloudVue/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://NextcloudVue/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://NextcloudVue/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://NextcloudVue/external commonjs \"@nextcloud/router\"","webpack://NextcloudVue/external commonjs \"vue\"","webpack://NextcloudVue/webpack/bootstrap","webpack://NextcloudVue/webpack/runtime/compat get default export","webpack://NextcloudVue/webpack/runtime/define property getters","webpack://NextcloudVue/webpack/runtime/hasOwnProperty shorthand","webpack://NextcloudVue/webpack/runtime/make namespace object","webpack://NextcloudVue/webpack/runtime/nonce","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?00de","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?0b95","webpack://NextcloudVue/src/components/RichContenteditable/MentionBubble.vue","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue?d7cd","webpack://NextcloudVue/./src/components/RichContenteditable/MentionBubble.vue","webpack://NextcloudVue/external commonjs \"escape-html\"","webpack://NextcloudVue/external commonjs \"striptags\"","webpack://NextcloudVue/./src/mixins/richEditor/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NextcloudVue\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NextcloudVue\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Mixins/richEditor\"] = factory();\n})(self, function() {\nreturn ","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"linkify-string\");","/**\n * @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\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 linkifyStr from 'linkify-string'\n\n/**\n * Linkify text\n *\n * @param {string} text The text to linkify\n * @return {string} The linkified string\n */\nconst Linkify = (text) => {\n\treturn linkifyStr(text, {\n\t\tdefaultProtocol: 'https',\n\t\ttarget: '_blank',\n\t\tclassName: 'external linkified',\n\t\tattributes: {\n\t\t\trel: 'nofollow noopener noreferrer',\n\t\t},\n\t})\n}\n\nexport default Linkify\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-26d6f534]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.mention-bubble--primary .mention-bubble__content[data-v-26d6f534]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-26d6f534]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-26d6f534]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-26d6f534]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-26d6f534]{color:inherit;background-size:cover}.mention-bubble__title[data-v-26d6f534]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-26d6f534]::before{content:attr(title)}.mention-bubble__select[data-v-26d6f534]{position:absolute;z-index:-1;left:-1000px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/RichContenteditable/MentionBubble.vue\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CC8FA,mEACC,+BAAA,CACA,6CAAA,CAGD,0CACC,eAXiB,CAajB,WAAA,CACA,0BAAA,CACA,mBAAA,CACA,kBAAA,CAGD,0CACC,mBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,WAzBc,CA0Bd,wBAAA,CACA,gBAAA,CACA,iBAAA,CACA,gBA3Be,CA4Bf,kBAAA,CACA,6CAAA,CAGD,uCACC,iBAAA,CACA,UAjCmB,CAkCnB,WAlCmB,CAmCnB,iBAAA,CACA,+CAAA,CACA,2BAAA,CACA,0BAAA,CACA,oBAAA,CAEA,oDACC,aAAA,CACA,qBAAA,CAIF,wCACC,eAAA,CACA,eAlDe,CAmDf,kBAAA,CACA,sBAAA,CAEA,gDACC,mBAAA,CAKF,yCACC,iBAAA,CACA,UAAA,CACA,YAAA\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"c49fbe2\\\"; @import 'variables'; @import 'material-icons';\\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\\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$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: math.div($bubble-height, 2);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: math.div($bubble-avatar-size, 2);\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _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 _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(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\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 _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","module.exports = require(\"@nextcloud/router\");","module.exports = require(\"vue\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"mention-bubble\",class:{'mention-bubble--primary': _vm.primary},attrs:{\"contenteditable\":\"false\"}},[_c('span',{staticClass:\"mention-bubble__wrapper\"},[_c('span',{staticClass:\"mention-bubble__content\"},[_c('span',{staticClass:\"mention-bubble__icon\",class:[_vm.icon, (\"mention-bubble__icon--\" + (_vm.avatarUrl ? 'with-avatar' : ''))],style:(_vm.avatarUrl ? { backgroundImage: (\"url(\" + _vm.avatarUrl + \")\") } : null)}),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__title\",attrs:{\"role\":\"heading\",\"title\":_vm.label}})]),_vm._v(\" \"),_c('span',{staticClass:\"mention-bubble__select\",attrs:{\"role\":\"none\"}},[_vm._v(_vm._s(_vm.mentionText))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.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!./MentionBubble.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\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<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"label\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'MentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn this.id.indexOf(' ') === -1\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put label in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=style&index=0&id=26d6f534&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MentionBubble.vue?vue&type=style&index=0&id=26d6f534&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./MentionBubble.vue?vue&type=template&id=26d6f534&scoped=true&\"\nimport script from \"./MentionBubble.vue?vue&type=script&lang=js&\"\nexport * from \"./MentionBubble.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MentionBubble.vue?vue&type=style&index=0&id=26d6f534&lang=scss&scoped=true&\"\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 \"26d6f534\",\n null\n \n)\n\nexport default component.exports","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"escape-html\");","var __WEBPACK_NAMESPACE_OBJECT__ = require(\"striptags\");","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\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\nimport MentionBubble from '../../components/RichContenteditable/MentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Beginning or whitespace. Non-capturing group\nconst MENTION_START = '(?:^|\\\\s)'\n// Anything that is not text or end-of-line. Non-capturing group\nconst MENTION_END = '(?:[^a-z]|$)'\nexport const USERID_REGEX = new RegExp(`${MENTION_START}(@[a-zA-Z0-9_.@\\\\-']+)(${MENTION_END})`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}(@&quot;[a-zA-Z0-9 _.@\\\\-']+&quot;)(${MENTION_END})`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the \" and @\n\t\t\t\t\tconst id = part.replace(/@|&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn ' ' + this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content.replace(/<br>/gmi, '\\n')\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return `@${value}`\n\t\t\t\treturn value.indexOf(' ') === -1\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, MentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["root","factory","exports","module","define","amd","self","require","text","linkifyStr","defaultProtocol","target","className","attributes","rel","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","concat","join","i","modules","mediaQuery","dedupe","alreadyImportedModules","length","_i","_arrayLikeToArray","arr","len","arr2","Array","_item","isArray","_arrayWithHoles","Symbol","iterator","_s","_e","_arr","_n","_d","call","next","done","value","err","_iterableToArrayLimit","o","minLen","n","Object","prototype","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_index","memo","insert","style","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","setAttributes","styleElement","nonce","setAttribute","insertStyleElement","needLayer","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","d","a","definition","key","defineProperty","enumerable","get","prop","hasOwnProperty","r","toStringTag","nc","_vm","_h","$createElement","_c","_self","staticClass","class","primary","attrs","icon","avatarUrl","backgroundImage","_v","label","mentionText","MENTION_START","MENTION_END","USERID_REGEX","RegExp","USERID_REGEX_WITH_SPACE","props","userData","type","default","methods","renderContent","escapeHtml","split","part","flat","startsWith","Linkify","replace","genSelectTemplate","parseContent","stripTags","renderComponentHtml","MentionBubble","indexOf","propsData","component","Item","Vue","wrapper","mount","display","body","$mount","renderedHtml","innerHTML","$destroy"],"sourceRoot":""}