@nextcloud/vue 8.5.0 → 8.6.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 (512) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/dist/Components/NcActionButton.cjs +10 -7
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +15 -13
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  7. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  8. package/dist/Components/NcActionCaption.cjs +2 -1
  9. package/dist/Components/NcActionCaption.mjs +7 -7
  10. package/dist/Components/NcActionCaption.mjs.map +1 -1
  11. package/dist/Components/NcActionCheckbox.cjs +2 -1
  12. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  13. package/dist/Components/NcActionCheckbox.mjs +9 -9
  14. package/dist/Components/NcActionCheckbox.mjs.map +1 -1
  15. package/dist/Components/NcActionInput.cjs +1 -1
  16. package/dist/Components/NcActionInput.mjs +1 -1
  17. package/dist/Components/NcActionLink.cjs +2 -1
  18. package/dist/Components/NcActionLink.cjs.map +1 -1
  19. package/dist/Components/NcActionLink.mjs +3 -3
  20. package/dist/Components/NcActionLink.mjs.map +1 -1
  21. package/dist/Components/NcActionRadio.cjs +2 -1
  22. package/dist/Components/NcActionRadio.cjs.map +1 -1
  23. package/dist/Components/NcActionRadio.mjs +3 -3
  24. package/dist/Components/NcActionRadio.mjs.map +1 -1
  25. package/dist/Components/NcActionRouter.cjs +5 -4
  26. package/dist/Components/NcActionRouter.cjs.map +1 -1
  27. package/dist/Components/NcActionRouter.mjs +3 -3
  28. package/dist/Components/NcActionRouter.mjs.map +1 -1
  29. package/dist/Components/NcActionSeparator.cjs +7 -6
  30. package/dist/Components/NcActionSeparator.mjs +3 -3
  31. package/dist/Components/NcActionSeparator.mjs.map +1 -1
  32. package/dist/Components/NcActionText.cjs +2 -1
  33. package/dist/Components/NcActionText.cjs.map +1 -1
  34. package/dist/Components/NcActionText.mjs +5 -5
  35. package/dist/Components/NcActionText.mjs.map +1 -1
  36. package/dist/Components/NcActionTextEditable.cjs +5 -4
  37. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  38. package/dist/Components/NcActionTextEditable.mjs +4 -4
  39. package/dist/Components/NcActionTextEditable.mjs.map +1 -1
  40. package/dist/Components/NcActions.cjs +1 -1
  41. package/dist/Components/NcActions.mjs +1 -1
  42. package/dist/Components/NcAppContent.cjs +1 -1
  43. package/dist/Components/NcAppContent.mjs +1 -1
  44. package/dist/Components/NcAppNavigation.cjs +1 -1
  45. package/dist/Components/NcAppNavigation.mjs +1 -1
  46. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  47. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  48. package/dist/Components/NcAppNavigationIconBullet.cjs +2 -1
  49. package/dist/Components/NcAppNavigationIconBullet.mjs +3 -3
  50. package/dist/Components/NcAppNavigationIconBullet.mjs.map +1 -1
  51. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  52. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  53. package/dist/Components/NcAppNavigationNew.cjs +2 -1
  54. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  55. package/dist/Components/NcAppNavigationNew.mjs +6 -6
  56. package/dist/Components/NcAppNavigationNew.mjs.map +1 -1
  57. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  58. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  59. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  60. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  61. package/dist/Components/NcAppNavigationSpacer.cjs +7 -6
  62. package/dist/Components/NcAppNavigationSpacer.mjs +6 -6
  63. package/dist/Components/NcAppNavigationSpacer.mjs.map +1 -1
  64. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  65. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  66. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  67. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  68. package/dist/Components/NcAppSettingsSection.cjs +2 -1
  69. package/dist/Components/NcAppSettingsSection.mjs +3 -3
  70. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  71. package/dist/Components/NcAppSidebar.cjs +1 -1
  72. package/dist/Components/NcAppSidebar.mjs +1 -1
  73. package/dist/Components/NcAppSidebarTab.cjs +5 -4
  74. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  75. package/dist/Components/NcAppSidebarTab.mjs +3 -3
  76. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  77. package/dist/Components/NcAvatar.cjs +1 -1
  78. package/dist/Components/NcAvatar.mjs +1 -1
  79. package/dist/Components/NcBreadcrumb.cjs +1 -1
  80. package/dist/Components/NcBreadcrumb.mjs +1 -1
  81. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  82. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  83. package/dist/Components/NcButton.cjs +17 -13
  84. package/dist/Components/NcButton.cjs.map +1 -1
  85. package/dist/Components/NcButton.mjs +19 -16
  86. package/dist/Components/NcButton.mjs.map +1 -1
  87. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  88. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  89. package/dist/Components/NcColorPicker.cjs +1 -1
  90. package/dist/Components/NcColorPicker.mjs +1 -1
  91. package/dist/Components/NcContent.cjs +1 -1
  92. package/dist/Components/NcContent.mjs +1 -1
  93. package/dist/Components/NcCounterBubble.cjs +5 -4
  94. package/dist/Components/NcCounterBubble.mjs +1 -1
  95. package/dist/Components/NcCounterBubble.mjs.map +1 -1
  96. package/dist/Components/NcDashboardWidget.cjs +1 -1
  97. package/dist/Components/NcDashboardWidget.mjs +1 -1
  98. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  99. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  100. package/dist/Components/NcDateTime.cjs +1 -1
  101. package/dist/Components/NcDateTime.mjs +1 -1
  102. package/dist/Components/NcDateTimePicker.cjs +16 -15
  103. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  104. package/dist/Components/NcDateTimePicker.mjs +16 -16
  105. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  106. package/dist/Components/NcDateTimePickerNative.cjs +9 -8
  107. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  108. package/dist/Components/NcDateTimePickerNative.mjs +8 -8
  109. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  110. package/dist/Components/NcDialog.cjs +1 -1
  111. package/dist/Components/NcDialog.mjs +1 -1
  112. package/dist/Components/NcDialogButton.cjs +1 -1
  113. package/dist/Components/NcDialogButton.mjs +1 -1
  114. package/dist/Components/NcEllipsisedOption.cjs +5 -4
  115. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  116. package/dist/Components/NcEllipsisedOption.mjs +3 -3
  117. package/dist/Components/NcEllipsisedOption.mjs.map +1 -1
  118. package/dist/Components/NcEmojiPicker.cjs +1 -1
  119. package/dist/Components/NcEmojiPicker.mjs +1 -1
  120. package/dist/Components/NcEmptyContent.cjs +2 -1
  121. package/dist/Components/NcEmptyContent.mjs +3 -3
  122. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  123. package/dist/Components/NcGuestContent.cjs +4 -3
  124. package/dist/Components/NcGuestContent.mjs +6 -6
  125. package/dist/Components/NcGuestContent.mjs.map +1 -1
  126. package/dist/Components/NcHeaderMenu.cjs +1 -1
  127. package/dist/Components/NcHeaderMenu.mjs +1 -1
  128. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  129. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  130. package/dist/Components/NcInputField.cjs +7 -6
  131. package/dist/Components/NcInputField.cjs.map +1 -1
  132. package/dist/Components/NcInputField.mjs +6 -6
  133. package/dist/Components/NcInputField.mjs.map +1 -1
  134. package/dist/Components/NcListItem.cjs +1 -1
  135. package/dist/Components/NcListItem.mjs +1 -1
  136. package/dist/Components/NcListItemIcon.cjs +1 -1
  137. package/dist/Components/NcListItemIcon.mjs +1 -1
  138. package/dist/Components/NcLoadingIcon.cjs +2 -1
  139. package/dist/Components/NcLoadingIcon.mjs +3 -3
  140. package/dist/Components/NcLoadingIcon.mjs.map +1 -1
  141. package/dist/Components/NcModal.cjs +12 -11
  142. package/dist/Components/NcModal.cjs.map +1 -1
  143. package/dist/Components/NcModal.mjs +19 -19
  144. package/dist/Components/NcModal.mjs.map +1 -1
  145. package/dist/Components/NcNoteCard.cjs +10 -7
  146. package/dist/Components/NcNoteCard.cjs.map +1 -1
  147. package/dist/Components/NcNoteCard.mjs +21 -19
  148. package/dist/Components/NcNoteCard.mjs.map +1 -1
  149. package/dist/Components/NcPasswordField.cjs +1 -1
  150. package/dist/Components/NcPasswordField.mjs +1 -1
  151. package/dist/Components/NcPopover.cjs +1 -1
  152. package/dist/Components/NcPopover.mjs +1 -1
  153. package/dist/Components/NcProgressBar.cjs +1 -1
  154. package/dist/Components/NcProgressBar.mjs +1 -1
  155. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  156. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  157. package/dist/Components/NcRichContenteditable.cjs +1 -1
  158. package/dist/Components/NcRichContenteditable.mjs +2 -2
  159. package/dist/Components/NcRichText.cjs +1 -1
  160. package/dist/Components/NcRichText.mjs +3 -3
  161. package/dist/Components/NcSelect.cjs +1 -1
  162. package/dist/Components/NcSelect.mjs +1 -1
  163. package/dist/Components/NcSelectTags.cjs +1 -1
  164. package/dist/Components/NcSelectTags.mjs +1 -1
  165. package/dist/Components/NcSettingsInputText.cjs +1 -1
  166. package/dist/Components/NcSettingsInputText.mjs +1 -1
  167. package/dist/Components/NcSettingsSection.cjs +1 -1
  168. package/dist/Components/NcSettingsSection.mjs +1 -1
  169. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  170. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  171. package/dist/Components/NcTextArea.cjs +7 -6
  172. package/dist/Components/NcTextArea.cjs.map +1 -1
  173. package/dist/Components/NcTextArea.mjs +4 -4
  174. package/dist/Components/NcTextArea.mjs.map +1 -1
  175. package/dist/Components/NcTextField.cjs +1 -1
  176. package/dist/Components/NcTextField.mjs +1 -1
  177. package/dist/Components/NcTimezonePicker.cjs +1 -1
  178. package/dist/Components/NcTimezonePicker.mjs +1 -1
  179. package/dist/Components/NcUserBubble.cjs +1 -1
  180. package/dist/Components/NcUserBubble.mjs +1 -1
  181. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  182. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  183. package/dist/Directives/Tooltip.cjs +2 -1
  184. package/dist/Directives/Tooltip.cjs.map +1 -1
  185. package/dist/Directives/Tooltip.mjs +4 -4
  186. package/dist/Directives/Tooltip.mjs.map +1 -1
  187. package/dist/Functions/usernameToColor.cjs +1 -1
  188. package/dist/Functions/usernameToColor.mjs +1 -1
  189. package/dist/Mixins/richEditor.cjs +1 -1
  190. package/dist/Mixins/richEditor.mjs +1 -1
  191. package/dist/assets/{NcActionButton-YVkNHN_x.css → NcActionButton-1Z9lN7ar.css} +17 -17
  192. package/dist/assets/{NcActions-nAi2TA1m.css → NcActions-mSL9fcPO.css} +12 -12
  193. package/dist/assets/{NcAppNavigationToggle-upUgYNtL.css → NcAppNavigationToggle-3vMKtCQL.css} +3 -3
  194. package/dist/assets/{NcAppSettingsDialog-8K8FduDk.css → NcAppSettingsDialog-0eOo3ERv.css} +16 -17
  195. package/dist/assets/{NcAvatar-Vg6Mi1TD.css → NcAvatar-5H9cqcD1.css} +27 -27
  196. package/dist/assets/{NcButton-DTnreNJ5.css → NcButton-4Wj3KJn8.css} +43 -43
  197. package/dist/assets/{NcCheckboxRadioSwitch-IKpLtz9k.css → NcCheckboxRadioSwitch-mgKotCbU.css} +49 -47
  198. package/dist/assets/{NcColorPicker-CNX9fj56.css → NcColorPicker-PzIRM1j1.css} +24 -24
  199. package/dist/assets/{NcDateTimePicker-J_kGHwdu.css → NcDateTimePicker-RY_Hm2sB.css} +10 -10
  200. package/dist/assets/{NcDateTimePickerNative-2pQS5L0H.css → NcDateTimePickerNative-5yybtvfx.css} +19 -7
  201. package/dist/assets/{NcDialog-2V180xdm.css → NcDialog-DN-rY-55.css} +30 -19
  202. package/dist/assets/{NcEmojiPicker-lBXbC6Jd.css → NcEmojiPicker-wTIbvcrG.css} +5 -5
  203. package/dist/assets/{NcHeaderMenu-P0OkK9WN.css → NcHeaderMenu-06vdn4tC.css} +15 -15
  204. package/dist/assets/{NcInputField-Y-Qp3D_b.css → NcInputField-L2Lld_iG.css} +39 -38
  205. package/dist/assets/{NcListItem-xcW2PRrk.css → NcListItem-6sL-frKJ.css} +49 -49
  206. package/dist/assets/{NcModal-QzDLeQrW.css → NcModal-UZh031V1.css} +64 -64
  207. package/dist/assets/{NcNoteCard-OTfZqVvP.css → NcNoteCard-f0NZpwjL.css} +7 -7
  208. package/dist/assets/{NcRichContenteditable-xiQ4y2Z6.css → NcRichContenteditable-j9edXOEH.css} +13 -12
  209. package/dist/assets/{NcTextArea-K-KVPiMp.css → NcTextArea-4rVwq6GK.css} +24 -23
  210. package/dist/assets/{referencePickerModal-VxSowpb5.css → referencePickerModal-iy5QSWj6.css} +2 -2
  211. package/dist/chunks/{AlertCircleOutline-VgVvRWpm.cjs → AlertCircleOutline-HYz1lvHU.cjs} +4 -4
  212. package/dist/chunks/AlertCircleOutline-HYz1lvHU.cjs.map +1 -0
  213. package/dist/chunks/{AlertCircleOutline-lwSRucNO.mjs → AlertCircleOutline-XY0EPUmQ.mjs} +4 -4
  214. package/dist/chunks/AlertCircleOutline-XY0EPUmQ.mjs.map +1 -0
  215. package/dist/chunks/{ArrowLeft-3KC2k3tR.cjs → ArrowLeft-fC5aEWWu.cjs} +1 -1
  216. package/dist/chunks/ArrowLeft-fC5aEWWu.cjs.map +1 -0
  217. package/dist/chunks/{ArrowLeft-buaCjhfr.mjs → ArrowLeft-uW5eNVkY.mjs} +4 -4
  218. package/dist/chunks/ArrowLeft-uW5eNVkY.mjs.map +1 -0
  219. package/dist/chunks/{ArrowRight-4p6gv-9o.mjs → ArrowRight-16bLxoZc.mjs} +1 -1
  220. package/dist/chunks/ArrowRight-16bLxoZc.mjs.map +1 -0
  221. package/dist/chunks/{ArrowRight-uEMed4kl.cjs → ArrowRight-uUC8qW2c.cjs} +1 -1
  222. package/dist/chunks/ArrowRight-uUC8qW2c.cjs.map +1 -0
  223. package/dist/chunks/{Check-5uKO4aXx.cjs → Check-QBzDcHpr.cjs} +1 -1
  224. package/dist/chunks/Check-QBzDcHpr.cjs.map +1 -0
  225. package/dist/chunks/{Check-FObi_cEO.mjs → Check-qy5XrF1J.mjs} +1 -1
  226. package/dist/chunks/Check-qy5XrF1J.mjs.map +1 -0
  227. package/dist/chunks/{ChevronDown-rdCNNu7u.cjs → ChevronDown-Hc_DTRav.cjs} +4 -4
  228. package/dist/chunks/ChevronDown-Hc_DTRav.cjs.map +1 -0
  229. package/dist/chunks/{ChevronDown-TbRvziNU.mjs → ChevronDown-suAKKmeb.mjs} +1 -1
  230. package/dist/chunks/ChevronDown-suAKKmeb.mjs.map +1 -0
  231. package/dist/chunks/{ChevronRight-XOmSMmxA.mjs → ChevronRight-9owhU_17.mjs} +6 -6
  232. package/dist/chunks/ChevronRight-9owhU_17.mjs.map +1 -0
  233. package/dist/chunks/{ChevronRight-bp7fT1r7.cjs → ChevronRight-MdQC55Yq.cjs} +1 -1
  234. package/dist/chunks/ChevronRight-MdQC55Yq.cjs.map +1 -0
  235. package/dist/chunks/{Close-5Hzp7J3v.mjs → Close-QtH6_3PP.mjs} +4 -4
  236. package/dist/chunks/Close-QtH6_3PP.mjs.map +1 -0
  237. package/dist/chunks/{Close-QFLrdRdG.cjs → Close-dotk0707.cjs} +4 -4
  238. package/dist/chunks/Close-dotk0707.cjs.map +1 -0
  239. package/dist/chunks/{DotsHorizontal-dlN1WvqM.cjs → DotsHorizontal-6hepLUSS.cjs} +1 -1
  240. package/dist/chunks/DotsHorizontal-6hepLUSS.cjs.map +1 -0
  241. package/dist/chunks/{DotsHorizontal-NssXDZGM.mjs → DotsHorizontal-IbmXTXRA.mjs} +1 -1
  242. package/dist/chunks/DotsHorizontal-IbmXTXRA.mjs.map +1 -0
  243. package/dist/chunks/{GenColors-ZwEj275X.mjs → GenColors-OoWIPB3C.mjs} +1 -1
  244. package/dist/chunks/{GenColors-ZwEj275X.mjs.map → GenColors-OoWIPB3C.mjs.map} +1 -1
  245. package/dist/chunks/{GenColors-6mrcK1J2.cjs → GenColors-gc0oVgC_.cjs} +1 -1
  246. package/dist/chunks/{GenColors-6mrcK1J2.cjs.map → GenColors-gc0oVgC_.cjs.map} +1 -1
  247. package/dist/chunks/{NcActionButtonGroup-3W6tc8gZ.mjs → NcActionButtonGroup-D49ovBAN.mjs} +6 -6
  248. package/dist/chunks/{NcActionButtonGroup-3W6tc8gZ.mjs.map → NcActionButtonGroup-D49ovBAN.mjs.map} +1 -1
  249. package/dist/chunks/{NcActionButtonGroup-IEaXhYp3.cjs → NcActionButtonGroup-hpwif0u3.cjs} +3 -2
  250. package/dist/chunks/{NcActionButtonGroup-IEaXhYp3.cjs.map → NcActionButtonGroup-hpwif0u3.cjs.map} +1 -1
  251. package/dist/chunks/{NcActionInput-v8cC8WD4.mjs → NcActionInput-cyxUHqTr.mjs} +7 -7
  252. package/dist/chunks/{NcActionInput-v8cC8WD4.mjs.map → NcActionInput-cyxUHqTr.mjs.map} +1 -1
  253. package/dist/chunks/{NcActionInput-bLRYLx45.cjs → NcActionInput-m10Amrmc.cjs} +3 -2
  254. package/dist/chunks/{NcActionInput-bLRYLx45.cjs.map → NcActionInput-m10Amrmc.cjs.map} +1 -1
  255. package/dist/chunks/{NcActions-CNDgnRLf.mjs → NcActions-bAnBpPrc.mjs} +193 -154
  256. package/dist/chunks/NcActions-bAnBpPrc.mjs.map +1 -0
  257. package/dist/chunks/{NcActions-7ytNFRBJ.cjs → NcActions-z-BOuDhM.cjs} +185 -146
  258. package/dist/chunks/NcActions-z-BOuDhM.cjs.map +1 -0
  259. package/dist/chunks/{NcAppContent-f3dNUfhO.cjs → NcAppContent-t8UhBH3s.cjs} +4 -3
  260. package/dist/chunks/{NcAppContent-f3dNUfhO.cjs.map → NcAppContent-t8UhBH3s.cjs.map} +1 -1
  261. package/dist/chunks/{NcAppContent-XBosilQH.mjs → NcAppContent-y9KdCdfx.mjs} +9 -9
  262. package/dist/chunks/{NcAppContent-XBosilQH.mjs.map → NcAppContent-y9KdCdfx.mjs.map} +1 -1
  263. package/dist/chunks/{NcAppNavigation-oke9RxP6.cjs → NcAppNavigation-PLg2oNao.cjs} +13 -12
  264. package/dist/chunks/{NcAppNavigation-qUXaV47L.mjs.map → NcAppNavigation-PLg2oNao.cjs.map} +1 -1
  265. package/dist/chunks/{NcAppNavigation-qUXaV47L.mjs → NcAppNavigation-hiPB8YDB.mjs} +4 -4
  266. package/dist/chunks/{NcAppNavigation-oke9RxP6.cjs.map → NcAppNavigation-hiPB8YDB.mjs.map} +1 -1
  267. package/dist/chunks/{NcAppNavigationCaption-hVmjPz-2.cjs → NcAppNavigationCaption-kKsAcV3F.cjs} +3 -2
  268. package/dist/chunks/{NcAppNavigationCaption-hVmjPz-2.cjs.map → NcAppNavigationCaption-kKsAcV3F.cjs.map} +1 -1
  269. package/dist/chunks/NcAppNavigationCaption-q8C0HzdM.mjs +47 -0
  270. package/dist/chunks/{NcAppNavigationCaption-M-KZKijE.mjs.map → NcAppNavigationCaption-q8C0HzdM.mjs.map} +1 -1
  271. package/dist/chunks/{NcAppNavigationItem-YYoh37Ky.cjs → NcAppNavigationItem-BTI9BVOR.cjs} +6 -5
  272. package/dist/chunks/NcAppNavigationItem-BTI9BVOR.cjs.map +1 -0
  273. package/dist/chunks/{NcAppNavigationItem-GNnDmUq5.mjs → NcAppNavigationItem-WmNVPGgg.mjs} +10 -10
  274. package/dist/chunks/NcAppNavigationItem-WmNVPGgg.mjs.map +1 -0
  275. package/dist/chunks/{NcAppNavigationNewItem-3l4mRRsI.cjs → NcAppNavigationNewItem-bEBZNF2D.cjs} +3 -2
  276. package/dist/chunks/{NcAppNavigationNewItem-pBHgj8Es.mjs.map → NcAppNavigationNewItem-bEBZNF2D.cjs.map} +1 -1
  277. package/dist/chunks/{NcAppNavigationNewItem-pBHgj8Es.mjs → NcAppNavigationNewItem-iJxYhc8O.mjs} +7 -7
  278. package/dist/chunks/{NcAppNavigationNewItem-3l4mRRsI.cjs.map → NcAppNavigationNewItem-iJxYhc8O.mjs.map} +1 -1
  279. package/dist/chunks/{NcAppNavigationSettings-c_S9UbSU.mjs → NcAppNavigationSettings--bavO03z.mjs} +10 -9
  280. package/dist/chunks/NcAppNavigationSettings--bavO03z.mjs.map +1 -0
  281. package/dist/chunks/{NcAppNavigationSettings-IkF_z_xt.cjs → NcAppNavigationSettings-J7w9P7fI.cjs} +8 -6
  282. package/dist/chunks/NcAppNavigationSettings-J7w9P7fI.cjs.map +1 -0
  283. package/dist/chunks/{NcAppNavigationToggle-S4YTmnky.mjs → NcAppNavigationToggle-8FtmM4XU.mjs} +22 -13
  284. package/dist/chunks/NcAppNavigationToggle-8FtmM4XU.mjs.map +1 -0
  285. package/dist/chunks/NcAppNavigationToggle-mMhLE73x.cjs +119 -0
  286. package/dist/chunks/NcAppNavigationToggle-mMhLE73x.cjs.map +1 -0
  287. package/dist/chunks/{NcAppSettingsDialog-CQtmRXyZ.mjs → NcAppSettingsDialog-FqEZ3lXG.mjs} +9 -9
  288. package/dist/chunks/{NcAppSettingsDialog-CQtmRXyZ.mjs.map → NcAppSettingsDialog-FqEZ3lXG.mjs.map} +1 -1
  289. package/dist/chunks/{NcAppSettingsDialog-L6IvAL_I.cjs → NcAppSettingsDialog-tN3bu9XO.cjs} +4 -3
  290. package/dist/chunks/{NcAppSettingsDialog-L6IvAL_I.cjs.map → NcAppSettingsDialog-tN3bu9XO.cjs.map} +1 -1
  291. package/dist/chunks/{NcAppSidebar-GCbKi7Tk.cjs → NcAppSidebar-J2XzL1WT.cjs} +6 -5
  292. package/dist/chunks/NcAppSidebar-J2XzL1WT.cjs.map +1 -0
  293. package/dist/chunks/{NcAppSidebar-nHbqU8Wl.mjs → NcAppSidebar-lE3w-VIf.mjs} +10 -10
  294. package/dist/chunks/NcAppSidebar-lE3w-VIf.mjs.map +1 -0
  295. package/dist/chunks/{NcAvatar-1gX-bnpd.mjs → NcAvatar-MNJp-c9e.mjs} +26 -26
  296. package/dist/chunks/NcAvatar-MNJp-c9e.mjs.map +1 -0
  297. package/dist/chunks/{NcAvatar-8NgbtiTN.cjs → NcAvatar-OWW68uV3.cjs} +19 -18
  298. package/dist/chunks/NcAvatar-OWW68uV3.cjs.map +1 -0
  299. package/dist/chunks/{NcBreadcrumb-VlYks8Vu.mjs → NcBreadcrumb-4FfLWUDX.mjs} +8 -8
  300. package/dist/chunks/{NcBreadcrumb-VlYks8Vu.mjs.map → NcBreadcrumb-4FfLWUDX.mjs.map} +1 -1
  301. package/dist/chunks/{NcBreadcrumb-3vNer4Fs.cjs → NcBreadcrumb-YClz0EeP.cjs} +6 -5
  302. package/dist/chunks/{NcBreadcrumb-3vNer4Fs.cjs.map → NcBreadcrumb-YClz0EeP.cjs.map} +1 -1
  303. package/dist/chunks/{NcBreadcrumbs-UCJPNjZg.mjs → NcBreadcrumbs-Gln66w_d.mjs} +6 -6
  304. package/dist/chunks/NcBreadcrumbs-Gln66w_d.mjs.map +1 -0
  305. package/dist/chunks/{NcBreadcrumbs-GhYBmcix.cjs → NcBreadcrumbs-SPqCk2mi.cjs} +4 -3
  306. package/dist/chunks/NcBreadcrumbs-SPqCk2mi.cjs.map +1 -0
  307. package/dist/chunks/{NcCheckboxRadioSwitch-s5C7ZGB_.cjs → NcCheckboxRadioSwitch-R-zNvd7d.cjs} +25 -25
  308. package/dist/chunks/NcCheckboxRadioSwitch-R-zNvd7d.cjs.map +1 -0
  309. package/dist/chunks/{NcCheckboxRadioSwitch-3sa_9DpY.mjs → NcCheckboxRadioSwitch-paTuPXGc.mjs} +26 -26
  310. package/dist/chunks/NcCheckboxRadioSwitch-paTuPXGc.mjs.map +1 -0
  311. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Ooje-q1U.cjs +4 -0
  312. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-Ooje-q1U.cjs.map +1 -0
  313. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-l6e0b34w.mjs +3 -0
  314. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-l6e0b34w.mjs.map +1 -0
  315. package/dist/chunks/{NcColorPicker-aNJDKf-I.mjs → NcColorPicker-ullH7CFZ.mjs} +27 -20
  316. package/dist/chunks/NcColorPicker-ullH7CFZ.mjs.map +1 -0
  317. package/dist/chunks/{NcColorPicker-4qA0UWdA.cjs → NcColorPicker-vHHSVKQS.cjs} +16 -8
  318. package/dist/chunks/NcColorPicker-vHHSVKQS.cjs.map +1 -0
  319. package/dist/chunks/{NcContent-x5KPSopo.cjs → NcContent-M_ZUbKIL.cjs} +5 -4
  320. package/dist/chunks/{NcContent-x5KPSopo.cjs.map → NcContent-M_ZUbKIL.cjs.map} +1 -1
  321. package/dist/chunks/{NcContent-V1PRVhsU.mjs → NcContent-RGzECysY.mjs} +8 -8
  322. package/dist/chunks/{NcContent-V1PRVhsU.mjs.map → NcContent-RGzECysY.mjs.map} +1 -1
  323. package/dist/chunks/{NcDashboardWidget-pzCvVb_0.mjs → NcDashboardWidget-KMrDOCQC.mjs} +7 -7
  324. package/dist/chunks/{NcDashboardWidget-pzCvVb_0.mjs.map → NcDashboardWidget-KMrDOCQC.mjs.map} +1 -1
  325. package/dist/chunks/{NcDashboardWidget-w15LYpmC.cjs → NcDashboardWidget-mV9UTaUo.cjs} +3 -2
  326. package/dist/chunks/{NcDashboardWidget-w15LYpmC.cjs.map → NcDashboardWidget-mV9UTaUo.cjs.map} +1 -1
  327. package/dist/chunks/{NcDashboardWidgetItem-FNmPTAuj.mjs → NcDashboardWidgetItem-Hg805JCn.mjs} +5 -5
  328. package/dist/chunks/{NcDashboardWidgetItem-FNmPTAuj.mjs.map → NcDashboardWidgetItem-Hg805JCn.mjs.map} +1 -1
  329. package/dist/chunks/{NcDashboardWidgetItem-YJerQyu5.cjs → NcDashboardWidgetItem-_dvqhu7z.cjs} +10 -9
  330. package/dist/chunks/{NcDashboardWidgetItem-YJerQyu5.cjs.map → NcDashboardWidgetItem-_dvqhu7z.cjs.map} +1 -1
  331. package/dist/chunks/{NcDateTime-eHTrKYG4.cjs → NcDateTime-TRJPnoyx.cjs} +1 -1
  332. package/dist/chunks/{NcDateTime-eHTrKYG4.cjs.map → NcDateTime-TRJPnoyx.cjs.map} +1 -1
  333. package/dist/chunks/{NcDateTime-22ULCxg8.mjs → NcDateTime-t_L5Vf2V.mjs} +1 -1
  334. package/dist/chunks/{NcDateTime-22ULCxg8.mjs.map → NcDateTime-t_L5Vf2V.mjs.map} +1 -1
  335. package/dist/chunks/{NcDialog-b2LjzZB8.mjs → NcDialog-652A8lMI.mjs} +12 -15
  336. package/dist/chunks/NcDialog-652A8lMI.mjs.map +1 -0
  337. package/dist/chunks/{NcDialog-KlvRL7k1.cjs → NcDialog-dPYf81Dr.cjs} +5 -7
  338. package/dist/chunks/NcDialog-dPYf81Dr.cjs.map +1 -0
  339. package/dist/chunks/{NcDialogButton-O4JZ53Dj.mjs → NcDialogButton-QuoJDLGH.mjs} +1 -1
  340. package/dist/chunks/{NcDialogButton-O4JZ53Dj.mjs.map → NcDialogButton-QuoJDLGH.mjs.map} +1 -1
  341. package/dist/chunks/{NcDialogButton-37xKCh_l.cjs → NcDialogButton-V3nj_xwS.cjs} +1 -1
  342. package/dist/chunks/{NcDialogButton-37xKCh_l.cjs.map → NcDialogButton-V3nj_xwS.cjs.map} +1 -1
  343. package/dist/chunks/{NcEmojiPicker-o1VRXxQO.cjs → NcEmojiPicker-SiFuLrOy.cjs} +11 -10
  344. package/dist/chunks/NcEmojiPicker-SiFuLrOy.cjs.map +1 -0
  345. package/dist/chunks/{NcEmojiPicker-H_YmCt4L.mjs → NcEmojiPicker-t9ZKXOeE.mjs} +43 -43
  346. package/dist/chunks/NcEmojiPicker-t9ZKXOeE.mjs.map +1 -0
  347. package/dist/chunks/{NcHeaderMenu-CIYGCufy.cjs → NcHeaderMenu-BSi8E43v.cjs} +4 -2
  348. package/dist/chunks/{NcHeaderMenu-CIYGCufy.cjs.map → NcHeaderMenu-BSi8E43v.cjs.map} +1 -1
  349. package/dist/chunks/{NcHeaderMenu-CfEUQ0JV.mjs → NcHeaderMenu-Vytc8Eqg.mjs} +5 -4
  350. package/dist/chunks/{NcHeaderMenu-CfEUQ0JV.mjs.map → NcHeaderMenu-Vytc8Eqg.mjs.map} +1 -1
  351. package/dist/chunks/{NcIconSvgWrapper-_lgitSfS.cjs → NcIconSvgWrapper-R7a7dIg4.cjs} +11 -10
  352. package/dist/chunks/{NcIconSvgWrapper-P-GkSjTH.mjs.map → NcIconSvgWrapper-R7a7dIg4.cjs.map} +1 -1
  353. package/dist/chunks/{NcIconSvgWrapper-P-GkSjTH.mjs → NcIconSvgWrapper-n3MnAe1S.mjs} +6 -6
  354. package/dist/chunks/{NcIconSvgWrapper-_lgitSfS.cjs.map → NcIconSvgWrapper-n3MnAe1S.mjs.map} +1 -1
  355. package/dist/chunks/{NcInputConfirmCancel-YzEcukdc.cjs → NcInputConfirmCancel-QI-5lWEZ.cjs} +18 -17
  356. package/dist/chunks/{NcInputConfirmCancel-YzEcukdc.cjs.map → NcInputConfirmCancel-QI-5lWEZ.cjs.map} +1 -1
  357. package/dist/chunks/{NcInputConfirmCancel-lUDtoN2O.mjs → NcInputConfirmCancel-iPOBMuwq.mjs} +11 -11
  358. package/dist/chunks/{NcInputConfirmCancel-lUDtoN2O.mjs.map → NcInputConfirmCancel-iPOBMuwq.mjs.map} +1 -1
  359. package/dist/chunks/{NcListItem-bBx6_yWw.cjs → NcListItem-J1Ru_eFH.cjs} +11 -10
  360. package/dist/chunks/NcListItem-J1Ru_eFH.cjs.map +1 -0
  361. package/dist/chunks/{NcListItem-AZpInn_s.mjs → NcListItem-m2T3a1c4.mjs} +13 -13
  362. package/dist/chunks/NcListItem-m2T3a1c4.mjs.map +1 -0
  363. package/dist/chunks/{NcListItemIcon-1ZcwsrMT.mjs → NcListItemIcon-RHDhF_NC.mjs} +12 -11
  364. package/dist/chunks/{NcListItemIcon-1ZcwsrMT.mjs.map → NcListItemIcon-RHDhF_NC.mjs.map} +1 -1
  365. package/dist/chunks/{NcListItemIcon-uPc7p1KY.cjs → NcListItemIcon-aE0JNfCX.cjs} +4 -2
  366. package/dist/chunks/{NcListItemIcon-uPc7p1KY.cjs.map → NcListItemIcon-aE0JNfCX.cjs.map} +1 -1
  367. package/dist/chunks/{NcPasswordField-fNiTJMmG.mjs → NcPasswordField-h__iqTKL.mjs} +10 -10
  368. package/dist/chunks/NcPasswordField-h__iqTKL.mjs.map +1 -0
  369. package/dist/chunks/{NcPasswordField-YvUbX2WS.cjs → NcPasswordField-rgZThnoq.cjs} +9 -9
  370. package/dist/chunks/NcPasswordField-rgZThnoq.cjs.map +1 -0
  371. package/dist/chunks/{NcPopover-NyUZ2r7V.mjs → NcPopover-T4GMXmKV.mjs} +43 -50
  372. package/dist/chunks/NcPopover-T4GMXmKV.mjs.map +1 -0
  373. package/dist/chunks/{NcPopover-EXxv8Pzw.cjs → NcPopover-judBGW5r.cjs} +19 -25
  374. package/dist/chunks/NcPopover-judBGW5r.cjs.map +1 -0
  375. package/dist/chunks/{NcProgressBar-yrdD1jxU.cjs → NcProgressBar-BthaVVHU.cjs} +2 -1
  376. package/dist/chunks/{NcProgressBar-yrdD1jxU.cjs.map → NcProgressBar-BthaVVHU.cjs.map} +1 -1
  377. package/dist/chunks/{NcProgressBar-hQCFE5H3.mjs → NcProgressBar-h2ufKS6c.mjs} +1 -1
  378. package/dist/chunks/{NcProgressBar-hQCFE5H3.mjs.map → NcProgressBar-h2ufKS6c.mjs.map} +1 -1
  379. package/dist/chunks/{NcRelatedResourcesPanel-H2imJgxi.mjs → NcRelatedResourcesPanel-DCGxBHHT.mjs} +9 -9
  380. package/dist/chunks/{NcRelatedResourcesPanel-H2imJgxi.mjs.map → NcRelatedResourcesPanel-DCGxBHHT.mjs.map} +1 -1
  381. package/dist/chunks/{NcRelatedResourcesPanel-DCqlPqZc.cjs → NcRelatedResourcesPanel-u1ob1njl.cjs} +3 -2
  382. package/dist/chunks/{NcRelatedResourcesPanel-DCqlPqZc.cjs.map → NcRelatedResourcesPanel-u1ob1njl.cjs.map} +1 -1
  383. package/dist/chunks/{NcRichContenteditable-lPa8fqWG.cjs → NcRichContenteditable-03_DWRDq.cjs} +8 -7
  384. package/dist/chunks/{NcRichContenteditable-lPa8fqWG.cjs.map → NcRichContenteditable-03_DWRDq.cjs.map} +1 -1
  385. package/dist/chunks/{NcRichContenteditable-EZp-vrCT.mjs → NcRichContenteditable-_Ac_ZEfF.mjs} +11 -11
  386. package/dist/chunks/{NcRichContenteditable-EZp-vrCT.mjs.map → NcRichContenteditable-_Ac_ZEfF.mjs.map} +1 -1
  387. package/dist/chunks/{NcRichText-7CHftQ4Z.mjs → NcRichText-4Y574QZM.mjs} +20 -13
  388. package/dist/chunks/NcRichText-4Y574QZM.mjs.map +1 -0
  389. package/dist/chunks/{NcRichText-SPiEkcnt.cjs → NcRichText-Qh1uk4U8.cjs} +41 -34
  390. package/dist/chunks/NcRichText-Qh1uk4U8.cjs.map +1 -0
  391. package/dist/chunks/{NcSelect-c9-eF29z.cjs → NcSelect-BnTLFd27.cjs} +22 -20
  392. package/dist/chunks/{NcSelect-zx9IspDS.mjs.map → NcSelect-BnTLFd27.cjs.map} +1 -1
  393. package/dist/chunks/{NcSelect-zx9IspDS.mjs → NcSelect-DzZqm1fn.mjs} +16 -15
  394. package/dist/chunks/{NcSelect-c9-eF29z.cjs.map → NcSelect-DzZqm1fn.mjs.map} +1 -1
  395. package/dist/chunks/{NcSelectTags-doFIXNxC.cjs → NcSelectTags-PgYBpBfS.cjs} +1 -1
  396. package/dist/chunks/{NcSelectTags-doFIXNxC.cjs.map → NcSelectTags-PgYBpBfS.cjs.map} +1 -1
  397. package/dist/chunks/{NcSelectTags-WGdCwmRr.mjs → NcSelectTags-qBzjNabg.mjs} +2 -2
  398. package/dist/chunks/{NcSelectTags-WGdCwmRr.mjs.map → NcSelectTags-qBzjNabg.mjs.map} +1 -1
  399. package/dist/chunks/{NcSettingsInputText-YMRo6B3V.mjs → NcSettingsInputText-DROaqnIE.mjs} +4 -4
  400. package/dist/chunks/{NcSettingsInputText-YMRo6B3V.mjs.map → NcSettingsInputText-DROaqnIE.mjs.map} +1 -1
  401. package/dist/chunks/{NcSettingsInputText-sJarpoq-.cjs → NcSettingsInputText-FH_6k117.cjs} +3 -2
  402. package/dist/chunks/{NcSettingsInputText-sJarpoq-.cjs.map → NcSettingsInputText-FH_6k117.cjs.map} +1 -1
  403. package/dist/chunks/{NcSettingsSection-R_JKZdJk.cjs → NcSettingsSection-HGZQAB56.cjs} +11 -10
  404. package/dist/chunks/NcSettingsSection-HGZQAB56.cjs.map +1 -0
  405. package/dist/chunks/{NcSettingsSection-zdWzOqxk.mjs → NcSettingsSection-pxZK64xe.mjs} +5 -5
  406. package/dist/chunks/NcSettingsSection-pxZK64xe.mjs.map +1 -0
  407. package/dist/chunks/{NcSettingsSelectGroup-Ghgl6Y_d.mjs → NcSettingsSelectGroup-NtqYZTN-.mjs} +5 -5
  408. package/dist/chunks/{NcSettingsSelectGroup-Ghgl6Y_d.mjs.map → NcSettingsSelectGroup-NtqYZTN-.mjs.map} +1 -1
  409. package/dist/chunks/{NcSettingsSelectGroup-NhJyFPsw.cjs → NcSettingsSelectGroup-d0wrSLXq.cjs} +3 -2
  410. package/dist/chunks/{NcSettingsSelectGroup-NhJyFPsw.cjs.map → NcSettingsSelectGroup-d0wrSLXq.cjs.map} +1 -1
  411. package/dist/chunks/{NcTextField-8ap5MAGr.cjs → NcTextField-2P7HaQ-i.cjs} +2 -2
  412. package/dist/chunks/NcTextField-2P7HaQ-i.cjs.map +1 -0
  413. package/dist/chunks/{NcTextField-tIJ3fJ37.mjs → NcTextField-RnMWfagW.mjs} +6 -6
  414. package/dist/chunks/NcTextField-RnMWfagW.mjs.map +1 -0
  415. package/dist/chunks/{NcTimezonePicker-ag-krDDP.cjs → NcTimezonePicker-98XoQsZ0.cjs} +18 -22
  416. package/dist/chunks/{NcTimezonePicker-ag-krDDP.cjs.map → NcTimezonePicker-98XoQsZ0.cjs.map} +1 -1
  417. package/dist/chunks/{NcTimezonePicker-Ue_mc4jo.mjs → NcTimezonePicker-HvUUs7VK.mjs} +21 -25
  418. package/dist/chunks/{NcTimezonePicker-Ue_mc4jo.mjs.map → NcTimezonePicker-HvUUs7VK.mjs.map} +1 -1
  419. package/dist/chunks/{NcUserBubble-hfgJXqk2.cjs → NcUserBubble-pCJK4AXS.cjs} +6 -5
  420. package/dist/chunks/{NcUserBubble-s30BQXdv.mjs.map → NcUserBubble-pCJK4AXS.cjs.map} +1 -1
  421. package/dist/chunks/{NcUserBubble-s30BQXdv.mjs → NcUserBubble-y-RdfxGU.mjs} +5 -5
  422. package/dist/chunks/{NcUserBubble-hfgJXqk2.cjs.map → NcUserBubble-y-RdfxGU.mjs.map} +1 -1
  423. package/dist/chunks/{NcUserStatusIcon-H5b_e8YL.mjs → NcUserStatusIcon-Wwtp8zH3.mjs} +4 -4
  424. package/dist/chunks/{NcUserStatusIcon-PevYJx6w.cjs.map → NcUserStatusIcon-Wwtp8zH3.mjs.map} +1 -1
  425. package/dist/chunks/{NcUserStatusIcon-PevYJx6w.cjs → NcUserStatusIcon-iczxs1an.cjs} +6 -5
  426. package/dist/chunks/{NcUserStatusIcon-H5b_e8YL.mjs.map → NcUserStatusIcon-iczxs1an.cjs.map} +1 -1
  427. package/dist/chunks/{ScopeComponent-9XNLQCuu.mjs → ScopeComponent-3zN8-DXa.mjs} +3 -3
  428. package/dist/chunks/{ScopeComponent-9XNLQCuu.mjs.map → ScopeComponent-3zN8-DXa.mjs.map} +1 -1
  429. package/dist/chunks/{ScopeComponent-_Cg8ogL-.cjs → ScopeComponent-_Qe2Qn0v.cjs} +1 -1
  430. package/dist/chunks/{ScopeComponent-_Cg8ogL-.cjs.map → ScopeComponent-_Qe2Qn0v.cjs.map} +1 -1
  431. package/dist/chunks/_l10n--bDJ_Qyj.mjs +66 -0
  432. package/dist/chunks/_l10n--bDJ_Qyj.mjs.map +1 -0
  433. package/dist/chunks/_l10n-mEcF7TYU.cjs +64 -0
  434. package/dist/chunks/_l10n-mEcF7TYU.cjs.map +1 -0
  435. package/dist/chunks/{index-AX_b-FPF.cjs → index-U21dQVa7.cjs} +1 -0
  436. package/dist/chunks/{index-AX_b-FPF.cjs.map → index-U21dQVa7.cjs.map} +1 -1
  437. package/dist/chunks/{index-KrMGGc7j.mjs → index-n2q3iT69.mjs} +1 -0
  438. package/dist/chunks/{index-KrMGGc7j.mjs.map → index-n2q3iT69.mjs.map} +1 -1
  439. package/dist/chunks/{referencePickerModal-rHOAeK-a.cjs → referencePickerModal-Cnscu3tI.cjs} +6 -5
  440. package/dist/chunks/referencePickerModal-Cnscu3tI.cjs.map +1 -0
  441. package/dist/chunks/{referencePickerModal-jbqYHMmd.mjs → referencePickerModal-oI8JiWDV.mjs} +14 -14
  442. package/dist/chunks/referencePickerModal-oI8JiWDV.mjs.map +1 -0
  443. package/dist/chunks/{usernameToColor-pYptUj7i.mjs → usernameToColor-HiPZbTLh.mjs} +1 -1
  444. package/dist/chunks/{usernameToColor-pYptUj7i.mjs.map → usernameToColor-HiPZbTLh.mjs.map} +1 -1
  445. package/dist/chunks/{usernameToColor-fJ1S8Q2S.cjs → usernameToColor-nIJ4GOsW.cjs} +1 -1
  446. package/dist/chunks/{usernameToColor-fJ1S8Q2S.cjs.map → usernameToColor-nIJ4GOsW.cjs.map} +1 -1
  447. package/dist/index.cjs +4 -4
  448. package/dist/index.mjs +48 -48
  449. package/dist/vendor.LICENSE.txt +1 -1
  450. package/package.json +4 -4
  451. package/dist/chunks/AlertCircleOutline-VgVvRWpm.cjs.map +0 -1
  452. package/dist/chunks/AlertCircleOutline-lwSRucNO.mjs.map +0 -1
  453. package/dist/chunks/ArrowLeft-3KC2k3tR.cjs.map +0 -1
  454. package/dist/chunks/ArrowLeft-buaCjhfr.mjs.map +0 -1
  455. package/dist/chunks/ArrowRight-4p6gv-9o.mjs.map +0 -1
  456. package/dist/chunks/ArrowRight-uEMed4kl.cjs.map +0 -1
  457. package/dist/chunks/Check-5uKO4aXx.cjs.map +0 -1
  458. package/dist/chunks/Check-FObi_cEO.mjs.map +0 -1
  459. package/dist/chunks/ChevronDown-TbRvziNU.mjs.map +0 -1
  460. package/dist/chunks/ChevronDown-rdCNNu7u.cjs.map +0 -1
  461. package/dist/chunks/ChevronRight-XOmSMmxA.mjs.map +0 -1
  462. package/dist/chunks/ChevronRight-bp7fT1r7.cjs.map +0 -1
  463. package/dist/chunks/Close-5Hzp7J3v.mjs.map +0 -1
  464. package/dist/chunks/Close-QFLrdRdG.cjs.map +0 -1
  465. package/dist/chunks/DotsHorizontal-NssXDZGM.mjs.map +0 -1
  466. package/dist/chunks/DotsHorizontal-dlN1WvqM.cjs.map +0 -1
  467. package/dist/chunks/NcActions-7ytNFRBJ.cjs.map +0 -1
  468. package/dist/chunks/NcActions-CNDgnRLf.mjs.map +0 -1
  469. package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs +0 -47
  470. package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs.map +0 -1
  471. package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs.map +0 -1
  472. package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs.map +0 -1
  473. package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs.map +0 -1
  474. package/dist/chunks/NcAppNavigationToggle-S4YTmnky.mjs.map +0 -1
  475. package/dist/chunks/NcAppNavigationToggle-Tvz9copM.cjs +0 -109
  476. package/dist/chunks/NcAppNavigationToggle-Tvz9copM.cjs.map +0 -1
  477. package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs.map +0 -1
  478. package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs.map +0 -1
  479. package/dist/chunks/NcAvatar-1gX-bnpd.mjs.map +0 -1
  480. package/dist/chunks/NcAvatar-8NgbtiTN.cjs.map +0 -1
  481. package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs.map +0 -1
  482. package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs.map +0 -1
  483. package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs.map +0 -1
  484. package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs.map +0 -1
  485. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs +0 -3
  486. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs.map +0 -1
  487. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs +0 -3
  488. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs.map +0 -1
  489. package/dist/chunks/NcColorPicker-4qA0UWdA.cjs.map +0 -1
  490. package/dist/chunks/NcColorPicker-aNJDKf-I.mjs.map +0 -1
  491. package/dist/chunks/NcDialog-KlvRL7k1.cjs.map +0 -1
  492. package/dist/chunks/NcDialog-b2LjzZB8.mjs.map +0 -1
  493. package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs.map +0 -1
  494. package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs.map +0 -1
  495. package/dist/chunks/NcListItem-AZpInn_s.mjs.map +0 -1
  496. package/dist/chunks/NcListItem-bBx6_yWw.cjs.map +0 -1
  497. package/dist/chunks/NcPasswordField-YvUbX2WS.cjs.map +0 -1
  498. package/dist/chunks/NcPasswordField-fNiTJMmG.mjs.map +0 -1
  499. package/dist/chunks/NcPopover-EXxv8Pzw.cjs.map +0 -1
  500. package/dist/chunks/NcPopover-NyUZ2r7V.mjs.map +0 -1
  501. package/dist/chunks/NcRichText-7CHftQ4Z.mjs.map +0 -1
  502. package/dist/chunks/NcRichText-SPiEkcnt.cjs.map +0 -1
  503. package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs.map +0 -1
  504. package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs.map +0 -1
  505. package/dist/chunks/NcTextField-8ap5MAGr.cjs.map +0 -1
  506. package/dist/chunks/NcTextField-tIJ3fJ37.mjs.map +0 -1
  507. package/dist/chunks/_l10n-juAR1Sua.cjs +0 -64
  508. package/dist/chunks/_l10n-juAR1Sua.cjs.map +0 -1
  509. package/dist/chunks/_l10n-tZEKUJRj.mjs +0 -66
  510. package/dist/chunks/_l10n-tZEKUJRj.mjs.map +0 -1
  511. package/dist/chunks/referencePickerModal-jbqYHMmd.mjs.map +0 -1
  512. package/dist/chunks/referencePickerModal-rHOAeK-a.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"_l10n-tZEKUJRj.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"referencePickerModal-jbqYHMmd.mjs","sources":["../../src/components/NcRichText/widgets.js","../../src/components/NcRichText/NcReferenceWidget.vue","../../src/components/NcRichText/NcReferencePicker/customPickerElements.js","../../src/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue","../../src/components/NcRichText/NcReferencePicker/providerHelper.js","../../src/components/NcRichText/NcReferencePicker/utils.js","../../node_modules/vue-material-design-icons/LinkVariant.vue","../../src/components/NcRichText/NcReferencePicker/NcProviderList.vue","../../src/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue","../../src/components/NcRichText/NcReferencePicker/NcSearchResult.vue","../../src/components/NcRichText/NcReferencePicker/NcSearch.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePicker.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue","../../src/components/NcRichText/NcReferencePicker/referencePickerModal.js"],"sourcesContent":["if (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst registerWidget = (id, callback, onDestroy = (el) => {}) => {\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t}\n}\n\nconst renderWidget = (el, { richObjectType, richObject, accessible }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible })\n}\n\nconst destroyWidget = (richObjectType, el) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = registerWidget\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n}\n","<template>\n\t<div>\n\t\t<div v-if=\"reference && hasCustomWidget\" class=\"widget-custom\">\n\t\t\t<div ref=\"customWidget\" />\n\t\t</div>\n\n\t\t<a v-else-if=\"!noAccess && reference && reference.openGraphObject && !hasCustomWidget\"\n\t\t\t:href=\"reference.openGraphObject.link\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\ttarget=\"_blank\"\n\t\t\tclass=\"widget-default\">\n\t\t\t<img v-if=\"reference.openGraphObject.thumb\" class=\"widget-default--image\" :src=\"reference.openGraphObject.thumb\">\n\t\t\t<div class=\"widget-default--details\">\n\t\t\t\t<p class=\"widget-default--name\">{{ reference.openGraphObject.name }}</p>\n\t\t\t\t<p class=\"widget-default--description\" :style=\"descriptionStyle\">{{ reference.openGraphObject.description }}</p>\n\t\t\t\t<p class=\"widget-default--link\">{{ compactLink }}</p>\n\t\t\t</div>\n\t\t</a>\n\t</div>\n</template>\n<script>\nimport { renderWidget, isWidgetRegistered, destroyWidget } from './widgets.js'\n\nexport default {\n\tname: 'NcReferenceWidget',\n\tprops: {\n\t\treference: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcompact: 3,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasCustomWidget() {\n\t\t\treturn isWidgetRegistered(this.reference.richObjectType)\n\t\t},\n\t\tnoAccess() {\n\t\t\treturn this.reference && !this.reference.accessible\n\t\t},\n\t\tdescriptionStyle() {\n\t\t\tif (this.compact === 0) {\n\t\t\t\treturn {\n\t\t\t\t\tdisplay: 'none',\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst lineClamp = this.compact < 4 ? this.compact : 3\n\t\t\treturn {\n\t\t\t\tlineClamp,\n\t\t\t\twebkitLineClamp: lineClamp,\n\t\t\t}\n\t\t},\n\t\tcompactLink() {\n\t\t\tconst link = this.reference.openGraphObject.link\n\t\t\tif (!link) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tif (link.startsWith('https://')) {\n\t\t\t\treturn link.substring(8)\n\t\t\t}\n\t\t\tif (link.startsWith('http://')) {\n\t\t\t\treturn link.substring(7)\n\t\t\t}\n\t\t\treturn link\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.renderWidget()\n\t\tthis.observer = new ResizeObserver(entries => {\n\t\t\tif (entries[0].contentRect.width < 450) {\n\t\t\t\tthis.compact = 0\n\t\t\t} else if (entries[0].contentRect.width < 550) {\n\t\t\t\tthis.compact = 1\n\t\t\t} else if (entries[0].contentRect.width < 650) {\n\t\t\t\tthis.compact = 2\n\t\t\t} else {\n\t\t\t\tthis.compact = 3\n\t\t\t}\n\n\t\t})\n\t\tthis.observer.observe(this.$el)\n\t},\n\tbeforeDestroy() {\n\t\tthis.observer.disconnect()\n\t\tdestroyWidget(this.reference.richObjectType, this.$el)\n\t},\n\tmethods: {\n\t\trenderWidget() {\n\t\t\tif (this.$refs.customWidget) {\n\t\t\t\tthis.$refs.customWidget.innerHTML = ''\n\t\t\t}\n\t\t\tif (this?.reference?.richObjectType === 'open-graph') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$nextTick(() => {\n\t\t\t\t// Waiting for the ref to become available\n\t\t\t\trenderWidget(this.$refs.customWidget, this.reference)\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\n@mixin widget {\n\twidth: 100%;\n\tmargin: auto;\n\tmargin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n\tmargin-top: calc(var(--default-grid-baseline, 4px) * 3);\n\toverflow: hidden;\n\tborder: 2px solid var(--color-border);\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: transparent;\n\tdisplay: flex;\n}\n\n.widget-custom {\n\t@include widget;\n}\n\n.widget-access {\n\t@include widget;\n\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n}\n\n.widget-default {\n\t@include widget;\n\n\t&--compact {\n\t\tflex-direction: column;\n\n\t\t.widget-default--image {\n\t\t\twidth: 100%;\n\t\t\theight: 150px;\n\t\t}\n\n\t\t.widget-default--details {\n\t\t\twidth: 100%;\n\t\t\tpadding-top: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t\tpadding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t}\n\n\t\t.widget-default--description {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n\t&--image {\n\t\twidth: 40%;\n\t\tbackground-position: center;\n\t\tbackground-size: cover;\n\t\tbackground-repeat: no-repeat;\n\t}\n\n\t&--name {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\tfont-weight: bold;\n\t}\n\n\t&--details {\n\t\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n\t\twidth: 60%;\n\n\t\tp {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t&--description {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\tline-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t}\n\n\t&--link {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n}\n</style>\n","if (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n","<template>\n\t<div ref=\"domElement\" />\n</template>\n\n<script>\nimport { renderCustomPickerElement, isCustomPickerElementRegistered, destroyCustomPickerElement } from './customPickerElements.js'\n\nexport default {\n\tname: 'NcCustomPickerElement',\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tisRegistered: isCustomPickerElementRegistered(this.provider.id),\n\t\t\trenderResult: null,\n\t\t}\n\t},\n\tmounted() {\n\t\tif (this.isRegistered) {\n\t\t\tthis.renderElement()\n\t\t}\n\t},\n\tbeforeDestroy() {\n\t\tif (this.isRegistered) {\n\t\t\tdestroyCustomPickerElement(this.provider.id, this.$el, this.renderResult)\n\t\t}\n\t},\n\tmethods: {\n\t\trenderElement() {\n\t\t\tif (this.$refs.domElement) {\n\t\t\t\tthis.$refs.domElement.innerHTML = ''\n\t\t\t}\n\n\t\t\tconst renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false })\n\t\t\t// this works whether renderCustomPickerElement returns a promise or a value\n\t\t\tPromise.resolve(renderFunctionResult).then(result => {\n\t\t\t\tthis.renderResult = result\n\t\t\t\tif (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n\t\t\t\t\tthis.renderResult.object.$on('submit', this.onSubmit)\n\t\t\t\t\tthis.renderResult.object.$on('cancel', this.onCancel)\n\t\t\t\t}\n\t\t\t\tthis.renderResult.element.addEventListener('submit', (e) => {\n\t\t\t\t\tthis.onSubmit(e.detail)\n\t\t\t\t})\n\t\t\t\tthis.renderResult.element.addEventListener('cancel', this.onCancel)\n\t\t\t})\n\t\t},\n\t\tonSubmit(value) {\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\t\tonCancel() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// nothing yet\n</style>\n","import { isCustomPickerElementRegistered } from './customPickerElements.js'\n\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, imagePath } from '@nextcloud/router'\n\nexport const anyLinkProviderId = 'any-link'\n\nconst anyLinkProvider = {\n\tid: anyLinkProviderId,\n\ttitle: t('Any link'),\n\ticon_url: imagePath('core', 'filetypes/link.svg'),\n}\n\n// only get the provider list once, even if functions of this file are imported multiple times by different apps/components\nif (!window._vue_richtext_reference_providers) {\n\twindow._vue_richtext_reference_providers = loadState('core', 'reference-provider-list', [])\n}\n\n// single timestamps object used by every entity in the page\nif (!window._vue_richtext_reference_provider_timestamps) {\n\twindow._vue_richtext_reference_provider_timestamps = loadState('core', 'reference-provider-timestamps', {})\n}\n\n/**\n * @param {string} providerId The provider ID\n * @return {object} The provider object\n */\nexport function getProvider(providerId) {\n\tif (providerId === anyLinkProviderId) {\n\t\treturn anyLinkProvider\n\t}\n\treturn getProviders().find(p => p.id === providerId)\n}\n\n/**\n * @return {Array} Raw provider list as it was provided by the server\n */\nexport function getProviders() {\n\treturn window._vue_richtext_reference_providers.filter(p => {\n\t\t// avoid providers with no associated search provider and no custom component registered\n\t\tconst keep = (!!p.search_providers_ids && p.search_providers_ids.length > 0) || isCustomPickerElementRegistered(p.id)\n\t\tif (!keep) {\n\t\t\tconsole.debug('[smart picker]', p.id, 'reference provider is discoverable but does not have any related search provider or custom picker component registered')\n\t\t}\n\t\treturn keep\n\t})\n}\n\n/**\n * Helper function to sort a list of providers according to 2 factors:\n * - their \"last used timestamp\"\n * - their \"order\" property (coming from the provider declaration in the server implementation)\n *\n * @param {Array} providerList list of provider objects\n * @return {Array} the sorted provider list\n */\nexport function sortProviders(providerList) {\n\tconst timestamps = window._vue_richtext_reference_provider_timestamps\n\n\treturn providerList.sort((a, b) => {\n\t\treturn a.order === b.order\n\t\t\t? 0\n\t\t\t: a.order > b.order\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t}).sort((a, b) => {\n\t\tconst ta = timestamps[a.id]\n\t\tconst tb = timestamps[b.id]\n\t\treturn ta === tb\n\t\t\t? 0\n\t\t\t: tb === undefined\n\t\t\t\t? -1\n\t\t\t\t: ta === undefined\n\t\t\t\t\t? 1\n\t\t\t\t\t: ta > tb\n\t\t\t\t\t\t? -1\n\t\t\t\t\t\t: 1\n\t})\n}\n\n/**\n * Helper function to search a provider from a search query\n * Result is a sorted list of providers\n *\n * @param {string} query The search query\n * @param {number} limit (optional) max number of results\n * @return {Array} the sorted/filtered provider list\n */\nexport function searchProvider(query, limit = null) {\n\tconst providers = getProviders()\n\tconst escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n\tconst regexp = new RegExp(escapedQuery, 'i')\n\tconst sortedProviders = sortProviders(providers)\n\tconst filteredSortedProviders = sortedProviders.filter(p => {\n\t\treturn p.title.match(regexp)\n\t})\n\tconst searchResult = limit\n\t\t? filteredSortedProviders.slice(0, limit)\n\t\t: filteredSortedProviders\n\t// append the 'any link' provider in the full list or when there is no result\n\tif (query === '' || searchResult.length === 0) {\n\t\tsearchResult.push(anyLinkProvider)\n\t}\n\treturn searchResult\n}\n\n/**\n * Update the \"last used timestamp\" on the server side and then locally in the frontend\n *\n * @param {number} providerId The id of the search provider\n */\nexport function touchProvider(providerId) {\n\tconst timestamp = Math.floor(Date.now() / 1000)\n\tconst params = {\n\t\ttimestamp,\n\t}\n\tconst url = generateOcsUrl('references/provider/{providerId}', { providerId })\n\taxios.put(url, params)\n\t\t.then((response) => {\n\t\t\twindow._vue_richtext_reference_provider_timestamps[providerId] = timestamp\n\t\t})\n}\n","let mytimer = 0\n/**\n *\n * @param {Function} callback The callback to call after the delay\n * @param {number} ms The delay in milli-seconds\n */\nexport function delay(callback, ms) {\n\treturn function() {\n\t\tconst context = this\n\t\tconst args = arguments\n\t\tclearTimeout(mytimer)\n\t\tmytimer = setTimeout(function() {\n\t\t\tcallback.apply(context, args)\n\t\t}, ms || 0)\n\t}\n}\n/**\n *\n * @param {string} str The url\n */\nexport function isUrl(str) {\n\ttry {\n\t\treturn Boolean(new URL(str))\n\t} catch (error) {\n\t\treturn false\n\t}\n}\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon link-variant-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LinkVariantIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n\t<div class=\"provider-list\">\n\t\t<NcSelect ref=\"provider-select\"\n\t\t\tv-model=\"selectedProvider\"\n\t\t\tclass=\"provider-list--select\"\n\t\t\tinput-id=\"provider-select-input\"\n\t\t\tlabel=\"title\"\n\t\t\t:placeholder=\"multiselectPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:append-to-body=\"false\"\n\t\t\t:clear-search-on-select=\"true\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:filterable=\"false\"\n\t\t\t@search=\"onSearch\"\n\t\t\t@input=\"onProviderSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isLink\" class=\"provider\">\n\t\t\t\t\t<LinkVariantIcon class=\"link-icon\" :size=\"20\" />\n\t\t\t\t\t<span>{{ option.title }}</span>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class=\"provider\">\n\t\t\t\t\t<img class=\"provider-icon\"\n\t\t\t\t\t\t:src=\"option.icon_url\"\n\t\t\t\t\t\t:alt=\"providerIconAlt\">\n\t\t\t\t\t<NcHighlight class=\"option-text\"\n\t\t\t\t\t\t:search=\"query\"\n\t\t\t\t\t\t:text=\"option.title\" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent class=\"provider-list--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<LinkVariantIcon />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport { searchProvider } from './providerHelper.js'\nimport { isUrl } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcHighlight from '../../NcHighlight/index.js'\nimport NcSelect from '../../NcSelect/index.js'\nimport { t } from '../../../l10n.js'\n\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nexport default {\n\tname: 'NcProviderList',\n\tcomponents: {\n\t\tNcSelect,\n\t\tNcHighlight,\n\t\tNcEmptyContent,\n\t\tLinkVariantIcon,\n\t},\n\temits: [\n\t\t'select-provider',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tselectedProvider: null,\n\t\t\tquery: '',\n\t\t\tmultiselectPlaceholder: t('Select provider'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\tconst result = []\n\t\t\tif (this.query !== '' && isUrl(this.query)) {\n\t\t\t\tresult.push({\n\t\t\t\t\tid: this.query,\n\t\t\t\t\ttitle: this.query,\n\t\t\t\t\tisLink: true,\n\t\t\t\t})\n\t\t\t}\n\t\t\tresult.push(...searchProvider(this.query))\n\t\t\treturn result\n\t\t},\n\t},\n\tmethods: {\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-select']?.$el?.querySelector('#provider-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\t\tonProviderSelected(p) {\n\t\t\tif (p !== null) {\n\t\t\t\tif (p.isLink) {\n\t\t\t\t\tthis.$emit('submit', p.title)\n\t\t\t\t} else {\n\t\t\t\t\tthis.$emit('select-provider', p)\n\t\t\t\t}\n\t\t\t\tthis.selectedProvider = null\n\t\t\t}\n\t\t},\n\t\tonSearch(query, loading) {\n\t\t\tthis.query = query\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.provider-list {\n\twidth: 100%;\n\tmin-height: 400px;\n\tpadding: 0 16px 16px 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.provider {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\theight: 28px;\n\t\t\toverflow: hidden;\n\n\t\t\t.link-icon {\n\t\t\t\tmargin-right: 8px;\n\t\t\t}\n\n\t\t\t.provider-icon {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tobject-fit: contain;\n\t\t\t\tmargin-right: 8px;\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\n\t\t\t.option-text {\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t}\n\t}\n}\n</style>\n","<template>\n\t<div class=\"raw-link\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<NcTextField ref=\"url-input\"\n\t\t\t\t:value.sync=\"inputValue\"\n\t\t\t\t:show-trailing-button=\"inputValue !== ''\"\n\t\t\t\t:label=\"inputPlaceholder\"\n\t\t\t\t@trailing-button-click=\"onClear\"\n\t\t\t\t@update:value=\"onInput\"\n\t\t\t\t@keyup.native.enter=\"onSubmit\">\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" :size=\"16\" />\n\t\t\t\t<LinkVariantIcon v-else :size=\"16\" />\n\t\t\t</NcTextField>\n\t\t</div>\n\t\t<NcReferenceWidget v-if=\"reference !== null\"\n\t\t\tclass=\"reference-widget\"\n\t\t\t:reference=\"reference\" />\n\t\t<NcEmptyContent v-else\n\t\t\tclass=\"raw-link--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport NcReferenceWidget from '../NcReferenceWidget.vue'\nimport { isUrl, delay } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcLoadingIcon from '../../NcLoadingIcon/index.js'\nimport NcTextField from '../../NcTextField/index.js'\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nexport default {\n\tname: 'NcRawLinkInput',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tNcEmptyContent,\n\t\tNcLoadingIcon,\n\t\tNcReferenceWidget,\n\t\tNcTextField,\n\t},\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: [\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tinputValue: '',\n\t\t\tloading: false,\n\t\t\treference: null,\n\t\t\tabortController: null,\n\t\t\tinputPlaceholder: t('Enter link'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tisLinkValid() {\n\t\t\treturn isUrl(this.inputValue)\n\t\t},\n\t},\n\tmethods: {\n\t\tfocus() {\n\t\t\tthis.$refs['url-input'].$el.getElementsByTagName('input')[0]?.focus()\n\t\t},\n\t\tonSubmit(e) {\n\t\t\tconst value = e.target.value\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tthis.$emit('submit', value)\n\t\t\t}\n\t\t},\n\t\tonClear() {\n\t\t\tthis.inputValue = ''\n\t\t\tthis.reference = null\n\t\t},\n\t\tonInput() {\n\t\t\tthis.reference = null\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tdelay(() => {\n\t\t\t\t\tthis.updateReference()\n\t\t\t\t}, 500)()\n\t\t\t}\n\t\t},\n\t\tupdateReference() {\n\t\t\tthis.loading = true\n\t\t\tthis.abortController = new AbortController()\n\t\t\taxios.get(generateOcsUrl('references/resolve', 2) + '?reference=' + encodeURIComponent(this.inputValue), {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tthis.reference = response.data.ocs.data.references[this.inputValue]\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.raw-link {\n\twidth: 100%;\n\tmin-height: 350px;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\tpadding: 0 16px 16px 16px;\n\n\t.input-wrapper {\n\t\twidth: 100%;\n\t}\n\n\t.reference-widget {\n\t\tdisplay: flex;\n\t}\n\n\t&--empty-content .provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--input {\n\t\twidth: 99%;\n\t}\n}\n</style>\n","<template>\n\t<div class=\"result\">\n\t\t<div v-if=\"entry.icon\"\n\t\t\t:class=\"{ [entry.icon]: true, rounded: entry.rounded }\"\n\t\t\tclass=\"result--icon-class\" />\n\t\t<img v-else\n\t\t\tclass=\"result--image\"\n\t\t\t:class=\"{ rounded: entry.rounded }\"\n\t\t\t:src=\"entry.thumbnailUrl\">\n\t\t<div class=\"result--content\">\n\t\t\t<span class=\"result--content--name\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.title\" />\n\t\t\t</span>\n\t\t\t<span class=\"result--content--subline\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.subline\" />\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcHighlight from '../../NcHighlight/index.js'\n\nexport default {\n\tname: 'NcSearchResult',\n\tcomponents: {\n\t\tNcHighlight,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Unified search result entry\n\t\t */\n\t\tentry: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * The query that led to getting this result\n\t\t * Used to highlight the entry text\n\t\t */\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\toverflow: hidden;\n\n\t&--icon-class,\n\t&--image {\n\t\twidth: 40px;\n\t\tmin-width: 40px;\n\t\theight: 40px;\n\t\tobject-fit: contain;\n\n\t\t&.rounded {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n\n\t&--content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tpadding-left: 10px;\n\t\toverflow: hidden;\n\n\t\t&--name,\n\t\t&--subline {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<template>\n\t<div class=\"smart-picker-search\" :class=\"{ 'with-empty-content': showEmptyContent }\">\n\t\t<NcSelect ref=\"search-select\"\n\t\t\tv-model=\"selectedResult\"\n\t\t\tclass=\"smart-picker-search--select\"\n\t\t\tinput-id=\"search-select-input\"\n\t\t\tlabel=\"name\"\n\t\t\t:placeholder=\"mySearchPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:append-to-body=\"false\"\n\t\t\t:close-on-select=\"false\"\n\t\t\t:clear-search-on-select=\"false\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:reset-focus-on-options-change=\"false\"\n\t\t\t:filterable=\"false\"\n\t\t\t:autoscroll=\"true\"\n\t\t\t:reset-on-options-change=\"false\"\n\t\t\t:loading=\"searching\"\n\t\t\t@search=\"onSearchInput\"\n\t\t\t@input=\"onSelectResultSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isRawLink\" class=\"custom-option\">\n\t\t\t\t\t<LinkVariantIcon class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Raw link {options}', { options: option.resourceUrl }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<NcSearchResult v-else-if=\"option.resourceUrl\"\n\t\t\t\t\tclass=\"search-result\"\n\t\t\t\t\t:entry=\"option\"\n\t\t\t\t\t:query=\"searchQuery\" />\n\t\t\t\t<span v-else-if=\"option.isCustomGroupTitle\" class=\"custom-option group-name\">\n\t\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\t\tclass=\"provider-icon group-name-icon\"\n\t\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t<strong>{{ option.name }}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<span v-else-if=\"option.isMore\" :class=\"{ 'custom-option': true }\">\n\t\t\t\t\t<span v-if=\"option.isLoading\" class=\"option-simple-icon icon-loading-small\" />\n\t\t\t\t\t<DotsHorizontalIcon v-else class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Load more \"{options}\"', { options: option.name }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #no-options>\n\t\t\t\t{{ noOptionsText }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent v-if=\"showEmptyContent\"\n\t\t\tclass=\"smart-picker-search--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:alt=\"providerIconAlt\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport NcSearchResult from './NcSearchResult.vue'\nimport { isUrl, delay } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcSelect from '../../NcSelect/index.js'\n\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nconst LIMIT = 5\n\nexport default {\n\tname: 'NcSearch',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tDotsHorizontalIcon,\n\t\tNcEmptyContent,\n\t\tNcSelect,\n\t\tNcSearchResult,\n\t},\n\tprops: {\n\t\t/**\n\t\t * The selected reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshowEmptyContent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tsearchPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: [\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t\tselectedResult: null,\n\t\t\tresultsBySearchProvider: {},\n\t\t\tsearching: false,\n\t\t\tsearchingMoreOf: null,\n\t\t\tabortController: null,\n\t\t\tnoOptionsText: t('Start typing to search'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tmySearchPlaceholder() {\n\t\t\treturn this.searchPlaceholder || t('Search')\n\t\t},\n\t\tsearchProviderIds() {\n\t\t\treturn this.provider.search_providers_ids\n\t\t},\n\t\toptions() {\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst options = []\n\t\t\tif (isUrl(this.searchQuery)) {\n\t\t\t\toptions.push(this.rawLinkEntry)\n\t\t\t}\n\t\t\toptions.push(...this.formattedSearchResults)\n\t\t\treturn options\n\t\t},\n\t\trawLinkEntry() {\n\t\t\treturn {\n\t\t\t\tid: 'rawLinkEntry',\n\t\t\t\tresourceUrl: this.searchQuery,\n\t\t\t\tisRawLink: true,\n\t\t\t}\n\t\t},\n\t\tformattedSearchResults() {\n\t\t\tconst results = []\n\t\t\tthis.searchProviderIds.forEach(pid => {\n\t\t\t\tif (this.resultsBySearchProvider[pid].entries.length > 0) {\n\t\t\t\t\t// don't show group name entry if there is only one search provider and one result\n\t\t\t\t\tif (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'groupTitle-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisCustomGroupTitle: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tconst providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: 'provider-' + pid + '-entry-' + index,\n\t\t\t\t\t\t\t...entry,\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tresults.push(...providerEntriesWithId)\n\t\t\t\t\tif (this.resultsBySearchProvider[pid].isPaginated) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'moreOf-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisMore: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t\tisLoading: this.searchingMoreOf === pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn results\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.resetResults()\n\t},\n\tbeforeDestroy() {\n\t\tthis.cancelSearchRequests()\n\t},\n\tmethods: {\n\t\tt,\n\t\tresetResults() {\n\t\t\tconst resultsBySearchProvider = {}\n\t\t\tthis.searchProviderIds.forEach(pid => {\n\t\t\t\tresultsBySearchProvider[pid] = {\n\t\t\t\t\tentries: [],\n\t\t\t\t}\n\t\t\t})\n\t\t\tthis.resultsBySearchProvider = resultsBySearchProvider\n\t\t},\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['search-select']?.$el?.querySelector('#search-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\t\tcancelSearchRequests() {\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t},\n\t\tonSearchInput(query, loading) {\n\t\t\tthis.searchQuery = query\n\t\t\tdelay(() => {\n\t\t\t\tthis.updateSearch()\n\t\t\t}, 500)()\n\t\t},\n\t\tonSelectResultSelected(item) {\n\t\t\tif (item !== null) {\n\t\t\t\tif (item.resourceUrl) {\n\t\t\t\t\tthis.cancelSearchRequests()\n\t\t\t\t\tthis.$emit('submit', item.resourceUrl)\n\t\t\t\t} else if (item.isMore) {\n\t\t\t\t\tthis.searchMoreOf(item.providerId).then(() => {\n\t\t\t\t\t\t// allow clicking twice on the same \"more\" item\n\t\t\t\t\t\tthis.selectedResult = null\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsearchMoreOf(searchProviderId) {\n\t\t\tthis.searchingMoreOf = searchProviderId\n\t\t\tthis.cancelSearchRequests()\n\t\t\treturn this.searchProviders(searchProviderId)\n\t\t},\n\t\tupdateSearch() {\n\t\t\tthis.cancelSearchRequests()\n\t\t\tthis.resetResults()\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\tthis.searching = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\treturn this.searchProviders()\n\t\t},\n\t\tsearchProviders(searchProviderId = null) {\n\t\t\tthis.abortController = new AbortController()\n\t\t\tthis.searching = true\n\n\t\t\tconst searchPromises = searchProviderId === null\n\t\t\t\t? [...this.searchProviderIds].map(pid => {\n\t\t\t\t\treturn this.searchOneProvider(pid)\n\t\t\t\t})\n\t\t\t\t: [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)]\n\t\t\t// fake one to have a request error\n\t\t\t// searchPromises.push(this.searchOneProvider('nopid'))\n\n\t\t\treturn Promise.allSettled(searchPromises)\n\t\t\t\t.then((promises) => {\n\t\t\t\t\tconst isOneCanceled = !!promises.find(p => {\n\t\t\t\t\t\treturn p.status === 'rejected' && (p.reason.name === 'CanceledError' || p.reason.code === 'ERR_CANCELED')\n\t\t\t\t\t})\n\t\t\t\t\t// nothing was canceled: not searching\n\t\t\t\t\tif (!isOneCanceled) {\n\t\t\t\t\t\tthis.searching = false\n\t\t\t\t\t\tthis.searchingMoreOf = null\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t},\n\t\tsearchOneProvider(providerId, cursor = null) {\n\t\t\tconst url = cursor === null\n\t\t\t\t? generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}', { providerId, term: this.searchQuery, limit: LIMIT })\n\t\t\t\t: generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}', { providerId, term: this.searchQuery, limit: LIMIT, cursor })\n\t\t\treturn axios.get(url, {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst data = response.data.ocs.data\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].name = data.name\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].cursor = data.cursor\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].isPaginated = data.isPaginated\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].entries.push(...data.entries)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.smart-picker-search {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 0 16px 16px 16px;\n\t&.with-empty-content {\n\t\tmin-height: 400px;\n\t}\n\n\t.provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.search-result {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.group-name-icon,\n\t\t.option-simple-icon {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tmargin: 0 20px 0 10px;\n\t\t}\n\n\t\t.custom-option {\n\t\t\theight: 44px;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.option-text {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<template>\n\t<div class=\"reference-picker\"\n\t\t:style=\"pickerWrapperStyle\"\n\t\ttabindex=\"-1\"\n\t\t@keydown.stop.prevent.esc=\"onEscapePressed\">\n\t\t<NcProviderList v-if=\"mode === MODES.providerList\"\n\t\t\tref=\"provider-list\"\n\t\t\t@select-provider=\"onProviderSelected\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@cancel=\"cancelProviderSelection\" />\n\t\t<NcRawLinkInput v-else-if=\"mode === MODES.standardLinkInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@cancel=\"cancelRawLinkInput\" />\n\t\t<NcSearch v-else-if=\"mode === MODES.searchInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@cancel=\"cancelSearch\"\n\t\t\t@submit=\"submitLink\" />\n\t\t<div v-else-if=\"mode === MODES.customElement\"\n\t\t\tclass=\"custom-element-wrapper\">\n\t\t\t<NcCustomPickerElement :provider=\"selectedProvider\"\n\t\t\t\t@submit=\"submitLink\"\n\t\t\t\t@cancel=\"cancelCustomElement\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcCustomPickerElement from './NcCustomPickerElement.vue'\nimport NcProviderList from './NcProviderList.vue'\nimport NcRawLinkInput from './NcRawLinkInput.vue'\nimport NcSearch from './NcSearch.vue'\nimport { isCustomPickerElementRegistered } from './customPickerElements.js'\nimport { touchProvider } from './providerHelper.js'\n\nconst MODES = {\n\tproviderList: 1,\n\tstandardLinkInput: 2,\n\tsearchInput: 3,\n\tcustomElement: 4,\n}\nexport default {\n\tname: 'NcReferencePicker',\n\tcomponents: {\n\t\tNcCustomPickerElement,\n\t\tNcProviderList,\n\t\tNcRawLinkInput,\n\t\tNcSearch,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Default: null. Show the provider list\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\t\t/**\n\t\t * Optional width in pixels\n\t\t * Default: 100%\n\t\t */\n\t\twidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Focus on the provider list select input on creation\n\t\t * Default: true\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'cancel-raw-link',\n\t\t'cancel-search',\n\t\t'provider-selected',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tMODES,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t}\n\t},\n\tcomputed: {\n\t\tmode() {\n\t\t\treturn this.selectedProvider === null\n\t\t\t\t? MODES.providerList\n\t\t\t\t: isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t\t? MODES.customElement\n\t\t\t\t\t: this.selectedProvider.search_providers_ids\n\t\t\t\t\t\t? MODES.searchInput\n\t\t\t\t\t\t: MODES.standardLinkInput\n\t\t},\n\t\tpickerWrapperStyle() {\n\t\t\treturn {\n\t\t\t\twidth: this.width ? this.width + 'px' : undefined,\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.focusOnCreate) {\n\t\t\tif (this.initialProvider) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t\t}, 300)\n\t\t\t} else {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t},\n\tmethods: {\n\t\tonEscapePressed() {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\tthis.deselectProvider()\n\t\t\t} else {\n\t\t\t\tthis.cancelProviderSelection()\n\t\t\t}\n\t\t},\n\t\tonProviderSelected(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\tthis.$emit('provider-selected', provider)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t})\n\t\t},\n\t\tcancelCustomElement() {\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelSearch() {\n\t\t\tthis.$emit('cancel-search', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelRawLinkInput() {\n\t\t\tthis.$emit('cancel-raw-link', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelProviderSelection() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t\tsubmitLink(link) {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\ttouchProvider(this.selectedProvider.id)\n\t\t\t}\n\t\t\tthis.$emit('submit', link)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tdeselectProvider() {\n\t\t\tthis.selectedProvider = null\n\t\t\tthis.$emit('provider-selected', null)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t}, 300)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.reference-picker {\n\tdisplay: flex;\n\toverflow-y: auto;\n\twidth: 100%;\n\n\t.custom-element-wrapper {\n\t\tdisplay: flex;\n\t\toverflow-y: auto;\n\t\twidth: 100%;\n\t}\n}\n</style>\n","<template>\n\t<NcModal v-if=\"show\"\n\t\t:size=\"modalSize\"\n\t\t:can-close=\"false\"\n\t\tclass=\"reference-picker-modal\"\n\t\t@close=\"onCancel\">\n\t\t<div ref=\"modal_content\"\n\t\t\tclass=\"reference-picker-modal--content\">\n\t\t\t<NcButton v-if=\"showBackButton\"\n\t\t\t\t:aria-label=\"backButtonTitle\"\n\t\t\t\t:title=\"backButtonTitle\"\n\t\t\t\tclass=\"back-button\"\n\t\t\t\t@click=\"onBackClicked\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ArrowLeftIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton :aria-label=\"closeButtonLabel\"\n\t\t\t\t:title=\"closeButtonTitle\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tclass=\"close-button\"\n\t\t\t\t@click=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<h2 v-if=\"showModalName\">\n\t\t\t\t{{ modalName }}\n\t\t\t</h2>\n\t\t\t<NcReferencePicker ref=\"referencePicker\"\n\t\t\t\t:initial-provider=\"initialProvider\"\n\t\t\t\t:focus-on-create=\"focusOnCreate\"\n\t\t\t\t@provider-selected=\"onProviderSelect\"\n\t\t\t\t@submit=\"onSubmit\"\n\t\t\t\t@cancel=\"onCancel\" />\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport NcReferencePicker from './NcReferencePicker.vue'\nimport { getCustomPickerElementSize, isCustomPickerElementRegistered } from './customPickerElements.js'\nimport NcButton from '../../NcButton/index.js'\nimport NcModal from '../../NcModal/index.js'\nimport { t } from '../../../l10n.js'\n\nimport { emit } from '@nextcloud/event-bus'\n\nimport ArrowLeftIcon from 'vue-material-design-icons/ArrowLeft.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\n\nexport default {\n\tname: 'NcReferencePickerModal',\n\tcomponents: {\n\t\tNcReferencePicker,\n\t\tNcModal,\n\t\tNcButton,\n\t\tArrowLeftIcon,\n\t\tCloseIcon,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Show the provider list if no initial one is provided\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\t\t/**\n\t\t * Focus on the input item on create\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * If true, add the modal content to the Viewer trap elements via the event-bus\n\t\t */\n\t\tisInsideViewer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tshow: true,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t\tbackButtonTitle: t('Back to provider selection'),\n\t\t\tcloseButtonTitle: t('Close'),\n\t\t\tcloseButtonLabel: t('Close Smart Picker'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tisProviderSelected() {\n\t\t\treturn this.selectedProvider !== null\n\t\t},\n\t\tshowBackButton() {\n\t\t\treturn this.initialProvider === null && this.isProviderSelected\n\t\t},\n\t\tmodalSize() {\n\t\t\treturn this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t? (getCustomPickerElementSize(this.selectedProvider.id) ?? 'large')\n\t\t\t\t: 'normal'\n\t\t},\n\t\tshowModalName() {\n\t\t\treturn !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t},\n\t\tmodalName() {\n\t\t\treturn this.isProviderSelected\n\t\t\t\t? this.selectedProvider.title\n\t\t\t\t: t('Smart Picker')\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.isInsideViewer) {\n\t\t\tconst elem = this.$refs.modal_content\n\t\t\temit('viewer:trapElements:changed', elem)\n\t\t}\n\t},\n\tmethods: {\n\t\tonCancel() {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t\tonSubmit(value) {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\t\tonProviderSelect(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\t// provider was deselected and we started with an inital one: just close the modal\n\t\t\tif (provider === null && this.initialProvider !== null) {\n\t\t\t\tthis.onCancel()\n\t\t\t}\n\t\t},\n\t\tonBackClicked() {\n\t\t\tthis.$refs.referencePicker.deselectProvider()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n// this is to avoid scroll on the container and leave it to the result block\n.reference-picker-modal .modal-container {\n\tdisplay: flex !important;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.reference-picker-modal--content {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow-y: auto;\n\n\t.close-button,\n\t.back-button {\n\t\tposition: absolute;\n\t\ttop: 4px;\n\t}\n\t.back-button {\n\t\tleft: 4px;\n\t}\n\t.close-button {\n\t\tright: 4px;\n\t}\n\n\t> h2 {\n\t\tdisplay: flex;\n\t\tmargin: 12px 0 20px 0;\n\t\t.icon {\n\t\t\tmargin-right: 8px;\n\t\t}\n\t}\n}\n</style>\n","import NcReferencePickerModal from './NcReferencePickerModal.vue'\nimport { getProvider } from './providerHelper.js'\n\nimport Vue from 'vue'\n\n/**\n * Creates a reference picker modal and return a promise which provides the result\n *\n * @param {string} providerId Optional ID of initial selected provider\n * @param {boolean} isInsideViewer Should be true if this function is called while the Viewer is displayed\n * @return {Promise<unknown>}\n */\nexport async function getLinkWithPicker(providerId = null, isInsideViewer = undefined) {\n\treturn await new Promise((resolve, reject) => {\n\t\tconst modalId = 'referencePickerModal'\n\t\tconst modalElement = document.createElement('div')\n\t\tmodalElement.id = modalId\n\t\tdocument.body.append(modalElement)\n\n\t\tconst initialProvider = providerId === null\n\t\t\t? null\n\t\t\t: (getProvider(providerId) ?? null)\n\n\t\tconst View = Vue.extend(NcReferencePickerModal)\n\t\tconst view = new View({\n\t\t\tpropsData: {\n\t\t\t\tinitialProvider,\n\t\t\t\tisInsideViewer,\n\t\t\t},\n\t\t}).$mount(modalElement)\n\n\t\tview.$on('cancel', () => {\n\t\t\tview.$destroy()\n\t\t\treject(new Error('User cancellation'))\n\t\t})\n\t\tview.$on('submit', (link) => {\n\t\t\tview.$destroy()\n\t\t\tresolve(link)\n\t\t})\n\t})\n}\n"],"names":["isWidgetRegistered","id","registerWidget","callback","onDestroy","el","renderWidget","richObjectType","richObject","accessible","destroyWidget","_sfc_main$8","lineClamp","link","entries","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","registerCustomPickerElement","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult","_sfc_main$7","renderFunctionResult","result","e","value","anyLinkProviderId","anyLinkProvider","t","imagePath","loadState","getProvider","getProviders","p","keep","sortProviders","providerList","timestamps","a","b","ta","tb","searchProvider","query","limit","providers","escapedQuery","regexp","filteredSortedProviders","searchResult","touchProvider","timestamp","params","url","generateOcsUrl","axios","response","mytimer","delay","ms","context","args","isUrl","str","_sfc_main$6","_sfc_main$5","NcSelect","NcHighlight","NcEmptyContent","LinkVariantIcon","loading","_sfc_main$4","NcLoadingIcon","NcReferenceWidget","NcTextField","error","_sfc_main$3","LIMIT","_sfc_main$2","DotsHorizontal","NcSearchResult","options","results","pid","providerEntriesWithId","entry","index","resultsBySearchProvider","item","searchProviderId","searchPromises","promises","cursor","data","MODES","_sfc_main$1","NcCustomPickerElement","NcProviderList","NcRawLinkInput","NcSearch","provider","_sfc_main","NcReferencePicker","NcModal","NcButton","ArrowLeft","Close","elem","emit","getLinkWithPicker","isInsideViewer","resolve","reject","modalId","modalElement","initialProvider","View","Vue","NcReferencePickerModal","view"],"mappings":"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","x_google_ignoreList":[6]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"referencePickerModal-rHOAeK-a.cjs","sources":["../../src/components/NcRichText/widgets.js","../../src/components/NcRichText/NcReferenceWidget.vue","../../src/components/NcRichText/NcReferencePicker/customPickerElements.js","../../src/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue","../../src/components/NcRichText/NcReferencePicker/providerHelper.js","../../src/components/NcRichText/NcReferencePicker/utils.js","../../node_modules/vue-material-design-icons/LinkVariant.vue","../../src/components/NcRichText/NcReferencePicker/NcProviderList.vue","../../src/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue","../../src/components/NcRichText/NcReferencePicker/NcSearchResult.vue","../../src/components/NcRichText/NcReferencePicker/NcSearch.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePicker.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue","../../src/components/NcRichText/NcReferencePicker/referencePickerModal.js"],"sourcesContent":["if (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst registerWidget = (id, callback, onDestroy = (el) => {}) => {\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t}\n}\n\nconst renderWidget = (el, { richObjectType, richObject, accessible }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible })\n}\n\nconst destroyWidget = (richObjectType, el) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = registerWidget\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n}\n","<template>\n\t<div>\n\t\t<div v-if=\"reference && hasCustomWidget\" class=\"widget-custom\">\n\t\t\t<div ref=\"customWidget\" />\n\t\t</div>\n\n\t\t<a v-else-if=\"!noAccess && reference && reference.openGraphObject && !hasCustomWidget\"\n\t\t\t:href=\"reference.openGraphObject.link\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\ttarget=\"_blank\"\n\t\t\tclass=\"widget-default\">\n\t\t\t<img v-if=\"reference.openGraphObject.thumb\" class=\"widget-default--image\" :src=\"reference.openGraphObject.thumb\">\n\t\t\t<div class=\"widget-default--details\">\n\t\t\t\t<p class=\"widget-default--name\">{{ reference.openGraphObject.name }}</p>\n\t\t\t\t<p class=\"widget-default--description\" :style=\"descriptionStyle\">{{ reference.openGraphObject.description }}</p>\n\t\t\t\t<p class=\"widget-default--link\">{{ compactLink }}</p>\n\t\t\t</div>\n\t\t</a>\n\t</div>\n</template>\n<script>\nimport { renderWidget, isWidgetRegistered, destroyWidget } from './widgets.js'\n\nexport default {\n\tname: 'NcReferenceWidget',\n\tprops: {\n\t\treference: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcompact: 3,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasCustomWidget() {\n\t\t\treturn isWidgetRegistered(this.reference.richObjectType)\n\t\t},\n\t\tnoAccess() {\n\t\t\treturn this.reference && !this.reference.accessible\n\t\t},\n\t\tdescriptionStyle() {\n\t\t\tif (this.compact === 0) {\n\t\t\t\treturn {\n\t\t\t\t\tdisplay: 'none',\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst lineClamp = this.compact < 4 ? this.compact : 3\n\t\t\treturn {\n\t\t\t\tlineClamp,\n\t\t\t\twebkitLineClamp: lineClamp,\n\t\t\t}\n\t\t},\n\t\tcompactLink() {\n\t\t\tconst link = this.reference.openGraphObject.link\n\t\t\tif (!link) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tif (link.startsWith('https://')) {\n\t\t\t\treturn link.substring(8)\n\t\t\t}\n\t\t\tif (link.startsWith('http://')) {\n\t\t\t\treturn link.substring(7)\n\t\t\t}\n\t\t\treturn link\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.renderWidget()\n\t\tthis.observer = new ResizeObserver(entries => {\n\t\t\tif (entries[0].contentRect.width < 450) {\n\t\t\t\tthis.compact = 0\n\t\t\t} else if (entries[0].contentRect.width < 550) {\n\t\t\t\tthis.compact = 1\n\t\t\t} else if (entries[0].contentRect.width < 650) {\n\t\t\t\tthis.compact = 2\n\t\t\t} else {\n\t\t\t\tthis.compact = 3\n\t\t\t}\n\n\t\t})\n\t\tthis.observer.observe(this.$el)\n\t},\n\tbeforeDestroy() {\n\t\tthis.observer.disconnect()\n\t\tdestroyWidget(this.reference.richObjectType, this.$el)\n\t},\n\tmethods: {\n\t\trenderWidget() {\n\t\t\tif (this.$refs.customWidget) {\n\t\t\t\tthis.$refs.customWidget.innerHTML = ''\n\t\t\t}\n\t\t\tif (this?.reference?.richObjectType === 'open-graph') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$nextTick(() => {\n\t\t\t\t// Waiting for the ref to become available\n\t\t\t\trenderWidget(this.$refs.customWidget, this.reference)\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\n@mixin widget {\n\twidth: 100%;\n\tmargin: auto;\n\tmargin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n\tmargin-top: calc(var(--default-grid-baseline, 4px) * 3);\n\toverflow: hidden;\n\tborder: 2px solid var(--color-border);\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: transparent;\n\tdisplay: flex;\n}\n\n.widget-custom {\n\t@include widget;\n}\n\n.widget-access {\n\t@include widget;\n\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n}\n\n.widget-default {\n\t@include widget;\n\n\t&--compact {\n\t\tflex-direction: column;\n\n\t\t.widget-default--image {\n\t\t\twidth: 100%;\n\t\t\theight: 150px;\n\t\t}\n\n\t\t.widget-default--details {\n\t\t\twidth: 100%;\n\t\t\tpadding-top: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t\tpadding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t}\n\n\t\t.widget-default--description {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n\t&--image {\n\t\twidth: 40%;\n\t\tbackground-position: center;\n\t\tbackground-size: cover;\n\t\tbackground-repeat: no-repeat;\n\t}\n\n\t&--name {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\tfont-weight: bold;\n\t}\n\n\t&--details {\n\t\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n\t\twidth: 60%;\n\n\t\tp {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t&--description {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\tline-clamp: 3;\n\t\t-webkit-box-orient: vertical;\n\t}\n\n\t&--link {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n}\n</style>\n","if (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n","<template>\n\t<div ref=\"domElement\" />\n</template>\n\n<script>\nimport { renderCustomPickerElement, isCustomPickerElementRegistered, destroyCustomPickerElement } from './customPickerElements.js'\n\nexport default {\n\tname: 'NcCustomPickerElement',\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tisRegistered: isCustomPickerElementRegistered(this.provider.id),\n\t\t\trenderResult: null,\n\t\t}\n\t},\n\tmounted() {\n\t\tif (this.isRegistered) {\n\t\t\tthis.renderElement()\n\t\t}\n\t},\n\tbeforeDestroy() {\n\t\tif (this.isRegistered) {\n\t\t\tdestroyCustomPickerElement(this.provider.id, this.$el, this.renderResult)\n\t\t}\n\t},\n\tmethods: {\n\t\trenderElement() {\n\t\t\tif (this.$refs.domElement) {\n\t\t\t\tthis.$refs.domElement.innerHTML = ''\n\t\t\t}\n\n\t\t\tconst renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false })\n\t\t\t// this works whether renderCustomPickerElement returns a promise or a value\n\t\t\tPromise.resolve(renderFunctionResult).then(result => {\n\t\t\t\tthis.renderResult = result\n\t\t\t\tif (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n\t\t\t\t\tthis.renderResult.object.$on('submit', this.onSubmit)\n\t\t\t\t\tthis.renderResult.object.$on('cancel', this.onCancel)\n\t\t\t\t}\n\t\t\t\tthis.renderResult.element.addEventListener('submit', (e) => {\n\t\t\t\t\tthis.onSubmit(e.detail)\n\t\t\t\t})\n\t\t\t\tthis.renderResult.element.addEventListener('cancel', this.onCancel)\n\t\t\t})\n\t\t},\n\t\tonSubmit(value) {\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\t\tonCancel() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// nothing yet\n</style>\n","import { isCustomPickerElementRegistered } from './customPickerElements.js'\n\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, imagePath } from '@nextcloud/router'\n\nexport const anyLinkProviderId = 'any-link'\n\nconst anyLinkProvider = {\n\tid: anyLinkProviderId,\n\ttitle: t('Any link'),\n\ticon_url: imagePath('core', 'filetypes/link.svg'),\n}\n\n// only get the provider list once, even if functions of this file are imported multiple times by different apps/components\nif (!window._vue_richtext_reference_providers) {\n\twindow._vue_richtext_reference_providers = loadState('core', 'reference-provider-list', [])\n}\n\n// single timestamps object used by every entity in the page\nif (!window._vue_richtext_reference_provider_timestamps) {\n\twindow._vue_richtext_reference_provider_timestamps = loadState('core', 'reference-provider-timestamps', {})\n}\n\n/**\n * @param {string} providerId The provider ID\n * @return {object} The provider object\n */\nexport function getProvider(providerId) {\n\tif (providerId === anyLinkProviderId) {\n\t\treturn anyLinkProvider\n\t}\n\treturn getProviders().find(p => p.id === providerId)\n}\n\n/**\n * @return {Array} Raw provider list as it was provided by the server\n */\nexport function getProviders() {\n\treturn window._vue_richtext_reference_providers.filter(p => {\n\t\t// avoid providers with no associated search provider and no custom component registered\n\t\tconst keep = (!!p.search_providers_ids && p.search_providers_ids.length > 0) || isCustomPickerElementRegistered(p.id)\n\t\tif (!keep) {\n\t\t\tconsole.debug('[smart picker]', p.id, 'reference provider is discoverable but does not have any related search provider or custom picker component registered')\n\t\t}\n\t\treturn keep\n\t})\n}\n\n/**\n * Helper function to sort a list of providers according to 2 factors:\n * - their \"last used timestamp\"\n * - their \"order\" property (coming from the provider declaration in the server implementation)\n *\n * @param {Array} providerList list of provider objects\n * @return {Array} the sorted provider list\n */\nexport function sortProviders(providerList) {\n\tconst timestamps = window._vue_richtext_reference_provider_timestamps\n\n\treturn providerList.sort((a, b) => {\n\t\treturn a.order === b.order\n\t\t\t? 0\n\t\t\t: a.order > b.order\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t}).sort((a, b) => {\n\t\tconst ta = timestamps[a.id]\n\t\tconst tb = timestamps[b.id]\n\t\treturn ta === tb\n\t\t\t? 0\n\t\t\t: tb === undefined\n\t\t\t\t? -1\n\t\t\t\t: ta === undefined\n\t\t\t\t\t? 1\n\t\t\t\t\t: ta > tb\n\t\t\t\t\t\t? -1\n\t\t\t\t\t\t: 1\n\t})\n}\n\n/**\n * Helper function to search a provider from a search query\n * Result is a sorted list of providers\n *\n * @param {string} query The search query\n * @param {number} limit (optional) max number of results\n * @return {Array} the sorted/filtered provider list\n */\nexport function searchProvider(query, limit = null) {\n\tconst providers = getProviders()\n\tconst escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n\tconst regexp = new RegExp(escapedQuery, 'i')\n\tconst sortedProviders = sortProviders(providers)\n\tconst filteredSortedProviders = sortedProviders.filter(p => {\n\t\treturn p.title.match(regexp)\n\t})\n\tconst searchResult = limit\n\t\t? filteredSortedProviders.slice(0, limit)\n\t\t: filteredSortedProviders\n\t// append the 'any link' provider in the full list or when there is no result\n\tif (query === '' || searchResult.length === 0) {\n\t\tsearchResult.push(anyLinkProvider)\n\t}\n\treturn searchResult\n}\n\n/**\n * Update the \"last used timestamp\" on the server side and then locally in the frontend\n *\n * @param {number} providerId The id of the search provider\n */\nexport function touchProvider(providerId) {\n\tconst timestamp = Math.floor(Date.now() / 1000)\n\tconst params = {\n\t\ttimestamp,\n\t}\n\tconst url = generateOcsUrl('references/provider/{providerId}', { providerId })\n\taxios.put(url, params)\n\t\t.then((response) => {\n\t\t\twindow._vue_richtext_reference_provider_timestamps[providerId] = timestamp\n\t\t})\n}\n","let mytimer = 0\n/**\n *\n * @param {Function} callback The callback to call after the delay\n * @param {number} ms The delay in milli-seconds\n */\nexport function delay(callback, ms) {\n\treturn function() {\n\t\tconst context = this\n\t\tconst args = arguments\n\t\tclearTimeout(mytimer)\n\t\tmytimer = setTimeout(function() {\n\t\t\tcallback.apply(context, args)\n\t\t}, ms || 0)\n\t}\n}\n/**\n *\n * @param {string} str The url\n */\nexport function isUrl(str) {\n\ttry {\n\t\treturn Boolean(new URL(str))\n\t} catch (error) {\n\t\treturn false\n\t}\n}\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon link-variant-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LinkVariantIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n\t<div class=\"provider-list\">\n\t\t<NcSelect ref=\"provider-select\"\n\t\t\tv-model=\"selectedProvider\"\n\t\t\tclass=\"provider-list--select\"\n\t\t\tinput-id=\"provider-select-input\"\n\t\t\tlabel=\"title\"\n\t\t\t:placeholder=\"multiselectPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:append-to-body=\"false\"\n\t\t\t:clear-search-on-select=\"true\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:filterable=\"false\"\n\t\t\t@search=\"onSearch\"\n\t\t\t@input=\"onProviderSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isLink\" class=\"provider\">\n\t\t\t\t\t<LinkVariantIcon class=\"link-icon\" :size=\"20\" />\n\t\t\t\t\t<span>{{ option.title }}</span>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class=\"provider\">\n\t\t\t\t\t<img class=\"provider-icon\"\n\t\t\t\t\t\t:src=\"option.icon_url\"\n\t\t\t\t\t\t:alt=\"providerIconAlt\">\n\t\t\t\t\t<NcHighlight class=\"option-text\"\n\t\t\t\t\t\t:search=\"query\"\n\t\t\t\t\t\t:text=\"option.title\" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent class=\"provider-list--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<LinkVariantIcon />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport { searchProvider } from './providerHelper.js'\nimport { isUrl } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcHighlight from '../../NcHighlight/index.js'\nimport NcSelect from '../../NcSelect/index.js'\nimport { t } from '../../../l10n.js'\n\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nexport default {\n\tname: 'NcProviderList',\n\tcomponents: {\n\t\tNcSelect,\n\t\tNcHighlight,\n\t\tNcEmptyContent,\n\t\tLinkVariantIcon,\n\t},\n\temits: [\n\t\t'select-provider',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tselectedProvider: null,\n\t\t\tquery: '',\n\t\t\tmultiselectPlaceholder: t('Select provider'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\tconst result = []\n\t\t\tif (this.query !== '' && isUrl(this.query)) {\n\t\t\t\tresult.push({\n\t\t\t\t\tid: this.query,\n\t\t\t\t\ttitle: this.query,\n\t\t\t\t\tisLink: true,\n\t\t\t\t})\n\t\t\t}\n\t\t\tresult.push(...searchProvider(this.query))\n\t\t\treturn result\n\t\t},\n\t},\n\tmethods: {\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-select']?.$el?.querySelector('#provider-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\t\tonProviderSelected(p) {\n\t\t\tif (p !== null) {\n\t\t\t\tif (p.isLink) {\n\t\t\t\t\tthis.$emit('submit', p.title)\n\t\t\t\t} else {\n\t\t\t\t\tthis.$emit('select-provider', p)\n\t\t\t\t}\n\t\t\t\tthis.selectedProvider = null\n\t\t\t}\n\t\t},\n\t\tonSearch(query, loading) {\n\t\t\tthis.query = query\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.provider-list {\n\twidth: 100%;\n\tmin-height: 400px;\n\tpadding: 0 16px 16px 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.provider {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\theight: 28px;\n\t\t\toverflow: hidden;\n\n\t\t\t.link-icon {\n\t\t\t\tmargin-right: 8px;\n\t\t\t}\n\n\t\t\t.provider-icon {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tobject-fit: contain;\n\t\t\t\tmargin-right: 8px;\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\n\t\t\t.option-text {\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t}\n\t}\n}\n</style>\n","<template>\n\t<div class=\"raw-link\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<NcTextField ref=\"url-input\"\n\t\t\t\t:value.sync=\"inputValue\"\n\t\t\t\t:show-trailing-button=\"inputValue !== ''\"\n\t\t\t\t:label=\"inputPlaceholder\"\n\t\t\t\t@trailing-button-click=\"onClear\"\n\t\t\t\t@update:value=\"onInput\"\n\t\t\t\t@keyup.native.enter=\"onSubmit\">\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" :size=\"16\" />\n\t\t\t\t<LinkVariantIcon v-else :size=\"16\" />\n\t\t\t</NcTextField>\n\t\t</div>\n\t\t<NcReferenceWidget v-if=\"reference !== null\"\n\t\t\tclass=\"reference-widget\"\n\t\t\t:reference=\"reference\" />\n\t\t<NcEmptyContent v-else\n\t\t\tclass=\"raw-link--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport NcReferenceWidget from '../NcReferenceWidget.vue'\nimport { isUrl, delay } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcLoadingIcon from '../../NcLoadingIcon/index.js'\nimport NcTextField from '../../NcTextField/index.js'\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nexport default {\n\tname: 'NcRawLinkInput',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tNcEmptyContent,\n\t\tNcLoadingIcon,\n\t\tNcReferenceWidget,\n\t\tNcTextField,\n\t},\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: [\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tinputValue: '',\n\t\t\tloading: false,\n\t\t\treference: null,\n\t\t\tabortController: null,\n\t\t\tinputPlaceholder: t('Enter link'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tisLinkValid() {\n\t\t\treturn isUrl(this.inputValue)\n\t\t},\n\t},\n\tmethods: {\n\t\tfocus() {\n\t\t\tthis.$refs['url-input'].$el.getElementsByTagName('input')[0]?.focus()\n\t\t},\n\t\tonSubmit(e) {\n\t\t\tconst value = e.target.value\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tthis.$emit('submit', value)\n\t\t\t}\n\t\t},\n\t\tonClear() {\n\t\t\tthis.inputValue = ''\n\t\t\tthis.reference = null\n\t\t},\n\t\tonInput() {\n\t\t\tthis.reference = null\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tdelay(() => {\n\t\t\t\t\tthis.updateReference()\n\t\t\t\t}, 500)()\n\t\t\t}\n\t\t},\n\t\tupdateReference() {\n\t\t\tthis.loading = true\n\t\t\tthis.abortController = new AbortController()\n\t\t\taxios.get(generateOcsUrl('references/resolve', 2) + '?reference=' + encodeURIComponent(this.inputValue), {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tthis.reference = response.data.ocs.data.references[this.inputValue]\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.raw-link {\n\twidth: 100%;\n\tmin-height: 350px;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\tpadding: 0 16px 16px 16px;\n\n\t.input-wrapper {\n\t\twidth: 100%;\n\t}\n\n\t.reference-widget {\n\t\tdisplay: flex;\n\t}\n\n\t&--empty-content .provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--input {\n\t\twidth: 99%;\n\t}\n}\n</style>\n","<template>\n\t<div class=\"result\">\n\t\t<div v-if=\"entry.icon\"\n\t\t\t:class=\"{ [entry.icon]: true, rounded: entry.rounded }\"\n\t\t\tclass=\"result--icon-class\" />\n\t\t<img v-else\n\t\t\tclass=\"result--image\"\n\t\t\t:class=\"{ rounded: entry.rounded }\"\n\t\t\t:src=\"entry.thumbnailUrl\">\n\t\t<div class=\"result--content\">\n\t\t\t<span class=\"result--content--name\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.title\" />\n\t\t\t</span>\n\t\t\t<span class=\"result--content--subline\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.subline\" />\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcHighlight from '../../NcHighlight/index.js'\n\nexport default {\n\tname: 'NcSearchResult',\n\tcomponents: {\n\t\tNcHighlight,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Unified search result entry\n\t\t */\n\t\tentry: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * The query that led to getting this result\n\t\t * Used to highlight the entry text\n\t\t */\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\toverflow: hidden;\n\n\t&--icon-class,\n\t&--image {\n\t\twidth: 40px;\n\t\tmin-width: 40px;\n\t\theight: 40px;\n\t\tobject-fit: contain;\n\n\t\t&.rounded {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n\n\t&--content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tpadding-left: 10px;\n\t\toverflow: hidden;\n\n\t\t&--name,\n\t\t&--subline {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<template>\n\t<div class=\"smart-picker-search\" :class=\"{ 'with-empty-content': showEmptyContent }\">\n\t\t<NcSelect ref=\"search-select\"\n\t\t\tv-model=\"selectedResult\"\n\t\t\tclass=\"smart-picker-search--select\"\n\t\t\tinput-id=\"search-select-input\"\n\t\t\tlabel=\"name\"\n\t\t\t:placeholder=\"mySearchPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:append-to-body=\"false\"\n\t\t\t:close-on-select=\"false\"\n\t\t\t:clear-search-on-select=\"false\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:reset-focus-on-options-change=\"false\"\n\t\t\t:filterable=\"false\"\n\t\t\t:autoscroll=\"true\"\n\t\t\t:reset-on-options-change=\"false\"\n\t\t\t:loading=\"searching\"\n\t\t\t@search=\"onSearchInput\"\n\t\t\t@input=\"onSelectResultSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isRawLink\" class=\"custom-option\">\n\t\t\t\t\t<LinkVariantIcon class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Raw link {options}', { options: option.resourceUrl }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<NcSearchResult v-else-if=\"option.resourceUrl\"\n\t\t\t\t\tclass=\"search-result\"\n\t\t\t\t\t:entry=\"option\"\n\t\t\t\t\t:query=\"searchQuery\" />\n\t\t\t\t<span v-else-if=\"option.isCustomGroupTitle\" class=\"custom-option group-name\">\n\t\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\t\tclass=\"provider-icon group-name-icon\"\n\t\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t<strong>{{ option.name }}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<span v-else-if=\"option.isMore\" :class=\"{ 'custom-option': true }\">\n\t\t\t\t\t<span v-if=\"option.isLoading\" class=\"option-simple-icon icon-loading-small\" />\n\t\t\t\t\t<DotsHorizontalIcon v-else class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Load more \"{options}\"', { options: option.name }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #no-options>\n\t\t\t\t{{ noOptionsText }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent v-if=\"showEmptyContent\"\n\t\t\tclass=\"smart-picker-search--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:alt=\"providerIconAlt\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport NcSearchResult from './NcSearchResult.vue'\nimport { isUrl, delay } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcSelect from '../../NcSelect/index.js'\n\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nconst LIMIT = 5\n\nexport default {\n\tname: 'NcSearch',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tDotsHorizontalIcon,\n\t\tNcEmptyContent,\n\t\tNcSelect,\n\t\tNcSearchResult,\n\t},\n\tprops: {\n\t\t/**\n\t\t * The selected reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshowEmptyContent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tsearchPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: [\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t\tselectedResult: null,\n\t\t\tresultsBySearchProvider: {},\n\t\t\tsearching: false,\n\t\t\tsearchingMoreOf: null,\n\t\t\tabortController: null,\n\t\t\tnoOptionsText: t('Start typing to search'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tmySearchPlaceholder() {\n\t\t\treturn this.searchPlaceholder || t('Search')\n\t\t},\n\t\tsearchProviderIds() {\n\t\t\treturn this.provider.search_providers_ids\n\t\t},\n\t\toptions() {\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst options = []\n\t\t\tif (isUrl(this.searchQuery)) {\n\t\t\t\toptions.push(this.rawLinkEntry)\n\t\t\t}\n\t\t\toptions.push(...this.formattedSearchResults)\n\t\t\treturn options\n\t\t},\n\t\trawLinkEntry() {\n\t\t\treturn {\n\t\t\t\tid: 'rawLinkEntry',\n\t\t\t\tresourceUrl: this.searchQuery,\n\t\t\t\tisRawLink: true,\n\t\t\t}\n\t\t},\n\t\tformattedSearchResults() {\n\t\t\tconst results = []\n\t\t\tthis.searchProviderIds.forEach(pid => {\n\t\t\t\tif (this.resultsBySearchProvider[pid].entries.length > 0) {\n\t\t\t\t\t// don't show group name entry if there is only one search provider and one result\n\t\t\t\t\tif (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'groupTitle-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisCustomGroupTitle: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tconst providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: 'provider-' + pid + '-entry-' + index,\n\t\t\t\t\t\t\t...entry,\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tresults.push(...providerEntriesWithId)\n\t\t\t\t\tif (this.resultsBySearchProvider[pid].isPaginated) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'moreOf-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisMore: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t\tisLoading: this.searchingMoreOf === pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn results\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.resetResults()\n\t},\n\tbeforeDestroy() {\n\t\tthis.cancelSearchRequests()\n\t},\n\tmethods: {\n\t\tt,\n\t\tresetResults() {\n\t\t\tconst resultsBySearchProvider = {}\n\t\t\tthis.searchProviderIds.forEach(pid => {\n\t\t\t\tresultsBySearchProvider[pid] = {\n\t\t\t\t\tentries: [],\n\t\t\t\t}\n\t\t\t})\n\t\t\tthis.resultsBySearchProvider = resultsBySearchProvider\n\t\t},\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['search-select']?.$el?.querySelector('#search-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\t\tcancelSearchRequests() {\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t},\n\t\tonSearchInput(query, loading) {\n\t\t\tthis.searchQuery = query\n\t\t\tdelay(() => {\n\t\t\t\tthis.updateSearch()\n\t\t\t}, 500)()\n\t\t},\n\t\tonSelectResultSelected(item) {\n\t\t\tif (item !== null) {\n\t\t\t\tif (item.resourceUrl) {\n\t\t\t\t\tthis.cancelSearchRequests()\n\t\t\t\t\tthis.$emit('submit', item.resourceUrl)\n\t\t\t\t} else if (item.isMore) {\n\t\t\t\t\tthis.searchMoreOf(item.providerId).then(() => {\n\t\t\t\t\t\t// allow clicking twice on the same \"more\" item\n\t\t\t\t\t\tthis.selectedResult = null\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsearchMoreOf(searchProviderId) {\n\t\t\tthis.searchingMoreOf = searchProviderId\n\t\t\tthis.cancelSearchRequests()\n\t\t\treturn this.searchProviders(searchProviderId)\n\t\t},\n\t\tupdateSearch() {\n\t\t\tthis.cancelSearchRequests()\n\t\t\tthis.resetResults()\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\tthis.searching = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\treturn this.searchProviders()\n\t\t},\n\t\tsearchProviders(searchProviderId = null) {\n\t\t\tthis.abortController = new AbortController()\n\t\t\tthis.searching = true\n\n\t\t\tconst searchPromises = searchProviderId === null\n\t\t\t\t? [...this.searchProviderIds].map(pid => {\n\t\t\t\t\treturn this.searchOneProvider(pid)\n\t\t\t\t})\n\t\t\t\t: [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)]\n\t\t\t// fake one to have a request error\n\t\t\t// searchPromises.push(this.searchOneProvider('nopid'))\n\n\t\t\treturn Promise.allSettled(searchPromises)\n\t\t\t\t.then((promises) => {\n\t\t\t\t\tconst isOneCanceled = !!promises.find(p => {\n\t\t\t\t\t\treturn p.status === 'rejected' && (p.reason.name === 'CanceledError' || p.reason.code === 'ERR_CANCELED')\n\t\t\t\t\t})\n\t\t\t\t\t// nothing was canceled: not searching\n\t\t\t\t\tif (!isOneCanceled) {\n\t\t\t\t\t\tthis.searching = false\n\t\t\t\t\t\tthis.searchingMoreOf = null\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t},\n\t\tsearchOneProvider(providerId, cursor = null) {\n\t\t\tconst url = cursor === null\n\t\t\t\t? generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}', { providerId, term: this.searchQuery, limit: LIMIT })\n\t\t\t\t: generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}', { providerId, term: this.searchQuery, limit: LIMIT, cursor })\n\t\t\treturn axios.get(url, {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst data = response.data.ocs.data\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].name = data.name\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].cursor = data.cursor\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].isPaginated = data.isPaginated\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].entries.push(...data.entries)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.smart-picker-search {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 0 16px 16px 16px;\n\t&.with-empty-content {\n\t\tmin-height: 400px;\n\t}\n\n\t.provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.search-result {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.group-name-icon,\n\t\t.option-simple-icon {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tmargin: 0 20px 0 10px;\n\t\t}\n\n\t\t.custom-option {\n\t\t\theight: 44px;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.option-text {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<template>\n\t<div class=\"reference-picker\"\n\t\t:style=\"pickerWrapperStyle\"\n\t\ttabindex=\"-1\"\n\t\t@keydown.stop.prevent.esc=\"onEscapePressed\">\n\t\t<NcProviderList v-if=\"mode === MODES.providerList\"\n\t\t\tref=\"provider-list\"\n\t\t\t@select-provider=\"onProviderSelected\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@cancel=\"cancelProviderSelection\" />\n\t\t<NcRawLinkInput v-else-if=\"mode === MODES.standardLinkInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@cancel=\"cancelRawLinkInput\" />\n\t\t<NcSearch v-else-if=\"mode === MODES.searchInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@cancel=\"cancelSearch\"\n\t\t\t@submit=\"submitLink\" />\n\t\t<div v-else-if=\"mode === MODES.customElement\"\n\t\t\tclass=\"custom-element-wrapper\">\n\t\t\t<NcCustomPickerElement :provider=\"selectedProvider\"\n\t\t\t\t@submit=\"submitLink\"\n\t\t\t\t@cancel=\"cancelCustomElement\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcCustomPickerElement from './NcCustomPickerElement.vue'\nimport NcProviderList from './NcProviderList.vue'\nimport NcRawLinkInput from './NcRawLinkInput.vue'\nimport NcSearch from './NcSearch.vue'\nimport { isCustomPickerElementRegistered } from './customPickerElements.js'\nimport { touchProvider } from './providerHelper.js'\n\nconst MODES = {\n\tproviderList: 1,\n\tstandardLinkInput: 2,\n\tsearchInput: 3,\n\tcustomElement: 4,\n}\nexport default {\n\tname: 'NcReferencePicker',\n\tcomponents: {\n\t\tNcCustomPickerElement,\n\t\tNcProviderList,\n\t\tNcRawLinkInput,\n\t\tNcSearch,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Default: null. Show the provider list\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\t\t/**\n\t\t * Optional width in pixels\n\t\t * Default: 100%\n\t\t */\n\t\twidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Focus on the provider list select input on creation\n\t\t * Default: true\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'cancel-raw-link',\n\t\t'cancel-search',\n\t\t'provider-selected',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tMODES,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t}\n\t},\n\tcomputed: {\n\t\tmode() {\n\t\t\treturn this.selectedProvider === null\n\t\t\t\t? MODES.providerList\n\t\t\t\t: isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t\t? MODES.customElement\n\t\t\t\t\t: this.selectedProvider.search_providers_ids\n\t\t\t\t\t\t? MODES.searchInput\n\t\t\t\t\t\t: MODES.standardLinkInput\n\t\t},\n\t\tpickerWrapperStyle() {\n\t\t\treturn {\n\t\t\t\twidth: this.width ? this.width + 'px' : undefined,\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.focusOnCreate) {\n\t\t\tif (this.initialProvider) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t\t}, 300)\n\t\t\t} else {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t},\n\tmethods: {\n\t\tonEscapePressed() {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\tthis.deselectProvider()\n\t\t\t} else {\n\t\t\t\tthis.cancelProviderSelection()\n\t\t\t}\n\t\t},\n\t\tonProviderSelected(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\tthis.$emit('provider-selected', provider)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t})\n\t\t},\n\t\tcancelCustomElement() {\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelSearch() {\n\t\t\tthis.$emit('cancel-search', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelRawLinkInput() {\n\t\t\tthis.$emit('cancel-raw-link', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelProviderSelection() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t\tsubmitLink(link) {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\ttouchProvider(this.selectedProvider.id)\n\t\t\t}\n\t\t\tthis.$emit('submit', link)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tdeselectProvider() {\n\t\t\tthis.selectedProvider = null\n\t\t\tthis.$emit('provider-selected', null)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t}, 300)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.reference-picker {\n\tdisplay: flex;\n\toverflow-y: auto;\n\twidth: 100%;\n\n\t.custom-element-wrapper {\n\t\tdisplay: flex;\n\t\toverflow-y: auto;\n\t\twidth: 100%;\n\t}\n}\n</style>\n","<template>\n\t<NcModal v-if=\"show\"\n\t\t:size=\"modalSize\"\n\t\t:can-close=\"false\"\n\t\tclass=\"reference-picker-modal\"\n\t\t@close=\"onCancel\">\n\t\t<div ref=\"modal_content\"\n\t\t\tclass=\"reference-picker-modal--content\">\n\t\t\t<NcButton v-if=\"showBackButton\"\n\t\t\t\t:aria-label=\"backButtonTitle\"\n\t\t\t\t:title=\"backButtonTitle\"\n\t\t\t\tclass=\"back-button\"\n\t\t\t\t@click=\"onBackClicked\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ArrowLeftIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton :aria-label=\"closeButtonLabel\"\n\t\t\t\t:title=\"closeButtonTitle\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tclass=\"close-button\"\n\t\t\t\t@click=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<h2 v-if=\"showModalName\">\n\t\t\t\t{{ modalName }}\n\t\t\t</h2>\n\t\t\t<NcReferencePicker ref=\"referencePicker\"\n\t\t\t\t:initial-provider=\"initialProvider\"\n\t\t\t\t:focus-on-create=\"focusOnCreate\"\n\t\t\t\t@provider-selected=\"onProviderSelect\"\n\t\t\t\t@submit=\"onSubmit\"\n\t\t\t\t@cancel=\"onCancel\" />\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport NcReferencePicker from './NcReferencePicker.vue'\nimport { getCustomPickerElementSize, isCustomPickerElementRegistered } from './customPickerElements.js'\nimport NcButton from '../../NcButton/index.js'\nimport NcModal from '../../NcModal/index.js'\nimport { t } from '../../../l10n.js'\n\nimport { emit } from '@nextcloud/event-bus'\n\nimport ArrowLeftIcon from 'vue-material-design-icons/ArrowLeft.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\n\nexport default {\n\tname: 'NcReferencePickerModal',\n\tcomponents: {\n\t\tNcReferencePicker,\n\t\tNcModal,\n\t\tNcButton,\n\t\tArrowLeftIcon,\n\t\tCloseIcon,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Show the provider list if no initial one is provided\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\t\t/**\n\t\t * Focus on the input item on create\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * If true, add the modal content to the Viewer trap elements via the event-bus\n\t\t */\n\t\tisInsideViewer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tshow: true,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t\tbackButtonTitle: t('Back to provider selection'),\n\t\t\tcloseButtonTitle: t('Close'),\n\t\t\tcloseButtonLabel: t('Close Smart Picker'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tisProviderSelected() {\n\t\t\treturn this.selectedProvider !== null\n\t\t},\n\t\tshowBackButton() {\n\t\t\treturn this.initialProvider === null && this.isProviderSelected\n\t\t},\n\t\tmodalSize() {\n\t\t\treturn this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t? (getCustomPickerElementSize(this.selectedProvider.id) ?? 'large')\n\t\t\t\t: 'normal'\n\t\t},\n\t\tshowModalName() {\n\t\t\treturn !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t},\n\t\tmodalName() {\n\t\t\treturn this.isProviderSelected\n\t\t\t\t? this.selectedProvider.title\n\t\t\t\t: t('Smart Picker')\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.isInsideViewer) {\n\t\t\tconst elem = this.$refs.modal_content\n\t\t\temit('viewer:trapElements:changed', elem)\n\t\t}\n\t},\n\tmethods: {\n\t\tonCancel() {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t\tonSubmit(value) {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\t\tonProviderSelect(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\t// provider was deselected and we started with an inital one: just close the modal\n\t\t\tif (provider === null && this.initialProvider !== null) {\n\t\t\t\tthis.onCancel()\n\t\t\t}\n\t\t},\n\t\tonBackClicked() {\n\t\t\tthis.$refs.referencePicker.deselectProvider()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n// this is to avoid scroll on the container and leave it to the result block\n.reference-picker-modal .modal-container {\n\tdisplay: flex !important;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.reference-picker-modal--content {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow-y: auto;\n\n\t.close-button,\n\t.back-button {\n\t\tposition: absolute;\n\t\ttop: 4px;\n\t}\n\t.back-button {\n\t\tleft: 4px;\n\t}\n\t.close-button {\n\t\tright: 4px;\n\t}\n\n\t> h2 {\n\t\tdisplay: flex;\n\t\tmargin: 12px 0 20px 0;\n\t\t.icon {\n\t\t\tmargin-right: 8px;\n\t\t}\n\t}\n}\n</style>\n","import NcReferencePickerModal from './NcReferencePickerModal.vue'\nimport { getProvider } from './providerHelper.js'\n\nimport Vue from 'vue'\n\n/**\n * Creates a reference picker modal and return a promise which provides the result\n *\n * @param {string} providerId Optional ID of initial selected provider\n * @param {boolean} isInsideViewer Should be true if this function is called while the Viewer is displayed\n * @return {Promise<unknown>}\n */\nexport async function getLinkWithPicker(providerId = null, isInsideViewer = undefined) {\n\treturn await new Promise((resolve, reject) => {\n\t\tconst modalId = 'referencePickerModal'\n\t\tconst modalElement = document.createElement('div')\n\t\tmodalElement.id = modalId\n\t\tdocument.body.append(modalElement)\n\n\t\tconst initialProvider = providerId === null\n\t\t\t? null\n\t\t\t: (getProvider(providerId) ?? null)\n\n\t\tconst View = Vue.extend(NcReferencePickerModal)\n\t\tconst view = new View({\n\t\t\tpropsData: {\n\t\t\t\tinitialProvider,\n\t\t\t\tisInsideViewer,\n\t\t\t},\n\t\t}).$mount(modalElement)\n\n\t\tview.$on('cancel', () => {\n\t\t\tview.$destroy()\n\t\t\treject(new Error('User cancellation'))\n\t\t})\n\t\tview.$on('submit', (link) => {\n\t\t\tview.$destroy()\n\t\t\tresolve(link)\n\t\t})\n\t})\n}\n"],"names":["isWidgetRegistered","id","registerWidget","callback","onDestroy","el","renderWidget","richObjectType","richObject","accessible","destroyWidget","_sfc_main$8","lineClamp","link","entries","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","registerCustomPickerElement","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult","_sfc_main$7","renderFunctionResult","result","e","value","anyLinkProviderId","anyLinkProvider","_l10n","router","initialState","getProvider","getProviders","p","keep","sortProviders","providerList","timestamps","a","b","ta","tb","searchProvider","query","limit","providers","escapedQuery","regexp","filteredSortedProviders","searchResult","touchProvider","timestamp","params","url","axios__default","response","mytimer","delay","ms","context","args","isUrl","str","_sfc_main$6","_sfc_main$5","NcSelect","Components_NcHighlight","Components_NcEmptyContent","LinkVariantIcon","loading","_sfc_main$4","Components_NcLoadingIcon","NcReferenceWidget","NcTextField","error","_sfc_main$3","LIMIT","_sfc_main$2","DotsHorizontal","NcSearchResult","options","results","pid","providerEntriesWithId","entry","index","resultsBySearchProvider","item","searchProviderId","searchPromises","promises","cursor","data","MODES","_sfc_main$1","NcCustomPickerElement","NcProviderList","NcRawLinkInput","NcSearch","provider","_sfc_main","NcReferencePicker","Components_NcModal","Components_NcButton","ArrowLeft","Close","elem","eventBus","getLinkWithPicker","isInsideViewer","resolve","reject","modalId","modalElement","initialProvider","View","Vue__default","NcReferencePickerModal","view"],"mappings":"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","x_google_ignoreList":[6]}