@nextcloud/vue 9.2.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/dist/assets/{NcActions-DXLRy-4d.css → NcActions-DneK-9R2.css} +11 -11
  3. package/dist/assets/{NcAppContent-r_MkL84m.css → NcAppContent-HF21N7dO.css} +19 -19
  4. package/dist/assets/{NcAppNavigation-Br6xragy.css → NcAppNavigation-f2zUqaiQ.css} +12 -12
  5. package/dist/assets/{NcAppNavigationItem-6ZUh2hMu.css → NcAppNavigationItem-D97Onpd9.css} +36 -36
  6. package/dist/assets/{NcAppNavigationSearch-CUSlFbdJ.css → NcAppNavigationSearch-BH8hBjGe.css} +5 -5
  7. package/dist/assets/{NcAppSettingsDialog-B51_ysuI.css → NcAppSettingsDialog-Dz8uBPgu.css} +36 -10
  8. package/dist/assets/{NcAppSidebar-aGrIJ9f6.css → NcAppSidebar-krHtMwId.css} +44 -44
  9. package/dist/assets/{NcAvatar-BvgSFJqT.css → NcAvatar-f8SJKMDw.css} +24 -24
  10. package/dist/assets/{NcButton-BjcEkfk2.css → NcButton-DtYLJgG8.css} +48 -48
  11. package/dist/assets/{NcChip-T6s7HqeL.css → NcChip-DZ8dUSFy.css} +12 -12
  12. package/dist/assets/{NcDashboardWidget-DD06i7ws.css → NcDashboardWidget-DFY9GRrd.css} +12 -12
  13. package/dist/assets/{NcFormBoxItem-j2nGdOvd.css → NcFormBoxItem-BfXKp9xJ.css} +14 -14
  14. package/dist/assets/{NcIconSvgWrapper-D6qXQDNo.css → NcIconSvgWrapper-N3OwSN9O.css} +10 -10
  15. package/dist/assets/{NcInputField-D5SEE7D0.css → NcInputField-DCpslX7k.css} +40 -40
  16. package/dist/assets/{NcListItem-D9Lk0t6j.css → NcListItem-CZnKmy9X.css} +41 -41
  17. package/dist/assets/{NcListItemIcon-OOjV0jWx.css → NcListItemIcon-aquns6B7.css} +13 -13
  18. package/dist/assets/{NcNoteCard-l5nIN9Hg.css → NcNoteCard-DZSuYX4-.css} +10 -10
  19. package/dist/assets/{NcPasswordField-CMuvrdVC.css → NcPasswordField-BCJ0LHSS.css} +2 -2
  20. package/dist/assets/{NcRelatedResourcesPanel-CZDNe7DZ.css → NcRelatedResourcesPanel-Bun35PUF.css} +7 -7
  21. package/dist/assets/{NcRichText-QPnpxaeG.css → NcRichText-BwHm-gXR.css} +106 -89
  22. package/dist/assets/{NcTextArea-7C2JBozT.css → NcTextArea-BKVszZmQ.css} +25 -25
  23. package/dist/chunks/{NcActionButton-2Rxa55KE.mjs → NcActionButton-DCWUru2b.mjs} +3 -3
  24. package/dist/chunks/{NcActionButton-2Rxa55KE.mjs.map → NcActionButton-DCWUru2b.mjs.map} +1 -1
  25. package/dist/chunks/{NcActionButtonGroup-DouiEx4u.mjs → NcActionButtonGroup-QgGuZcPA.mjs} +2 -2
  26. package/dist/chunks/{NcActionButtonGroup-DouiEx4u.mjs.map → NcActionButtonGroup-QgGuZcPA.mjs.map} +1 -1
  27. package/dist/chunks/{NcActionInput-BUey_7p4.mjs → NcActionInput-Bw4UxfFB.mjs} +5 -5
  28. package/dist/chunks/{NcActionInput-BUey_7p4.mjs.map → NcActionInput-Bw4UxfFB.mjs.map} +1 -1
  29. package/dist/chunks/{NcActionTextEditable-CXH_CFjU.mjs → NcActionTextEditable-BQXCci7D.mjs} +3 -3
  30. package/dist/chunks/{NcActionTextEditable-CXH_CFjU.mjs.map → NcActionTextEditable-BQXCci7D.mjs.map} +1 -1
  31. package/dist/chunks/{NcActions-QtUC1sD3.mjs → NcActions-B0kM6AYb.mjs} +20 -50
  32. package/dist/chunks/NcActions-B0kM6AYb.mjs.map +1 -0
  33. package/dist/chunks/{NcAppContent-DW_SpXeR.mjs → NcAppContent-BbtKZp6w.mjs} +9 -18
  34. package/dist/chunks/NcAppContent-BbtKZp6w.mjs.map +1 -0
  35. package/dist/chunks/{NcAppNavigation-DrlEs9WS.mjs → NcAppNavigation-CROkGlDE.mjs} +7 -7
  36. package/dist/chunks/NcAppNavigation-CROkGlDE.mjs.map +1 -0
  37. package/dist/chunks/{NcAppNavigationCaption-CW__bXHt.mjs → NcAppNavigationCaption-CuGe5Mev.mjs} +2 -2
  38. package/dist/chunks/{NcAppNavigationCaption-CW__bXHt.mjs.map → NcAppNavigationCaption-CuGe5Mev.mjs.map} +1 -1
  39. package/dist/chunks/{NcAppNavigationItem-DH7wxFRY.mjs → NcAppNavigationItem-DU-pLjwa.mjs} +8 -8
  40. package/dist/chunks/NcAppNavigationItem-DU-pLjwa.mjs.map +1 -0
  41. package/dist/chunks/{NcAppNavigationNew-Y50s6jTC.mjs → NcAppNavigationNew-DJbq5wr_.mjs} +2 -2
  42. package/dist/chunks/{NcAppNavigationNew-Y50s6jTC.mjs.map → NcAppNavigationNew-DJbq5wr_.mjs.map} +1 -1
  43. package/dist/chunks/{NcAppNavigationNewItem-DehA23th.mjs → NcAppNavigationNewItem-CoRu6Q9O.mjs} +2 -2
  44. package/dist/chunks/{NcAppNavigationNewItem-DehA23th.mjs.map → NcAppNavigationNewItem-CoRu6Q9O.mjs.map} +1 -1
  45. package/dist/chunks/{NcAppNavigationSearch-BWx-LXJj.mjs → NcAppNavigationSearch-DaIFceYy.mjs} +5 -5
  46. package/dist/chunks/NcAppNavigationSearch-DaIFceYy.mjs.map +1 -0
  47. package/dist/chunks/{NcAppNavigationSettings-77CxwYOD.mjs → NcAppNavigationSettings-45tEbBBm.mjs} +5 -5
  48. package/dist/chunks/{NcAppNavigationSettings-77CxwYOD.mjs.map → NcAppNavigationSettings-45tEbBBm.mjs.map} +1 -1
  49. package/dist/chunks/{NcAppSettingsDialog-B7AG3mEJ.mjs → NcAppSettingsDialog-lTULgn3p.mjs} +38 -12
  50. package/dist/chunks/NcAppSettingsDialog-lTULgn3p.mjs.map +1 -0
  51. package/dist/chunks/{NcAppSettingsShortcutsSection-o6KPisIT.mjs → NcAppSettingsShortcutsSection-DIIuKYzs.mjs} +2 -2
  52. package/dist/chunks/{NcAppSettingsShortcutsSection-o6KPisIT.mjs.map → NcAppSettingsShortcutsSection-DIIuKYzs.mjs.map} +1 -1
  53. package/dist/chunks/{NcAppSidebar-BZh0lWlQ.mjs → NcAppSidebar-X9ktYY0p.mjs} +6 -6
  54. package/dist/chunks/NcAppSidebar-X9ktYY0p.mjs.map +1 -0
  55. package/dist/chunks/{NcAssistantButton-D3v1Xk22.mjs → NcAssistantButton-BID8rRE5.mjs} +5 -5
  56. package/dist/chunks/{NcAssistantButton-D3v1Xk22.mjs.map → NcAssistantButton-BID8rRE5.mjs.map} +1 -1
  57. package/dist/chunks/{NcAssistantIcon-CCdgVDM4.mjs → NcAssistantIcon-BUvb4WNg.mjs} +2 -2
  58. package/dist/chunks/{NcAssistantIcon-CCdgVDM4.mjs.map → NcAssistantIcon-BUvb4WNg.mjs.map} +1 -1
  59. package/dist/chunks/{NcAvatar-uKR5Re43.mjs → NcAvatar-Dxm05R6e.mjs} +27 -23
  60. package/dist/chunks/NcAvatar-Dxm05R6e.mjs.map +1 -0
  61. package/dist/chunks/{NcBreadcrumb-BffVglho.mjs → NcBreadcrumb-CiM9xAAS.mjs} +3 -3
  62. package/dist/chunks/{NcBreadcrumb-BffVglho.mjs.map → NcBreadcrumb-CiM9xAAS.mjs.map} +1 -1
  63. package/dist/chunks/{NcBreadcrumbs-DCzvS4nv.mjs → NcBreadcrumbs-geMiBPkk.mjs} +4 -4
  64. package/dist/chunks/{NcBreadcrumbs-DCzvS4nv.mjs.map → NcBreadcrumbs-geMiBPkk.mjs.map} +1 -1
  65. package/dist/chunks/{NcButton-DkC5k3Lb.mjs → NcButton-ZNHdqKQl.mjs} +3 -3
  66. package/dist/chunks/NcButton-ZNHdqKQl.mjs.map +1 -0
  67. package/dist/chunks/{NcCheckboxRadioSwitch-CAxvqRrM.mjs → NcCheckboxRadioSwitch-6ty3DxEG.mjs} +2 -2
  68. package/dist/chunks/{NcCheckboxRadioSwitch-CAxvqRrM.mjs.map → NcCheckboxRadioSwitch-6ty3DxEG.mjs.map} +1 -1
  69. package/dist/chunks/{NcChip-DH4rTzjt.mjs → NcChip-CFf0KxGk.mjs} +8 -8
  70. package/dist/chunks/NcChip-CFf0KxGk.mjs.map +1 -0
  71. package/dist/chunks/{NcCollectionList-BsgtKu_8.mjs → NcCollectionList-Ds-tmckn.mjs} +6 -6
  72. package/dist/chunks/{NcCollectionList-BsgtKu_8.mjs.map → NcCollectionList-Ds-tmckn.mjs.map} +1 -1
  73. package/dist/chunks/{NcColorPicker-rGVCe-44.mjs → NcColorPicker-BFcR9_1o.mjs} +6 -6
  74. package/dist/chunks/{NcColorPicker-rGVCe-44.mjs.map → NcColorPicker-BFcR9_1o.mjs.map} +1 -1
  75. package/dist/chunks/{NcContent-DeXRbVuo.mjs → NcContent-BKKnoxxu.mjs} +4 -4
  76. package/dist/chunks/{NcContent-DeXRbVuo.mjs.map → NcContent-BKKnoxxu.mjs.map} +1 -1
  77. package/dist/chunks/{NcDashboardWidget-BxIt1qRx.mjs → NcDashboardWidget-cclUqUde.mjs} +6 -6
  78. package/dist/chunks/NcDashboardWidget-cclUqUde.mjs.map +1 -0
  79. package/dist/chunks/{NcDashboardWidgetItem-Dg8AbqGD.mjs → NcDashboardWidgetItem-DM96gJkD.mjs} +4 -4
  80. package/dist/chunks/{NcDashboardWidgetItem-Dg8AbqGD.mjs.map → NcDashboardWidgetItem-DM96gJkD.mjs.map} +1 -1
  81. package/dist/chunks/{NcDateTimePicker-B6ni6QAB.mjs → NcDateTimePicker-CYRbEpfY.mjs} +6 -6
  82. package/dist/chunks/{NcDateTimePicker-B6ni6QAB.mjs.map → NcDateTimePicker-CYRbEpfY.mjs.map} +1 -1
  83. package/dist/chunks/{NcDateTimePickerNative-BaauiB0I.mjs → NcDateTimePickerNative-CR1Yx5Qp.mjs} +2 -2
  84. package/dist/chunks/{NcDateTimePickerNative-BaauiB0I.mjs.map → NcDateTimePickerNative-CR1Yx5Qp.mjs.map} +1 -1
  85. package/dist/chunks/{NcDialog-BC0--SOc.mjs → NcDialog-BY-1v8yi.mjs} +3 -3
  86. package/dist/chunks/{NcDialog-BC0--SOc.mjs.map → NcDialog-BY-1v8yi.mjs.map} +1 -1
  87. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CYQZ84A2.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs} +4 -4
  88. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CYQZ84A2.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs.map} +1 -1
  89. package/dist/chunks/{NcEmojiPicker-CKp3IB6N.mjs → NcEmojiPicker-DMiiRPm1.mjs} +6 -6
  90. package/dist/chunks/{NcEmojiPicker-CKp3IB6N.mjs.map → NcEmojiPicker-DMiiRPm1.mjs.map} +1 -1
  91. package/dist/chunks/{NcFormBoxButton-CCs-0mb3.mjs → NcFormBoxButton-4XaQUTOS.mjs} +4 -4
  92. package/dist/chunks/{NcFormBoxButton-CCs-0mb3.mjs.map → NcFormBoxButton-4XaQUTOS.mjs.map} +1 -1
  93. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DfPML_k7.mjs → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs} +8 -38
  94. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs.map +1 -0
  95. package/dist/chunks/{NcFormBoxItem-C3We3v_4.mjs → NcFormBoxItem-BBP76Mkf.mjs} +10 -10
  96. package/dist/chunks/{NcFormBoxItem-C3We3v_4.mjs.map → NcFormBoxItem-BBP76Mkf.mjs.map} +1 -1
  97. package/dist/chunks/{NcFormBoxSwitch-gHZMcoCQ.mjs → NcFormBoxSwitch-E6Ei7MFo.mjs} +4 -4
  98. package/dist/chunks/{NcFormBoxSwitch-gHZMcoCQ.mjs.map → NcFormBoxSwitch-E6Ei7MFo.mjs.map} +1 -1
  99. package/dist/chunks/{NcHeaderButton-DafXYbXB.mjs → NcHeaderButton-tLfDELGu.mjs} +2 -2
  100. package/dist/chunks/{NcHeaderButton-DafXYbXB.mjs.map → NcHeaderButton-tLfDELGu.mjs.map} +1 -1
  101. package/dist/chunks/{NcHeaderMenu-DfO7ghiM.mjs → NcHeaderMenu-ClRw0Xc5.mjs} +2 -2
  102. package/dist/chunks/{NcHeaderMenu-DfO7ghiM.mjs.map → NcHeaderMenu-ClRw0Xc5.mjs.map} +1 -1
  103. package/dist/chunks/{NcHotkey-CmqTn7WR.mjs → NcHotkey-Cya0WRKL.mjs} +2 -2
  104. package/dist/chunks/{NcHotkey-CmqTn7WR.mjs.map → NcHotkey-Cya0WRKL.mjs.map} +1 -1
  105. package/dist/chunks/{NcHotkeyList-CuENLgpa.mjs → NcHotkeyList-B9C--U6a.mjs} +2 -2
  106. package/dist/chunks/{NcHotkeyList-CuENLgpa.mjs.map → NcHotkeyList-B9C--U6a.mjs.map} +1 -1
  107. package/dist/chunks/{NcIconSvgWrapper-5AA93z-F.mjs → NcIconSvgWrapper-BvLanNaW.mjs} +4 -4
  108. package/dist/chunks/NcIconSvgWrapper-BvLanNaW.mjs.map +1 -0
  109. package/dist/chunks/{NcInputConfirmCancel-BWJotcI2.mjs → NcInputConfirmCancel-Brw2dsPI.mjs} +3 -3
  110. package/dist/chunks/{NcInputConfirmCancel-BWJotcI2.mjs.map → NcInputConfirmCancel-Brw2dsPI.mjs.map} +1 -1
  111. package/dist/chunks/{NcInputField-DwkKsbxv.mjs → NcInputField-z8wpYKt2.mjs} +11 -9
  112. package/dist/chunks/NcInputField-z8wpYKt2.mjs.map +1 -0
  113. package/dist/chunks/{NcKbd-B87GdbDW.mjs → NcKbd-D6pM7aJM.mjs} +2 -2
  114. package/dist/chunks/{NcKbd-B87GdbDW.mjs.map → NcKbd-D6pM7aJM.mjs.map} +1 -1
  115. package/dist/chunks/{NcListItem-BLSWE2Hb.mjs → NcListItem-D5AkAxDh.mjs} +4 -4
  116. package/dist/chunks/NcListItem-D5AkAxDh.mjs.map +1 -0
  117. package/dist/chunks/{NcListItemIcon-BXVk-irh.mjs → NcListItemIcon-D_ReDycv.mjs} +5 -5
  118. package/dist/chunks/NcListItemIcon-D_ReDycv.mjs.map +1 -0
  119. package/dist/chunks/{NcModal-BIG1WrLo.mjs → NcModal-DZtBQM1y.mjs} +6 -6
  120. package/dist/chunks/{NcModal-BIG1WrLo.mjs.map → NcModal-DZtBQM1y.mjs.map} +1 -1
  121. package/dist/chunks/{NcNoteCard-Dw222p4P.mjs → NcNoteCard-C6JdnZUp.mjs} +5 -5
  122. package/dist/chunks/NcNoteCard-C6JdnZUp.mjs.map +1 -0
  123. package/dist/chunks/{NcPasswordField-BkVdu9LI.mjs → NcPasswordField-BquWP0Di.mjs} +11 -8
  124. package/dist/chunks/NcPasswordField-BquWP0Di.mjs.map +1 -0
  125. package/dist/chunks/{NcRelatedResourcesPanel-DP7W80M0.mjs → NcRelatedResourcesPanel-DPwZ4SSu.mjs} +6 -6
  126. package/dist/chunks/NcRelatedResourcesPanel-DPwZ4SSu.mjs.map +1 -0
  127. package/dist/chunks/{NcRichContenteditable-A0F0waG9.mjs → NcRichContenteditable-ClUiBH9B.mjs} +12 -12
  128. package/dist/chunks/{NcRichContenteditable-A0F0waG9.mjs.map → NcRichContenteditable-ClUiBH9B.mjs.map} +1 -1
  129. package/dist/chunks/{NcRichText-PvndLTtG.mjs → NcRichText-DamxfqDV.mjs} +44 -8
  130. package/dist/chunks/NcRichText-DamxfqDV.mjs.map +1 -0
  131. package/dist/chunks/{NcSelect-DekSQwK1.mjs → NcSelect-Ba00b95n.mjs} +2 -2
  132. package/dist/chunks/{NcSelect-DekSQwK1.mjs.map → NcSelect-Ba00b95n.mjs.map} +1 -1
  133. package/dist/chunks/{NcSelectTags-wqBc8W15.mjs → NcSelectTags-DAxQe-10.mjs} +3 -3
  134. package/dist/chunks/{NcSelectTags-wqBc8W15.mjs.map → NcSelectTags-DAxQe-10.mjs.map} +1 -1
  135. package/dist/chunks/{NcSelectUsers-DGY_Fvw7.mjs → NcSelectUsers-DlE8EHdq.mjs} +3 -3
  136. package/dist/chunks/{NcSelectUsers-DGY_Fvw7.mjs.map → NcSelectUsers-DlE8EHdq.mjs.map} +1 -1
  137. package/dist/chunks/{NcSettingsSection-DDccDeTg.mjs → NcSettingsSection-BfK7eHNT.mjs} +2 -2
  138. package/dist/chunks/{NcSettingsSection-DDccDeTg.mjs.map → NcSettingsSection-BfK7eHNT.mjs.map} +1 -1
  139. package/dist/chunks/{NcSettingsSelectGroup-Bpm9HZXh.mjs → NcSettingsSelectGroup-CO8dnQ6q.mjs} +3 -3
  140. package/dist/chunks/{NcSettingsSelectGroup-Bpm9HZXh.mjs.map → NcSettingsSelectGroup-CO8dnQ6q.mjs.map} +1 -1
  141. package/dist/chunks/{NcTextArea-CBx0eeEG.mjs → NcTextArea-Cr27-KiU.mjs} +9 -7
  142. package/dist/chunks/NcTextArea-Cr27-KiU.mjs.map +1 -0
  143. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-cbNqV44E.mjs → NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs} +5 -5
  144. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs.map +1 -0
  145. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dr3oElNm.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs} +3 -3
  146. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dr3oElNm.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs.map} +1 -1
  147. package/dist/chunks/{NcUserBubble-2CLRpxdk.mjs → NcUserBubble-DEW575GR.mjs} +2 -2
  148. package/dist/chunks/{NcUserBubble-2CLRpxdk.mjs.map → NcUserBubble-DEW575GR.mjs.map} +1 -1
  149. package/dist/chunks/{NcUserStatusIcon-D6fygDFl.mjs → NcUserStatusIcon-DHHqIgRK.mjs} +2 -2
  150. package/dist/chunks/{NcUserStatusIcon-D6fygDFl.mjs.map → NcUserStatusIcon-DHHqIgRK.mjs.map} +1 -1
  151. package/dist/chunks/{_l10n--WxGDYem.mjs → _l10n-CWKr1fUH.mjs} +35 -33
  152. package/dist/chunks/_l10n-CWKr1fUH.mjs.map +1 -0
  153. package/dist/chunks/appName-DtnLUijR.mjs +41 -0
  154. package/dist/chunks/appName-DtnLUijR.mjs.map +1 -0
  155. package/dist/chunks/{colors-BhsvsNTT.mjs → colors-BM9KkzNS.mjs} +2 -2
  156. package/dist/chunks/{colors-BhsvsNTT.mjs.map → colors-BM9KkzNS.mjs.map} +1 -1
  157. package/dist/chunks/{mdi-8kZvl9vo.mjs → mdi-HQ-WBPmL.mjs} +10 -10
  158. package/dist/chunks/{mdi-8kZvl9vo.mjs.map → mdi-HQ-WBPmL.mjs.map} +1 -1
  159. package/dist/chunks/{referencePickerModal-el0J7aNd.mjs → referencePickerModal-f8STnNvS.mjs} +7 -7
  160. package/dist/chunks/{referencePickerModal-el0J7aNd.mjs.map → referencePickerModal-f8STnNvS.mjs.map} +1 -1
  161. package/dist/chunks/useCopy-pTWmSjcP.mjs +39 -0
  162. package/dist/chunks/useCopy-pTWmSjcP.mjs.map +1 -0
  163. package/dist/components/NcActionButton/index.mjs +1 -1
  164. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  165. package/dist/components/NcActionInput/index.mjs +1 -1
  166. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  167. package/dist/components/NcActions/NcActions.vue.d.ts +21 -7
  168. package/dist/components/NcActions/index.mjs +1 -1
  169. package/dist/components/NcAppContent/index.mjs +1 -1
  170. package/dist/components/NcAppNavigation/index.mjs +1 -1
  171. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +11 -2
  172. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  173. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +11 -2
  174. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  175. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  176. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  177. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  178. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  179. package/dist/components/NcAppSettingsDialog/NcAppSettingsDialog.vue.d.ts +5 -0
  180. package/dist/components/NcAppSettingsDialog/NcAppSettingsDialogVersion.vue.d.ts +2 -0
  181. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  182. package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
  183. package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
  184. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +11 -2
  185. package/dist/components/NcAppSidebar/index.mjs +1 -1
  186. package/dist/components/NcAssistantButton/index.mjs +1 -1
  187. package/dist/components/NcAssistantIcon/index.mjs +1 -1
  188. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +12 -2
  189. package/dist/components/NcAvatar/index.mjs +1 -1
  190. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +11 -2
  191. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  192. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +22 -4
  193. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  194. package/dist/components/NcButton/index.mjs +1 -1
  195. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  196. package/dist/components/NcChip/index.mjs +1 -1
  197. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +35 -6
  198. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +23 -4
  199. package/dist/components/NcCollectionList/index.mjs +1 -1
  200. package/dist/components/NcColorPicker/index.mjs +1 -1
  201. package/dist/components/NcContent/index.mjs +1 -1
  202. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +35 -6
  203. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  204. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +23 -4
  205. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  206. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  207. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  208. package/dist/components/NcDialog/index.mjs +1 -1
  209. package/dist/components/NcDialogButton/index.mjs +1 -1
  210. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  211. package/dist/components/NcFormBoxButton/index.mjs +1 -1
  212. package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
  213. package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
  214. package/dist/components/NcHeaderButton/index.mjs +1 -1
  215. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  216. package/dist/components/NcHotkey/index.mjs +1 -1
  217. package/dist/components/NcHotkeyList/index.mjs +1 -1
  218. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  219. package/dist/components/NcInputField/index.mjs +1 -1
  220. package/dist/components/NcKbd/index.mjs +1 -1
  221. package/dist/components/NcListItem/NcListItem.vue.d.ts +11 -2
  222. package/dist/components/NcListItem/index.mjs +1 -1
  223. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +13 -2
  224. package/dist/components/NcListItemIcon/index.mjs +1 -1
  225. package/dist/components/NcModal/index.mjs +1 -1
  226. package/dist/components/NcNoteCard/index.mjs +1 -1
  227. package/dist/components/NcPasswordField/index.mjs +1 -1
  228. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  229. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  230. package/dist/components/NcRichText/NcRichTextCopyButton.vue.d.ts +6 -0
  231. package/dist/components/NcRichText/index.mjs +3 -3
  232. package/dist/components/NcSelect/index.mjs +1 -1
  233. package/dist/components/NcSelectTags/index.mjs +1 -1
  234. package/dist/components/NcSelectUsers/index.mjs +1 -1
  235. package/dist/components/NcSettingsSection/index.mjs +1 -1
  236. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  237. package/dist/components/NcTextArea/index.mjs +1 -1
  238. package/dist/components/NcTextField/index.mjs +1 -1
  239. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  240. package/dist/components/NcUserBubble/index.mjs +1 -1
  241. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  242. package/dist/{components/NcFormBoxCopyButton → composables}/useCopy.d.ts +2 -0
  243. package/dist/composables/useFormatDateTime/index.mjs +1 -1
  244. package/dist/functions/reference/index.mjs +1 -1
  245. package/dist/functions/usernameToColor/index.mjs +1 -1
  246. package/dist/index.mjs +63 -63
  247. package/dist/mixins/userStatus.d.ts +8 -0
  248. package/dist/utils/appName.d.ts +5 -0
  249. package/dist/utils/utils.d.ts +10 -0
  250. package/package.json +12 -12
  251. package/dist/chunks/NcActions-QtUC1sD3.mjs.map +0 -1
  252. package/dist/chunks/NcAppContent-DW_SpXeR.mjs.map +0 -1
  253. package/dist/chunks/NcAppNavigation-DrlEs9WS.mjs.map +0 -1
  254. package/dist/chunks/NcAppNavigationItem-DH7wxFRY.mjs.map +0 -1
  255. package/dist/chunks/NcAppNavigationSearch-BWx-LXJj.mjs.map +0 -1
  256. package/dist/chunks/NcAppSettingsDialog-B7AG3mEJ.mjs.map +0 -1
  257. package/dist/chunks/NcAppSidebar-BZh0lWlQ.mjs.map +0 -1
  258. package/dist/chunks/NcAvatar-uKR5Re43.mjs.map +0 -1
  259. package/dist/chunks/NcButton-DkC5k3Lb.mjs.map +0 -1
  260. package/dist/chunks/NcChip-DH4rTzjt.mjs.map +0 -1
  261. package/dist/chunks/NcDashboardWidget-BxIt1qRx.mjs.map +0 -1
  262. package/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DfPML_k7.mjs.map +0 -1
  263. package/dist/chunks/NcIconSvgWrapper-5AA93z-F.mjs.map +0 -1
  264. package/dist/chunks/NcInputField-DwkKsbxv.mjs.map +0 -1
  265. package/dist/chunks/NcListItem-BLSWE2Hb.mjs.map +0 -1
  266. package/dist/chunks/NcListItemIcon-BXVk-irh.mjs.map +0 -1
  267. package/dist/chunks/NcNoteCard-Dw222p4P.mjs.map +0 -1
  268. package/dist/chunks/NcPasswordField-BkVdu9LI.mjs.map +0 -1
  269. package/dist/chunks/NcRelatedResourcesPanel-DP7W80M0.mjs.map +0 -1
  270. package/dist/chunks/NcRichText-PvndLTtG.mjs.map +0 -1
  271. package/dist/chunks/NcTextArea-CBx0eeEG.mjs.map +0 -1
  272. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-cbNqV44E.mjs.map +0 -1
  273. package/dist/chunks/_l10n--WxGDYem.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, mergeModels, useModel, useTemplateRef, computed, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, renderSlot } from "vue";
