@nextcloud/vue 8.0.0-beta.6 → 8.0.0-beta.8

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 (568) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/Components/NcActionButton.cjs +49 -1
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +48 -12
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionButtonGroup.cjs +30 -1
  7. package/dist/Components/NcActionButtonGroup.cjs.map +1 -1
  8. package/dist/Components/NcActionButtonGroup.mjs +30 -9
  9. package/dist/Components/NcActionButtonGroup.mjs.map +1 -1
  10. package/dist/Components/NcActionCaption.cjs +29 -1
  11. package/dist/Components/NcActionCaption.cjs.map +1 -1
  12. package/dist/Components/NcActionCaption.mjs +29 -9
  13. package/dist/Components/NcActionCaption.mjs.map +1 -1
  14. package/dist/Components/NcActionCheckbox.cjs +78 -1
  15. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  16. package/dist/Components/NcActionCheckbox.mjs +80 -19
  17. package/dist/Components/NcActionCheckbox.mjs.map +1 -1
  18. package/dist/Components/NcActionInput.cjs +226 -1
  19. package/dist/Components/NcActionInput.cjs.map +1 -1
  20. package/dist/Components/NcActionInput.mjs +227 -68
  21. package/dist/Components/NcActionInput.mjs.map +1 -1
  22. package/dist/Components/NcActionLink.cjs +69 -1
  23. package/dist/Components/NcActionLink.cjs.map +1 -1
  24. package/dist/Components/NcActionLink.mjs +65 -13
  25. package/dist/Components/NcActionLink.mjs.map +1 -1
  26. package/dist/Components/NcActionRadio.cjs +85 -1
  27. package/dist/Components/NcActionRadio.cjs.map +1 -1
  28. package/dist/Components/NcActionRadio.mjs +87 -19
  29. package/dist/Components/NcActionRadio.mjs.map +1 -1
  30. package/dist/Components/NcActionRouter.cjs +42 -1
  31. package/dist/Components/NcActionRouter.cjs.map +1 -1
  32. package/dist/Components/NcActionRouter.mjs +41 -12
  33. package/dist/Components/NcActionRouter.mjs.map +1 -1
  34. package/dist/Components/NcActionSeparator.cjs +20 -1
  35. package/dist/Components/NcActionSeparator.cjs.map +1 -1
  36. package/dist/Components/NcActionSeparator.mjs +20 -9
  37. package/dist/Components/NcActionSeparator.mjs.map +1 -1
  38. package/dist/Components/NcActionText.cjs +23 -1
  39. package/dist/Components/NcActionText.cjs.map +1 -1
  40. package/dist/Components/NcActionText.mjs +20 -8
  41. package/dist/Components/NcActionText.mjs.map +1 -1
  42. package/dist/Components/NcActionTextEditable.cjs +81 -1
  43. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  44. package/dist/Components/NcActionTextEditable.mjs +79 -22
  45. package/dist/Components/NcActionTextEditable.mjs.map +1 -1
  46. package/dist/Components/NcActions.cjs +455 -1
  47. package/dist/Components/NcActions.cjs.map +1 -1
  48. package/dist/Components/NcActions.mjs +459 -100
  49. package/dist/Components/NcActions.mjs.map +1 -1
  50. package/dist/Components/NcAppContent.cjs +218 -1
  51. package/dist/Components/NcAppContent.cjs.map +1 -1
  52. package/dist/Components/NcAppContent.mjs +220 -66
  53. package/dist/Components/NcAppContent.mjs.map +1 -1
  54. package/dist/Components/NcAppContentDetails.cjs +19 -1
  55. package/dist/Components/NcAppContentDetails.cjs.map +1 -1
  56. package/dist/Components/NcAppContentDetails.mjs +18 -7
  57. package/dist/Components/NcAppContentDetails.mjs.map +1 -1
  58. package/dist/Components/NcAppContentList.cjs +29 -1
  59. package/dist/Components/NcAppContentList.cjs.map +1 -1
  60. package/dist/Components/NcAppContentList.mjs +29 -8
  61. package/dist/Components/NcAppContentList.mjs.map +1 -1
  62. package/dist/Components/NcAppNavigation.cjs +66 -1
  63. package/dist/Components/NcAppNavigation.cjs.map +1 -1
  64. package/dist/Components/NcAppNavigation.mjs +67 -28
  65. package/dist/Components/NcAppNavigation.mjs.map +1 -1
  66. package/dist/Components/NcAppNavigationCaption.cjs +44 -1
  67. package/dist/Components/NcAppNavigationCaption.cjs.map +1 -1
  68. package/dist/Components/NcAppNavigationCaption.mjs +40 -9
  69. package/dist/Components/NcAppNavigationCaption.mjs.map +1 -1
  70. package/dist/Components/NcAppNavigationIconBullet.cjs +40 -1
  71. package/dist/Components/NcAppNavigationIconBullet.cjs.map +1 -1
  72. package/dist/Components/NcAppNavigationIconBullet.mjs +40 -15
  73. package/dist/Components/NcAppNavigationIconBullet.mjs.map +1 -1
  74. package/dist/Components/NcAppNavigationItem.cjs +386 -1
  75. package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
  76. package/dist/Components/NcAppNavigationItem.mjs +382 -81
  77. package/dist/Components/NcAppNavigationItem.mjs.map +1 -1
  78. package/dist/Components/NcAppNavigationNew.cjs +50 -1
  79. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  80. package/dist/Components/NcAppNavigationNew.mjs +51 -14
  81. package/dist/Components/NcAppNavigationNew.mjs.map +1 -1
  82. package/dist/Components/NcAppNavigationNewItem.cjs +87 -1
  83. package/dist/Components/NcAppNavigationNewItem.cjs.map +1 -1
  84. package/dist/Components/NcAppNavigationNewItem.mjs +83 -17
  85. package/dist/Components/NcAppNavigationNewItem.mjs.map +1 -1
  86. package/dist/Components/NcAppNavigationSettings.cjs +69 -1
  87. package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
  88. package/dist/Components/NcAppNavigationSettings.mjs +60 -21
  89. package/dist/Components/NcAppNavigationSettings.mjs.map +1 -1
  90. package/dist/Components/NcAppNavigationSpacer.cjs +20 -1
  91. package/dist/Components/NcAppNavigationSpacer.cjs.map +1 -1
  92. package/dist/Components/NcAppNavigationSpacer.mjs +20 -9
  93. package/dist/Components/NcAppNavigationSpacer.mjs.map +1 -1
  94. package/dist/Components/NcAppNavigationToggle.cjs +25 -1
  95. package/dist/Components/NcAppNavigationToggle.cjs.map +1 -1
  96. package/dist/Components/NcAppNavigationToggle.mjs +21 -1
  97. package/dist/Components/NcAppNavigationToggle.mjs.map +1 -1
  98. package/dist/Components/NcAppSettingsDialog.cjs +207 -1
  99. package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
  100. package/dist/Components/NcAppSettingsDialog.mjs +209 -48
  101. package/dist/Components/NcAppSettingsDialog.mjs.map +1 -1
  102. package/dist/Components/NcAppSettingsSection.cjs +39 -1
  103. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  104. package/dist/Components/NcAppSettingsSection.mjs +39 -13
  105. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  106. package/dist/Components/NcAppSidebar.cjs +443 -1
  107. package/dist/Components/NcAppSidebar.cjs.map +1 -1
  108. package/dist/Components/NcAppSidebar.mjs +409 -92
  109. package/dist/Components/NcAppSidebar.mjs.map +1 -1
  110. package/dist/Components/NcAppSidebarTab.cjs +83 -1
  111. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  112. package/dist/Components/NcAppSidebarTab.mjs +83 -20
  113. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  114. package/dist/Components/NcAvatar.cjs +3 -1
  115. package/dist/Components/NcAvatar.cjs.map +1 -1
  116. package/dist/Components/NcAvatar.mjs +1 -1
  117. package/dist/Components/NcBreadcrumb.cjs +175 -1
  118. package/dist/Components/NcBreadcrumb.cjs.map +1 -1
  119. package/dist/Components/NcBreadcrumb.mjs +175 -35
  120. package/dist/Components/NcBreadcrumb.mjs.map +1 -1
  121. package/dist/Components/NcBreadcrumbs.cjs +372 -1
  122. package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
  123. package/dist/Components/NcBreadcrumbs.mjs +373 -142
  124. package/dist/Components/NcBreadcrumbs.mjs.map +1 -1
  125. package/dist/Components/NcButton.cjs +226 -1
  126. package/dist/Components/NcButton.cjs.map +1 -1
  127. package/dist/Components/NcButton.mjs +226 -24
  128. package/dist/Components/NcButton.mjs.map +1 -1
  129. package/dist/Components/NcCheckboxRadioSwitch.cjs +237 -1
  130. package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
  131. package/dist/Components/NcCheckboxRadioSwitch.mjs +243 -57
  132. package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
  133. package/dist/Components/NcColorPicker.cjs +118 -1
  134. package/dist/Components/NcColorPicker.cjs.map +1 -1
  135. package/dist/Components/NcColorPicker.mjs +124 -46
  136. package/dist/Components/NcColorPicker.mjs.map +1 -1
  137. package/dist/Components/NcContent.cjs +25 -1
  138. package/dist/Components/NcContent.cjs.map +1 -1
  139. package/dist/Components/NcContent.mjs +24 -8
  140. package/dist/Components/NcContent.mjs.map +1 -1
  141. package/dist/Components/NcCounterBubble.cjs +47 -1
  142. package/dist/Components/NcCounterBubble.cjs.map +1 -1
  143. package/dist/Components/NcCounterBubble.mjs +46 -12
  144. package/dist/Components/NcCounterBubble.mjs.map +1 -1
  145. package/dist/Components/NcDashboardWidget.cjs +133 -1
  146. package/dist/Components/NcDashboardWidget.cjs.map +1 -1
  147. package/dist/Components/NcDashboardWidget.mjs +128 -39
  148. package/dist/Components/NcDashboardWidget.mjs.map +1 -1
  149. package/dist/Components/NcDashboardWidgetItem.cjs +138 -1
  150. package/dist/Components/NcDashboardWidgetItem.cjs.map +1 -1
  151. package/dist/Components/NcDashboardWidgetItem.mjs +129 -22
  152. package/dist/Components/NcDashboardWidgetItem.mjs.map +1 -1
  153. package/dist/Components/NcDateTime.cjs +125 -0
  154. package/dist/Components/{NcDatetime.mjs.map → NcDateTime.cjs.map} +1 -1
  155. package/dist/Components/NcDateTime.mjs +129 -0
  156. package/dist/Components/{NcDatetime.cjs.map → NcDateTime.mjs.map} +1 -1
  157. package/dist/Components/NcDateTimePicker.cjs +217 -0
  158. package/dist/Components/NcDateTimePicker.cjs.map +1 -0
  159. package/dist/Components/NcDateTimePicker.mjs +228 -0
  160. package/dist/Components/NcDateTimePicker.mjs.map +1 -0
  161. package/dist/Components/NcDateTimePickerNative.cjs +199 -1
  162. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  163. package/dist/Components/NcDateTimePickerNative.mjs +195 -58
  164. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  165. package/dist/Components/NcEllipsisedOption.cjs +74 -1
  166. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  167. package/dist/Components/NcEllipsisedOption.mjs +73 -20
  168. package/dist/Components/NcEllipsisedOption.mjs.map +1 -1
  169. package/dist/Components/NcEmojiPicker.cjs +175 -1
  170. package/dist/Components/NcEmojiPicker.cjs.map +1 -1
  171. package/dist/Components/NcEmojiPicker.mjs +173 -53
  172. package/dist/Components/NcEmojiPicker.mjs.map +1 -1
  173. package/dist/Components/NcEmptyContent.cjs +54 -1
  174. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  175. package/dist/Components/NcEmptyContent.mjs +46 -10
  176. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  177. package/dist/Components/NcGuestContent.cjs +26 -1
  178. package/dist/Components/NcGuestContent.cjs.map +1 -1
  179. package/dist/Components/NcGuestContent.mjs +24 -11
  180. package/dist/Components/NcGuestContent.mjs.map +1 -1
  181. package/dist/Components/NcHeaderMenu.cjs +167 -1
  182. package/dist/Components/NcHeaderMenu.cjs.map +1 -1
  183. package/dist/Components/NcHeaderMenu.mjs +161 -49
  184. package/dist/Components/NcHeaderMenu.mjs.map +1 -1
  185. package/dist/Components/NcHighlight.cjs +3 -1
  186. package/dist/Components/NcHighlight.cjs.map +1 -1
  187. package/dist/Components/NcHighlight.mjs +1 -1
  188. package/dist/Components/NcIconSvgWrapper.cjs +44 -1
  189. package/dist/Components/NcIconSvgWrapper.cjs.map +1 -1
  190. package/dist/Components/NcIconSvgWrapper.mjs +45 -15
  191. package/dist/Components/NcIconSvgWrapper.mjs.map +1 -1
  192. package/dist/Components/NcInputField.cjs +210 -1
  193. package/dist/Components/NcInputField.cjs.map +1 -1
  194. package/dist/Components/NcInputField.mjs +211 -38
  195. package/dist/Components/NcInputField.mjs.map +1 -1
  196. package/dist/Components/NcListItem.cjs +237 -1
  197. package/dist/Components/NcListItem.cjs.map +1 -1
  198. package/dist/Components/NcListItem.mjs +233 -57
  199. package/dist/Components/NcListItem.mjs.map +1 -1
  200. package/dist/Components/NcListItemIcon.cjs +150 -1
  201. package/dist/Components/NcListItemIcon.cjs.map +1 -1
  202. package/dist/Components/NcListItemIcon.mjs +142 -26
  203. package/dist/Components/NcListItemIcon.mjs.map +1 -1
  204. package/dist/Components/NcLoadingIcon.cjs +54 -1
  205. package/dist/Components/NcLoadingIcon.cjs.map +1 -1
  206. package/dist/Components/NcLoadingIcon.mjs +54 -14
  207. package/dist/Components/NcLoadingIcon.mjs.map +1 -1
  208. package/dist/Components/NcModal.cjs +405 -1
  209. package/dist/Components/NcModal.cjs.map +1 -1
  210. package/dist/Components/NcModal.mjs +401 -103
  211. package/dist/Components/NcModal.mjs.map +1 -1
  212. package/dist/Components/NcNoteCard.cjs +71 -1
  213. package/dist/Components/NcNoteCard.cjs.map +1 -1
  214. package/dist/Components/NcNoteCard.mjs +71 -37
  215. package/dist/Components/NcNoteCard.mjs.map +1 -1
  216. package/dist/Components/NcPasswordField.cjs +152 -1
  217. package/dist/Components/NcPasswordField.cjs.map +1 -1
  218. package/dist/Components/NcPasswordField.mjs +157 -53
  219. package/dist/Components/NcPasswordField.mjs.map +1 -1
  220. package/dist/Components/NcPopover.cjs +125 -1
  221. package/dist/Components/NcPopover.cjs.map +1 -1
  222. package/dist/Components/NcPopover.mjs +124 -41
  223. package/dist/Components/NcPopover.mjs.map +1 -1
  224. package/dist/Components/NcProgressBar.cjs +57 -1
  225. package/dist/Components/NcProgressBar.cjs.map +1 -1
  226. package/dist/Components/NcProgressBar.mjs +57 -15
  227. package/dist/Components/NcProgressBar.mjs.map +1 -1
  228. package/dist/Components/NcRelatedResourcesPanel.cjs +168 -1
  229. package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
  230. package/dist/Components/NcRelatedResourcesPanel.mjs +166 -60
  231. package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
  232. package/dist/Components/NcRichContenteditable.cjs +478 -1
  233. package/dist/Components/NcRichContenteditable.cjs.map +1 -1
  234. package/dist/Components/NcRichContenteditable.mjs +447 -127
  235. package/dist/Components/NcRichContenteditable.mjs.map +1 -1
  236. package/dist/Components/NcRichText.cjs +44 -1
  237. package/dist/Components/NcRichText.cjs.map +1 -1
  238. package/dist/Components/NcRichText.mjs +25 -4
  239. package/dist/Components/NcRichText.mjs.map +1 -1
  240. package/dist/Components/NcSavingIndicatorIcon.cjs +59 -1
  241. package/dist/Components/NcSavingIndicatorIcon.cjs.map +1 -1
  242. package/dist/Components/NcSavingIndicatorIcon.mjs +56 -9
  243. package/dist/Components/NcSavingIndicatorIcon.mjs.map +1 -1
  244. package/dist/Components/NcSelect.cjs +406 -1
  245. package/dist/Components/NcSelect.cjs.map +1 -1
  246. package/dist/Components/NcSelect.mjs +402 -49
  247. package/dist/Components/NcSelect.mjs.map +1 -1
  248. package/dist/Components/NcSelectTags.cjs +251 -2
  249. package/dist/Components/NcSelectTags.cjs.map +1 -1
  250. package/dist/Components/NcSelectTags.mjs +236 -73
  251. package/dist/Components/NcSelectTags.mjs.map +1 -1
  252. package/dist/Components/NcSettingsInputText.cjs +90 -1
  253. package/dist/Components/NcSettingsInputText.cjs.map +1 -1
  254. package/dist/Components/NcSettingsInputText.mjs +88 -19
  255. package/dist/Components/NcSettingsInputText.mjs.map +1 -1
  256. package/dist/Components/NcSettingsSection.cjs +62 -1
  257. package/dist/Components/NcSettingsSection.cjs.map +1 -1
  258. package/dist/Components/NcSettingsSection.mjs +62 -15
  259. package/dist/Components/NcSettingsSection.mjs.map +1 -1
  260. package/dist/Components/NcSettingsSelectGroup.cjs +26 -1
  261. package/dist/Components/NcSettingsSelectGroup.cjs.map +1 -1
  262. package/dist/Components/NcSettingsSelectGroup.mjs +24 -53
  263. package/dist/Components/NcSettingsSelectGroup.mjs.map +1 -1
  264. package/dist/Components/NcTextField.cjs +74 -1
  265. package/dist/Components/NcTextField.cjs.map +1 -1
  266. package/dist/Components/NcTextField.mjs +77 -21
  267. package/dist/Components/NcTextField.mjs.map +1 -1
  268. package/dist/Components/NcTimezonePicker.cjs +4387 -614
  269. package/dist/Components/NcTimezonePicker.cjs.map +1 -1
  270. package/dist/Components/NcTimezonePicker.mjs +4372 -663
  271. package/dist/Components/NcTimezonePicker.mjs.map +1 -1
  272. package/dist/Components/NcUserBubble.cjs +189 -1
  273. package/dist/Components/NcUserBubble.cjs.map +1 -1
  274. package/dist/Components/NcUserBubble.mjs +190 -47
  275. package/dist/Components/NcUserBubble.mjs.map +1 -1
  276. package/dist/Components/NcVNodes.cjs +35 -1
  277. package/dist/Components/NcVNodes.cjs.map +1 -1
  278. package/dist/Components/NcVNodes.mjs +35 -8
  279. package/dist/Components/NcVNodes.mjs.map +1 -1
  280. package/dist/Directives/Focus.cjs +30 -1
  281. package/dist/Directives/Focus.cjs.map +1 -1
  282. package/dist/Directives/Focus.mjs +28 -5
  283. package/dist/Directives/Focus.mjs.map +1 -1
  284. package/dist/Directives/Linkify.cjs +8 -1
  285. package/dist/Directives/Linkify.cjs.map +1 -1
  286. package/dist/Directives/Linkify.mjs +6 -6
  287. package/dist/Directives/Linkify.mjs.map +1 -1
  288. package/dist/Directives/Tooltip.cjs +37 -1
  289. package/dist/Directives/Tooltip.cjs.map +1 -1
  290. package/dist/Directives/Tooltip.mjs +29 -4
  291. package/dist/Directives/Tooltip.mjs.map +1 -1
  292. package/dist/Functions/emoji.cjs +36 -1
  293. package/dist/Functions/emoji.cjs.map +1 -1
  294. package/dist/Functions/emoji.mjs +32 -11
  295. package/dist/Functions/emoji.mjs.map +1 -1
  296. package/dist/Functions/usernameToColor.cjs +39 -1
  297. package/dist/Functions/usernameToColor.cjs.map +1 -1
  298. package/dist/Functions/usernameToColor.mjs +32 -11
  299. package/dist/Functions/usernameToColor.mjs.map +1 -1
  300. package/dist/Mixins/clickOutsideOptions.cjs +40 -1
  301. package/dist/Mixins/clickOutsideOptions.cjs.map +1 -1
  302. package/dist/Mixins/clickOutsideOptions.mjs +39 -4
  303. package/dist/Mixins/clickOutsideOptions.mjs.map +1 -1
  304. package/dist/Mixins/isFullscreen.cjs +44 -1
  305. package/dist/Mixins/isFullscreen.cjs.map +1 -1
  306. package/dist/Mixins/isFullscreen.mjs +42 -11
  307. package/dist/Mixins/isFullscreen.mjs.map +1 -1
  308. package/dist/Mixins/isMobile.cjs +87 -1
  309. package/dist/Mixins/isMobile.cjs.map +1 -1
  310. package/dist/Mixins/isMobile.mjs +86 -11
  311. package/dist/Mixins/isMobile.mjs.map +1 -1
  312. package/dist/Mixins/richEditor.cjs +10 -1
  313. package/dist/Mixins/richEditor.cjs.map +1 -1
  314. package/dist/Mixins/richEditor.mjs +2 -2
  315. package/dist/assets/{index28.css → NcAppNavigationToggle-2cc5b864.css} +16 -2
  316. package/dist/assets/NcInputConfirmCancel-2ba60a52.css +51 -0
  317. package/dist/assets/NcMentionBubble-6e887c5f.css +81 -0
  318. package/dist/assets/{index46.css → NcSettingsSelectGroup-0d38d76b.css} +15 -2
  319. package/dist/assets/index-01e5adf4.css +79 -0
  320. package/dist/assets/index-03ec5f40.css +60 -0
  321. package/dist/assets/{index.css → index-0557f12a.css} +26 -2
  322. package/dist/assets/index-0ab8e182.css +128 -0
  323. package/dist/assets/index-0adc989c.css +96 -0
  324. package/dist/assets/index-1151d229.css +41 -0
  325. package/dist/assets/index-165fce0e.css +82 -0
  326. package/dist/assets/index-194e9415.css +163 -0
  327. package/dist/assets/index-1beccc92.css +140 -0
  328. package/dist/assets/index-1cf8eeb4.css +97 -0
  329. package/dist/assets/index-23e64bbb.css +59 -0
  330. package/dist/assets/{index50.css → index-24f6c355.css} +67 -3
  331. package/dist/assets/index-294382c8.css +879 -0
  332. package/dist/assets/index-2a8e4ca1.css +540 -0
  333. package/dist/assets/index-2d4de2fc.css +38 -0
  334. package/dist/assets/{index2.css → index-30e099f7.css} +17 -2
  335. package/dist/assets/{NcInputConfirmCancel.css → index-33da80f0.css} +32 -2
  336. package/dist/assets/index-34dfc54e.css +88 -0
  337. package/dist/assets/index-3764a447.css +99 -0
  338. package/dist/assets/index-376d2dec.css +243 -0
  339. package/dist/assets/{index17.css → index-441b6552.css} +25 -2
  340. package/dist/assets/index-4a775ba1.css +204 -0
  341. package/dist/assets/index-4ebacc78.css +107 -0
  342. package/dist/assets/index-4ef32afd.css +128 -0
  343. package/dist/assets/{index47.css → index-5072b6ee.css} +77 -3
  344. package/dist/assets/index-50b0766d.css +202 -0
  345. package/dist/assets/index-5eff69c7.css +149 -0
  346. package/dist/assets/index-5fa0ac5a.css +46 -0
  347. package/dist/assets/index-61b63a8f.css +57 -0
  348. package/dist/assets/index-6405cd50.css +76 -0
  349. package/dist/assets/index-6416f636.css +83 -0
  350. package/dist/assets/index-6c47e88a.css +46 -0
  351. package/dist/assets/index-76a58945.css +68 -0
  352. package/dist/assets/index-76dd9f11.css +5 -0
  353. package/dist/assets/index-7768d5e5.css +148 -0
  354. package/dist/assets/index-7813bab3.css +66 -0
  355. package/dist/assets/index-793eae6b.css +234 -0
  356. package/dist/assets/index-8aa4712e.css +51 -0
  357. package/dist/assets/{index27.css → index-8f52a20f.css} +16 -2
  358. package/dist/assets/index-9354264c.css +80 -0
  359. package/dist/assets/index-93ad846c.css +259 -0
  360. package/dist/assets/index-a2b51bce.css +47 -0
  361. package/dist/assets/index-a2d55f92.css +204 -0
  362. package/dist/assets/{index13.css → index-a9e4fe04.css} +27 -2
  363. package/dist/assets/{NcAppNavigationToggle.css → index-b8f13a1f.css} +13 -2
  364. package/dist/assets/index-b991895f.css +87 -0
  365. package/dist/assets/{index48.css → index-baf8711a.css} +67 -3
  366. package/dist/assets/index-becfbea7.css +128 -0
  367. package/dist/assets/index-c6f0da2e.css +69 -0
  368. package/dist/assets/index-c7905a53.css +44 -0
  369. package/dist/assets/index-d211cae8.css +93 -0
  370. package/dist/assets/{index22.css → index-d646553d.css} +22 -2
  371. package/dist/assets/index-de0326c7.css +304 -0
  372. package/dist/assets/index-ed4adf1d.css +115 -0
  373. package/dist/assets/index-edee3304.css +52 -0
  374. package/dist/assets/index-fbdeb5ab.css +303 -0
  375. package/dist/assets/index-fc61f2d8.css +41 -0
  376. package/dist/assets/index-fec4bb7b.css +132 -0
  377. package/dist/assets/referencePickerModal-0acecb5e.css +482 -0
  378. package/dist/chunks/GenColors-38246c38.mjs +46 -0
  379. package/dist/chunks/{GenColors-8097de04.cjs.map → GenColors-38246c38.mjs.map} +1 -1
  380. package/dist/chunks/GenColors-eedcc70a.cjs +45 -0
  381. package/dist/chunks/{GenColors-85cb6194.mjs.map → GenColors-eedcc70a.cjs.map} +1 -1
  382. package/dist/{assets/index29.css → chunks/GenRandomId-c214d235.cjs} +8 -5
  383. package/dist/chunks/{GenRandomId-67df40eb.cjs.map → GenRandomId-c214d235.cjs.map} +1 -1
  384. package/dist/chunks/GenRandomId-cb9ccebe.mjs +25 -0
  385. package/dist/chunks/{GenRandomId-1e1b509a.mjs.map → GenRandomId-cb9ccebe.mjs.map} +1 -1
  386. package/dist/chunks/Linkify-39f20c9a.mjs +33 -0
  387. package/dist/chunks/{Linkify-a0faf443.mjs.map → Linkify-39f20c9a.mjs.map} +1 -1
  388. package/dist/chunks/Linkify-40cdd635.cjs +32 -0
  389. package/dist/chunks/{Linkify-a4db36a9.cjs.map → Linkify-40cdd635.cjs.map} +1 -1
  390. package/dist/chunks/NcAppNavigationToggle-960658a0.cjs +49 -0
  391. package/dist/chunks/NcAppNavigationToggle-960658a0.cjs.map +1 -0
  392. package/dist/chunks/NcAppNavigationToggle-d868f651.mjs +55 -0
  393. package/dist/chunks/NcAppNavigationToggle-d868f651.mjs.map +1 -0
  394. package/dist/chunks/NcInputConfirmCancel-0c4bee9a.cjs +83 -0
  395. package/dist/chunks/NcInputConfirmCancel-0c4bee9a.cjs.map +1 -0
  396. package/dist/chunks/NcInputConfirmCancel-f881168d.mjs +89 -0
  397. package/dist/chunks/NcInputConfirmCancel-f881168d.mjs.map +1 -0
  398. package/dist/chunks/NcRichText-1c3d2654.mjs +302 -0
  399. package/dist/chunks/{NcRichText-13b09624.mjs.map → NcRichText-1c3d2654.mjs.map} +1 -1
  400. package/dist/chunks/NcRichText-d385dc10.cjs +289 -0
  401. package/dist/chunks/{NcRichText-1e8854a1.cjs.map → NcRichText-d385dc10.cjs.map} +1 -1
  402. package/dist/chunks/NcSettingsSelectGroup-0f4a0f94.mjs +192 -0
  403. package/dist/chunks/NcSettingsSelectGroup-0f4a0f94.mjs.map +1 -0
  404. package/dist/chunks/NcSettingsSelectGroup-47d9c113.cjs +183 -0
  405. package/dist/chunks/NcSettingsSelectGroup-47d9c113.cjs.map +1 -0
  406. package/dist/chunks/ScopeComponent-1c75ec38.cjs +28 -0
  407. package/dist/chunks/{ScopeComponent-f6122f5a.cjs.map → ScopeComponent-1c75ec38.cjs.map} +1 -1
  408. package/dist/chunks/ScopeComponent-97a014a1.mjs +29 -0
  409. package/dist/chunks/{ScopeComponent-dbcd0e07.mjs.map → ScopeComponent-97a014a1.mjs.map} +1 -1
  410. package/dist/chunks/_plugin-vue2_normalizer-71e2aa87.mjs +32 -0
  411. package/dist/chunks/_plugin-vue2_normalizer-71e2aa87.mjs.map +1 -0
  412. package/dist/chunks/_plugin-vue2_normalizer-7f9efb60.cjs +31 -0
  413. package/dist/chunks/_plugin-vue2_normalizer-7f9efb60.cjs.map +1 -0
  414. package/dist/chunks/actionGlobal-8c1c28c9.mjs +50 -0
  415. package/dist/chunks/{actionGlobal-cda46023.mjs.map → actionGlobal-8c1c28c9.mjs.map} +1 -1
  416. package/dist/chunks/actionGlobal-9e29e11b.cjs +49 -0
  417. package/dist/chunks/{actionGlobal-ec7003e8.cjs.map → actionGlobal-9e29e11b.cjs.map} +1 -1
  418. package/dist/chunks/actionText-9f5c55bd.mjs +121 -0
  419. package/dist/chunks/{actionText-6c35d3fc.mjs.map → actionText-9f5c55bd.mjs.map} +1 -1
  420. package/dist/chunks/actionText-b0bd6eb7.cjs +120 -0
  421. package/dist/chunks/{actionText-bef01778.cjs.map → actionText-b0bd6eb7.cjs.map} +1 -1
  422. package/dist/chunks/focusTrap-14985831.cjs +26 -0
  423. package/dist/chunks/{focusTrap-173aba65.mjs.map → focusTrap-14985831.cjs.map} +1 -1
  424. package/dist/chunks/focusTrap-5d0f71d4.mjs +27 -0
  425. package/dist/chunks/{focusTrap-139520e2.cjs.map → focusTrap-5d0f71d4.mjs.map} +1 -1
  426. package/dist/chunks/index-20a9ace9.mjs +149 -0
  427. package/dist/chunks/{index-cd3f1f8f.mjs.map → index-20a9ace9.mjs.map} +1 -1
  428. package/dist/chunks/index-2a5b8ace.cjs +434 -0
  429. package/dist/chunks/index-2a5b8ace.cjs.map +1 -0
  430. package/dist/chunks/index-4398f925.cjs +149 -0
  431. package/dist/chunks/{index-c4cd0463.cjs.map → index-4398f925.cjs.map} +1 -1
  432. package/dist/chunks/index-5f2a5f57.mjs +155 -0
  433. package/dist/chunks/{index-9c621303.mjs.map → index-5f2a5f57.mjs.map} +1 -1
  434. package/dist/chunks/index-6c221fa0.mjs +447 -0
  435. package/dist/chunks/index-6c221fa0.mjs.map +1 -0
  436. package/dist/chunks/index-e894376a.cjs +148 -0
  437. package/dist/chunks/{index-df3f51c6.cjs.map → index-e894376a.cjs.map} +1 -1
  438. package/dist/chunks/l10n-27a75c40.mjs +31 -0
  439. package/dist/chunks/l10n-27a75c40.mjs.map +1 -0
  440. package/dist/chunks/l10n-4326316a.cjs +8 -0
  441. package/dist/chunks/l10n-4326316a.cjs.map +1 -0
  442. package/dist/chunks/l10n-903083c4.cjs +29 -0
  443. package/dist/chunks/l10n-903083c4.cjs.map +1 -0
  444. package/dist/chunks/l10n-c5f5f001.mjs +10 -0
  445. package/dist/chunks/l10n-c5f5f001.mjs.map +1 -0
  446. package/dist/chunks/logger-3612e664.mjs +25 -0
  447. package/dist/chunks/{logger-01af1a78.cjs.map → logger-3612e664.mjs.map} +1 -1
  448. package/dist/chunks/logger-4998b668.cjs +24 -0
  449. package/dist/chunks/{logger-ccc7ee65.mjs.map → logger-4998b668.cjs.map} +1 -1
  450. package/dist/chunks/referencePickerModal-0fde503d.mjs +877 -0
  451. package/dist/chunks/referencePickerModal-0fde503d.mjs.map +1 -0
  452. package/dist/chunks/referencePickerModal-9b4ff88d.cjs +858 -0
  453. package/dist/chunks/referencePickerModal-9b4ff88d.cjs.map +1 -0
  454. package/dist/index.cjs +251 -1
  455. package/dist/index.cjs.map +1 -1
  456. package/dist/index.mjs +286 -140
  457. package/dist/index.mjs.map +1 -1
  458. package/package.json +7 -7
  459. package/dist/Components/NcDatetime.cjs +0 -1
  460. package/dist/Components/NcDatetime.mjs +0 -44
  461. package/dist/Components/NcDatetimePicker.cjs +0 -1
  462. package/dist/Components/NcDatetimePicker.cjs.map +0 -1
  463. package/dist/Components/NcDatetimePicker.mjs +0 -69
  464. package/dist/Components/NcDatetimePicker.mjs.map +0 -1
  465. package/dist/assets/NcMentionBubble.css +0 -21
  466. package/dist/assets/index10.css +0 -21
  467. package/dist/assets/index11.css +0 -21
  468. package/dist/assets/index12.css +0 -21
  469. package/dist/assets/index14.css +0 -21
  470. package/dist/assets/index15.css +0 -21
  471. package/dist/assets/index16.css +0 -21
  472. package/dist/assets/index18.css +0 -21
  473. package/dist/assets/index19.css +0 -21
  474. package/dist/assets/index20.css +0 -21
  475. package/dist/assets/index21.css +0 -21
  476. package/dist/assets/index23.css +0 -21
  477. package/dist/assets/index24.css +0 -1
  478. package/dist/assets/index25.css +0 -21
  479. package/dist/assets/index26.css +0 -21
  480. package/dist/assets/index3.css +0 -21
  481. package/dist/assets/index30.css +0 -21
  482. package/dist/assets/index31.css +0 -21
  483. package/dist/assets/index32.css +0 -21
  484. package/dist/assets/index33.css +0 -21
  485. package/dist/assets/index34.css +0 -21
  486. package/dist/assets/index35.css +0 -21
  487. package/dist/assets/index36.css +0 -21
  488. package/dist/assets/index37.css +0 -21
  489. package/dist/assets/index38.css +0 -21
  490. package/dist/assets/index39.css +0 -21
  491. package/dist/assets/index4.css +0 -21
  492. package/dist/assets/index40.css +0 -21
  493. package/dist/assets/index41.css +0 -21
  494. package/dist/assets/index42.css +0 -21
  495. package/dist/assets/index43.css +0 -42
  496. package/dist/assets/index44.css +0 -21
  497. package/dist/assets/index45.css +0 -42
  498. package/dist/assets/index49.css +0 -42
  499. package/dist/assets/index5.css +0 -21
  500. package/dist/assets/index51.css +0 -21
  501. package/dist/assets/index52.css +0 -21
  502. package/dist/assets/index53.css +0 -42
  503. package/dist/assets/index54.css +0 -21
  504. package/dist/assets/index55.css +0 -21
  505. package/dist/assets/index56.css +0 -21
  506. package/dist/assets/index57.css +0 -21
  507. package/dist/assets/index58.css +0 -42
  508. package/dist/assets/index6.css +0 -21
  509. package/dist/assets/index7.css +0 -21
  510. package/dist/assets/index8.css +0 -21
  511. package/dist/assets/index9.css +0 -21
  512. package/dist/assets/referencePickerModal.css +0 -21
  513. package/dist/chunks/GenColors-8097de04.cjs +0 -1
  514. package/dist/chunks/GenColors-85cb6194.mjs +0 -25
  515. package/dist/chunks/GenRandomId-1e1b509a.mjs +0 -4
  516. package/dist/chunks/GenRandomId-67df40eb.cjs +0 -1
  517. package/dist/chunks/IsMobileState-151fc57d.cjs +0 -1
  518. package/dist/chunks/IsMobileState-151fc57d.cjs.map +0 -1
  519. package/dist/chunks/IsMobileState-e1fe5f58.mjs +0 -15
  520. package/dist/chunks/IsMobileState-e1fe5f58.mjs.map +0 -1
  521. package/dist/chunks/Linkify-a0faf443.mjs +0 -5
  522. package/dist/chunks/Linkify-a4db36a9.cjs +0 -1
  523. package/dist/chunks/NcAppNavigationToggle-5aa396d7.mjs +0 -23
  524. package/dist/chunks/NcAppNavigationToggle-5aa396d7.mjs.map +0 -1
  525. package/dist/chunks/NcAppNavigationToggle-c566f66e.cjs +0 -1
  526. package/dist/chunks/NcAppNavigationToggle-c566f66e.cjs.map +0 -1
  527. package/dist/chunks/NcInputConfirmCancel-77c2b04f.cjs +0 -1
  528. package/dist/chunks/NcInputConfirmCancel-77c2b04f.cjs.map +0 -1
  529. package/dist/chunks/NcInputConfirmCancel-c440e1b1.mjs +0 -43
  530. package/dist/chunks/NcInputConfirmCancel-c440e1b1.mjs.map +0 -1
  531. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_357e6d0e_lang-b35c2f97.cjs.map +0 -1
  532. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_357e6d0e_lang-b99cdc21.mjs.map +0 -1
  533. package/dist/chunks/NcRichText-13b09624.mjs +0 -123
  534. package/dist/chunks/NcRichText-1e8854a1.cjs +0 -1
  535. package/dist/chunks/ScopeComponent-dbcd0e07.mjs +0 -8
  536. package/dist/chunks/ScopeComponent-f6122f5a.cjs +0 -1
  537. package/dist/chunks/_plugin-vue2_normalizer-5b4c43a4.mjs +0 -24
  538. package/dist/chunks/_plugin-vue2_normalizer-5b4c43a4.mjs.map +0 -1
  539. package/dist/chunks/_plugin-vue2_normalizer-764a4c12.cjs +0 -1
  540. package/dist/chunks/_plugin-vue2_normalizer-764a4c12.cjs.map +0 -1
  541. package/dist/chunks/actionGlobal-cda46023.mjs +0 -15
  542. package/dist/chunks/actionGlobal-ec7003e8.cjs +0 -1
  543. package/dist/chunks/actionText-6c35d3fc.mjs +0 -23
  544. package/dist/chunks/actionText-bef01778.cjs +0 -1
  545. package/dist/chunks/focusTrap-139520e2.cjs +0 -1
  546. package/dist/chunks/focusTrap-173aba65.mjs +0 -6
  547. package/dist/chunks/index-12fa9b26.cjs +0 -1
  548. package/dist/chunks/index-12fa9b26.cjs.map +0 -1
  549. package/dist/chunks/index-7aa3fc24.mjs +0 -171
  550. package/dist/chunks/index-7aa3fc24.mjs.map +0 -1
  551. package/dist/chunks/index-9c621303.mjs +0 -46
  552. package/dist/chunks/index-c4cd0463.cjs +0 -3
  553. package/dist/chunks/index-cd3f1f8f.mjs +0 -43
  554. package/dist/chunks/index-df3f51c6.cjs +0 -1
  555. package/dist/chunks/l10n-05baf7da.mjs +0 -5
  556. package/dist/chunks/l10n-05baf7da.mjs.map +0 -1
  557. package/dist/chunks/l10n-46d0c1c0.cjs +0 -1
  558. package/dist/chunks/l10n-46d0c1c0.cjs.map +0 -1
  559. package/dist/chunks/l10n-9a5a6afc.mjs +0 -18
  560. package/dist/chunks/l10n-9a5a6afc.mjs.map +0 -1
  561. package/dist/chunks/l10n-dacb6440.cjs +0 -1
  562. package/dist/chunks/l10n-dacb6440.cjs.map +0 -1
  563. package/dist/chunks/logger-01af1a78.cjs +0 -1
  564. package/dist/chunks/logger-ccc7ee65.mjs +0 -5
  565. package/dist/chunks/referencePickerModal-2b16b319.mjs +0 -428
  566. package/dist/chunks/referencePickerModal-2b16b319.mjs.map +0 -1
  567. package/dist/chunks/referencePickerModal-44160fb3.cjs +0 -1
  568. package/dist/chunks/referencePickerModal-44160fb3.cjs.map +0 -1
