@nextcloud/vue 8.0.0-beta.9 → 8.0.1

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 (292) hide show
  1. package/CHANGELOG.md +52 -2
  2. package/dist/Components/NcActionButton.cjs +23 -12
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +21 -9
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionInput.cjs +1 -1
  7. package/dist/Components/NcActionInput.mjs +1 -1
  8. package/dist/Components/NcActionLink.cjs +1 -1
  9. package/dist/Components/NcActionLink.mjs +1 -1
  10. package/dist/Components/NcActionRouter.cjs +1 -1
  11. package/dist/Components/NcActionRouter.mjs +1 -1
  12. package/dist/Components/NcActionText.cjs +1 -1
  13. package/dist/Components/NcActionText.mjs +1 -1
  14. package/dist/Components/NcActionTextEditable.cjs +10 -10
  15. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  16. package/dist/Components/NcActionTextEditable.mjs +1 -1
  17. package/dist/Components/NcActions.cjs +55 -52
  18. package/dist/Components/NcActions.cjs.map +1 -1
  19. package/dist/Components/NcActions.mjs +44 -41
  20. package/dist/Components/NcActions.mjs.map +1 -1
  21. package/dist/Components/NcAppContent.cjs +19 -20
  22. package/dist/Components/NcAppContent.cjs.map +1 -1
  23. package/dist/Components/NcAppContent.mjs +8 -8
  24. package/dist/Components/NcAppContent.mjs.map +1 -1
  25. package/dist/Components/NcAppNavigation.cjs +58 -27
  26. package/dist/Components/NcAppNavigation.cjs.map +1 -1
  27. package/dist/Components/NcAppNavigation.mjs +67 -34
  28. package/dist/Components/NcAppNavigation.mjs.map +1 -1
  29. package/dist/Components/NcAppNavigationItem.cjs +166 -62
  30. package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
  31. package/dist/Components/NcAppNavigationItem.mjs +145 -43
  32. package/dist/Components/NcAppNavigationItem.mjs.map +1 -1
  33. package/dist/Components/NcAppNavigationNew.cjs +6 -6
  34. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  35. package/dist/Components/NcAppNavigationNew.mjs +17 -17
  36. package/dist/Components/NcAppNavigationNew.mjs.map +1 -1
  37. package/dist/Components/NcAppNavigationNewItem.cjs +7 -7
  38. package/dist/Components/NcAppNavigationNewItem.cjs.map +1 -1
  39. package/dist/Components/NcAppNavigationNewItem.mjs +5 -5
  40. package/dist/Components/NcAppNavigationNewItem.mjs.map +1 -1
  41. package/dist/Components/NcAppNavigationSettings.cjs +46 -14
  42. package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
  43. package/dist/Components/NcAppNavigationSettings.mjs +48 -16
  44. package/dist/Components/NcAppNavigationSettings.mjs.map +1 -1
  45. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  46. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  47. package/dist/Components/NcAppSettingsDialog.cjs +75 -54
  48. package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
  49. package/dist/Components/NcAppSettingsDialog.mjs +79 -57
  50. package/dist/Components/NcAppSettingsDialog.mjs.map +1 -1
  51. package/dist/Components/NcAppSettingsSection.cjs +29 -10
  52. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  53. package/dist/Components/NcAppSettingsSection.mjs +29 -10
  54. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  55. package/dist/Components/NcAppSidebar.cjs +99 -33
  56. package/dist/Components/NcAppSidebar.cjs.map +1 -1
  57. package/dist/Components/NcAppSidebar.mjs +156 -92
  58. package/dist/Components/NcAppSidebar.mjs.map +1 -1
  59. package/dist/Components/NcAppSidebarTab.cjs +7 -7
  60. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  61. package/dist/Components/NcAppSidebarTab.mjs +6 -6
  62. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  63. package/dist/Components/NcAvatar.cjs +1 -1
  64. package/dist/Components/NcAvatar.mjs +1 -1
  65. package/dist/Components/NcBreadcrumb.cjs +10 -10
  66. package/dist/Components/NcBreadcrumb.cjs.map +1 -1
  67. package/dist/Components/NcBreadcrumb.mjs +1 -1
  68. package/dist/Components/NcBreadcrumbs.cjs +85 -53
  69. package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
  70. package/dist/Components/NcBreadcrumbs.mjs +91 -60
  71. package/dist/Components/NcBreadcrumbs.mjs.map +1 -1
  72. package/dist/Components/NcButton.cjs +25 -25
  73. package/dist/Components/NcButton.cjs.map +1 -1
  74. package/dist/Components/NcButton.mjs +25 -25
  75. package/dist/Components/NcButton.mjs.map +1 -1
  76. package/dist/Components/NcCheckboxRadioSwitch.cjs +305 -67
  77. package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
  78. package/dist/Components/NcCheckboxRadioSwitch.mjs +307 -75
  79. package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
  80. package/dist/Components/NcColorPicker.cjs +18 -18
  81. package/dist/Components/NcColorPicker.cjs.map +1 -1
  82. package/dist/Components/NcColorPicker.mjs +17 -17
  83. package/dist/Components/NcColorPicker.mjs.map +1 -1
  84. package/dist/Components/NcCounterBubble.cjs +6 -6
  85. package/dist/Components/NcCounterBubble.cjs.map +1 -1
  86. package/dist/Components/NcCounterBubble.mjs +2 -2
  87. package/dist/Components/NcCounterBubble.mjs.map +1 -1
  88. package/dist/Components/NcDashboardWidget.cjs +30 -30
  89. package/dist/Components/NcDashboardWidget.cjs.map +1 -1
  90. package/dist/Components/NcDashboardWidget.mjs +3 -3
  91. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  92. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  93. package/dist/Components/NcDateTime.cjs +1 -1
  94. package/dist/Components/NcDateTime.mjs +1 -1
  95. package/dist/Components/NcDateTimePicker.cjs +109 -44
  96. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  97. package/dist/Components/NcDateTimePicker.mjs +115 -52
  98. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  99. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  100. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  101. package/dist/Components/NcDialogButton.cjs +11 -11
  102. package/dist/Components/NcDialogButton.cjs.map +1 -1
  103. package/dist/Components/NcDialogButton.mjs +14 -14
  104. package/dist/Components/NcDialogButton.mjs.map +1 -1
  105. package/dist/Components/NcEmojiPicker.cjs +1 -1
  106. package/dist/Components/NcEmojiPicker.mjs +1 -1
  107. package/dist/Components/NcEmptyContent.cjs +14 -14
  108. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  109. package/dist/Components/NcEmptyContent.mjs +7 -7
  110. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  111. package/dist/Components/NcInputField.cjs +16 -16
  112. package/dist/Components/NcInputField.cjs.map +1 -1
  113. package/dist/Components/NcInputField.mjs +5 -5
  114. package/dist/Components/NcInputField.mjs.map +1 -1
  115. package/dist/Components/NcListItem.cjs +3 -3
  116. package/dist/Components/NcListItem.cjs.map +1 -1
  117. package/dist/Components/NcListItem.mjs +3 -3
  118. package/dist/Components/NcListItem.mjs.map +1 -1
  119. package/dist/Components/NcListItemIcon.cjs +1 -1
  120. package/dist/Components/NcListItemIcon.mjs +1 -1
  121. package/dist/Components/NcModal.cjs +165 -68
  122. package/dist/Components/NcModal.cjs.map +1 -1
  123. package/dist/Components/NcModal.mjs +129 -35
  124. package/dist/Components/NcModal.mjs.map +1 -1
  125. package/dist/Components/NcNoteCard.cjs +146 -18
  126. package/dist/Components/NcNoteCard.cjs.map +1 -1
  127. package/dist/Components/NcNoteCard.mjs +146 -21
  128. package/dist/Components/NcNoteCard.mjs.map +1 -1
  129. package/dist/Components/NcPasswordField.cjs +84 -20
  130. package/dist/Components/NcPasswordField.cjs.map +1 -1
  131. package/dist/Components/NcPasswordField.mjs +104 -42
  132. package/dist/Components/NcPasswordField.mjs.map +1 -1
  133. package/dist/Components/NcRelatedResourcesPanel.cjs +48 -31
  134. package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
  135. package/dist/Components/NcRelatedResourcesPanel.mjs +31 -14
  136. package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
  137. package/dist/Components/NcRichContenteditable.cjs +22 -18
  138. package/dist/Components/NcRichContenteditable.cjs.map +1 -1
  139. package/dist/Components/NcRichContenteditable.mjs +32 -28
  140. package/dist/Components/NcRichContenteditable.mjs.map +1 -1
  141. package/dist/Components/NcRichText.cjs +1 -1
  142. package/dist/Components/NcRichText.mjs +3 -3
  143. package/dist/Components/NcSelect.cjs +80 -57
  144. package/dist/Components/NcSelect.cjs.map +1 -1
  145. package/dist/Components/NcSelect.mjs +75 -50
  146. package/dist/Components/NcSelect.mjs.map +1 -1
  147. package/dist/Components/NcSelectTags.cjs +2 -2
  148. package/dist/Components/NcSelectTags.cjs.map +1 -1
  149. package/dist/Components/NcSelectTags.mjs +4 -4
  150. package/dist/Components/NcSelectTags.mjs.map +1 -1
  151. package/dist/Components/NcSettingsInputText.cjs +1 -1
  152. package/dist/Components/NcSettingsInputText.mjs +1 -1
  153. package/dist/Components/NcSettingsSection.cjs +46 -14
  154. package/dist/Components/NcSettingsSection.cjs.map +1 -1
  155. package/dist/Components/NcSettingsSection.mjs +44 -12
  156. package/dist/Components/NcSettingsSection.mjs.map +1 -1
  157. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  158. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  159. package/dist/Components/NcTextArea.cjs +14 -14
  160. package/dist/Components/NcTextArea.cjs.map +1 -1
  161. package/dist/Components/NcTextArea.mjs +6 -6
  162. package/dist/Components/NcTextArea.mjs.map +1 -1
  163. package/dist/Components/NcTextField.cjs +51 -19
  164. package/dist/Components/NcTextField.cjs.map +1 -1
  165. package/dist/Components/NcTextField.mjs +59 -28
  166. package/dist/Components/NcTextField.mjs.map +1 -1
  167. package/dist/Components/NcTimezonePicker.cjs +32 -24
  168. package/dist/Components/NcTimezonePicker.cjs.map +1 -1
  169. package/dist/Components/NcTimezonePicker.mjs +36 -27
  170. package/dist/Components/NcTimezonePicker.mjs.map +1 -1
  171. package/dist/Components/NcUserBubble.cjs +24 -20
  172. package/dist/Components/NcUserBubble.cjs.map +1 -1
  173. package/dist/Components/NcUserBubble.mjs +25 -20
  174. package/dist/Components/NcUserBubble.mjs.map +1 -1
  175. package/dist/assets/{NcAppNavigationToggle-2cc5b864.css → NcAppNavigationToggle-9e170630.css} +3 -2
  176. package/dist/assets/{NcInputConfirmCancel-2ba60a52.css → NcInputConfirmCancel-45d1d76b.css} +7 -7
  177. package/dist/assets/{index-af72a30b.css → index-05760fea.css} +5 -1
  178. package/dist/assets/{index-30e099f7.css → index-0ac09203.css} +3 -3
  179. package/dist/assets/{index-eea65531.css → index-0e9b11c7.css} +20 -16
  180. package/dist/assets/{index-7813bab3.css → index-17673ea1.css} +7 -9
  181. package/dist/assets/{index-1151d229.css → index-1f25a3c0.css} +3 -3
  182. package/dist/assets/{index-9dcf6260.css → index-2e5e3b55.css} +30 -30
  183. package/dist/assets/{index-ed4adf1d.css → index-4271da53.css} +18 -17
  184. package/dist/assets/{index-abb90c97.css → index-4e03d941.css} +48 -48
  185. package/dist/assets/{index-4b75fe20.css → index-55600948.css} +11 -11
  186. package/dist/assets/{index-236620b0.css → index-6899d75b.css} +29 -29
  187. package/dist/assets/{index-5ee8a575.css → index-73ded07b.css} +63 -63
  188. package/dist/assets/{index-1beccc92.css → index-750c02cc.css} +28 -10
  189. package/dist/assets/{index-9e9587e1.css → index-77a548be.css} +4 -4
  190. package/dist/assets/{index-c5ae3bc4.css → index-7d211db9.css} +11 -11
  191. package/dist/assets/{index-8304db49.css → index-802d2118.css} +5 -1
  192. package/dist/assets/{index-a2d55f92.css → index-9176105d.css} +41 -41
  193. package/dist/assets/index-93bc89ef.css +197 -0
  194. package/dist/assets/{index-50b0766d.css → index-a0532427.css} +55 -70
  195. package/dist/assets/{index-e828b286.css → index-ab715d82.css} +4 -4
  196. package/dist/assets/{index-9e44e336.css → index-c221fe05.css} +9 -9
  197. package/dist/assets/{index-c6f0da2e.css → index-c239a2fc.css} +14 -8
  198. package/dist/assets/{index-73867d38.css → index-d3702c91.css} +5 -1
  199. package/dist/assets/{index-4a775ba1.css → index-d812ed9e.css} +43 -43
  200. package/dist/assets/{index-793eae6b.css → index-d9ae9479.css} +6 -6
  201. package/dist/assets/{index-f85aa003.css → index-db5a8b1c.css} +22 -10
  202. package/dist/assets/{index-574438d6.css → index-dea0aef3.css} +10 -10
  203. package/dist/assets/{index-0adc989c.css → index-ebbb7829.css} +9 -13
  204. package/dist/assets/{index-c06ad941.css → index-fbc0b606.css} +58 -42
  205. package/dist/chunks/AlertCircleOutline-7085c10f.cjs +35 -0
  206. package/dist/chunks/AlertCircleOutline-7085c10f.cjs.map +1 -0
  207. package/dist/chunks/AlertCircleOutline-b73838e0.mjs +37 -0
  208. package/dist/chunks/AlertCircleOutline-b73838e0.mjs.map +1 -0
  209. package/dist/chunks/ArrowLeft-2f9b9323.cjs +35 -0
  210. package/dist/chunks/ArrowLeft-2f9b9323.cjs.map +1 -0
  211. package/dist/chunks/ArrowLeft-3779ba88.mjs +37 -0
  212. package/dist/chunks/ArrowLeft-3779ba88.mjs.map +1 -0
  213. package/dist/chunks/ArrowRight-7315f6c1.cjs +35 -0
  214. package/dist/chunks/ArrowRight-7315f6c1.cjs.map +1 -0
  215. package/dist/chunks/ArrowRight-74a9fcb2.mjs +37 -0
  216. package/dist/chunks/ArrowRight-74a9fcb2.mjs.map +1 -0
  217. package/dist/chunks/Check-2ea0a88a.mjs +37 -0
  218. package/dist/chunks/Check-2ea0a88a.mjs.map +1 -0
  219. package/dist/chunks/Check-be8cd6af.cjs +35 -0
  220. package/dist/chunks/Check-be8cd6af.cjs.map +1 -0
  221. package/dist/chunks/ChevronDown-a72d365d.mjs +37 -0
  222. package/dist/chunks/ChevronDown-a72d365d.mjs.map +1 -0
  223. package/dist/chunks/ChevronDown-dc32e51d.cjs +35 -0
  224. package/dist/chunks/ChevronDown-dc32e51d.cjs.map +1 -0
  225. package/dist/chunks/ChevronRight-1a6a6cf2.mjs +37 -0
  226. package/dist/chunks/ChevronRight-1a6a6cf2.mjs.map +1 -0
  227. package/dist/chunks/ChevronRight-a4c1e0d3.cjs +35 -0
  228. package/dist/chunks/ChevronRight-a4c1e0d3.cjs.map +1 -0
  229. package/dist/chunks/Close-271f72e2.mjs +37 -0
  230. package/dist/chunks/Close-271f72e2.mjs.map +1 -0
  231. package/dist/chunks/Close-98cb6f12.cjs +35 -0
  232. package/dist/chunks/Close-98cb6f12.cjs.map +1 -0
  233. package/dist/chunks/DotsHorizontal-0ee7d901.mjs +37 -0
  234. package/dist/chunks/DotsHorizontal-0ee7d901.mjs.map +1 -0
  235. package/dist/chunks/DotsHorizontal-ac96129a.cjs +35 -0
  236. package/dist/chunks/DotsHorizontal-ac96129a.cjs.map +1 -0
  237. package/dist/chunks/NcAppNavigationToggle-60664a28.cjs +113 -0
  238. package/dist/chunks/NcAppNavigationToggle-60664a28.cjs.map +1 -0
  239. package/dist/chunks/NcAppNavigationToggle-82764816.mjs +118 -0
  240. package/dist/chunks/NcAppNavigationToggle-82764816.mjs.map +1 -0
  241. package/dist/chunks/NcInputConfirmCancel-262d455f.cjs +90 -0
  242. package/dist/chunks/{NcInputConfirmCancel-44052477.mjs.map → NcInputConfirmCancel-262d455f.cjs.map} +1 -1
  243. package/dist/chunks/{NcInputConfirmCancel-44052477.mjs → NcInputConfirmCancel-906c7816.mjs} +11 -11
  244. package/dist/chunks/{NcInputConfirmCancel-6bea0fdc.cjs.map → NcInputConfirmCancel-906c7816.mjs.map} +1 -1
  245. package/dist/chunks/{NcRichText-8fda53c8.mjs → NcRichText-1e8fd02d.mjs} +1 -1
  246. package/dist/chunks/{NcRichText-8fda53c8.mjs.map → NcRichText-1e8fd02d.mjs.map} +1 -1
  247. package/dist/chunks/{NcRichText-332fe454.cjs → NcRichText-ae95c854.cjs} +1 -1
  248. package/dist/chunks/{NcRichText-332fe454.cjs.map → NcRichText-ae95c854.cjs.map} +1 -1
  249. package/dist/chunks/{NcSettingsSelectGroup-fdd3309c.mjs → NcSettingsSelectGroup-ae323579.mjs} +2 -2
  250. package/dist/chunks/{NcSettingsSelectGroup-fdd3309c.mjs.map → NcSettingsSelectGroup-ae323579.mjs.map} +1 -1
  251. package/dist/chunks/{NcSettingsSelectGroup-a5ff8c36.cjs → NcSettingsSelectGroup-e8f9f9fe.cjs} +1 -1
  252. package/dist/chunks/{NcSettingsSelectGroup-a5ff8c36.cjs.map → NcSettingsSelectGroup-e8f9f9fe.cjs.map} +1 -1
  253. package/dist/chunks/{ScopeComponent-9519afcc.mjs → ScopeComponent-1ab1ebb9.mjs} +1 -1
  254. package/dist/chunks/{ScopeComponent-9519afcc.mjs.map → ScopeComponent-1ab1ebb9.mjs.map} +1 -1
  255. package/dist/chunks/{ScopeComponent-e060526a.cjs → ScopeComponent-50287dad.cjs} +1 -1
  256. package/dist/chunks/{ScopeComponent-e060526a.cjs.map → ScopeComponent-50287dad.cjs.map} +1 -1
  257. package/dist/chunks/{index-032137a6.cjs → index-e06b96d3.cjs} +56 -47
  258. package/dist/chunks/index-e06b96d3.cjs.map +1 -0
  259. package/dist/chunks/{index-fb2ee22c.mjs → index-fbf943b3.mjs} +93 -84
  260. package/dist/chunks/index-fbf943b3.mjs.map +1 -0
  261. package/dist/chunks/{l10n-9aa6482d.mjs → l10n-9fc9974f.mjs} +1 -1
  262. package/dist/chunks/{l10n-9aa6482d.mjs.map → l10n-9fc9974f.mjs.map} +1 -1
  263. package/dist/chunks/{l10n-c7bd0ea6.cjs → l10n-ec2d3010.cjs} +1 -1
  264. package/dist/chunks/{l10n-c7bd0ea6.cjs.map → l10n-ec2d3010.cjs.map} +1 -1
  265. package/dist/chunks/l10n-f491109d.cjs +29 -0
  266. package/dist/chunks/l10n-f491109d.cjs.map +1 -0
  267. package/dist/chunks/l10n-f692947e.mjs +31 -0
  268. package/dist/chunks/l10n-f692947e.mjs.map +1 -0
  269. package/dist/chunks/{referencePickerModal-443a4c57.mjs → referencePickerModal-6bc8f6b9.mjs} +156 -124
  270. package/dist/chunks/referencePickerModal-6bc8f6b9.mjs.map +1 -0
  271. package/dist/chunks/{referencePickerModal-279a483d.cjs → referencePickerModal-e033bf2c.cjs} +144 -111
  272. package/dist/chunks/referencePickerModal-e033bf2c.cjs.map +1 -0
  273. package/dist/index.cjs +4 -8
  274. package/dist/index.cjs.map +1 -1
  275. package/dist/index.mjs +26 -30
  276. package/dist/index.mjs.map +1 -1
  277. package/dist/vendor.LICENSE.txt +5 -1
  278. package/package.json +3 -3
  279. package/dist/assets/index-d646553d.css +0 -41
  280. package/dist/chunks/NcAppNavigationToggle-841d3015.cjs +0 -49
  281. package/dist/chunks/NcAppNavigationToggle-841d3015.cjs.map +0 -1
  282. package/dist/chunks/NcAppNavigationToggle-e358aa47.mjs +0 -55
  283. package/dist/chunks/NcAppNavigationToggle-e358aa47.mjs.map +0 -1
  284. package/dist/chunks/NcInputConfirmCancel-6bea0fdc.cjs +0 -90
  285. package/dist/chunks/index-032137a6.cjs.map +0 -1
  286. package/dist/chunks/index-fb2ee22c.mjs.map +0 -1
  287. package/dist/chunks/l10n-05a09c66.mjs +0 -31
  288. package/dist/chunks/l10n-05a09c66.mjs.map +0 -1
  289. package/dist/chunks/l10n-b1d264c7.cjs +0 -29
  290. package/dist/chunks/l10n-b1d264c7.cjs.map +0 -1
  291. package/dist/chunks/referencePickerModal-279a483d.cjs.map +0 -1
  292. package/dist/chunks/referencePickerModal-443a4c57.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"l10n-b1d264c7.cjs","sources":["../../src/l10n.js"],"sourcesContent":["import { getGettextBuilder } from '@nextcloud/l10n/gettext'\n\nconst gtBuilder = getGettextBuilder()\n\t.detectLocale()\n\n// Decompress Translations to gettext format and add to gtBuilder\nTRANSLATIONS.forEach((lang) => {\n\tconst translations = {}\n\n\tfor (const key in lang.translations) {\n\t\t// Plural\n\t\tif (lang.translations[key].pluralId) {\n\t\t\ttranslations[key] = {\n\t\t\t\tmsgid: key,\n\t\t\t\tmsgid_plural: lang.translations[key].pluralId,\n\t\t\t\tmsgstr: lang.translations[key].msgstr,\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Singular\n\t\ttranslations[key] = {\n\t\t\tmsgid: key,\n\t\t\tmsgstr: [\n\t\t\t\tlang.translations[key],\n\t\t\t],\n\t\t}\n\t}\n\n\tgtBuilder.addTranslation(lang.locale, {\n\t\ttranslations: {\n\t\t\t'': translations,\n\t\t},\n\t})\n})\n\nconst gt = gtBuilder.build()\n\nconst n = gt.ngettext.bind(gt)\nconst t = gt.gettext.bind(gt)\n\nexport { t, n }\n"],"names":["gtBuilder","getGettextBuilder","lang","translations","key","gt","t"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"referencePickerModal-279a483d.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","../../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\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$7","lineClamp","link","entries","_a","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","registerCustomPickerElement","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult","_sfc_main$6","renderFunctionResult","result","_b","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$5","Components_NcSelect","Components_NcHighlight","Components_NcEmptyContent","LinkVariantIcon__default","_c","loading","_sfc_main$4","Components_NcLoadingIcon","NcReferenceWidget","Components_NcTextField","error","_sfc_main$3","LIMIT","_sfc_main$2","DotsHorizontal__default","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","ArrowLeftIcon__default","Close__default","elem","eventBus","getLinkWithPicker","isInsideViewer","resolve","reject","modalId","modalElement","initialProvider","View","Vue__default","NcReferencePickerModal","view"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"referencePickerModal-443a4c57.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","../../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\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$7","lineClamp","link","entries","_a","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","registerCustomPickerElement","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult","_sfc_main$6","renderFunctionResult","result","_b","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$5","NcSelect","NcHighlight","NcEmptyContent","LinkVariantIcon","_c","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","ArrowLeftIcon","Close","elem","emit","getLinkWithPicker","isInsideViewer","resolve","reject","modalId","modalElement","initialProvider","View","Vue","NcReferencePickerModal","view"],"mappings":"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"}