@nextcloud/vue 9.0.0-alpha.3 → 9.0.0-alpha.5
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.
- package/CHANGELOG.md +68 -2
- package/README.md +5 -0
- package/dist/Components/NcActionButton.mjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionCaption.mjs +1 -1
- package/dist/Components/NcActionCheckbox.mjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActionLink.mjs +1 -1
- package/dist/Components/NcActionRadio.mjs +1 -1
- package/dist/Components/NcActionRouter.mjs +1 -1
- package/dist/Components/NcActionSeparator.mjs +1 -1
- package/dist/Components/NcActionText.mjs +1 -1
- package/dist/Components/NcActionTextEditable.mjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppContent.mjs +1 -1
- package/dist/Components/NcAppNavigation.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationIconBullet.mjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationList.mjs +1 -1
- package/dist/Components/NcAppNavigationNew.mjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppNavigationSpacer.mjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -21
- package/dist/Components/NcAppNavigationToggle.mjs.map +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +1 -1
- package/dist/Components/NcAppSettingsSection.mjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAppSidebarTab.mjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcButton.mjs +4 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
- package/dist/Components/NcChip.mjs +4 -0
- package/dist/Components/NcChip.mjs.map +1 -0
- package/dist/Components/NcCollectionList.mjs +4 -0
- package/dist/Components/NcCollectionList.mjs.map +1 -0
- package/dist/Components/NcColorPicker.mjs +1 -1
- package/dist/Components/NcContent.mjs +1 -1
- package/dist/Components/NcCounterBubble.mjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTime.mjs +1 -1
- package/dist/Components/NcDateTimePicker.mjs +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +1 -1
- package/dist/Components/NcDialog.mjs +1 -1
- package/dist/Components/NcDialogButton.mjs +1 -1
- package/dist/Components/NcEllipsisedOption.mjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcEmptyContent.mjs +1 -1
- package/dist/Components/NcGuestContent.mjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcHighlight.mjs +1 -1
- package/dist/Components/NcIconSvgWrapper.mjs +1 -1
- package/dist/Components/NcInputField.mjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcLoadingIcon.mjs +1 -1
- package/dist/Components/NcModal.mjs +36 -58
- package/dist/Components/NcModal.mjs.map +1 -1
- package/dist/Components/NcNoteCard.mjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcPopover.mjs +1 -1
- package/dist/Components/NcProgressBar.mjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
- package/dist/Components/NcRichContenteditable.mjs +2 -2
- package/dist/Components/NcRichText.mjs +3 -24
- package/dist/Components/NcRichText.mjs.map +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSettingsInputText.mjs +1 -1
- package/dist/Components/NcSettingsSection.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -22
- package/dist/Components/NcSettingsSelectGroup.mjs.map +1 -1
- package/dist/Components/NcTextArea.mjs +1 -1
- package/dist/Components/NcTextField.mjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Components/NcUserStatusIcon.mjs +1 -1
- package/dist/Components/NcVNodes.mjs.map +1 -1
- package/dist/Composables/useIsFullscreen.mjs +0 -21
- package/dist/Composables/useIsFullscreen.mjs.map +1 -1
- package/dist/Composables/useIsMobile.mjs +0 -21
- package/dist/Composables/useIsMobile.mjs.map +1 -1
- package/dist/Directives/Focus.mjs +0 -21
- package/dist/Directives/Focus.mjs.map +1 -1
- package/dist/Directives/Linkify.mjs +1 -1
- package/dist/Directives/Linkify.mjs.map +1 -1
- package/dist/Directives/Tooltip.mjs +1 -23
- package/dist/Directives/Tooltip.mjs.map +1 -1
- package/dist/Functions/a11y.mjs +0 -21
- package/dist/Functions/a11y.mjs.map +1 -1
- package/dist/Functions/emoji.mjs +1 -1
- package/dist/Functions/reference.mjs +1 -1
- package/dist/Functions/usernameToColor.mjs +1 -1
- package/dist/Mixins/clickOutsideOptions.mjs +0 -21
- package/dist/Mixins/clickOutsideOptions.mjs.map +1 -1
- package/dist/Mixins/richEditor.mjs +2 -2
- package/dist/assets/NcActionButton-tvMk0Dz-.css +107 -0
- package/dist/assets/{NcActionButtonGroup-CvloX35s.css → NcActionButtonGroup-CQxLn2fv.css} +6 -20
- package/dist/assets/NcActionCaption-D-VXTPLI.css +32 -0
- package/dist/assets/NcActionCheckbox-DzmNTqwC.css +78 -0
- package/dist/assets/NcActionInput-4qR5N5lV.css +222 -0
- package/dist/assets/NcActionLink-Djp7wPGg.css +92 -0
- package/dist/assets/NcActionRadio-ZRQheAZT.css +78 -0
- package/dist/assets/NcActionRouter-B0l-dISs.css +103 -0
- package/dist/assets/NcActionSeparator-CEbb5P6P.css +24 -0
- package/dist/assets/NcActionText-Ip9hRt85.css +107 -0
- package/dist/assets/NcActionTextEditable-1JPkW_4o.css +238 -0
- package/dist/assets/NcActions-pRTZ3RyK.css +83 -0
- package/dist/assets/NcAppContent-CK9aL637.css +125 -0
- package/dist/assets/NcAppNavigation-BjnW8PQn.css +103 -0
- package/dist/assets/NcAppNavigationCaption-CWeMjjhD.css +48 -0
- package/dist/assets/NcAppNavigationIconBullet-EfIZU7x-.css +30 -0
- package/dist/assets/{NcAppNavigationItem-DBjQubbD.css → NcAppNavigationItem-wQ3n8jc-.css} +50 -74
- package/dist/assets/NcAppNavigationList-BIbyyT7b.css +29 -0
- package/dist/assets/NcAppNavigationNew-R0QcGqvG.css +27 -0
- package/dist/assets/{NcAppNavigationNewItem-wTDYmQmA.css → NcAppNavigationNewItem-CO3GnR26.css} +42 -52
- package/dist/assets/NcAppNavigationSettings-TYqL_3Eu.css +79 -0
- package/dist/assets/NcAppNavigationSpacer-DiE3sVy0.css +6 -0
- package/dist/assets/NcAppNavigationToggle-CNPQvWtG.css +27 -0
- package/dist/assets/NcAppSettingsDialog-ksK-DMgk.css +74 -0
- package/dist/assets/NcAppSettingsSection-C_QldGnW.css +30 -0
- package/dist/assets/{NcAppSidebar-v-H-37nV.css → NcAppSidebar-B7CgUHLX.css} +98 -149
- package/dist/assets/NcAppSidebarTab-Cp0hG2NU.css +34 -0
- package/dist/assets/NcAvatar-BnHiRwVr.css +129 -0
- package/dist/assets/NcBreadcrumb-CJ7KeSKQ.css +68 -0
- package/dist/assets/NcBreadcrumbs-C05lySw_.css +37 -0
- package/dist/assets/NcButton-B62D9Gft.css +210 -0
- package/dist/assets/{NcCheckboxRadioSwitch-BrP8x4oD.css → NcCheckboxRadioSwitch-ChIIElUW.css} +53 -81
- package/dist/assets/NcChip-Cho4h_Kr.css +61 -0
- package/dist/assets/NcCollectionList-BT2L4guq.css +221 -0
- package/dist/assets/NcColorPicker-vEZb9dRS.css +122 -0
- package/dist/assets/NcContent-DljiVMLl.css +80 -0
- package/dist/assets/NcCounterBubble-DT16e2bg.css +53 -0
- package/dist/assets/NcDashboardWidget-CvGZT_xf.css +73 -0
- package/dist/assets/NcDashboardWidgetItem-JCtQhwhS.css +85 -0
- package/dist/assets/{NcDateTimePicker-DBxgtJoU.css → NcDateTimePicker-DHWLpzCH.css} +38 -76
- package/dist/assets/NcDateTimePickerNative-DLch-JRA.css +47 -0
- package/dist/assets/NcDialog-DXX2MKxJ.css +132 -0
- package/dist/assets/NcEllipsisedOption-DZK2vWD1.css +34 -0
- package/dist/assets/{NcEmojiPicker-DPDnLnba.css → NcEmojiPicker-C18M6LHu.css} +16 -44
- package/dist/assets/NcEmptyContent-C-nruaFh.css +65 -0
- package/dist/assets/NcGuestContent-Dh5z5Dgm.css +50 -0
- package/dist/assets/NcHeaderMenu-Cb5YSERm.css +77 -0
- package/dist/assets/NcIconSvgWrapper-CtTf2c7f.css +39 -0
- package/dist/assets/NcInputConfirmCancel-DBjIHKvN.css +39 -0
- package/dist/assets/{NcInputField-CSuJUlgW.css → NcInputField-CZnSCalG.css} +43 -56
- package/dist/assets/NcListItem-Cs-R5Xpu.css +156 -0
- package/dist/assets/NcListItemIcon-C2zhDUEr.css +64 -0
- package/dist/assets/NcLoadingIcon-BSONDy7x.css +21 -0
- package/dist/assets/NcMentionBubble-C6t8od-_.css +73 -0
- package/dist/assets/{NcModal-JZMyM8zO.css → NcModal-Cr_CG7O3.css} +70 -87
- package/dist/assets/NcNoteCard-BLPU1den.css +50 -0
- package/dist/assets/{NcPopover-BwI1hPzy.css → NcPopover-BDlL00qZ.css} +6 -20
- package/dist/assets/NcProgressBar-BsqdCn-x.css +56 -0
- package/dist/assets/NcRelatedResourcesPanel-C56aj2M3.css +158 -0
- package/dist/assets/{NcRichContenteditable-C9Sikuur.css → NcRichContenteditable-Cf8PvtvB.css} +55 -97
- package/dist/assets/NcRichText-yXgN8zvG.css +217 -0
- package/dist/assets/{NcSelect-Fmyu7qyl.css → NcSelect-9AZOhTlS.css} +9 -21
- package/dist/assets/NcSettingsInputText-C3j73xA0.css +35 -0
- package/dist/assets/NcSettingsSection-CFKAEs4p.css +52 -0
- package/dist/assets/NcSettingsSelectGroup-CGfaysRv.css +23 -0
- package/dist/assets/{NcTextArea-n0qdPImB.css → NcTextArea-BjB_qSH0.css} +30 -42
- package/dist/assets/NcUserBubble-CIfQjmmP.css +48 -0
- package/dist/assets/NcUserStatusIcon-FLA1tQpD.css +30 -0
- package/dist/assets/{Tooltip-jHgt4m-W.css → Tooltip-4CSl8xev.css} +10 -30
- package/dist/assets/referencePickerModal-G4uFPuyg.css +413 -0
- package/dist/chunks/{GenColors-BjorWIgA.mjs → GenColors-AKX06ocD.mjs} +1 -23
- package/dist/chunks/GenColors-AKX06ocD.mjs.map +1 -0
- package/dist/chunks/GenRandomId-CMooMQt0.mjs +6 -0
- package/dist/chunks/GenRandomId-CMooMQt0.mjs.map +1 -0
- package/dist/chunks/Linkify-BtgR-dXX.mjs +14 -0
- package/dist/chunks/Linkify-BtgR-dXX.mjs.map +1 -0
- package/dist/chunks/{NcActionButton-BFQnlisT.mjs → NcActionButton-Bqkgltcz.mjs} +4 -4
- package/dist/chunks/NcActionButton-Bqkgltcz.mjs.map +1 -0
- package/dist/chunks/{NcActionButtonGroup-D-8C3HSO.mjs → NcActionButtonGroup-QSxR0BLf.mjs} +3 -3
- package/dist/chunks/NcActionButtonGroup-QSxR0BLf.mjs.map +1 -0
- package/dist/chunks/{NcActionCaption-CV_zDfFg.mjs → NcActionCaption-Cb_uvgZc.mjs} +2 -2
- package/dist/chunks/{NcActionCaption-CV_zDfFg.mjs.map → NcActionCaption-Cb_uvgZc.mjs.map} +1 -1
- package/dist/chunks/{NcActionCheckbox-CjZH6kjg.mjs → NcActionCheckbox-A6JNjini.mjs} +4 -4
- package/dist/chunks/NcActionCheckbox-A6JNjini.mjs.map +1 -0
- package/dist/chunks/{NcActionInput-ClUviDGB.mjs → NcActionInput-DY8dxchc.mjs} +11 -11
- package/dist/chunks/NcActionInput-DY8dxchc.mjs.map +1 -0
- package/dist/chunks/{NcActionLink-CQEzoS_a.mjs → NcActionLink-C0mINC5i.mjs} +4 -4
- package/dist/chunks/NcActionLink-C0mINC5i.mjs.map +1 -0
- package/dist/chunks/{NcActionRadio-D6VrxjcX.mjs → NcActionRadio-BqAyH2zq.mjs} +4 -4
- package/dist/chunks/NcActionRadio-BqAyH2zq.mjs.map +1 -0
- package/dist/chunks/{NcActionRouter-DmrWV-q1.mjs → NcActionRouter-Dr-j-IUI.mjs} +4 -4
- package/dist/chunks/NcActionRouter-Dr-j-IUI.mjs.map +1 -0
- package/dist/chunks/{NcActionSeparator-ib21YUAE.mjs → NcActionSeparator-DKFXmIJ5.mjs} +2 -2
- package/dist/chunks/NcActionSeparator-DKFXmIJ5.mjs.map +1 -0
- package/dist/chunks/{NcActionText-dj38IHk6.mjs → NcActionText-C5ZPI56c.mjs} +4 -4
- package/dist/chunks/NcActionText-C5ZPI56c.mjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-W1wFQ9dc.mjs → NcActionTextEditable-CLXTDGjr.mjs} +4 -4
- package/dist/chunks/NcActionTextEditable-CLXTDGjr.mjs.map +1 -0
- package/dist/chunks/{NcActions-B6QL_4DD.mjs → NcActions-DqMOvrbN.mjs} +7 -7
- package/dist/chunks/NcActions-DqMOvrbN.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-jvz75P8O.mjs → NcAppContent-xtfi9kNO.mjs} +6 -6
- package/dist/chunks/NcAppContent-xtfi9kNO.mjs.map +1 -0
- package/dist/chunks/NcAppContentDetails-Ch6NJvAl.mjs.map +1 -1
- package/dist/chunks/NcAppContentList-DGwk3AvB.mjs.map +1 -1
- package/dist/chunks/{NcAppNavigation-D0RINQda.mjs → NcAppNavigation-C9Ku9eb2.mjs} +5 -5
- package/dist/chunks/NcAppNavigation-C9Ku9eb2.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-BnhoAPkJ.mjs → NcAppNavigationCaption-BysnsczC.mjs} +10 -6
- package/dist/chunks/NcAppNavigationCaption-BysnsczC.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationIconBullet-JoIYov5C.mjs → NcAppNavigationIconBullet-DuqQFciH.mjs} +2 -2
- package/dist/chunks/NcAppNavigationIconBullet-DuqQFciH.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationItem-s0czI8KR.mjs → NcAppNavigationItem--znMc-4G.mjs} +12 -12
- package/dist/chunks/NcAppNavigationItem--znMc-4G.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationList-DzTic3Q7.mjs → NcAppNavigationList-DCmrqe9N.mjs} +2 -2
- package/dist/chunks/NcAppNavigationList-DCmrqe9N.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNew-RBp5Nk-2.mjs → NcAppNavigationNew-xPVyvfza.mjs} +3 -3
- package/dist/chunks/NcAppNavigationNew-xPVyvfza.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNewItem-u85Ffz-V.mjs → NcAppNavigationNewItem-DS1hIl6W.mjs} +4 -4
- package/dist/chunks/NcAppNavigationNewItem-DS1hIl6W.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSettings-D_4gHC9H.mjs → NcAppNavigationSettings-CekHqqk0.mjs} +5 -5
- package/dist/chunks/NcAppNavigationSettings-CekHqqk0.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSpacer-Ctbl-q5I.mjs → NcAppNavigationSpacer-BQFYpMbq.mjs} +2 -2
- package/dist/chunks/NcAppNavigationSpacer-BQFYpMbq.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationToggle-BtC5hBww.mjs → NcAppNavigationToggle-DfX9dazn.mjs} +5 -5
- package/dist/chunks/NcAppNavigationToggle-DfX9dazn.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsDialog-DXpamfEo.mjs → NcAppSettingsDialog-ChTLtlsE.mjs} +5 -5
- package/dist/chunks/NcAppSettingsDialog-ChTLtlsE.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsSection-PG8OLRbP.mjs → NcAppSettingsSection-CJff2xNR.mjs} +10 -6
- package/dist/chunks/NcAppSettingsSection-CJff2xNR.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-B0pjWsoI.mjs → NcAppSidebar-C9frc6kG.mjs} +252 -202
- package/dist/chunks/NcAppSidebar-C9frc6kG.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebarTab-BTuuQoW5.mjs → NcAppSidebarTab-zBqyKIgn.mjs} +2 -2
- package/dist/chunks/NcAppSidebarTab-zBqyKIgn.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-BKmfsBcY.mjs → NcAvatar-BjooMt8H.mjs} +16 -37
- package/dist/chunks/NcAvatar-BjooMt8H.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-C3k6T3Bj.mjs → NcBreadcrumb-Btbcn1IT.mjs} +5 -5
- package/dist/chunks/NcBreadcrumb-Btbcn1IT.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumbs-Crc4BkfA.mjs → NcBreadcrumbs-BFR0zNov.mjs} +12 -16
- package/dist/chunks/NcBreadcrumbs-BFR0zNov.mjs.map +1 -0
- package/dist/chunks/{NcButton-B27fpd1m.mjs → NcButton-Bhuckhtj.mjs} +57 -43
- package/dist/chunks/NcButton-Bhuckhtj.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-DdG8AL_h.mjs → NcCheckboxRadioSwitch-fsQs5UG3.mjs} +49 -31
- package/dist/chunks/NcCheckboxRadioSwitch-fsQs5UG3.mjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_266d05fb_lang-8iSIJ9Oz.mjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_266d05fb_lang-8iSIJ9Oz.mjs.map +1 -0
- package/dist/chunks/NcChip-Z436j_vb.mjs +143 -0
- package/dist/chunks/NcChip-Z436j_vb.mjs.map +1 -0
- package/dist/chunks/NcCollectionList-B8r2GWp5.mjs +589 -0
- package/dist/chunks/NcCollectionList-B8r2GWp5.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-D4IB1shI.mjs → NcColorPicker-ChOP5UKN.mjs} +7 -7
- package/dist/chunks/NcColorPicker-ChOP5UKN.mjs.map +1 -0
- package/dist/chunks/NcContent-BTRh5byh.mjs +130 -0
- package/dist/chunks/NcContent-BTRh5byh.mjs.map +1 -0
- package/dist/chunks/{NcCounterBubble-BVDNwJiw.mjs → NcCounterBubble-B0Sk58x_.mjs} +2 -2
- package/dist/chunks/NcCounterBubble-B0Sk58x_.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidget-B5H6n5qG.mjs → NcDashboardWidget-CyEJLxAR.mjs} +8 -8
- package/dist/chunks/NcDashboardWidget-CyEJLxAR.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidgetItem-BbgZpZ-D.mjs → NcDashboardWidgetItem-DfP6DwdF.mjs} +5 -5
- package/dist/chunks/NcDashboardWidgetItem-DfP6DwdF.mjs.map +1 -0
- package/dist/chunks/{NcDateTime-p5872lEX.mjs → NcDateTime-DX34z7Lo.mjs} +1 -22
- package/dist/chunks/NcDateTime-DX34z7Lo.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePicker-C1gBl-W0.mjs → NcDateTimePicker-D9gDwRl4.mjs} +8 -8
- package/dist/chunks/NcDateTimePicker-D9gDwRl4.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-CyCL5Ovh.mjs → NcDateTimePickerNative-d04KsMAl.mjs} +3 -3
- package/dist/chunks/NcDateTimePickerNative-d04KsMAl.mjs.map +1 -0
- package/dist/chunks/{NcDialog-Dq3Qnbke.mjs → NcDialog-D5IAHMrC.mjs} +13 -9
- package/dist/chunks/NcDialog-D5IAHMrC.mjs.map +1 -0
- package/dist/chunks/{NcDialogButton-C6SudZTq.mjs → NcDialogButton-BkFODtad.mjs} +15 -5
- package/dist/chunks/NcDialogButton-BkFODtad.mjs.map +1 -0
- package/dist/chunks/{NcEllipsisedOption-DsCFqgUF.mjs → NcEllipsisedOption-CufdpPBu.mjs} +9 -3
- package/dist/chunks/NcEllipsisedOption-CufdpPBu.mjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-BwQ8VxQZ.mjs → NcEmojiPicker-Dtc8dnSp.mjs} +10 -10
- package/dist/chunks/NcEmojiPicker-Dtc8dnSp.mjs.map +1 -0
- package/dist/chunks/{NcEmptyContent-CdgacgQe.mjs → NcEmptyContent-BoGB3vFC.mjs} +2 -2
- package/dist/chunks/NcEmptyContent-BoGB3vFC.mjs.map +1 -0
- package/dist/chunks/{NcGuestContent-DfnVEtGM.mjs → NcGuestContent-DVqg5Bq4.mjs} +2 -2
- package/dist/chunks/NcGuestContent-DVqg5Bq4.mjs.map +1 -0
- package/dist/chunks/{NcHeaderMenu-CJVtnKpb.mjs → NcHeaderMenu-CKynqFZZ.mjs} +7 -6
- package/dist/chunks/NcHeaderMenu-CKynqFZZ.mjs.map +1 -0
- package/dist/chunks/{NcHighlight-CR5kySMp.mjs → NcHighlight-BHtRIzqk.mjs} +0 -21
- package/dist/chunks/NcHighlight-BHtRIzqk.mjs.map +1 -0
- package/dist/chunks/{NcIconSvgWrapper-C0csZ9zg.mjs → NcIconSvgWrapper-DbL6OP85.mjs} +3 -3
- package/dist/chunks/NcIconSvgWrapper-DbL6OP85.mjs.map +1 -0
- package/dist/chunks/{NcInputConfirmCancel-Rk8B1Q0j.mjs → NcInputConfirmCancel-DkOh9UP_.mjs} +5 -5
- package/dist/chunks/NcInputConfirmCancel-DkOh9UP_.mjs.map +1 -0
- package/dist/chunks/{NcInputField-DX0Brmlk.mjs → NcInputField-hpiI0X9L.mjs} +4 -4
- package/dist/chunks/NcInputField-hpiI0X9L.mjs.map +1 -0
- package/dist/chunks/{NcListItem-CgZoQEIf.mjs → NcListItem-DX-yKrou.mjs} +5 -5
- package/dist/chunks/{NcListItem-CgZoQEIf.mjs.map → NcListItem-DX-yKrou.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-A5o8HkQv.mjs → NcListItemIcon-Bgd2w_Ug.mjs} +6 -6
- package/dist/chunks/NcListItemIcon-Bgd2w_Ug.mjs.map +1 -0
- package/dist/chunks/{NcLoadingIcon-DwbO7gAy.mjs → NcLoadingIcon-DREmHXr2.mjs} +2 -2
- package/dist/chunks/NcLoadingIcon-DREmHXr2.mjs.map +1 -0
- package/dist/chunks/{NcNoteCard-CdZRsd8-.mjs → NcNoteCard-CQgzjr2r.mjs} +2 -2
- package/dist/chunks/NcNoteCard-CQgzjr2r.mjs.map +1 -0
- package/dist/chunks/{NcPasswordField-B7CiEElO.mjs → NcPasswordField-Vfr9wcwj.mjs} +5 -4
- package/dist/chunks/NcPasswordField-Vfr9wcwj.mjs.map +1 -0
- package/dist/chunks/{NcPopover-B9UbiGTv.mjs → NcPopover-BXfbq-Vs.mjs} +2 -2
- package/dist/chunks/NcPopover-BXfbq-Vs.mjs.map +1 -0
- package/dist/chunks/{NcProgressBar-CAXfza4R.mjs → NcProgressBar-C2r8oqsv.mjs} +3 -3
- package/dist/chunks/NcProgressBar-C2r8oqsv.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-Dr4jL2gw.mjs → NcRelatedResourcesPanel-DXQ9WHF5.mjs} +11 -11
- package/dist/chunks/NcRelatedResourcesPanel-DXQ9WHF5.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-P06ORHyg.mjs → NcRichContenteditable-Bf9Kg4hl.mjs} +53 -30
- package/dist/chunks/NcRichContenteditable-Bf9Kg4hl.mjs.map +1 -0
- package/dist/chunks/{NcRichText-BfreYq5m.mjs → NcRichText-COi8Ex6O.mjs} +11 -10
- package/dist/chunks/NcRichText-COi8Ex6O.mjs.map +1 -0
- package/dist/chunks/NcSavingIndicatorIcon-BiGAtlKQ.mjs.map +1 -1
- package/dist/chunks/{NcSelect-Dt3JJc9b.mjs → NcSelect-uOkQ9CdB.mjs} +7 -7
- package/dist/chunks/NcSelect-uOkQ9CdB.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-F8Z_SdXE.mjs → NcSelectTags-1hIEJsvj.mjs} +3 -24
- package/dist/chunks/NcSelectTags-1hIEJsvj.mjs.map +1 -0
- package/dist/chunks/{NcSettingsInputText-BtDwhhX0.mjs → NcSettingsInputText-DO40BQ3B.mjs} +5 -5
- package/dist/chunks/NcSettingsInputText-DO40BQ3B.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSection-BN98AV4b.mjs → NcSettingsSection-BDI1fNYG.mjs} +4 -4
- package/dist/chunks/NcSettingsSection-BDI1fNYG.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSelectGroup-61ylzaOo.mjs → NcSettingsSelectGroup-OQVMB2G-.mjs} +6 -6
- package/dist/chunks/NcSettingsSelectGroup-OQVMB2G-.mjs.map +1 -0
- package/dist/chunks/{NcTextArea-DOXp3B2R.mjs → NcTextArea-qvR02aYz.mjs} +3 -3
- package/dist/chunks/NcTextArea-qvR02aYz.mjs.map +1 -0
- package/dist/chunks/{NcTextField-5CbWAUlw.mjs → NcTextField-DctsarIL.mjs} +3 -3
- package/dist/chunks/NcTextField-DctsarIL.mjs.map +1 -0
- package/dist/chunks/NcTimezonePicker-CGW5Q2gI.mjs +187 -0
- package/dist/chunks/NcTimezonePicker-CGW5Q2gI.mjs.map +1 -0
- package/dist/chunks/{NcUserBubble-B1nO-OgL.mjs → NcUserBubble-CsVyJK3C.mjs} +4 -4
- package/dist/chunks/NcUserBubble-CsVyJK3C.mjs.map +1 -0
- package/dist/chunks/{NcUserStatusIcon-DXxHWiO9.mjs → NcUserStatusIcon-CLYI768S.mjs} +10 -36
- package/dist/chunks/NcUserStatusIcon-CLYI768S.mjs.map +1 -0
- package/dist/chunks/ScopeComponent-59SnWk9S.mjs +14 -0
- package/dist/chunks/ScopeComponent-59SnWk9S.mjs.map +1 -0
- package/dist/chunks/_l10n-6dsjYig_.mjs +126 -0
- package/dist/chunks/_l10n-6dsjYig_.mjs.map +1 -0
- package/dist/chunks/actionGlobal-BZFdtdJL.mjs +25 -0
- package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +1 -0
- package/dist/chunks/{actionText-CBxkao_8.mjs → actionText-aI0owku1.mjs} +1 -43
- package/dist/chunks/actionText-aI0owku1.mjs.map +1 -0
- package/dist/chunks/{autolink-CuPhRJIL.mjs → autolink-CKPk5rzg.mjs} +7 -24
- package/dist/chunks/autolink-CKPk5rzg.mjs.map +1 -0
- package/dist/chunks/{emoji-BjUFGMrw.mjs → emoji-Ba55f8iV.mjs} +0 -21
- package/dist/chunks/emoji-Ba55f8iV.mjs.map +1 -0
- package/dist/chunks/focusTrap-Cecv_gjR.mjs +7 -0
- package/dist/chunks/focusTrap-Cecv_gjR.mjs.map +1 -0
- package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs +11 -0
- package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs.map +1 -0
- package/dist/chunks/index-CtoB4eIp.mjs.map +1 -1
- package/dist/chunks/{index-5AsHlmYO.mjs → index-CyNq54HS.mjs} +4 -25
- package/dist/chunks/index-CyNq54HS.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-Tr-vmVPW.mjs → referencePickerModal-BwzqUWFA.mjs} +27 -246
- package/dist/chunks/referencePickerModal-BwzqUWFA.mjs.map +1 -0
- package/dist/chunks/usernameToColor-CEyHwgy-.mjs +26 -0
- package/dist/chunks/usernameToColor-CEyHwgy-.mjs.map +1 -0
- package/dist/components/NcActionButton/NcActionButton.vue.d.ts +3 -7
- package/dist/components/NcActionButtonGroup/NcActionButtonGroup.vue.d.ts +1 -1
- package/dist/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +4 -4
- package/dist/components/NcActionInput/NcActionInput.vue.d.ts +11 -11
- package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +4 -4
- package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +4 -4
- package/dist/components/NcActions/NcActions.vue.d.ts +6 -6
- package/dist/components/NcAppContent/NcAppContent.vue.d.ts +1 -1
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +6 -69
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +6 -6
- package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +3 -3
- package/dist/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +3 -3
- package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +62 -15
- package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +16 -0
- package/dist/components/NcAvatar/NcAvatar.vue.d.ts +4 -4
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +5 -5
- package/dist/components/NcButton/NcButton.vue.d.ts +47 -25
- package/dist/components/NcButton/index.d.ts +3 -19
- package/dist/components/NcButton/types.d.ts +30 -0
- package/dist/components/NcChip/NcChip.vue.d.ts +113 -0
- package/dist/components/NcChip/index.d.ts +5 -0
- package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +126 -0
- package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +50 -0
- package/dist/components/NcCollectionList/index.d.ts +1 -0
- package/dist/components/NcCollectionList/service.d.ts +47 -0
- package/dist/components/NcCollectionList/useCollections.d.ts +31 -0
- package/dist/components/NcContent/NcContent.vue.d.ts +1 -1
- package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +1 -1
- package/dist/components/NcDialog/NcDialog.vue.d.ts +359 -1
- package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +94 -1
- package/dist/components/NcDialogButton/index.d.ts +4 -0
- package/dist/components/NcEllipsisedOption/NcEllipsisedOption.vue.d.ts +12 -0
- package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +2 -2
- package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +3 -3
- package/dist/components/NcHighlight/NcHighlight.vue.d.ts +1 -1
- package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +4 -4
- package/dist/components/NcInputField/NcInputField.vue.d.ts +6 -6
- package/dist/components/NcListItem/NcListItem.vue.d.ts +1 -1
- package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +3 -3
- package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
- package/dist/components/NcNoteCard/NcNoteCard.vue.d.ts +1 -1
- package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +3 -3
- package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +1 -1
- package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +1 -1
- package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +4 -4
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +22 -10
- package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +1 -1
- package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +1 -1
- package/dist/components/NcRichText/NcRichText.vue.d.ts +2 -2
- package/dist/components/NcRichText/helpers.d.ts +4 -0
- package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +3 -3
- package/dist/components/NcSelect/NcSelect.vue.d.ts +2 -2
- package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +1 -1
- package/dist/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +4 -4
- package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +5 -5
- package/dist/components/NcTextArea/NcTextArea.vue.d.ts +3 -3
- package/dist/components/NcTimezonePicker/NcTimezonePicker.vue.d.ts +1 -1
- package/dist/components/NcUserBubble/NcUserBubble.vue.d.ts +4 -4
- package/dist/components/NcVNodes/NcVNodes.vue.d.ts +3 -3
- package/dist/components/index.d.ts +7 -19
- package/dist/composables/useFormatDateTime.d.ts +5 -5
- package/dist/directives/index.d.ts +2 -19
- package/dist/functions/a11y/index.d.ts +2 -19
- package/dist/functions/emoji/emoji.d.ts +2 -19
- package/dist/functions/emoji/index.d.ts +2 -19
- package/dist/functions/reference/widgets.d.ts +4 -0
- package/dist/index.d.ts +2 -19
- package/dist/index.mjs +93 -119
- package/dist/index.mjs.map +1 -1
- package/dist/l10n.d.ts +2 -2
- package/dist/mixins/clickOutsideOptions/index.d.ts +1 -1
- package/dist/mixins/richEditor/index.d.ts +1 -1
- package/dist/utils/FindRanges.d.ts +2 -19
- package/dist/utils/GenRandomId.d.ts +2 -19
- package/dist/utils/GetChildren.d.ts +2 -19
- package/dist/utils/GetParent.d.ts +2 -19
- package/dist/utils/ScopeComponent.d.ts +2 -19
- package/dist/utils/Timer.d.ts +4 -38
- package/dist/utils/UserStatus.d.ts +2 -19
- package/dist/utils/VueTypes.d.ts +3 -0
- package/dist/utils/getAvatarUrl.d.ts +2 -19
- package/dist/vendor.LICENSE.txt +4 -4
- package/package.json +32 -33
- package/LICENSE +0 -661
- package/dist/assets/NcActionButton-DilAGmID.css +0 -139
- package/dist/assets/NcActionCaption-sfcjBZnu.css +0 -46
- package/dist/assets/NcActionCheckbox-BPTe8v7j.css +0 -110
- package/dist/assets/NcActionInput-BCm3Bb6i.css +0 -271
- package/dist/assets/NcActionLink-ufhOZDI9.css +0 -124
- package/dist/assets/NcActionRadio-BgKkAdF8.css +0 -110
- package/dist/assets/NcActionRouter-DJDXSMeq.css +0 -135
- package/dist/assets/NcActionSeparator-CB59y4di.css +0 -38
- package/dist/assets/NcActionText-FrsQgrnA.css +0 -139
- package/dist/assets/NcActionTextEditable-pgsRQJ7l.css +0 -287
- package/dist/assets/NcActions-6uFGQVJQ.css +0 -111
- package/dist/assets/NcAppContent-CVWf32qC.css +0 -153
- package/dist/assets/NcAppNavigation-B_aG01bd.css +0 -131
- package/dist/assets/NcAppNavigationCaption-B32FjjW3.css +0 -62
- package/dist/assets/NcAppNavigationIconBullet-B8q3pUL5.css +0 -44
- package/dist/assets/NcAppNavigationList-DnIxrbVX.css +0 -43
- package/dist/assets/NcAppNavigationNew-B29SvI0s.css +0 -41
- package/dist/assets/NcAppNavigationSettings-RpFZX7Hx.css +0 -93
- package/dist/assets/NcAppNavigationSpacer-C12GX5n6.css +0 -6
- package/dist/assets/NcAppNavigationToggle-Bb19ZkjT.css +0 -41
- package/dist/assets/NcAppSettingsDialog-CQY4VVRw.css +0 -88
- package/dist/assets/NcAppSettingsSection-BUxPrhYB.css +0 -44
- package/dist/assets/NcAppSidebarTab-WhMYMxlI.css +0 -48
- package/dist/assets/NcAvatar-xxyc0_S6.css +0 -143
- package/dist/assets/NcBreadcrumb-BKgJHxzd.css +0 -82
- package/dist/assets/NcBreadcrumbs-Dq8VnSzJ.css +0 -51
- package/dist/assets/NcButton-BqOBMPBj.css +0 -204
- package/dist/assets/NcColorPicker-q8nVYCvu.css +0 -136
- package/dist/assets/NcContent-CQqz6KXD.css +0 -108
- package/dist/assets/NcCounterBubble-CWi_P1Tb.css +0 -67
- package/dist/assets/NcDashboardWidget-DzDAv3ER.css +0 -87
- package/dist/assets/NcDashboardWidgetItem-BevETFRF.css +0 -99
- package/dist/assets/NcDateTimePickerNative-DHZcOvOf.css +0 -61
- package/dist/assets/NcDialog-CvmjNcgn.css +0 -160
- package/dist/assets/NcEllipsisedOption-ClDzkIX6.css +0 -48
- package/dist/assets/NcEmptyContent-CMM4BKRc.css +0 -79
- package/dist/assets/NcGuestContent-BTahASdv.css +0 -78
- package/dist/assets/NcHeaderMenu-fYpidmuR.css +0 -91
- package/dist/assets/NcIconSvgWrapper-C95UOHYS.css +0 -53
- package/dist/assets/NcInputConfirmCancel-dYsxq6pH.css +0 -53
- package/dist/assets/NcListItem-CJa4SoZs.css +0 -170
- package/dist/assets/NcListItemIcon-KqKY7_tj.css +0 -78
- package/dist/assets/NcLoadingIcon-gxK0ujO0.css +0 -35
- package/dist/assets/NcMentionBubble-DmzU72Mw.css +0 -84
- package/dist/assets/NcNoteCard-e7-Bxio8.css +0 -64
- package/dist/assets/NcProgressBar-D5VftcJm.css +0 -70
- package/dist/assets/NcRelatedResourcesPanel-CbFY3Cdm.css +0 -200
- package/dist/assets/NcRichText-Cc65tYYs.css +0 -240
- package/dist/assets/NcSettingsInputText-DR4Wv2XP.css +0 -49
- package/dist/assets/NcSettingsSection-DrlA06-W.css +0 -66
- package/dist/assets/NcSettingsSelectGroup-Ba_9qqBq.css +0 -37
- package/dist/assets/NcUserBubble-a6zTGwWG.css +0 -62
- package/dist/assets/NcUserStatusIcon-DYNzsng_.css +0 -44
- package/dist/assets/referencePickerModal-4K_FZwca.css +0 -539
- package/dist/chunks/GenColors-BjorWIgA.mjs.map +0 -1
- package/dist/chunks/GenRandomId-CXkjMlAT.mjs +0 -27
- package/dist/chunks/GenRandomId-CXkjMlAT.mjs.map +0 -1
- package/dist/chunks/Linkify-BBPJHBma.mjs +0 -35
- package/dist/chunks/Linkify-BBPJHBma.mjs.map +0 -1
- package/dist/chunks/NcActionButton-BFQnlisT.mjs.map +0 -1
- package/dist/chunks/NcActionButtonGroup-D-8C3HSO.mjs.map +0 -1
- package/dist/chunks/NcActionCheckbox-CjZH6kjg.mjs.map +0 -1
- package/dist/chunks/NcActionInput-ClUviDGB.mjs.map +0 -1
- package/dist/chunks/NcActionLink-CQEzoS_a.mjs.map +0 -1
- package/dist/chunks/NcActionRadio-D6VrxjcX.mjs.map +0 -1
- package/dist/chunks/NcActionRouter-DmrWV-q1.mjs.map +0 -1
- package/dist/chunks/NcActionSeparator-ib21YUAE.mjs.map +0 -1
- package/dist/chunks/NcActionText-dj38IHk6.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-W1wFQ9dc.mjs.map +0 -1
- package/dist/chunks/NcActions-B6QL_4DD.mjs.map +0 -1
- package/dist/chunks/NcAppContent-jvz75P8O.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-D0RINQda.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationCaption-BnhoAPkJ.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationIconBullet-JoIYov5C.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-s0czI8KR.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationList-DzTic3Q7.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNew-RBp5Nk-2.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNewItem-u85Ffz-V.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings-D_4gHC9H.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSpacer-Ctbl-q5I.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-BtC5hBww.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-DXpamfEo.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsSection-PG8OLRbP.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-B0pjWsoI.mjs.map +0 -1
- package/dist/chunks/NcAppSidebarTab-BTuuQoW5.mjs.map +0 -1
- package/dist/chunks/NcAvatar-BKmfsBcY.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-C3k6T3Bj.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumbs-Crc4BkfA.mjs.map +0 -1
- package/dist/chunks/NcButton-B27fpd1m.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-DdG8AL_h.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_9bdeea42_lang-C9ptCbXx.mjs +0 -3
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_9bdeea42_lang-C9ptCbXx.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-D4IB1shI.mjs.map +0 -1
- package/dist/chunks/NcContent-CMQytlSd.mjs +0 -129
- package/dist/chunks/NcContent-CMQytlSd.mjs.map +0 -1
- package/dist/chunks/NcCounterBubble-BVDNwJiw.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-B5H6n5qG.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidgetItem-BbgZpZ-D.mjs.map +0 -1
- package/dist/chunks/NcDateTime-p5872lEX.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-C1gBl-W0.mjs.map +0 -1
- package/dist/chunks/NcDateTimePickerNative-CyCL5Ovh.mjs.map +0 -1
- package/dist/chunks/NcDialog-Dq3Qnbke.mjs.map +0 -1
- package/dist/chunks/NcDialogButton-C6SudZTq.mjs.map +0 -1
- package/dist/chunks/NcEllipsisedOption-DsCFqgUF.mjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-BwQ8VxQZ.mjs.map +0 -1
- package/dist/chunks/NcEmptyContent-CdgacgQe.mjs.map +0 -1
- package/dist/chunks/NcGuestContent-DfnVEtGM.mjs.map +0 -1
- package/dist/chunks/NcHeaderMenu-CJVtnKpb.mjs.map +0 -1
- package/dist/chunks/NcHighlight-CR5kySMp.mjs.map +0 -1
- package/dist/chunks/NcIconSvgWrapper-C0csZ9zg.mjs.map +0 -1
- package/dist/chunks/NcInputConfirmCancel-Rk8B1Q0j.mjs.map +0 -1
- package/dist/chunks/NcInputField-DX0Brmlk.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-A5o8HkQv.mjs.map +0 -1
- package/dist/chunks/NcLoadingIcon-DwbO7gAy.mjs.map +0 -1
- package/dist/chunks/NcNoteCard-CdZRsd8-.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-B7CiEElO.mjs.map +0 -1
- package/dist/chunks/NcPopover-B9UbiGTv.mjs.map +0 -1
- package/dist/chunks/NcProgressBar-CAXfza4R.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-Dr4jL2gw.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-P06ORHyg.mjs.map +0 -1
- package/dist/chunks/NcRichText-BfreYq5m.mjs.map +0 -1
- package/dist/chunks/NcSelect-Dt3JJc9b.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-F8Z_SdXE.mjs.map +0 -1
- package/dist/chunks/NcSettingsInputText-BtDwhhX0.mjs.map +0 -1
- package/dist/chunks/NcSettingsSection-BN98AV4b.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-61ylzaOo.mjs.map +0 -1
- package/dist/chunks/NcTextArea-DOXp3B2R.mjs.map +0 -1
- package/dist/chunks/NcTextField-5CbWAUlw.mjs.map +0 -1
- package/dist/chunks/NcTimezonePicker-Cs2arCUX.mjs +0 -4051
- package/dist/chunks/NcTimezonePicker-Cs2arCUX.mjs.map +0 -1
- package/dist/chunks/NcUserBubble-B1nO-OgL.mjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-DXxHWiO9.mjs.map +0 -1
- package/dist/chunks/ScopeComponent-B2OE7k3z.mjs +0 -35
- package/dist/chunks/ScopeComponent-B2OE7k3z.mjs.map +0 -1
- package/dist/chunks/_l10n-ipRV_dfs.mjs +0 -122
- package/dist/chunks/_l10n-ipRV_dfs.mjs.map +0 -1
- package/dist/chunks/actionGlobal-BIN1Dngv.mjs +0 -46
- package/dist/chunks/actionGlobal-BIN1Dngv.mjs.map +0 -1
- package/dist/chunks/actionText-CBxkao_8.mjs.map +0 -1
- package/dist/chunks/autolink-CuPhRJIL.mjs.map +0 -1
- package/dist/chunks/emoji-BjUFGMrw.mjs.map +0 -1
- package/dist/chunks/focusTrap-hWDNhn4t.mjs +0 -28
- package/dist/chunks/focusTrap-hWDNhn4t.mjs.map +0 -1
- package/dist/chunks/getAvatarUrl-BBvqBOJD.mjs +0 -32
- package/dist/chunks/getAvatarUrl-BBvqBOJD.mjs.map +0 -1
- package/dist/chunks/index-5AsHlmYO.mjs.map +0 -1
- package/dist/chunks/logger-C7ZZ6zFQ.mjs +0 -25
- package/dist/chunks/logger-C7ZZ6zFQ.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-Tr-vmVPW.mjs.map +0 -1
- package/dist/chunks/usernameToColor-BpeOvoed.mjs +0 -47
- package/dist/chunks/usernameToColor-BpeOvoed.mjs.map +0 -1
- package/dist/utils/IsOutOfViewport.d.ts +0 -8
|
@@ -1,244 +1,26 @@
|
|
|
1
|
-
import '../assets/referencePickerModal-
|
|
1
|
+
import '../assets/referencePickerModal-G4uFPuyg.css';
|
|
2
2
|
import { e as hasFullWidth, i as isWidgetRegistered, h as hasInteractiveView, a as renderWidget, f as destroyWidget, d as isCustomPickerElementRegistered, g as destroyCustomPickerElement, c as renderCustomPickerElement, j as getCustomPickerElementSize } from "./index-CtoB4eIp.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { ref, nextTick, resolveComponent, openBlock, createElementBlock, normalizeClass, createBlock, resolveDynamicComponent, mergeProps, withCtx, createCommentVNode, createElementVNode, toDisplayString, normalizeStyle, createTextVNode, createVNode, withKeys, withModifiers, createApp } from "vue";
|
|
4
4
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
5
|
-
import { r as register,
|
|
5
|
+
import { r as register, R as t21, a as t, S as t8, T as t40, U as t36, V as t22, w as t38, W as t29, F as t17, X as t12 } from "./_l10n-6dsjYig_.mjs";
|
|
6
6
|
import axios from "@nextcloud/axios";
|
|
7
7
|
import { loadState } from "@nextcloud/initial-state";
|
|
8
8
|
import { imagePath, generateOcsUrl } from "@nextcloud/router";
|
|
9
|
-
import { N as NcEmptyContent } from "./NcEmptyContent-
|
|
10
|
-
import { _ as _sfc_main$9 } from "./NcHighlight-
|
|
11
|
-
import { N as NcSelect } from "./NcSelect-
|
|
9
|
+
import { N as NcEmptyContent } from "./NcEmptyContent-BoGB3vFC.mjs";
|
|
10
|
+
import { _ as _sfc_main$9 } from "./NcHighlight-BHtRIzqk.mjs";
|
|
11
|
+
import { N as NcSelect } from "./NcSelect-uOkQ9CdB.mjs";
|
|
12
12
|
import { useElementSize, useIntersectionObserver } from "@vueuse/core";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { N as
|
|
16
|
-
import { N as
|
|
13
|
+
import { RouterLink } from "vue-router";
|
|
14
|
+
import { g as getRoute } from "./autolink-CKPk5rzg.mjs";
|
|
15
|
+
import { N as NcButton } from "./NcButton-Bhuckhtj.mjs";
|
|
16
|
+
import { N as NcLoadingIcon } from "./NcLoadingIcon-DREmHXr2.mjs";
|
|
17
|
+
import { N as NcTextField } from "./NcTextField-DctsarIL.mjs";
|
|
17
18
|
import { D as DotsHorizontal } from "./DotsHorizontal-CCNSfNOk.mjs";
|
|
18
19
|
import NcModal from "../Components/NcModal.mjs";
|
|
19
20
|
import { emit } from "@nextcloud/event-bus";
|
|
20
21
|
import { A as ArrowLeft } from "./ArrowLeft-CxK9DnMo.mjs";
|
|
21
22
|
import { C as Close } from "./Close-pmiXntgw.mjs";
|
|
22
|
-
|
|
23
|
-
* vue-router v4.3.2
|
|
24
|
-
* (c) 2024 Eduardo San Martin Morote
|
|
25
|
-
* @license MIT
|
|
26
|
-
*/
|
|
27
|
-
const isBrowser = typeof document !== "undefined";
|
|
28
|
-
const noop = () => {
|
|
29
|
-
};
|
|
30
|
-
const isArray = Array.isArray;
|
|
31
|
-
function warn(msg) {
|
|
32
|
-
const args = Array.from(arguments).slice(1);
|
|
33
|
-
console.warn.apply(console, ["[Vue Router warn]: " + msg].concat(args));
|
|
34
|
-
}
|
|
35
|
-
function isSameRouteRecord(a, b) {
|
|
36
|
-
return (a.aliasOf || a) === (b.aliasOf || b);
|
|
37
|
-
}
|
|
38
|
-
function isSameRouteLocationParams(a, b) {
|
|
39
|
-
if (Object.keys(a).length !== Object.keys(b).length)
|
|
40
|
-
return false;
|
|
41
|
-
for (const key in a) {
|
|
42
|
-
if (!isSameRouteLocationParamsValue(a[key], b[key]))
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
function isSameRouteLocationParamsValue(a, b) {
|
|
48
|
-
return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b;
|
|
49
|
-
}
|
|
50
|
-
function isEquivalentArray(a, b) {
|
|
51
|
-
return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;
|
|
52
|
-
}
|
|
53
|
-
var NavigationType;
|
|
54
|
-
(function(NavigationType2) {
|
|
55
|
-
NavigationType2["pop"] = "pop";
|
|
56
|
-
NavigationType2["push"] = "push";
|
|
57
|
-
})(NavigationType || (NavigationType = {}));
|
|
58
|
-
var NavigationDirection;
|
|
59
|
-
(function(NavigationDirection2) {
|
|
60
|
-
NavigationDirection2["back"] = "back";
|
|
61
|
-
NavigationDirection2["forward"] = "forward";
|
|
62
|
-
NavigationDirection2["unknown"] = "";
|
|
63
|
-
})(NavigationDirection || (NavigationDirection = {}));
|
|
64
|
-
function isRouteLocation(route) {
|
|
65
|
-
return typeof route === "string" || route && typeof route === "object";
|
|
66
|
-
}
|
|
67
|
-
Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : "");
|
|
68
|
-
var NavigationFailureType;
|
|
69
|
-
(function(NavigationFailureType2) {
|
|
70
|
-
NavigationFailureType2[NavigationFailureType2["aborted"] = 4] = "aborted";
|
|
71
|
-
NavigationFailureType2[NavigationFailureType2["cancelled"] = 8] = "cancelled";
|
|
72
|
-
NavigationFailureType2[NavigationFailureType2["duplicated"] = 16] = "duplicated";
|
|
73
|
-
})(NavigationFailureType || (NavigationFailureType = {}));
|
|
74
|
-
Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : "");
|
|
75
|
-
Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : "");
|
|
76
|
-
const routerKey = Symbol(process.env.NODE_ENV !== "production" ? "router" : "");
|
|
77
|
-
const routeLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "route location" : "");
|
|
78
|
-
Symbol(process.env.NODE_ENV !== "production" ? "router view location" : "");
|
|
79
|
-
function useLink(props) {
|
|
80
|
-
const router = inject(routerKey);
|
|
81
|
-
const currentRoute = inject(routeLocationKey);
|
|
82
|
-
let hasPrevious = false;
|
|
83
|
-
let previousTo = null;
|
|
84
|
-
const route = computed(() => {
|
|
85
|
-
const to = unref(props.to);
|
|
86
|
-
if (process.env.NODE_ENV !== "production" && (!hasPrevious || to !== previousTo)) {
|
|
87
|
-
if (!isRouteLocation(to)) {
|
|
88
|
-
if (hasPrevious) {
|
|
89
|
-
warn(`Invalid value for prop "to" in useLink()
|
|
90
|
-
- to:`, to, `
|
|
91
|
-
- previous to:`, previousTo, `
|
|
92
|
-
- props:`, props);
|
|
93
|
-
} else {
|
|
94
|
-
warn(`Invalid value for prop "to" in useLink()
|
|
95
|
-
- to:`, to, `
|
|
96
|
-
- props:`, props);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
previousTo = to;
|
|
100
|
-
hasPrevious = true;
|
|
101
|
-
}
|
|
102
|
-
return router.resolve(to);
|
|
103
|
-
});
|
|
104
|
-
const activeRecordIndex = computed(() => {
|
|
105
|
-
const { matched } = route.value;
|
|
106
|
-
const { length } = matched;
|
|
107
|
-
const routeMatched = matched[length - 1];
|
|
108
|
-
const currentMatched = currentRoute.matched;
|
|
109
|
-
if (!routeMatched || !currentMatched.length)
|
|
110
|
-
return -1;
|
|
111
|
-
const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));
|
|
112
|
-
if (index > -1)
|
|
113
|
-
return index;
|
|
114
|
-
const parentRecordPath = getOriginalPath(matched[length - 2]);
|
|
115
|
-
return (
|
|
116
|
-
// we are dealing with nested routes
|
|
117
|
-
length > 1 && // if the parent and matched route have the same path, this link is
|
|
118
|
-
// referring to the empty child. Or we currently are on a different
|
|
119
|
-
// child of the same parent
|
|
120
|
-
getOriginalPath(routeMatched) === parentRecordPath && // avoid comparing the child with its parent
|
|
121
|
-
currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index
|
|
122
|
-
);
|
|
123
|
-
});
|
|
124
|
-
const isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));
|
|
125
|
-
const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));
|
|
126
|
-
function navigate(e = {}) {
|
|
127
|
-
if (guardEvent(e)) {
|
|
128
|
-
return router[unref(props.replace) ? "replace" : "push"](
|
|
129
|
-
unref(props.to)
|
|
130
|
-
// avoid uncaught errors are they are logged anyway
|
|
131
|
-
).catch(noop);
|
|
132
|
-
}
|
|
133
|
-
return Promise.resolve();
|
|
134
|
-
}
|
|
135
|
-
if ((process.env.NODE_ENV !== "production" || false) && isBrowser) {
|
|
136
|
-
const instance = getCurrentInstance();
|
|
137
|
-
if (instance) {
|
|
138
|
-
const linkContextDevtools = {
|
|
139
|
-
route: route.value,
|
|
140
|
-
isActive: isActive.value,
|
|
141
|
-
isExactActive: isExactActive.value,
|
|
142
|
-
error: null
|
|
143
|
-
};
|
|
144
|
-
instance.__vrl_devtools = instance.__vrl_devtools || [];
|
|
145
|
-
instance.__vrl_devtools.push(linkContextDevtools);
|
|
146
|
-
watchEffect(() => {
|
|
147
|
-
linkContextDevtools.route = route.value;
|
|
148
|
-
linkContextDevtools.isActive = isActive.value;
|
|
149
|
-
linkContextDevtools.isExactActive = isExactActive.value;
|
|
150
|
-
linkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : 'Invalid "to" value';
|
|
151
|
-
}, { flush: "post" });
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
route,
|
|
156
|
-
href: computed(() => route.value.href),
|
|
157
|
-
isActive,
|
|
158
|
-
isExactActive,
|
|
159
|
-
navigate
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
const RouterLinkImpl = /* @__PURE__ */ defineComponent({
|
|
163
|
-
name: "RouterLink",
|
|
164
|
-
compatConfig: { MODE: 3 },
|
|
165
|
-
props: {
|
|
166
|
-
to: {
|
|
167
|
-
type: [String, Object],
|
|
168
|
-
required: true
|
|
169
|
-
},
|
|
170
|
-
replace: Boolean,
|
|
171
|
-
activeClass: String,
|
|
172
|
-
// inactiveClass: String,
|
|
173
|
-
exactActiveClass: String,
|
|
174
|
-
custom: Boolean,
|
|
175
|
-
ariaCurrentValue: {
|
|
176
|
-
type: String,
|
|
177
|
-
default: "page"
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
useLink,
|
|
181
|
-
setup(props, { slots }) {
|
|
182
|
-
const link = reactive(useLink(props));
|
|
183
|
-
const { options } = inject(routerKey);
|
|
184
|
-
const elClass = computed(() => ({
|
|
185
|
-
[getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive,
|
|
186
|
-
// [getLinkClass(
|
|
187
|
-
// props.inactiveClass,
|
|
188
|
-
// options.linkInactiveClass,
|
|
189
|
-
// 'router-link-inactive'
|
|
190
|
-
// )]: !link.isExactActive,
|
|
191
|
-
[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive
|
|
192
|
-
}));
|
|
193
|
-
return () => {
|
|
194
|
-
const children = slots.default && slots.default(link);
|
|
195
|
-
return props.custom ? children : h("a", {
|
|
196
|
-
"aria-current": link.isExactActive ? props.ariaCurrentValue : null,
|
|
197
|
-
href: link.href,
|
|
198
|
-
// this would override user added attrs but Vue will still add
|
|
199
|
-
// the listener, so we end up triggering both
|
|
200
|
-
onClick: link.navigate,
|
|
201
|
-
class: elClass.value
|
|
202
|
-
}, children);
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
const RouterLink = RouterLinkImpl;
|
|
207
|
-
function guardEvent(e) {
|
|
208
|
-
if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)
|
|
209
|
-
return;
|
|
210
|
-
if (e.defaultPrevented)
|
|
211
|
-
return;
|
|
212
|
-
if (e.button !== void 0 && e.button !== 0)
|
|
213
|
-
return;
|
|
214
|
-
if (e.currentTarget && e.currentTarget.getAttribute) {
|
|
215
|
-
const target = e.currentTarget.getAttribute("target");
|
|
216
|
-
if (/\b_blank\b/i.test(target))
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
if (e.preventDefault)
|
|
220
|
-
e.preventDefault();
|
|
221
|
-
return true;
|
|
222
|
-
}
|
|
223
|
-
function includesParams(outer, inner) {
|
|
224
|
-
for (const key in inner) {
|
|
225
|
-
const innerValue = inner[key];
|
|
226
|
-
const outerValue = outer[key];
|
|
227
|
-
if (typeof innerValue === "string") {
|
|
228
|
-
if (innerValue !== outerValue)
|
|
229
|
-
return false;
|
|
230
|
-
} else {
|
|
231
|
-
if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i]))
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return true;
|
|
236
|
-
}
|
|
237
|
-
function getOriginalPath(record) {
|
|
238
|
-
return record ? record.aliasOf ? record.aliasOf.path : record.path : "";
|
|
239
|
-
}
|
|
240
|
-
const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;
|
|
241
|
-
register(t20);
|
|
23
|
+
register(t21);
|
|
242
24
|
const IDLE_TIMEOUT = 3 * 60 * 1e3;
|
|
243
25
|
const _sfc_main$8 = {
|
|
244
26
|
name: "NcReferenceWidget",
|
|
@@ -263,9 +45,9 @@ const _sfc_main$8 = {
|
|
|
263
45
|
const isVisible = ref(false);
|
|
264
46
|
const widgetRoot = ref();
|
|
265
47
|
const { width } = useElementSize(widgetRoot);
|
|
266
|
-
useIntersectionObserver(widgetRoot, () => {
|
|
48
|
+
useIntersectionObserver(widgetRoot, ([entry]) => {
|
|
267
49
|
nextTick(() => {
|
|
268
|
-
isVisible.value =
|
|
50
|
+
isVisible.value = entry.isIntersecting;
|
|
269
51
|
});
|
|
270
52
|
});
|
|
271
53
|
return {
|
|
@@ -440,7 +222,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
440
222
|
}, 8, ["onClick"])) : createCommentVNode("", true)
|
|
441
223
|
], 2);
|
|
442
224
|
}
|
|
443
|
-
const NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8], ["__scopeId", "data-v-
|
|
225
|
+
const NcReferenceWidget = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8], ["__scopeId", "data-v-ae5e68cb"]]);
|
|
444
226
|
const _sfc_main$7 = {
|
|
445
227
|
name: "NcCustomPickerElement",
|
|
446
228
|
props: {
|
|
@@ -502,8 +284,8 @@ const _hoisted_1$7 = { ref: "domElement" };
|
|
|
502
284
|
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
503
285
|
return openBlock(), createElementBlock("div", _hoisted_1$7, null, 512);
|
|
504
286
|
}
|
|
505
|
-
const NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7], ["__scopeId", "data-v-
|
|
506
|
-
register(
|
|
287
|
+
const NcCustomPickerElement = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7], ["__scopeId", "data-v-314bfb3a"]]);
|
|
288
|
+
register(t8);
|
|
507
289
|
const anyLinkProviderId = "any-link";
|
|
508
290
|
const anyLinkProvider = {
|
|
509
291
|
id: anyLinkProviderId,
|
|
@@ -583,7 +365,7 @@ function isUrl(str) {
|
|
|
583
365
|
return false;
|
|
584
366
|
}
|
|
585
367
|
}
|
|
586
|
-
register(
|
|
368
|
+
register(t36, t40);
|
|
587
369
|
const _sfc_main$6 = {
|
|
588
370
|
name: "LinkVariantIcon",
|
|
589
371
|
emits: ["click"],
|
|
@@ -746,8 +528,8 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
746
528
|
})
|
|
747
529
|
]);
|
|
748
530
|
}
|
|
749
|
-
const NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5], ["__scopeId", "data-v-
|
|
750
|
-
register(
|
|
531
|
+
const NcProviderList = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5], ["__scopeId", "data-v-d05c354b"]]);
|
|
532
|
+
register(t22);
|
|
751
533
|
const _sfc_main$4 = {
|
|
752
534
|
name: "NcRawLinkInput",
|
|
753
535
|
components: {
|
|
@@ -877,7 +659,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
877
659
|
}))
|
|
878
660
|
]);
|
|
879
661
|
}
|
|
880
|
-
const NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-
|
|
662
|
+
const NcRawLinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-b84f647b"]]);
|
|
881
663
|
const _sfc_main$3 = {
|
|
882
664
|
name: "NcSearchResult",
|
|
883
665
|
components: {
|
|
@@ -933,8 +715,8 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
933
715
|
])
|
|
934
716
|
]);
|
|
935
717
|
}
|
|
936
|
-
const NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-
|
|
937
|
-
register(
|
|
718
|
+
const NcSearchResult = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-2ae26ab4"]]);
|
|
719
|
+
register(t29, t36, t38);
|
|
938
720
|
const LIMIT = 5;
|
|
939
721
|
const _sfc_main$2 = {
|
|
940
722
|
name: "NcSearch",
|
|
@@ -1228,7 +1010,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1228
1010
|
})) : createCommentVNode("", true)
|
|
1229
1011
|
], 2);
|
|
1230
1012
|
}
|
|
1231
|
-
const NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
|
1013
|
+
const NcSearch = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-f6cdb836"]]);
|
|
1232
1014
|
const MODES = {
|
|
1233
1015
|
providerList: 1,
|
|
1234
1016
|
standardLinkInput: 2,
|
|
@@ -1392,8 +1174,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1392
1174
|
])) : createCommentVNode("", true)
|
|
1393
1175
|
], 36);
|
|
1394
1176
|
}
|
|
1395
|
-
const NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
|
1396
|
-
register(
|
|
1177
|
+
const NcReferencePicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-f3f0de17"]]);
|
|
1178
|
+
register(t12, t17);
|
|
1397
1179
|
const _sfc_main = {
|
|
1398
1180
|
name: "NcReferencePickerModal",
|
|
1399
1181
|
components: {
|
|
@@ -1541,7 +1323,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1541
1323
|
_: 1
|
|
1542
1324
|
}, 8, ["size", "onClose"])) : createCommentVNode("", true);
|
|
1543
1325
|
}
|
|
1544
|
-
const NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
1326
|
+
const NcReferencePickerModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-53729c60"]]);
|
|
1545
1327
|
async function getLinkWithPicker(providerId = null, isInsideViewer = void 0) {
|
|
1546
1328
|
return await new Promise((resolve, reject) => {
|
|
1547
1329
|
const modalId = "referencePickerModal";
|
|
@@ -1566,7 +1348,6 @@ async function getLinkWithPicker(providerId = null, isInsideViewer = void 0) {
|
|
|
1566
1348
|
}
|
|
1567
1349
|
export {
|
|
1568
1350
|
NcReferenceWidget as N,
|
|
1569
|
-
RouterLink as R,
|
|
1570
1351
|
anyLinkProviderId as a,
|
|
1571
1352
|
getProvider as b,
|
|
1572
1353
|
getProviders as c,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referencePickerModal-BwzqUWFA.mjs","sources":["../../src/components/NcRichText/NcReferenceWidget.vue","../../src/components/NcRichText/NcReferencePicker/NcCustomPickerElement.vue","../../src/functions/reference/providerHelper.js","../../src/components/NcRichText/NcReferencePicker/utils.js","../../node_modules/vue-material-design-icons/LinkVariant.vue","../../src/components/NcRichText/NcReferencePicker/NcProviderList.vue","../../src/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue","../../src/components/NcRichText/NcReferencePicker/NcSearchResult.vue","../../src/components/NcRichText/NcReferencePicker/NcSearch.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePicker.vue","../../src/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue","../../src/functions/reference/referencePickerModal.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div ref=\"widgetRoot\" :class=\"{'toggle-interactive': hasInteractiveView && !isInteractive }\">\n\t\t<div v-if=\"reference && hasCustomWidget\"\n\t\t\tref=\"customWidget\"\n\t\t\tclass=\"widget-custom\"\n\t\t\t:class=\"{ 'full-width': hasFullWidth }\" />\n\n\t\t<component :is=\"referenceWidgetLinkComponent\"\n\t\t\tv-else-if=\"!noAccess && reference && reference.openGraphObject && !hasCustomWidget\"\n\t\t\tv-bind=\"referenceWidgetLinkProps\"\n\t\t\trel=\"noopener noreferrer\"\n\t\t\tclass=\"widget-default\">\n\t\t\t<img v-if=\"reference.openGraphObject.thumb\" class=\"widget-default--image\" :src=\"reference.openGraphObject.thumb\">\n\t\t\t<div class=\"widget-default--details\">\n\t\t\t\t<p class=\"widget-default--name\">\n\t\t\t\t\t{{ reference.openGraphObject.name }}\n\t\t\t\t</p>\n\t\t\t\t<p class=\"widget-default--description\" :style=\"descriptionStyle\">\n\t\t\t\t\t{{ reference.openGraphObject.description }}\n\t\t\t\t</p>\n\t\t\t\t<p class=\"widget-default--link\">\n\t\t\t\t\t{{ compactLink }}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</component>\n\t\t<NcButton v-if=\"interactiveOptIn && hasInteractiveView && !isInteractive\" class=\"toggle-interactive--button\" @click=\"enableInteractive\">\n\t\t\t{{ t('Enable interactive view') }}\n\t\t</NcButton>\n\t</div>\n</template>\n<script>\nimport { useElementSize, useIntersectionObserver } from '@vueuse/core'\nimport { nextTick, ref } from 'vue'\nimport { RouterLink } from 'vue-router'\n\nimport { t } from '../../l10n.js'\nimport { getRoute } from './autolink.ts'\nimport { renderWidget, isWidgetRegistered, destroyWidget, hasInteractiveView, hasFullWidth } from './../../functions/reference/widgets.ts'\n\nimport NcButton from '../../components/NcButton/NcButton.vue'\n\nconst IDLE_TIMEOUT = 3 * 60 * 1000 // 3 minutes outside of viewport before widget is removed from the DOM\n\nexport default {\n\tname: 'NcReferenceWidget',\n\tcomponents: {\n\t\tNcButton,\n\t},\n\tprops: {\n\t\treference: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tinteractiveOptIn: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst isVisible = ref(false)\n\t\t// This is the widget root node\n\t\tconst widgetRoot = ref()\n\t\tconst { width } = useElementSize(widgetRoot)\n\n\t\tuseIntersectionObserver(widgetRoot, ([entry]) => {\n\t\t\tnextTick(() => {\n\t\t\t\tisVisible.value = entry.isIntersecting\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\twidth,\n\t\t\tisVisible,\n\t\t\twidgetRoot,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowInteractive: false,\n\t\t\trendered: false,\n\t\t\tidleTimeout: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisInteractive() {\n\t\t\treturn (!this.interactiveOptIn && this.interactive) || this.showInteractive\n\t\t},\n\t\thasFullWidth() {\n\t\t\treturn hasFullWidth(this.reference.richObjectType)\n\t\t},\n\t\thasCustomWidget() {\n\t\t\treturn isWidgetRegistered(this.reference.richObjectType)\n\t\t},\n\t\thasInteractiveView() {\n\t\t\treturn isWidgetRegistered(this.reference.richObjectType) && hasInteractiveView(this.reference.richObjectType)\n\t\t},\n\t\tnoAccess() {\n\t\t\treturn this.reference && !this.reference.accessible\n\t\t},\n\t\tdescriptionStyle() {\n\t\t\tif (this.numberOfLines === 0) {\n\t\t\t\treturn {\n\t\t\t\t\tdisplay: 'none',\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst lineClamp = this.numberOfLines\n\t\t\treturn {\n\t\t\t\tlineClamp,\n\t\t\t\twebkitLineClamp: lineClamp,\n\t\t\t}\n\t\t},\n\t\tnumberOfLines() {\n\t\t\t// no description for width < 450, one line until 550 and so on\n\t\t\tconst lineCountOffsets = [450, 550, 650, Infinity]\n\t\t\treturn lineCountOffsets.findIndex(max => this.width < max)\n\t\t},\n\t\tcompactLink() {\n\t\t\tconst link = this.reference.openGraphObject.link\n\t\t\tif (!link) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tif (link.startsWith('https://')) {\n\t\t\t\treturn link.substring(8)\n\t\t\t}\n\t\t\tif (link.startsWith('http://')) {\n\t\t\t\treturn link.substring(7)\n\t\t\t}\n\t\t\treturn link\n\t\t},\n\t\troute() {\n\t\t\treturn getRoute(this.$router, this.reference.openGraphObject.link)\n\t\t},\n\t\treferenceWidgetLinkComponent() {\n\t\t\treturn this.route ? RouterLink : 'a'\n\t\t},\n\t\treferenceWidgetLinkProps() {\n\t\t\treturn this.route\n\t\t\t\t? { to: this.route }\n\t\t\t\t: { href: this.reference.openGraphObject.link, target: '_blank' }\n\t\t},\n\t},\n\twatch: {\n\t\tisVisible: {\n\t\t\thandler(val) {\n\t\t\t\tif (!val) {\n\t\t\t\t\tthis.idleTimeout = setTimeout(() => {\n\t\t\t\t\t\t// If the widget is still outside of viewport after timeout, destroy it\n\t\t\t\t\t\tif (!this.isVisible) {\n\t\t\t\t\t\t\tthis.destroyWidget()\n\t\t\t\t\t\t}\n\t\t\t\t\t}, IDLE_TIMEOUT)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (this.idleTimeout) {\n\t\t\t\t\tclearTimeout(this.idleTimeout)\n\t\t\t\t\tthis.idleTimeout = null\n\t\t\t\t}\n\n\t\t\t\tif (!this.rendered) {\n\t\t\t\t\tthis.renderWidget()\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t},\n\tbeforeUnmount() {\n\t\tthis.destroyWidget()\n\t},\n\tmethods: {\n\t\tt,\n\n\t\tenableInteractive() {\n\t\t\tthis.showInteractive = true\n\t\t\tthis.renderWidget()\n\t\t},\n\t\trenderWidget() {\n\t\t\tif (!this.$refs.customWidget) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this?.reference?.richObjectType === 'open-graph') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$refs.customWidget.innerHTML = ''\n\n\t\t\t// create a separate element so we can rerender on the ref again\n\t\t\tconst widget = document.createElement('div')\n\t\t\tthis.$refs.customWidget.appendChild(widget)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\t// Waiting for the ref to become available\n\t\t\t\trenderWidget(widget, {\n\t\t\t\t\t...this.reference,\n\t\t\t\t\tinteractive: this.isInteractive,\n\t\t\t\t})\n\t\t\t\tthis.rendered = true\n\t\t\t})\n\t\t},\n\t\tdestroyWidget() {\n\t\t\tif (this.rendered) {\n\t\t\t\tdestroyWidget(this.reference.richObjectType, this.$el)\n\t\t\t\tthis.rendered = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\n@mixin widget {\n\twidth: 100%;\n\tmargin: auto;\n\tmargin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n\tmargin-top: calc(var(--default-grid-baseline, 4px) * 3);\n\toverflow: hidden;\n\tborder: 2px solid var(--color-border);\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: transparent;\n\tdisplay: flex;\n}\n\n.widget-custom {\n\t@include widget;\n\n\t&.full-width {\n\t\twidth: var(--widget-full-width, 100%) !important;\n\t\tleft: calc( (var(--widget-full-width, 100%) - 100%) / 2 * -1);\n\t\tposition: relative;\n\t}\n}\n\n.widget-access {\n\t@include widget;\n\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n}\n\n.widget-default {\n\t@include widget;\n\n\t&--compact {\n\t\tflex-direction: column;\n\n\t\t.widget-default--image {\n\t\t\twidth: 100%;\n\t\t\theight: 150px;\n\t\t}\n\n\t\t.widget-default--details {\n\t\t\twidth: 100%;\n\t\t\tpadding-top: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t\tpadding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\n\t\t}\n\n\t\t.widget-default--description {\n\t\t\tdisplay: none;\n\t\t}\n\n\t}\n\n\t&--image {\n\t\twidth: 40%;\n\t\tbackground-position: center;\n\t\tbackground-size: cover;\n\t\tbackground-repeat: no-repeat;\n\t}\n\n\t&--name {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\tfont-weight: bold;\n\t}\n\n\t&--details {\n\t\tpadding: calc(var(--default-grid-baseline, 4px) * 3);\n\t\twidth: 60%;\n\n\t\tp {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t&--description {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tdisplay: -webkit-box;\n\t\t-webkit-line-clamp: 3;\n\t\tline-clamp: 3; /* stylelint-disable-line property-no-unknown */\n\t\t-webkit-box-orient: vertical;\n\t}\n\n\t&--link {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n}\n\n.toggle-interactive {\n\tposition: relative;\n\t.toggle-interactive--button {\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tz-index: 10000;\n\t\tleft: 50%;\n\t\ttransform: translateX(-50%) translateY(-50%);\n\t\topacity: 0;\n\t}\n\n\t&:focus-within, &:hover {\n\t\t.toggle-interactive--button {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div ref=\"domElement\" />\n</template>\n\n<script>\nimport { renderCustomPickerElement, isCustomPickerElementRegistered, destroyCustomPickerElement } from './../../../functions/reference/customPickerElements.js'\n\nexport default {\n\tname: 'NcCustomPickerElement',\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tisRegistered: isCustomPickerElementRegistered(this.provider.id),\n\t\t\trenderResult: null,\n\t\t}\n\t},\n\tmounted() {\n\t\tif (this.isRegistered) {\n\t\t\tthis.renderElement()\n\t\t}\n\t},\n\tbeforeUnmount() {\n\t\tif (this.isRegistered) {\n\t\t\tdestroyCustomPickerElement(this.provider.id, this.$el, this.renderResult)\n\t\t}\n\t},\n\tmethods: {\n\t\trenderElement() {\n\t\t\tif (this.$refs.domElement) {\n\t\t\t\tthis.$refs.domElement.innerHTML = ''\n\t\t\t}\n\n\t\t\tconst renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false })\n\t\t\t// this works whether renderCustomPickerElement returns a promise or a value\n\t\t\tPromise.resolve(renderFunctionResult).then(result => {\n\t\t\t\tthis.renderResult = result\n\t\t\t\tif (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n\t\t\t\t\tthis.renderResult.object.$on('submit', this.onSubmit)\n\t\t\t\t\tthis.renderResult.object.$on('cancel', this.onCancel)\n\t\t\t\t}\n\t\t\t\tthis.renderResult.element.addEventListener('submit', (e) => {\n\t\t\t\t\tthis.onSubmit(e.detail)\n\t\t\t\t})\n\t\t\t\tthis.renderResult.element.addEventListener('cancel', this.onCancel)\n\t\t\t})\n\t\t},\n\t\tonSubmit(value) {\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\t\tonCancel() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// nothing yet\n</style>\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { isCustomPickerElementRegistered } from './customPickerElements.js'\n\nimport { t } from '../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, imagePath } from '@nextcloud/router'\n\nexport const anyLinkProviderId = 'any-link'\n\nconst anyLinkProvider = {\n\tid: anyLinkProviderId,\n\ttitle: t('Any link'),\n\ticon_url: imagePath('core', 'filetypes/link.svg'),\n}\n\n// only get the provider list once, even if functions of this file are imported multiple times by different apps/components\nif (!window._vue_richtext_reference_providers) {\n\twindow._vue_richtext_reference_providers = loadState('core', 'reference-provider-list', [])\n}\n\n// single timestamps object used by every entity in the page\nif (!window._vue_richtext_reference_provider_timestamps) {\n\twindow._vue_richtext_reference_provider_timestamps = loadState('core', 'reference-provider-timestamps', {})\n}\n\n/**\n * @param {string} providerId The provider ID\n * @return {object} The provider object\n */\nexport function getProvider(providerId) {\n\tif (providerId === anyLinkProviderId) {\n\t\treturn anyLinkProvider\n\t}\n\treturn getProviders().find(p => p.id === providerId)\n}\n\n/**\n * @return {Array} Raw provider list as it was provided by the server\n */\nexport function getProviders() {\n\treturn window._vue_richtext_reference_providers.filter(p => {\n\t\t// avoid providers with no associated search provider and no custom component registered\n\t\tconst keep = (!!p.search_providers_ids && p.search_providers_ids.length > 0) || isCustomPickerElementRegistered(p.id)\n\t\tif (!keep) {\n\t\t\tconsole.debug('[smart picker]', p.id, 'reference provider is discoverable but does not have any related search provider or custom picker component registered')\n\t\t}\n\t\treturn keep\n\t})\n}\n\n/**\n * Helper function to sort a list of providers according to 2 factors:\n * - their \"last used timestamp\"\n * - their \"order\" property (coming from the provider declaration in the server implementation)\n *\n * @param {Array} providerList list of provider objects\n * @return {Array} the sorted provider list\n */\nexport function sortProviders(providerList) {\n\tconst timestamps = window._vue_richtext_reference_provider_timestamps\n\n\treturn providerList.sort((a, b) => {\n\t\treturn a.order === b.order\n\t\t\t? 0\n\t\t\t: a.order > b.order\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t}).sort((a, b) => {\n\t\tconst ta = timestamps[a.id]\n\t\tconst tb = timestamps[b.id]\n\t\treturn ta === tb\n\t\t\t? 0\n\t\t\t: tb === undefined\n\t\t\t\t? -1\n\t\t\t\t: ta === undefined\n\t\t\t\t\t? 1\n\t\t\t\t\t: ta > tb\n\t\t\t\t\t\t? -1\n\t\t\t\t\t\t: 1\n\t})\n}\n\n/**\n * Helper function to search a provider from a search query\n * Result is a sorted list of providers\n *\n * @param {string} query The search query\n * @param {number} limit (optional) max number of results\n * @return {Array} the sorted/filtered provider list\n */\nexport function searchProvider(query, limit = null) {\n\tconst providers = getProviders()\n\tconst escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n\tconst regexp = new RegExp(escapedQuery, 'i')\n\tconst sortedProviders = sortProviders(providers)\n\tconst filteredSortedProviders = sortedProviders.filter(p => {\n\t\treturn p.title.match(regexp)\n\t})\n\tconst searchResult = limit\n\t\t? filteredSortedProviders.slice(0, limit)\n\t\t: filteredSortedProviders\n\t// append the 'any link' provider in the full list or when there is no result\n\tif (query === '' || searchResult.length === 0) {\n\t\tsearchResult.push(anyLinkProvider)\n\t}\n\treturn searchResult\n}\n\n/**\n * Update the \"last used timestamp\" on the server side and then locally in the frontend\n *\n * @param {number} providerId The id of the search provider\n */\nexport function touchProvider(providerId) {\n\tconst timestamp = Math.floor(Date.now() / 1000)\n\tconst params = {\n\t\ttimestamp,\n\t}\n\tconst url = generateOcsUrl('references/provider/{providerId}', { providerId })\n\taxios.put(url, params)\n\t\t.then((response) => {\n\t\t\twindow._vue_richtext_reference_provider_timestamps[providerId] = timestamp\n\t\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nlet mytimer = 0\n/**\n *\n * @param {Function} callback The callback to call after the delay\n * @param {number} ms The delay in milli-seconds\n */\nexport function delay(callback, ms) {\n\treturn function() {\n\t\tconst context = this\n\t\tconst args = arguments\n\t\tclearTimeout(mytimer)\n\t\tmytimer = setTimeout(function() {\n\t\t\tcallback.apply(context, args)\n\t\t}, ms || 0)\n\t}\n}\n/**\n *\n * @param {string} str The url\n */\nexport function isUrl(str) {\n\ttry {\n\t\treturn Boolean(new URL(str))\n\t} catch (error) {\n\t\treturn false\n\t}\n}\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon link-variant-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LinkVariantIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"provider-list\">\n\t\t<NcSelect ref=\"provider-select\"\n\t\t\tv-model=\"selectedProvider\"\n\t\t\tclass=\"provider-list--select\"\n\t\t\tinput-id=\"provider-select-input\"\n\t\t\tlabel=\"title\"\n\t\t\t:placeholder=\"multiselectPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:append-to-body=\"false\"\n\t\t\t:clear-search-on-select=\"true\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:filterable=\"false\"\n\t\t\t@search=\"onSearch\"\n\t\t\t@update:model-value=\"onProviderSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isLink\" class=\"provider\">\n\t\t\t\t\t<LinkVariantIcon class=\"link-icon\" :size=\"20\" />\n\t\t\t\t\t<span>{{ option.title }}</span>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class=\"provider\">\n\t\t\t\t\t<img class=\"provider-icon\"\n\t\t\t\t\t\t:src=\"option.icon_url\"\n\t\t\t\t\t\t:alt=\"providerIconAlt\">\n\t\t\t\t\t<NcHighlight class=\"option-text\"\n\t\t\t\t\t\t:search=\"query\"\n\t\t\t\t\t\t:text=\"option.title\" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent class=\"provider-list--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<LinkVariantIcon />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport { searchProvider } from './../../../functions/reference/providerHelper.js'\nimport { isUrl } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcHighlight from '../../NcHighlight/index.js'\nimport NcSelect from '../../NcSelect/index.js'\nimport { t } from '../../../l10n.js'\n\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nexport default {\n\tname: 'NcProviderList',\n\tcomponents: {\n\t\tNcSelect,\n\t\tNcHighlight,\n\t\tNcEmptyContent,\n\t\tLinkVariantIcon,\n\t},\n\temits: [\n\t\t'select-provider',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tselectedProvider: null,\n\t\t\tquery: '',\n\t\t\tmultiselectPlaceholder: t('Select provider'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\tcomputed: {\n\t\toptions() {\n\t\t\tconst result = []\n\t\t\tif (this.query !== '' && isUrl(this.query)) {\n\t\t\t\tresult.push({\n\t\t\t\t\tid: this.query,\n\t\t\t\t\ttitle: this.query,\n\t\t\t\t\tisLink: true,\n\t\t\t\t})\n\t\t\t}\n\t\t\tresult.push(...searchProvider(this.query))\n\t\t\treturn result\n\t\t},\n\t},\n\tmethods: {\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-select']?.$el?.querySelector('#provider-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\t\tonProviderSelected(p) {\n\t\t\tif (p !== null) {\n\t\t\t\tif (p.isLink) {\n\t\t\t\t\tthis.$emit('submit', p.title)\n\t\t\t\t} else {\n\t\t\t\t\tthis.$emit('select-provider', p)\n\t\t\t\t}\n\t\t\t\tthis.selectedProvider = null\n\t\t\t}\n\t\t},\n\t\tonSearch(query) {\n\t\t\tthis.query = query\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.provider-list {\n\twidth: 100%;\n\tmin-height: 400px;\n\tpadding: 0 16px 16px 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.provider {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\theight: 28px;\n\t\t\toverflow: hidden;\n\n\t\t\t.link-icon {\n\t\t\t\tmargin-right: 8px;\n\t\t\t}\n\n\t\t\t.provider-icon {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tobject-fit: contain;\n\t\t\t\tmargin-right: 8px;\n\t\t\t\tfilter: var(--background-invert-if-dark);\n\t\t\t}\n\n\t\t\t.option-text {\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"raw-link\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<NcTextField ref=\"url-input\"\n\t\t\t\tv-model=\"inputValue\"\n\t\t\t\t:show-trailing-button=\"inputValue !== ''\"\n\t\t\t\t:label=\"inputPlaceholder\"\n\t\t\t\t@trailing-button-click=\"onClear\"\n\t\t\t\t@update:model-value=\"onInput\"\n\t\t\t\t@keyup.enter=\"onSubmit\">\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" :size=\"16\" />\n\t\t\t\t<LinkVariantIcon v-else :size=\"16\" />\n\t\t\t</NcTextField>\n\t\t</div>\n\t\t<NcReferenceWidget v-if=\"reference !== null\"\n\t\t\tclass=\"reference-widget\"\n\t\t\t:reference=\"reference\" />\n\t\t<NcEmptyContent v-else\n\t\t\tclass=\"raw-link--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport NcReferenceWidget from '../NcReferenceWidget.vue'\nimport { isUrl, delay } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcLoadingIcon from '../../NcLoadingIcon/index.js'\nimport NcTextField from '../../NcTextField/index.js'\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nexport default {\n\tname: 'NcRawLinkInput',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tNcEmptyContent,\n\t\tNcLoadingIcon,\n\t\tNcReferenceWidget,\n\t\tNcTextField,\n\t},\n\tprops: {\n\t\t/**\n\t\t * The reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: [\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tinputValue: '',\n\t\t\tloading: false,\n\t\t\treference: null,\n\t\t\tabortController: null,\n\t\t\tinputPlaceholder: t('Enter link'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tisLinkValid() {\n\t\t\treturn isUrl(this.inputValue)\n\t\t},\n\t},\n\tmethods: {\n\t\tfocus() {\n\t\t\tthis.$refs['url-input'].$el.getElementsByTagName('input')[0]?.focus()\n\t\t},\n\t\tonSubmit(e) {\n\t\t\tconst value = e.target.value\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tthis.$emit('submit', value)\n\t\t\t}\n\t\t},\n\t\tonClear() {\n\t\t\tthis.inputValue = ''\n\t\t\tthis.reference = null\n\t\t},\n\t\tonInput() {\n\t\t\tthis.reference = null\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t\tif (this.isLinkValid) {\n\t\t\t\tdelay(() => {\n\t\t\t\t\tthis.updateReference()\n\t\t\t\t}, 500)()\n\t\t\t}\n\t\t},\n\t\tupdateReference() {\n\t\t\tthis.loading = true\n\t\t\tthis.abortController = new AbortController()\n\t\t\taxios.get(generateOcsUrl('references/resolve', 2) + '?reference=' + encodeURIComponent(this.inputValue), {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tthis.reference = response.data.ocs.data.references[this.inputValue]\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.raw-link {\n\twidth: 100%;\n\tmin-height: 350px;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\tpadding: 0 16px 16px 16px;\n\n\t.input-wrapper {\n\t\twidth: 100%;\n\t}\n\n\t.reference-widget {\n\t\tdisplay: flex;\n\t}\n\n\t&--empty-content .provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--input {\n\t\twidth: 99%;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"result\">\n\t\t<div v-if=\"entry.icon\"\n\t\t\t:class=\"{ [entry.icon]: true, rounded: entry.rounded }\"\n\t\t\tclass=\"result--icon-class\" />\n\t\t<img v-else\n\t\t\tclass=\"result--image\"\n\t\t\t:class=\"{ rounded: entry.rounded }\"\n\t\t\t:src=\"entry.thumbnailUrl\">\n\t\t<div class=\"result--content\">\n\t\t\t<span class=\"result--content--name\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.title\" />\n\t\t\t</span>\n\t\t\t<span class=\"result--content--subline\">\n\t\t\t\t<NcHighlight :search=\"query\" :text=\"entry.subline\" />\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcHighlight from '../../NcHighlight/index.js'\n\nexport default {\n\tname: 'NcSearchResult',\n\tcomponents: {\n\t\tNcHighlight,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Unified search result entry\n\t\t */\n\t\tentry: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * The query that led to getting this result\n\t\t * Used to highlight the entry text\n\t\t */\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\toverflow: hidden;\n\n\t&--icon-class,\n\t&--image {\n\t\twidth: 40px;\n\t\tmin-width: 40px;\n\t\theight: 40px;\n\t\tobject-fit: contain;\n\n\t\t&.rounded {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n\n\t&--content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tpadding-left: 10px;\n\t\toverflow: hidden;\n\n\t\t&--name,\n\t\t&--subline {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"smart-picker-search\" :class=\"{ 'with-empty-content': showEmptyContent }\">\n\t\t<NcSelect ref=\"search-select\"\n\t\t\tv-model=\"selectedResult\"\n\t\t\tclass=\"smart-picker-search--select\"\n\t\t\tinput-id=\"search-select-input\"\n\t\t\tlabel=\"name\"\n\t\t\t:placeholder=\"mySearchPlaceholder\"\n\t\t\t:options=\"options\"\n\t\t\t:append-to-body=\"false\"\n\t\t\t:close-on-select=\"false\"\n\t\t\t:clear-search-on-select=\"false\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:reset-focus-on-options-change=\"false\"\n\t\t\t:filterable=\"false\"\n\t\t\t:autoscroll=\"true\"\n\t\t\t:reset-on-options-change=\"false\"\n\t\t\t:loading=\"searching\"\n\t\t\t@search=\"onSearchInput\"\n\t\t\t@update:model-value=\"onSelectResultSelected\">\n\t\t\t<template #option=\"option\">\n\t\t\t\t<div v-if=\"option.isRawLink\" class=\"custom-option\">\n\t\t\t\t\t<LinkVariantIcon class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Raw link {options}', { options: option.resourceUrl }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<NcSearchResult v-else-if=\"option.resourceUrl\"\n\t\t\t\t\tclass=\"search-result\"\n\t\t\t\t\t:entry=\"option\"\n\t\t\t\t\t:query=\"searchQuery\" />\n\t\t\t\t<span v-else-if=\"option.isCustomGroupTitle\" class=\"custom-option group-name\">\n\t\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\t\tclass=\"provider-icon group-name-icon\"\n\t\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t<strong>{{ option.name }}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t<span v-else-if=\"option.isMore\" :class=\"{ 'custom-option': true }\">\n\t\t\t\t\t<span v-if=\"option.isLoading\" class=\"option-simple-icon icon-loading-small\" />\n\t\t\t\t\t<DotsHorizontalIcon v-else class=\"option-simple-icon\" :size=\"20\" />\n\t\t\t\t\t<span class=\"option-text\">\n\t\t\t\t\t\t{{ t('Load more \"{options}\"', { options: option.name }) }}\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t\t<template #no-options>\n\t\t\t\t{{ noOptionsText }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t\t<NcEmptyContent v-if=\"showEmptyContent\"\n\t\t\tclass=\"smart-picker-search--empty-content\">\n\t\t\t<template #icon>\n\t\t\t\t<img v-if=\"provider.icon_url\"\n\t\t\t\t\tclass=\"provider-icon\"\n\t\t\t\t\t:alt=\"providerIconAlt\"\n\t\t\t\t\t:src=\"provider.icon_url\">\n\t\t\t\t<LinkVariantIcon v-else />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport NcSearchResult from './NcSearchResult.vue'\nimport { isUrl, delay } from './utils.js'\nimport NcEmptyContent from '../../NcEmptyContent/index.js'\nimport NcSelect from '../../NcSelect/index.js'\n\nimport { t } from '../../../l10n.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport LinkVariantIcon from 'vue-material-design-icons/LinkVariant.vue'\n\nconst LIMIT = 5\n\nexport default {\n\tname: 'NcSearch',\n\tcomponents: {\n\t\tLinkVariantIcon,\n\t\tDotsHorizontalIcon,\n\t\tNcEmptyContent,\n\t\tNcSelect,\n\t\tNcSearchResult,\n\t},\n\tprops: {\n\t\t/**\n\t\t * The selected reference provider\n\t\t */\n\t\tprovider: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshowEmptyContent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tsearchPlaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: [\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t\tselectedResult: null,\n\t\t\tresultsBySearchProvider: {},\n\t\t\tsearching: false,\n\t\t\tsearchingMoreOf: null,\n\t\t\tabortController: null,\n\t\t\tnoOptionsText: t('Start typing to search'),\n\t\t\tproviderIconAlt: t('Provider icon'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tmySearchPlaceholder() {\n\t\t\treturn this.searchPlaceholder || t('Search')\n\t\t},\n\t\tsearchProviderIds() {\n\t\t\treturn this.provider.search_providers_ids\n\t\t},\n\t\toptions() {\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst options = []\n\t\t\tif (isUrl(this.searchQuery)) {\n\t\t\t\toptions.push(this.rawLinkEntry)\n\t\t\t}\n\t\t\toptions.push(...this.formattedSearchResults)\n\t\t\treturn options\n\t\t},\n\t\trawLinkEntry() {\n\t\t\treturn {\n\t\t\t\tid: 'rawLinkEntry',\n\t\t\t\tresourceUrl: this.searchQuery,\n\t\t\t\tisRawLink: true,\n\t\t\t}\n\t\t},\n\t\tformattedSearchResults() {\n\t\t\tconst results = []\n\t\t\tthis.searchProviderIds.forEach(pid => {\n\t\t\t\tif (this.resultsBySearchProvider[pid].entries.length > 0) {\n\t\t\t\t\t// don't show group name entry if there is only one search provider and one result\n\t\t\t\t\tif (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'groupTitle-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisCustomGroupTitle: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\tconst providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: 'provider-' + pid + '-entry-' + index,\n\t\t\t\t\t\t\t...entry,\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tresults.push(...providerEntriesWithId)\n\t\t\t\t\tif (this.resultsBySearchProvider[pid].isPaginated) {\n\t\t\t\t\t\tresults.push({\n\t\t\t\t\t\t\tid: 'moreOf-' + pid,\n\t\t\t\t\t\t\tname: this.resultsBySearchProvider[pid].name,\n\t\t\t\t\t\t\tisMore: true,\n\t\t\t\t\t\t\tproviderId: pid,\n\t\t\t\t\t\t\tisLoading: this.searchingMoreOf === pid,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn results\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.resetResults()\n\t},\n\tbeforeUnmount() {\n\t\tthis.cancelSearchRequests()\n\t},\n\tmethods: {\n\t\tt,\n\t\tresetResults() {\n\t\t\tconst resultsBySearchProvider = {}\n\t\t\tthis.searchProviderIds.forEach(pid => {\n\t\t\t\tresultsBySearchProvider[pid] = {\n\t\t\t\t\tentries: [],\n\t\t\t\t}\n\t\t\t})\n\t\t\tthis.resultsBySearchProvider = resultsBySearchProvider\n\t\t},\n\t\tfocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['search-select']?.$el?.querySelector('#search-select-input')?.focus()\n\t\t\t}, 300)\n\t\t},\n\t\tcancelSearchRequests() {\n\t\t\tif (this.abortController) {\n\t\t\t\tthis.abortController.abort()\n\t\t\t}\n\t\t},\n\t\tonSearchInput(query) {\n\t\t\tthis.searchQuery = query\n\t\t\tdelay(() => {\n\t\t\t\tthis.updateSearch()\n\t\t\t}, 500)()\n\t\t},\n\t\tonSelectResultSelected(item) {\n\t\t\tif (item !== null) {\n\t\t\t\tif (item.resourceUrl) {\n\t\t\t\t\tthis.cancelSearchRequests()\n\t\t\t\t\tthis.$emit('submit', item.resourceUrl)\n\t\t\t\t} else if (item.isMore) {\n\t\t\t\t\tthis.searchMoreOf(item.providerId).then(() => {\n\t\t\t\t\t\t// allow clicking twice on the same \"more\" item\n\t\t\t\t\t\tthis.selectedResult = null\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsearchMoreOf(searchProviderId) {\n\t\t\tthis.searchingMoreOf = searchProviderId\n\t\t\tthis.cancelSearchRequests()\n\t\t\treturn this.searchProviders(searchProviderId)\n\t\t},\n\t\tupdateSearch() {\n\t\t\tthis.cancelSearchRequests()\n\t\t\tthis.resetResults()\n\t\t\tif (this.searchQuery === '') {\n\t\t\t\tthis.searching = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\treturn this.searchProviders()\n\t\t},\n\t\tsearchProviders(searchProviderId = null) {\n\t\t\tthis.abortController = new AbortController()\n\t\t\tthis.searching = true\n\n\t\t\tconst searchPromises = searchProviderId === null\n\t\t\t\t? [...this.searchProviderIds].map(pid => {\n\t\t\t\t\treturn this.searchOneProvider(pid)\n\t\t\t\t})\n\t\t\t\t: [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)]\n\t\t\t// fake one to have a request error\n\t\t\t// searchPromises.push(this.searchOneProvider('nopid'))\n\n\t\t\treturn Promise.allSettled(searchPromises)\n\t\t\t\t.then((promises) => {\n\t\t\t\t\tconst isOneCanceled = !!promises.find(p => {\n\t\t\t\t\t\treturn p.status === 'rejected' && (p.reason.name === 'CanceledError' || p.reason.code === 'ERR_CANCELED')\n\t\t\t\t\t})\n\t\t\t\t\t// nothing was canceled: not searching\n\t\t\t\t\tif (!isOneCanceled) {\n\t\t\t\t\t\tthis.searching = false\n\t\t\t\t\t\tthis.searchingMoreOf = null\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t},\n\t\tsearchOneProvider(providerId, cursor = null) {\n\t\t\tconst url = cursor === null\n\t\t\t\t? generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}', { providerId, term: this.searchQuery, limit: LIMIT })\n\t\t\t\t: generateOcsUrl('search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}', { providerId, term: this.searchQuery, limit: LIMIT, cursor })\n\t\t\treturn axios.get(url, {\n\t\t\t\tsignal: this.abortController.signal,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst data = response.data.ocs.data\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].name = data.name\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].cursor = data.cursor\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].isPaginated = data.isPaginated\n\t\t\t\t\tthis.resultsBySearchProvider[providerId].entries.push(...data.entries)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.smart-picker-search {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 0 16px 16px 16px;\n\t&.with-empty-content {\n\t\tmin-height: 400px;\n\t}\n\n\t.provider-icon {\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tobject-fit: contain;\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t&--select {\n\t\twidth: 100%;\n\n\t\t.search-result {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.group-name-icon,\n\t\t.option-simple-icon {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tmargin: 0 20px 0 10px;\n\t\t}\n\n\t\t.custom-option {\n\t\t\theight: 44px;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\t.option-text {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t}\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"reference-picker\"\n\t\t:style=\"pickerWrapperStyle\"\n\t\ttabindex=\"-1\"\n\t\t@keydown.stop.prevent.esc=\"onEscapePressed\">\n\t\t<NcProviderList v-if=\"mode === MODES.providerList\"\n\t\t\tref=\"provider-list\"\n\t\t\t@select-provider=\"onProviderSelected\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@cancel=\"cancelProviderSelection\" />\n\t\t<NcRawLinkInput v-else-if=\"mode === MODES.standardLinkInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@submit=\"submitLink\"\n\t\t\t@cancel=\"cancelRawLinkInput\" />\n\t\t<NcSearch v-else-if=\"mode === MODES.searchInput\"\n\t\t\tref=\"url-input\"\n\t\t\t:provider=\"selectedProvider\"\n\t\t\t@cancel=\"cancelSearch\"\n\t\t\t@submit=\"submitLink\" />\n\t\t<div v-else-if=\"mode === MODES.customElement\"\n\t\t\tclass=\"custom-element-wrapper\">\n\t\t\t<NcCustomPickerElement :provider=\"selectedProvider\"\n\t\t\t\t@submit=\"submitLink\"\n\t\t\t\t@cancel=\"cancelCustomElement\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcCustomPickerElement from './NcCustomPickerElement.vue'\nimport NcProviderList from './NcProviderList.vue'\nimport NcRawLinkInput from './NcRawLinkInput.vue'\nimport NcSearch from './NcSearch.vue'\nimport { isCustomPickerElementRegistered } from './../../../functions/reference/customPickerElements.js'\nimport { touchProvider } from './../../../functions/reference/providerHelper.js'\n\nconst MODES = {\n\tproviderList: 1,\n\tstandardLinkInput: 2,\n\tsearchInput: 3,\n\tcustomElement: 4,\n}\nexport default {\n\tname: 'NcReferencePicker',\n\tcomponents: {\n\t\tNcCustomPickerElement,\n\t\tNcProviderList,\n\t\tNcRawLinkInput,\n\t\tNcSearch,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Default: null. Show the provider list\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\t\t/**\n\t\t * Optional width in pixels\n\t\t * Default: 100%\n\t\t */\n\t\twidth: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Focus on the provider list select input on creation\n\t\t * Default: true\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'cancel-raw-link',\n\t\t'cancel-search',\n\t\t'provider-selected',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tMODES,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t}\n\t},\n\tcomputed: {\n\t\tmode() {\n\t\t\treturn this.selectedProvider === null\n\t\t\t\t? MODES.providerList\n\t\t\t\t: isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t\t? MODES.customElement\n\t\t\t\t\t: this.selectedProvider.search_providers_ids\n\t\t\t\t\t\t? MODES.searchInput\n\t\t\t\t\t\t: MODES.standardLinkInput\n\t\t},\n\t\tpickerWrapperStyle() {\n\t\t\treturn {\n\t\t\t\twidth: this.width ? this.width + 'px' : undefined,\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.focusOnCreate) {\n\t\t\tif (this.initialProvider) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t\t}, 300)\n\t\t\t} else {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t},\n\tmethods: {\n\t\tonEscapePressed() {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\tthis.deselectProvider()\n\t\t\t} else {\n\t\t\t\tthis.cancelProviderSelection()\n\t\t\t}\n\t\t},\n\t\tonProviderSelected(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\tthis.$emit('provider-selected', provider)\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['url-input']?.focus()\n\t\t\t})\n\t\t},\n\t\tcancelCustomElement() {\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelSearch() {\n\t\t\tthis.$emit('cancel-search', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelRawLinkInput() {\n\t\t\tthis.$emit('cancel-raw-link', this.selectedProvider?.title)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tcancelProviderSelection() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t\tsubmitLink(link) {\n\t\t\tif (this.selectedProvider !== null) {\n\t\t\t\ttouchProvider(this.selectedProvider.id)\n\t\t\t}\n\t\t\tthis.$emit('submit', link)\n\t\t\tthis.deselectProvider()\n\t\t},\n\t\tdeselectProvider() {\n\t\t\tthis.selectedProvider = null\n\t\t\tthis.$emit('provider-selected', null)\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs['provider-list']?.focus()\n\t\t\t}, 300)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.reference-picker {\n\tdisplay: flex;\n\toverflow-y: auto;\n\twidth: 100%;\n\n\t.custom-element-wrapper {\n\t\tdisplay: flex;\n\t\toverflow-y: auto;\n\t\twidth: 100%;\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcModal v-if=\"show\"\n\t\t:size=\"modalSize\"\n\t\t:can-close=\"false\"\n\t\tclass=\"reference-picker-modal\"\n\t\t@close=\"onCancel\">\n\t\t<div ref=\"modal_content\"\n\t\t\tclass=\"reference-picker-modal--content\">\n\t\t\t<NcButton v-if=\"showBackButton\"\n\t\t\t\t:aria-label=\"backButtonTitle\"\n\t\t\t\t:title=\"backButtonTitle\"\n\t\t\t\tclass=\"back-button\"\n\t\t\t\t@click=\"onBackClicked\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ArrowLeftIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton :aria-label=\"closeButtonLabel\"\n\t\t\t\t:title=\"closeButtonTitle\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tclass=\"close-button\"\n\t\t\t\t@click=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<h2 v-if=\"showModalName\">\n\t\t\t\t{{ modalName }}\n\t\t\t</h2>\n\t\t\t<NcReferencePicker ref=\"referencePicker\"\n\t\t\t\t:initial-provider=\"initialProvider\"\n\t\t\t\t:focus-on-create=\"focusOnCreate\"\n\t\t\t\t@provider-selected=\"onProviderSelect\"\n\t\t\t\t@submit=\"onSubmit\"\n\t\t\t\t@cancel=\"onCancel\" />\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport NcReferencePicker from './NcReferencePicker.vue'\nimport { getCustomPickerElementSize, isCustomPickerElementRegistered } from './../../../functions/reference/customPickerElements.js'\nimport NcButton from '../../NcButton/index.ts'\nimport NcModal from '../../NcModal/index.js'\nimport { t } from '../../../l10n.js'\n\nimport { emit } from '@nextcloud/event-bus'\n\nimport ArrowLeftIcon from 'vue-material-design-icons/ArrowLeft.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\n\nexport default {\n\tname: 'NcReferencePickerModal',\n\tcomponents: {\n\t\tNcReferencePicker,\n\t\tNcModal,\n\t\tNcButton,\n\t\tArrowLeftIcon,\n\t\tCloseIcon,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Provider to select on creation\n\t\t * Show the provider list if no initial one is provided\n\t\t */\n\t\tinitialProvider: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => null,\n\t\t},\n\t\t/**\n\t\t * Focus on the input item on create\n\t\t */\n\t\tfocusOnCreate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/**\n\t\t * If true, add the modal content to the Viewer trap elements via the event-bus\n\t\t */\n\t\tisInsideViewer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: [\n\t\t'cancel',\n\t\t'submit',\n\t],\n\tdata() {\n\t\treturn {\n\t\t\tshow: true,\n\t\t\tselectedProvider: this.initialProvider,\n\t\t\tbackButtonTitle: t('Back to provider selection'),\n\t\t\tcloseButtonTitle: t('Close'),\n\t\t\tcloseButtonLabel: t('Close Smart Picker'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tisProviderSelected() {\n\t\t\treturn this.selectedProvider !== null\n\t\t},\n\t\tshowBackButton() {\n\t\t\treturn this.initialProvider === null && this.isProviderSelected\n\t\t},\n\t\tmodalSize() {\n\t\t\treturn this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t\t\t? (getCustomPickerElementSize(this.selectedProvider.id) ?? 'large')\n\t\t\t\t: 'normal'\n\t\t},\n\t\tshowModalName() {\n\t\t\treturn !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id)\n\t\t},\n\t\tmodalName() {\n\t\t\treturn this.isProviderSelected\n\t\t\t\t? this.selectedProvider.title\n\t\t\t\t: t('Smart Picker')\n\t\t},\n\t},\n\tmounted() {\n\t\tif (this.isInsideViewer) {\n\t\t\tconst elem = this.$refs.modal_content\n\t\t\temit('viewer:trapElements:changed', elem)\n\t\t}\n\t},\n\tmethods: {\n\t\tonCancel() {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('cancel')\n\t\t},\n\t\tonSubmit(value) {\n\t\t\tthis.show = false\n\t\t\tthis.$emit('submit', value)\n\t\t},\n\t\tonProviderSelect(provider) {\n\t\t\tthis.selectedProvider = provider\n\t\t\t// provider was deselected and we started with an inital one: just close the modal\n\t\t\tif (provider === null && this.initialProvider !== null) {\n\t\t\t\tthis.onCancel()\n\t\t\t}\n\t\t},\n\t\tonBackClicked() {\n\t\t\tthis.$refs.referencePicker.deselectProvider()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n// this is to avoid scroll on the container and leave it to the result block\n.reference-picker-modal .modal-container {\n\tdisplay: flex !important;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.reference-picker-modal--content {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow-y: auto;\n\n\t.close-button,\n\t.back-button {\n\t\tposition: absolute;\n\t\ttop: 4px;\n\t}\n\t.back-button {\n\t\tleft: 4px;\n\t}\n\t.close-button {\n\t\tright: 4px;\n\t}\n\n\t> h2 {\n\t\tdisplay: flex;\n\t\tmargin: 12px 0 20px 0;\n\t\t.icon {\n\t\t\tmargin-right: 8px;\n\t\t}\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcReferencePickerModal from './../../components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue'\nimport { getProvider } from './providerHelper.js'\n\nimport { createApp } from 'vue'\n\n/**\n * Creates a reference picker modal and return a promise which provides the result\n *\n * @param {string} providerId Optional ID of initial selected provider\n * @param {boolean} isInsideViewer Should be true if this function is called while the Viewer is displayed\n * @return {Promise<unknown>}\n */\nexport async function getLinkWithPicker(providerId = null, isInsideViewer = undefined) {\n\treturn await new Promise((resolve, reject) => {\n\t\tconst modalId = 'referencePickerModal'\n\t\tconst modalElement = document.createElement('div')\n\t\tmodalElement.id = modalId\n\t\tdocument.body.append(modalElement)\n\n\t\tconst initialProvider = providerId === null\n\t\t\t? null\n\t\t\t: (getProvider(providerId) ?? null)\n\n\t\tconst view = createApp(NcReferencePickerModal, {\n\t\t\tinitialProvider,\n\t\t\tisInsideViewer,\n\t\t\tonCancel() {\n\t\t\t\tview.unmount()\n\t\t\t\treject(new Error('User cancellation'))\n\t\t\t},\n\t\t\tonSubmit(link) {\n\t\t\t\tview.unmount()\n\t\t\t\tresolve(link)\n\t\t\t},\n\t\t})\n\t\tview.mount(modalElement)\n\t})\n}\n"],"names":["_sfc_main","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createElementBlock","_normalizeClass","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx","_createCommentVNode","_createElementVNode","_toDisplayString","_normalizeStyle","_createTextVNode","_openBlock","NcHighlight","_createVNode","_withKeys","_hoisted_5","DotsHorizontalIcon","_withModifiers","ArrowLeftIcon","CloseIcon"],"mappings":"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","x_google_ignoreList":[4]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { G as GenColors } from "./GenColors-AKX06ocD.mjs";
|
|
2
|
+
import md5 from "md5";
|
|
3
|
+
const usernameToColor = function(username) {
|
|
4
|
+
let hash = username.toLowerCase();
|
|
5
|
+
if (hash.match(/^([0-9a-f]{4}-?){8}$/) === null) {
|
|
6
|
+
hash = md5(hash);
|
|
7
|
+
}
|
|
8
|
+
hash = hash.replace(/[^0-9a-f]/g, "");
|
|
9
|
+
const steps = 6;
|
|
10
|
+
const finalPalette = GenColors(steps);
|
|
11
|
+
function hashToInt(hash2, maximum) {
|
|
12
|
+
let finalInt = 0;
|
|
13
|
+
const result = [];
|
|
14
|
+
for (let i = 0; i < hash2.length; i++) {
|
|
15
|
+
result.push(parseInt(hash2.charAt(i), 16) % 16);
|
|
16
|
+
}
|
|
17
|
+
for (const j in result) {
|
|
18
|
+
finalInt += result[j];
|
|
19
|
+
}
|
|
20
|
+
return parseInt(parseInt(finalInt, 10) % maximum, 10);
|
|
21
|
+
}
|
|
22
|
+
return finalPalette[hashToInt(hash, steps * 3)];
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
usernameToColor as u
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usernameToColor-CEyHwgy-.mjs","sources":["../../src/functions/usernameToColor/usernameToColor.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { GenColors } from '../../utils/GenColors.js'\n\nimport md5 from 'md5'\n\n/**\n * Originally taken from https://github.com/nextcloud/server/blob/master/core/js/placeholder.js\n *\n * @param {string} username Display name or user id to generate from\n * @return {object} the rgb colors as {r:255, g:255, b:255}\n */\nconst usernameToColor = function(username) {\n\t// Normalize hash\n\tlet hash = username.toLowerCase()\n\n\t// Already a md5 hash?\n\tif (hash.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n\t\thash = md5(hash)\n\t}\n\n\thash = hash.replace(/[^0-9a-f]/g, '')\n\n\tconst steps = 6\n\tconst finalPalette = GenColors(steps)\n\n\t/**\n\t * Convert a string to an integer evenly\n\t *\n\t * @param {string} hash The hash to convert\n\t * @param {number} maximum Largest number allowed\n\t */\n\tfunction hashToInt(hash, maximum) {\n\t\tlet finalInt = 0\n\t\tconst result = []\n\n\t\t// Splitting evenly the string\n\t\tfor (let i = 0; i < hash.length; i++) {\n\t\t\t// chars in md5 goes up to f, hex:16\n\t\t\tresult.push(parseInt(hash.charAt(i), 16) % 16)\n\t\t}\n\n\t\t// Adds up all results\n\t\tfor (const j in result) {\n\t\t\tfinalInt += result[j]\n\t\t}\n\n\t\t// chars in md5 goes up to f, hex:16\n\t\t// make sure we're always using int in our operation\n\t\treturn parseInt(parseInt(finalInt, 10) % maximum, 10)\n\t}\n\treturn finalPalette[hashToInt(hash, steps * 3)]\n}\n\nexport default usernameToColor\n"],"names":["hash"],"mappings":";;AAeK,MAAC,kBAAkB,SAAS,UAAU;AAE1C,MAAI,OAAO,SAAS,YAAa;AAGjC,MAAI,KAAK,MAAM,sBAAsB,MAAM,MAAM;AAChD,WAAO,IAAI,IAAI;AAAA,EACf;AAED,SAAO,KAAK,QAAQ,cAAc,EAAE;AAEpC,QAAM,QAAQ;AACd,QAAM,eAAe,UAAU,KAAK;AAQpC,WAAS,UAAUA,OAAM,SAAS;AACjC,QAAI,WAAW;AACf,UAAM,SAAS,CAAE;AAGjB,aAAS,IAAI,GAAG,IAAIA,MAAK,QAAQ,KAAK;AAErC,aAAO,KAAK,SAASA,MAAK,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE;AAAA,IAC7C;AAGD,eAAW,KAAK,QAAQ;AACvB,kBAAY,OAAO,CAAC;AAAA,IACpB;AAID,WAAO,SAAS,SAAS,UAAU,EAAE,IAAI,SAAS,EAAE;AAAA,EACpD;AACD,SAAO,aAAa,UAAU,MAAM,QAAQ,CAAC,CAAC;AAC/C;"}
|
|
@@ -98,10 +98,6 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
98
98
|
getText(): any;
|
|
99
99
|
};
|
|
100
100
|
}[];
|
|
101
|
-
/**
|
|
102
|
-
* If this is a menu, a chevron icon will
|
|
103
|
-
* be added at the end of the line
|
|
104
|
-
*/
|
|
105
101
|
props: {
|
|
106
102
|
icon: {
|
|
107
103
|
type: StringConstructor;
|
|
@@ -196,11 +192,11 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
196
192
|
}>> & {
|
|
197
193
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
198
194
|
}, {
|
|
199
|
-
ariaHidden: boolean;
|
|
200
195
|
disabled: boolean;
|
|
201
|
-
isMenu: boolean;
|
|
202
196
|
type: string;
|
|
203
|
-
|
|
197
|
+
ariaHidden: boolean;
|
|
204
198
|
value: string;
|
|
199
|
+
isMenu: boolean;
|
|
200
|
+
modelValue: string | boolean;
|
|
205
201
|
}, {}>;
|
|
206
202
|
export default _default;
|
|
@@ -10,7 +10,7 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
10
10
|
}, {
|
|
11
11
|
labelId: string;
|
|
12
12
|
}, any, {}, {
|
|
13
|
-
t: (original: string, placeholders?: Record<string, string | number>
|
|
13
|
+
t: (original: string, placeholders?: Record<string, string | number>) => string;
|
|
14
14
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
15
15
|
/**
|
|
16
16
|
* Optional text shown below the button group
|