@@ -1 +1,455 @@
1
- var U=require("../assets/index56.css");const _=require("./NcButton.cjs"),z=require("./NcPopover.cjs"),T=require("../chunks/GenRandomId-67df40eb.cjs"),P=require("../chunks/l10n-46d0c1c0.cjs"),R=require("vue"),K=require("vue-material-design-icons/DotsHorizontal.vue"),V=require("../chunks/_plugin-vue2_normalizer-764a4c12.cjs");const y=".focusable",j={name:"NcActions",components:{NcButton:_,DotsHorizontal:K,NcPopover:z},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},type:{type:String,validator(e){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].indexOf(e)!==-1},default:null},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:P.t("Actions")},ariaHidden:{type:Boolean,default:null},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.querySelector("body")},container:{type:[String,Object,Element,Boolean],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0}},emits:["open","update:open","close","focus","blur"],data(){return{opened:this.open,focusIndex:0,randomId:`menu-${T.GenRandomId()}`}},computed:{triggerBtnType(){return this.type||(this.primary?"primary":this.menuName?"secondary":"tertiary")}},watch:{open(e){e!==this.opened&&(this.opened=e)}},methods:{isValidSingleAction(e){var c,a,r,p,d;const n=(d=(r=(a=(c=e==null?void 0:e.componentOptions)==null?void 0:c.Ctor)==null?void 0:a.extendOptions)==null?void 0:r.name)!=null?d:(p=e==null?void 0:e.componentOptions)==null?void 0:p.tag;return["NcActionButton","NcActionLink","NcActionRouter"].includes(n)},openMenu(e){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},closeMenu(e=!0){this.opened&&(this.opened=!1,this.$refs.popover.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,this.$refs.menuButton.$el.focus())},onOpen(e){this.$nextTick(()=>{this.focusFirstAction(e)})},onMouseFocusAction(e){if(document.activeElement===e.target)return;const n=e.target.closest("li");if(n){const c=n.querySelector(y);if(c){const a=[...this.$refs.menu.querySelectorAll(y)].indexOf(c);a>-1&&(this.focusIndex=a,this.focusAction())}}},onKeydown(e){(e.keyCode===38||e.keyCode===9&&e.shiftKey)&&this.focusPreviousAction(e),(e.keyCode===40||e.keyCode===9&&!e.shiftKey)&&this.focusNextAction(e),e.keyCode===33&&this.focusFirstAction(e),e.keyCode===34&&this.focusLastAction(e),e.keyCode===27&&(this.closeMenu(),e.preventDefault())},removeCurrentActive(){const e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction(){const e=this.$refs.menu.querySelectorAll(y)[this.focusIndex];if(e){this.removeCurrentActive();const n=e.closest("li.action");e.focus(),n&&n.classList.add("active")}},focusPreviousAction(e){this.opened&&(this.focusIndex===0?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(e){if(this.opened){const n=this.$refs.menu.querySelectorAll(y).length-1;this.focusIndex===n?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=0,this.focusAction())},focusLastAction(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.$refs.menu.querySelectorAll(y).length-1,this.focusAction())},preventIfEvent(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e)}},render(e){const n=(this.$slots.default||[]).filter(t=>{var i,o,s,l;return((i=t==null?void 0:t.componentOptions)==null?void 0:i.tag)||((l=(s=(o=t==null?void 0:t.componentOptions)==null?void 0:o.Ctor)==null?void 0:s.extendOptions)==null?void 0:l.name)}),c=t=>{var i,o,s,l,h,u,m,f;return((h=(s=(o=(i=t==null?void 0:t.componentOptions)==null?void 0:i.Ctor)==null?void 0:o.extendOptions)==null?void 0:s.name)!=null?h:(l=t==null?void 0:t.componentOptions)==null?void 0:l.tag)==="NcActionLink"&&((f=(m=(u=t==null?void 0:t.componentOptions)==null?void 0:u.propsData)==null?void 0:m.href)==null?void 0:f.startsWith(window.location.origin))},a=n.every(c);let r=n.filter(this.isValidSingleAction);if(this.forceMenu&&r.length>0&&this.inline>0&&(R.util.warn("Specifying forceMenu will ignore any inline actions rendering."),r=[]),n.length===0)return;const p=t=>{var m,f,v,A,b,x,B,I,O,$,g,N,S,C,k,q,w,M,E,F,D,L;const i=((v=(f=(m=t==null?void 0:t.data)==null?void 0:m.scopedSlots)==null?void 0:f.icon())==null?void 0:v[0])||e("span",{class:["icon",(b=(A=t==null?void 0:t.componentOptions)==null?void 0:A.propsData)==null?void 0:b.icon]}),o=(B=(x=t==null?void 0:t.componentOptions)==null?void 0:x.listeners)==null?void 0:B.click,s=(N=(g=($=(O=(I=t==null?void 0:t.componentOptions)==null?void 0:I.children)==null?void 0:O[0])==null?void 0:$.text)==null?void 0:g.trim)==null?void 0:N.call(g),l=((C=(S=t==null?void 0:t.componentOptions)==null?void 0:S.propsData)==null?void 0:C.ariaLabel)||s,h=this.forceName?s:"";let u=(q=(k=t==null?void 0:t.componentOptions)==null?void 0:k.propsData)==null?void 0:q.title;return this.forceName||u||(u=s),e("NcButton",{class:["action-item action-item--single",(w=t==null?void 0:t.data)==null?void 0:w.staticClass,(M=t==null?void 0:t.data)==null?void 0:M.class],attrs:{"aria-label":l,title:u},ref:(E=t==null?void 0:t.data)==null?void 0:E.ref,props:{type:this.type||(h?"secondary":"tertiary"),disabled:this.disabled||((D=(F=t==null?void 0:t.componentOptions)==null?void 0:F.propsData)==null?void 0:D.disabled),ariaHidden:this.ariaHidden,...(L=t==null?void 0:t.componentOptions)==null?void 0:L.propsData},on:{focus:this.onFocus,blur:this.onBlur,...!!o&&{click:H=>{o&&o(H)}}}},[e("template",{slot:"icon"},[i]),h])},d=t=>{var o,s;const i=((o=this.$slots.icon)==null?void 0:o[0])||(this.defaultIcon?e("span",{class:["icon",this.defaultIcon]}):e("DotsHorizontal",{props:{size:20}}));return e("NcPopover",{ref:"popover",props:{delay:0,handleResize:!0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,container:this.container,popoverBaseClass:"action-item__popper",setReturnFocus:(s=this.$refs.menuButton)==null?void 0:s.$el},attrs:{delay:0,handleResize:!0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,container:this.container,...this.manualOpen&&{triggers:[]},popoverBaseClass:"action-item__popper"},on:{show:this.openMenu,"after-show":this.onOpen,hide:this.closeMenu}},[e("NcButton",{class:"action-item__menutoggle",props:{type:this.triggerBtnType,disabled:this.disabled,ariaHidden:this.ariaHidden},slot:"trigger",ref:"menuButton",attrs:{"aria-haspopup":a?null:"menu","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened?this.randomId:null,"aria-expanded":this.opened.toString()},on:{focus:this.onFocus,blur:this.onBlur}},[e("template",{slot:"icon"},[i]),this.menuName]),e("div",{class:{open:this.opened},attrs:{tabindex:"-1"},on:{keydown:this.onKeydown,mousemove:this.onMouseFocusAction},ref:"menu"},[e("ul",{attrs:{id:this.randomId,tabindex:"-1",role:a?null:"menu"}},[t])])])};if(n.length===1&&r.length===1&&!this.forceMenu)return p(r[0]);if(r.length>0&&this.inline>0){const t=r.slice(0,this.inline),i=n.filter(o=>!t.includes(o));return e("div",{class:["action-items",`action-item--${this.triggerBtnType}`]},[...t.map(p),i.length>0?e("div",{class:["action-item",{"action-item--open":this.opened}]},[d(i)]):null])}return e("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerBtnType}`,{"action-item--open":this.opened}]},[d(n)])}},G=null,W=null;var J=V.normalizeComponent(j,G,W,!1,null,"b84866e9",null,null);const Q=J.exports;module.exports=Q;
1
+ var Z = require("../assets/index-01e5adf4.css");
2
+ const H = require("./NcButton.cjs"), P = require("./NcPopover.cjs"), R = require("../chunks/GenRandomId-c214d235.cjs"), T = require("../chunks/l10n-903083c4.cjs"), V = require("vue"), K = require("vue-material-design-icons/DotsHorizontal.vue"), G = require("../chunks/_plugin-vue2_normalizer-7f9efb60.cjs"), F = (e) => e && e.__esModule ? e : { default: e }, j = /* @__PURE__ */ F(V), W = /* @__PURE__ */ F(K);
3
+ const g = ".focusable", J = {
4
+ name: "NcActions",
5
+ components: {
6
+ NcButton: H,
7
+ DotsHorizontal: W.default,
8
+ NcPopover: P
9
+ },
10
+ props: {
11
+ /**
12
+ * Specify the open state of the popover menu
13
+ */
14
+ open: {
15
+ type: Boolean,
16
+ default: !1
17
+ },
18
+ /**
19
+ * This disables the internal open management,
20
+ * so the actions menu only respects the `open` prop.
21
+ * This is e.g. necessary for the NcAvatar component
22
+ * to only open the actions menu after loading it's entries has finished.
23
+ */
24
+ manualOpen: {
25
+ type: Boolean,
26
+ default: !1
27
+ },
28
+ /**
29
+ * Force the actions to display in a three dot menu
30
+ */
31
+ forceMenu: {
32
+ type: Boolean,
33
+ default: !1
34
+ },
35
+ /**
36
+ * Force the name to show for single actions
37
+ */
38
+ forceName: {
39
+ type: Boolean,
40
+ default: !1
41
+ },
42
+ /**
43
+ * Specify the menu name
44
+ */
45
+ menuName: {
46
+ type: String,
47
+ default: null
48
+ },
49
+ /**
50
+ * Apply primary styling for this menu
51
+ */
52
+ primary: {
53
+ type: Boolean,
54
+ default: !1
55
+ },
56
+ /**
57
+ * Specifies the button type used for trigger and single actions buttons
58
+ * Accepted values: primary, secondary, tertiary, tertiary-no-background, tertiary-on-primary, error, warning, success. If left empty,
59
+ * the default button style will be applied.
60
+ */
61
+ type: {
62
+ type: String,
63
+ validator(e) {
64
+ return ["primary", "secondary", "tertiary", "tertiary-no-background", "tertiary-on-primary", "error", "warning", "success"].indexOf(e) !== -1;
65
+ },
66
+ default: null
67
+ },
68
+ /**
69
+ * Icon to show for the toggle menu button
70
+ * when more than one action is inside the actions component.
71
+ * Only replace the default three-dot icon if really necessary.
72
+ */
73
+ defaultIcon: {
74
+ type: String,
75
+ default: ""
76
+ },
77
+ /**
78
+ * Aria label for the actions menu.
79
+ *
80
+ * If `menuName` is defined this will not be used to prevent
81
+ * any accessible name conflicts. This ensures that the
82
+ * element can be activated via voice input.
83
+ */
84
+ ariaLabel: {
85
+ type: String,
86
+ default: T.t("Actions")
87
+ },
88
+ /**
89
+ * aria-hidden attribute for the icon slot
90
+ */
91
+ ariaHidden: {
92
+ type: Boolean,
93
+ default: null
94
+ },
95
+ /**
96
+ * Wanted direction of the menu
97
+ */
98
+ placement: {
99
+ type: String,
100
+ default: "bottom"
101
+ },
102
+ /**
103
+ * DOM element for the actions' popover boundaries
104
+ */
105
+ boundariesElement: {
106
+ type: Element,
107
+ default: () => document.querySelector("body")
108
+ },
109
+ /**
110
+ * Selector for the actions' popover container
111
+ */
112
+ container: {
113
+ type: [String, Object, Element, Boolean],
114
+ default: "body"
115
+ },
116
+ /**
117
+ * Disabled state of the main button (single action or menu toggle)
118
+ */
119
+ disabled: {
120
+ type: Boolean,
121
+ default: !1
122
+ },
123
+ /**
124
+ * Display x items inline out of the dropdown menu
125
+ * Will be ignored if `forceMenu` is set
126
+ */
127
+ inline: {
128
+ type: Number,
129
+ default: 0
130
+ }
131
+ },
132
+ emits: [
133
+ "open",
134
+ "update:open",
135
+ "close",
136
+ "focus",
137
+ "blur"
138
+ ],
139
+ data() {
140
+ return {
141
+ opened: this.open,
142
+ focusIndex: 0,
143
+ randomId: `menu-${R.GenRandomId()}`
144
+ };
145
+ },
146
+ computed: {
147
+ triggerBtnType() {
148
+ return this.type || (this.primary ? "primary" : this.menuName ? "secondary" : "tertiary");
149
+ }
150
+ },
151
+ watch: {
152
+ // Watch parent prop
153
+ open(e) {
154
+ e !== this.opened && (this.opened = e);
155
+ }
156
+ },
157
+ methods: {
158
+ /**
159
+ * Do we have exactly one Action and
160
+ * is it allowed as a standalone element?
161
+ *
162
+ * @param {Array} action The action to check
163
+ * @return {boolean}
164
+ */
165
+ isValidSingleAction(e) {
166
+ var l, c, o, a, d;
167
+ const s = (d = (o = (c = (l = e == null ? void 0 : e.componentOptions) == null ? void 0 : l.Ctor) == null ? void 0 : c.extendOptions) == null ? void 0 : o.name) != null ? d : (a = e == null ? void 0 : e.componentOptions) == null ? void 0 : a.tag;
168
+ return ["NcActionButton", "NcActionLink", "NcActionRouter"].includes(s);
169
+ },
170
+ // MENU STATE MANAGEMENT
171
+ openMenu(e) {
172
+ this.opened || (this.opened = !0, this.$emit("update:open", !0), this.$emit("open"));
173
+ },
174
+ closeMenu(e = !0) {
175
+ this.opened && (this.opened = !1, this.$refs.popover.clearFocusTrap({ returnFocus: e }), this.$emit("update:open", !1), this.$emit("close"), this.focusIndex = 0, this.$refs.menuButton.$el.focus());
176
+ },
177
+ onOpen(e) {
178
+ this.$nextTick(() => {
179
+ this.focusFirstAction(e);
180
+ });
181
+ },
182
+ // MENU KEYS & FOCUS MANAGEMENT
183
+ // focus nearest focusable item on mouse move
184
+ // DO NOT change the focus if the target is already focused
185
+ // this will prevent issues with input being unfocused
186
+ // on mouse move
187
+ onMouseFocusAction(e) {
188
+ if (document.activeElement === e.target)
189
+ return;
190
+ const s = e.target.closest("li");
191
+ if (s) {
192
+ const l = s.querySelector(g);
193
+ if (l) {
194
+ const o = [...this.$refs.menu.querySelectorAll(g)].indexOf(l);
195
+ o > -1 && (this.focusIndex = o, this.focusAction());
196
+ }
197
+ }
198
+ },
199
+ /**
200
+ * Dispatches the keydown listener to different handlers
201
+ *
202
+ * @param {object} event The keydown event
203
+ */
204
+ onKeydown(e) {
205
+ (e.keyCode === 38 || e.keyCode === 9 && e.shiftKey) && this.focusPreviousAction(e), (e.keyCode === 40 || e.keyCode === 9 && !e.shiftKey) && this.focusNextAction(e), e.keyCode === 33 && this.focusFirstAction(e), e.keyCode === 34 && this.focusLastAction(e), e.keyCode === 27 && (this.closeMenu(), e.preventDefault());
206
+ },
207
+ removeCurrentActive() {
208
+ const e = this.$refs.menu.querySelector("li.active");
209
+ e && e.classList.remove("active");
210
+ },
211
+ focusAction() {
212
+ const e = this.$refs.menu.querySelectorAll(g)[this.focusIndex];
213
+ if (e) {
214
+ this.removeCurrentActive();
215
+ const s = e.closest("li.action");
216
+ e.focus(), s && s.classList.add("active");
217
+ }
218
+ },
219
+ focusPreviousAction(e) {
220
+ this.opened && (this.focusIndex === 0 ? this.closeMenu() : (this.preventIfEvent(e), this.focusIndex = this.focusIndex - 1), this.focusAction());
221
+ },
222
+ focusNextAction(e) {
223
+ if (this.opened) {
224
+ const s = this.$refs.menu.querySelectorAll(g).length - 1;
225
+ this.focusIndex === s ? this.closeMenu() : (this.preventIfEvent(e), this.focusIndex = this.focusIndex + 1), this.focusAction();
226
+ }
227
+ },
228
+ focusFirstAction(e) {
229
+ this.opened && (this.preventIfEvent(e), this.focusIndex = 0, this.focusAction());
230
+ },
231
+ focusLastAction(e) {
232
+ this.opened && (this.preventIfEvent(e), this.focusIndex = this.$refs.menu.querySelectorAll(g).length - 1, this.focusAction());
233
+ },
234
+ preventIfEvent(e) {
235
+ e && (e.preventDefault(), e.stopPropagation());
236
+ },
237
+ onFocus(e) {
238
+ this.$emit("focus", e);
239
+ },
240
+ onBlur(e) {
241
+ this.$emit("blur", e);
242
+ }
243
+ },
244
+ /**
245
+ * The render function to display the component
246
+ *
247
+ * @param {Function} h The function to create VNodes
248
+ * @return {object|undefined} The created VNode
249
+ */
250
+ render(e) {
251
+ const s = (this.$slots.default || []).filter(
252
+ (t) => {
253
+ var r, n, i, u;
254
+ return ((r = t == null ? void 0 : t.componentOptions) == null ? void 0 : r.tag) || ((u = (i = (n = t == null ? void 0 : t.componentOptions) == null ? void 0 : n.Ctor) == null ? void 0 : i.extendOptions) == null ? void 0 : u.name);
255
+ }
256
+ ), l = (t) => {
257
+ var n, i, u, f, p, m, h, y;
258
+ return ((p = (u = (i = (n = t == null ? void 0 : t.componentOptions) == null ? void 0 : n.Ctor) == null ? void 0 : i.extendOptions) == null ? void 0 : u.name) != null ? p : (f = t == null ? void 0 : t.componentOptions) == null ? void 0 : f.tag) === "NcActionLink" && ((y = (h = (m = t == null ? void 0 : t.componentOptions) == null ? void 0 : m.propsData) == null ? void 0 : h.href) == null ? void 0 : y.startsWith(window.location.origin));
259
+ }, c = s.every(l);
260
+ let o = s.filter(this.isValidSingleAction);
261
+ if (this.forceMenu && o.length > 0 && this.inline > 0 && (j.default.util.warn("Specifying forceMenu will ignore any inline actions rendering."), o = []), s.length === 0)
262
+ return;
263
+ const a = (t) => {
264
+ var m, h, y, A, b, x, v, I, N, B, _, O, $, S, C, k, L, M, q, w, D, E;
265
+ const r = ((y = (h = (m = t == null ? void 0 : t.data) == null ? void 0 : m.scopedSlots) == null ? void 0 : h.icon()) == null ? void 0 : y[0]) || e("span", { class: ["icon", (b = (A = t == null ? void 0 : t.componentOptions) == null ? void 0 : A.propsData) == null ? void 0 : b.icon] }), n = (v = (x = t == null ? void 0 : t.componentOptions) == null ? void 0 : x.listeners) == null ? void 0 : v.click, i = (O = (_ = (B = (N = (I = t == null ? void 0 : t.componentOptions) == null ? void 0 : I.children) == null ? void 0 : N[0]) == null ? void 0 : B.text) == null ? void 0 : _.trim) == null ? void 0 : O.call(_), u = ((S = ($ = t == null ? void 0 : t.componentOptions) == null ? void 0 : $.propsData) == null ? void 0 : S.ariaLabel) || i, f = this.forceName ? i : "";
266
+ let p = (k = (C = t == null ? void 0 : t.componentOptions) == null ? void 0 : C.propsData) == null ? void 0 : k.title;
267
+ return this.forceName || p || (p = i), e(
268
+ "NcButton",
269
+ {
270
+ class: [
271
+ "action-item action-item--single",
272
+ (L = t == null ? void 0 : t.data) == null ? void 0 : L.staticClass,
273
+ (M = t == null ? void 0 : t.data) == null ? void 0 : M.class
274
+ ],
275
+ attrs: {
276
+ "aria-label": u,
277
+ title: p
278
+ },
279
+ ref: (q = t == null ? void 0 : t.data) == null ? void 0 : q.ref,
280
+ props: {
281
+ // If it has a menuName, we use a secondary button
282
+ type: this.type || (f ? "secondary" : "tertiary"),
283
+ disabled: this.disabled || ((D = (w = t == null ? void 0 : t.componentOptions) == null ? void 0 : w.propsData) == null ? void 0 : D.disabled),
284
+ ariaHidden: this.ariaHidden,
285
+ ...(E = t == null ? void 0 : t.componentOptions) == null ? void 0 : E.propsData
286
+ },
287
+ on: {
288
+ focus: this.onFocus,
289
+ blur: this.onBlur,
290
+ // If we have a click listener,
291
+ // we bind it to execute on click and forward the click event
292
+ ...!!n && {
293
+ click: (z) => {
294
+ n && n(z);
295
+ }
296
+ }
297
+ }
298
+ },
299
+ [
300
+ e("template", { slot: "icon" }, [r]),
301
+ f
302
+ ]
303
+ );
304
+ }, d = (t) => {
305
+ var n, i;
306
+ const r = ((n = this.$slots.icon) == null ? void 0 : n[0]) || (this.defaultIcon ? e("span", { class: ["icon", this.defaultIcon] }) : e("DotsHorizontal", {
307
+ props: {
308
+ size: 20
309
+ }
310
+ }));
311
+ return e(
312
+ "NcPopover",
313
+ {
314
+ ref: "popover",
315
+ props: {
316
+ delay: 0,
317
+ handleResize: !0,
318
+ shown: this.opened,
319
+ placement: this.placement,
320
+ boundary: this.boundariesElement,
321
+ container: this.container,
322
+ popoverBaseClass: "action-item__popper",
323
+ setReturnFocus: (i = this.$refs.menuButton) == null ? void 0 : i.$el
324
+ },
325
+ // For some reason the popover component
326
+ // does not react to props given under the 'props' key,
327
+ // so we use both 'attrs' and 'props'
328
+ attrs: {
329
+ delay: 0,
330
+ handleResize: !0,
331
+ shown: this.opened,
332
+ placement: this.placement,
333
+ boundary: this.boundariesElement,
334
+ container: this.container,
335
+ ...this.manualOpen && { triggers: [] },
336
+ popoverBaseClass: "action-item__popper"
337
+ },
338
+ on: {
339
+ show: this.openMenu,
340
+ "after-show": this.onOpen,
341
+ hide: this.closeMenu
342
+ }
343
+ },
344
+ [
345
+ e("NcButton", {
346
+ class: "action-item__menutoggle",
347
+ props: {
348
+ type: this.triggerBtnType,
349
+ disabled: this.disabled,
350
+ ariaHidden: this.ariaHidden
351
+ },
352
+ slot: "trigger",
353
+ ref: "menuButton",
354
+ attrs: {
355
+ "aria-haspopup": c ? null : "menu",
356
+ "aria-label": this.menuName ? null : this.ariaLabel,
357
+ "aria-controls": this.opened ? this.randomId : null,
358
+ "aria-expanded": this.opened.toString()
359
+ },
360
+ on: {
361
+ focus: this.onFocus,
362
+ blur: this.onBlur
363
+ }
364
+ }, [
365
+ e("template", { slot: "icon" }, [r]),
366
+ this.menuName
367
+ ]),
368
+ e("div", {
369
+ class: {
370
+ open: this.opened
371
+ },
372
+ attrs: {
373
+ tabindex: "-1"
374
+ },
375
+ on: {
376
+ keydown: this.onKeydown,
377
+ mousemove: this.onMouseFocusAction
378
+ },
379
+ ref: "menu"
380
+ }, [
381
+ e("ul", {
382
+ attrs: {
383
+ id: this.randomId,
384
+ tabindex: "-1",
385
+ role: c ? null : "menu"
386
+ }
387
+ }, [
388
+ t
389
+ ])
390
+ ])
391
+ ]
392
+ );
393
+ };
394
+ if (s.length === 1 && o.length === 1 && !this.forceMenu)
395
+ return a(o[0]);
396
+ if (o.length > 0 && this.inline > 0) {
397
+ const t = o.slice(0, this.inline), r = s.filter((n) => !t.includes(n));
398
+ return e(
399
+ "div",
400
+ {
401
+ class: [
402
+ "action-items",
403
+ `action-item--${this.triggerBtnType}`
404
+ ]
405
+ },
406
+ [
407
+ // Render inline actions
408
+ ...t.map(a),
409
+ // render the rest within the popover menu
410
+ r.length > 0 ? e(
411
+ "div",
412
+ {
413
+ class: [
414
+ "action-item",
415
+ {
416
+ "action-item--open": this.opened
417
+ }
418
+ ]
419
+ },
420
+ [
421
+ d(r)
422
+ ]
423
+ ) : null
424
+ ]
425
+ );
426
+ }
427
+ return e(
428
+ "div",
429
+ {
430
+ class: [
431
+ "action-item action-item--default-popover",
432
+ `action-item--${this.triggerBtnType}`,
433
+ {
434
+ "action-item--open": this.opened
435
+ }
436
+ ]
437
+ },
438
+ [
439
+ d(s)
440
+ ]
441
+ );
442
+ }
443
+ }, Q = null, U = null;
444
+ var X = /* @__PURE__ */ G.normalizeComponent(
445
+ J,
446
+ Q,
447
+ U,
448
+ !1,
449
+ null,
450
+ "b84866e9",
451
+ null,
452
+ null
453
+ );
454
+ const Y = X.exports;
455
+ module.exports = Y;
@@ -1 +1 @@
1
- {"version":3,"file":"NcActions.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"NcActions.cjs","sources":["../../src/components/NcActions/NcActions.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<!-- Accessibility guidelines:\nhttps://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-actions.html -->\n\n<docs>\n### Single action\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton @click=\"actionDelete\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t},\n\tmethods: {\n\t\tactionDelete() {\n\t\t\talert('Delete')\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions with 2 items inline\n\n```vue\n<template>\n\t<NcActions :inline=\"2\">\n\t\t<NcActionButton @click=\"showMessage('Add')\">\n\t\t\t<template #icon>\n\t\t\t\t<Plus :size=\"20\" />\n\t\t\t</template>\n\t\t\tAdd\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Plus from 'vue-material-design-icons/Plus'\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t\tPlus,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions with 2 items inline AND forced names\n\n```vue\n<template>\n\t<NcActions :force-name=\"true\" :inline=\"2\">\n\t\t<NcActionButton @click=\"showMessage('Add')\">\n\t\t\t<template #icon>\n\t\t\t\t<Plus :size=\"20\" />\n\t\t\t</template>\n\t\t\tAdd\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Plus from 'vue-material-design-icons/Plus'\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t\tPlus,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### Multiple actions with custom icon\n\n```vue\n<template>\n\t<NcActions>\n\t\t<template #icon>\n\t\t\t<Pencil :size=\"20\" />\n\t\t</template>\n\t\t<NcActionButton @click=\"showMessage('Edit')\">\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionLink href=\"https://nextcloud.com\">\n\t\t\t<template #icon>\n\t\t\t\t<OpenInNew :size=\"20\" />\n\t\t\t</template>\n\t\t\tLink\n\t\t</NcActionLink>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport OpenInNew from 'vue-material-design-icons/OpenInNew'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tOpenInNew,\n\t\tPencil,\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n\n### With menu name\n\n```vue\n<template>\n\t<NcActions menu-name=\"Object management\">\n\t\t<template #icon>\n\t\t\t<Pencil :size=\"20\" />\n\t\t</template>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tRename\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tValidate\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Download :size=\"20\" />\n\t\t\t</template>\n\t\t\tDownload\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport ArrowRight from 'vue-material-design-icons/ArrowRight'\nimport Delete from 'vue-material-design-icons/Delete'\nimport Download from 'vue-material-design-icons/Download'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tArrowRight,\n\t\tDelete,\n\t\tDownload,\n\t\tPencil,\n\t},\n}\n</script>\n```\n\n### Various icons styles\n```vue\n<template>\n\t<NcActions :primary=\"true\">\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tEdit\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport Pencil from 'vue-material-design-icons/Pencil'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tPencil,\n\t},\n}\n</script>\n```\n\n```vue\n<template>\n\t<NcActions :primary=\"true\" menu-name=\"Object management\">\n\t\t<template #icon>\n\t\t\t<Plus :size=\"20\" />\n\t\t</template>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t</template>\n\t\t\tRename\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tValidate\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Download :size=\"20\" />\n\t\t\t</template>\n\t\t\tDownload\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport ArrowRight from 'vue-material-design-icons/ArrowRight'\nimport Delete from 'vue-material-design-icons/Delete'\nimport Download from 'vue-material-design-icons/Download'\nimport Pencil from 'vue-material-design-icons/Pencil'\nimport Plus from 'vue-material-design-icons/Plus'\n\nexport default {\n\tcomponents: {\n\t\tArrowRight,\n\t\tDelete,\n\t\tDownload,\n\t\tPencil,\n\t\tPlus,\n\t},\n}\n</script>\n```\n\n### Custom icon slot\nTo be used with `vue-material-design-icons` only. For icon classes use the `default-icon` slot.\nIt can be used with one or multiple actions.\n```vue\n<template>\n\t<div style=\"display: flex;align-items: center;\">\n\t\t<NcButton @click=\"toggled = !toggled\">Toggle multiple action</NcButton>\n\t\t<NcActions>\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalCircleOutline :size=\"20\" />\n\t\t\t</template>\n\t\t\t<NcActionButton>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<MicrophoneOff :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tMute\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton v-if=\"toggled\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tDelete\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport DotsHorizontalCircleOutline from 'vue-material-design-icons/DotsHorizontalCircleOutline'\nimport MicrophoneOff from 'vue-material-design-icons/MicrophoneOff'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tDotsHorizontalCircleOutline,\n\t\tMicrophoneOff,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false\n\t\t}\n\t}\n}\n</script>\n```\n\n### Custom icon slot in child elements\n```vue\n<template>\n\t<NcActions :primary=\"true\">\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t\tSearch\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<Delete :size=\"20\" />\n\t\t\t</template>\n\t\t\tDelete\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport Magnify from 'vue-material-design-icons/Magnify'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tMagnify,\n\t},\n}\n</script>\n```\n\n### Type variants\n\n```vue\n<template>\n\t<div>\n\t\t<NcActions :type=\"current\">\n\t\t\t<template #icon>\n\t\t\t\t<SelectColor :size=\"20\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton v-if=\"current\" close-after-click @click=\"define()\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRemove\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton v-for=\"row in types\" close-after-click @click=\"define(row)\" :key=\"`type-icon--${row}`\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckboxMarkedCircleOutline v-if=\"row === current\" :size=\"20\" />\n\t\t\t\t\t<SelectColor v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ row }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<NcActions :type=\"current\" menu-name=\"Choose a type\">\n\t\t\t<NcActionButton v-if=\"current\" close-after-click @click=\"define()\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRemove\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton v-for=\"row in types\" close-after-click @click=\"define(row)\" :key=\"`type-text--${row}`\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckboxMarkedCircleOutline v-if=\"row === current\" :size=\"20\" />\n\t\t\t\t\t<SelectColor v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ row }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<NcActions :type=\"current\" menu-name=\"Choose a type\">\n\t\t\t<template #icon>\n\t\t\t\t<SelectColor :size=\"20\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton v-if=\"current\" close-after-click @click=\"define()\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRemove\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton v-for=\"row in types\" close-after-click @click=\"define(row)\" :key=\"`type-icon-text--${row}`\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckboxMarkedCircleOutline v-if=\"row === current\" :size=\"20\" />\n\t\t\t\t\t<SelectColor v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ row }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n\n<script>\nimport Delete from 'vue-material-design-icons/Delete'\nimport Palette from 'vue-material-design-icons/Palette'\nimport SelectColor from 'vue-material-design-icons/SelectColor'\nimport CheckboxMarkedCircleOutline from 'vue-material-design-icons/CheckboxMarkedCircleOutline'\n\nexport default {\n\tcomponents: {\n\t\tDelete,\n\t\tPalette,\n\t\tSelectColor,\n\t\tCheckboxMarkedCircleOutline,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcurrent: 'primary',\n\t\t\ttypes: [\n\t\t\t\t'primary',\n\t\t\t\t'secondary',\n\t\t\t\t'tertiary',\n\t\t\t\t'error',\n\t\t\t\t'warning',\n\t\t\t\t'success'\n\t\t\t]\n\t\t}\n\t},\n\tmethods: {\n\t\tdefine(row = undefined) {\n\t\t\tthis.current = row\n\t\t}\n\t}\n}\n</script>\n```\n\n</docs>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { t } from '../../l10n.js'\n\nimport Vue from 'vue'\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal.vue'\n\nconst focusableSelector = '.focusable'\n\n/**\n * The Actions component can be used to display one ore more actions.\n * If only a single action is provided, it will be rendered as an inline icon.\n * For more, a menu indicator will be shown and a popovermenu containing the\n * actions will be opened on click.\n *\n * @since 0.10.0\n */\nexport default {\n\tname: 'NcActions',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tDotsHorizontal,\n\t\tNcPopover,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Specify the open state of the popover menu\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * This disables the internal open management,\n\t\t * so the actions menu only respects the `open` prop.\n\t\t * This is e.g. necessary for the NcAvatar component\n\t\t * to only open the actions menu after loading it's entries has finished.\n\t\t */\n\t\tmanualOpen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the name to show for single actions\n\t\t */\n\t\tforceName: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specify the menu name\n\t\t */\n\t\tmenuName: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Apply primary styling for this menu\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button type used for trigger and single actions buttons\n\t\t * Accepted values: primary, secondary, tertiary, tertiary-no-background, tertiary-on-primary, error, warning, success. If left empty,\n\t\t * the default button style will be applied.\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['primary', 'secondary', 'tertiary', 'tertiary-no-background', 'tertiary-on-primary', 'error', 'warning', 'success'].indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Icon to show for the toggle menu button\n\t\t * when more than one action is inside the actions component.\n\t\t * Only replace the default three-dot icon if really necessary.\n\t\t */\n\t\tdefaultIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Aria label for the actions menu.\n\t\t *\n\t\t * If `menuName` is defined this will not be used to prevent\n\t\t * any accessible name conflicts. This ensures that the\n\t\t * element can be activated via voice input.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Actions'),\n\t\t},\n\n\t\t/**\n\t\t * aria-hidden attribute for the icon slot\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Wanted direction of the menu\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * DOM element for the actions' popover boundaries\n\t\t */\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: () => document.querySelector('body'),\n\t\t},\n\n\t\t/**\n\t\t * Selector for the actions' popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Disabled state of the main button (single action or menu toggle)\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Display x items inline out of the dropdown menu\n\t\t * Will be ignored if `forceMenu` is set\n\t\t */\n\t\tinline: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\n\temits: [\n\t\t'open',\n\t\t'update:open',\n\t\t'close',\n\t\t'focus',\n\t\t'blur',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\topened: this.open,\n\t\t\tfocusIndex: 0,\n\t\t\trandomId: `menu-${GenRandomId()}`,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttriggerBtnType() {\n\t\t\t// If requested, we use a primary button\n\t\t\treturn this.type || (this.primary\n\t\t\t\t? 'primary'\n\t\t\t\t// If it has a name, we use a secondary button\n\t\t\t\t: this.menuName ? 'secondary' : 'tertiary')\n\t\t},\n\t},\n\n\twatch: {\n\t\t// Watch parent prop\n\t\topen(state) {\n\t\t\tif (state === this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = state\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Do we have exactly one Action and\n\t\t * is it allowed as a standalone element?\n\t\t *\n\t\t * @param {Array} action The action to check\n\t\t * @return {boolean}\n\t\t */\n\t\tisValidSingleAction(action) {\n\t\t\tconst componentName = action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag\n\t\t\treturn ['NcActionButton', 'NcActionLink', 'NcActionRouter'].includes(componentName)\n\t\t},\n\n\t\t// MENU STATE MANAGEMENT\n\t\topenMenu(e) {\n\t\t\tif (this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = true\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is opened\n\t\t\t */\n\t\t\tthis.$emit('open')\n\t\t},\n\t\tcloseMenu(returnFocus = true) {\n\t\t\tif (!this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = false\n\n\t\t\tthis.$refs.popover.clearFocusTrap({ returnFocus })\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t *\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is closed\n\t\t\t */\n\t\t\tthis.$emit('close')\n\n\t\t\t// close everything\n\t\t\tthis.focusIndex = 0\n\n\t\t\t// focus back the menu button\n\t\t\tthis.$refs.menuButton.$el.focus()\n\t\t},\n\n\t\tonOpen(event) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t})\n\t\t},\n\n\t\t// MENU KEYS & FOCUS MANAGEMENT\n\t\t// focus nearest focusable item on mouse move\n\t\t// DO NOT change the focus if the target is already focused\n\t\t// this will prevent issues with input being unfocused\n\t\t// on mouse move\n\t\tonMouseFocusAction(event) {\n\t\t\tif (document.activeElement === event.target) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst menuItem = event.target.closest('li')\n\t\t\tif (menuItem) {\n\t\t\t\tconst focusableItem = menuItem.querySelector(focusableSelector)\n\t\t\t\tif (focusableItem) {\n\t\t\t\t\tconst focusList = this.$refs.menu.querySelectorAll(focusableSelector)\n\t\t\t\t\tconst focusIndex = [...focusList].indexOf(focusableItem)\n\t\t\t\t\tif (focusIndex > -1) {\n\t\t\t\t\t\tthis.focusIndex = focusIndex\n\t\t\t\t\t\tthis.focusAction()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Dispatches the keydown listener to different handlers\n\t\t *\n\t\t * @param {object} event The keydown event\n\t\t */\n\t\tonKeydown(event) {\n\t\t\t// Up or Shift+Tab\n\t\t\tif (event.keyCode === 38 || (event.keyCode === 9 && event.shiftKey)) {\n\t\t\t\tthis.focusPreviousAction(event)\n\t\t\t}\n\t\t\t// Down or Tab\n\t\t\tif (event.keyCode === 40 || (event.keyCode === 9 && !event.shiftKey)) {\n\t\t\t\tthis.focusNextAction(event)\n\t\t\t}\n\t\t\t// Page-Up\n\t\t\tif (event.keyCode === 33) {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t}\n\t\t\t// Page-Down\n\t\t\tif (event.keyCode === 34) {\n\t\t\t\tthis.focusLastAction(event)\n\t\t\t}\n\t\t\t// Esc\n\t\t\tif (event.keyCode === 27) {\n\t\t\t\tthis.closeMenu()\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t},\n\t\tremoveCurrentActive() {\n\t\t\tconst currentActiveElement = this.$refs.menu.querySelector('li.active')\n\t\t\tif (currentActiveElement) {\n\t\t\t\tcurrentActiveElement.classList.remove('active')\n\t\t\t}\n\t\t},\n\t\tfocusAction() {\n\t\t\t// TODO: have a global disabled state for non input elements\n\t\t\tconst focusElement = this.$refs.menu.querySelectorAll(focusableSelector)[this.focusIndex]\n\t\t\tif (focusElement) {\n\t\t\t\tthis.removeCurrentActive()\n\t\t\t\tconst liMenuParent = focusElement.closest('li.action')\n\t\t\t\tfocusElement.focus()\n\t\t\t\tif (liMenuParent) {\n\t\t\t\t\tliMenuParent.classList.add('active')\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfocusPreviousAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tif (this.focusIndex === 0) {\n\t\t\t\t\t// First element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex - 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusNextAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tconst indexLength = this.$refs.menu.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tif (this.focusIndex === indexLength) {\n\t\t\t\t\t// Last element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex + 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusFirstAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = 0\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusLastAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = this.$refs.menu.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tpreventIfEvent(event) {\n\t\t\tif (event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t}\n\t\t},\n\t\tonFocus(event) {\n\t\t\tthis.$emit('focus', event)\n\t\t},\n\t\tonBlur(event) {\n\t\t\tthis.$emit('blur', event)\n\t\t},\n\t},\n\n\t/**\n\t * The render function to display the component\n\t *\n\t * @param {Function} h The function to create VNodes\n\t * @return {object|undefined} The created VNode\n\t */\n\trender(h) {\n\t\t/**\n\t\t * Filter the Actions, so that we only get allowed components.\n\t\t * This also ensure that we don't get 'text' elements, which would\n\t\t * become problematic later on.\n\t\t */\n\t\tconst actions = (this.$slots.default || []).filter(\n\t\t\taction => action?.componentOptions?.tag || action?.componentOptions?.Ctor?.extendOptions?.name,\n\t\t)\n\n\t\tconst isNavLink = (action) => {\n\t\t\tconst componentName = action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag\n\t\t\treturn (\n\t\t\t\tcomponentName === 'NcActionLink'\n\t\t\t\t&& action?.componentOptions?.propsData?.href?.startsWith(window.location.origin)\n\t\t\t)\n\t\t}\n\t\t// Automatically detect whether all actions are website navigation links\n\t\tconst isNav = actions.every(isNavLink)\n\n\t\t/**\n\t\t * Filter and list actions that are allowed to be displayed inline\n\t\t */\n\t\tlet inlineActions = actions.filter(this.isValidSingleAction)\n\t\tif (this.forceMenu && inlineActions.length > 0 && this.inline > 0) {\n\t\t\tVue.util.warn('Specifying forceMenu will ignore any inline actions rendering.')\n\t\t\tinlineActions = []\n\t\t}\n\n\t\t// Check that we have at least one action\n\t\tif (actions.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\t/**\n\t\t * Render the provided action\n\t\t *\n\t\t * @param {object} action the action to render\n\t\t * @return {Function} the vue render function\n\t\t */\n\t\tconst renderInlineAction = (action) => {\n\t\t\tconst icon = action?.data?.scopedSlots?.icon()?.[0]\n\t\t\t\t|| h('span', { class: ['icon', action?.componentOptions?.propsData?.icon] })\n\t\t\tconst clickListener = action?.componentOptions?.listeners?.click\n\n\t\t\tconst text = action?.componentOptions?.children?.[0]?.text?.trim?.()\n\t\t\tconst ariaLabel = action?.componentOptions?.propsData?.ariaLabel || text\n\t\t\tconst buttonText = this.forceName ? text : ''\n\n\t\t\tlet title = action?.componentOptions?.propsData?.title\n\t\t\t// Show a default title for single actions if none is present\n\t\t\tif (!(this.forceName || title)) {\n\t\t\t\ttitle = text\n\t\t\t}\n\n\t\t\treturn h('NcButton',\n\t\t\t\t{\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'action-item action-item--single',\n\t\t\t\t\t\taction?.data?.staticClass,\n\t\t\t\t\t\taction?.data?.class,\n\t\t\t\t\t],\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\t'aria-label': ariaLabel,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t},\n\t\t\t\t\tref: action?.data?.ref,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t// If it has a menuName, we use a secondary button\n\t\t\t\t\t\ttype: this.type || (buttonText ? 'secondary' : 'tertiary'),\n\t\t\t\t\t\tdisabled: this.disabled || action?.componentOptions?.propsData?.disabled,\n\t\t\t\t\t\tariaHidden: this.ariaHidden,\n\t\t\t\t\t\t...action?.componentOptions?.propsData,\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tfocus: this.onFocus,\n\t\t\t\t\t\tblur: this.onBlur,\n\t\t\t\t\t\t// If we have a click listener,\n\t\t\t\t\t\t// we bind it to execute on click and forward the click event\n\t\t\t\t\t\t...(!!clickListener && {\n\t\t\t\t\t\t\tclick: (event) => {\n\t\t\t\t\t\t\t\tif (clickListener) {\n\t\t\t\t\t\t\t\t\tclickListener(event)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\th('template', { slot: 'icon' }, [icon]),\n\t\t\t\t\tbuttonText,\n\t\t\t\t],\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Render the actions popover\n\t\t *\n\t\t * @param {Array} actions the actions to render within\n\t\t * @return {Function} the vue render function\n\t\t */\n\t\tconst renderActionsPopover = (actions) => {\n\t\t\tconst triggerIcon = this.$slots.icon?.[0] || (\n\t\t\t\tthis.defaultIcon\n\t\t\t\t\t? h('span', { class: ['icon', this.defaultIcon] })\n\t\t\t\t\t: h('DotsHorizontal', {\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tsize: 20,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t)\n\t\t\treturn h('NcPopover',\n\t\t\t\t{\n\t\t\t\t\tref: 'popover',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdelay: 0,\n\t\t\t\t\t\thandleResize: true,\n\t\t\t\t\t\tshown: this.opened,\n\t\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\t\tboundary: this.boundariesElement,\n\t\t\t\t\t\tcontainer: this.container,\n\t\t\t\t\t\tpopoverBaseClass: 'action-item__popper',\n\t\t\t\t\t\tsetReturnFocus: this.$refs.menuButton?.$el,\n\t\t\t\t\t},\n\t\t\t\t\t// For some reason the popover component\n\t\t\t\t\t// does not react to props given under the 'props' key,\n\t\t\t\t\t// so we use both 'attrs' and 'props'\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tdelay: 0,\n\t\t\t\t\t\thandleResize: true,\n\t\t\t\t\t\tshown: this.opened,\n\t\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\t\tboundary: this.boundariesElement,\n\t\t\t\t\t\tcontainer: this.container,\n\t\t\t\t\t\t...this.manualOpen && { triggers: [] },\n\t\t\t\t\t\tpopoverBaseClass: 'action-item__popper',\n\t\t\t\t\t},\n\t\t\t\t\ton: {\n\t\t\t\t\t\tshow: this.openMenu,\n\t\t\t\t\t\t'after-show': this.onOpen,\n\t\t\t\t\t\thide: this.closeMenu,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\th('NcButton', {\n\t\t\t\t\t\tclass: 'action-item__menutoggle',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\ttype: this.triggerBtnType,\n\t\t\t\t\t\t\tdisabled: this.disabled,\n\t\t\t\t\t\t\tariaHidden: this.ariaHidden,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tslot: 'trigger',\n\t\t\t\t\t\tref: 'menuButton',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t'aria-haspopup': isNav ? null : 'menu',\n\t\t\t\t\t\t\t'aria-label': this.menuName ? null : this.ariaLabel,\n\t\t\t\t\t\t\t'aria-controls': this.opened ? this.randomId : null,\n\t\t\t\t\t\t\t'aria-expanded': this.opened.toString(),\n\t\t\t\t\t\t},\n\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\tfocus: this.onFocus,\n\t\t\t\t\t\t\tblur: this.onBlur,\n\t\t\t\t\t\t},\n\t\t\t\t\t}, [\n\t\t\t\t\t\th('template', { slot: 'icon' }, [triggerIcon]),\n\t\t\t\t\t\tthis.menuName,\n\t\t\t\t\t]),\n\t\t\t\t\th('div', {\n\t\t\t\t\t\tclass: {\n\t\t\t\t\t\t\topen: this.opened,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttabindex: '-1',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\tkeydown: this.onKeydown,\n\t\t\t\t\t\t\tmousemove: this.onMouseFocusAction,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tref: 'menu',\n\t\t\t\t\t}, [\n\t\t\t\t\t\th('ul', {\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\tid: this.randomId,\n\t\t\t\t\t\t\t\ttabindex: '-1',\n\t\t\t\t\t\t\t\trole: isNav ? null : 'menu',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}, [\n\t\t\t\t\t\t\tactions,\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}\n\n\t\t/**\n\t\t * If we have a single action only and didn't force a menu,\n\t\t * we render the action as a standalone button\n\t\t */\n\t\tif (actions.length === 1 && inlineActions.length === 1 && !this.forceMenu) {\n\t\t\treturn renderInlineAction(inlineActions[0])\n\t\t}\n\n\t\t/**\n\t\t * If we some inline actions to render, render them, then the menu\n\t\t */\n\t\tif (inlineActions.length > 0 && this.inline > 0) {\n\t\t\tconst renderedInlineActions = inlineActions.slice(0, this.inline)\n\t\t\t// Filter already rendered actions\n\t\t\tconst menuActions = actions.filter(action => !renderedInlineActions.includes(action))\n\t\t\treturn h('div',\n\t\t\t\t{\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'action-items',\n\t\t\t\t\t\t`action-item--${this.triggerBtnType}`,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t// Render inline actions\n\t\t\t\t\t...renderedInlineActions.map(renderInlineAction),\n\t\t\t\t\t// render the rest within the popover menu\n\t\t\t\t\tmenuActions.length > 0\n\t\t\t\t\t\t? h('div',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t\t\t'action-item',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'action-item--open': this.opened,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\trenderActionsPopover(menuActions),\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t: null,\n\t\t\t\t])\n\t\t}\n\n\t\t/**\n\t\t * Otherwise, we render the actions in a popover\n\t\t */\n\t\treturn h('div',\n\t\t\t{\n\t\t\t\tclass: [\n\t\t\t\t\t'action-item action-item--default-popover',\n\t\t\t\t\t`action-item--${this.triggerBtnType}`,\n\t\t\t\t\t{\n\t\t\t\t\t\t'action-item--open': this.opened,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t[\n\t\t\t\trenderActionsPopover(actions),\n\t\t\t],\n\t\t)\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// Inline buttons\n.action-items {\n\tdisplay: flex;\n\talign-items: center;\n\n\t// Spacing between buttons\n\t& > button {\n\t\tmargin-right: math.div($icon-margin, 2);\n\t}\n}\n\n.action-item {\n\t--open-background-color: var(--color-background-hover, $action-background-hover);\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&.action-item--primary {\n\t\t--open-background-color: var(--color-primary-element-hover);\n\t}\n\n\t&.action-item--secondary {\n\t\t--open-background-color: var(--color-primary-element-light-hover);\n\t}\n\n\t&.action-item--error {\n\t\t--open-background-color: var(--color-error-hover);\n\t}\n\n\t&.action-item--warning {\n\t\t--open-background-color: var(--color-warning-hover);\n\t}\n\n\t&.action-item--success {\n\t\t--open-background-color: var(--color-success-hover);\n\t}\n\n\t&.action-item--tertiary-no-background {\n\t\t--open-background-color: transparent;\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\tbackground-color: var(--open-background-color);\n\t}\n}\n</style>\n\n<style lang=\"scss\">\n// We overwrote the popover base class, so we can style\n// the popover__inner for actions only.\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper {\n\tborder-radius: var(--border-radius-large);\n\toverflow:hidden;\n\n\t.v-popper__inner {\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: 4px;\n\t\tmax-height: calc(50vh - 16px);\n\t\toverflow: auto;\n\t}\n}\n</style>\n"],"names":["focusableSelector","_sfc_main","Components_NcButton","DotsHorizontal__default","Components_NcPopover","value","l10n","GenRandomId","state","action","componentName","_e","_c","_b","_a","_d","returnFocus","event","menuItem","focusableItem","focusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","h","actions","isNavLink","_h","_g","_f","isNav","inlineActions","Vue__default","renderInlineAction","icon","clickListener","text","_l","_k","_j","_i","ariaLabel","_n","_m","buttonText","title","_p","_o","_q","_r","_s","_u","_t","_v","renderActionsPopover","triggerIcon","renderedInlineActions","menuActions"],"mappings":"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"}