@nextcloud/vue 9.0.0-alpha.7 → 9.0.0-rc.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 (521) hide show
  1. package/CHANGELOG.md +306 -140
  2. package/README.md +9 -5
  3. package/dist/assets/{NcActionButton-CVjVxm7I.css → NcActionButton-DfdRrSEu.css} +16 -16
  4. package/dist/assets/{NcActionCaption-BNDtcWJ7.css → NcActionCaption-DnG2OyWa.css} +2 -2
  5. package/dist/assets/{NcActionCheckbox-CnTyr-NN.css → NcActionCheckbox--lTDnNsx.css} +12 -12
  6. package/dist/assets/{NcActionInput-D19t1QsM.css → NcActionInput-BNWL2Q-3.css} +62 -62
  7. package/dist/assets/{NcActionLink-DA3ebr8W.css → NcActionLink-C9_ycPLF.css} +12 -12
  8. package/dist/assets/{NcActionRadio-C7Kqlz6k.css → NcActionRadio-DnAjyubC.css} +12 -12
  9. package/dist/assets/{NcActionRouter-BtJqkgqu.css → NcActionRouter-CVsc7Ezc.css} +15 -15
  10. package/dist/assets/{NcActionText-FHEPUweO.css → NcActionText-C7y7Pe6P.css} +17 -17
  11. package/dist/assets/{NcActionTextEditable-DzNRmwkV.css → NcActionTextEditable-OBnWSj_T.css} +60 -60
  12. package/dist/assets/{NcActions-BepWTc-7.css → NcActions-D7gPHaUE.css} +11 -11
  13. package/dist/assets/{NcAppContent-BZ3rplmb.css → NcAppContent-CvTesBem.css} +24 -24
  14. package/dist/assets/{NcAppNavigation-_K9H-MtG.css → NcAppNavigation-BXItV5BV.css} +13 -13
  15. package/dist/assets/{NcAppNavigationItem-PKTHyQue.css → NcAppNavigationItem-DRU-cLRN.css} +34 -34
  16. package/dist/assets/{NcAppNavigationNew-L_VNZNL4.css → NcAppNavigationNew-Ba3wWpcY.css} +3 -3
  17. package/dist/assets/{NcAppNavigationNewItem-rCrG0Uuo.css → NcAppNavigationNewItem-CsqJ6c8v.css} +32 -32
  18. package/dist/assets/{NcAppNavigationSearch-Bsr4esEc.css → NcAppNavigationSearch-BAzhDRd7.css} +6 -6
  19. package/dist/assets/{NcAppNavigationToggle-By3_rHPL.css → NcAppNavigationToggle-DnTKNSH7.css} +3 -3
  20. package/dist/assets/{NcAppSettingsDialog-c8Xj_A-1.css → NcAppSettingsDialog-DZfD_UEa.css} +11 -11
  21. package/dist/assets/{NcAppSidebar-g99AGRiQ.css → NcAppSidebar-GFQ62pY2.css} +61 -61
  22. package/dist/assets/{NcAvatar-Bg20-FW4.css → NcAvatar-UxFZ39EC.css} +26 -26
  23. package/dist/assets/{NcBreadcrumb-r0TATv9A.css → NcBreadcrumb-CV3DgRKn.css} +15 -15
  24. package/dist/assets/{NcBreadcrumbs-Bbd8rdwH.css → NcBreadcrumbs-D2wff82k.css} +6 -6
  25. package/dist/assets/{NcButton-C50FLvfa.css → NcButton-DbE0wInI.css} +68 -65
  26. package/dist/assets/{NcCheckboxRadioSwitch-jfJIoM4m.css → NcCheckboxRadioSwitch-sqQXUuVB.css} +46 -45
  27. package/dist/assets/{NcChip-BWWUudAH.css → NcChip-CKtzzrlA.css} +9 -9
  28. package/dist/assets/{NcCollectionList-COXbQt16.css → NcCollectionList-DTJgOfCk.css} +29 -29
  29. package/dist/assets/{NcColorPicker-3h8DrL_S.css → NcColorPicker-Clz7MjCA.css} +29 -29
  30. package/dist/assets/{NcContent-BgziefsK.css → NcContent-aXaYSfjS.css} +10 -10
  31. package/dist/assets/{NcDashboardWidget-Cdxxd7ei.css → NcDashboardWidget-xV4o6Cen.css} +14 -15
  32. package/dist/assets/NcDateTimePicker-pmbCzZnb.css +83 -0
  33. package/dist/assets/{NcDateTimePickerNative-pbWtBuzt.css → NcDateTimePickerNative-CdHLvH4A.css} +13 -13
  34. package/dist/assets/{NcDialog-DL7A_udP.css → NcDialog-bP7Jt0ZE.css} +15 -15
  35. package/dist/assets/{NcEllipsisedOption-DGr9_bIL.css → NcEllipsisedOption-D-IsjXWc.css} +5 -5
  36. package/dist/assets/{NcEmojiPicker-Bfk2pnZE.css → NcEmojiPicker-DnMU8iEd.css} +5 -5
  37. package/dist/assets/{NcEmptyContent-DZSuQ2yE.css → NcEmptyContent-D1O466rM.css} +9 -9
  38. package/dist/assets/{NcHeaderButton-cVjCMSVn.css → NcHeaderButton-Ct8k0yDh.css} +7 -7
  39. package/dist/assets/{NcHeaderMenu-QJK2rMK3.css → NcHeaderMenu-zo6kw_jn.css} +11 -11
  40. package/dist/assets/{NcIconSvgWrapper-DQFhmjCC.css → NcIconSvgWrapper-BzRHs8iB.css} +11 -8
  41. package/dist/assets/{NcInputConfirmCancel-D46m8Alt.css → NcInputConfirmCancel-9YyvRYjw.css} +6 -6
  42. package/dist/assets/{NcInputField-CRvNH5sg.css → NcInputField-B8J2uFD4.css} +32 -32
  43. package/dist/assets/{NcListItem-BEfZK5UK.css → NcListItem-Byw-ayOI.css} +44 -44
  44. package/dist/assets/{NcListItemIcon-E21VFJqd.css → NcListItemIcon-Bnr-Z-SO.css} +14 -14
  45. package/dist/assets/{NcMentionBubble-BL05HUeF.css → NcMentionBubble-CB5c5ue2.css} +10 -9
  46. package/dist/assets/{NcPasswordField-Bl9fhgy-.css → NcPasswordField-z9gbKnov.css} +2 -2
  47. package/dist/assets/{NcPopover-ChETNAVH.css → NcPopover-zFjgXDlM.css} +13 -0
  48. package/dist/assets/{NcRelatedResourcesPanel-Chjd8iT7.css → NcRelatedResourcesPanel-DXfywiqL.css} +23 -23
  49. package/dist/assets/{NcRichContenteditable-BwHgQWPX.css → NcRichContenteditable-CkyUKlIz.css} +31 -28
  50. package/dist/assets/{NcRichText-fo4QE8--.css → NcRichText-BbVi69cc.css} +87 -89
  51. package/dist/assets/{NcSelect-GdIw6cIy.css → NcSelect-BCBpQnFL.css} +2 -5
  52. package/dist/assets/{NcSettingsInputText-BTOyFeAK.css → NcSettingsInputText-B-V6Y4MD.css} +7 -7
  53. package/dist/assets/{NcSettingsSelectGroup-DhyosmOr.css → NcSettingsSelectGroup-DZcNr_Dq.css} +2 -2
  54. package/dist/assets/{NcTextArea-BfSGN55r.css → NcTextArea-DHr9DPOJ.css} +20 -20
  55. package/dist/assets/{index-BRaTLqzR.css → index-CjPwAJ46.css} +68 -69
  56. package/dist/assets/index-D9L0rgJk.css +4 -0
  57. package/dist/assets/{referencePickerModal-Cy43S4js.css → referencePickerModal-CkGgDb19.css} +8 -8
  58. package/dist/chunks/AlertCircleOutline-DVzpKQVu.mjs +1 -0
  59. package/dist/chunks/ArrowLeft-CanHG70H.mjs +1 -0
  60. package/dist/chunks/ArrowRight-DQT24Cb-.mjs +1 -0
  61. package/dist/chunks/Check-5i4xKnkl.mjs +1 -0
  62. package/dist/chunks/ChevronDown-FiGpp0KT.mjs +1 -0
  63. package/dist/chunks/ChevronRight-LvtA5_hq.mjs +1 -0
  64. package/dist/chunks/ChevronUp-DPXFp1ss.mjs +1 -0
  65. package/dist/chunks/{Close-idsVwGrC.mjs → Close-D6ngJ4t9.mjs} +3 -2
  66. package/dist/chunks/{Close-idsVwGrC.mjs.map → Close-D6ngJ4t9.mjs.map} +1 -1
  67. package/dist/chunks/DotsHorizontal-AMVAlTNH.mjs +1 -0
  68. package/dist/chunks/{NcActionButton-DBFJTCO5.mjs → NcActionButton-BZEDhdCm.mjs} +51 -7
  69. package/dist/chunks/NcActionButton-BZEDhdCm.mjs.map +1 -0
  70. package/dist/chunks/{NcActionButtonGroup-nwHeJeV7.mjs → NcActionButtonGroup-Dqt8Gekb.mjs} +6 -4
  71. package/dist/chunks/NcActionButtonGroup-Dqt8Gekb.mjs.map +1 -0
  72. package/dist/chunks/{NcActionCaption-DmOKI_Kc.mjs → NcActionCaption-Fumfjzxj.mjs} +5 -3
  73. package/dist/chunks/NcActionCaption-Fumfjzxj.mjs.map +1 -0
  74. package/dist/chunks/{NcActionCheckbox-yPCmA5vr.mjs → NcActionCheckbox-DLPDTACR.mjs} +7 -5
  75. package/dist/chunks/NcActionCheckbox-DLPDTACR.mjs.map +1 -0
  76. package/dist/chunks/{NcActionInput-DTzVHmHn.mjs → NcActionInput-C_rmP0eZ.mjs} +13 -12
  77. package/dist/chunks/NcActionInput-C_rmP0eZ.mjs.map +1 -0
  78. package/dist/chunks/{NcActionLink-CG3cKif-.mjs → NcActionLink-BTIApspK.mjs} +6 -4
  79. package/dist/chunks/NcActionLink-BTIApspK.mjs.map +1 -0
  80. package/dist/chunks/{NcActionRadio-BWPi0DII.mjs → NcActionRadio-CPoWB58D.mjs} +7 -5
  81. package/dist/chunks/NcActionRadio-CPoWB58D.mjs.map +1 -0
  82. package/dist/chunks/{NcActionRouter-C7VSuJLq.mjs → NcActionRouter-DATNpU_e.mjs} +6 -4
  83. package/dist/chunks/NcActionRouter-DATNpU_e.mjs.map +1 -0
  84. package/dist/chunks/NcActionSeparator-Doekl1NX.mjs +1 -0
  85. package/dist/chunks/{NcActionText-ByD1mFXe.mjs → NcActionText-3mJjsJz_.mjs} +6 -4
  86. package/dist/chunks/NcActionText-3mJjsJz_.mjs.map +1 -0
  87. package/dist/chunks/{NcActionTextEditable-DLKA6lfe.mjs → NcActionTextEditable-Dv1_bMFY.mjs} +7 -6
  88. package/dist/chunks/NcActionTextEditable-Dv1_bMFY.mjs.map +1 -0
  89. package/dist/chunks/{NcActions-DxTtucKk.mjs → NcActions-DpYAcY6a.mjs} +64 -39
  90. package/dist/chunks/NcActions-DpYAcY6a.mjs.map +1 -0
  91. package/dist/chunks/{NcAppContent-Cu9zhNK3.mjs → NcAppContent-BMiA5ySy.mjs} +77 -28
  92. package/dist/chunks/NcAppContent-BMiA5ySy.mjs.map +1 -0
  93. package/dist/chunks/NcAppContentDetails-DsEEBJ0U.mjs +1 -0
  94. package/dist/chunks/NcAppContentList-DnLY_sWw.mjs +1 -0
  95. package/dist/chunks/{NcAppNavigation-BxUvXgeG.mjs → NcAppNavigation-DuLUJbsJ.mjs} +4 -3
  96. package/dist/chunks/{NcAppNavigation-BxUvXgeG.mjs.map → NcAppNavigation-DuLUJbsJ.mjs.map} +1 -1
  97. package/dist/chunks/{NcAppNavigationCaption-S_2Jmwqr.mjs → NcAppNavigationCaption-DTVdWgpf.mjs} +2 -1
  98. package/dist/chunks/{NcAppNavigationCaption-S_2Jmwqr.mjs.map → NcAppNavigationCaption-DTVdWgpf.mjs.map} +1 -1
  99. package/dist/chunks/NcAppNavigationIconBullet-B1kc4u65.mjs +1 -0
  100. package/dist/chunks/{NcAppNavigationItem-C7bIZuo2.mjs → NcAppNavigationItem-5KG5Pl2c.mjs} +16 -15
  101. package/dist/chunks/NcAppNavigationItem-5KG5Pl2c.mjs.map +1 -0
  102. package/dist/chunks/NcAppNavigationList-DX_Yo23V.mjs +1 -0
  103. package/dist/chunks/{NcAppNavigationNew-BO-Llutk.mjs → NcAppNavigationNew-BUQgcKdv.mjs} +11 -6
  104. package/dist/chunks/NcAppNavigationNew-BUQgcKdv.mjs.map +1 -0
  105. package/dist/chunks/{NcAppNavigationNewItem-D7CYmmOm.mjs → NcAppNavigationNewItem-CRCOC0hV.mjs} +4 -3
  106. package/dist/chunks/{NcAppNavigationNewItem-D7CYmmOm.mjs.map → NcAppNavigationNewItem-CRCOC0hV.mjs.map} +1 -1
  107. package/dist/chunks/{NcAppNavigationSearch-DLbzvkkq.mjs → NcAppNavigationSearch-AT_S98B0.mjs} +7 -6
  108. package/dist/chunks/NcAppNavigationSearch-AT_S98B0.mjs.map +1 -0
  109. package/dist/chunks/{NcAppNavigationSettings-vM8ajNNK.mjs → NcAppNavigationSettings-DFsvNlME.mjs} +5 -4
  110. package/dist/chunks/NcAppNavigationSettings-DFsvNlME.mjs.map +1 -0
  111. package/dist/chunks/NcAppNavigationSpacer-CzBLuQL8.mjs +1 -0
  112. package/dist/chunks/{NcAppNavigationToggle-DBtf139E.mjs → NcAppNavigationToggle-CqZs9ls-.mjs} +9 -8
  113. package/dist/chunks/NcAppNavigationToggle-CqZs9ls-.mjs.map +1 -0
  114. package/dist/chunks/{NcAppSettingsDialog-CdFUuydh.mjs → NcAppSettingsDialog-CTUoQezW.mjs} +6 -5
  115. package/dist/chunks/{NcAppSettingsDialog-CdFUuydh.mjs.map → NcAppSettingsDialog-CTUoQezW.mjs.map} +1 -1
  116. package/dist/chunks/NcAppSettingsSection-CssmXyZ0.mjs +1 -0
  117. package/dist/chunks/{NcAppSidebar-Dav-iGv2.mjs → NcAppSidebar-B7shIqzm.mjs} +26 -25
  118. package/dist/chunks/NcAppSidebar-B7shIqzm.mjs.map +1 -0
  119. package/dist/chunks/NcAppSidebarTab-DG51ajic.mjs +1 -0
  120. package/dist/chunks/{NcAvatar-A1YnlIoN.mjs → NcAvatar-CvPCBukb.mjs} +59 -37
  121. package/dist/chunks/NcAvatar-CvPCBukb.mjs.map +1 -0
  122. package/dist/chunks/NcBlurHash-BiFktE2N.mjs +1 -0
  123. package/dist/chunks/NcBlurHash-BiFktE2N.mjs.map +1 -1
  124. package/dist/chunks/{NcBreadcrumb-D5cRcQg5.mjs → NcBreadcrumb-C3qGDt3z.mjs} +21 -17
  125. package/dist/chunks/NcBreadcrumb-C3qGDt3z.mjs.map +1 -0
  126. package/dist/chunks/{NcBreadcrumbs-CnWT9rE5.mjs → NcBreadcrumbs-DtBCo9yI.mjs} +9 -9
  127. package/dist/chunks/NcBreadcrumbs-DtBCo9yI.mjs.map +1 -0
  128. package/dist/chunks/NcButton-Byg8-ta1.mjs +102 -0
  129. package/dist/chunks/NcButton-Byg8-ta1.mjs.map +1 -0
  130. package/dist/chunks/{NcCheckboxRadioSwitch-Ctdu7_UC.mjs → NcCheckboxRadioSwitch-DrNlVZw8.mjs} +31 -28
  131. package/dist/chunks/NcCheckboxRadioSwitch-DrNlVZw8.mjs.map +1 -0
  132. package/dist/chunks/{NcChip-BnD-EmBn.mjs → NcChip-Cq8DrWKb.mjs} +22 -61
  133. package/dist/chunks/NcChip-Cq8DrWKb.mjs.map +1 -0
  134. package/dist/chunks/{NcCollectionList-9YfN6xAi.mjs → NcCollectionList-CFuwV9sI.mjs} +9 -8
  135. package/dist/chunks/NcCollectionList-CFuwV9sI.mjs.map +1 -0
  136. package/dist/chunks/{NcColorPicker-DQqAv2wB.mjs → NcColorPicker-Clo5oIYN.mjs} +14 -13
  137. package/dist/chunks/NcColorPicker-Clo5oIYN.mjs.map +1 -0
  138. package/dist/chunks/{NcContent-CsDFFKvH.mjs → NcContent-CUuf0HwJ.mjs} +9 -8
  139. package/dist/chunks/{NcContent-CsDFFKvH.mjs.map → NcContent-CUuf0HwJ.mjs.map} +1 -1
  140. package/dist/chunks/NcCounterBubble-6B_JNUUS.mjs +1 -0
  141. package/dist/chunks/{NcDashboardWidget-ROT13m5A.mjs → NcDashboardWidget-CXw7Hxc8.mjs} +8 -7
  142. package/dist/chunks/{NcDashboardWidget-ROT13m5A.mjs.map → NcDashboardWidget-CXw7Hxc8.mjs.map} +1 -1
  143. package/dist/chunks/{NcDashboardWidgetItem-DoYOYxck.mjs → NcDashboardWidgetItem-C6GoJEri.mjs} +4 -3
  144. package/dist/chunks/{NcDashboardWidgetItem-DoYOYxck.mjs.map → NcDashboardWidgetItem-C6GoJEri.mjs.map} +1 -1
  145. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BYXau4sd.mjs +31 -0
  146. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BYXau4sd.mjs.map +1 -0
  147. package/dist/chunks/NcDateTimePicker-CDFvxL3U.mjs +299 -0
  148. package/dist/chunks/NcDateTimePicker-CDFvxL3U.mjs.map +1 -0
  149. package/dist/chunks/{NcDateTimePickerNative-Dbc6pBXk.mjs → NcDateTimePickerNative-BRuMK89z.mjs} +6 -5
  150. package/dist/chunks/NcDateTimePickerNative-BRuMK89z.mjs.map +1 -0
  151. package/dist/chunks/{NcDialog-B81mllwn.mjs → NcDialog-BX0IET9Y.mjs} +15 -14
  152. package/dist/chunks/NcDialog-BX0IET9Y.mjs.map +1 -0
  153. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DbzPc_gW.mjs +69 -0
  154. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DbzPc_gW.mjs.map +1 -0
  155. package/dist/chunks/{NcEllipsisedOption-D4OggsNq.mjs → NcEllipsisedOption-4k07kvEr.mjs} +5 -4
  156. package/dist/chunks/NcEllipsisedOption-4k07kvEr.mjs.map +1 -0
  157. package/dist/chunks/{NcEmojiPicker-DKGBXunS.mjs → NcEmojiPicker-C30Ofq8B.mjs} +18 -14
  158. package/dist/chunks/NcEmojiPicker-C30Ofq8B.mjs.map +1 -0
  159. package/dist/chunks/{NcEmptyContent-D-wBvEi4.mjs → NcEmptyContent-BQnIrQQn.mjs} +3 -2
  160. package/dist/chunks/NcEmptyContent-BQnIrQQn.mjs.map +1 -0
  161. package/dist/chunks/NcGuestContent-iQpV7mLC.mjs +1 -0
  162. package/dist/chunks/{NcHeaderButton-Cq62USyt.mjs → NcHeaderButton-BXfTpkIm.mjs} +9 -8
  163. package/dist/chunks/{NcHeaderButton-Cq62USyt.mjs.map → NcHeaderButton-BXfTpkIm.mjs.map} +1 -1
  164. package/dist/chunks/{NcHeaderMenu-BRiroRYT.mjs → NcHeaderMenu-CEH_-KT_.mjs} +13 -14
  165. package/dist/chunks/NcHeaderMenu-CEH_-KT_.mjs.map +1 -0
  166. package/dist/chunks/{NcHighlight-BHtRIzqk.mjs → NcHighlight-Cu4UfEEO.mjs} +11 -7
  167. package/dist/chunks/NcHighlight-Cu4UfEEO.mjs.map +1 -0
  168. package/dist/chunks/{NcIconSvgWrapper-BYTrkA66.mjs → NcIconSvgWrapper-Bc3ogp8T.mjs} +34 -20
  169. package/dist/chunks/NcIconSvgWrapper-Bc3ogp8T.mjs.map +1 -0
  170. package/dist/chunks/{NcInputConfirmCancel-xnrPAGac.mjs → NcInputConfirmCancel-DeWD9uc6.mjs} +19 -18
  171. package/dist/chunks/NcInputConfirmCancel-DeWD9uc6.mjs.map +1 -0
  172. package/dist/chunks/{NcInputField-CzC820tG.mjs → NcInputField-BBS1E7r-.mjs} +7 -6
  173. package/dist/chunks/NcInputField-BBS1E7r-.mjs.map +1 -0
  174. package/dist/chunks/{NcListItem-DFLsabmR.mjs → NcListItem-CVX52kG-.mjs} +4 -3
  175. package/dist/chunks/NcListItem-CVX52kG-.mjs.map +1 -0
  176. package/dist/chunks/{NcListItemIcon-BK9GBjoD.mjs → NcListItemIcon-Cc6vXRrY.mjs} +7 -6
  177. package/dist/chunks/{NcListItemIcon-BK9GBjoD.mjs.map → NcListItemIcon-Cc6vXRrY.mjs.map} +1 -1
  178. package/dist/chunks/NcLoadingIcon-CsMn1bFR.mjs +1 -0
  179. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_5b8f093f_lang-DZbkIMTW.mjs} +2 -1
  180. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_6c8d0da9_lang-DYJMHclV.mjs.map → NcMentionBubble.vue_vue_type_style_index_0_scoped_5b8f093f_lang-DZbkIMTW.mjs.map} +1 -1
  181. package/dist/chunks/NcNoteCard-XoSOund1.mjs +1 -0
  182. package/dist/chunks/{NcPasswordField-BLHAdm-k.mjs → NcPasswordField-CYPRKGml.mjs} +6 -5
  183. package/dist/chunks/{NcPasswordField-BLHAdm-k.mjs.map → NcPasswordField-CYPRKGml.mjs.map} +1 -1
  184. package/dist/chunks/{NcPopover-D4D97Y3j.mjs → NcPopover-EPnt2iHh.mjs} +156 -25
  185. package/dist/chunks/NcPopover-EPnt2iHh.mjs.map +1 -0
  186. package/dist/chunks/NcProgressBar-Bx8bMkd4.mjs +1 -0
  187. package/dist/chunks/{NcRelatedResourcesPanel-DsuNT9hM.mjs → NcRelatedResourcesPanel-Bcy58V31.mjs} +14 -13
  188. package/dist/chunks/NcRelatedResourcesPanel-Bcy58V31.mjs.map +1 -0
  189. package/dist/chunks/{NcRichContenteditable-BkSojqgy.mjs → NcRichContenteditable-BR08SbpA.mjs} +216 -51
  190. package/dist/chunks/NcRichContenteditable-BR08SbpA.mjs.map +1 -0
  191. package/dist/chunks/NcRichText-jZif8PdV.mjs +3673 -0
  192. package/dist/chunks/NcRichText-jZif8PdV.mjs.map +1 -0
  193. package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs +58 -0
  194. package/dist/chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs.map +1 -0
  195. package/dist/chunks/{NcSelect-B61ik8an.mjs → NcSelect-BkTH-Yqm.mjs} +32 -74
  196. package/dist/chunks/NcSelect-BkTH-Yqm.mjs.map +1 -0
  197. package/dist/chunks/{NcSelectTags-Dx3nG6jx.mjs → NcSelectTags-BY8LM7qV.mjs} +4 -3
  198. package/dist/chunks/{NcSelectTags-Dx3nG6jx.mjs.map → NcSelectTags-BY8LM7qV.mjs.map} +1 -1
  199. package/dist/chunks/{NcSettingsInputText-B5FrLCL9.mjs → NcSettingsInputText-B129n9sr.mjs} +7 -6
  200. package/dist/chunks/NcSettingsInputText-B129n9sr.mjs.map +1 -0
  201. package/dist/chunks/{NcSettingsSection-CAdn6gS9.mjs → NcSettingsSection-CjWtq7TT.mjs} +3 -2
  202. package/dist/chunks/{NcSettingsSection-CAdn6gS9.mjs.map → NcSettingsSection-CjWtq7TT.mjs.map} +1 -1
  203. package/dist/chunks/{NcSettingsSelectGroup-CKIbxms2.mjs → NcSettingsSelectGroup-B8uq0KIw.mjs} +9 -8
  204. package/dist/chunks/NcSettingsSelectGroup-B8uq0KIw.mjs.map +1 -0
  205. package/dist/chunks/{NcTextArea-C-PMlEbl.mjs → NcTextArea-DKHjCur8.mjs} +5 -4
  206. package/dist/chunks/NcTextArea-DKHjCur8.mjs.map +1 -0
  207. package/dist/chunks/{NcTextField-CNV42Zey.mjs → NcTextField-KGXtf7Y6.mjs} +6 -5
  208. package/dist/chunks/{NcTextField-CNV42Zey.mjs.map → NcTextField-KGXtf7Y6.mjs.map} +1 -1
  209. package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-DxoB-jLa.mjs +98 -0
  210. package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-DxoB-jLa.mjs.map +1 -0
  211. package/dist/chunks/{NcUserBubble-MfDc1YR2.mjs → NcUserBubble-qqRewR9C.mjs} +3 -2
  212. package/dist/chunks/{NcUserBubble-MfDc1YR2.mjs.map → NcUserBubble-qqRewR9C.mjs.map} +1 -1
  213. package/dist/chunks/{NcUserStatusIcon-vtnkNASH.mjs → NcUserStatusIcon-DpZVD4HJ.mjs} +3 -2
  214. package/dist/chunks/{NcUserStatusIcon-vtnkNASH.mjs.map → NcUserStatusIcon-DpZVD4HJ.mjs.map} +1 -1
  215. package/dist/chunks/{ScopeComponent-DgRMJomt.mjs → ScopeComponent-BIpNSmeE.mjs} +2 -1
  216. package/dist/chunks/{ScopeComponent-DgRMJomt.mjs.map → ScopeComponent-BIpNSmeE.mjs.map} +1 -1
  217. package/dist/chunks/_l10n-BNGeEX3W.mjs +128 -0
  218. package/dist/chunks/_l10n-BNGeEX3W.mjs.map +1 -0
  219. package/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs +1 -0
  220. package/dist/chunks/actionGlobal-BZFdtdJL.mjs +1 -0
  221. package/dist/chunks/{actionText-aI0owku1.mjs → actionText-BiV1_BZX.mjs} +8 -13
  222. package/dist/chunks/actionText-BiV1_BZX.mjs.map +1 -0
  223. package/dist/chunks/autolink-CKPk5rzg.mjs +1 -0
  224. package/dist/chunks/{GenColors-G1ZRJcz5.mjs → colors-CSUSQx1k.mjs} +28 -22
  225. package/dist/chunks/colors-CSUSQx1k.mjs.map +1 -0
  226. package/dist/chunks/createElementId-DhjFt1I9.mjs +8 -0
  227. package/dist/chunks/createElementId-DhjFt1I9.mjs.map +1 -0
  228. package/dist/chunks/emoji-BY_D0V5K.mjs +1 -0
  229. package/dist/chunks/focusTrap-DmkaYJTC.mjs +1 -0
  230. package/dist/chunks/index-BF8joS9W.mjs +1 -0
  231. package/dist/chunks/logger-D3RVzcfQ.mjs +1 -0
  232. package/dist/chunks/logger-D3RVzcfQ.mjs.map +1 -1
  233. package/dist/chunks/mdi-zYpVOORa.mjs +17 -0
  234. package/dist/chunks/mdi-zYpVOORa.mjs.map +1 -0
  235. package/dist/chunks/{referencePickerModal-CzI44bxD.mjs → referencePickerModal-DzM7CkKN.mjs} +18 -18
  236. package/dist/chunks/{referencePickerModal-CzI44bxD.mjs.map → referencePickerModal-DzM7CkKN.mjs.map} +1 -1
  237. package/dist/chunks/rtl-v0UOPAM7.mjs +1 -0
  238. package/dist/chunks/{useFormatDateTime-Cvc8YJRE.mjs → useFormatDateTime-BPGWjR3-.mjs} +2 -1
  239. package/dist/chunks/{useFormatDateTime-Cvc8YJRE.mjs.map → useFormatDateTime-BPGWjR3-.mjs.map} +1 -1
  240. package/dist/chunks/useNcActions-CiGWxAJE.mjs +7 -0
  241. package/dist/chunks/useNcActions-CiGWxAJE.mjs.map +1 -0
  242. package/dist/chunks/useTrapStackControl-b3A_383w.mjs +1 -0
  243. package/dist/chunks/usernameToColor-Bl9NGU_9.mjs +22 -0
  244. package/dist/chunks/usernameToColor-Bl9NGU_9.mjs.map +1 -0
  245. package/dist/components/NcActionButton/NcActionButton.vue.d.ts +8 -3
  246. package/dist/components/NcActionButton/index.mjs +2 -1
  247. package/dist/components/NcActionButtonGroup/index.mjs +2 -1
  248. package/dist/components/NcActionCaption/index.mjs +2 -1
  249. package/dist/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +2 -2
  250. package/dist/components/NcActionCheckbox/index.mjs +2 -1
  251. package/dist/components/NcActionInput/index.mjs +2 -1
  252. package/dist/components/NcActionLink/index.mjs +2 -1
  253. package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +2 -2
  254. package/dist/components/NcActionRadio/index.mjs +2 -1
  255. package/dist/components/NcActionRouter/NcActionRouter.vue.d.ts +7 -2
  256. package/dist/components/NcActionRouter/index.mjs +2 -1
  257. package/dist/components/NcActionSeparator/index.mjs +1 -0
  258. package/dist/components/NcActionText/NcActionText.vue.d.ts +5 -0
  259. package/dist/components/NcActionText/index.mjs +2 -1
  260. package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +7 -2
  261. package/dist/components/NcActionTextEditable/index.mjs +2 -1
  262. package/dist/components/NcActions/index.mjs +2 -1
  263. package/dist/components/NcActions/useNcActions.d.ts +3 -0
  264. package/dist/components/NcAppContent/index.mjs +2 -1
  265. package/dist/components/NcAppContentDetails/index.mjs +1 -0
  266. package/dist/components/NcAppContentList/index.mjs +1 -0
  267. package/dist/components/NcAppNavigation/index.mjs +2 -1
  268. package/dist/components/NcAppNavigationCaption/index.mjs +2 -1
  269. package/dist/components/NcAppNavigationIconBullet/index.mjs +1 -0
  270. package/dist/components/NcAppNavigationItem/index.mjs +2 -1
  271. package/dist/components/NcAppNavigationList/index.mjs +1 -0
  272. package/dist/components/NcAppNavigationNew/index.mjs +2 -1
  273. package/dist/components/NcAppNavigationNewItem/index.mjs +2 -1
  274. package/dist/components/NcAppNavigationSearch/index.mjs +2 -1
  275. package/dist/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +3 -10
  276. package/dist/components/NcAppNavigationSettings/index.mjs +2 -1
  277. package/dist/components/NcAppNavigationSpacer/index.mjs +1 -0
  278. package/dist/components/NcAppNavigationToggle/index.mjs +2 -1
  279. package/dist/components/NcAppSettingsDialog/index.mjs +2 -1
  280. package/dist/components/NcAppSettingsSection/index.mjs +1 -0
  281. package/dist/components/NcAppSidebar/index.mjs +2 -1
  282. package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +1 -1
  283. package/dist/components/NcAppSidebarTab/index.mjs +1 -0
  284. package/dist/components/NcAvatar/index.mjs +2 -1
  285. package/dist/components/NcBlurHash/NcBlurHash.vue.d.ts +6 -13
  286. package/dist/components/NcBlurHash/index.mjs +1 -0
  287. package/dist/components/NcBreadcrumb/index.mjs +2 -1
  288. package/dist/components/NcBreadcrumbs/index.mjs +2 -1
  289. package/dist/components/NcButton/NcButton.vue.d.ts +100 -232
  290. package/dist/components/NcButton/index.d.ts +2 -2
  291. package/dist/components/NcButton/index.mjs +2 -4
  292. package/dist/components/NcCheckboxRadioSwitch/index.mjs +2 -1
  293. package/dist/components/NcChip/NcChip.vue.d.ts +29 -93
  294. package/dist/components/NcChip/index.mjs +2 -1
  295. package/dist/components/NcCollectionList/index.mjs +2 -1
  296. package/dist/components/NcColorPicker/index.mjs +2 -1
  297. package/dist/components/NcContent/index.mjs +2 -1
  298. package/dist/components/NcCounterBubble/NcCounterBubble.vue.d.ts +1 -1
  299. package/dist/components/NcCounterBubble/index.mjs +1 -0
  300. package/dist/components/NcDashboardWidget/index.mjs +2 -1
  301. package/dist/components/NcDashboardWidgetItem/index.mjs +2 -1
  302. package/dist/components/NcDateTime/NcDateTime.vue.d.ts +27 -1
  303. package/dist/components/NcDateTime/index.d.ts +4 -0
  304. package/dist/components/NcDateTime/index.mjs +3 -2
  305. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +105 -1
  306. package/dist/components/NcDateTimePicker/index.d.ts +4 -0
  307. package/dist/components/NcDateTimePicker/index.mjs +2 -1
  308. package/dist/components/NcDateTimePickerNative/index.mjs +2 -1
  309. package/dist/components/NcDialog/NcDialog.vue.d.ts +68 -145
  310. package/dist/components/NcDialog/index.mjs +2 -1
  311. package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +38 -110
  312. package/dist/components/NcDialogButton/index.mjs +2 -1
  313. package/dist/components/NcEllipsisedOption/index.mjs +2 -1
  314. package/dist/components/NcEmojiPicker/index.mjs +2 -1
  315. package/dist/components/NcEmptyContent/index.mjs +2 -1
  316. package/dist/components/NcGuestContent/index.mjs +1 -0
  317. package/dist/components/NcHeaderButton/NcHeaderButton.vue.d.ts +4 -13
  318. package/dist/components/NcHeaderButton/index.mjs +2 -1
  319. package/dist/components/NcHeaderMenu/index.mjs +2 -1
  320. package/dist/components/NcHighlight/index.mjs +2 -1
  321. package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +20 -11
  322. package/dist/components/NcIconSvgWrapper/index.mjs +2 -1
  323. package/dist/components/NcInputField/index.mjs +2 -1
  324. package/dist/components/NcListItem/index.mjs +2 -1
  325. package/dist/components/NcListItemIcon/index.mjs +2 -1
  326. package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
  327. package/dist/components/NcLoadingIcon/index.mjs +1 -0
  328. package/dist/components/NcModal/index.mjs +77 -70
  329. package/dist/components/NcModal/index.mjs.map +1 -1
  330. package/dist/components/NcNoteCard/index.mjs +1 -0
  331. package/dist/components/NcPasswordField/index.mjs +2 -1
  332. package/dist/components/NcPopover/index.mjs +2 -1
  333. package/dist/components/NcProgressBar/index.mjs +1 -0
  334. package/dist/components/NcRelatedResourcesPanel/index.mjs +2 -1
  335. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +2 -2
  336. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +2 -2
  337. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +347 -0
  338. package/dist/components/NcRichContenteditable/index.mjs +4 -4
  339. package/dist/components/NcRichContenteditable/index.mjs.map +1 -1
  340. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +194 -0
  341. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +268 -0
  342. package/dist/components/NcRichText/index.mjs +4 -3
  343. package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +13 -56
  344. package/dist/components/NcSavingIndicatorIcon/index.d.ts +4 -0
  345. package/dist/components/NcSavingIndicatorIcon/index.mjs +3 -2
  346. package/dist/components/NcSelect/NcSelect.vue.d.ts +121 -0
  347. package/dist/components/NcSelect/index.mjs +2 -1
  348. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +205 -0
  349. package/dist/components/NcSelectTags/index.mjs +2 -1
  350. package/dist/components/NcSelectUsers/NcSelectUsers.vue.d.ts +117 -0
  351. package/dist/components/NcSelectUsers/index.d.ts +5 -0
  352. package/dist/components/NcSelectUsers/index.mjs +73 -0
  353. package/dist/components/NcSelectUsers/index.mjs.map +1 -0
  354. package/dist/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +3 -3
  355. package/dist/components/NcSettingsInputText/index.mjs +2 -1
  356. package/dist/components/NcSettingsSection/index.mjs +2 -1
  357. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +265 -0
  358. package/dist/components/NcSettingsSelectGroup/index.mjs +2 -1
  359. package/dist/components/NcTextArea/NcTextArea.vue.d.ts +6 -6
  360. package/dist/components/NcTextArea/index.mjs +2 -1
  361. package/dist/components/NcTextField/index.mjs +2 -1
  362. package/dist/components/NcTimezonePicker/NcTimezonePicker.vue.d.ts +23 -0
  363. package/dist/components/NcTimezonePicker/index.d.ts +5 -0
  364. package/dist/components/NcTimezonePicker/index.mjs +3 -2
  365. package/dist/components/NcTimezonePicker/timezoneDataProviderService.d.ts +5 -1
  366. package/dist/components/NcUserBubble/index.mjs +2 -1
  367. package/dist/components/NcUserStatusIcon/index.mjs +2 -1
  368. package/dist/components/NcVNodes/index.mjs +1 -0
  369. package/dist/components/index.d.ts +2 -2
  370. package/dist/composables/index.d.ts +6 -2
  371. package/dist/composables/useHotKey/index.mjs +1 -0
  372. package/dist/composables/useIsDarkTheme/index.mjs +1 -0
  373. package/dist/composables/useIsFullscreen/index.d.ts +3 -4
  374. package/dist/composables/useIsFullscreen/index.mjs +4 -1
  375. package/dist/composables/useIsFullscreen/index.mjs.map +1 -1
  376. package/dist/composables/useIsMobile/index.d.ts +9 -14
  377. package/dist/composables/useIsMobile/index.mjs +1 -2
  378. package/dist/composables/useIsMobile/index.mjs.map +1 -1
  379. package/dist/directives/Focus/index.mjs +1 -0
  380. package/dist/directives/Linkify/index.d.ts +2 -1
  381. package/dist/directives/Linkify/index.mjs +38 -10
  382. package/dist/directives/Linkify/index.mjs.map +1 -1
  383. package/dist/directives/index.d.ts +1 -2
  384. package/dist/functions/a11y/index.mjs +1 -0
  385. package/dist/functions/contactsMenu/index.d.ts +40 -0
  386. package/dist/functions/contactsMenu/index.mjs +22 -0
  387. package/dist/functions/contactsMenu/index.mjs.map +1 -0
  388. package/dist/functions/dialog/index.d.ts +22 -13
  389. package/dist/functions/dialog/index.mjs +28 -18
  390. package/dist/functions/dialog/index.mjs.map +1 -1
  391. package/dist/functions/emoji/index.mjs +1 -0
  392. package/dist/functions/index.d.ts +1 -0
  393. package/dist/functions/isDarkTheme/index.mjs +1 -0
  394. package/dist/functions/preloadImage/index.mjs +1 -0
  395. package/dist/functions/reference/index.mjs +2 -1
  396. package/dist/functions/registerReference/index.mjs +1 -0
  397. package/dist/functions/usernameToColor/index.d.ts +5 -1
  398. package/dist/functions/usernameToColor/index.mjs +2 -1
  399. package/dist/functions/usernameToColor/usernameToColor.d.ts +4 -9
  400. package/dist/index.d.ts +0 -1
  401. package/dist/index.mjs +122 -125
  402. package/dist/index.mjs.map +1 -1
  403. package/dist/mixins/actionText.d.ts +6 -0
  404. package/dist/utils/appName.d.ts +5 -0
  405. package/dist/utils/colors.d.ts +34 -0
  406. package/dist/utils/createElementId.d.ts +7 -0
  407. package/dist/utils/findRanges.d.ts +16 -0
  408. package/dist/utils/isSlotPopulated.d.ts +1 -2
  409. package/dist/utils/linkify.d.ts +8 -0
  410. package/dist/utils/logger.d.ts +4 -0
  411. package/dist/vendor.LICENSE.txt +128 -0
  412. package/package.json +46 -32
  413. package/dist/assets/NcDateTimePicker-CRb2xZzf.css +0 -918
  414. package/dist/assets/index-DQ4Plm4r.css +0 -89
  415. package/dist/chunks/ChevronLeft-FfC-tiIS.mjs +0 -48
  416. package/dist/chunks/ChevronLeft-FfC-tiIS.mjs.map +0 -1
  417. package/dist/chunks/GenColors-G1ZRJcz5.mjs.map +0 -1
  418. package/dist/chunks/GenRandomId-CMooMQt0.mjs +0 -6
  419. package/dist/chunks/GenRandomId-CMooMQt0.mjs.map +0 -1
  420. package/dist/chunks/NcActionButton-DBFJTCO5.mjs.map +0 -1
  421. package/dist/chunks/NcActionButtonGroup-nwHeJeV7.mjs.map +0 -1
  422. package/dist/chunks/NcActionCaption-DmOKI_Kc.mjs.map +0 -1
  423. package/dist/chunks/NcActionCheckbox-yPCmA5vr.mjs.map +0 -1
  424. package/dist/chunks/NcActionInput-DTzVHmHn.mjs.map +0 -1
  425. package/dist/chunks/NcActionLink-CG3cKif-.mjs.map +0 -1
  426. package/dist/chunks/NcActionRadio-BWPi0DII.mjs.map +0 -1
  427. package/dist/chunks/NcActionRouter-C7VSuJLq.mjs.map +0 -1
  428. package/dist/chunks/NcActionText-ByD1mFXe.mjs.map +0 -1
  429. package/dist/chunks/NcActionTextEditable-DLKA6lfe.mjs.map +0 -1
  430. package/dist/chunks/NcActions-DxTtucKk.mjs.map +0 -1
  431. package/dist/chunks/NcAppContent-Cu9zhNK3.mjs.map +0 -1
  432. package/dist/chunks/NcAppNavigationItem-C7bIZuo2.mjs.map +0 -1
  433. package/dist/chunks/NcAppNavigationNew-BO-Llutk.mjs.map +0 -1
  434. package/dist/chunks/NcAppNavigationSearch-DLbzvkkq.mjs.map +0 -1
  435. package/dist/chunks/NcAppNavigationSettings-vM8ajNNK.mjs.map +0 -1
  436. package/dist/chunks/NcAppNavigationToggle-DBtf139E.mjs.map +0 -1
  437. package/dist/chunks/NcAppSidebar-Dav-iGv2.mjs.map +0 -1
  438. package/dist/chunks/NcAvatar-A1YnlIoN.mjs.map +0 -1
  439. package/dist/chunks/NcBreadcrumb-D5cRcQg5.mjs.map +0 -1
  440. package/dist/chunks/NcBreadcrumbs-CnWT9rE5.mjs.map +0 -1
  441. package/dist/chunks/NcButton-QmfEsvXC.mjs +0 -298
  442. package/dist/chunks/NcButton-QmfEsvXC.mjs.map +0 -1
  443. package/dist/chunks/NcCheckboxRadioSwitch-Ctdu7_UC.mjs.map +0 -1
  444. package/dist/chunks/NcChip-BnD-EmBn.mjs.map +0 -1
  445. package/dist/chunks/NcCollectionList-9YfN6xAi.mjs.map +0 -1
  446. package/dist/chunks/NcColorPicker-DQqAv2wB.mjs.map +0 -1
  447. package/dist/chunks/NcDateTime-D3snW0sN.mjs +0 -65
  448. package/dist/chunks/NcDateTime-D3snW0sN.mjs.map +0 -1
  449. package/dist/chunks/NcDateTimePicker-DUPn2UCM.mjs +0 -377
  450. package/dist/chunks/NcDateTimePicker-DUPn2UCM.mjs.map +0 -1
  451. package/dist/chunks/NcDateTimePickerNative-Dbc6pBXk.mjs.map +0 -1
  452. package/dist/chunks/NcDialog-B81mllwn.mjs.map +0 -1
  453. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DgWqkSL7.mjs +0 -120
  454. package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-DgWqkSL7.mjs.map +0 -1
  455. package/dist/chunks/NcEllipsisedOption-D4OggsNq.mjs.map +0 -1
  456. package/dist/chunks/NcEmojiPicker-DKGBXunS.mjs.map +0 -1
  457. package/dist/chunks/NcEmptyContent-D-wBvEi4.mjs.map +0 -1
  458. package/dist/chunks/NcHeaderMenu-BRiroRYT.mjs.map +0 -1
  459. package/dist/chunks/NcHighlight-BHtRIzqk.mjs.map +0 -1
  460. package/dist/chunks/NcIconSvgWrapper-BYTrkA66.mjs.map +0 -1
  461. package/dist/chunks/NcInputConfirmCancel-xnrPAGac.mjs.map +0 -1
  462. package/dist/chunks/NcInputField-CzC820tG.mjs.map +0 -1
  463. package/dist/chunks/NcListItem-DFLsabmR.mjs.map +0 -1
  464. package/dist/chunks/NcPopover-D4D97Y3j.mjs.map +0 -1
  465. package/dist/chunks/NcRelatedResourcesPanel-DsuNT9hM.mjs.map +0 -1
  466. package/dist/chunks/NcRichContenteditable-BkSojqgy.mjs.map +0 -1
  467. package/dist/chunks/NcRichText-Cn583bql.mjs +0 -414
  468. package/dist/chunks/NcRichText-Cn583bql.mjs.map +0 -1
  469. package/dist/chunks/NcSavingIndicatorIcon-icWy8J5x.mjs +0 -79
  470. package/dist/chunks/NcSavingIndicatorIcon-icWy8J5x.mjs.map +0 -1
  471. package/dist/chunks/NcSelect-B61ik8an.mjs.map +0 -1
  472. package/dist/chunks/NcSettingsInputText-B5FrLCL9.mjs.map +0 -1
  473. package/dist/chunks/NcSettingsSelectGroup-CKIbxms2.mjs.map +0 -1
  474. package/dist/chunks/NcTextArea-C-PMlEbl.mjs.map +0 -1
  475. package/dist/chunks/NcTimezonePicker-tZmX1Qp4.mjs +0 -187
  476. package/dist/chunks/NcTimezonePicker-tZmX1Qp4.mjs.map +0 -1
  477. package/dist/chunks/_l10n-BEP_UzXI.mjs +0 -133
  478. package/dist/chunks/_l10n-BEP_UzXI.mjs.map +0 -1
  479. package/dist/chunks/actionText-aI0owku1.mjs.map +0 -1
  480. package/dist/chunks/index-wLgC9ACl.mjs +0 -183
  481. package/dist/chunks/index-wLgC9ACl.mjs.map +0 -1
  482. package/dist/chunks/usernameToColor-B_Q_sS3j.mjs +0 -26
  483. package/dist/chunks/usernameToColor-B_Q_sS3j.mjs.map +0 -1
  484. package/dist/components/NcActions/NcActions.vue.d.ts +0 -532
  485. package/dist/components/NcAppNavigation/NcAppNavigation.vue.d.ts +0 -214
  486. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +0 -375
  487. package/dist/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue.d.ts +0 -160
  488. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +0 -1299
  489. package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +0 -194
  490. package/dist/components/NcAppNavigationNew/NcAppNavigationNew.vue.d.ts +0 -186
  491. package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +0 -315
  492. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +0 -388
  493. package/dist/components/NcAppNavigationToggle/NcAppNavigationToggle.vue.d.ts +0 -172
  494. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +0 -711
  495. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +0 -1310
  496. package/dist/components/NcButton/types.d.ts +0 -30
  497. package/dist/components/NcContent/NcContent.vue.d.ts +0 -226
  498. package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +0 -640
  499. package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +0 -243
  500. package/dist/components/NcInputField/NcInputField.vue.d.ts +0 -418
  501. package/dist/components/NcListItem/NcListItem.vue.d.ts +0 -710
  502. package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +0 -551
  503. package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +0 -172
  504. package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +0 -240
  505. package/dist/components/NcRichText/NcReferenceList.vue.d.ts +0 -291
  506. package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +0 -604
  507. package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +0 -210
  508. package/dist/components/NcRichText/NcRichText.vue.d.ts +0 -408
  509. package/dist/components/NcTextField/NcTextField.vue.d.ts +0 -313
  510. package/dist/components/NcTimezonePicker/timezone.d.ts +0 -14
  511. package/dist/directives/Tooltip/index.d.ts +0 -3
  512. package/dist/directives/Tooltip/index.mjs +0 -11
  513. package/dist/directives/Tooltip/index.mjs.map +0 -1
  514. package/dist/mixins/richEditor/index.mjs +0 -9
  515. package/dist/mixins/richEditor/index.mjs.map +0 -1
  516. package/dist/utils/FindRanges.d.ts +0 -13
  517. package/dist/utils/GenColors.d.ts +0 -28
  518. package/dist/utils/GenRandomId.d.ts +0 -6
  519. package/dist/utils/GetChildren.d.ts +0 -13
  520. package/dist/utils/GetParent.d.ts +0 -13
  521. package/dist/utils/Linkify.d.ts +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcSelect-B61ik8an.mjs","sources":["../../src/components/NcSelect/NcSelect.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\n\nGeneral purpose multiselect component.\n\n### Basic examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelect v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Simple',\n\t\t\toptions: [\n\t\t\t\t'foo',\n\t\t\t\t'bar',\n\t\t\t\t'baz',\n\t\t\t\t'qux',\n\t\t\t\t'quux',\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Simple (top placement)',\n\t\t\tplacement: 'top',\n\t\t\toptions: [\n\t\t\t\t'foo',\n\t\t\t\t'bar',\n\t\t\t\t'baz',\n\t\t\t\t'qux',\n\t\t\t\t'quux',\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple (with placeholder)',\n\t\t\tmultiple: true,\n\t\t\tplaceholder: 'Select multiple options',\n\t\t\toptions: [\n\t\t\t\t'foo',\n\t\t\t\t'bar',\n\t\t\t\t'baz',\n\t\t\t\t'qux',\n\t\t\t\t'quux',\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple (objects, pre-selected, stay open on select)',\n\t\t\tmultiple: true,\n\t\t\tcloseOnSelect: false,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: 'foo',\n\t\t\t\t\tlabel: 'Foo',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'bar',\n\t\t\t\t\tlabel: 'Bar',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'baz',\n\t\t\t\t\tlabel: 'Baz',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'qux',\n\t\t\t\t\tlabel: 'Qux',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'quux',\n\t\t\t\t\tlabel: 'Quux',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'corge',\n\t\t\t\t\tlabel: 'Corge',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'grault',\n\t\t\t\t\tlabel: 'Grault',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'garply',\n\t\t\t\t\tlabel: 'Garply',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'waldo',\n\t\t\t\t\tlabel: 'Waldo',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'fred',\n\t\t\t\t\tlabel: 'Fred',\n\t\t\t\t},\n\t\t\t],\n\t\t\tvalue: [\n\t\t\t\t{\n\t\t\t\t\tid: 'foo',\n\t\t\t\t\tlabel: 'Foo',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'bar',\n\t\t\t\t\tlabel: 'Bar',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, 1fr);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n\n### Native form validation example\n\n```vue\n<template>\n\t<div class=\"container\">\n\t\t<form class=\"container__form\" @submit.prevent>\n\t\t\t<NcSelect class=\"container__select\"\n\t\t\t\tinput-label=\"Require a selection\"\n\t\t\t\t:options=\"options\"\n\t\t\t\tv-model=\"singleValue\"\n\t\t\t\trequired />\n\t\t\t<NcButton native-type=\"submit\">Submit</NcButton>\n\t\t</form>\n\n\t\t<form class=\"container__form\" @submit.prevent>\n\t\t\t<NcSelect class=\"container__select\"\n\t\t\t\tinput-label=\"Require at least one selection\"\n\t\t\t\t:options=\"options\"\n\t\t\t\tv-model=\"multiValue\"\n\t\t\t\tmultiple\n\t\t\t\trequired />\n\t\t\t<NcButton native-type=\"submit\">Submit</NcButton>\n\t\t</form>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\toptions: ['foo', 'bar', 'baz', 'qux', 'quux'],\n\t\t\tsingleValue: null,\n\t\t\tmultiValue: [],\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.container {\n\tdisplay: flex;\n\tgap: 0 12px;\n}\n\n.container__form {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-end;\n\twidth: 100%;\n\tgap: 8px 0;\n}\n\n.container__select {\n\twidth: 100%;\n}\n</style>\n```\n\n### No wrap example\n\nThe `noWrap` prop is set to `true` and the `max-width` of the multiselect\nparent container is limited to `350px`\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div class=\"container\">\n\t\t\t<NcSelect :no-wrap=\"false\"\n\t\t\t\tv-bind=\"data1.props\"\n\t\t\t\tv-model=\"data1.props.value\" />\n\t\t</div>\n\t\t<div class=\"container\">\n\t\t\t<NcSelect :no-wrap=\"true\"\n\t\t\t\tv-bind=\"data2.props\"\n\t\t\t\tv-model=\"data2.props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nconst data1 = {\n\tprops: {\n\t\tinputLabel: 'Wrapped (Default)',\n\t\tmultiple: true,\n\t\tcloseOnSelect: false,\n\t\toptions: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t\tvalue: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t},\n}\n\nconst data2 = {\n\tprops: {\n\t\tinputLabel: 'Not wrapped',\n\t\tmultiple: true,\n\t\tcloseOnSelect: false,\n\t\toptions: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t\tvalue: [\n\t\t\t'foo',\n\t\t\t'bar',\n\t\t\t'baz',\n\t\t\t'qux',\n\t\t\t'quux',\n\t\t\t'corge',\n\t\t\t'grault',\n\t\t\t'garply',\n\t\t\t'waldo',\n\t\t\t'fred',\n\t\t],\n\t},\n}\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tdata1,\n\t\t\tdata2,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 1fr);\n\tgap: 10px;\n}\n\n.container {\n\tmax-width: 350px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n\n### User select examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelect v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport AccountGroup from '@mdi/svg/svg/account-group.svg?raw'\nimport Email from '@mdi/svg/svg/email.svg?raw'\n\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'User select',\n\t\t\tuserSelect: true,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t\t// Example of how to show the user status within the option\n\t\t\t\t\tuser: '0-john',\n\t\t\t\t\tpreloadedUserStatus: {\n\t\t\t\t\t\ticon: '',\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\tmessage: 'I am online',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: null,\n\t\t\t\t\ticonSvg: AccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: Email,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple user select (stay open on select)',\n\t\t\tuserSelect: true,\n\t\t\tmultiple: true,\n\t\t\tcloseOnSelect: false,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t\ticon: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: null,\n\t\t\t\t\ticonSvg: AccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: Email,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 500px);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<VueSelect class=\"select\"\n\t\t:class=\"{\n\t\t\t'select--no-wrap': noWrap,\n\t\t\t'user-select': userSelect,\n\t\t}\"\n\t\tv-bind=\"propsToForward\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"$emit('update:modelValue', $event)\">\n\t\t<template v-if=\"!labelOutside && inputLabel\" #header>\n\t\t\t<label :for=\"inputId\"\n\t\t\t\tclass=\"select__label\">\n\t\t\t\t{{ inputLabel }}\n\t\t\t</label>\n\t\t</template>\n\t\t<template #search=\"{ attributes, events }\">\n\t\t\t<input :class=\"['vs__search', inputClass]\"\n\t\t\t\tv-bind=\"attributes\"\n\t\t\t\t:required=\"inputRequired\"\n\t\t\t\tdir=\"auto\"\n\t\t\t\tv-on=\"events\">\n\t\t</template>\n\t\t<template #open-indicator=\"{ attributes }\">\n\t\t\t<ChevronDown v-bind=\"attributes\"\n\t\t\t\tfill-color=\"var(--vs-controls-color)\"\n\t\t\t\t:style=\"{\n\t\t\t\t\tcursor: !disabled ? 'pointer' : null,\n\t\t\t\t}\"\n\t\t\t\t:size=\"26\" />\n\t\t\t\t<!-- Set size to 26 to make up for the increased padding of this icon -->\n\t\t</template>\n\t\t<template #option=\"option\">\n\t\t\t<NcListItemIcon v-if=\"userSelect\"\n\t\t\t\tv-bind=\"option\"\n\t\t\t\t:avatar-size=\"32\"\n\t\t\t\t:name=\"option[localLabel]\"\n\t\t\t\t:search=\"search\" />\n\t\t\t<NcEllipsisedOption v-else\n\t\t\t\t:name=\"String(option[localLabel])\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcListItemIcon v-if=\"userSelect\"\n\t\t\t\tv-bind=\"selectedOption\"\n\t\t\t\t:avatar-size=\"avatarSize\"\n\t\t\t\t:name=\"selectedOption[localLabel]\"\n\t\t\t\tno-margin\n\t\t\t\t:search=\"search\" />\n\t\t\t<NcEllipsisedOption v-else\n\t\t\t\t:name=\"String(selectedOption[localLabel])\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #spinner=\"spinner\">\n\t\t\t<NcLoadingIcon v-if=\"spinner.loading\" />\n\t\t</template>\n\t\t<template #no-options>\n\t\t\t{{ t('No results') }}\n\t\t</template>\n\t\t<template v-for=\"(_, name) in $slots\" #[name]=\"data\">\n\t\t\t<!-- @slot Any combination of slots from https://vue-select.org/api/slots.html -->\n\t\t\t<slot :name=\"name\" v-bind=\"data\" />\n\t\t</template>\n\t</VueSelect>\n</template>\n\n<script>\n// TODO: Use @nextcloud/vue-select once a vue 3 version is available.\n// Until then, all @nextcloud/vue-select specific improvements won't be available.\n// E.g. the `limit` prop has no effect, currently.\nimport 'vue-select/dist/vue-select.css'\n\nimport VueSelect from 'vue-select'\nimport {\n\tautoUpdate,\n\tcomputePosition,\n\tflip,\n\tlimitShift,\n\toffset,\n\tshift,\n} from '@floating-ui/dom'\nimport { h, warn } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport ChevronDown from 'vue-material-design-icons/ChevronDown.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\n\nimport NcEllipsisedOption from '../NcEllipsisedOption/index.js'\nimport NcListItemIcon from '../NcListItemIcon/index.js'\nimport NcLoadingIcon from '../NcLoadingIcon/index.js'\n\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSelect',\n\n\tcomponents: {\n\t\tChevronDown,\n\t\tNcEllipsisedOption,\n\t\tNcListItemIcon,\n\t\tNcLoadingIcon,\n\t\tVueSelect,\n\t},\n\n\tprops: {\n\t\t// Add VueSelect props to $props\n\t\t...VueSelect.props,\n\t\t...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n\n\t\t/**\n\t\t * `aria-label` for the clear input button\n\t\t */\n\t\tariaLabelClearSelected: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Clear selected'),\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` for the search input\n\t\t *\n\t\t * A descriptive `inputLabel` is preferred as this is not visible.\n\t\t */\n\t\tariaLabelCombobox: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * `aria-label` for the listbox element\n\t\t */\n\t\tariaLabelListbox: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Options'),\n\t\t},\n\n\t\t/**\n\t\t * Allows to customize the `aria-label` for the deselect-option button\n\t\t * The default is \"Deselect \" + optionLabel\n\t\t * @type {(optionLabel: string) => string}\n\t\t */\n\t\tariaLabelDeselectOption: {\n\t\t\ttype: Function,\n\t\t\tdefault: (optionLabel) => t('Deselect {option}', { option: optionLabel }),\n\t\t},\n\n\t\t/**\n\t\t * Append the dropdown element to the end of the body\n\t\t * and size/position it dynamically.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#appendtobody\n\t\t */\n\t\tappendToBody: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * When `appendToBody` is true, this function is responsible for\n\t\t * positioning the drop down list.\n\t\t *\n\t\t * If a function is returned from `calculatePosition`, it will\n\t\t * be called when the drop down list is removed from the DOM.\n\t\t * This allows for any garbage collection you may need to do.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#calculateposition\n\t\t */\n\t\tcalculatePosition: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Close the dropdown when selecting an option\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#closeonselect\n\t\t */\n\t\tcloseOnSelect: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Replace default vue-select components\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#components\n\t\t */\n\t\tcomponents: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({\n\t\t\t\tDeselect: {\n\t\t\t\t\trender: () => h(Close, {\n\t\t\t\t\t\tsize: 20,\n\t\t\t\t\t\tfillColor: 'var(--vs-controls-color)',\n\t\t\t\t\t\tstyle: [\n\t\t\t\t\t\t\t{ cursor: 'pointer' },\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\n\t\t/**\n\t\t * Sets the maximum number of options to display in the dropdown list\n\t\t */\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Disable the component\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#disabled\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the dropdown should be open.\n\t\t * Receives the component instance as the only argument.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#dropdownshouldopen\n\t\t */\n\t\tdropdownShouldOpen: {\n\t\t\ttype: Function,\n\t\t\tdefault: ({ noDrop, open }) => {\n\t\t\t\treturn noDrop ? false : open\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Callback to determine if the provided option should\n\t\t * match the current search text. Used to determine\n\t\t * if the option should be displayed.\n\t\t *\n\t\t * Defaults to the internal vue-select function documented at the link\n\t\t * below\n\t\t *\n\t\t * Enabling `userSelect` will automatically set this to filter by the\n\t\t * `displayName` and `subname` properties of the user option object\n\t\t * unless this prop is set explicitly\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#filterby\n\t\t */\n\t\tfilterBy: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Class for the `input`\n\t\t *\n\t\t * Necessary for use in NcActionInput\n\t\t */\n\t\tinputClass: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Input element id\n\t\t */\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: () => `select-input-${GenRandomId()}`,\n\t\t},\n\n\t\t/**\n\t\t * Visible label for the input element\n\t\t *\n\t\t * @todo Set default for @nextcloud/vue 9\n\t\t */\n\t\tinputLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Pass true if you are using an external label\n\t\t */\n\t\tlabelOutside: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Display a visible border around dropdown options\n\t\t * which have keyboard focus\n\t\t */\n\t\tkeyboardFocusBorder: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Key of the displayed label for object options\n\t\t *\n\t\t * Defaults to the internal vue-select string documented at the link\n\t\t * below\n\t\t *\n\t\t * Enabling `userSelect` will automatically set this to `'displayName'`\n\t\t * unless this prop is set explicitly\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#label\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Show the loading icon\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#loading\n\t\t */\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Allow selection of multiple options\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#multiple\n\t\t */\n\t\tmultiple: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Disable automatic wrapping when selected options overflow the width\n\t\t */\n\t\tnoWrap: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Array of options\n\t\t *\n\t\t * @type {Array<string | number | Record<string | number, any>>}\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#options\n\t\t */\n\t\toptions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * Placeholder text\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#placeholder\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Customized component's response to keydown events while the search input has focus\n\t\t *\n\t\t * @see https://vue-select.org/guide/keydown.html#mapkeydown\n\t\t */\n\t\tmapKeydown: {\n\t\t\ttype: Function,\n\t\t\t/**\n\t\t\t * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n\t\t\t *\n\t\t\t * @param {Record<number, Function>} map - Mapped keyCode to handlers { <keyCode>:<callback> }\n\t\t\t * @param {import('@nextcloud/vue-select').VueSelect} vm - VueSelect instance\n\t\t\t * @return {Record<number, Function>} patched keydown event handlers\n\t\t\t */\n\t\t\tdefault(map, vm) {\n\t\t\t\treturn {\n\t\t\t\t\t...map,\n\t\t\t\t\t/**\n\t\t\t\t\t * Patched Escape handler to stop propagation from open select\n\t\t\t\t\t *\n\t\t\t\t\t * @param {KeyboardEvent} event - default keydown event handler\n\t\t\t\t\t */\n\t\t\t\t\t27: (event) => {\n\t\t\t\t\t\tif (vm.open) {\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Default VueSelect's handler\n\t\t\t\t\t\tmap[27](event)\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#uid\n\t\t */\n\t\tuid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => GenRandomId(),\n\t\t},\n\n\t\t/**\n\t\t * When `appendToBody` is true, this sets the placement of the dropdown\n\t\t *\n\t\t * @type {'bottom' | 'top'}\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * If false, the focused dropdown option will not be reset when filtered\n\t\t * options change\n\t\t */\n\t\tresetFocusOnOptionsChange: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Enable the user selector with avatars\n\t\t *\n\t\t * Objects must contain the data expected by the\n\t\t * [NcListItemIcon](#/Components/NcListItemIcon) and\n\t\t * [NcAvatar](#/Components/NcAvatar) components\n\t\t */\n\t\tuserSelect: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Currently selected value\n\t\t *\n\t\t * The `v-model` directive may be used for two-way data binding\n\t\t *\n\t\t * @type {string | number | Record<string | number, any> | Array<any>}\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html#value\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: [String, Number, Object, Array],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable if a value is required for native form validation\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Any available prop\n\t\t *\n\t\t * @see https://vue-select.org/api/props.html\n\t\t */\n\t\t// Not an actual prop but needed to show in vue-styleguidist docs\n\t\t// eslint-disable-next-line\n\t\t' ': {},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * All events from https://vue-select.org/api/events.html\n\t\t */\n\t\t// Not an actual event but needed to show in vue-styleguidist docs\n\t\t' ',\n\t\t'update:modelValue',\n\t],\n\n\tsetup() {\n\t\tconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-clickable-area'))\n\t\tconst gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-grid-baseline'))\n\t\tconst avatarSize = clickableArea - 2 * gridBaseLine\n\n\t\treturn {\n\t\t\tavatarSize,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsearch: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputRequired() {\n\t\t\tif (!this.required) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t// The <input> itself does not have any value so we set the `required` attribute conditionally\n\t\t\treturn this.modelValue === null || (Array.isArray(this.modelValue) && this.modelValue.length === 0)\n\t\t},\n\n\t\tlocalCalculatePosition() {\n\t\t\tif (this.calculatePosition !== null) {\n\t\t\t\treturn this.calculatePosition\n\t\t\t}\n\n\t\t\treturn (dropdownMenu, component, { width }) => {\n\t\t\t\tdropdownMenu.style.width = width\n\n\t\t\t\tconst addClass = {\n\t\t\t\t\tname: 'addClass',\n\t\t\t\t\tfn(/* middlewareArgs */) {\n\t\t\t\t\t\tdropdownMenu.classList.add('vs__dropdown-menu--floating')\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tconst togglePlacementClass = {\n\t\t\t\t\tname: 'togglePlacementClass',\n\t\t\t\t\tfn({ placement }) {\n\t\t\t\t\t\tcomponent.$el.classList.toggle(\n\t\t\t\t\t\t\t'select--drop-up',\n\t\t\t\t\t\t\tplacement === 'top',\n\t\t\t\t\t\t)\n\t\t\t\t\t\tdropdownMenu.classList.toggle(\n\t\t\t\t\t\t\t'vs__dropdown-menu--floating-placement-top',\n\t\t\t\t\t\t\tplacement === 'top',\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tconst updatePosition = () => {\n\t\t\t\t\tcomputePosition(component.$refs.toggle, dropdownMenu, {\n\t\t\t\t\t\tplacement: this.placement,\n\t\t\t\t\t\tmiddleware: [\n\t\t\t\t\t\t\toffset(-1),\n\t\t\t\t\t\t\taddClass,\n\t\t\t\t\t\t\ttogglePlacementClass,\n\t\t\t\t\t\t\t// Match popperjs default collision prevention behavior by appending the following middleware in order\n\t\t\t\t\t\t\tflip(),\n\t\t\t\t\t\t\tshift({ limiter: limitShift() }),\n\t\t\t\t\t\t],\n\t\t\t\t\t}).then(({ x, y }) => {\n\t\t\t\t\t\tObject.assign(dropdownMenu.style, {\n\t\t\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\t\t\ttop: `${y}px`,\n\t\t\t\t\t\t\twidth: `${component.$refs.toggle.getBoundingClientRect().width}px`,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst cleanup = autoUpdate(\n\t\t\t\t\tcomponent.$refs.toggle,\n\t\t\t\t\tdropdownMenu,\n\t\t\t\t\tupdatePosition,\n\t\t\t\t)\n\n\t\t\t\treturn cleanup\n\t\t\t}\n\t\t},\n\n\t\tlocalFilterBy() {\n\t\t\t// Match the email notation like \"Jane <j.doe@example.com>\" with the email address as matching group\n\t\t\tconst EMAIL_NOTATION = /[^<]*<([^>]+)/\n\n\t\t\tif (this.filterBy !== null) {\n\t\t\t\treturn this.filterBy\n\t\t\t}\n\t\t\tif (this.userSelect) {\n\t\t\t\treturn (option, label, search) => {\n\t\t\t\t\tconst match = search.match(EMAIL_NOTATION)\n\t\t\t\t\treturn (match && option.subname?.toLocaleLowerCase?.()?.indexOf(match[1].toLocaleLowerCase()) > -1)\n\t\t\t\t\t\t|| (`${label} ${option.subname}`\n\t\t\t\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t\t\t\t.indexOf(search.toLocaleLowerCase()) > -1)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn VueSelect.props.filterBy.default\n\t\t},\n\n\t\tlocalLabel() {\n\t\t\tif (this.label !== null) {\n\t\t\t\treturn this.label\n\t\t\t}\n\t\t\tif (this.userSelect) {\n\t\t\t\treturn 'displayName'\n\t\t\t}\n\t\t\treturn VueSelect.props.label.default\n\t\t},\n\n\t\tpropsToForward() {\n\t\t\tconst vueSelectKeys = [\n\t\t\t\t...Object.keys(VueSelect.props),\n\t\t\t\t...VueSelect.mixins.flatMap(mixin => Object.keys(mixin.props ?? {})),\n\t\t\t]\n\t\t\tconst initialPropsToForward = Object.fromEntries(\n\t\t\t\tObject.entries(this.$props)\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t\t.filter(([key, _value]) => vueSelectKeys.includes(key)),\n\t\t\t)\n\t\t\tconst propsToForward = {\n\t\t\t\t...initialPropsToForward,\n\t\t\t\t// Custom overrides of vue-select props\n\t\t\t\tcalculatePosition: this.localCalculatePosition,\n\t\t\t\tfilterBy: this.localFilterBy,\n\t\t\t\tlabel: this.localLabel,\n\t\t\t}\n\t\t\treturn propsToForward\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n\t\t\twarn('[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.')\n\t\t}\n\t\tif (this.inputLabel && this.ariaLabelCombobox) {\n\t\t\twarn('[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n}\n</script>\n\n<style lang=\"scss\">\nbody {\n\t/**\n\t * Set custom vue-select CSS variables.\n\t * Needs to be on the body (not :root) for theming to apply (see nextcloud/server#36462)\n\t */\n\n\t/* Search Input */\n\t--vs-search-input-color: var(--color-main-text);\n\t--vs-search-input-bg: var(--color-main-background);\n\t--vs-search-input-placeholder-color: var(--color-text-maxcontrast);\n\n\t/* Font */\n\t--vs-font-size: var(--default-font-size);\n\t--vs-line-height: var(--default-line-height);\n\n\t/* Disabled State */\n\t--vs-state-disabled-bg: var(--color-background-hover);\n\t--vs-state-disabled-color: var(--color-text-maxcontrast);\n\t--vs-state-disabled-controls-color: var(--color-text-maxcontrast);\n\t--vs-state-disabled-cursor: not-allowed;\n\t--vs-disabled-bg: var(--color-background-hover);\n\t--vs-disabled-color: var(--color-text-maxcontrast);\n\t--vs-disabled-cursor: not-allowed;\n\n\t/* Borders */\n\t--vs-border-color: var(--color-border-maxcontrast);\n\t--vs-border-width: var(--border-width-input, 2px) !important;\n\t--vs-border-style: solid;\n\t--vs-border-radius: var(--border-radius-large);\n\n\t/* Component Controls: Clear, Open Indicator */\n\t--vs-controls-color: var(--color-main-text);\n\n\t/* Selected */\n\t--vs-selected-bg: var(--color-background-hover);\n\t--vs-selected-color: var(--color-main-text);\n\t--vs-selected-border-color: var(--vs-border-color);\n\t--vs-selected-border-style: var(--vs-border-style);\n\t--vs-selected-border-width: var(--vs-border-width);\n\n\t/* Dropdown */\n\t--vs-dropdown-bg: var(--color-main-background);\n\t--vs-dropdown-color: var(--color-main-text);\n\t--vs-dropdown-z-index: 9999;\n\t--vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\n\n\t/* Options */\n\t--vs-dropdown-option-padding: 8px 20px;\n\n\t/* Active State */\n\t--vs-dropdown-option--active-bg: var(--color-background-hover);\n\t--vs-dropdown-option--active-color: var(--color-main-text);\n\n\t/* Keyboard Focus State */\n\t--vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\n\n\t/* Deselect State */\n\t--vs-dropdown-option--deselect-bg: var(--color-error);\n\t--vs-dropdown-option--deselect-color: #fff;\n\n\t/* Transitions */\n\t--vs-transition-duration: 0ms;\n\n\t/* Actions */\n\t--vs-actions-padding: 0 8px 0 4px;\n}\n\n.v-select.select {\n\t/* Override default vue-select styles */\n\tmin-height: var(--default-clickable-area);\n\tmin-width: 260px;\n\tmargin: 0 0 var(--default-grid-baseline);\n\n\t&.vs--open {\n\t\t--vs-border-width: var(--border-width-input-focused, 2px);\n\t}\n\n\t.select__label {\n\t\tdisplay: block;\n\t\tmargin-bottom: 2px;\n\t}\n\n\t.vs__selected {\n\t\theight: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n\t\tmargin: calc(var(--default-grid-baseline) / 2);\n\t\tpadding-block: 0;\n\t\tpadding-inline: 12px 8px;\n\t\tborder-radius: 16px !important;\n\t\tbackground: var(--color-primary-element-light);\n\t\tborder: none;\n\t}\n\n\t&.vs--open .vs__selected:first-of-type {\n\t\tmargin-inline-start: calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px))) !important; // prevent jumping\n\t}\n\n\t.vs__search {\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-main-text);\n\t\tmin-height: unset !important;\n\t\theight: calc(var(--default-clickable-area) - 2 * var(--vs-border-width)) !important;\n\n\t\t&::placeholder {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\n\t.vs__search, .vs__search:focus {\n\t\tmargin: 0;\n\t}\n\n\t.vs__dropdown-toggle {\n\t\tposition: relative;\n\t\tmax-height: 100px;\n\t\tpadding: 0;\n\t\toverflow-y: auto;\n\t}\n\n\t.vs__actions {\n\t\tposition: sticky;\n\t\ttop: 0;\n\t}\n\n\t.vs__clear {\n\t\tmargin-right: 2px;\n\t}\n\n\t&.vs--open .vs__dropdown-toggle {\n\t\tborder-width: var(--border-width-input-focused);\n\t\toutline: 2px solid var(--color-main-background);\n\t\tborder-color: var(--color-main-text);\n\t\tborder-bottom-color: transparent;\n\t}\n\n\t&:not(.vs--disabled, .vs--open) .vs__dropdown-toggle:hover {\n\t\toutline: 2px solid var(--color-main-background);\n\t\tborder-color: var(--color-main-text);\n\t}\n\n\t&.vs--disabled {\n\t\t.vs__search,\n\t\t.vs__selected {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t.vs__clear,\n\t\t.vs__deselect {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&--no-wrap {\n\t\t.vs__selected-options {\n\t\t\tflex-wrap: nowrap;\n\t\t\toverflow: auto;\n\t\t\tmin-width: unset;\n\t\t\t.vs__selected {\n\t\t\t\tmin-width: unset;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--drop-up {\n\t\t&.vs--open {\n\t\t\t.vs__dropdown-toggle {\n\t\t\t\tborder-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);\n\t\t\t\tborder-top-color: transparent;\n\t\t\t\tborder-bottom-color: var(--color-main-text);\n\t\t\t}\n\t\t}\n\t}\n\n\t.vs__selected-options {\n\t\t// If search is hidden, ensure that the height of the search is the same\n\t\tmin-height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width));\n\n\t\t// Hide search from dom if unused to prevent unneeded flex wrap\n\t\t.vs__selected ~ .vs__search[readonly] {\n\t\t\tposition: absolute;\n\t\t}\n\t\tpadding: 0 5px;\n\t}\n\n\t&.vs--single {\n\t\t&.vs--loading,\n\t\t&.vs--open {\n\t\t\t.vs__selected {\n\t\t\t\t// Fix `max-width` for `position: absolute`\n\t\t\t\tmax-width: 100%;\n\t\t\t\t// Fix color to be accessible\n\t\t\t\topacity: 1;\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t\t.vs__selected-options {\n\t\t\tflex-wrap: nowrap;\n\t\t}\n\t\t.vs__selected {\n\t\t\tbackground: unset !important;\n\t\t}\n\t}\n}\n\n.vs__dropdown-menu {\n\tborder-width: var(--border-width-input-focused) !important;\n\tborder-color: var(--color-main-text) !important;\n\toutline: none !important;\n\tbox-shadow:\n\t\t-2px 0 0 var(--color-main-background), // Right\n\t\t0 2px 0 var(--color-main-background), // Bottom\n\t\t2px 0 0 var(--color-main-background), // Left\n\t\t!important;\n\tpadding: 4px !important;\n\n\t&--floating {\n\t\t/* Fallback styles overidden by programmatically set inline styles */\n\t\twidth: max-content;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\n\t\t&-placement-top {\n\t\t\tborder-radius: var(--vs-border-radius) var(--vs-border-radius) 0 0 !important;\n\t\t\tborder-top-style: var(--vs-border-style) !important;\n\t\t\tborder-bottom-style: none !important;\n\t\t\tbox-shadow:\n\t\t\t\t0 -2px 0 var(--color-main-background), // Top\n\t\t\t\t-2px 0 0 var(--color-main-background), // Right\n\t\t\t\t2px 0 0 var(--color-main-background), // Left\n\t\t\t\t!important\n\t\t}\n\t}\n\n\t.vs__dropdown-option {\n\t\tborder-radius: 6px !important;\n\t}\n\n\t.vs__no-options {\n\t\tcolor: var(--color-text-lighter) !important;\n\t}\n}\n\n// Selected users require slightly different padding\n.user-select .vs__selected {\n\tpadding-inline: 0 5px !important;\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","_createSlots","_withCtx","_createElementVNode","_toHandlers","_createVNode","_createCommentVNode","_createTextVNode","_toDisplayString","_renderList","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcSettingsInputText-B5FrLCL9.mjs","sources":["../../src/components/NcSettingsInputText/NcSettingsInputText.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n```vue\n<NcSettingsInputText label=\"Label\" hint=\"Hint\" />\n<NcSettingsInputText label=\"Label\" model-value=\"Value\" hint=\"Hint\" disabled />\n```\n\n</docs>\n\n<template>\n\t<form ref=\"form\"\n\t\t:disabled=\"disabled\"\n\t\t@submit.prevent.stop=\"onSubmit\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<label :for=\"id\" class=\"action-input__label\">{{ label }}</label>\n\t\t\t<input :id=\"id\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:value=\"modelValue\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@input=\"onInput\"\n\t\t\t\t@change=\"onChange\">\n\t\t\t<input :id=\"idSubmit\"\n\t\t\t\t:value=\"submitTranslated\"\n\t\t\t\ttype=\"submit\"\n\t\t\t\tclass=\"action-input__submit\">\n\t\t\t<p v-if=\"hint\" class=\"hint\">\n\t\t\t\t{{ hint }}\n\t\t\t</p>\n\t\t</div>\n\t</form>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSettingsInputText',\n\tprops: {\n\t\t/**\n\t\t * label of the select group element\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * hint of the select group input\n\t\t */\n\t\thint: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'settings-input-text-' + GenRandomId(),\n\t\t\tvalidator: id => id.trim() !== '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'change',\n\t\t'input',\n\t\t'submit',\n\t\t'update:modelValue',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tsubmitTranslated: t('Submit'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tidSubmit() {\n\t\t\treturn this.id + '-submit'\n\t\t},\n\t},\n\tmethods: {\n\t\tonInput(event) {\n\t\t\tthis.$emit('input', event)\n\t\t\t/**\n\t\t\t * Emitted when the inputs value changes\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tthis.$emit('update:modelValue', event.target.value)\n\t\t},\n\t\tonSubmit(event) {\n\t\t\tif (!this.disabled) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on submit of the input field\n\t\t\t\t *\n\t\t\t\t * @type {Event}\n\t\t\t\t */\n\t\t\t\tthis.$emit('submit', event)\n\t\t\t}\n\t\t},\n\t\tonChange(event) {\n\t\t\t/**\n\t\t\t * Emitted on change of the input field\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('change', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n\t.input-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\twidth: 100%;\n\t\tmax-width: 400px;\n\n\t\t& .action-input__label {\n\t\t\tmargin-right: 12px;\n\t\t}\n\n\t\t// if disabled, change cursor\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t.hint {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tmargin-left: 8px;\n\t\t}\n\t}\n\n</style>\n"],"names":["_createElementBlock","_withModifiers","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":";;;;;AAyCA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,UAAU;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,IAAI;AAAA,MACH,MAAM;AAAA,MACN,SAAS,MAAM,yBAAyB,YAAa;AAAA,MACrD,WAAW,QAAM,GAAG,KAAK,MAAM;AAAA,IAC/B;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAED,OAAO;AACN,WAAO;AAAA,MACN,kBAAkB,EAAE,QAAQ;AAAA,IAC7B;AAAA,EACA;AAAA,EAED,UAAU;AAAA;AAAA;AAAA;AAAA,IAIT,WAAW;AACV,aAAO,KAAK,KAAK;AAAA,IACjB;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACR,QAAQ,OAAO;AACd,WAAK,MAAM,SAAS,KAAK;AAMzB,WAAK,MAAM,qBAAqB,MAAM,OAAO,KAAK;AAAA,IAClD;AAAA,IACD,SAAS,OAAO;AACf,UAAI,CAAC,KAAK,UAAU;AAMnB,aAAK,MAAM,UAAU,KAAK;AAAA,MAC3B;AAAA,IACA;AAAA,IACD,SAAS,OAAO;AAMf,WAAK,MAAM,UAAU,KAAK;AAAA,IAC1B;AAAA,EACD;AACF;AAxIA,MAAA,aAAA,CAAA,UAAA;AAkBO,MAAA,aAAA,EAAA,OAAM,gBAAe;AAlB5B,MAAA,aAAA,CAAA,KAAA;AAAA,MAAA,aAAA,CAAA,MAAA,SAAA,UAAA;AAAA,MAAA,aAAA,CAAA,MAAA,OAAA;;EAAA,KAAA;AAAA,EA8BkB,OAAM;;;sBAfvBA,mBAmBO,QAAA;AAAA,IAnBD,KAAI;AAAA,IACR,UAAU,OAAQ;AAAA,IAClB,UAAM,OAAA,CAAA,MAAA,OAAA,CAAA,IAjBTC,2BAiBwB,SAAQ,YAAA,SAAA,SAAA,GAAA,IAAA,GAAA,CAAA,WAAA,MAAA,CAAA;AAAA;IAC9BC,mBAeM,OAfN,YAeM;AAAA,MAdLA,mBAAgE,SAAA;AAAA,QAAxD,KAAK,OAAE;AAAA,QAAE,OAAM;AAAA,MAAyB,GAAAC,gBAAA,OAAA,KAAK,GAnBxD,GAAA,UAAA;AAAA,MAoBGD,mBAKoB,SAAA;AAAA,QALZ,IAAI,OAAE;AAAA,QACb,MAAK;AAAA,QACJ,OAAO,OAAU;AAAA,QACjB,UAAU,OAAQ;AAAA,QAClB,gDAAO,SAAO,WAAA,SAAA,QAAA,GAAA,IAAA;AAAA,QACd,iDAAQ,SAAQ,YAAA,SAAA,SAAA,GAAA,IAAA;AAAA,MAzBrB,GAAA,MAAA,IAAA,UAAA;AAAA,MA0BGA,mBAG8B,SAAA;AAAA,QAHtB,IAAI,SAAQ;AAAA,QAClB,OAAO,MAAgB;AAAA,QACxB,MAAK;AAAA,QACL,OAAM;AAAA,MA7BV,GAAA,MAAA,GAAA,UAAA;AAAA,MA8BY,OAAI,qBAAbF,mBAEI,KAFJ,YAEIG,gBADA,OAAI,IAAA,GAAA,CAAA,KA/BXC,mBAAA,IAAA,IAAA;AAAA;EAAA,GAAA,IAAA,UAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcSettingsSelectGroup-CKIbxms2.mjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n```vue\n<template>\n\t<section>\n\t\t<NcSettingsSelectGroup v-model=\"groups\" placeholder=\"Select user groups\" label=\"The hidden label\" />\n\t\t<NcSettingsSelectGroup v-model=\"otherGroups\" :disabled=\"true\" label=\"Also a fallback for the placeholder\" />\n\t\t<div>You have selected: <code>{{ groups }}</code> and <code>{{ otherGroups }}</code></div>\n\t</section>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tgroups: [],\n\t\t\totherGroups: ['admin']\n\t\t}\n\t}\n}\n</script>\n<style scoped>\nsection * {\n\tpadding: 6px 0px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<label v-if=\"label\" :for=\"id\" class=\"hidden-visually\">{{ label }}</label>\n\t\t<NcSelect :model-value=\"inputValue\"\n\t\t\t:options=\"groupsArray\"\n\t\t\t:placeholder=\"placeholder || label\"\n\t\t\t:filter-by=\"filterGroups\"\n\t\t\t:input-id=\"id\"\n\t\t\t:limit=\"5\"\n\t\t\tlabel=\"displayname\"\n\t\t\t:multiple=\"true\"\n\t\t\t:close-on-select=\"false\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t@update:model-value=\"update\"\n\t\t\t@search=\"onSearch\" />\n\t\t<div v-show=\"hasError\" class=\"select-group-error\">\n\t\t\t{{ errorMessage }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '../../components/NcSelect/index.js'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The text of the label element of the select group input\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Placeholder for the input element\n\t\t * For backwards compatibility it falls back to the `label` value\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'action-' + GenRandomId(),\n\t\t\tvalidator: id => id.trim() !== '',\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: [\n\t\t'error',\n\t\t'input',\n\t\t'update:modelValue',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\t/** Temporary store to cache groups */\n\t\t\tgroups: {},\n\t\t\trandId: GenRandomId(),\n\t\t\terrorMessage: '',\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * If the error message should be shown\n\t\t */\n\t\thasError() {\n\t\t\treturn this.errorMessage !== ''\n\t\t},\n\n\t\t/**\n\t\t * Validate input value and only return valid strings (group IDs)\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tfilteredValue() {\n\t\t\treturn this.modelValue.filter((group) => group !== '' && typeof group === 'string')\n\t\t},\n\n\t\t/**\n\t\t * value property converted to an array of group objects used as input for the NcSelect\n\t\t */\n\t\tinputValue() {\n\t\t\treturn this.filteredValue.map(\n\t\t\t\t(id) => {\n\t\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this.groups[id]\n\t\t\t\t},\n\t\t\t)\n\t\t},\n\n\t\t/**\n\t\t * Convert groups object to array of groups required for NcSelect.options\n\t\t * Filter out currently selected values\n\t\t *\n\t\t * @return {object[]}\n\t\t */\n\t\tgroupsArray() {\n\t\t\treturn Object.values(this.groups).filter(g => !this.modelValue.includes(g.id))\n\t\t},\n\t},\n\twatch: {\n\t\t/**\n\t\t * If the value is changed, check that all groups are loaded so we show the correct display name\n\t\t */\n\t\tmodelValue: {\n\t\t\thandler() {\n\t\t\t\tconst loadedGroupIds = Object.keys(this.groups)\n\t\t\t\tconst missing = this.filteredValue.filter(group => !loadedGroupIds.includes(group))\n\t\t\t\tmissing.forEach((groupId) => {\n\t\t\t\t\tthis.loadGroup(groupId)\n\t\t\t\t})\n\t\t\t},\n\t\t\t// Run the watch handler also when the component is initially mounted\n\t\t\timmediate: true,\n\t\t},\n\t},\n\t/**\n\t * Load groups matching the empty query to reduce API calls\n\t */\n\tasync mounted() {\n\t\t// version scoped to prevent issues with different library versions\n\t\tconst storageName = `${appName}:${appVersion}/initialGroups`\n\n\t\tlet savedGroups = window.sessionStorage.getItem(storageName)\n\t\tif (savedGroups) {\n\t\t\tsavedGroups = Object.fromEntries(JSON.parse(savedGroups).map(group => [group.id, group]))\n\t\t\tthis.groups = { ...this.groups, ...savedGroups }\n\t\t} else {\n\t\t\tawait this.loadGroup('')\n\t\t\twindow.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)))\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Called when a new group is selected or previous group is deselected to emit the update event\n\t\t *\n\t\t * @param {object[]} updatedValue Array of selected groups\n\t\t */\n\t\tupdate(updatedValue) {\n\t\t\tconst value = updatedValue.map((element) => element.id)\n\t\t\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t\tthis.$emit('update:modelValue', value)\n\t\t},\n\n\t\t/**\n\t\t * Use provisioning API to search for given group and save it in the groups object\n\t\t *\n\t\t * @param {string} query The query like parts of the id oder display name\n\t\t * @return {boolean}\n\t\t */\n\t\tasync loadGroup(query) {\n\t\t\ttry {\n\t\t\t\tquery = typeof query === 'string' ? encodeURI(query) : ''\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2))\n\n\t\t\t\t// No network error, so reset any error after 5 seconds\n\t\t\t\tif (this.errorMessage !== '') {\n\t\t\t\t\twindow.setTimeout(() => {\n\t\t\t\t\t\tthis.errorMessage = ''\n\t\t\t\t\t}, 5000)\n\t\t\t\t}\n\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tconst newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]))\n\t\t\t\t\tthis.groups = { ...this.groups, ...newGroups }\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t/** Emitted if groups could not be queried.<br />**Payload:** `error` (`object`) - The Axios error */\n\t\t\t\tthis.$emit('error', error)\n\t\t\t\tthis.errorMessage = t('Unable to search the group')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/**\n\t\t * Custom filter function for `NcSelect` to filter by ID *and* display name\n\t\t *\n\t\t * @param {object} option One of the groups\n\t\t * @param {string} label The label property of the group\n\t\t * @param {string} search The current search string\n\t\t */\n\t\tfilterGroups(option, label, search) {\n\t\t\treturn `${label || ''} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1\n\t\t},\n\n\t\t/**\n\t\t * Debounce the group search (reduce API calls)\n\t\t */\n\t\tonSearch: debounce(function(query) {\n\t\t\tthis.loadGroup(query)\n\t\t}, 200),\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.select-group-error {\n\tcolor: var(--color-error);\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":["_createElementBlock","_toDisplayString","_createCommentVNode","_createVNode","_withDirectives","_createElementVNode"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcTextArea-C-PMlEbl.mjs","sources":["../../src/components/NcTextArea/NcTextArea.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component is a textarea field.\nIt extends and styles an HTMLTextAreaElement.\n\n```\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcTextArea v-model=\"text\"\n\t\t\tlabel=\"Text area\"\n\t\t\tplaceholder=\"Placeholders are possible\"\n\t\t\thelper-text=\"This is a regular helper text.\" />\n\t\t<NcTextArea label=\"Success state\"\n\t\t\t:success=\"true\" />\n\t\t<NcTextArea label=\"Error state\"\n\t\t\tplaceholder=\"Enter something valid\"\n\t\t\thelper-text=\"Helper texts will be styled accordingly.\"\n\t\t\t:error=\"true\" />\n\t\t<NcTextArea label=\"Disabled\"\n\t\t\t:disabled=\"true\" />\n\t\t<NcTextArea label=\"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<NcTextArea id=\"textField\"\n\t\t\t\t:label-outside=\"true\"\n\t\t\t\tplaceholder=\"Text area with external label\" />\n\t\t</div>\n\t\t<NcTextArea label=\"Custom size and no resize\"\n\t\t\tresize=\"none\"\n\t\t\trows=\"5\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttext: 'This is text.',\n\t\t}\n\t},\n}\n</script>\n\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\twidth: 100%;\n\talign-items: center;\n\tgap: 14px;\n\n\t> label {\n\t\tflex-shrink: 0;\n\t}\n}\n</style>\n```\n</docs>\n\n<template>\n\t<div class=\"textarea\" :class=\"{ 'textarea--disabled': disabled }\">\n\t\t<div class=\"textarea__main-wrapper\">\n\t\t\t<textarea v-bind=\"$attrs\"\n\t\t\t\t:id=\"computedId\"\n\t\t\t\tref=\"input\"\n\t\t\t\tclass=\"textarea__input\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:placeholder=\"computedPlaceholder\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\taria-live=\"polite\"\n\t\t\t\t:class=\"[inputClass,\n\t\t\t\t\t{\n\t\t\t\t\t\t'textarea__input--label-outside': labelOutside,\n\t\t\t\t\t\t'textarea__input--success': success,\n\t\t\t\t\t\t'textarea__input--error': error,\n\t\t\t\t\t}]\"\n\t\t\t\t:style=\"{ resize: resize }\"\n\t\t\t\t:value=\"modelValue\"\n\t\t\t\t@input=\"handleInput\" />\n\t\t\t<!-- Label -->\n\t\t\t<label v-if=\"!labelOutside && isValidLabel\"\n\t\t\t\tclass=\"textarea__label\"\n\t\t\t\t:for=\"computedId\">\n\t\t\t\t{{ label }}\n\t\t\t</label>\n\t\t</div>\n\t\t<p v-if=\"helperText.length > 0\"\n\t\t\t:id=\"`${inputName}-helper-text`\"\n\t\t\tclass=\"textarea__helper-text-message\"\n\t\t\t:class=\"{\n\t\t\t\t'textarea__helper-text-message--error': error,\n\t\t\t\t'textarea__helper-text-message--success': success,\n\t\t\t}\">\n\t\t\t<Check v-if=\"success\" class=\"textarea__helper-text-message__icon\" :size=\"18\" />\n\t\t\t<AlertCircle v-else-if=\"error\" class=\"textarea__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\t</div>\n</template>\n\n<script>\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\n\nexport default {\n\tname: 'NcTextArea',\n\n\tcomponents: {\n\t\tAlertCircle,\n\t\tCheck,\n\t},\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\t/**\n\t\t * The value of the input field\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * The input label, always provide one for accessibility purposes.\n\t\t * This will also be used as a placeholder unless the placeholder\n\t\t * prop is populated with a different string.\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Pass in true if you want to use an external label. This is useful\n\t\t * if you need a label that looks different from the one provided by\n\t\t * this component\n\t\t */\n\t\tlabelOutside: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The placeholder of the input. This defaults as the string that's\n\t\t * passed into the label prop. In order to remove the placeholder,\n\t\t * pass in an empty string.\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Toggles the success state of the component. Adds a checkmark icon.\n\t\t * this cannot be used together with canClear.\n\t\t */\n\t\tsuccess: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Toggles the error state of the component. Adds an error icon.\n\t\t * this cannot be used together with canClear.\n\t\t */\n\t\terror: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Additional helper text message\n\t\t *\n\t\t * This will be displayed beneath the input field. In case the field is\n\t\t * also marked as having an error, the text will be displayed in red.\n\t\t */\n\t\thelperText: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Disable the input field\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Class to add to the input field.\n\t\t * Necessary to use NcInputField in the NcActionInput component.\n\t\t */\n\t\tinputClass: {\n\t\t\ttype: [Object, String],\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The resize CSS property sets whether an element is resizable, and if\n\t\t * so, in which directions.\n\t\t */\n\t\tresize: {\n\t\t\ttype: String,\n\t\t\tdefault: 'both',\n\t\t\tvalidator: (value) => ['both', 'vertical', 'horizontal', 'none'].includes(value),\n\t\t},\n\t},\n\n\temits: [\n\t\t'update:modelValue',\n\t],\n\n\tcomputed: {\n\t\tcomputedId() {\n\t\t\treturn this.$attrs.id && this.$attrs.id !== '' ? this.$attrs.id : this.inputName\n\t\t},\n\n\t\tinputName() {\n\t\t\treturn 'input' + GenRandomId()\n\t\t},\n\n\t\thasPlaceholder() {\n\t\t\treturn this.placeholder !== '' && this.placeholder !== undefined\n\t\t},\n\n\t\tcomputedPlaceholder() {\n\t\t\treturn this.hasPlaceholder ? this.placeholder : this.label\n\t\t},\n\n\t\tisValidLabel() {\n\t\t\tconst isValidLabel = this.label || this.labelOutside\n\t\t\tif (!isValidLabel) {\n\t\t\t\tconsole.warn('You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.')\n\t\t\t}\n\t\t\treturn isValidLabel\n\t\t},\n\n\t\tariaDescribedby() {\n\t\t\tconst ariaDescribedby = []\n\t\t\tif (this.helperText.length > 0) {\n\t\t\t\tariaDescribedby.push(`${this.inputName}-helper-text`)\n\t\t\t}\n\t\t\tif (this.$attrs['aria-describedby']) {\n\t\t\t\tariaDescribedby.push(this.$attrs['aria-describedby'])\n\t\t\t}\n\t\t\treturn ariaDescribedby.join(' ') || null\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Focus the input element\n\t\t *\n\t\t * @public\n\t\t */\n\t\tfocus() {\n\t\t\tthis.$refs.input.focus()\n\t\t},\n\n\t\t/**\n\t\t * Select all the text in the input\n\t\t *\n\t\t * @public\n\t\t */\n\t\tselect() {\n\t\t\tthis.$refs.input.select()\n\t\t},\n\n\t\thandleInput(event) {\n\t\t\tthis.$emit('update:modelValue', event.target.value)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.textarea {\n\tposition: relative;\n\twidth: 100%;\n\tborder-radius: var(--border-radius-large);\n\tmargin-block-start: 6px; // for the label in active state\n\tresize: vertical;\n\n\t&__main-wrapper {\n\t\tposition: relative;\n\t}\n\n\t&--disabled {\n\t\topacity: 0.7;\n\t\tfilter: saturate(0.7);\n\t}\n\n\t&__input {\n\t\tmargin: 0;\n\t\tpadding-inline: 10px 6px; // align with label 8px margin label + 4px padding label - 2px border input\n\t\twidth: 100%;\n\t\theight: calc(var(--default-clickable-area) * 2);\n\t\tfont-size: var(--default-font-size);\n\t\ttext-overflow: ellipsis;\n\n\t\tbackground-color: var(--color-main-background);\n\t\tcolor: var(--color-main-text);\n\t\tborder: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tcursor: pointer;\n\n\t\t&:active:not([disabled]),\n\t\t&:hover:not([disabled]),\n\t\t&:focus:not([disabled]) {\n\t\t\tborder-width: var(--border-width-input-focused, 2px);\n\t\t\tborder-color: var(--color-main-text);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t}\n\n\t\t// Hide placeholder while not focussed -> show label instead (only if internal label is used)\n\t\t&:not(:focus,&--label-outside)::placeholder {\n\t\t\topacity: 0;\n\t\t}\n\n\t\t&:focus {\n\t\t\tcursor: text;\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbox-shadow: unset !important; // Override server rules\n\t\t}\n\n\t\t&--success {\n\t\t\tborder-color: var(--color-success) !important; //Override hover border color\n\t\t\t&:focus-visible {\n\t\t\t\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n\t\t\t}\n\t\t}\n\n\t\t&--error {\n\t\t\tborder-color: var(--color-error) !important; //Override hover border color\n\t\t\t&:focus-visible {\n\t\t\t\tbox-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tposition: absolute;\n\t\tmargin-inline: 12px 0;\n\t\tmax-width: fit-content;\n\t\tinset-block-start: 11px;\n\t\tinset-inline: 0;\n\t\t// Fix color so that users do not think the input already has content\n\t\tcolor: var(--color-text-maxcontrast);\n\t\t// only one line labels are allowed\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\t// forward events to input\n\t\tpointer-events: none;\n\t\t// Position transition\n\t\ttransition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n\t}\n\n\t&__input:focus + &__label,\n\t&__input:not(:placeholder-shown) + &__label {\n\t\tinset-block-start: -10px;\n\t\tline-height: 1.5; // minimum allowed line height for accessibility\n\t\tfont-size: 13px; // minimum allowed font size for accessibility\n\t\tfont-weight: 500;\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: var(--color-main-background);\n\t\tpadding-inline: 4px;\n\t\tmargin-inline-start: 8px;\n\n\t\ttransition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n\t}\n\n\t&__helper-text-message {\n\t\tpadding-block: 4px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-inline-end: 8px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error-text);\n\t\t}\n\n\t\t&--success {\n\t\t\tcolor: var(--color-success-text);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toDisplayString","_createCommentVNode","_createBlock","_createTextVNode"],"mappings":"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"}