2
- import { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from "./mdi-8kZvl9vo.mjs";
3
- import { r as register, a as t } from "./_l10n--WxGDYem.mjs";
4
- import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-5AA93z-F.mjs";
5
- import { N as NcInputField } from "./NcInputField-DwkKsbxv.mjs";
2
+ import { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from "./mdi-HQ-WBPmL.mjs";
3
+ import { r as register, a as t } from "./_l10n-CWKr1fUH.mjs";
4
+ import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-BvLanNaW.mjs";
5
+ import { N as NcInputField } from "./NcInputField-z8wpYKt2.mjs";
6
6
  register();
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "NcTextField",
@@ -86,4 +86,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
86
86
  export {
87
87
  _sfc_main as _
88
88
  };
89
- //# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-cbNqV44E.mjs.map
89
+ //# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs","sources":["../../src/components/NcTextField/NcTextField.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\nSee [NcInputField](#/Components/NcFields?id=ncinputfield) for a list of all available props.\n\nGeneral purpose text field component.\nIt is recommended to not only provide a placeholder, but also a label.\nThe label should describe what input is expected and the placehold what format the input should have.\n\nNote: the inner html `input` element inherits all the attributes from the\nNcTextField component so you can add things like `autocomplete`, `maxlength`\nand `minlength`.\n\n```\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcTextField v-model=\"text1\"\n\t\t\tlabel=\"Leading icon and clear trailing button\"\n\t\t\ttrailing-button-icon=\"close\"\n\t\t\t:show-trailing-button=\"text1 !== ''\"\n\t\t\t@trailing-button-click=\"clearText\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</template>\n\t\t</NcTextField>\n\t\t<NcTextField v-model=\"text4\"\n\t\t\tlabel=\"Internal label\"\n\t\t\tplaceholder=\"That can be used together with placeholder\"\n\t\t\ttrailing-button-icon=\"close\"\n\t\t\t:show-trailing-button=\"text4 !== ''\"\n\t\t\t@trailing-button-click=\"clearText\">\n\t\t\t<template #icon>\n\t\t\t\t<IconLockOutline :size=\"20\" />\n\t\t\t</template>\n\t\t</NcTextField>\n\t\t<NcTextField v-model=\"text2\"\n\t\t\tlabel=\"With helper text\"\n\t\t\thelper-text=\"This is an optional message to show e.g. validation errors.\"\n\t\t\t@trailing-button-click=\"clearText\">\n\t\t</NcTextField>\n\t\t<NcTextField v-model=\"text2\"\n\t\t\tlabel=\"Success state\"\n\t\t\tplaceholder=\"Placeholders are possible\"\n\t\t\t:success=\"true\"\n\t\t\t@trailing-button-click=\"clearText\">\n\t\t</NcTextField>\n\t\t<NcTextField v-model=\"text3\"\n\t\t\tlabel=\"Error state\"\n\t\t\tplaceholder=\"Enter something valid\"\n\t\t\t:error=\"true\"\n\t\t\t@trailing-button-click=\"clearText\">\n\t\t</NcTextField>\n\t\t<NcTextField :model-value=\"\"\n\t\t\tlabel=\"Disabled\"\n\t\t\t:disabled=\"true\" />\n\t\t<NcTextField :model-value=\"\"\n\t\t\tlabel=\"Disabled + Success\"\n\t\t\t:success=\"true\"\n\t\t\t:disabled=\"true\" />\n\t\t<div class=\"external-label\">\n\t\t\t<label for=\"textField\">External label</label>\n\t\t\t<NcTextField v-model=\"text5\"\n\t\t\t\tid=\"textField\"\n\t\t\t\t:label-outside=\"true\"\n\t\t\t\tplaceholder=\"Input with external label\"\n\t\t\t\t@trailing-button-click=\"clearText\" />\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport Magnify from 'vue-material-design-icons/Magnify'\nimport IconLockOutline from 'vue-material-design-icons/LockOutline'\nimport Close from 'vue-material-design-icons/Close'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttext1: '',\n\t\t\ttext2: '',\n\t\t\ttext3: '',\n\t\t\ttext4: '',\n\t\t\ttext5: '',\n\t\t}\n\t},\n\n\tcomponents: {\n\t\tMagnify,\n\t\tIconLockOutline,\n\t\tClose,\n\t},\n\n\tmethods: {\n\t\tclearText() {\n\t\t\tthis.text1 = ''\n\t\t\tthis.text3 = ''\n\t\t}\n\t}\n}\n</script>\n<style lang=\"scss\" scoped>\n.wrapper {\n\tdisplay: flex;\n\tgap: 4px;\n\talign-items: flex-end;\n\tflex-wrap: wrap;\n}\n\n.external-label {\n\tdisplay: flex;\n\tgap: 14px;\n\twidth: 100%;\n\tmargin-top: 1rem;\n}\n\n.external-label label {\n\tpadding-top: 7px;\n\twhite-space: nowrap;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<NcInputField\n\t\tv-bind=\"propsToForward\"\n\t\tref=\"inputField\"\n\t\tv-model=\"modelValue\">\n\t\t<template v-if=\"!!$slots.icon\" #icon>\n\t\t\t<slot name=\"icon\" />\n\t\t</template>\n\n\t\t<!-- Trailing icon slot, except for search type input as the browser already adds a trailing close icon -->\n\t\t<template v-if=\"type !== 'search'\" #trailing-button-icon>\n\t\t\t<NcIconSvgWrapper v-if=\"trailingButtonIcon === 'arrowEnd'\" directional :path=\"mdiArrowRight\" />\n\t\t\t<NcIconSvgWrapper v-else :path=\"trailingButtonIcon === 'undo' ? mdiUndo : mdiClose\" />\n\t\t</template>\n\t</NcInputField>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\nimport type { NcInputFieldProps } from '../NcInputField/index.ts'\n\nimport { mdiArrowRight, mdiClose, mdiUndo } from '@mdi/js'\nimport { computed, useTemplateRef } from 'vue'\nimport { t } from '../../l10n.ts'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/index.ts'\nimport NcInputField from '../NcInputField/index.ts'\n\n/**\n * The value of the input field\n * If type is 'number' and a number is passed as value than the type of `update:value` will also be 'number'\n */\nconst modelValue = defineModel<string | number>('modelValue', { default: '' })\n\nconst props = withDefaults(defineProps<NcInputFieldProps & {\n\t/**\n\t * Specifies which material design icon should be used for the trailing button.\n\t */\n\ttrailingButtonIcon?: 'arrowEnd' | 'close' | 'undo'\n\n\t/**\n\t * The `aria-label` to set on the trailing button\n\t * If no explicit value is set it will default to the one matching the `trailingButtonIcon`:\n\t * - 'Clear text'\n\t * - 'Save changes'\n\t * - 'Undo changes'\n\t */\n\ttrailingButtonLabel?: string\n}>(), {\n\ttrailingButtonIcon: 'close',\n\ttrailingButtonLabel: undefined,\n})\n\ndefineSlots<{\n\t/**\n\t * Leading icon, set the size to 20.\n\t */\n\ticon?: Slot\n}>()\n\ndefineExpose({\n\tfocus,\n\tselect,\n})\n\nconst inputFieldInstance = useTemplateRef('inputField')\n\nconst defaultTrailingButtonLabels = {\n\tarrowEnd: t('Save changes'),\n\tclose: t('Clear text'),\n\tundo: t('Undo changes'),\n}\n\nconst NcInputFieldPropNames = new Set(Object.keys(NcInputField.props))\nconst propsToForward = computed<NcInputFieldProps>(() => {\n\tconst sharedProps = Object.fromEntries(Object.entries(props)\n\t\t.filter(([key]) => NcInputFieldPropNames.has(key)))\n\n\tsharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon]\n\treturn sharedProps satisfies NcInputFieldProps\n})\n\n/**\n * Focus the input element\n *\n * @param options - Focus options\n * @public\n */\nfunction focus(options?: FocusOptions) {\n\tinputFieldInstance.value!.focus(options)\n}\n\n/**\n * Select all the text in the input\n *\n * @public\n */\nfunction select() {\n\tinputFieldInstance.value!.select()\n}\n</script>\n"],"names":["_useModel","_createBlock","_unref","_mergeProps","$slots","_renderSlot","type","trailingButtonIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6JA,UAAM,aAAaA,SAA4B,SAAC,YAA6B;AAE7E,UAAM,QAAQ;AA0Bd,aAAa;AAAA,MACZ;AAAA,MACA;AAAA,IAAA,CACA;AAED,UAAM,qBAAqB,eAAe,YAAY;AAEtD,UAAM,8BAA8B;AAAA,MACnC,UAAU,EAAE,cAAc;AAAA,MAC1B,OAAO,EAAE,YAAY;AAAA,MACrB,MAAM,EAAE,cAAc;AAAA,IAAA;AAGvB,UAAM,wBAAwB,IAAI,IAAI,OAAO,KAAK,aAAa,KAAK,CAAC;AACrE,UAAM,iBAAiB,SAA4B,MAAM;AACxD,YAAM,cAAc,OAAO,YAAY,OAAO,QAAQ,KAAK,EACzD,OAAO,CAAC,CAAC,GAAG,MAAM,sBAAsB,IAAI,GAAG,CAAC,CAAC;AAEnD,kBAAY,wBAAwB,4BAA4B,MAAM,kBAAkB;AACxF,aAAO;AAAA,IACR,CAAC;AAQD,aAAS,MAAM,SAAwB;AACtC,yBAAmB,MAAO,MAAM,OAAO;AAAA,IACxC;AAOA,aAAS,SAAS;AACjB,yBAAmB,MAAO,OAAA;AAAA,IAC3B;;0BAjGCC,YAaeC,MAAA,YAAA,GAbfC,WAae,eAAA,OAZQ;AAAA,QACtB,KAAI;AAAA,oBACK,WAAA;AAAA,qEAAA,WAAU,QAAA;AAAA,MAAA;QACDC,CAAAA,CAAAA,KAAAA,OAAO;gBAAO;AAAA,sBAC/B,MAAoB;AAAA,YAApBC,WAAoB,KAAA,QAAA,MAAA;AAAA,UAAA;;;QAILC,KAAAA,SAAI;gBAAgB;AAAA,sBACnC,MAA+F;AAAA,YAAvEC,KAAAA,uBAAkB,2BAA1CN,YAA+FC,MAAA,gBAAA,GAAA;AAAA;cAApC,aAAA;AAAA,cAAa,MAAMA,MAAA,aAAA;AAAA,YAAA,uCAC9ED,YAAsFC,MAAA,gBAAA,GAAA;AAAA;cAA5D,MAAMK,KAAAA,uBAAkB,SAAcL,MAAA,OAAA,IAAUA,MAAA,QAAA;AAAA,YAAA;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, mergeModels, useModel, computed, createBlock, openBlock, unref } from "vue";
2
- import { N as NcSelect } from "./NcSelect-DekSQwK1.mjs";
3
- import { r as register, a as t } from "./_l10n--WxGDYem.mjs";
2
+ import { N as NcSelect } from "./NcSelect-Ba00b95n.mjs";
3
+ import { r as register, a as t } from "./_l10n-CWKr1fUH.mjs";
4
4
  import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
5
5
  register();
6
6
  function formatTimezoneId(timezoneId) {
@@ -63,4 +63,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
63
63
  export {
64
64
  _sfc_main as _
65
65
  };
66
- //# sourceMappingURL=NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dr3oElNm.mjs.map
66
+ //# sourceMappingURL=NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dr3oElNm.mjs","sources":["../../src/components/NcTimezonePicker/timezoneUtils.ts","../../src/components/NcTimezonePicker/NcTimezonePicker.vue"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Convert timezone ID in IANA format (e.g. \"Europe/Berlin\") to a more human-readable format\n *\n * @param timezoneId - IANA timezone ID (e.g. \"America/Argentina/San_Juan\")\n * @return Formatted timezone string (e.g. \"Argentina - San Juan\")\n */\nfunction formatTimezoneId(timezoneId: string) {\n\treturn timezoneId\n\t\t// 'America/Argentina/San_Juan' -> 'Argentina/San_Juan'\n\t\t.slice(timezoneId.indexOf('/') + 1)\n\t\t// 'Argentina/San_Juan' -> 'Argentina - San_Juan'\n\t\t.replaceAll('/', ' - ')\n\t\t// 'San_Juan' -> 'San Juan'\n\t\t.replaceAll('_', ' ')\n}\n\n/**\n * Get a list of supported IANA timezone IDs (e.g. \"Europe/Berlin\") with human-readable labels,\n * excluding Etc/* administrative zones not used by users (see: https://en.wikipedia.org/wiki/Tz_database#Areas)\n */\nexport function getTimezones() {\n\treturn Intl.supportedValuesOf('timeZone')\n\t\t.filter((tz) => !tz.startsWith('Etc/'))\n\t\t.map((timezoneId) => ({\n\t\t\ttimezoneId,\n\t\t\tlabel: formatTimezoneId(timezoneId),\n\t\t}))\n\t\t.sort((a, b) => a.timezoneId.localeCompare(b.timezoneId))\n}\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Example\n```vue\n<template>\n\t<span>\n\t\t<NcTimezonePicker v-model=\"tz\" />\n\t\t{{ tz }}\n\t</span>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttz: 'Europe/Berlin',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcSelect from '../NcSelect/NcSelect.vue'\nimport { t } from '../../l10n.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { getTimezones } from './timezoneUtils.ts'\n\nexport type ITimezone = {\n\t/**\n\t * Time zone ID in IANA format, e.g. \"Europe/Berlin\", or \"floating\" for a time independent of timezone, or a custom timezone ID\n\t */\n\ttimezoneId: string\n\t/**\n\t * Localized label of the timezone, e.g. \"Central European Standard Time\"\n\t */\n\tlabel: string\n\t/**\n\t * Continent the timezone if any, e.g. \"Europe\" (not localized)\n\t */\n\tcontinent: string\n}\n\n/**\n * The selected timezone.\n * Use v-model for two-way binding.\n * The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n */\nconst modelValue = defineModel<string>({ default: 'floating' })\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data\n\t */\n\tadditionalTimezones?: ITimezone[]\n\n\t/**\n\t * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`\n\t */\n\tuid?: string\n}>(), {\n\tadditionalTimezones: () => [],\n\tuid: createElementId(),\n})\n\nconst formattedAdditionalTimezones = computed(() => {\n\treturn props.additionalTimezones.map(({ timezoneId, label }) => ({\n\t\ttimezoneId,\n\t\tlabel,\n\t}))\n})\n\nconst options = computed(() => {\n\tconst timezones = getTimezones()\n\ttimezones.unshift(...formattedAdditionalTimezones.value)\n\treturn timezones\n})\n\n/**\n * NcSelect's filterBy prop to search timezone by any option property\n *\n * @param option - The timezone option\n * @param label - The label of the timezone\n * @param search - The search string\n */\nfunction filterBy(option: ITimezone, label: string, search: string): boolean {\n\tconst terms = search.trim().split(/\\s+/)\n\tconst values = Object.values(option)\n\treturn terms.every((term) => {\n\t\treturn values.some((value) => value.toLowerCase().includes(term.toLowerCase()))\n\t})\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tv-model=\"modelValue\"\n\t\t:aria-label-combobox=\"t('Search for timezone')\"\n\t\t:clearable=\"false\"\n\t\t:filter-by\n\t\t:multiple=\"false\"\n\t\t:options\n\t\t:placeholder=\"t('Type to search time zone')\"\n\t\t:uid\n\t\t:reduce=\"(option) => option.timezoneId\"\n\t\tlabel=\"label\" />\n</template>\n"],"names":["_useModel","_createBlock","_unref","uid"],"mappings":";;;;;AAWA,SAAS,iBAAiB,YAAoB;AAC7C,SAAO,WAEL,MAAM,WAAW,QAAQ,GAAG,IAAI,CAAC,EAEjC,WAAW,KAAK,KAAK,EAErB,WAAW,KAAK,GAAG;AACtB;AAMO,SAAS,eAAe;AAC9B,SAAO,KAAK,kBAAkB,UAAU,EACtC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,EACrC,IAAI,CAAC,gBAAgB;AAAA,IACrB;AAAA,IACA,OAAO,iBAAiB,UAAU;AAAA,EAAA,EACjC,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,cAAc,EAAE,UAAU,CAAC;AAC1D;;;;;;;;;;;;ACoBA,UAAM,aAAaA,SAAmB,SAAA,YAAwB;AAE9D,UAAM,QAAQ;AAed,UAAM,+BAA+B,SAAS,MAAM;AACnD,aAAO,MAAM,oBAAoB,IAAI,CAAC,EAAE,YAAY,aAAa;AAAA,QAChE;AAAA,QACA;AAAA,MAAA,EACC;AAAA,IACH,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC9B,YAAM,YAAY,aAAA;AAClB,gBAAU,QAAQ,GAAG,6BAA6B,KAAK;AACvD,aAAO;AAAA,IACR,CAAC;AASD,aAAS,SAAS,QAAmB,OAAe,QAAyB;AAC5E,YAAM,QAAQ,OAAO,KAAA,EAAO,MAAM,KAAK;AACvC,YAAM,SAAS,OAAO,OAAO,MAAM;AACnC,aAAO,MAAM,MAAM,CAAC,SAAS;AAC5B,eAAO,OAAO,KAAK,CAAC,UAAU,MAAM,YAAA,EAAc,SAAS,KAAK,YAAA,CAAa,CAAC;AAAA,MAC/E,CAAC;AAAA,IACF;;0BAICC,YAUiB,UAAA;AAAA,oBATP,WAAA;AAAA,qEAAA,WAAU,QAAA;AAAA,QAClB,uBAAqBC,MAAA,CAAA,EAAC,qBAAA;AAAA,QACtB,WAAW;AAAA,QACX,aAAA;AAAA,QACA,UAAU;AAAA,QACV,SAAA,QAAA;AAAA,QACA,aAAaA,MAAA,CAAA,EAAC,0BAAA;AAAA,QACd,KAAAC,KAAAA;AAAAA,QACA,QAAM,CAAG,WAAW,OAAO;AAAA,QAC5B,OAAM;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs","sources":["../../src/components/NcTimezonePicker/timezoneUtils.ts","../../src/components/NcTimezonePicker/NcTimezonePicker.vue"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Convert timezone ID in IANA format (e.g. \"Europe/Berlin\") to a more human-readable format\n *\n * @param timezoneId - IANA timezone ID (e.g. \"America/Argentina/San_Juan\")\n * @return Formatted timezone string (e.g. \"Argentina - San Juan\")\n */\nfunction formatTimezoneId(timezoneId: string) {\n\treturn timezoneId\n\t\t// 'America/Argentina/San_Juan' -> 'Argentina/San_Juan'\n\t\t.slice(timezoneId.indexOf('/') + 1)\n\t\t// 'Argentina/San_Juan' -> 'Argentina - San_Juan'\n\t\t.replaceAll('/', ' - ')\n\t\t// 'San_Juan' -> 'San Juan'\n\t\t.replaceAll('_', ' ')\n}\n\n/**\n * Get a list of supported IANA timezone IDs (e.g. \"Europe/Berlin\") with human-readable labels,\n * excluding Etc/* administrative zones not used by users (see: https://en.wikipedia.org/wiki/Tz_database#Areas)\n */\nexport function getTimezones() {\n\treturn Intl.supportedValuesOf('timeZone')\n\t\t.filter((tz) => !tz.startsWith('Etc/'))\n\t\t.map((timezoneId) => ({\n\t\t\ttimezoneId,\n\t\t\tlabel: formatTimezoneId(timezoneId),\n\t\t}))\n\t\t.sort((a, b) => a.timezoneId.localeCompare(b.timezoneId))\n}\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Example\n```vue\n<template>\n\t<span>\n\t\t<NcTimezonePicker v-model=\"tz\" />\n\t\t{{ tz }}\n\t</span>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttz: 'Europe/Berlin',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport NcSelect from '../NcSelect/NcSelect.vue'\nimport { t } from '../../l10n.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { getTimezones } from './timezoneUtils.ts'\n\nexport type ITimezone = {\n\t/**\n\t * Time zone ID in IANA format, e.g. \"Europe/Berlin\", or \"floating\" for a time independent of timezone, or a custom timezone ID\n\t */\n\ttimezoneId: string\n\t/**\n\t * Localized label of the timezone, e.g. \"Central European Standard Time\"\n\t */\n\tlabel: string\n\t/**\n\t * Continent the timezone if any, e.g. \"Europe\" (not localized)\n\t */\n\tcontinent: string\n}\n\n/**\n * The selected timezone.\n * Use v-model for two-way binding.\n * The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n */\nconst modelValue = defineModel<string>({ default: 'floating' })\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data\n\t */\n\tadditionalTimezones?: ITimezone[]\n\n\t/**\n\t * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`\n\t */\n\tuid?: string\n}>(), {\n\tadditionalTimezones: () => [],\n\tuid: createElementId(),\n})\n\nconst formattedAdditionalTimezones = computed(() => {\n\treturn props.additionalTimezones.map(({ timezoneId, label }) => ({\n\t\ttimezoneId,\n\t\tlabel,\n\t}))\n})\n\nconst options = computed(() => {\n\tconst timezones = getTimezones()\n\ttimezones.unshift(...formattedAdditionalTimezones.value)\n\treturn timezones\n})\n\n/**\n * NcSelect's filterBy prop to search timezone by any option property\n *\n * @param option - The timezone option\n * @param label - The label of the timezone\n * @param search - The search string\n */\nfunction filterBy(option: ITimezone, label: string, search: string): boolean {\n\tconst terms = search.trim().split(/\\s+/)\n\tconst values = Object.values(option)\n\treturn terms.every((term) => {\n\t\treturn values.some((value) => value.toLowerCase().includes(term.toLowerCase()))\n\t})\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tv-model=\"modelValue\"\n\t\t:aria-label-combobox=\"t('Search for timezone')\"\n\t\t:clearable=\"false\"\n\t\t:filter-by\n\t\t:multiple=\"false\"\n\t\t:options\n\t\t:placeholder=\"t('Type to search time zone')\"\n\t\t:uid\n\t\t:reduce=\"(option) => option.timezoneId\"\n\t\tlabel=\"label\" />\n</template>\n"],"names":["_useModel","_createBlock","_unref","uid"],"mappings":";;;;;AAWA,SAAS,iBAAiB,YAAoB;AAC7C,SAAO,WAEL,MAAM,WAAW,QAAQ,GAAG,IAAI,CAAC,EAEjC,WAAW,KAAK,KAAK,EAErB,WAAW,KAAK,GAAG;AACtB;AAMO,SAAS,eAAe;AAC9B,SAAO,KAAK,kBAAkB,UAAU,EACtC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,EACrC,IAAI,CAAC,gBAAgB;AAAA,IACrB;AAAA,IACA,OAAO,iBAAiB,UAAU;AAAA,EAAA,EACjC,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,cAAc,EAAE,UAAU,CAAC;AAC1D;;;;;;;;;;;;ACoBA,UAAM,aAAaA,SAAmB,SAAA,YAAwB;AAE9D,UAAM,QAAQ;AAed,UAAM,+BAA+B,SAAS,MAAM;AACnD,aAAO,MAAM,oBAAoB,IAAI,CAAC,EAAE,YAAY,aAAa;AAAA,QAChE;AAAA,QACA;AAAA,MAAA,EACC;AAAA,IACH,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC9B,YAAM,YAAY,aAAA;AAClB,gBAAU,QAAQ,GAAG,6BAA6B,KAAK;AACvD,aAAO;AAAA,IACR,CAAC;AASD,aAAS,SAAS,QAAmB,OAAe,QAAyB;AAC5E,YAAM,QAAQ,OAAO,KAAA,EAAO,MAAM,KAAK;AACvC,YAAM,SAAS,OAAO,OAAO,MAAM;AACnC,aAAO,MAAM,MAAM,CAAC,SAAS;AAC5B,eAAO,OAAO,KAAK,CAAC,UAAU,MAAM,YAAA,EAAc,SAAS,KAAK,YAAA,CAAa,CAAC;AAAA,MAC/E,CAAC;AAAA,IACF;;0BAICC,YAUiB,UAAA;AAAA,oBATP,WAAA;AAAA,qEAAA,WAAU,QAAA;AAAA,QAClB,uBAAqBC,MAAA,CAAA,EAAC,qBAAA;AAAA,QACtB,WAAW;AAAA,QACX,aAAA;AAAA,QACA,UAAU;AAAA,QACV,SAAA,QAAA;AAAA,QACA,aAAaA,MAAA,CAAA,EAAC,0BAAA;AAAA,QACd,KAAAC,KAAAA;AAAAA,QACA,QAAM,CAAG,WAAW,OAAO;AAAA,QAC5B,OAAM;AAAA,MAAA;;;;"}
@@ -2,7 +2,7 @@ import '../assets/NcUserBubble-ChgvvPPf.css';
2
2
  import { createElementBlock, openBlock, renderSlot, defineComponent, mergeModels, useModel, computed, warn, watch, createBlock, resolveDynamicComponent, unref, withCtx, mergeProps, createVNode, createElementVNode, createCommentVNode, normalizeStyle, toDisplayString } from "vue";
3
3
  import { RouterLink } from "vue-router";
4
4
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
5
- import { N as NcAvatar } from "./NcAvatar-uKR5Re43.mjs";
5
+ import { N as NcAvatar } from "./NcAvatar-Dxm05R6e.mjs";
6
6
  import { N as NcPopover } from "./NcPopover-C-MTaPCs.mjs";
7
7
  const _sfc_main$1 = {};
8
8
  function _sfc_render(_ctx, _cache) {
@@ -133,4 +133,4 @@ const NcUserBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data
133
133
  export {
134
134
  NcUserBubble as N
135
135
  };
136
- //# sourceMappingURL=NcUserBubble-2CLRpxdk.mjs.map
136
+ //# sourceMappingURL=NcUserBubble-DEW575GR.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcUserBubble-2CLRpxdk.mjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:size=\"34\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<NcButton aria-label=\"Remove user\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click=\"alert\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiClose\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nimport { mdiClose } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiClose,\n\t\t}\n\t},\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n```\n\n</docs>\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\nimport type { RouteLocation } from 'vue-router'\n\nimport { computed, warn, watch } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\n\n/**\n * Default popover state. Requires the UserBubble\n * to have some content to render inside the popover\n */\nconst isOpen = defineModel<boolean>('open')\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Override generated avatar, can be an url or an icon class\n\t */\n\tavatarImage?: string\n\n\t/**\n\t * Provide the user id if this is a user\n\t */\n\tuser?: string\n\n\t/**\n\t * Displayed label\n\t */\n\tdisplayName?: string\n\n\t/**\n\t * Whether or not to display the user-status\n\t */\n\tshowUserStatus?: boolean\n\n\t/**\n\t * Define the whole bubble as a link\n\t */\n\turl?: string\n\n\t/**\n\t * Use bubble as a router-link for in-app navigation\n\t */\n\tto?: RouteLocation\n\n\t/**\n\t * Use the primary colour\n\t */\n\tprimary?: boolean\n\n\t/**\n\t * This is the height of the component\n\t */\n\tsize?: number\n\n\t/**\n\t * This is the margin of the avatar (size - margin = avatar size)\n\t */\n\tmargin?: number\n}>(), {\n\tavatarImage: undefined,\n\tdisplayName: undefined,\n\tuser: undefined,\n\turl: undefined,\n\tto: undefined,\n\tmargin: 2,\n\tsize: 20,\n})\n\nconst emit = defineEmits<{\n\t/**\n\t * The mouse click event\n\t */\n\tclick: [event: MouseEvent]\n}>()\n\ndefineSlots<{\n\t/**\n\t * Main Popover content on userbubble hover/focus\n\t */\n\tdefault?: Slot\n\n\t/**\n\t * Optional slot just after the name\n\t */\n\tname?: Slot\n}>()\n\n/**\n * Is the provided avatar url valid or not\n */\nconst isAvatarUrl = computed(() => {\n\tif (!props.avatarImage) {\n\t\treturn false\n\t}\n\n\ttry {\n\t\tconst url = new URL(props.avatarImage)\n\t\treturn !!url\n\t} catch {\n\t\treturn false\n\t}\n})\n\n/**\n * Do we have a custom avatar or not\n */\nconst isCustomAvatar = computed(() => !!props.avatarImage)\n\nconst avatarStyle = computed(() => ({\n\tmarginInlineStart: `${props.margin}px`,\n}))\n\n/**\n * Is the URL prop set\n */\nconst hasUrl = computed(() => {\n\tif (!props.url || props.url.trim() === '') {\n\t\treturn false\n\t}\n\ttry {\n\t\tconst url = new URL(props.url, props.url?.startsWith?.('/') ? window.location.href : undefined)\n\t\treturn !!url\n\t} catch {\n\t\twarn('[NcUserBubble] Invalid URL passed', { url: props.url })\n\t\treturn false\n\t}\n})\n\n/**\n * href attribute to pass to content container\n */\nconst href = computed(() => hasUrl.value ? props.url : undefined)\n\nconst contentComponent = computed(() => {\n\tif (hasUrl.value) {\n\t\treturn 'a'\n\t} else if (props.to) {\n\t\treturn RouterLink\n\t} else {\n\t\treturn 'div'\n\t}\n})\n\nconst contentStyle = computed(() => ({\n\theight: `${props.size}px`,\n\tlineHeight: `${props.size}px`,\n\tborderRadius: `${props.size / 2}px`,\n}))\n\nwatch([() => props.displayName, () => props.user], () => {\n\tif (!props.displayName && !props.user) {\n\t\twarn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t}\n})\n</script>\n\n<template>\n\t<component\n\t\t:is=\"!!$slots.default ? NcPopover : NcUserBubbleDiv\"\n\t\tv-model:shown=\"isOpen\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\ttrigger=\"hover focus\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component\n\t\t\t\t:is=\"contentComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\t:style=\"contentStyle\"\n\t\t\t\t:to\n\t\t\t\t:href\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"emit('click', $event)\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar\n\t\t\t\t\t:url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"avatarStyle\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:hide-status=\"!showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<span v-if=\"!!$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<slot />\n\t</component>\n</template>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius end padding\n\t\t\tpadding-inline-end: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding-block: 0;\n\t\tpadding-inline: 4px 0;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_renderSlot","_useModel","_openBlock","_createBlock","_resolveDynamicComponent","$slots","_unref","_withCtx","_mergeProps","primary","to","_createVNode","avatarImage","user","displayName","size","margin","showUserStatus","_createElementVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"NcUserBubble-DEW575GR.mjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:size=\"34\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<NcButton aria-label=\"Remove user\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click=\"alert\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiClose\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nimport { mdiClose } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiClose,\n\t\t}\n\t},\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n```\n\n</docs>\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\nimport type { RouteLocation } from 'vue-router'\n\nimport { computed, warn, watch } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\n\n/**\n * Default popover state. Requires the UserBubble\n * to have some content to render inside the popover\n */\nconst isOpen = defineModel<boolean>('open')\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Override generated avatar, can be an url or an icon class\n\t */\n\tavatarImage?: string\n\n\t/**\n\t * Provide the user id if this is a user\n\t */\n\tuser?: string\n\n\t/**\n\t * Displayed label\n\t */\n\tdisplayName?: string\n\n\t/**\n\t * Whether or not to display the user-status\n\t */\n\tshowUserStatus?: boolean\n\n\t/**\n\t * Define the whole bubble as a link\n\t */\n\turl?: string\n\n\t/**\n\t * Use bubble as a router-link for in-app navigation\n\t */\n\tto?: RouteLocation\n\n\t/**\n\t * Use the primary colour\n\t */\n\tprimary?: boolean\n\n\t/**\n\t * This is the height of the component\n\t */\n\tsize?: number\n\n\t/**\n\t * This is the margin of the avatar (size - margin = avatar size)\n\t */\n\tmargin?: number\n}>(), {\n\tavatarImage: undefined,\n\tdisplayName: undefined,\n\tuser: undefined,\n\turl: undefined,\n\tto: undefined,\n\tmargin: 2,\n\tsize: 20,\n})\n\nconst emit = defineEmits<{\n\t/**\n\t * The mouse click event\n\t */\n\tclick: [event: MouseEvent]\n}>()\n\ndefineSlots<{\n\t/**\n\t * Main Popover content on userbubble hover/focus\n\t */\n\tdefault?: Slot\n\n\t/**\n\t * Optional slot just after the name\n\t */\n\tname?: Slot\n}>()\n\n/**\n * Is the provided avatar url valid or not\n */\nconst isAvatarUrl = computed(() => {\n\tif (!props.avatarImage) {\n\t\treturn false\n\t}\n\n\ttry {\n\t\tconst url = new URL(props.avatarImage)\n\t\treturn !!url\n\t} catch {\n\t\treturn false\n\t}\n})\n\n/**\n * Do we have a custom avatar or not\n */\nconst isCustomAvatar = computed(() => !!props.avatarImage)\n\nconst avatarStyle = computed(() => ({\n\tmarginInlineStart: `${props.margin}px`,\n}))\n\n/**\n * Is the URL prop set\n */\nconst hasUrl = computed(() => {\n\tif (!props.url || props.url.trim() === '') {\n\t\treturn false\n\t}\n\ttry {\n\t\tconst url = new URL(props.url, props.url?.startsWith?.('/') ? window.location.href : undefined)\n\t\treturn !!url\n\t} catch {\n\t\twarn('[NcUserBubble] Invalid URL passed', { url: props.url })\n\t\treturn false\n\t}\n})\n\n/**\n * href attribute to pass to content container\n */\nconst href = computed(() => hasUrl.value ? props.url : undefined)\n\nconst contentComponent = computed(() => {\n\tif (hasUrl.value) {\n\t\treturn 'a'\n\t} else if (props.to) {\n\t\treturn RouterLink\n\t} else {\n\t\treturn 'div'\n\t}\n})\n\nconst contentStyle = computed(() => ({\n\theight: `${props.size}px`,\n\tlineHeight: `${props.size}px`,\n\tborderRadius: `${props.size / 2}px`,\n}))\n\nwatch([() => props.displayName, () => props.user], () => {\n\tif (!props.displayName && !props.user) {\n\t\twarn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t}\n})\n</script>\n\n<template>\n\t<component\n\t\t:is=\"!!$slots.default ? NcPopover : NcUserBubbleDiv\"\n\t\tv-model:shown=\"isOpen\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\ttrigger=\"hover focus\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component\n\t\t\t\t:is=\"contentComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\t:style=\"contentStyle\"\n\t\t\t\t:to\n\t\t\t\t:href\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"emit('click', $event)\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar\n\t\t\t\t\t:url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"avatarStyle\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:hide-status=\"!showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<span v-if=\"!!$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<slot />\n\t</component>\n</template>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius end padding\n\t\t\tpadding-inline-end: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding-block: 0;\n\t\tpadding-inline: 4px 0;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_renderSlot","_useModel","_openBlock","_createBlock","_resolveDynamicComponent","$slots","_unref","_withCtx","_mergeProps","primary","to","_createVNode","avatarImage","user","displayName","size","margin","showUserStatus","_createElementVNode","_toDisplayString"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { defineComponent, mergeModels, useModel, computed, watch, createElementB
3
3
  import axios from "@nextcloud/axios";
4
4
  import { getCapabilities } from "@nextcloud/capabilities";
5
5
  import { generateOcsUrl } from "@nextcloud/router";
6
- import { r as register, z as t11, a as t } from "./_l10n--WxGDYem.mjs";
6
+ import { r as register, A as t11, a as t } from "./_l10n-CWKr1fUH.mjs";
7
7
  import { l as logger } from "./logger-D3RVzcfQ.mjs";
8
8
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
9
9
  const awaySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="0 -960 960 960" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="var(--user-status-color-away, var(--color-warning, #C88800))"\n d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/>\n</svg>\n';
@@ -86,4 +86,4 @@ export {
86
86
  NcUserStatusIcon as N,
87
87
  getUserStatusText as g
88
88
  };
89
- //# sourceMappingURL=NcUserStatusIcon-D6fygDFl.mjs.map
89
+ //# sourceMappingURL=NcUserStatusIcon-DHHqIgRK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcUserStatusIcon-D6fygDFl.mjs","sources":["../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-busy.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/assets/status-icons/user-status-online.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-away, var(--color-warning, #C88800))\\\"\\n\\t\\td=\\\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-online, var(--color-success, #2D7B41))\\\"\\n\\t\\td=\\\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.ts'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\n/**\n * Get the translated label for a given user status\n *\n * @param status - The user status\n */\nexport function getUserStatusText(status: Status): string {\n\tswitch (status) {\n\t\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\t\tcase 'busy': return t('busy')\n\t\tcase 'dnd': return t('do not disturb')\n\t\tcase 'online': return t('online')\n\t\tcase 'invisible': return t('invisible')\n\t\tcase 'offline': return t('offline')\n\t\tdefault: return status\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"flex\">\n\t\t<div class=\"grid\">\n\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t<span>Online</span>\n\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t<span>Away</span>\n\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t<span>Busy</span>\n\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t<span>Do not disturb</span>\n\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t<span>Invisible</span>\n\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t<span>Offline</span>\n\t\t</div>\n\n\t\t<NcThemeProvider dark>\n\t\t\t<div class=\"grid\">\n\t\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t\t<span>Online</span>\n\t\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t\t<span>Away</span>\n\t\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t\t<span>Busy</span>\n\t\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t\t<span>Do not disturb</span>\n\t\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t\t<span>Invisible</span>\n\t\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t\t<span>Offline</span>\n\t\t\t</div>\n\t\t</NcThemeProvider>\n\t</div>\n</template>\n\n<style>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 20px 1fr;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 4px;\n\twidth: fit-content;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n}\n</style>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { computed, watch } from 'vue'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport busySvg from '../../assets/status-icons/user-status-busy.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport { t } from '../../l10n.ts'\nimport { logger } from '../../utils/logger.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\n\n/**\n * The user preloaded user status.\n */\nconst status = defineModel<'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'>('status')\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Set the user id to fetch the status\n\t */\n\tuser?: string\n\n\t/**\n\t * Set the `aria-hidden` attribute\n\t */\n\tariaHidden?: boolean | 'true' | 'false'\n}>(), {\n\tuser: undefined,\n\tariaHidden: false,\n})\n\nconst isInvisible = computed(() => status.value && ['invisible', 'offline'].includes(status.value))\n\n/**\n * Aria label to set on the element (will be set when ariaHidden is not set)\n */\nconst ariaLabel = computed(() => (\n\tstatus.value && (!props.ariaHidden || props.ariaHidden === 'false')\n\t\t? t('User status: {status}', { status: getUserStatusText(status.value) })\n\t\t: undefined\n))\n\nwatch(() => props.user, async (user) => {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tif (!status.value && user && (getCapabilities() as any)?.user_status?.enabled) {\n\t\ttry {\n\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\tstatus.value = data.ocs?.data?.status\n\t\t} catch (error) {\n\t\t\tlogger.debug('Error while fetching user status', { error })\n\t\t}\n\t}\n}, { immediate: true })\n\nconst matchSvg = {\n\tonline: onlineSvg,\n\taway: awaySvg,\n\tbusy: busySvg,\n\tdnd: dndSvg,\n\tinvisible: invisibleSvg,\n\toffline: invisibleSvg,\n}\nconst activeSvg = computed(() => status.value && matchSvg[status.value])\n</script>\n\n<template>\n\t<span\n\t\tv-if=\"status\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': isInvisible,\n\t\t}\"\n\t\t:aria-hidden=\"!ariaLabel || undefined\"\n\t\t:aria-label\n\t\trole=\"img\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\t// Custom colors for the svg icons, to not rely on server variables\n\t--user-status-color-online: #2D7B41;\n\t--user-status-color-busy: #DB0606;\n\t--user-status-color-away: #C88800;\n\t--user-status-color-offline: #6B6B6B;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t:deep(svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n</style>\n"],"names":["_useModel","_createElementBlock"],"mappings":";;;;;;;AAAA,MAAA,UAAe;ACAf,MAAA,UAAe;ACAf,MAAA,SAAe;ACAf,MAAA,eAAe;ACAf,MAAA,YAAe;;;ACcR,SAAS,kBAAkB,QAAwB;AACzD,UAAQ,QAAA;AAAA,IACP,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA;AAAA,IAC5B,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAO,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAO,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAO,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAO,EAAE,SAAS;AAAA,IAClC;AAAS,aAAO;AAAA,EAAA;AAElB;;;;;;;;;;;;;AC8DA,UAAM,SAASA,SAAyE,SAAC,QAAQ;AAEjG,UAAM,QAAQ;AAed,UAAM,cAAc,SAAS,MAAM,OAAO,SAAS,CAAC,aAAa,SAAS,EAAE,SAAS,OAAO,KAAK,CAAC;AAKlG,UAAM,YAAY,SAAS,MAC1B,OAAO,UAAU,CAAC,MAAM,cAAc,MAAM,eAAe,WACxD,EAAE,yBAAyB,EAAE,QAAQ,kBAAkB,OAAO,KAAK,GAAG,IACtE,MACH;AAED,UAAM,MAAM,MAAM,MAAM,OAAO,SAAS;AAEvC,UAAI,CAAC,OAAO,SAAS,QAAS,gBAAA,GAA2B,aAAa,SAAS;AAC9E,YAAI;AACH,gBAAM,EAAE,SAAS,MAAM,MAAM,IAAI,eAAe,4CAA4C,EAAE,KAAA,CAAM,CAAC;AACrG,iBAAO,QAAQ,KAAK,KAAK,MAAM;AAAA,QAChC,SAAS,OAAO;AACf,iBAAO,MAAM,oCAAoC,EAAE,MAAA,CAAO;AAAA,QAC3D;AAAA,MACD;AAAA,IACD,GAAG,EAAE,WAAW,MAAM;AAEtB,UAAM,WAAW;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,IAAA;AAEV,UAAM,YAAY,SAAS,MAAM,OAAO,SAAS,SAAS,OAAO,KAAK,CAAC;;aAK/D,OAAA,sBADPC,mBASsB,QAAA;AAAA;QAPrB,uBAAM,oBAAkB;AAAA,yCACoB,YAAA;AAAA,QAAA;QAG3C,eAAW,CAAG,UAAA,SAAa;AAAA,QAC3B,cAAA,UAAA;AAAA,QACD,MAAK;AAAA,QACL,WAAQ,UAAA;AAAA,MAAA;;;;;"}
1
+ {"version":3,"file":"NcUserStatusIcon-DHHqIgRK.mjs","sources":["../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-busy.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/assets/status-icons/user-status-online.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-away, var(--color-warning, #C88800))\\\"\\n\\t\\td=\\\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-online, var(--color-success, #2D7B41))\\\"\\n\\t\\td=\\\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.ts'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\n/**\n * Get the translated label for a given user status\n *\n * @param status - The user status\n */\nexport function getUserStatusText(status: Status): string {\n\tswitch (status) {\n\t\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\t\tcase 'busy': return t('busy')\n\t\tcase 'dnd': return t('do not disturb')\n\t\tcase 'online': return t('online')\n\t\tcase 'invisible': return t('invisible')\n\t\tcase 'offline': return t('offline')\n\t\tdefault: return status\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"flex\">\n\t\t<div class=\"grid\">\n\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t<span>Online</span>\n\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t<span>Away</span>\n\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t<span>Busy</span>\n\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t<span>Do not disturb</span>\n\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t<span>Invisible</span>\n\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t<span>Offline</span>\n\t\t</div>\n\n\t\t<NcThemeProvider dark>\n\t\t\t<div class=\"grid\">\n\t\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t\t<span>Online</span>\n\t\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t\t<span>Away</span>\n\t\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t\t<span>Busy</span>\n\t\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t\t<span>Do not disturb</span>\n\t\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t\t<span>Invisible</span>\n\t\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t\t<span>Offline</span>\n\t\t\t</div>\n\t\t</NcThemeProvider>\n\t</div>\n</template>\n\n<style>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 20px 1fr;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 4px;\n\twidth: fit-content;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n}\n</style>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { computed, watch } from 'vue'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport busySvg from '../../assets/status-icons/user-status-busy.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport { t } from '../../l10n.ts'\nimport { logger } from '../../utils/logger.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\n\n/**\n * The user preloaded user status.\n */\nconst status = defineModel<'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'>('status')\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Set the user id to fetch the status\n\t */\n\tuser?: string\n\n\t/**\n\t * Set the `aria-hidden` attribute\n\t */\n\tariaHidden?: boolean | 'true' | 'false'\n}>(), {\n\tuser: undefined,\n\tariaHidden: false,\n})\n\nconst isInvisible = computed(() => status.value && ['invisible', 'offline'].includes(status.value))\n\n/**\n * Aria label to set on the element (will be set when ariaHidden is not set)\n */\nconst ariaLabel = computed(() => (\n\tstatus.value && (!props.ariaHidden || props.ariaHidden === 'false')\n\t\t? t('User status: {status}', { status: getUserStatusText(status.value) })\n\t\t: undefined\n))\n\nwatch(() => props.user, async (user) => {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tif (!status.value && user && (getCapabilities() as any)?.user_status?.enabled) {\n\t\ttry {\n\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\tstatus.value = data.ocs?.data?.status\n\t\t} catch (error) {\n\t\t\tlogger.debug('Error while fetching user status', { error })\n\t\t}\n\t}\n}, { immediate: true })\n\nconst matchSvg = {\n\tonline: onlineSvg,\n\taway: awaySvg,\n\tbusy: busySvg,\n\tdnd: dndSvg,\n\tinvisible: invisibleSvg,\n\toffline: invisibleSvg,\n}\nconst activeSvg = computed(() => status.value && matchSvg[status.value])\n</script>\n\n<template>\n\t<span\n\t\tv-if=\"status\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': isInvisible,\n\t\t}\"\n\t\t:aria-hidden=\"!ariaLabel || undefined\"\n\t\t:aria-label\n\t\trole=\"img\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\t// Custom colors for the svg icons, to not rely on server variables\n\t--user-status-color-online: #2D7B41;\n\t--user-status-color-busy: #DB0606;\n\t--user-status-color-away: #C88800;\n\t--user-status-color-offline: #6B6B6B;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t:deep(svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n</style>\n"],"names":["_useModel","_createElementBlock"],"mappings":";;;;;;;AAAA,MAAA,UAAe;ACAf,MAAA,UAAe;ACAf,MAAA,SAAe;ACAf,MAAA,eAAe;ACAf,MAAA,YAAe;;;ACcR,SAAS,kBAAkB,QAAwB;AACzD,UAAQ,QAAA;AAAA,IACP,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA;AAAA,IAC5B,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAO,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAO,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAO,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAO,EAAE,SAAS;AAAA,IAClC;AAAS,aAAO;AAAA,EAAA;AAElB;;;;;;;;;;;;;AC8DA,UAAM,SAASA,SAAyE,SAAC,QAAQ;AAEjG,UAAM,QAAQ;AAed,UAAM,cAAc,SAAS,MAAM,OAAO,SAAS,CAAC,aAAa,SAAS,EAAE,SAAS,OAAO,KAAK,CAAC;AAKlG,UAAM,YAAY,SAAS,MAC1B,OAAO,UAAU,CAAC,MAAM,cAAc,MAAM,eAAe,WACxD,EAAE,yBAAyB,EAAE,QAAQ,kBAAkB,OAAO,KAAK,GAAG,IACtE,MACH;AAED,UAAM,MAAM,MAAM,MAAM,OAAO,SAAS;AAEvC,UAAI,CAAC,OAAO,SAAS,QAAS,gBAAA,GAA2B,aAAa,SAAS;AAC9E,YAAI;AACH,gBAAM,EAAE,SAAS,MAAM,MAAM,IAAI,eAAe,4CAA4C,EAAE,KAAA,CAAM,CAAC;AACrG,iBAAO,QAAQ,KAAK,KAAK,MAAM;AAAA,QAChC,SAAS,OAAO;AACf,iBAAO,MAAM,oCAAoC,EAAE,MAAA,CAAO;AAAA,QAC3D;AAAA,MACD;AAAA,IACD,GAAG,EAAE,WAAW,MAAM;AAEtB,UAAM,WAAW;AAAA,MAChB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,IAAA;AAEV,UAAM,YAAY,SAAS,MAAM,OAAO,SAAS,SAAS,OAAO,KAAK,CAAC;;aAK/D,OAAA,sBADPC,mBASsB,QAAA;AAAA;QAPrB,uBAAM,oBAAkB;AAAA,yCACoB,YAAA;AAAA,QAAA;QAG3C,eAAW,CAAG,UAAA,SAAa;AAAA,QAC3B,cAAA,UAAA;AAAA,QACD,MAAK;AAAA,QACL,WAAQ,UAAA;AAAA,MAAA;;;;;"}
@@ -50,6 +50,7 @@ const t16 = [{ "l": "ar", "t": { "Clear search": { "v": ["محو البحث"] }
50
50
  const t17 = [{ "l": "ar", "t": { "Clear selected": { "v": ["محو المحدّد"] }, "Deselect {option}": { "v": ["إلغاء تحديد {option}"] }, "No results": { "v": ["ليس هناك أية نتيجة"] }, "Options": { "v": ["خيارات"] } } }, { "l": "ast", "t": { "Clear selected": { "v": ["Borrar lo seleicionao"] }, "Deselect {option}": { "v": ["Deseleicionar «{option}»"] }, "No results": { "v": ["Nun hai nengún resultáu"] }, "Options": { "v": ["Opciones"] } } }, { "l": "br", "t": { "No results": { "v": ["Disoc'h ebet"] } } }, { "l": "ca", "t": { "No results": { "v": ["Sense resultats"] } } }, { "l": "cs", "t": { "Clear selected": { "v": ["Vyčistit vybrané"] }, "Deselect {option}": { "v": ["Zrušit výběr {option}"] }, "No results": { "v": ["Nic nenalezeno"] }, "Options": { "v": ["Možnosti"] } } }, { "l": "cs-CZ", "t": { "Clear selected": { "v": ["Vyčistit vybrané"] }, "Deselect {option}": { "v": ["Zrušit výběr {option}"] }, "No results": { "v": ["Nic nenalezeno"] }, "Options": { "v": ["Možnosti"] } } }, { "l": "da", "t": { "Clear selected": { "v": ["Ryd valgt"] }, "Deselect {option}": { "v": ["Fravælg {option}"] }, "No results": { "v": ["Ingen resultater"] }, "Options": { "v": ["Indstillinger"] } } }, { "l": "de", "t": { "Clear selected": { "v": ["Auswahl leeren"] }, "Deselect {option}": { "v": ["{option} abwählen"] }, "No results": { "v": ["Keine Ergebnisse"] }, "Options": { "v": ["Optionen"] } } }, { "l": "de-DE", "t": { "Clear selected": { "v": ["Auswahl leeren"] }, "Deselect {option}": { "v": ["{option} abwählen"] }, "No results": { "v": ["Keine Ergebnisse"] }, "Options": { "v": ["Optionen"] } } }, { "l": "el", "t": { "Clear selected": { "v": ["Εκκαθάριση επιλογής"] }, "Deselect {option}": { "v": ["Αποεπιλογή {option}"] }, "No results": { "v": ["Κανένα αποτέλεσμα"] }, "Options": { "v": ["Επιλογές"] } } }, { "l": "en-GB", "t": { "Clear selected": { "v": ["Clear selected"] }, "Deselect {option}": { "v": ["Deselect {option}"] }, "No results": { "v": ["No results"] }, "Options": { "v": ["Options"] } } }, { "l": "eo", "t": { "No results": { "v": ["La rezulto forestas"] } } }, { "l": "es", "t": { "Clear selected": { "v": ["Limpiar selección"] }, "Deselect {option}": { "v": ["Deseleccionar {option}"] }, "No results": { "v": [" Ningún resultado"] }, "Options": { "v": ["Opciones"] } } }, { "l": "es-AR", "t": { "Clear selected": { "v": ["Limpiar selección"] }, "Deselect {option}": { "v": ["Deseleccionar {option}"] }, "No results": { "v": ["Sin resultados"] }, "Options": { "v": ["Opciones"] } } }, { "l": "es-EC", "t": { "No results": { "v": ["Sin resultados"] } } }, { "l": "es-MX", "t": { "Clear selected": { "v": ["Limpiar selección"] }, "Deselect {option}": { "v": ["Deseleccionar {option}"] }, "No results": { "v": ["Sin resultados"] }, "Options": { "v": ["Opciones"] } } }, { "l": "et-EE", "t": { "Clear selected": { "v": ["Tühjenad valik"] }, "Deselect {option}": { "v": ["Eemalda {option} valik"] }, "No results": { "v": ["Tulemusi pole"] }, "Options": { "v": ["Valikud"] } } }, { "l": "eu", "t": { "No results": { "v": ["Emaitzarik ez"] } } }, { "l": "fa", "t": { "Clear selected": { "v": ["پاک کردن مورد انتخاب شده"] }, "Deselect {option}": { "v": ["لغو انتخاب {option}"] }, "No results": { "v": ["بدون هیچ نتیجه‌ای"] }, "Options": { "v": ["گزینه‌ها"] } } }, { "l": "fi", "t": { "Clear selected": { "v": ["Tyhjennä valitut"] }, "Deselect {option}": { "v": ["Poista valinta {option}"] }, "No results": { "v": ["Ei tuloksia"] }, "Options": { "v": ["Valinnat"] } } }, { "l": "fr", "t": { "Clear selected": { "v": ["Vider la sélection"] }, "Deselect {option}": { "v": ["Désélectionner {option}"] }, "No results": { "v": ["Aucun résultat"] }, "Options": { "v": ["Options"] } } }, { "l": "ga", "t": { "Clear selected": { "v": ["Glan roghnaithe"] }, "Deselect {option}": { "v": ["Díroghnaigh {option}"] }, "No results": { "v": ["Gan torthaí"] }, "Options": { "v": ["Roghanna"] } } }, { "l": "gl", "t": { "Clear selected": { "v": ["Limpar o seleccionado"] }, "Deselect {option}": { "v": ["Desmarcar {option}"] }, "No results": { "v": ["Sen resultados"] }, "Options": { "v": ["Opcións"] } } }, { "l": "he", "t": { "No results": { "v": ["אין תוצאות"] } } }, { "l": "hu", "t": { "No results": { "v": ["Nincs találat"] } } }, { "l": "id", "t": { "Clear selected": { "v": ["Hapus terpilih"] }, "Deselect {option}": { "v": ["Batalkan pemilihan {option}"] }, "No results": { "v": ["Tidak ada hasil"] } } }, { "l": "is", "t": { "Clear selected": { "v": ["Hreinsa valið"] }, "Deselect {option}": { "v": ["Afvelja {option}"] }, "No results": { "v": ["Engar niðurstöður"] }, "Options": { "v": ["Valkostir"] } } }, { "l": "it", "t": { "Clear selected": { "v": ["Cancella selezionati"] }, "Deselect {option}": { "v": ["Deselezionare {option}"] }, "No results": { "v": ["Nessun risultato"] } } }, { "l": "ja", "t": { "Clear selected": { "v": ["選択を解除"] }, "Deselect {option}": { "v": ["{option} の選択を解除"] }, "No results": { "v": ["結果無し"] }, "Options": { "v": ["オプション"] } } }, { "l": "ja-JP", "t": { "Clear selected": { "v": ["選択を解除"] }, "Deselect {option}": { "v": ["{option} の選択を解除"] }, "No results": { "v": ["結果無し"] }, "Options": { "v": ["オプション"] } } }, { "l": "ko", "t": { "Clear selected": { "v": ["선택 항목 지우기"] }, "Deselect {option}": { "v": ["{option} 선택 해제"] }, "No results": { "v": ["결과 없음"] }, "Options": { "v": ["옵션"] } } }, { "l": "lt-LT", "t": { "No results": { "v": ["Nėra rezultatų"] } } }, { "l": "lv", "t": { "No results": { "v": ["Nav rezultātu"] } } }, { "l": "mk", "t": { "Clear selected": { "v": ["Исчисти означени"] }, "Deselect {option}": { "v": ["Откажи избор на {option}"] }, "No results": { "v": ["Нема резултати"] }, "Options": { "v": ["Опции"] } } }, { "l": "my", "t": { "No results": { "v": ["ရလဒ်မရှိပါ"] } } }, { "l": "nb", "t": { "Clear selected": { "v": ["Tøm merket"] }, "Deselect {option}": { "v": ["Opphev valg {option}"] }, "No results": { "v": ["Ingen resultater"] }, "Options": { "v": ["Alternativer"] } } }, { "l": "nl", "t": { "Clear selected": { "v": ["Selectie wissen"] }, "Deselect {option}": { "v": ["Selectie {option} opheffen"] }, "No results": { "v": ["Geen resultaten"] }, "Options": { "v": ["Opties"] } } }, { "l": "oc", "t": { "No results": { "v": ["Cap de resultat"] } } }, { "l": "pl", "t": { "Clear selected": { "v": ["Wyczyść wybrane"] }, "Deselect {option}": { "v": ["Odznacz {option}"] }, "No results": { "v": ["Brak wyników"] }, "Options": { "v": ["Opcje"] } } }, { "l": "pt-BR", "t": { "Clear selected": { "v": ["Limpar selecionado"] }, "Deselect {option}": { "v": ["Desselecionar {option}"] }, "No results": { "v": ["Sem resultados"] }, "Options": { "v": ["Opções"] } } }, { "l": "pt-PT", "t": { "Clear selected": { "v": ["Limpeza selecionada"] }, "Deselect {option}": { "v": ["Desmarcar {option}"] }, "No results": { "v": ["Sem resultados"] }, "Options": { "v": ["Opções"] } } }, { "l": "ro", "t": { "Clear selected": { "v": ["Șterge selecția"] }, "Deselect {option}": { "v": ["Deselctează {option}"] }, "No results": { "v": ["Nu există rezultate"] } } }, { "l": "ru", "t": { "Clear selected": { "v": ["Очистить выбранный"] }, "Deselect {option}": { "v": ["Отменить выбор {option}"] }, "No results": { "v": ["Результаты отсуствуют"] }, "Options": { "v": ["Варианты"] } } }, { "l": "sk", "t": { "Clear selected": { "v": ["Vymazať vybraté"] }, "Deselect {option}": { "v": ["Zrušiť výber {option}"] }, "No results": { "v": ["Žiadne výsledky"] }, "Options": { "v": ["možnosti"] } } }, { "l": "sl", "t": { "No results": { "v": ["Ni zadetkov"] } } }, { "l": "sr", "t": { "Clear selected": { "v": ["Обриши изабрано"] }, "Deselect {option}": { "v": ["Уклони избор {option}"] }, "No results": { "v": ["Нема резултата"] }, "Options": { "v": ["Опције"] } } }, { "l": "sv", "t": { "Clear selected": { "v": ["Rensa val"] }, "Deselect {option}": { "v": ["Avmarkera {option}"] }, "No results": { "v": ["Inga resultat"] }, "Options": { "v": ["Alternativ"] } } }, { "l": "tr", "t": { "Clear selected": { "v": ["Seçilmişleri temizle"] }, "Deselect {option}": { "v": ["{option} bırak"] }, "No results": { "v": ["Herhangi bir sonuç bulunamadı"] }, "Options": { "v": ["Seçenekler"] } } }, { "l": "uk", "t": { "Clear selected": { "v": ["Очистити вибране"] }, "Deselect {option}": { "v": ["Зняти вибір {option}"] }, "No results": { "v": ["Відсутні результати"] }, "Options": { "v": ["Параметри"] } } }, { "l": "uz", "t": { "Clear selected": { "v": ["Tanlanganni tozalash"] }, "Deselect {option}": { "v": ["{option}tanlovni bekor qiling"] }, "No results": { "v": ["Natija yoʻq"] }, "Options": { "v": ["Variantlar"] } } }, { "l": "zh-CN", "t": { "Clear selected": { "v": ["清除所选"] }, "Deselect {option}": { "v": ["取消选择 {option}"] }, "No results": { "v": ["无结果"] }, "Options": { "v": ["选项"] } } }, { "l": "zh-HK", "t": { "Clear selected": { "v": ["清除所選項目"] }, "Deselect {option}": { "v": ["取消選擇 {option}"] }, "No results": { "v": ["無結果"] }, "Options": { "v": ["選項"] } } }, { "l": "zh-TW", "t": { "Clear selected": { "v": ["清除選定項目"] }, "Deselect {option}": { "v": ["取消選取 {option}"] }, "No results": { "v": ["無結果"] }, "Options": { "v": ["選項"] } } }];
51
51
  const t19 = [{ "l": "ar", "t": { "Close": { "v": ["إغلاق"] } } }, { "l": "ast", "t": { "Close": { "v": ["Zarrar"] } } }, { "l": "br", "t": { "Close": { "v": ["Serriñ"] } } }, { "l": "ca", "t": { "Close": { "v": ["Tanca"] } } }, { "l": "cs", "t": { "Close": { "v": ["Zavřít"] } } }, { "l": "cs-CZ", "t": { "Close": { "v": ["Zavřít"] } } }, { "l": "da", "t": { "Close": { "v": ["Luk"] } } }, { "l": "de", "t": { "Close": { "v": ["Schließen"] } } }, { "l": "de-DE", "t": { "Close": { "v": ["Schließen"] } } }, { "l": "el", "t": { "Close": { "v": ["Κλείσιμο"] } } }, { "l": "en-GB", "t": { "Close": { "v": ["Close"] } } }, { "l": "eo", "t": { "Close": { "v": ["Fermu"] } } }, { "l": "es", "t": { "Close": { "v": ["Cerrar"] } } }, { "l": "es-AR", "t": { "Close": { "v": ["Cerrar"] } } }, { "l": "es-EC", "t": { "Close": { "v": ["Cerrar"] } } }, { "l": "es-MX", "t": { "Close": { "v": ["Cerrar"] } } }, { "l": "et-EE", "t": { "Close": { "v": ["Sulge"] } } }, { "l": "eu", "t": { "Close": { "v": ["Itxi"] } } }, { "l": "fa", "t": { "Close": { "v": ["بستن"] } } }, { "l": "fi", "t": { "Close": { "v": ["Sulje"] } } }, { "l": "fr", "t": { "Close": { "v": ["Fermer"] } } }, { "l": "ga", "t": { "Close": { "v": ["Dún"] } } }, { "l": "gl", "t": { "Close": { "v": ["Pechar"] } } }, { "l": "he", "t": { "Close": { "v": ["סגירה"] } } }, { "l": "hu", "t": { "Close": { "v": ["Bezárás"] } } }, { "l": "id", "t": { "Close": { "v": ["Tutup"] } } }, { "l": "is", "t": { "Close": { "v": ["Loka"] } } }, { "l": "it", "t": { "Close": { "v": ["Chiudi"] } } }, { "l": "ja", "t": { "Close": { "v": ["閉じる"] } } }, { "l": "ja-JP", "t": { "Close": { "v": ["閉じる"] } } }, { "l": "ko", "t": { "Close": { "v": ["닫기"] } } }, { "l": "lt-LT", "t": { "Close": { "v": ["Užverti"] } } }, { "l": "lv", "t": { "Close": { "v": ["Aizvērt"] } } }, { "l": "mk", "t": { "Close": { "v": ["Затвори"] } } }, { "l": "my", "t": { "Close": { "v": ["ပိတ်ရန်"] } } }, { "l": "nb", "t": { "Close": { "v": ["Lukk"] } } }, { "l": "nl", "t": { "Close": { "v": ["Sluiten"] } } }, { "l": "oc", "t": { "Close": { "v": ["Tampar"] } } }, { "l": "pl", "t": { "Close": { "v": ["Zamknij"] } } }, { "l": "pt-BR", "t": { "Close": { "v": ["Fechar"] } } }, { "l": "pt-PT", "t": { "Close": { "v": ["Fechar"] } } }, { "l": "ro", "t": { "Close": { "v": ["Închideți"] } } }, { "l": "ru", "t": { "Close": { "v": ["Закрыть"] } } }, { "l": "sk", "t": { "Close": { "v": ["Zavrieť"] } } }, { "l": "sl", "t": { "Close": { "v": ["Zapri"] } } }, { "l": "sr", "t": { "Close": { "v": ["Затвори"] } } }, { "l": "sv", "t": { "Close": { "v": ["Stäng"] } } }, { "l": "tr", "t": { "Close": { "v": ["Kapat"] } } }, { "l": "uk", "t": { "Close": { "v": ["Закрити"] } } }, { "l": "uz", "t": { "Close": { "v": ["Yopish"] } } }, { "l": "zh-CN", "t": { "Close": { "v": ["关闭"] } } }, { "l": "zh-HK", "t": { "Close": { "v": ["關閉"] } } }, { "l": "zh-TW", "t": { "Close": { "v": ["關閉"] } } }];
52
52
  const t21 = [{ "l": "ar", "t": { "Collapse menu": { "v": ["طي القائمة"] }, "Open menu": { "v": ["إفتَح القائمة"] } } }, { "l": "ast", "t": { "Collapse menu": { "v": ["Recoyer el menú"] }, "Open menu": { "v": ["Abrir le menú"] } } }, { "l": "br", "t": {} }, { "l": "ca", "t": {} }, { "l": "cs", "t": { "Collapse menu": { "v": ["Sbalit nabídku"] }, "Open menu": { "v": ["Otevřít nabídku"] } } }, { "l": "cs-CZ", "t": { "Collapse menu": { "v": ["Sbalit nabídku"] }, "Open menu": { "v": ["Otevřít nabídku"] } } }, { "l": "da", "t": { "Collapse menu": { "v": ["Skjul menuen"] }, "Open menu": { "v": ["Åben menu"] } } }, { "l": "de", "t": { "Collapse menu": { "v": ["Menü einklappen"] }, "Open menu": { "v": ["Menü öffnen"] } } }, { "l": "de-DE", "t": { "Collapse menu": { "v": ["Menü einklappen"] }, "Open menu": { "v": ["Menü öffnen"] } } }, { "l": "el", "t": { "Collapse menu": { "v": ["Σύμπτυξη μενού"] }, "Open menu": { "v": ["Άνοιγμα μενού"] } } }, { "l": "en-GB", "t": { "Collapse menu": { "v": ["Collapse menu"] }, "Open menu": { "v": ["Open menu"] } } }, { "l": "eo", "t": {} }, { "l": "es", "t": { "Collapse menu": { "v": ["Ocultar menú"] }, "Open menu": { "v": ["Abrir menú"] } } }, { "l": "es-AR", "t": { "Collapse menu": { "v": ["Ocultar menú"] }, "Open menu": { "v": ["Abrir menú"] } } }, { "l": "es-EC", "t": { "Collapse menu": { "v": ["Ocultar menú"] }, "Open menu": { "v": ["Abrir menú"] } } }, { "l": "es-MX", "t": { "Collapse menu": { "v": ["Ocultar menú"] }, "Open menu": { "v": ["Abrir menú"] } } }, { "l": "et-EE", "t": { "Collapse menu": { "v": ["Menüü kokkuklappimine"] }, "Open menu": { "v": ["Ava menüü"] } } }, { "l": "eu", "t": { "Collapse menu": { "v": ["Tolestu menua"] }, "Open menu": { "v": ["Ireki menua"] } } }, { "l": "fa", "t": { "Collapse menu": { "v": ["بستن فهرست"] }, "Open menu": { "v": ["باز کردن فهرست"] } } }, { "l": "fi", "t": { "Collapse menu": { "v": ["Supista valikko"] }, "Open menu": { "v": ["Avaa valikko"] } } }, { "l": "fr", "t": { "Collapse menu": { "v": ["Réduire le menu"] }, "Open menu": { "v": ["Ouvrir le menu"] } } }, { "l": "ga", "t": { "Collapse menu": { "v": ["Roghchlár Laghdaigh"] }, "Open menu": { "v": ["Roghchlár a oscailt"] } } }, { "l": "gl", "t": { "Collapse menu": { "v": ["Contraer o menú"] }, "Open menu": { "v": ["Abrir o menú"] } } }, { "l": "he", "t": { "Collapse menu": { "v": ["צמצום התפריט"] }, "Open menu": { "v": ["פתיחת תפריט"] } } }, { "l": "hu", "t": {} }, { "l": "id", "t": { "Collapse menu": { "v": ["Ciutkan menu"] }, "Open menu": { "v": ["Buka menu"] } } }, { "l": "is", "t": { "Collapse menu": { "v": ["Fella valmynd saman"] }, "Open menu": { "v": ["Opna valmynd"] } } }, { "l": "it", "t": { "Collapse menu": { "v": ["Chiudi Menu"] }, "Open menu": { "v": ["Apri il menu"] } } }, { "l": "ja", "t": { "Collapse menu": { "v": ["メニューの折りたたみ"] }, "Open menu": { "v": ["メニューを開く"] } } }, { "l": "ja-JP", "t": { "Collapse menu": { "v": ["メニューの折りたたみ"] }, "Open menu": { "v": ["メニューを開く"] } } }, { "l": "ko", "t": { "Collapse menu": { "v": ["메뉴 접기"] }, "Open menu": { "v": ["메뉴 열기"] } } }, { "l": "lt-LT", "t": {} }, { "l": "lv", "t": {} }, { "l": "mk", "t": { "Collapse menu": { "v": ["Скриј мени"] }, "Open menu": { "v": ["Отвори мени"] } } }, { "l": "my", "t": {} }, { "l": "nb", "t": { "Collapse menu": { "v": ["Skjul meny"] }, "Open menu": { "v": ["Åpne meny"] } } }, { "l": "nl", "t": { "Collapse menu": { "v": ["Menu inklappen"] }, "Open menu": { "v": ["Menu openen"] } } }, { "l": "oc", "t": {} }, { "l": "pl", "t": { "Collapse menu": { "v": ["Zwiń menu"] }, "Open menu": { "v": ["Otwórz menu"] } } }, { "l": "pt-BR", "t": { "Collapse menu": { "v": ["Recolher menu"] }, "Open menu": { "v": ["Abrir menu"] } } }, { "l": "pt-PT", "t": { "Collapse menu": { "v": ["Ocultar menu"] }, "Open menu": { "v": ["Abrir menu"] } } }, { "l": "ro", "t": { "Collapse menu": { "v": ["Restrânge meniul"] }, "Open menu": { "v": ["Deschide meniul"] } } }, { "l": "ru", "t": { "Collapse menu": { "v": ["Свернуть меню"] }, "Open menu": { "v": ["Открыть меню"] } } }, { "l": "sk", "t": { "Collapse menu": { "v": ["Zbaliť menu"] }, "Open menu": { "v": ["Otvoriť menu"] } } }, { "l": "sl", "t": {} }, { "l": "sr", "t": { "Collapse menu": { "v": ["Сажми мени"] }, "Open menu": { "v": ["Отвори мени"] } } }, { "l": "sv", "t": { "Collapse menu": { "v": ["Dölj menyn"] }, "Open menu": { "v": ["Öppna menyn"] } } }, { "l": "tr", "t": { "Collapse menu": { "v": ["Menüyü daralt"] }, "Open menu": { "v": ["Menüyü aç"] } } }, { "l": "uk", "t": { "Collapse menu": { "v": ["Згорнути меню"] }, "Open menu": { "v": ["Відкрити меню"] } } }, { "l": "uz", "t": { "Collapse menu": { "v": ["Menyuni yig‘ish"] }, "Open menu": { "v": ["Menyuni oching"] } } }, { "l": "zh-CN", "t": { "Collapse menu": { "v": ["收起菜单"] }, "Open menu": { "v": ["打开菜单"] } } }, { "l": "zh-HK", "t": { "Collapse menu": { "v": ["折疊選單"] }, "Open menu": { "v": ["開啟選單"] } } }, { "l": "zh-TW", "t": { "Collapse menu": { "v": ["折疊選單"] }, "Open menu": { "v": ["開啟選單"] } } }];
53
+ const t22 = [{ "l": "ar", "t": {} }, { "l": "ast", "t": {} }, { "l": "br", "t": {} }, { "l": "ca", "t": {} }, { "l": "cs", "t": { "Copied": { "v": ["Zkopírováno"] }, "Copy to clipboard": { "v": ["Zkopírovat do schránky"] } } }, { "l": "cs-CZ", "t": {} }, { "l": "da", "t": {} }, { "l": "de", "t": { "Copied": { "v": ["Kopiert"] }, "Copy to clipboard": { "v": ["In die Zwischenablage kopieren"] } } }, { "l": "de-DE", "t": { "Copied": { "v": ["Kopiert"] }, "Copy to clipboard": { "v": ["In die Zwischenablage kopieren"] } } }, { "l": "el", "t": {} }, { "l": "en-GB", "t": { "Copied": { "v": ["Copied"] }, "Copy to clipboard": { "v": ["Copy to clipboard"] } } }, { "l": "eo", "t": {} }, { "l": "es", "t": {} }, { "l": "es-AR", "t": {} }, { "l": "es-EC", "t": {} }, { "l": "es-MX", "t": {} }, { "l": "et-EE", "t": { "Copied": { "v": ["Kopeeritud"] }, "Copy to clipboard": { "v": ["Kopeeri lõikelauale"] } } }, { "l": "eu", "t": {} }, { "l": "fa", "t": {} }, { "l": "fi", "t": {} }, { "l": "fr", "t": {} }, { "l": "ga", "t": { "Copied": { "v": ["Cóipeáilte"] }, "Copy to clipboard": { "v": ["Cóipeáil chuig an ghearrthaisce"] } } }, { "l": "gl", "t": { "Copied": { "v": ["Copiado"] }, "Copy to clipboard": { "v": ["Copiar ao portapapeis"] } } }, { "l": "he", "t": {} }, { "l": "hu", "t": {} }, { "l": "id", "t": {} }, { "l": "is", "t": {} }, { "l": "it", "t": {} }, { "l": "ja", "t": { "Copied": { "v": ["コピーされました"] }, "Copy to clipboard": { "v": ["クリップボードにコピー"] } } }, { "l": "ja-JP", "t": {} }, { "l": "ko", "t": {} }, { "l": "lt-LT", "t": {} }, { "l": "lv", "t": {} }, { "l": "mk", "t": {} }, { "l": "my", "t": {} }, { "l": "nb", "t": {} }, { "l": "nl", "t": {} }, { "l": "oc", "t": {} }, { "l": "pl", "t": {} }, { "l": "pt-BR", "t": { "Copied": { "v": ["Copiado"] }, "Copy to clipboard": { "v": ["Copiar para a área de transferência"] } } }, { "l": "pt-PT", "t": {} }, { "l": "ro", "t": {} }, { "l": "ru", "t": {} }, { "l": "sk", "t": {} }, { "l": "sl", "t": {} }, { "l": "sr", "t": {} }, { "l": "sv", "t": {} }, { "l": "tr", "t": {} }, { "l": "uk", "t": {} }, { "l": "uz", "t": {} }, { "l": "zh-CN", "t": {} }, { "l": "zh-HK", "t": {} }, { "l": "zh-TW", "t": {} }];
53
54
  const t23 = [{ "l": "ar", "t": { "Edit item": { "v": ["تعديل عنصر"] } } }, { "l": "ast", "t": { "Edit item": { "v": ["Editar l'elementu"] } } }, { "l": "br", "t": {} }, { "l": "ca", "t": { "Edit item": { "v": ["Edita l'element"] } } }, { "l": "cs", "t": { "Edit item": { "v": ["Upravit položku"] } } }, { "l": "cs-CZ", "t": { "Edit item": { "v": ["Upravit položku"] } } }, { "l": "da", "t": { "Edit item": { "v": ["Rediger emne"] } } }, { "l": "de", "t": { "Edit item": { "v": ["Element bearbeiten"] } } }, { "l": "de-DE", "t": { "Edit item": { "v": ["Element bearbeiten"] } } }, { "l": "el", "t": { "Edit item": { "v": ["Επεξεργασία αντικειμένου"] } } }, { "l": "en-GB", "t": { "Edit item": { "v": ["Edit item"] } } }, { "l": "eo", "t": {} }, { "l": "es", "t": { "Edit item": { "v": ["Editar elemento"] } } }, { "l": "es-AR", "t": { "Edit item": { "v": ["Editar elemento"] } } }, { "l": "es-EC", "t": { "Edit item": { "v": ["Editar elemento"] } } }, { "l": "es-MX", "t": { "Edit item": { "v": ["Editar elemento"] } } }, { "l": "et-EE", "t": { "Edit item": { "v": ["Muuda objekti"] } } }, { "l": "eu", "t": { "Edit item": { "v": ["Editatu elementua"] } } }, { "l": "fa", "t": { "Edit item": { "v": ["ویرایش مورد"] } } }, { "l": "fi", "t": { "Edit item": { "v": ["Muokkaa kohdetta"] } } }, { "l": "fr", "t": { "Edit item": { "v": ["Éditer l'élément"] } } }, { "l": "ga", "t": { "Edit item": { "v": ["Cuir mír in eagar"] } } }, { "l": "gl", "t": { "Edit item": { "v": ["Editar o elemento"] } } }, { "l": "he", "t": { "Edit item": { "v": ["עריכת פריט"] } } }, { "l": "hu", "t": { "Edit item": { "v": ["Elem szerkesztése"] } } }, { "l": "id", "t": { "Edit item": { "v": ["Edit item"] } } }, { "l": "is", "t": { "Edit item": { "v": ["Breyta atriði"] } } }, { "l": "it", "t": { "Edit item": { "v": ["Modifica l'elemento"] } } }, { "l": "ja", "t": { "Edit item": { "v": ["編集"] } } }, { "l": "ja-JP", "t": { "Edit item": { "v": ["編集"] } } }, { "l": "ko", "t": { "Edit item": { "v": ["항목 수정"] } } }, { "l": "lt-LT", "t": {} }, { "l": "lv", "t": {} }, { "l": "mk", "t": { "Edit item": { "v": ["Уреди"] } } }, { "l": "my", "t": {} }, { "l": "nb", "t": { "Edit item": { "v": ["Rediger"] } } }, { "l": "nl", "t": { "Edit item": { "v": ["Item bewerken"] } } }, { "l": "oc", "t": {} }, { "l": "pl", "t": { "Edit item": { "v": ["Edytuj element"] } } }, { "l": "pt-BR", "t": { "Edit item": { "v": ["Editar item"] } } }, { "l": "pt-PT", "t": { "Edit item": { "v": ["Editar item"] } } }, { "l": "ro", "t": { "Edit item": { "v": ["Editați elementul"] } } }, { "l": "ru", "t": { "Edit item": { "v": ["Изменить элемент"] } } }, { "l": "sk", "t": { "Edit item": { "v": ["Upraviť položku"] } } }, { "l": "sl", "t": { "Edit item": { "v": ["Uredi predmet"] } } }, { "l": "sr", "t": { "Edit item": { "v": ["Уреди ставку"] } } }, { "l": "sv", "t": { "Edit item": { "v": ["Redigera objekt"] } } }, { "l": "tr", "t": { "Edit item": { "v": ["Ögeyi düzenle"] } } }, { "l": "uk", "t": { "Edit item": { "v": ["Редагувати елемент"] } } }, { "l": "uz", "t": { "Edit item": { "v": ["Elementni tahrirlash"] } } }, { "l": "zh-CN", "t": { "Edit item": { "v": ["编辑项目"] } } }, { "l": "zh-HK", "t": { "Edit item": { "v": ["編輯項目"] } } }, { "l": "zh-TW", "t": { "Edit item": { "v": ["編輯項目"] } } }];
54
55
  const t25 = [{ "l": "ar", "t": { "Enter link": { "v": ["أدخِل الرابط"] } } }, { "l": "ast", "t": { "Enter link": { "v": ["Introducir l'enllaz"] } } }, { "l": "br", "t": {} }, { "l": "ca", "t": {} }, { "l": "cs", "t": { "Enter link": { "v": ["Zadat odkaz"] } } }, { "l": "cs-CZ", "t": { "Enter link": { "v": ["Zadat odkaz"] } } }, { "l": "da", "t": { "Enter link": { "v": ["Indtast link"] } } }, { "l": "de", "t": { "Enter link": { "v": ["Link eingeben"] } } }, { "l": "de-DE", "t": { "Enter link": { "v": ["Link eingeben"] } } }, { "l": "el", "t": { "Enter link": { "v": ["Εισάγετε σύνδεσμο"] } } }, { "l": "en-GB", "t": { "Enter link": { "v": ["Enter link"] } } }, { "l": "eo", "t": {} }, { "l": "es", "t": { "Enter link": { "v": ["Ingrese enlace"] } } }, { "l": "es-AR", "t": { "Enter link": { "v": ["Ingresar enlace"] } } }, { "l": "es-EC", "t": { "Enter link": { "v": ["Ingresar enlace"] } } }, { "l": "es-MX", "t": { "Enter link": { "v": ["Ingresar enlace"] } } }, { "l": "et-EE", "t": { "Enter link": { "v": ["Sisesta link"] } } }, { "l": "eu", "t": { "Enter link": { "v": ["Sartu esteka"] } } }, { "l": "fa", "t": { "Enter link": { "v": ["لینک را وارد کنید"] } } }, { "l": "fi", "t": { "Enter link": { "v": ["Kirjoita linkki"] } } }, { "l": "fr", "t": { "Enter link": { "v": ["Saisissez le lien"] } } }, { "l": "ga", "t": { "Enter link": { "v": ["Cuir isteach nasc"] } } }, { "l": "gl", "t": { "Enter link": { "v": ["Introducir a ligazón"] } } }, { "l": "he", "t": { "Enter link": { "v": ["מילוי קישור"] } } }, { "l": "hu", "t": {} }, { "l": "id", "t": { "Enter link": { "v": ["Masukkan tautan"] } } }, { "l": "is", "t": { "Enter link": { "v": ["Settu inn tengil"] } } }, { "l": "it", "t": { "Enter link": { "v": ["Inserire il link"] } } }, { "l": "ja", "t": { "Enter link": { "v": ["リンクを入力する"] } } }, { "l": "ja-JP", "t": { "Enter link": { "v": ["リンクを入力する"] } } }, { "l": "ko", "t": { "Enter link": { "v": ["링크 입력"] } } }, { "l": "lt-LT", "t": {} }, { "l": "lv", "t": {} }, { "l": "mk", "t": { "Enter link": { "v": ["Внеси линк"] } } }, { "l": "my", "t": {} }, { "l": "nb", "t": { "Enter link": { "v": ["Skriv inn lenken"] } } }, { "l": "nl", "t": { "Enter link": { "v": ["Link invoeren"] } } }, { "l": "oc", "t": {} }, { "l": "pl", "t": { "Enter link": { "v": ["Wprowadź link"] } } }, { "l": "pt-BR", "t": { "Enter link": { "v": ["Insira o link"] } } }, { "l": "pt-PT", "t": { "Enter link": { "v": ["Inserir hiperligação"] } } }, { "l": "ro", "t": { "Enter link": { "v": ["Introduceți link-ul"] } } }, { "l": "ru", "t": { "Enter link": { "v": ["Введите ссылку"] } } }, { "l": "sk", "t": { "Enter link": { "v": ["Vložiť link"] } } }, { "l": "sl", "t": {} }, { "l": "sr", "t": { "Enter link": { "v": ["Унесите линк"] } } }, { "l": "sv", "t": { "Enter link": { "v": ["Ange länk"] } } }, { "l": "tr", "t": { "Enter link": { "v": ["Bağlantıyı yazın"] } } }, { "l": "uk", "t": { "Enter link": { "v": ["Зазначте посилання"] } } }, { "l": "uz", "t": { "Enter link": { "v": ["Havolani kiriting"] } } }, { "l": "zh-CN", "t": { "Enter link": { "v": ["输入链接"] } } }, { "l": "zh-HK", "t": { "Enter link": { "v": ["輸入連結"] } } }, { "l": "zh-TW", "t": { "Enter link": { "v": ["輸入連結"] } } }];
55
56
  const t28 = [{ "l": "ar", "t": { "Hide details": { "v": ["أخفِ التفاصيل"] }, "Rename project": { "v": ["تغيير اسم المشروع"] }, "Show details": { "v": ["أظهِر التفاصيل"] } } }, { "l": "ast", "t": {} }, { "l": "br", "t": {} }, { "l": "ca", "t": {} }, { "l": "cs", "t": { "Hide details": { "v": ["Skrýt podrobnosti"] }, "Rename project": { "v": ["Přejmenovat projekt"] }, "Show details": { "v": ["Zobrazit podrobnosti"] } } }, { "l": "cs-CZ", "t": {} }, { "l": "da", "t": { "Hide details": { "v": ["Skjul detaljer"] }, "Rename project": { "v": ["Omdøb projekt"] }, "Show details": { "v": ["Vis detaljer"] } } }, { "l": "de", "t": { "Hide details": { "v": ["Details ausblenden"] }, "Rename project": { "v": ["Projekt umbenennen"] }, "Show details": { "v": ["Details anzeigen"] } } }, { "l": "de-DE", "t": { "Hide details": { "v": ["Details ausblenden"] }, "Rename project": { "v": ["Projekt umbenennen"] }, "Show details": { "v": ["Details anzeigen"] } } }, { "l": "el", "t": { "Hide details": { "v": ["Απόκρυψη λεπτομερειών"] }, "Rename project": { "v": ["Μετονομασία έργου"] }, "Show details": { "v": ["Εμφάνιση λεπτομερειών"] } } }, { "l": "en-GB", "t": { "Hide details": { "v": ["Hide details"] }, "Rename project": { "v": ["Rename project"] }, "Show details": { "v": ["Show details"] } } }, { "l": "eo", "t": {} }, { "l": "es", "t": {} }, { "l": "es-AR", "t": { "Hide details": { "v": ["Ocultar detalles"] }, "Rename project": { "v": ["Renombrar proyecto"] }, "Show details": { "v": ["Mostrar detalles"] } } }, { "l": "es-EC", "t": {} }, { "l": "es-MX", "t": { "Hide details": { "v": ["Ocultar detalles"] }, "Rename project": { "v": ["Renombrar proyecto"] }, "Show details": { "v": ["Mostrar detalles"] } } }, { "l": "et-EE", "t": { "Hide details": { "v": ["Peida üksikasjad"] }, "Rename project": { "v": ["Muuda projekti nime"] }, "Show details": { "v": ["Näita üksikasju"] } } }, { "l": "eu", "t": {} }, { "l": "fa", "t": { "Hide details": { "v": ["پنهان کردن جزئیات"] }, "Rename project": { "v": ["تغییر نام پروژه"] }, "Show details": { "v": ["نمایش جزئیات"] } } }, { "l": "fi", "t": { "Hide details": { "v": ["Piilota yksityiskohdat"] }, "Rename project": { "v": ["Nimeä projekti"] }, "Show details": { "v": ["Näytä yksityiskohdat"] } } }, { "l": "fr", "t": { "Hide details": { "v": ["Masquer les détails"] }, "Rename project": { "v": ["Renommer le projet"] }, "Show details": { "v": ["Afficher les détails"] } } }, { "l": "ga", "t": { "Hide details": { "v": ["Folaigh sonraí"] }, "Rename project": { "v": ["Athainmnigh an tionscadal"] }, "Show details": { "v": ["Taispeáin sonraí"] } } }, { "l": "gl", "t": { "Hide details": { "v": ["Agochar os detalles"] }, "Rename project": { "v": ["Cambiar o nome do proxecto"] }, "Show details": { "v": ["Amosar os detalles"] } } }, { "l": "he", "t": {} }, { "l": "hu", "t": {} }, { "l": "id", "t": {} }, { "l": "is", "t": { "Hide details": { "v": ["Fela nánari upplýsingar"] }, "Rename project": { "v": ["Endurnefna verkefni"] }, "Show details": { "v": ["Birta nánari upplýsingar"] } } }, { "l": "it", "t": {} }, { "l": "ja", "t": { "Hide details": { "v": ["詳細を非表示"] }, "Rename project": { "v": ["プロジェクト名を変更"] }, "Show details": { "v": ["詳細の表示"] } } }, { "l": "ja-JP", "t": {} }, { "l": "ko", "t": { "Hide details": { "v": ["세부 사항 숨기기"] }, "Rename project": { "v": ["프로젝트 이름 변경"] }, "Show details": { "v": ["세부 사항 보기"] } } }, { "l": "lt-LT", "t": {} }, { "l": "lv", "t": {} }, { "l": "mk", "t": { "Hide details": { "v": ["Сокриј детали"] }, "Rename project": { "v": ["Преименувај проект"] }, "Show details": { "v": ["Прикажи детали"] } } }, { "l": "my", "t": {} }, { "l": "nb", "t": { "Hide details": { "v": ["Skjul detaljer"] }, "Rename project": { "v": ["Gi prosjekt nytt navn"] }, "Show details": { "v": ["Vis detaljer"] } } }, { "l": "nl", "t": { "Hide details": { "v": ["Details verbergen"] }, "Rename project": { "v": ["Project hernoemen"] }, "Show details": { "v": ["Details weergeven"] } } }, { "l": "oc", "t": {} }, { "l": "pl", "t": { "Hide details": { "v": ["Ukryj szczegóły"] }, "Rename project": { "v": ["Zmień nazwę projektu"] }, "Show details": { "v": ["Pokaż szczegóły"] } } }, { "l": "pt-BR", "t": { "Hide details": { "v": ["Ocultar detalhes"] }, "Rename project": { "v": ["Renomear projeto"] }, "Show details": { "v": ["Mostrar detalhes"] } } }, { "l": "pt-PT", "t": { "Hide details": { "v": ["Ocultar detalhes"] }, "Rename project": { "v": ["Alterar nome do projeto"] }, "Show details": { "v": ["Ver detalhes"] } } }, { "l": "ro", "t": {} }, { "l": "ru", "t": { "Hide details": { "v": ["Скрыть подробности"] }, "Rename project": { "v": ["Переименовать проект"] }, "Show details": { "v": ["Показать детали"] } } }, { "l": "sk", "t": { "Hide details": { "v": ["Skryť detaily"] }, "Rename project": { "v": ["Premenovať projekt"] }, "Show details": { "v": ["Zobraziť detaily"] } } }, { "l": "sl", "t": {} }, { "l": "sr", "t": { "Hide details": { "v": ["Сакриј детаље"] }, "Rename project": { "v": ["Промени име пројекта"] }, "Show details": { "v": ["Прикажи детаље"] } } }, { "l": "sv", "t": { "Hide details": { "v": ["Göm detaljer"] }, "Rename project": { "v": ["Byt namn på projektet"] }, "Show details": { "v": ["Visa detaljer"] } } }, { "l": "tr", "t": { "Hide details": { "v": ["Ayrıntıları gizle"] }, "Rename project": { "v": ["Projeyi yeniden adlandır"] }, "Show details": { "v": ["Ayrıntıları görüntüle"] } } }, { "l": "uk", "t": { "Hide details": { "v": ["Сховати деталі"] }, "Rename project": { "v": ["Перейменувати проєкт"] }, "Show details": { "v": ["Показати деталі"] } } }, { "l": "uz", "t": { "Hide details": { "v": ["Tafsilotlarni yashirish"] }, "Rename project": { "v": ["Loyiha nomini o'zgartirish"] }, "Show details": { "v": ["Tafsilotlarni ko'rsatish"] } } }, { "l": "zh-CN", "t": { "Hide details": { "v": ["隐藏细节"] }, "Rename project": { "v": ["重命名项目"] }, "Show details": { "v": ["显示细节"] } } }, { "l": "zh-HK", "t": { "Hide details": { "v": ["隱藏詳情"] }, "Rename project": { "v": ["重命名方案"] }, "Show details": { "v": ["顯示詳情"] } } }, { "l": "zh-TW", "t": { "Hide details": { "v": ["隱藏詳細資料"] }, "Rename project": { "v": ["重新命名專案"] }, "Show details": { "v": ["顯示詳細資訊"] } } }];
@@ -67,41 +68,42 @@ const t48 = [{ "l": "ar", "t": { "Submit": { "v": ["إرسال"] } } }, { "l": "
67
68
  const t49 = [{ "l": "ar", "t": { "Unable to search the group": { "v": ["تعذّر البحث في المجموعة"] } } }, { "l": "ast", "t": { "Unable to search the group": { "v": ["Nun ye posible buscar el grupu"] } } }, { "l": "br", "t": { "Unable to search the group": { "v": ["Dibosupl eo klask ar strollad"] } } }, { "l": "ca", "t": { "Unable to search the group": { "v": ["No es pot cercar el grup"] } } }, { "l": "cs", "t": { "Unable to search the group": { "v": ["Nedaří se hledat skupinu"] } } }, { "l": "cs-CZ", "t": { "Unable to search the group": { "v": ["Nedaří se hledat skupinu"] } } }, { "l": "da", "t": { "Unable to search the group": { "v": ["Kan ikke søge på denne gruppe"] } } }, { "l": "de", "t": { "Unable to search the group": { "v": ["Die Gruppe kann nicht durchsucht werden"] } } }, { "l": "de-DE", "t": { "Unable to search the group": { "v": ["Die Gruppe kann nicht durchsucht werden"] } } }, { "l": "el", "t": { "Unable to search the group": { "v": ["Δεν είναι δυνατή η αναζήτηση της ομάδας"] } } }, { "l": "en-GB", "t": { "Unable to search the group": { "v": ["Unable to search the group"] } } }, { "l": "eo", "t": { "Unable to search the group": { "v": ["Ne eblas serĉi en la grupo"] } } }, { "l": "es", "t": { "Unable to search the group": { "v": ["No es posible buscar en el grupo"] } } }, { "l": "es-AR", "t": { "Unable to search the group": { "v": ["No se puede buscar el grupo"] } } }, { "l": "es-EC", "t": { "Unable to search the group": { "v": ["No se puede buscar en el grupo"] } } }, { "l": "es-MX", "t": { "Unable to search the group": { "v": ["No fue posible buscar en el grupo"] } } }, { "l": "et-EE", "t": { "Unable to search the group": { "v": ["Gruppi ei ole võimalik otsida"] } } }, { "l": "eu", "t": { "Unable to search the group": { "v": ["Ezin izan da taldea bilatu"] } } }, { "l": "fa", "t": { "Unable to search the group": { "v": ["امکان جستجوی گروه وجود ندارد"] } } }, { "l": "fi", "t": { "Unable to search the group": { "v": ["Ryhmää ei voi hakea"] } } }, { "l": "fr", "t": { "Unable to search the group": { "v": ["Impossible de chercher le groupe"] } } }, { "l": "ga", "t": { "Unable to search the group": { "v": ["Ní féidir an grúpa a chuardach"] } } }, { "l": "gl", "t": { "Unable to search the group": { "v": ["Non foi posíbel buscar o grupo"] } } }, { "l": "he", "t": { "Unable to search the group": { "v": ["לא ניתן לחפש בקבוצה"] } } }, { "l": "hu", "t": { "Unable to search the group": { "v": ["A csoport nem kereshető"] } } }, { "l": "id", "t": { "Unable to search the group": { "v": ["Tidak dapat mencari dalam grup"] } } }, { "l": "is", "t": { "Unable to search the group": { "v": ["Get ekki leitað í hópnum"] } } }, { "l": "it", "t": { "Unable to search the group": { "v": ["Impossibile cercare il gruppo"] } } }, { "l": "ja", "t": { "Unable to search the group": { "v": ["グループを検索できません"] } } }, { "l": "ja-JP", "t": { "Unable to search the group": { "v": ["グループを検索できません"] } } }, { "l": "ko", "t": { "Unable to search the group": { "v": ["그룹을 검색할 수 없음"] } } }, { "l": "lt-LT", "t": { "Unable to search the group": { "v": ["Nepavyko atlikti paiešką grupėje"] } } }, { "l": "lv", "t": {} }, { "l": "mk", "t": { "Unable to search the group": { "v": ["Неможе да се пронајде групата"] } } }, { "l": "my", "t": { "Unable to search the group": { "v": ["အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ"] } } }, { "l": "nb", "t": { "Unable to search the group": { "v": ["Kunne ikke søke i gruppen"] } } }, { "l": "nl", "t": { "Unable to search the group": { "v": ["Kan niet zoeken in de groep"] } } }, { "l": "oc", "t": {} }, { "l": "pl", "t": { "Unable to search the group": { "v": ["Nie można przeszukać grupy"] } } }, { "l": "pt-BR", "t": { "Unable to search the group": { "v": ["Não foi possível pesquisar o grupo"] } } }, { "l": "pt-PT", "t": { "Unable to search the group": { "v": ["Não é possível pesquisar o grupo"] } } }, { "l": "ro", "t": { "Unable to search the group": { "v": ["Imposibilitatea de a căuta în grup"] } } }, { "l": "ru", "t": { "Unable to search the group": { "v": ["Невозможно найти группу"] } } }, { "l": "sk", "t": { "Unable to search the group": { "v": ["Skupinu sa nepodarilo nájsť"] } } }, { "l": "sl", "t": { "Unable to search the group": { "v": ["Ni mogoče iskati po skupini"] } } }, { "l": "sr", "t": { "Unable to search the group": { "v": ["Група не може да се претражи"] } } }, { "l": "sv", "t": { "Unable to search the group": { "v": ["Kunde inte söka i gruppen"] } } }, { "l": "tr", "t": { "Unable to search the group": { "v": ["Grupta arama yapılamadı"] } } }, { "l": "uk", "t": { "Unable to search the group": { "v": ["Неможливо шукати в групі"] } } }, { "l": "uz", "t": { "Unable to search the group": { "v": ["Guruhni qidirish imkonsiz"] } } }, { "l": "zh-CN", "t": { "Unable to search the group": { "v": ["无法搜索分组"] } } }, { "l": "zh-HK", "t": { "Unable to search the group": { "v": ["無法搜尋群組"] } } }, { "l": "zh-TW", "t": { "Unable to search the group": { "v": ["無法搜尋群組"] } } }];
68
69
  const t50 = [{ "l": "ar", "t": { "Undo changes": { "v": ["تراجَع عن التغييرات"] } } }, { "l": "ast", "t": { "Undo changes": { "v": ["Desfacer los cambeos"] } } }, { "l": "br", "t": {} }, { "l": "ca", "t": { "Undo changes": { "v": ["Desfés els canvis"] } } }, { "l": "cs", "t": { "Undo changes": { "v": ["Vzít změny zpět"] } } }, { "l": "cs-CZ", "t": { "Undo changes": { "v": ["Vzít změny zpět"] } } }, { "l": "da", "t": { "Undo changes": { "v": ["Fortryd ændringer"] } } }, { "l": "de", "t": { "Undo changes": { "v": ["Änderungen rückgängig machen"] } } }, { "l": "de-DE", "t": { "Undo changes": { "v": ["Änderungen rückgängig machen"] } } }, { "l": "el", "t": { "Undo changes": { "v": ["Αναίρεση Αλλαγών"] } } }, { "l": "en-GB", "t": { "Undo changes": { "v": ["Undo changes"] } } }, { "l": "eo", "t": {} }, { "l": "es", "t": { "Undo changes": { "v": ["Deshacer cambios"] } } }, { "l": "es-AR", "t": { "Undo changes": { "v": ["Deshacer cambios"] } } }, { "l": "es-EC", "t": { "Undo changes": { "v": ["Deshacer cambios"] } } }, { "l": "es-MX", "t": { "Undo changes": { "v": ["Deshacer cambios"] } } }, { "l": "et-EE", "t": { "Undo changes": { "v": ["Pööra muudatused tagasi"] } } }, { "l": "eu", "t": { "Undo changes": { "v": ["Aldaketak desegin"] } } }, { "l": "fa", "t": { "Undo changes": { "v": ["لغو تغییرات"] } } }, { "l": "fi", "t": { "Undo changes": { "v": ["Kumoa muutokset"] } } }, { "l": "fr", "t": { "Undo changes": { "v": ["Annuler les changements"] } } }, { "l": "ga", "t": { "Undo changes": { "v": ["Cealaigh athruithe"] } } }, { "l": "gl", "t": { "Undo changes": { "v": ["Desfacer os cambios"] } } }, { "l": "he", "t": { "Undo changes": { "v": ["ביטול שינויים"] } } }, { "l": "hu", "t": { "Undo changes": { "v": ["Változtatások visszavonása"] } } }, { "l": "id", "t": { "Undo changes": { "v": ["Urungkan perubahan"] } } }, { "l": "is", "t": { "Undo changes": { "v": ["Afturkalla breytingar"] } } }, { "l": "it", "t": { "Undo changes": { "v": ["Cancella i cambiamenti"] } } }, { "l": "ja", "t": { "Undo changes": { "v": ["変更を取り消し"] } } }, { "l": "ja-JP", "t": { "Undo changes": { "v": ["変更を取り消し"] } } }, { "l": "ko", "t": { "Undo changes": { "v": ["변경 되돌리기"] } } }, { "l": "lt-LT", "t": {} }, { "l": "lv", "t": {} }, { "l": "mk", "t": { "Undo changes": { "v": ["Врати ги промените"] } } }, { "l": "my", "t": {} }, { "l": "nb", "t": { "Undo changes": { "v": ["Tilbakestill endringer"] } } }, { "l": "nl", "t": { "Undo changes": { "v": ["Wijzigingen ongedaan maken"] } } }, { "l": "oc", "t": {} }, { "l": "pl", "t": { "Undo changes": { "v": ["Cofnij zmiany"] } } }, { "l": "pt-BR", "t": { "Undo changes": { "v": ["Desfazer modificações"] } } }, { "l": "pt-PT", "t": { "Undo changes": { "v": ["Anular alterações"] } } }, { "l": "ro", "t": { "Undo changes": { "v": ["Anularea modificărilor"] } } }, { "l": "ru", "t": { "Undo changes": { "v": ["Отменить изменения"] } } }, { "l": "sk", "t": { "Undo changes": { "v": ["Vrátiť zmeny"] } } }, { "l": "sl", "t": { "Undo changes": { "v": ["Razveljavi spremembe"] } } }, { "l": "sr", "t": { "Undo changes": { "v": ["Поништи измене"] } } }, { "l": "sv", "t": { "Undo changes": { "v": ["Ångra ändringar"] } } }, { "l": "tr", "t": { "Undo changes": { "v": ["Değişiklikleri geri al"] } } }, { "l": "uk", "t": { "Undo changes": { "v": ["Скасувати зміни"] } } }, { "l": "uz", "t": { "Undo changes": { "v": ["O'zgarishlarni bekor qilish"] } } }, { "l": "zh-CN", "t": { "Undo changes": { "v": ["撤销更改"] } } }, { "l": "zh-HK", "t": { "Undo changes": { "v": ["取消更改"] } } }, { "l": "zh-TW", "t": { "Undo changes": { "v": ["還原變更"] } } }];
69
70
  export {
70
- t38 as A,
71
- t41 as B,
72
- t9 as C,
73
- t15 as D,
74
- t8 as E,
75
- t45 as F,
76
- t40 as G,
77
- t25 as H,
78
- t32 as I,
79
- t12 as J,
71
+ t11 as A,
72
+ t38 as B,
73
+ t41 as C,
74
+ t9 as D,
75
+ t15 as E,
76
+ t8 as F,
77
+ t45 as G,
78
+ t40 as H,
79
+ t25 as I,
80
+ t32 as J,
81
+ t12 as K,
80
82
  t as a,
81
83
  t2 as b,
82
- t17 as c,
83
- t49 as d,
84
- t0 as e,
85
- t14 as f,
86
- t48 as g,
87
- t10 as h,
88
- t42 as i,
89
- t37 as j,
90
- t16 as k,
91
- t5 as l,
92
- t35 as m,
93
- t36 as n,
94
- t19 as o,
95
- t4 as p,
96
- t34 as q,
84
+ t22 as c,
85
+ t17 as d,
86
+ t49 as e,
87
+ t0 as f,
88
+ t14 as g,
89
+ t48 as h,
90
+ t10 as i,
91
+ t42 as j,
92
+ t37 as k,
93
+ t16 as l,
94
+ t5 as m,
95
+ t35 as n,
96
+ t36 as o,
97
+ t19 as p,
98
+ t4 as q,
97
99
  register as r,
98
- n as s,
100
+ t34 as s,
99
101
  t3 as t,
100
- t28 as u,
101
- t6 as v,
102
- t21 as w,
103
- t50 as x,
104
- t23 as y,
105
- t11 as z
102
+ n as u,
103
+ t28 as v,
104
+ t6 as w,
105
+ t21 as x,
106
+ t50 as y,
107
+ t23 as z
106
108
  };
107
- //# sourceMappingURL=_l10n--WxGDYem.mjs.map
109
+ //# sourceMappingURL=_l10n-CWKr1fUH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_l10n-CWKr1fUH.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,41 @@
1
+ import { loadState } from "@nextcloud/initial-state";
2
+ import { l as logger } from "./logger-D3RVzcfQ.mjs";
3
+ /*!
4
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
5
+ * SPDX-License-Identifier: AGPL-3.0-or-later
6
+ */
7
+ function once(func) {
8
+ let wasCalled = false;
9
+ let result;
10
+ return (...args) => {
11
+ if (!wasCalled) {
12
+ wasCalled = true;
13
+ result = func(...args);
14
+ }
15
+ return result;
16
+ };
17
+ }
18
+ let realAppName = "missing-app-name";
19
+ try {
20
+ realAppName = appName;
21
+ } catch {
22
+ logger.error("The `@nextcloud/vue` library was used without setting / replacing the `appName`.");
23
+ }
24
+ const APP_NAME = realAppName;
25
+ let realAppVersion = "";
26
+ try {
27
+ realAppVersion = appVersion;
28
+ } catch {
29
+ logger.error("The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.");
30
+ }
31
+ const APP_VERSION = realAppVersion;
32
+ const getLocalizedAppName = once(() => {
33
+ const activeApp = loadState("core", "active-app", APP_NAME);
34
+ return loadState("core", "apps", []).find(({ id }) => id === activeApp)?.name ?? APP_NAME;
35
+ });
36
+ export {
37
+ APP_NAME as A,
38
+ APP_VERSION as a,
39
+ getLocalizedAppName as g
40
+ };
41
+ //# sourceMappingURL=appName-DtnLUijR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appName-DtnLUijR.mjs","sources":["../../src/utils/utils.ts","../../src/utils/appName.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Single tone function decorator\n *\n * @param func - Function\n */\nexport function once<T extends unknown[], K>(func: (...args: T) => K): ((...args: T) => K) {\n\tlet wasCalled = false\n\tlet result: K\n\n\treturn (...args: T): K => {\n\t\tif (!wasCalled) {\n\t\t\twasCalled = true\n\t\t\tresult = func(...args)\n\t\t}\n\t\treturn result\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\nimport { logger } from './logger.ts'\nimport { once } from './utils.ts'\n\nlet realAppName = 'missing-app-name'\ntry {\n\trealAppName = appName\n} catch {\n\tlogger.error('The `@nextcloud/vue` library was used without setting / replacing the `appName`.')\n}\nexport const APP_NAME = realAppName\n\nlet realAppVersion = ''\ntry {\n\trealAppVersion = appVersion\n} catch {\n\tlogger.error('The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.')\n}\nexport const APP_VERSION = realAppVersion\n\n/**\n * Get localized app name from the initial state\n */\nexport const getLocalizedAppName = once(() => {\n\tconst activeApp = loadState<string>('core', 'active-app', APP_NAME)\n\treturn loadState<{ id: string, name: string }[]>('core', 'apps', []).find(({ id }) => id === activeApp)?.name ?? APP_NAME\n})\n"],"names":[],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAUO,SAAS,KAA6B,MAA8C;AAC1F,MAAI,YAAY;AAChB,MAAI;AAEJ,SAAO,IAAI,SAAe;AACzB,QAAI,CAAC,WAAW;AACf,kBAAY;AACZ,eAAS,KAAK,GAAG,IAAI;AAAA,IACtB;AACA,WAAO;AAAA,EACR;AACD;ACZA,IAAI,cAAc;AAClB,IAAI;AACH,gBAAc;AACf,QAAQ;AACP,SAAO,MAAM,kFAAkF;AAChG;AACO,MAAM,WAAW;AAExB,IAAI,iBAAiB;AACrB,IAAI;AACH,mBAAiB;AAClB,QAAQ;AACP,SAAO,MAAM,qFAAqF;AACnG;AACO,MAAM,cAAc;AAKpB,MAAM,sBAAsB,KAAK,MAAM;AAC7C,QAAM,YAAY,UAAkB,QAAQ,cAAc,QAAQ;AAClE,SAAO,UAA0C,QAAQ,QAAQ,CAAA,CAAE,EAAE,KAAK,CAAC,EAAE,GAAA,MAAS,OAAO,SAAS,GAAG,QAAQ;AAClH,CAAC;"}
@@ -1,4 +1,4 @@
1
- import { r as register, t as t3, a as t } from "./_l10n--WxGDYem.mjs";
1
+ import { r as register, t as t3, a as t } from "./_l10n-CWKr1fUH.mjs";
2
2
  register(t3);
3
3
  class Color {
4
4
  /**
@@ -132,4 +132,4 @@ export {
132
132
  defaultPalette as d,
133
133
  generatePalette as g
134
134
  };
135
- //# sourceMappingURL=colors-BhsvsNTT.mjs.map
135
+ //# sourceMappingURL=colors-BM9KkzNS.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors-BhsvsNTT.mjs","sources":["../../src/utils/colors.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.ts'\n\nexport class Color {\n\t/**\n\t * @param r - The red value\n\t * @param g - The green value\n\t * @param b - The blue value\n\t * @param name - The name of the color\n\t */\n\tconstructor(\n\t\tpublic readonly r: number,\n\t\tpublic readonly g: number,\n\t\tpublic readonly b: number,\n\t\tpublic readonly name?: string,\n\t) {\n\t\tthis.r = Math.min(r, 255)\n\t\tthis.g = Math.min(g, 255)\n\t\tthis.b = Math.min(b, 255)\n\t\tthis.name = name\n\t}\n\n\t/**\n\t * The hexadecimal color string.\n\t */\n\tget color(): string {\n\t\tconst toHex = (int: number) => `00${int.toString(16)}`.slice(-2)\n\t\treturn `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`\n\t}\n}\n\n/**\n * Calculate the increment needed to blend color1 into color2 within specified number of steps.\n *\n * @param steps - The number of steps\n * @param color1 - The color to start with\n * @param color2 - The color to end at\n * @return The increment needed per color channel\n */\nfunction calculateStepIncrement(steps: number, color1: Color, color2: Color): { r: number, g: number, b: number } {\n\treturn {\n\t\tr: (color2.r - color1.r) / steps,\n\t\tg: (color2.g - color1.g) / steps,\n\t\tb: (color2.b - color1.b) / steps,\n\t}\n}\n\n/**\n * Create a color palette from two colors\n *\n * @param steps - The number of steps the palette should have\n * @param color1 - The first color to mix\n * @param color2 - The second color to mix\n * @return The created palette array (mixed `color1` and `color2` with `steps` steps)\n */\nfunction mixPalette(steps: number, color1: Color, color2: Color): Color[] {\n\tconst palette: Color[] = []\n\tpalette.push(color1)\n\tconst increment = calculateStepIncrement(steps, color1, color2)\n\tfor (let i = 1; i < steps; i++) {\n\t\tconst r = Math.floor(color1.r + increment.r * i)\n\t\tconst g = Math.floor(color1.g + increment.g * i)\n\t\tconst b = Math.floor(color1.b + increment.b * i)\n\t\tpalette.push(new Color(r, g, b))\n\t}\n\treturn palette\n}\n\n// This are our default base colors we use for mixing palettes\nconst COLOR_RED = new Color(182, 70, 157, t('Purple'))\nconst COLOR_YELLOW = new Color(221, 203, 85, t('Gold'))\nconst COLOR_BLUE = new Color(0, 130, 201, t('Nextcloud blue'))\n// Special \"none\"-colors\nexport const COLOR_BLACK = new Color(0, 0, 0, t('Black'))\nexport const COLOR_WHITE = new Color(255, 255, 255, t('White'))\n\n/**\n * Like GenColor(4) but with labels\n */\nexport const defaultPalette = [\n\t/* eslint-disable @stylistic/function-call-argument-newline -- Allow to put translators comments */\n\tCOLOR_RED,\n\tnew Color(\n\t\t191, 103, 139,\n\t\tt('Rosy brown'), // TRANSLATORS: A color name for RGB(191, 103, 139)\n\t),\n\tnew Color(\n\t\t201, 136, 121,\n\t\tt('Feldspar'), // TRANSLATORS: A color name for RGB(201, 136, 121)\n\t),\n\tnew Color(\n\t\t211, 169, 103,\n\t\tt('Whiskey'), // TRANSLATORS: A color name for RGB(211, 169, 103)\n\t),\n\tCOLOR_YELLOW,\n\tnew Color(\n\t\t165, 184, 114,\n\t\tt('Olivine'), // TRANSLATORS: A color name for RGB(165, 184, 114)\n\t),\n\tnew Color(\n\t\t110, 166, 143,\n\t\tt('Acapulco'), // TRANSLATORS: A color name for RGB(110, 166, 143)\n\t),\n\tnew Color(\n\t\t55, 148, 172,\n\t\tt('Boston Blue'), // TRANSLATORS: A color name for RGB(55, 148, 172)\n\t),\n\tCOLOR_BLUE,\n\tnew Color(\n\t\t45, 115, 190,\n\t\tt('Mariner'), // TRANSLATORS: A color name for RGB(45, 115, 190)\n\t),\n\tnew Color(\n\t\t91, 100, 179,\n\t\tt('Blue Violet'), // TRANSLATORS: A color name for RGB(91, 100, 179)\n\t),\n\tnew Color(\n\t\t136, 85, 168,\n\t\tt('Deluge'), // TRANSLATORS: A color name for RGB(136, 85, 168)\n\t),\n\t/* eslint-enable @stylistic/function-call-argument-newline */\n]\n\n/**\n * Generate colors from the official nextcloud color\n * You can provide how many colors you want (multiplied by 3).\n *\n * For example if steps is set to 6, then 3 colors * 6 will result in 18 generated colors.\n *\n * @param steps - Number of steps to go from a color to another\n */\nexport function generatePalette(steps: number): Color[] {\n\tif (steps <= 0) {\n\t\tsteps = 6\n\t}\n\n\tif (steps === 4) {\n\t\treturn [...defaultPalette]\n\t}\n\n\tconst palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW)\n\tconst palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE)\n\tconst palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED)\n\n\treturn palette1.concat(palette2).concat(palette3)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colors-BM9KkzNS.mjs","sources":["../../src/utils/colors.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.ts'\n\nexport class Color {\n\t/**\n\t * @param r - The red value\n\t * @param g - The green value\n\t * @param b - The blue value\n\t * @param name - The name of the color\n\t */\n\tconstructor(\n\t\tpublic readonly r: number,\n\t\tpublic readonly g: number,\n\t\tpublic readonly b: number,\n\t\tpublic readonly name?: string,\n\t) {\n\t\tthis.r = Math.min(r, 255)\n\t\tthis.g = Math.min(g, 255)\n\t\tthis.b = Math.min(b, 255)\n\t\tthis.name = name\n\t}\n\n\t/**\n\t * The hexadecimal color string.\n\t */\n\tget color(): string {\n\t\tconst toHex = (int: number) => `00${int.toString(16)}`.slice(-2)\n\t\treturn `#${toHex(this.r)}${toHex(this.g)}${toHex(this.b)}`\n\t}\n}\n\n/**\n * Calculate the increment needed to blend color1 into color2 within specified number of steps.\n *\n * @param steps - The number of steps\n * @param color1 - The color to start with\n * @param color2 - The color to end at\n * @return The increment needed per color channel\n */\nfunction calculateStepIncrement(steps: number, color1: Color, color2: Color): { r: number, g: number, b: number } {\n\treturn {\n\t\tr: (color2.r - color1.r) / steps,\n\t\tg: (color2.g - color1.g) / steps,\n\t\tb: (color2.b - color1.b) / steps,\n\t}\n}\n\n/**\n * Create a color palette from two colors\n *\n * @param steps - The number of steps the palette should have\n * @param color1 - The first color to mix\n * @param color2 - The second color to mix\n * @return The created palette array (mixed `color1` and `color2` with `steps` steps)\n */\nfunction mixPalette(steps: number, color1: Color, color2: Color): Color[] {\n\tconst palette: Color[] = []\n\tpalette.push(color1)\n\tconst increment = calculateStepIncrement(steps, color1, color2)\n\tfor (let i = 1; i < steps; i++) {\n\t\tconst r = Math.floor(color1.r + increment.r * i)\n\t\tconst g = Math.floor(color1.g + increment.g * i)\n\t\tconst b = Math.floor(color1.b + increment.b * i)\n\t\tpalette.push(new Color(r, g, b))\n\t}\n\treturn palette\n}\n\n// This are our default base colors we use for mixing palettes\nconst COLOR_RED = new Color(182, 70, 157, t('Purple'))\nconst COLOR_YELLOW = new Color(221, 203, 85, t('Gold'))\nconst COLOR_BLUE = new Color(0, 130, 201, t('Nextcloud blue'))\n// Special \"none\"-colors\nexport const COLOR_BLACK = new Color(0, 0, 0, t('Black'))\nexport const COLOR_WHITE = new Color(255, 255, 255, t('White'))\n\n/**\n * Like GenColor(4) but with labels\n */\nexport const defaultPalette = [\n\t/* eslint-disable @stylistic/function-call-argument-newline -- Allow to put translators comments */\n\tCOLOR_RED,\n\tnew Color(\n\t\t191, 103, 139,\n\t\tt('Rosy brown'), // TRANSLATORS: A color name for RGB(191, 103, 139)\n\t),\n\tnew Color(\n\t\t201, 136, 121,\n\t\tt('Feldspar'), // TRANSLATORS: A color name for RGB(201, 136, 121)\n\t),\n\tnew Color(\n\t\t211, 169, 103,\n\t\tt('Whiskey'), // TRANSLATORS: A color name for RGB(211, 169, 103)\n\t),\n\tCOLOR_YELLOW,\n\tnew Color(\n\t\t165, 184, 114,\n\t\tt('Olivine'), // TRANSLATORS: A color name for RGB(165, 184, 114)\n\t),\n\tnew Color(\n\t\t110, 166, 143,\n\t\tt('Acapulco'), // TRANSLATORS: A color name for RGB(110, 166, 143)\n\t),\n\tnew Color(\n\t\t55, 148, 172,\n\t\tt('Boston Blue'), // TRANSLATORS: A color name for RGB(55, 148, 172)\n\t),\n\tCOLOR_BLUE,\n\tnew Color(\n\t\t45, 115, 190,\n\t\tt('Mariner'), // TRANSLATORS: A color name for RGB(45, 115, 190)\n\t),\n\tnew Color(\n\t\t91, 100, 179,\n\t\tt('Blue Violet'), // TRANSLATORS: A color name for RGB(91, 100, 179)\n\t),\n\tnew Color(\n\t\t136, 85, 168,\n\t\tt('Deluge'), // TRANSLATORS: A color name for RGB(136, 85, 168)\n\t),\n\t/* eslint-enable @stylistic/function-call-argument-newline */\n]\n\n/**\n * Generate colors from the official nextcloud color\n * You can provide how many colors you want (multiplied by 3).\n *\n * For example if steps is set to 6, then 3 colors * 6 will result in 18 generated colors.\n *\n * @param steps - Number of steps to go from a color to another\n */\nexport function generatePalette(steps: number): Color[] {\n\tif (steps <= 0) {\n\t\tsteps = 6\n\t}\n\n\tif (steps === 4) {\n\t\treturn [...defaultPalette]\n\t}\n\n\tconst palette1 = mixPalette(steps, COLOR_RED, COLOR_YELLOW)\n\tconst palette2 = mixPalette(steps, COLOR_YELLOW, COLOR_BLUE)\n\tconst palette3 = mixPalette(steps, COLOR_BLUE, COLOR_RED)\n\n\treturn palette1.concat(palette2).concat(palette3)\n}\n"],"names":[],"mappings":"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"}