@nextcloud/vue 8.6.1 → 8.6.2
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 +17 -1
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActions.cjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAppSidebarTab.cjs +3 -3
- package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
- package/dist/Components/NcAppSidebarTab.mjs +5 -5
- package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
- package/dist/Components/NcAvatar.cjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcDashboardWidget.cjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +2 -2
- package/dist/Components/NcDateTimePicker.mjs +3 -3
- package/dist/Components/NcDateTimePickerNative.cjs +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +1 -1
- package/dist/Components/NcHeaderMenu.cjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcListItem.cjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.cjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcModal.cjs +1 -1
- package/dist/Components/NcModal.mjs +2 -2
- package/dist/Components/NcRichContenteditable.cjs +1 -1
- package/dist/Components/NcRichContenteditable.mjs +2 -2
- package/dist/Components/NcRichText.cjs +1 -1
- package/dist/Components/NcRichText.mjs +3 -3
- package/dist/Components/NcSelect.cjs +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.cjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTimezonePicker.cjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.cjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Mixins/richEditor.cjs +1 -1
- package/dist/Mixins/richEditor.mjs +1 -1
- package/dist/assets/{NcActions-mSL9fcPO.css → NcActions-4Gq5bZLW.css} +12 -12
- package/dist/assets/{NcAppSidebar-iU8Zp4Qk.css → NcAppSidebar-YHd7DpMW.css} +44 -44
- package/dist/assets/{NcAppSidebarTab-Phau6edJ.css → NcAppSidebarTab-FywbKxqo.css} +4 -4
- package/dist/assets/{NcDateTimePicker-vivOLt2Q.css → NcDateTimePicker-rixdCL1X.css} +10 -10
- package/dist/assets/{NcHeaderMenu-06vdn4tC.css → NcHeaderMenu-Srn5iXdL.css} +14 -15
- package/dist/assets/NcListItem-5XAhBDJv.css +165 -0
- package/dist/assets/{NcMentionBubble-2OXF_uEJ.css → NcMentionBubble-YYl1ib_F.css} +9 -9
- package/dist/assets/{NcRichContenteditable-j9edXOEH.css → NcRichContenteditable-WQVknpPy.css} +72 -80
- package/dist/assets/{referencePickerModal-iy5QSWj6.css → referencePickerModal-yucfxaTX.css} +65 -65
- package/dist/chunks/{NcActionInput-jQFZLsoe.mjs → NcActionInput-BN9rIyI8.mjs} +1 -1
- package/dist/chunks/{NcActionInput-jQFZLsoe.mjs.map → NcActionInput-BN9rIyI8.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput--MiyWKmE.cjs → NcActionInput-qeRQBGlt.cjs} +1 -1
- package/dist/chunks/{NcActionInput--MiyWKmE.cjs.map → NcActionInput-qeRQBGlt.cjs.map} +1 -1
- package/dist/chunks/{NcActions-qCVw08zV.mjs → NcActions-5_igU-CH.mjs} +21 -21
- package/dist/chunks/{NcActions-qCVw08zV.mjs.map → NcActions-5_igU-CH.mjs.map} +1 -1
- package/dist/chunks/{NcActions-SlBohqiI.cjs → NcActions-JXnhQhum.cjs} +7 -7
- package/dist/chunks/{NcActions-SlBohqiI.cjs.map → NcActions-JXnhQhum.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-0lGP-5CR.mjs → NcAppNavigationCaption-2rUO5Mns.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-0lGP-5CR.mjs.map → NcAppNavigationCaption-2rUO5Mns.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-nEKQXQYr.cjs → NcAppNavigationCaption-JQWbmgdy.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-nEKQXQYr.cjs.map → NcAppNavigationCaption-JQWbmgdy.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-g_XncGxL.mjs → NcAppNavigationItem-A1yAdDNN.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationItem-g_XncGxL.mjs.map → NcAppNavigationItem-A1yAdDNN.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-AdLvgSbV.cjs → NcAppNavigationItem-Wb8gX-Ln.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationItem-AdLvgSbV.cjs.map → NcAppNavigationItem-Wb8gX-Ln.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-UKQnGAEz.cjs → NcAppNavigationSettings-VLa79G7w.cjs} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-UKQnGAEz.cjs.map → NcAppNavigationSettings-VLa79G7w.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-DQHPDc4X.mjs → NcAppNavigationSettings-gwL_FqLN.mjs} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-DQHPDc4X.mjs.map → NcAppNavigationSettings-gwL_FqLN.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-WyDtlgwP.cjs → NcAppSidebar-rRNJnN-k.cjs} +59 -31
- package/dist/chunks/NcAppSidebar-rRNJnN-k.cjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-Wo8-p3nm.mjs → NcAppSidebar-tnHBPGbL.mjs} +138 -109
- package/dist/chunks/NcAppSidebar-tnHBPGbL.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-c9ryo-7h.mjs → NcAvatar-xT3kz6mU.mjs} +2 -2
- package/dist/chunks/{NcAvatar-c9ryo-7h.mjs.map → NcAvatar-xT3kz6mU.mjs.map} +1 -1
- package/dist/chunks/{NcAvatar-khVnYpF2.cjs → NcAvatar-zTS9P1lK.cjs} +2 -2
- package/dist/chunks/{NcAvatar-khVnYpF2.cjs.map → NcAvatar-zTS9P1lK.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-SEyo99to.cjs → NcBreadcrumb-EGgIr-sA.cjs} +1 -1
- package/dist/chunks/{NcBreadcrumb-SEyo99to.cjs.map → NcBreadcrumb-EGgIr-sA.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-Ac0G-oky.mjs → NcBreadcrumb-on01ofev.mjs} +1 -1
- package/dist/chunks/{NcBreadcrumb-Ac0G-oky.mjs.map → NcBreadcrumb-on01ofev.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-YOANgGCY.mjs → NcBreadcrumbs-2l-mWYHl.mjs} +2 -2
- package/dist/chunks/{NcBreadcrumbs-YOANgGCY.mjs.map → NcBreadcrumbs-2l-mWYHl.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DXpOwLNx.cjs → NcBreadcrumbs-hQmUGh48.cjs} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DXpOwLNx.cjs.map → NcBreadcrumbs-hQmUGh48.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-zBrcpL_E.cjs → NcDashboardWidget-QciRRvL4.cjs} +1 -1
- package/dist/chunks/{NcDashboardWidget-zBrcpL_E.cjs.map → NcDashboardWidget-QciRRvL4.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-bEnoXtKm.mjs → NcDashboardWidget-ogqyHahY.mjs} +2 -2
- package/dist/chunks/{NcDashboardWidget-bEnoXtKm.mjs.map → NcDashboardWidget-ogqyHahY.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-LcxIx2-S.cjs → NcDashboardWidgetItem-mIPkPR7r.cjs} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-LcxIx2-S.cjs.map → NcDashboardWidgetItem-mIPkPR7r.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-p7yyFX-b.mjs → NcDashboardWidgetItem-wuUHTeLl.mjs} +2 -2
- package/dist/chunks/{NcDashboardWidgetItem-p7yyFX-b.mjs.map → NcDashboardWidgetItem-wuUHTeLl.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-BSi8E43v.cjs → NcHeaderMenu-0d6eqre6.cjs} +6 -6
- package/dist/chunks/{NcHeaderMenu-Vytc8Eqg.mjs.map → NcHeaderMenu-0d6eqre6.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-Vytc8Eqg.mjs → NcHeaderMenu-91qMsRIw.mjs} +3 -3
- package/dist/chunks/{NcHeaderMenu-BSi8E43v.cjs.map → NcHeaderMenu-91qMsRIw.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-lqYZQhuZ.cjs → NcListItem-RDF4Yv0n.cjs} +30 -47
- package/dist/chunks/NcListItem-RDF4Yv0n.cjs.map +1 -0
- package/dist/chunks/{NcListItem-90hXqC4C.mjs → NcListItem-_PBHug1k.mjs} +33 -50
- package/dist/chunks/NcListItem-_PBHug1k.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-ccke4gpg.cjs → NcListItemIcon-BnoIbVbD.cjs} +2 -2
- package/dist/chunks/{NcListItemIcon-ccke4gpg.cjs.map → NcListItemIcon-BnoIbVbD.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-hTbMo3-O.mjs → NcListItemIcon-rqgXledP.mjs} +2 -2
- package/dist/chunks/{NcListItemIcon-hTbMo3-O.mjs.map → NcListItemIcon-rqgXledP.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-gQh2HFSV.mjs → NcRichContenteditable-glkLWE43.mjs} +264 -165
- package/dist/chunks/NcRichContenteditable-glkLWE43.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-WxSgSNot.cjs → NcRichContenteditable-xcoJkj3I.cjs} +200 -101
- package/dist/chunks/NcRichContenteditable-xcoJkj3I.cjs.map +1 -0
- package/dist/chunks/{NcRichText-fHn-j5sa.cjs → NcRichText-TdyEC_z7.cjs} +2 -2
- package/dist/chunks/{NcRichText-fHn-j5sa.cjs.map → NcRichText-TdyEC_z7.cjs.map} +1 -1
- package/dist/chunks/{NcRichText-RSAcESV2.mjs → NcRichText-lyvuLvpr.mjs} +2 -2
- package/dist/chunks/{NcRichText-RSAcESV2.mjs.map → NcRichText-lyvuLvpr.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-vSPKKiyt.mjs → NcSelect-2ClmJ8jJ.mjs} +2 -2
- package/dist/chunks/{NcSelect-rMSul72R.cjs.map → NcSelect-2ClmJ8jJ.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-rMSul72R.cjs → NcSelect-SlL-Y8Qz.cjs} +6 -6
- package/dist/chunks/{NcSelect-vSPKKiyt.mjs.map → NcSelect-SlL-Y8Qz.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-beMN3ZsT.cjs → NcSelectTags-FKigJPco.cjs} +1 -1
- package/dist/chunks/{NcSelectTags-beMN3ZsT.cjs.map → NcSelectTags-FKigJPco.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-MwCs_QbM.mjs → NcSelectTags-TC2UmbfI.mjs} +1 -1
- package/dist/chunks/{NcSelectTags-MwCs_QbM.mjs.map → NcSelectTags-TC2UmbfI.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-HkS2QpZS.mjs → NcSettingsSelectGroup-Bcai5uHx.mjs} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-HkS2QpZS.mjs.map → NcSettingsSelectGroup-Bcai5uHx.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-msn3aYsn.cjs → NcSettingsSelectGroup-fOU9O4VD.cjs} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-msn3aYsn.cjs.map → NcSettingsSelectGroup-fOU9O4VD.cjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-I6wF2jeF.mjs → NcTimezonePicker-DDce-mch.mjs} +1 -1
- package/dist/chunks/{NcTimezonePicker-I6wF2jeF.mjs.map → NcTimezonePicker-DDce-mch.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-Cp479kFL.cjs → NcTimezonePicker-Dv6pIP9O.cjs} +1 -1
- package/dist/chunks/{NcTimezonePicker-Cp479kFL.cjs.map → NcTimezonePicker-Dv6pIP9O.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-6AbwSr2B.cjs → NcUserBubble-027_C0cM.cjs} +1 -1
- package/dist/chunks/{NcUserBubble-6AbwSr2B.cjs.map → NcUserBubble-027_C0cM.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-imSUw-aP.mjs → NcUserBubble-9StjszDh.mjs} +1 -1
- package/dist/chunks/{NcUserBubble-imSUw-aP.mjs.map → NcUserBubble-9StjszDh.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-CjAOgGnx.mjs → ScopeComponent-hYwaRplQ.mjs} +1 -1
- package/dist/chunks/{ScopeComponent-CjAOgGnx.mjs.map → ScopeComponent-hYwaRplQ.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-V9SPec9g.cjs → ScopeComponent-qBzpvxit.cjs} +1 -1
- package/dist/chunks/{ScopeComponent-V9SPec9g.cjs.map → ScopeComponent-qBzpvxit.cjs.map} +1 -1
- package/dist/chunks/{index-U21dQVa7.cjs → index-5TyVc_TT.cjs} +29 -16
- package/dist/chunks/index-5TyVc_TT.cjs.map +1 -0
- package/dist/chunks/{index-n2q3iT69.mjs → index-xnq0-IMW.mjs} +26 -13
- package/dist/chunks/index-xnq0-IMW.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-GXRJ351Q.cjs → referencePickerModal-cy4_Q5bu.cjs} +2 -2
- package/dist/chunks/{referencePickerModal-GXRJ351Q.cjs.map → referencePickerModal-cy4_Q5bu.cjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-FeA-PRqB.mjs → referencePickerModal-wDsYQHxX.mjs} +2 -2
- package/dist/chunks/{referencePickerModal-FeA-PRqB.mjs.map → referencePickerModal-wDsYQHxX.mjs.map} +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +25 -25
- package/package.json +3 -3
- package/dist/assets/NcListItem-6sL-frKJ.css +0 -165
- package/dist/chunks/NcAppSidebar-Wo8-p3nm.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-WyDtlgwP.cjs.map +0 -1
- package/dist/chunks/NcListItem-90hXqC4C.mjs.map +0 -1
- package/dist/chunks/NcListItem-lqYZQhuZ.cjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-WxSgSNot.cjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-gQh2HFSV.mjs.map +0 -1
- package/dist/chunks/index-U21dQVa7.cjs.map +0 -1
- package/dist/chunks/index-n2q3iT69.mjs.map +0 -1
package/dist/chunks/{NcRichContenteditable-gQh2HFSV.mjs → NcRichContenteditable-glkLWE43.mjs}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import '../assets/NcRichContenteditable-
|
|
2
|
-
import { r as
|
|
1
|
+
import '../assets/NcRichContenteditable-WQVknpPy.css';
|
|
2
|
+
import { r as d, v as p, B as m, a as o } from "./_l10n-FmsZpnE4.mjs";
|
|
3
3
|
import { generateUrl as h } from "@nextcloud/router";
|
|
4
4
|
import { N as f } from "./NcUserStatusIcon-pRUzQidI.mjs";
|
|
5
5
|
import { n as u } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
|
|
6
|
-
import { r as
|
|
6
|
+
import { r as b } from "./index-xnq0-IMW.mjs";
|
|
7
7
|
import "../Directives/Tooltip.mjs";
|
|
8
|
-
import { a as
|
|
9
|
-
import { n as
|
|
8
|
+
import { a as g, e as _ } from "./emoji-tllD0Rvt.mjs";
|
|
9
|
+
import { n as y, j as C } from "./referencePickerModal-wDsYQHxX.mjs";
|
|
10
10
|
import "@nextcloud/axios";
|
|
11
11
|
import "../Components/NcLoadingIcon.mjs";
|
|
12
12
|
import "./NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-rJ3UZLGm.mjs";
|
|
@@ -21,24 +21,33 @@ import "remark-rehype";
|
|
|
21
21
|
import "rehype-react";
|
|
22
22
|
import "rehype-external-links";
|
|
23
23
|
import "../Components/NcEmptyContent.mjs";
|
|
24
|
-
import "./NcSelect-
|
|
24
|
+
import "./NcSelect-2ClmJ8jJ.mjs";
|
|
25
25
|
import "./NcTextField-NnW31cA4.mjs";
|
|
26
26
|
import "../Components/NcButton.mjs";
|
|
27
27
|
import "../Components/NcModal.mjs";
|
|
28
28
|
import "@nextcloud/event-bus";
|
|
29
|
-
import
|
|
30
|
-
import
|
|
29
|
+
import v from "tributejs/dist/tribute.esm.js";
|
|
30
|
+
import T from "debounce";
|
|
31
31
|
import k from "string-length";
|
|
32
|
-
import { VTooltip as
|
|
33
|
-
const
|
|
32
|
+
import { VTooltip as A } from "floating-vue";
|
|
33
|
+
const S = {
|
|
34
34
|
name: "NcAutoCompleteResult",
|
|
35
35
|
components: {
|
|
36
36
|
NcUserStatusIcon: f
|
|
37
37
|
},
|
|
38
38
|
props: {
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use `label` instead
|
|
41
|
+
*/
|
|
39
42
|
title: {
|
|
40
43
|
type: String,
|
|
41
|
-
required: !
|
|
44
|
+
required: !1,
|
|
45
|
+
default: null
|
|
46
|
+
},
|
|
47
|
+
label: {
|
|
48
|
+
type: String,
|
|
49
|
+
required: !1,
|
|
50
|
+
default: null
|
|
42
51
|
},
|
|
43
52
|
subline: {
|
|
44
53
|
type: String,
|
|
@@ -68,38 +77,46 @@ const x = {
|
|
|
68
77
|
computed: {
|
|
69
78
|
avatarUrl() {
|
|
70
79
|
return this.iconUrl ? this.iconUrl : this.id && this.source === "users" ? this.getAvatarUrl(this.id, 44) : null;
|
|
80
|
+
},
|
|
81
|
+
// For backwards compatibility
|
|
82
|
+
labelWithFallback() {
|
|
83
|
+
return this.label || this.title;
|
|
71
84
|
}
|
|
72
85
|
},
|
|
73
86
|
methods: {
|
|
74
|
-
getAvatarUrl(
|
|
87
|
+
getAvatarUrl(i, t) {
|
|
75
88
|
return h("/avatar/{user}/{size}", {
|
|
76
|
-
user:
|
|
89
|
+
user: i,
|
|
77
90
|
size: t
|
|
78
91
|
});
|
|
79
92
|
}
|
|
80
93
|
}
|
|
81
94
|
};
|
|
82
|
-
var
|
|
95
|
+
var I = function() {
|
|
83
96
|
var t = this, n = t._self._c;
|
|
84
|
-
return n("div", { staticClass: "autocomplete-result" }, [n("div", { staticClass: "autocomplete-result__icon", class: [t.icon, `autocomplete-result__icon--${t.avatarUrl ? "with-avatar" : ""}`], style: t.avatarUrl ? { backgroundImage: `url(${t.avatarUrl})` } : null }, [t.status.icon ? n("span", { staticClass: "autocomplete-result__status autocomplete-result__status--icon" }, [t._v(" " + t._s(t.status && t.status.icon || "") + " ")]) : t.status.status && t.status.status !== "offline" ? n("NcUserStatusIcon", { staticClass: "autocomplete-result__status", attrs: { status: t.status.status } }) : t._e()], 1), n("span", { staticClass: "autocomplete-result__content" }, [n("span", { staticClass: "autocomplete-result__title", attrs: { title: t.
|
|
85
|
-
},
|
|
86
|
-
x,
|
|
97
|
+
return n("div", { staticClass: "autocomplete-result" }, [n("div", { staticClass: "autocomplete-result__icon", class: [t.icon, `autocomplete-result__icon--${t.avatarUrl ? "with-avatar" : ""}`], style: t.avatarUrl ? { backgroundImage: `url(${t.avatarUrl})` } : null }, [t.status.icon ? n("span", { staticClass: "autocomplete-result__status autocomplete-result__status--icon" }, [t._v(" " + t._s(t.status && t.status.icon || "") + " ")]) : t.status.status && t.status.status !== "offline" ? n("NcUserStatusIcon", { staticClass: "autocomplete-result__status", attrs: { status: t.status.status } }) : t._e()], 1), n("span", { staticClass: "autocomplete-result__content" }, [n("span", { staticClass: "autocomplete-result__title", attrs: { title: t.labelWithFallback } }, [t._v(" " + t._s(t.labelWithFallback) + " ")]), t.subline ? n("span", { staticClass: "autocomplete-result__subline" }, [t._v(" " + t._s(t.subline) + " ")]) : t._e()])]);
|
|
98
|
+
}, x = [], w = /* @__PURE__ */ u(
|
|
87
99
|
S,
|
|
88
|
-
|
|
100
|
+
I,
|
|
101
|
+
x,
|
|
89
102
|
!1,
|
|
90
103
|
null,
|
|
91
|
-
"
|
|
104
|
+
"9cff39ed",
|
|
92
105
|
null,
|
|
93
106
|
null
|
|
94
107
|
);
|
|
95
|
-
const
|
|
96
|
-
m
|
|
97
|
-
const
|
|
108
|
+
const E = w.exports;
|
|
109
|
+
d(m, p);
|
|
110
|
+
const O = ["d", "D", "p", "P", "s", "S", "x", "X", ")", "(", "|", "/"], a = [];
|
|
111
|
+
O.forEach((i) => {
|
|
112
|
+
a.push(":" + i), a.push(":-" + i);
|
|
113
|
+
});
|
|
114
|
+
const D = {
|
|
98
115
|
name: "NcRichContenteditable",
|
|
99
116
|
directives: {
|
|
100
|
-
tooltip:
|
|
117
|
+
tooltip: A
|
|
101
118
|
},
|
|
102
|
-
mixins: [
|
|
119
|
+
mixins: [b],
|
|
103
120
|
inheritAttrs: !1,
|
|
104
121
|
props: {
|
|
105
122
|
/**
|
|
@@ -123,7 +140,7 @@ const w = {
|
|
|
123
140
|
},
|
|
124
141
|
placeholder: {
|
|
125
142
|
type: String,
|
|
126
|
-
default:
|
|
143
|
+
default: o("Write a message …")
|
|
127
144
|
},
|
|
128
145
|
autoComplete: {
|
|
129
146
|
type: Function,
|
|
@@ -186,76 +203,33 @@ const w = {
|
|
|
186
203
|
"update:value",
|
|
187
204
|
"smart-picker-submit"
|
|
188
205
|
],
|
|
189
|
-
|
|
206
|
+
setup() {
|
|
207
|
+
const i = l(5);
|
|
190
208
|
return {
|
|
191
|
-
|
|
192
|
-
|
|
209
|
+
// Constants
|
|
210
|
+
labelId: `nc-rich-contenteditable-${i}-label`,
|
|
211
|
+
tributeId: `nc-rich-contenteditable-${i}-tribute`,
|
|
212
|
+
/**
|
|
213
|
+
* Non-reactive property to store Tribute instance
|
|
214
|
+
*
|
|
215
|
+
* @type {import('tributejs').default | null}
|
|
216
|
+
*/
|
|
193
217
|
tribute: null,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
lookup: (e) => `${e.id} ${e.title}`,
|
|
200
|
-
// Where to inject the menu popup
|
|
201
|
-
menuContainer: this.menuContainer,
|
|
202
|
-
// Popup mention autocompletion templates
|
|
203
|
-
menuItemTemplate: (e) => this.renderComponentHtml(e.original, R),
|
|
204
|
-
// Hide if no results
|
|
205
|
-
noMatchTemplate: () => '<span class="hidden"></span>',
|
|
206
|
-
// Inner display of mentions
|
|
207
|
-
selectTemplate: (e) => this.genSelectTemplate(e?.original?.id),
|
|
208
|
-
// Autocompletion results
|
|
209
|
-
values: this.debouncedAutoComplete
|
|
210
|
-
},
|
|
211
|
-
emojiOptions: {
|
|
212
|
-
trigger: ":",
|
|
213
|
-
// Don't use the tribute search function at all
|
|
214
|
-
// We pass search results as values (see below)
|
|
215
|
-
lookup: (e, t) => t,
|
|
216
|
-
// Where to inject the menu popup
|
|
217
|
-
menuContainer: this.menuContainer,
|
|
218
|
-
// Popup mention autocompletion templates
|
|
219
|
-
menuItemTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : `<span class="tribute-container-emoji__item__emoji">${e.original.native}</span> :${e.original.short_name}`,
|
|
220
|
-
// Hide if no results
|
|
221
|
-
noMatchTemplate: () => a("No emoji found"),
|
|
222
|
-
// Display raw emoji along with its name
|
|
223
|
-
selectTemplate: (e) => this.textSmiles.includes(e.original) ? e.original : (b(e.original), e.original.native),
|
|
224
|
-
// Pass the search results as values
|
|
225
|
-
values: (e, t) => {
|
|
226
|
-
const n = _(e);
|
|
227
|
-
this.textSmiles.includes(":" + e) && n.unshift(":" + e), t(n);
|
|
228
|
-
},
|
|
229
|
-
// Class added to the menu container
|
|
230
|
-
containerClass: "tribute-container-emoji",
|
|
231
|
-
// Class added to each list item
|
|
232
|
-
itemClass: "tribute-container-emoji__item"
|
|
233
|
-
},
|
|
234
|
-
linkOptions: {
|
|
235
|
-
trigger: "/",
|
|
236
|
-
// Don't use the tribute search function at all
|
|
237
|
-
// We pass search results as values (see below)
|
|
238
|
-
lookup: (e, t) => t,
|
|
239
|
-
// Where to inject the menu popup
|
|
240
|
-
menuContainer: this.menuContainer,
|
|
241
|
-
// Popup mention autocompletion templates
|
|
242
|
-
menuItemTemplate: (e) => `<img class="tribute-container-link__item__icon" src="${e.original.icon_url}"> <span class="tribute-container-link__item__title">${e.original.title}</span>`,
|
|
243
|
-
// Hide if no results
|
|
244
|
-
noMatchTemplate: () => a("No link provider found"),
|
|
245
|
-
selectTemplate: this.getLink,
|
|
246
|
-
// Pass the search results as values
|
|
247
|
-
values: (e, t) => t(C(e)),
|
|
248
|
-
// Class added to the menu container
|
|
249
|
-
containerClass: "tribute-container-link",
|
|
250
|
-
// Class added to each list item
|
|
251
|
-
itemClass: "tribute-container-link__item"
|
|
252
|
-
},
|
|
218
|
+
tributeStyleMutationObserver: null
|
|
219
|
+
};
|
|
220
|
+
},
|
|
221
|
+
data() {
|
|
222
|
+
return {
|
|
253
223
|
// Represent the raw untrimmed text of the contenteditable
|
|
254
224
|
// serves no other purpose than to check whether the
|
|
255
225
|
// content is empty or not
|
|
256
226
|
localValue: this.value,
|
|
257
227
|
// Is in text composition session in IME
|
|
258
|
-
isComposing: !1
|
|
228
|
+
isComposing: !1,
|
|
229
|
+
// Tribute autocomplete
|
|
230
|
+
isAutocompleteOpen: !1,
|
|
231
|
+
autocompleteActiveId: void 0,
|
|
232
|
+
isTributeIntegrationDone: !1
|
|
259
233
|
};
|
|
260
234
|
},
|
|
261
235
|
computed: {
|
|
@@ -290,7 +264,7 @@ const w = {
|
|
|
290
264
|
*/
|
|
291
265
|
tooltipString() {
|
|
292
266
|
return this.isOverMaxlength ? {
|
|
293
|
-
content:
|
|
267
|
+
content: o("Message limit of {count} characters reached", { count: this.maxlength }),
|
|
294
268
|
shown: !0,
|
|
295
269
|
trigger: "manual"
|
|
296
270
|
} : null;
|
|
@@ -309,8 +283,16 @@ const w = {
|
|
|
309
283
|
* @return {Record<string, Function>}
|
|
310
284
|
*/
|
|
311
285
|
listeners() {
|
|
312
|
-
const
|
|
313
|
-
return delete
|
|
286
|
+
const i = { ...this.$listeners };
|
|
287
|
+
return delete i.paste, i;
|
|
288
|
+
},
|
|
289
|
+
/**
|
|
290
|
+
* Compute debounce function for the autocomplete function
|
|
291
|
+
*/
|
|
292
|
+
debouncedAutoComplete() {
|
|
293
|
+
return T(async (i, t) => {
|
|
294
|
+
this.autoComplete(i, t);
|
|
295
|
+
}, 100);
|
|
314
296
|
}
|
|
315
297
|
},
|
|
316
298
|
watch: {
|
|
@@ -319,18 +301,15 @@ const w = {
|
|
|
319
301
|
* If it's different, we render everything and update the main content
|
|
320
302
|
*/
|
|
321
303
|
value() {
|
|
322
|
-
const
|
|
323
|
-
this.value.trim() !== this.parseContent(
|
|
304
|
+
const i = this.$refs.contenteditable.innerHTML;
|
|
305
|
+
this.value.trim() !== this.parseContent(i).trim() && this.updateContent(this.value);
|
|
324
306
|
}
|
|
325
307
|
},
|
|
326
308
|
mounted() {
|
|
327
|
-
|
|
328
|
-
this.textSmiles = [], e.forEach((t) => {
|
|
329
|
-
this.textSmiles.push(":" + t), this.textSmiles.push(":-" + t);
|
|
330
|
-
}), this.autocompleteTribute = new o(this.autocompleteOptions), this.autocompleteTribute.attach(this.$refs.contenteditable), this.emojiAutocomplete && (this.emojiTribute = new o(this.emojiOptions), this.emojiTribute.attach(this.$refs.contenteditable)), this.linkAutocomplete && (this.linkTribute = new o(this.linkOptions), this.linkTribute.attach(this.$refs.contenteditable)), this.updateContent(this.value), this.$refs.contenteditable.contentEditable = this.canEdit;
|
|
309
|
+
this.initializeTribute(), this.updateContent(this.value), this.$refs.contenteditable.contentEditable = this.canEdit;
|
|
331
310
|
},
|
|
332
311
|
beforeDestroy() {
|
|
333
|
-
this.
|
|
312
|
+
this.tribute && this.tribute.detach(this.$refs.contenteditable), this.tributeStyleMutationObserver && this.tributeStyleMutationObserver.disconnect();
|
|
334
313
|
},
|
|
335
314
|
methods: {
|
|
336
315
|
/**
|
|
@@ -341,15 +320,79 @@ const w = {
|
|
|
341
320
|
focus() {
|
|
342
321
|
this.$refs.contenteditable.focus();
|
|
343
322
|
},
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
323
|
+
initializeTribute() {
|
|
324
|
+
const i = (n) => `<div id="nc-rich-contenteditable-tribute-item-${l(5)}" class="tribute-item" role="option">${n}</div>`, t = [];
|
|
325
|
+
t.push({
|
|
326
|
+
// Allow spaces in the middle of mentions
|
|
327
|
+
allowSpaces: !0,
|
|
328
|
+
fillAttr: "id",
|
|
329
|
+
// Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)
|
|
330
|
+
lookup: (n) => `${n.id} ${n.label ?? n.title}`,
|
|
331
|
+
// Where to inject the menu popup
|
|
332
|
+
menuContainer: this.menuContainer,
|
|
333
|
+
// Popup mention autocompletion templates
|
|
334
|
+
menuItemTemplate: (n) => i(this.renderComponentHtml(n.original, E)),
|
|
335
|
+
// Hide if no results
|
|
336
|
+
noMatchTemplate: () => '<span class="hidden"></span>',
|
|
337
|
+
// Inner display of mentions
|
|
338
|
+
selectTemplate: (n) => this.genSelectTemplate(n?.original?.id),
|
|
339
|
+
// Autocompletion results
|
|
340
|
+
values: this.debouncedAutoComplete,
|
|
341
|
+
// Class added to the menu container
|
|
342
|
+
containerClass: "tribute-container tribute-container-autocomplete",
|
|
343
|
+
// Class added to each list item
|
|
344
|
+
itemClass: "tribute-container__item"
|
|
345
|
+
}), this.emojiAutocomplete && t.push({
|
|
346
|
+
trigger: ":",
|
|
347
|
+
// Don't use the tribute search function at all
|
|
348
|
+
// We pass search results as values (see below)
|
|
349
|
+
lookup: (n, e) => e,
|
|
350
|
+
// Where to inject the menu popup
|
|
351
|
+
menuContainer: this.menuContainer,
|
|
352
|
+
// Popup mention autocompletion templates
|
|
353
|
+
menuItemTemplate: (n) => a.includes(n.original) ? n.original : i(`<span class="tribute-container-emoji__item__emoji">${n.original.native}</span> :${n.original.short_name}`),
|
|
354
|
+
// Hide if no results
|
|
355
|
+
noMatchTemplate: () => o("No emoji found"),
|
|
356
|
+
// Display raw emoji along with its name
|
|
357
|
+
selectTemplate: (n) => a.includes(n.original) ? n.original : (g(n.original), n.original.native),
|
|
358
|
+
// Pass the search results as values
|
|
359
|
+
values: (n, e) => {
|
|
360
|
+
const r = _(n);
|
|
361
|
+
a.includes(":" + n) && r.unshift(":" + n), e(r);
|
|
362
|
+
},
|
|
363
|
+
// Class added to the menu container
|
|
364
|
+
containerClass: "tribute-container tribute-container-emoji",
|
|
365
|
+
// Class added to each list item
|
|
366
|
+
itemClass: "tribute-container__item tribute-container-emoji__item"
|
|
367
|
+
}), this.linkAutocomplete && t.push({
|
|
368
|
+
trigger: "/",
|
|
369
|
+
// Don't use the tribute search function at all
|
|
370
|
+
// We pass search results as values (see below)
|
|
371
|
+
lookup: (n, e) => e,
|
|
372
|
+
// Where to inject the menu popup
|
|
373
|
+
menuContainer: this.menuContainer,
|
|
374
|
+
// Popup mention autocompletion templates
|
|
375
|
+
menuItemTemplate: (n) => i(`<img class="tribute-container-link__item__icon" src="${n.original.icon_url}"> <span class="tribute-container-link__item__title">${n.original.title}</span>`),
|
|
376
|
+
// Hide if no results
|
|
377
|
+
noMatchTemplate: () => o("No link provider found"),
|
|
378
|
+
selectTemplate: this.getLink,
|
|
379
|
+
// Pass the search results as values
|
|
380
|
+
values: (n, e) => e(y(n)),
|
|
381
|
+
// Class added to the menu container
|
|
382
|
+
containerClass: "tribute-container tribute-container-link",
|
|
383
|
+
// Class added to each list item
|
|
384
|
+
itemClass: "tribute-container__item tribute-container-link__item"
|
|
385
|
+
}), this.tribute = new v({ collection: t }), this.tribute.attach(this.$refs.contenteditable);
|
|
386
|
+
},
|
|
387
|
+
getLink(i) {
|
|
388
|
+
return C(i.original.id).then((t) => {
|
|
389
|
+
const n = document.getElementById("tmp-smart-picker-result-node"), e = {
|
|
347
390
|
result: t,
|
|
348
391
|
insertText: !0
|
|
349
392
|
};
|
|
350
|
-
if (this.$emit("smart-picker-submit",
|
|
351
|
-
const
|
|
352
|
-
n.replaceWith(
|
|
393
|
+
if (this.$emit("smart-picker-submit", e), e.insertText) {
|
|
394
|
+
const r = document.createTextNode(t);
|
|
395
|
+
n.replaceWith(r), this.setCursorAfter(r), this.updateValue(this.$refs.contenteditable.innerHTML);
|
|
353
396
|
} else
|
|
354
397
|
n.remove();
|
|
355
398
|
}).catch((t) => {
|
|
@@ -358,27 +401,27 @@ const w = {
|
|
|
358
401
|
this.setCursorAfter(n), n.remove();
|
|
359
402
|
}), '<span id="tmp-smart-picker-result-node"></span>';
|
|
360
403
|
},
|
|
361
|
-
setCursorAfter(
|
|
404
|
+
setCursorAfter(i) {
|
|
362
405
|
const t = document.createRange();
|
|
363
|
-
t.setEndAfter(
|
|
406
|
+
t.setEndAfter(i), t.collapse();
|
|
364
407
|
const n = window.getSelection();
|
|
365
408
|
n.removeAllRanges(), n.addRange(t);
|
|
366
409
|
},
|
|
367
410
|
moveCursorToEnd() {
|
|
368
411
|
if (!document.createRange)
|
|
369
412
|
return;
|
|
370
|
-
const
|
|
371
|
-
|
|
413
|
+
const i = document.createRange();
|
|
414
|
+
i.selectNodeContents(this.$refs.contenteditable), i.collapse(!1);
|
|
372
415
|
const t = window.getSelection();
|
|
373
|
-
t.removeAllRanges(), t.addRange(
|
|
416
|
+
t.removeAllRanges(), t.addRange(i);
|
|
374
417
|
},
|
|
375
418
|
/**
|
|
376
419
|
* Re-emit the input event to the parent
|
|
377
420
|
*
|
|
378
421
|
* @param {Event} event the input event
|
|
379
422
|
*/
|
|
380
|
-
onInput(
|
|
381
|
-
this.updateValue(
|
|
423
|
+
onInput(i) {
|
|
424
|
+
this.updateValue(i.target.innerHTML);
|
|
382
425
|
},
|
|
383
426
|
/**
|
|
384
427
|
* When pasting, sanitize the content, extract text
|
|
@@ -387,30 +430,30 @@ const w = {
|
|
|
387
430
|
* @param {Event} event the paste event
|
|
388
431
|
* @fires Event paste the original paste event
|
|
389
432
|
*/
|
|
390
|
-
onPaste(
|
|
433
|
+
onPaste(i) {
|
|
391
434
|
if (!this.canEdit)
|
|
392
435
|
return;
|
|
393
|
-
|
|
394
|
-
const t =
|
|
395
|
-
if (this.$emit("paste",
|
|
436
|
+
i.preventDefault();
|
|
437
|
+
const t = i.clipboardData;
|
|
438
|
+
if (this.$emit("paste", i), t.files.length !== 0 || !Object.values(t.items).find((c) => c?.type.startsWith("text")))
|
|
396
439
|
return;
|
|
397
|
-
const n = t.getData("text"),
|
|
398
|
-
if (!
|
|
440
|
+
const n = t.getData("text"), e = window.getSelection();
|
|
441
|
+
if (!e.rangeCount) {
|
|
399
442
|
this.updateValue(n);
|
|
400
443
|
return;
|
|
401
444
|
}
|
|
402
|
-
const
|
|
403
|
-
|
|
404
|
-
const
|
|
405
|
-
|
|
445
|
+
const r = e.getRangeAt(0);
|
|
446
|
+
e.deleteFromDocument(), r.insertNode(document.createTextNode(n));
|
|
447
|
+
const s = document.createRange();
|
|
448
|
+
s.setStart(i.target, r.endOffset), s.collapse(!0), e.removeAllRanges(), e.addRange(s), this.updateValue(this.$refs.contenteditable.innerHTML);
|
|
406
449
|
},
|
|
407
450
|
/**
|
|
408
451
|
* Update the value text from the provided html
|
|
409
452
|
*
|
|
410
453
|
* @param {string} htmlOrText the html content (or raw text with @mentions)
|
|
411
454
|
*/
|
|
412
|
-
updateValue(
|
|
413
|
-
const t = this.parseContent(
|
|
455
|
+
updateValue(i) {
|
|
456
|
+
const t = this.parseContent(i);
|
|
414
457
|
this.localValue = t, this.$emit("update:value", t);
|
|
415
458
|
},
|
|
416
459
|
/**
|
|
@@ -418,9 +461,9 @@ const w = {
|
|
|
418
461
|
*
|
|
419
462
|
* @param {string} value the message value
|
|
420
463
|
*/
|
|
421
|
-
updateContent(
|
|
422
|
-
const t = this.renderContent(
|
|
423
|
-
this.$refs.contenteditable.innerHTML = t, this.localValue =
|
|
464
|
+
updateContent(i) {
|
|
465
|
+
const t = this.renderContent(i);
|
|
466
|
+
this.$refs.contenteditable.innerHTML = t, this.localValue = i;
|
|
424
467
|
},
|
|
425
468
|
/**
|
|
426
469
|
* Because FF have a decade old bug preventing contenteditable=false
|
|
@@ -430,54 +473,102 @@ const w = {
|
|
|
430
473
|
*
|
|
431
474
|
* @param {Event} event the delete keydown event
|
|
432
475
|
*/
|
|
433
|
-
onDelete(
|
|
476
|
+
onDelete(i) {
|
|
434
477
|
if (!this.isFF || !window.getSelection || !this.canEdit)
|
|
435
478
|
return;
|
|
436
|
-
const t = window.getSelection(), n =
|
|
479
|
+
const t = window.getSelection(), n = i.target;
|
|
437
480
|
if (!t.isCollapsed || !t.rangeCount)
|
|
438
481
|
return;
|
|
439
|
-
const
|
|
440
|
-
if (
|
|
482
|
+
const e = t.getRangeAt(t.rangeCount - 1);
|
|
483
|
+
if (e.commonAncestorContainer.nodeType === 3 && e.startOffset > 0)
|
|
441
484
|
return;
|
|
442
|
-
const
|
|
485
|
+
const r = document.createRange();
|
|
443
486
|
if (t.anchorNode !== n)
|
|
444
|
-
|
|
487
|
+
r.selectNodeContents(n), r.setEndBefore(t.anchorNode);
|
|
445
488
|
else if (t.anchorOffset > 0)
|
|
446
|
-
|
|
489
|
+
r.setEnd(n, t.anchorOffset);
|
|
447
490
|
else
|
|
448
491
|
return;
|
|
449
|
-
|
|
450
|
-
const
|
|
451
|
-
|
|
492
|
+
r.setStart(n, r.endOffset - 1);
|
|
493
|
+
const s = r.cloneContents().lastChild;
|
|
494
|
+
s && s.contentEditable === "false" && (r.deleteContents(), i.preventDefault());
|
|
452
495
|
},
|
|
453
496
|
/**
|
|
454
497
|
* Enter key pressed. Submits if not multiline
|
|
455
498
|
*
|
|
456
499
|
* @param {Event} event the keydown event
|
|
457
500
|
*/
|
|
458
|
-
onEnter(
|
|
459
|
-
this.multiline || this.isOverMaxlength || this.
|
|
501
|
+
onEnter(i) {
|
|
502
|
+
this.multiline || this.isOverMaxlength || this.tribute.isActive || this.isComposing || (i.preventDefault(), i.stopPropagation(), this.$emit("submit", i));
|
|
460
503
|
},
|
|
461
504
|
/**
|
|
462
505
|
* Ctrl + Enter key pressed is used to submit
|
|
463
506
|
*
|
|
464
507
|
* @param {Event} event the keydown event
|
|
465
508
|
*/
|
|
466
|
-
onCtrlEnter(
|
|
467
|
-
this.isOverMaxlength || this.$emit("submit",
|
|
509
|
+
onCtrlEnter(i) {
|
|
510
|
+
this.isOverMaxlength || this.$emit("submit", i);
|
|
511
|
+
},
|
|
512
|
+
onKeyUp(i) {
|
|
513
|
+
i.stopImmediatePropagation();
|
|
514
|
+
},
|
|
515
|
+
/**
|
|
516
|
+
* Get HTML element with Tribute.js container
|
|
517
|
+
* @return {HTMLElement}
|
|
518
|
+
*/
|
|
519
|
+
getTributeContainer() {
|
|
520
|
+
return this.tribute.menu;
|
|
468
521
|
},
|
|
469
522
|
/**
|
|
470
|
-
*
|
|
523
|
+
* Get the currently selected item element id in Tribute.js container
|
|
524
|
+
* @return {HTMLElement}
|
|
525
|
+
*/
|
|
526
|
+
getTributeSelectedItem() {
|
|
527
|
+
return this.getTributeContainer().querySelector('.highlight [id^="nc-rich-contenteditable-tribute-item-"]');
|
|
528
|
+
},
|
|
529
|
+
/**
|
|
530
|
+
* Handle Tribute activation
|
|
531
|
+
* @param {boolean} isActive - is active
|
|
532
|
+
*/
|
|
533
|
+
onTributeActive(i) {
|
|
534
|
+
this.isAutocompleteOpen = i, i ? (this.getTributeContainer().setAttribute("class", this.tribute.current.collection.containerClass || "tribute-container"), this.setupTributeIntegration()) : (this.debouncedAutoComplete.clear(), this.autocompleteActiveId = void 0, this.setTributeFocusVisible(!1));
|
|
535
|
+
},
|
|
536
|
+
onTributeArrowKeyDown() {
|
|
537
|
+
this.isAutocompleteOpen && (this.setTributeFocusVisible(!0), this.onTributeSelectedItemWillChange());
|
|
538
|
+
},
|
|
539
|
+
onTributeSelectedItemWillChange() {
|
|
540
|
+
requestAnimationFrame(() => {
|
|
541
|
+
this.autocompleteActiveId = this.getTributeSelectedItem()?.id;
|
|
542
|
+
});
|
|
543
|
+
},
|
|
544
|
+
setupTributeIntegration() {
|
|
545
|
+
if (this.isTributeIntegrationDone)
|
|
546
|
+
return;
|
|
547
|
+
this.isTributeIntegrationDone = !0;
|
|
548
|
+
const i = this.getTributeContainer();
|
|
549
|
+
i.id = this.tributeId, i.setAttribute("role", "listbox"), i.children[0].setAttribute("role", "presentation"), this.tributeStyleMutationObserver = new MutationObserver(([{ target: n }]) => {
|
|
550
|
+
n.style.display !== "none" && this.onTributeSelectedItemWillChange();
|
|
551
|
+
}).observe(i, {
|
|
552
|
+
attributes: !0,
|
|
553
|
+
attributeFilter: ["style"]
|
|
554
|
+
}), i.addEventListener("mousemove", () => {
|
|
555
|
+
this.setTributeFocusVisible(!1), this.onTributeSelectedItemWillChange();
|
|
556
|
+
}, { passive: !0 });
|
|
557
|
+
},
|
|
558
|
+
/**
|
|
559
|
+
* Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.
|
|
560
|
+
*
|
|
561
|
+
* Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class
|
|
562
|
+
* to style selected options in the autocomplete listbox.
|
|
563
|
+
*
|
|
564
|
+
* @param {boolean} withFocusVisible - should the focus-visible class be added
|
|
471
565
|
*/
|
|
472
|
-
|
|
473
|
-
this.
|
|
474
|
-
}, 100),
|
|
475
|
-
onKeyUp(e) {
|
|
476
|
-
e.stopImmediatePropagation();
|
|
566
|
+
setTributeFocusVisible(i) {
|
|
567
|
+
i ? this.getTributeContainer().classList.add("tribute-container--focus-visible") : this.getTributeContainer().classList.remove("tribute-container--focus-visible");
|
|
477
568
|
}
|
|
478
569
|
}
|
|
479
570
|
};
|
|
480
|
-
var
|
|
571
|
+
var R = function() {
|
|
481
572
|
var t = this, n = t._self._c;
|
|
482
573
|
return n("div", { staticClass: "rich-contenteditable" }, [n("div", t._g(t._b({ directives: [{ name: "tooltip", rawName: "v-tooltip", value: t.tooltipString, expression: "tooltipString" }], ref: "contenteditable", staticClass: "rich-contenteditable__input", class: {
|
|
483
574
|
"rich-contenteditable__input--empty": t.isEmptyValue,
|
|
@@ -485,31 +576,39 @@ var j = function() {
|
|
|
485
576
|
"rich-contenteditable__input--has-label": t.label,
|
|
486
577
|
"rich-contenteditable__input--overflow": t.isOverMaxlength,
|
|
487
578
|
"rich-contenteditable__input--disabled": t.disabled
|
|
488
|
-
}, attrs: { id: t.id, contenteditable: t.canEdit, "aria-labelledby": t.label ? t.labelId : void 0, "aria-placeholder": t.placeholder, "aria-multiline": "true", role: "textbox" }, on: { focus: t.moveCursorToEnd, input: t.onInput, compositionstart: function(
|
|
579
|
+
}, attrs: { id: t.id, contenteditable: t.canEdit, "aria-labelledby": t.label ? t.labelId : void 0, "aria-placeholder": t.placeholder, "aria-multiline": "true", role: "textbox", "aria-haspopup": "listbox", "aria-autocomplete": "inline", "aria-controls": t.tributeId, "aria-expanded": t.isAutocompleteOpen ? "true" : "false", "aria-activedescendant": t.autocompleteActiveId }, on: { focus: t.moveCursorToEnd, input: t.onInput, compositionstart: function(e) {
|
|
489
580
|
t.isComposing = !0;
|
|
490
|
-
}, compositionend: function(
|
|
581
|
+
}, compositionend: function(e) {
|
|
491
582
|
t.isComposing = !1;
|
|
492
|
-
}, keydown: [function(
|
|
493
|
-
return !
|
|
494
|
-
}, function(
|
|
495
|
-
return !
|
|
496
|
-
}, function(
|
|
497
|
-
return !
|
|
498
|
-
}
|
|
499
|
-
return
|
|
583
|
+
}, keydown: [function(e) {
|
|
584
|
+
return !e.type.indexOf("key") && t._k(e.keyCode, "delete", [8, 46], e.key, ["Backspace", "Delete", "Del"]) ? null : t.onDelete.apply(null, arguments);
|
|
585
|
+
}, function(e) {
|
|
586
|
+
return !e.type.indexOf("key") && t._k(e.keyCode, "enter", 13, e.key, "Enter") || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey ? null : t.onEnter.apply(null, arguments);
|
|
587
|
+
}, function(e) {
|
|
588
|
+
return !e.type.indexOf("key") && t._k(e.keyCode, "enter", 13, e.key, "Enter") || !e.ctrlKey || e.shiftKey || e.altKey || e.metaKey ? null : (e.stopPropagation(), e.preventDefault(), t.onCtrlEnter.apply(null, arguments));
|
|
589
|
+
}, function(e) {
|
|
590
|
+
return !e.type.indexOf("key") && t._k(e.keyCode, "up", 38, e.key, ["Up", "ArrowUp"]) || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey ? null : (e.stopPropagation(), t.onTributeArrowKeyDown.apply(null, arguments));
|
|
591
|
+
}, function(e) {
|
|
592
|
+
return !e.type.indexOf("key") && t._k(e.keyCode, "down", 40, e.key, ["Down", "ArrowDown"]) || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey ? null : (e.stopPropagation(), t.onTributeArrowKeyDown.apply(null, arguments));
|
|
593
|
+
}], paste: t.onPaste, "!keyup": function(e) {
|
|
594
|
+
return e.stopPropagation(), e.preventDefault(), t.onKeyUp.apply(null, arguments);
|
|
595
|
+
}, "tribute-active-true": function(e) {
|
|
596
|
+
return t.onTributeActive(!0);
|
|
597
|
+
}, "tribute-active-false": function(e) {
|
|
598
|
+
return t.onTributeActive(!1);
|
|
500
599
|
} } }, "div", t.$attrs, !1), t.listeners)), t.label ? n("div", { staticClass: "rich-contenteditable__label", attrs: { id: t.labelId } }, [t._v(" " + t._s(t.label) + " ")]) : t._e()]);
|
|
501
|
-
},
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
600
|
+
}, K = [], M = /* @__PURE__ */ u(
|
|
601
|
+
D,
|
|
602
|
+
R,
|
|
603
|
+
K,
|
|
505
604
|
!1,
|
|
506
605
|
null,
|
|
507
|
-
"
|
|
606
|
+
"04a9f8cd",
|
|
508
607
|
null,
|
|
509
608
|
null
|
|
510
609
|
);
|
|
511
|
-
const
|
|
610
|
+
const pt = M.exports;
|
|
512
611
|
export {
|
|
513
|
-
|
|
514
|
-
|
|
612
|
+
E as N,
|
|
613
|
+
pt as a
|
|
515
614
|
};
|