@@ -1,187 +0,0 @@
1
- import { r as register, p as t24, a as t, q as t40 } from "./_l10n-BEP_UzXI.mjs";
2
- import { getTimezoneManager as getTimezoneManager$1 } from "@nextcloud/timezones";
3
- import { G as GenRandomId } from "./GenRandomId-CMooMQt0.mjs";
4
- import { N as NcSelect } from "./NcSelect-B61ik8an.mjs";
5
- import { resolveComponent, createBlock, openBlock } from "vue";
6
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
7
- register(t24);
8
- function getSortedTimezoneList(timezoneList = [], additionalTimezones = []) {
9
- const sortedByContinent = {};
10
- const sortedList = [];
11
- for (const timezoneId of timezoneList) {
12
- const components = timezoneId.split("/");
13
- let [continent, name] = [components.shift(), components.join("/")];
14
- if (!name) {
15
- name = continent;
16
- continent = t("Global");
17
- }
18
- sortedByContinent[continent] = sortedByContinent[continent] || {
19
- continent,
20
- regions: []
21
- };
22
- sortedByContinent[continent].regions.push({
23
- label: getReadableTimezoneName(name),
24
- cities: [],
25
- timezoneId
26
- });
27
- }
28
- for (const additionalTimezone of additionalTimezones) {
29
- const { continent, label, timezoneId } = additionalTimezone;
30
- sortedByContinent[continent] = sortedByContinent[continent] || {
31
- continent,
32
- regions: []
33
- };
34
- sortedByContinent[continent].regions.push({
35
- label,
36
- cities: [],
37
- timezoneId
38
- });
39
- }
40
- for (const continent in sortedByContinent) {
41
- if (!Object.prototype.hasOwnProperty.call(sortedByContinent, continent)) {
42
- continue;
43
- }
44
- sortedByContinent[continent].regions.sort((a, b) => {
45
- if (a.label < b.label) {
46
- return -1;
47
- }
48
- return 1;
49
- });
50
- sortedList.push(sortedByContinent[continent]);
51
- }
52
- sortedList.sort((a, b) => {
53
- if (a.continent < b.continent) {
54
- return -1;
55
- }
56
- return 1;
57
- });
58
- return sortedList;
59
- }
60
- function getReadableTimezoneName(timezoneId) {
61
- return timezoneId.split("_").join(" ").replace("St ", "St. ").split("/").join(" - ");
62
- }
63
- const timezoneManager = getTimezoneManager$1();
64
- let initialized = false;
65
- function getTimezoneManager() {
66
- if (!initialized) {
67
- timezoneManager.registerDefaultTimezones();
68
- initialized = true;
69
- }
70
- return timezoneManager;
71
- }
72
- register(t40);
73
- const _sfc_main = {
74
- name: "NcTimezonePicker",
75
- components: {
76
- NcSelect
77
- },
78
- props: {
79
- /**
80
- * An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data
81
- */
82
- additionalTimezones: {
83
- type: Array,
84
- default: () => []
85
- },
86
- /**
87
- * The selected timezone. Use v-model for two-way binding. 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.
88
- */
89
- modelValue: {
90
- type: String,
91
- default: "floating"
92
- },
93
- /**
94
- * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`
95
- */
96
- uid: {
97
- type: [String, Number],
98
- default: () => `tz-${GenRandomId(5)}`
99
- }
100
- },
101
- emits: ["update:modelValue"],
102
- computed: {
103
- placeholder() {
104
- return t("Type to search time zone");
105
- },
106
- selectedTimezone() {
107
- for (const additionalTimezone of this.additionalTimezones) {
108
- if (additionalTimezone.timezoneId === this.modelValue) {
109
- return additionalTimezone;
110
- }
111
- }
112
- return {
113
- label: getReadableTimezoneName(this.modelValue),
114
- timezoneId: this.modelValue
115
- };
116
- },
117
- options() {
118
- const timezoneManager2 = getTimezoneManager();
119
- const timezoneList = getSortedTimezoneList(timezoneManager2.listAllTimezones(), this.additionalTimezones);
120
- let timezonesGrouped = [];
121
- Object.values(timezoneList).forEach((group) => {
122
- timezonesGrouped = timezonesGrouped.concat(group.regions);
123
- });
124
- return timezonesGrouped;
125
- }
126
- },
127
- methods: {
128
- t,
129
- change(newValue) {
130
- if (!newValue) {
131
- return;
132
- }
133
- this.$emit("update:modelValue", newValue.timezoneId);
134
- },
135
- /**
136
- * Returns whether this is a continent label,
137
- * or an actual timezone. Continent labels are not selectable.
138
- *
139
- * @param {string} option The option
140
- * @return {boolean}
141
- */
142
- isSelectable(option) {
143
- return !option.timezoneId.startsWith("tz-group__");
144
- },
145
- /**
146
- * Function to filter the timezone list.
147
- * We search in the timezoneId, so both continent and region names can be matched.
148
- *
149
- * @param {object} option The timezone option
150
- * @param {string} label The label of the timezone
151
- * @param {string} search The search string
152
- * @return {boolean}
153
- */
154
- filterBy(option, label, search) {
155
- const terms = search.trim().split(" ");
156
- if (option.timezoneId.startsWith("tz-group__")) {
157
- return option.regions.some((region) => {
158
- return this.matchTimezoneId(region.timezoneId, terms);
159
- });
160
- }
161
- return this.matchTimezoneId(option.timezoneId, terms);
162
- },
163
- matchTimezoneId(timezoneId, terms) {
164
- return terms.every((term) => timezoneId.toLowerCase().includes(term.toLowerCase()));
165
- }
166
- }
167
- };
168
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
169
- const _component_NcSelect = resolveComponent("NcSelect");
170
- return openBlock(), createBlock(_component_NcSelect, {
171
- "aria-label-combobox": $options.t("Search for time zone"),
172
- clearable: false,
173
- "filter-by": $options.filterBy,
174
- "model-value": $options.selectedTimezone,
175
- multiple: false,
176
- options: $options.options,
177
- placeholder: $options.placeholder,
178
- selectable: $options.isSelectable,
179
- uid: $props.uid,
180
- label: "label",
181
- "onOption:selected": $options.change
182
- }, null, 8, ["aria-label-combobox", "filter-by", "model-value", "options", "placeholder", "selectable", "uid", "onOption:selected"]);
183
- }
184
- const NcTimezonePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
185
- export {
186
- NcTimezonePicker as N
187
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcTimezonePicker-tZmX1Qp4.mjs","sources":["../../src/components/NcTimezonePicker/timezone.js","../../src/components/NcTimezonePicker/timezoneDataProviderService.js","../../src/components/NcTimezonePicker/NcTimezonePicker.vue"],"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.js'\n\n/**\n *\n * @param {string[]} timezoneList List of Olsen timezones\n * @param {Array} additionalTimezones List of additional timezones\n * @return {Array}\n */\nexport function getSortedTimezoneList(timezoneList = [], additionalTimezones = []) {\n\tconst sortedByContinent = {}\n\tconst sortedList = []\n\n\tfor (const timezoneId of timezoneList) {\n\t\tconst components = timezoneId.split('/')\n\t\tlet [continent, name] = [components.shift(), components.join('/')]\n\t\tif (!name) {\n\t\t\tname = continent\n\t\t\t// TRANSLATORS This refers to global timezones in the timezone picker\n\t\t\tcontinent = t('Global')\n\t\t}\n\n\t\tsortedByContinent[continent] = sortedByContinent[continent] || {\n\t\t\tcontinent,\n\t\t\tregions: [],\n\t\t}\n\n\t\tsortedByContinent[continent].regions.push({\n\t\t\tlabel: getReadableTimezoneName(name),\n\t\t\tcities: [],\n\t\t\ttimezoneId,\n\t\t})\n\t}\n\n\tfor (const additionalTimezone of additionalTimezones) {\n\t\tconst { continent, label, timezoneId } = additionalTimezone\n\n\t\tsortedByContinent[continent] = sortedByContinent[continent] || {\n\t\t\tcontinent,\n\t\t\tregions: [],\n\t\t}\n\n\t\tsortedByContinent[continent].regions.push({\n\t\t\tlabel,\n\t\t\tcities: [],\n\t\t\ttimezoneId,\n\t\t})\n\t}\n\n\tfor (const continent in sortedByContinent) {\n\t\tif (!Object.prototype.hasOwnProperty.call(sortedByContinent, continent)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tsortedByContinent[continent].regions.sort((a, b) => {\n\t\t\tif (a.label < b.label) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\treturn 1\n\t\t})\n\t\tsortedList.push(sortedByContinent[continent])\n\t}\n\n\t// Sort continents by name\n\tsortedList.sort((a, b) => {\n\t\tif (a.continent < b.continent) {\n\t\t\treturn -1\n\t\t}\n\n\t\treturn 1\n\t})\n\n\treturn sortedList\n}\n\n/**\n * Get human-readable name for timezoneId\n *\n * @param {string} timezoneId TimezoneId to turn human-readable\n * @return {string}\n */\nexport function getReadableTimezoneName(timezoneId) {\n\treturn timezoneId\n\t\t.split('_')\n\t\t.join(' ')\n\t\t.replace('St ', 'St. ')\n\t\t.split('/')\n\t\t.join(' - ')\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getTimezoneManager } from '@nextcloud/timezones'\n\nconst timezoneManager = getTimezoneManager()\nlet initialized = false\n\n/**\n * Gets the timezone-manager\n * initializes it if necessary\n *\n * @return {object}\n */\nexport default function() {\n\tif (!initialized) {\n\t\ttimezoneManager.registerDefaultTimezones()\n\t\tinitialized = true\n\t}\n\n\treturn timezoneManager\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: 'Hawaiian Standard Time',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcSelect :aria-label-combobox=\"t('Search for time zone')\"\n\t\t:clearable=\"false\"\n\t\t:filter-by=\"filterBy\"\n\t\t:model-value=\"selectedTimezone\"\n\t\t:multiple=\"false\"\n\t\t:options=\"options\"\n\t\t:placeholder=\"placeholder\"\n\t\t:selectable=\"isSelectable\"\n\t\t:uid=\"uid\"\n\t\tlabel=\"label\"\n\t\t@option:selected=\"change\" />\n</template>\n\n<script>\nimport {\n\tgetReadableTimezoneName,\n\tgetSortedTimezoneList,\n} from './timezone.js'\nimport getTimezoneManager from './timezoneDataProviderService.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport NcSelect from '../NcSelect/index.js'\nimport { t } from '../../l10n.js'\n\nexport default {\n\tname: 'NcTimezonePicker',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\t/**\n\t\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\t */\n\t\tadditionalTimezones: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t\t/**\n\t\t * The selected timezone. Use v-model for two-way binding. 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\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: 'floating',\n\t\t},\n\t\t/**\n\t\t * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`\n\t\t */\n\t\tuid: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: () => `tz-${GenRandomId(5)}`,\n\t\t},\n\t},\n\temits: ['update:modelValue'],\n\tcomputed: {\n\t\tplaceholder() {\n\t\t\treturn t('Type to search time zone')\n\t\t},\n\t\tselectedTimezone() {\n\t\t\tfor (const additionalTimezone of this.additionalTimezones) {\n\t\t\t\tif (additionalTimezone.timezoneId === this.modelValue) {\n\t\t\t\t\treturn additionalTimezone\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlabel: getReadableTimezoneName(this.modelValue),\n\t\t\t\ttimezoneId: this.modelValue,\n\t\t\t}\n\t\t},\n\t\toptions() {\n\t\t\tconst timezoneManager = getTimezoneManager()\n\t\t\tconst timezoneList = getSortedTimezoneList(timezoneManager.listAllTimezones(), this.additionalTimezones)\n\t\t\t/**\n\t\t\t * Since NcSelect does not support groups,\n\t\t\t * we create an object with the grouped timezones and continent labels.\n\t\t\t *\n\t\t\t * NOTE for now we are removing the grouping from the fields to fix an accessibility issue\n\t\t\t * in the future, other options can be introduced to better display the different areas\n\t\t\t */\n\t\t\tlet timezonesGrouped = []\n\t\t\tObject.values(timezoneList).forEach(group => {\n\t\t\t\t// Add an entry as group label\n\t\t\t\t// timezonesGrouped.push({\n\t\t\t\t// label: group.continent,\n\t\t\t\t// timezoneId: `tz-group__${group.continent}`,\n\t\t\t\t// regions: group.regions,\n\t\t\t\t// })\n\t\t\t\ttimezonesGrouped = timezonesGrouped.concat(group.regions)\n\t\t\t})\n\t\t\treturn timezonesGrouped\n\t\t},\n\t},\n\tmethods: {\n\t\tt,\n\n\t\tchange(newValue) {\n\t\t\tif (!newValue) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Two-way binding of the value prop. Use v-model=\"selectedTimezone\" for two-way binding\n\t\t\t */\n\t\t\tthis.$emit('update:modelValue', newValue.timezoneId)\n\t\t},\n\n\t\t/**\n\t\t * Returns whether this is a continent label,\n\t\t * or an actual timezone. Continent labels are not selectable.\n\t\t *\n\t\t * @param {string} option The option\n\t\t * @return {boolean}\n\t\t */\n\t\tisSelectable(option) {\n\t\t\treturn !option.timezoneId.startsWith('tz-group__')\n\t\t},\n\n\t\t/**\n\t\t * Function to filter the timezone list.\n\t\t * We search in the timezoneId, so both continent and region names can be matched.\n\t\t *\n\t\t * @param {object} option The timezone option\n\t\t * @param {string} label The label of the timezone\n\t\t * @param {string} search The search string\n\t\t * @return {boolean}\n\t\t */\n\t\tfilterBy(option, label, search) {\n\t\t\t// We split the search term in case one searches \"<continent> <region>\".\n\t\t\tconst terms = search.trim().split(' ')\n\n\t\t\t// For the continent labels, we have to check if one region matches every search term.\n\t\t\tif (option.timezoneId.startsWith('tz-group__')) {\n\t\t\t\treturn option.regions.some(region => {\n\t\t\t\t\treturn this.matchTimezoneId(region.timezoneId, terms)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// For a region, every search term must be found.\n\t\t\treturn this.matchTimezoneId(option.timezoneId, terms)\n\t\t},\n\n\t\tmatchTimezoneId(timezoneId, terms) {\n\t\t\treturn terms.every(term => timezoneId.toLowerCase().includes(term.toLowerCase()))\n\t\t},\n\t},\n}\n</script>\n"],"names":["getTimezoneManager","timezoneManager","_createBlock"],"mappings":"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"}