@nextcloud/vue 8.6.2 → 8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/Components/NcActionButton.cjs +6 -6
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +3 -3
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionInput.cjs +1 -1
  7. package/dist/Components/NcActionInput.mjs +1 -1
  8. package/dist/Components/NcBreadcrumb.cjs +1 -1
  9. package/dist/Components/NcBreadcrumb.mjs +1 -1
  10. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  11. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  12. package/dist/Components/NcDashboardWidget.cjs +1 -1
  13. package/dist/Components/NcDashboardWidget.mjs +1 -1
  14. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  15. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  16. package/dist/Components/NcDateTimePicker.cjs +3 -3
  17. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  18. package/dist/Components/NcDateTimePicker.mjs +8 -8
  19. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  20. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  21. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  22. package/dist/Components/NcListItem.cjs +1 -1
  23. package/dist/Components/NcListItem.mjs +1 -1
  24. package/dist/Components/NcModal.cjs +7 -7
  25. package/dist/Components/NcModal.cjs.map +1 -1
  26. package/dist/Components/NcModal.mjs +6 -6
  27. package/dist/Components/NcModal.mjs.map +1 -1
  28. package/dist/Components/NcRichContenteditable.cjs +1 -1
  29. package/dist/Components/NcRichContenteditable.mjs +1 -1
  30. package/dist/Components/NcRichText.cjs +11 -11
  31. package/dist/Components/NcRichText.cjs.map +1 -1
  32. package/dist/Components/NcRichText.mjs +22 -21
  33. package/dist/Components/NcRichText.mjs.map +1 -1
  34. package/dist/Components/NcSelect.cjs +1 -1
  35. package/dist/Components/NcSelect.mjs +1 -1
  36. package/dist/Components/NcSelectTags.cjs +1 -1
  37. package/dist/Components/NcSelectTags.mjs +1 -1
  38. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  39. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  40. package/dist/Components/NcTimezonePicker.cjs +1 -1
  41. package/dist/Components/NcTimezonePicker.mjs +1 -1
  42. package/dist/Functions/reference.cjs +16 -0
  43. package/dist/Functions/reference.cjs.map +1 -0
  44. package/dist/Functions/reference.mjs +17 -0
  45. package/dist/Functions/reference.mjs.map +1 -0
  46. package/dist/Functions/registerReference.cjs +71 -0
  47. package/dist/Functions/registerReference.cjs.map +1 -0
  48. package/dist/Functions/registerReference.mjs +71 -0
  49. package/dist/Functions/registerReference.mjs.map +1 -0
  50. package/dist/assets/{NcActionButton-1Z9lN7ar.css → NcActionButton-rOZFVQA8.css} +17 -17
  51. package/dist/assets/{NcBreadcrumb-M3hqCbqS.css → NcBreadcrumb-HspaFygg.css} +16 -16
  52. package/dist/assets/{NcDashboardWidgetItem-S7fELANA.css → NcDashboardWidgetItem-OL--xR_P.css} +15 -13
  53. package/dist/assets/{NcDateTimePicker-rixdCL1X.css → NcDateTimePicker-TArRbMs-.css} +17 -17
  54. package/dist/assets/{NcListItem-5XAhBDJv.css → NcListItem-L8LeGwpe.css} +43 -43
  55. package/dist/assets/{NcModal-UZh031V1.css → NcModal-sIK5sUoC.css} +63 -63
  56. package/dist/assets/{NcRichContenteditable-WQVknpPy.css → NcRichContenteditable-CuR1YKTU.css} +34 -32
  57. package/dist/assets/NcRichText-Pw6kTpnR.css +215 -0
  58. package/dist/assets/referencePickerModal-A0PlFUEI.css +316 -0
  59. package/dist/chunks/{NcActionInput-BN9rIyI8.mjs → NcActionInput-XHMzOL_h.mjs} +1 -1
  60. package/dist/chunks/{NcActionInput-BN9rIyI8.mjs.map → NcActionInput-XHMzOL_h.mjs.map} +1 -1
  61. package/dist/chunks/{NcActionInput-qeRQBGlt.cjs → NcActionInput-f1Oq2O71.cjs} +1 -1
  62. package/dist/chunks/{NcActionInput-qeRQBGlt.cjs.map → NcActionInput-f1Oq2O71.cjs.map} +1 -1
  63. package/dist/chunks/{NcBreadcrumb-EGgIr-sA.cjs → NcBreadcrumb-DEWk7wO9.cjs} +27 -20
  64. package/dist/chunks/NcBreadcrumb-DEWk7wO9.cjs.map +1 -0
  65. package/dist/chunks/{NcBreadcrumb-on01ofev.mjs → NcBreadcrumb-w1UX2NR-.mjs} +13 -6
  66. package/dist/chunks/NcBreadcrumb-w1UX2NR-.mjs.map +1 -0
  67. package/dist/chunks/{NcBreadcrumbs-hQmUGh48.cjs → NcBreadcrumbs-VuaG3ex5.cjs} +1 -1
  68. package/dist/chunks/{NcBreadcrumbs-hQmUGh48.cjs.map → NcBreadcrumbs-VuaG3ex5.cjs.map} +1 -1
  69. package/dist/chunks/{NcBreadcrumbs-2l-mWYHl.mjs → NcBreadcrumbs-tRR9CjKD.mjs} +1 -1
  70. package/dist/chunks/{NcBreadcrumbs-2l-mWYHl.mjs.map → NcBreadcrumbs-tRR9CjKD.mjs.map} +1 -1
  71. package/dist/chunks/{NcDashboardWidget-ogqyHahY.mjs → NcDashboardWidget-9LDutUO0.mjs} +1 -1
  72. package/dist/chunks/{NcDashboardWidget-ogqyHahY.mjs.map → NcDashboardWidget-9LDutUO0.mjs.map} +1 -1
  73. package/dist/chunks/{NcDashboardWidget-QciRRvL4.cjs → NcDashboardWidget-oPZKAkd-.cjs} +1 -1
  74. package/dist/chunks/{NcDashboardWidget-QciRRvL4.cjs.map → NcDashboardWidget-oPZKAkd-.cjs.map} +1 -1
  75. package/dist/chunks/{NcDashboardWidgetItem-mIPkPR7r.cjs → NcDashboardWidgetItem-1r760Ikh.cjs} +3 -3
  76. package/dist/chunks/NcDashboardWidgetItem-1r760Ikh.cjs.map +1 -0
  77. package/dist/chunks/{NcDashboardWidgetItem-wuUHTeLl.mjs → NcDashboardWidgetItem-Qd8gSF2h.mjs} +5 -5
  78. package/dist/chunks/NcDashboardWidgetItem-Qd8gSF2h.mjs.map +1 -0
  79. package/dist/chunks/{NcListItem-RDF4Yv0n.cjs → NcListItem--_PCqetA.cjs} +2 -2
  80. package/dist/chunks/{NcListItem-_PBHug1k.mjs.map → NcListItem--_PCqetA.cjs.map} +1 -1
  81. package/dist/chunks/{NcListItem-_PBHug1k.mjs → NcListItem-AMcc69jK.mjs} +2 -2
  82. package/dist/chunks/{NcListItem-RDF4Yv0n.cjs.map → NcListItem-AMcc69jK.mjs.map} +1 -1
  83. package/dist/chunks/{NcRichContenteditable-xcoJkj3I.cjs → NcRichContenteditable-cUZMZlgG.cjs} +77 -54
  84. package/dist/chunks/NcRichContenteditable-cUZMZlgG.cjs.map +1 -0
  85. package/dist/chunks/{NcRichContenteditable-glkLWE43.mjs → NcRichContenteditable-d4EOAT2a.mjs} +86 -64
  86. package/dist/chunks/NcRichContenteditable-d4EOAT2a.mjs.map +1 -0
  87. package/dist/chunks/NcRichText-S34HoIhH.cjs +313 -0
  88. package/dist/chunks/NcRichText-S34HoIhH.cjs.map +1 -0
  89. package/dist/chunks/NcRichText-yfYdNWFh.mjs +328 -0
  90. package/dist/chunks/NcRichText-yfYdNWFh.mjs.map +1 -0
  91. package/dist/chunks/{NcSelect-SlL-Y8Qz.cjs → NcSelect-U9LJcdIo.cjs} +54 -44
  92. package/dist/chunks/NcSelect-U9LJcdIo.cjs.map +1 -0
  93. package/dist/chunks/{NcSelect-2ClmJ8jJ.mjs → NcSelect-b2H-YQsK.mjs} +39 -29
  94. package/dist/chunks/NcSelect-b2H-YQsK.mjs.map +1 -0
  95. package/dist/chunks/{NcSelectTags-TC2UmbfI.mjs → NcSelectTags-MlILya2b.mjs} +1 -1
  96. package/dist/chunks/{NcSelectTags-TC2UmbfI.mjs.map → NcSelectTags-MlILya2b.mjs.map} +1 -1
  97. package/dist/chunks/{NcSelectTags-FKigJPco.cjs → NcSelectTags-rO88Pk-1.cjs} +1 -1
  98. package/dist/chunks/{NcSelectTags-FKigJPco.cjs.map → NcSelectTags-rO88Pk-1.cjs.map} +1 -1
  99. package/dist/chunks/{NcSettingsSelectGroup-fOU9O4VD.cjs → NcSettingsSelectGroup-rfeDPLCg.cjs} +1 -1
  100. package/dist/chunks/{NcSettingsSelectGroup-fOU9O4VD.cjs.map → NcSettingsSelectGroup-rfeDPLCg.cjs.map} +1 -1
  101. package/dist/chunks/{NcSettingsSelectGroup-Bcai5uHx.mjs → NcSettingsSelectGroup-xhnDBg8a.mjs} +1 -1
  102. package/dist/chunks/{NcSettingsSelectGroup-Bcai5uHx.mjs.map → NcSettingsSelectGroup-xhnDBg8a.mjs.map} +1 -1
  103. package/dist/chunks/{NcTimezonePicker-Dv6pIP9O.cjs → NcTimezonePicker-KG0dvgUv.cjs} +1 -1
  104. package/dist/chunks/{NcTimezonePicker-Dv6pIP9O.cjs.map → NcTimezonePicker-KG0dvgUv.cjs.map} +1 -1
  105. package/dist/chunks/{NcTimezonePicker-DDce-mch.mjs → NcTimezonePicker-jJeiI-Ff.mjs} +1 -1
  106. package/dist/chunks/{NcTimezonePicker-DDce-mch.mjs.map → NcTimezonePicker-jJeiI-Ff.mjs.map} +1 -1
  107. package/dist/chunks/{ScopeComponent-hYwaRplQ.mjs → ScopeComponent-ZQvTL_tO.mjs} +1 -1
  108. package/dist/chunks/{ScopeComponent-hYwaRplQ.mjs.map → ScopeComponent-ZQvTL_tO.mjs.map} +1 -1
  109. package/dist/chunks/{ScopeComponent-qBzpvxit.cjs → ScopeComponent-v4OJPQb8.cjs} +1 -1
  110. package/dist/chunks/{ScopeComponent-qBzpvxit.cjs.map → ScopeComponent-v4OJPQb8.cjs.map} +1 -1
  111. package/dist/chunks/referencePickerModal-cPBjsn4r.cjs +2393 -0
  112. package/dist/chunks/referencePickerModal-cPBjsn4r.cjs.map +1 -0
  113. package/dist/chunks/referencePickerModal-gDBkGfNV.mjs +2414 -0
  114. package/dist/chunks/referencePickerModal-gDBkGfNV.mjs.map +1 -0
  115. package/dist/index.cjs +189 -170
  116. package/dist/index.cjs.map +1 -1
  117. package/dist/index.mjs +178 -159
  118. package/dist/index.mjs.map +1 -1
  119. package/dist/vendor.LICENSE.txt +4 -0
  120. package/package.json +2 -2
  121. package/dist/assets/referencePickerModal-yucfxaTX.css +0 -509
  122. package/dist/chunks/NcBreadcrumb-EGgIr-sA.cjs.map +0 -1
  123. package/dist/chunks/NcBreadcrumb-on01ofev.mjs.map +0 -1
  124. package/dist/chunks/NcDashboardWidgetItem-mIPkPR7r.cjs.map +0 -1
  125. package/dist/chunks/NcDashboardWidgetItem-wuUHTeLl.mjs.map +0 -1
  126. package/dist/chunks/NcRichContenteditable-glkLWE43.mjs.map +0 -1
  127. package/dist/chunks/NcRichContenteditable-xcoJkj3I.cjs.map +0 -1
  128. package/dist/chunks/NcRichText-TdyEC_z7.cjs +0 -337
  129. package/dist/chunks/NcRichText-TdyEC_z7.cjs.map +0 -1
  130. package/dist/chunks/NcRichText-lyvuLvpr.mjs +0 -353
  131. package/dist/chunks/NcRichText-lyvuLvpr.mjs.map +0 -1
  132. package/dist/chunks/NcSelect-2ClmJ8jJ.mjs.map +0 -1
  133. package/dist/chunks/NcSelect-SlL-Y8Qz.cjs.map +0 -1
  134. package/dist/chunks/referencePickerModal-cy4_Q5bu.cjs +0 -880
  135. package/dist/chunks/referencePickerModal-cy4_Q5bu.cjs.map +0 -1
  136. package/dist/chunks/referencePickerModal-wDsYQHxX.mjs +0 -897
  137. package/dist/chunks/referencePickerModal-wDsYQHxX.mjs.map +0 -1
@@ -0,0 +1,328 @@
1
+ import '../assets/NcRichText-Pw6kTpnR.css';
2
+ import { N as g, U as f, p as k, r as _, i as v, L as b } from "./referencePickerModal-gDBkGfNV.mjs";
3
+ import p from "@nextcloud/axios";
4
+ import { generateOcsUrl as h } from "@nextcloud/router";
5
+ /* empty css */
6
+ import { n as x } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
7
+ import { N as w } from "./NcCheckboxRadioSwitch-PlgK1zWr.mjs";
8
+ import { visit as y } from "unist-util-visit";
9
+ import { u as m } from "unist-builder";
10
+ import { G as R } from "./GenRandomId-VodkdWbp.mjs";
11
+ import { unified as N } from "unified";
12
+ import M from "remark-parse";
13
+ import $ from "remark-gfm";
14
+ import E from "remark-breaks";
15
+ import L from "remark-rehype";
16
+ import j from "rehype-react";
17
+ import O from "rehype-external-links";
18
+ const U = {
19
+ name: "NcReferenceList",
20
+ components: {
21
+ NcReferenceWidget: g
22
+ },
23
+ props: {
24
+ text: {
25
+ type: String,
26
+ default: ""
27
+ },
28
+ referenceData: {
29
+ type: Object,
30
+ default: null
31
+ },
32
+ limit: {
33
+ type: Number,
34
+ default: 1
35
+ },
36
+ displayFallback: {
37
+ type: Boolean,
38
+ default: !1
39
+ },
40
+ interactive: {
41
+ type: Boolean,
42
+ default: !1
43
+ }
44
+ },
45
+ data() {
46
+ return {
47
+ references: null,
48
+ loading: !0
49
+ };
50
+ },
51
+ computed: {
52
+ isVisible() {
53
+ return this.loading || this.displayedReferences.length !== 0;
54
+ },
55
+ values() {
56
+ return this.referenceData ? this.referenceData : this.displayFallback && !this.loading && !this.references ? [this.fallbackReference] : this.references ? Object.values(this.references) : [];
57
+ },
58
+ firstReference() {
59
+ return this.values[0] ?? null;
60
+ },
61
+ displayedReferences() {
62
+ return this.values.slice(0, this.limit).map((e) => ({
63
+ ...e,
64
+ interactive: this.interactive
65
+ }));
66
+ },
67
+ fallbackReference() {
68
+ return {
69
+ accessible: !0,
70
+ openGraphObject: {
71
+ id: this.text,
72
+ link: this.text,
73
+ name: this.text
74
+ },
75
+ richObjectType: "open-graph"
76
+ };
77
+ },
78
+ fullUrl() {
79
+ return new URL(this.text.trim(), window.location);
80
+ }
81
+ },
82
+ watch: {
83
+ text: "fetch"
84
+ },
85
+ mounted() {
86
+ this.fetch();
87
+ },
88
+ methods: {
89
+ fetch() {
90
+ if (this.loading = !0, this.referenceData) {
91
+ this.loading = !1;
92
+ return;
93
+ }
94
+ if (!new RegExp(f).exec(this.fullUrl.href)) {
95
+ this.loading = !1;
96
+ return;
97
+ }
98
+ this.resolve().then((e) => {
99
+ this.references = e.data.ocs.data.references, this.loading = !1, this.$emit("loaded");
100
+ }).catch((e) => {
101
+ console.error("Failed to extract references", e), this.loading = !1, this.$emit("loaded");
102
+ });
103
+ },
104
+ resolve() {
105
+ const e = new RegExp(f).exec(this.fullUrl.href);
106
+ return this.limit === 1 && e ? p.get(h("references/resolve", 2) + `?reference=${encodeURIComponent(e[0])}`) : p.post(h("references/extract", 2), {
107
+ text: this.text,
108
+ resolve: !0,
109
+ limit: this.limit
110
+ });
111
+ }
112
+ }
113
+ };
114
+ var C = function() {
115
+ var i = this, r = i._self._c;
116
+ return i.isVisible ? r("div", { staticClass: "widgets--list", class: { "icon-loading": i.loading } }, i._l(i.displayedReferences, function(t) {
117
+ return r("div", { key: t?.openGraphObject?.id }, [r("NcReferenceWidget", { attrs: { reference: t } })], 1);
118
+ }), 0) : i._e();
119
+ }, A = [], B = /* @__PURE__ */ x(
120
+ U,
121
+ C,
122
+ A,
123
+ !1,
124
+ null,
125
+ "ce89eeda",
126
+ null,
127
+ null
128
+ );
129
+ const u = B.exports, D = function() {
130
+ return function(e) {
131
+ y(e, (r) => r.type === "text", i);
132
+ function i(r, t, s) {
133
+ const a = r.value.split(/(\{[a-z\-_.0-9]+\})/ig).map((n, l, o) => {
134
+ const c = n.match(/^\{([a-z\-_.0-9]+)\}$/i);
135
+ if (!c)
136
+ return m("text", n);
137
+ const [, d] = c;
138
+ return m("element", {
139
+ tagName: `#${d}`
140
+ });
141
+ });
142
+ s.children.splice(t, 1, ...a);
143
+ }
144
+ };
145
+ }, T = ({ h: e, context: i }, r) => (i.autolink && (r = k(r)), Array.isArray(r) ? r.map((t) => {
146
+ if (typeof t == "string")
147
+ return t;
148
+ const { component: s, props: a } = t, n = s.name === "NcLink" ? void 0 : "rich-text--component";
149
+ return e(s, {
150
+ props: a,
151
+ class: n
152
+ });
153
+ }) : r), z = {
154
+ name: "NcRichText",
155
+ components: {
156
+ NcReferenceList: u
157
+ },
158
+ props: {
159
+ text: {
160
+ type: String,
161
+ default: ""
162
+ },
163
+ arguments: {
164
+ type: Object,
165
+ default: () => ({})
166
+ },
167
+ referenceLimit: {
168
+ type: Number,
169
+ default: 0
170
+ },
171
+ /** Provide data upfront to avoid extra http request */
172
+ references: {
173
+ type: Object,
174
+ default: null
175
+ },
176
+ markdownCssClasses: {
177
+ type: Object,
178
+ default: () => ({
179
+ a: "rich-text--external-link",
180
+ ol: "rich-text--ordered-list",
181
+ ul: "rich-text--un-ordered-list",
182
+ li: "rich-text--list-item",
183
+ strong: "rich-text--strong",
184
+ em: "rich-text--italic",
185
+ h1: "rich-text--heading rich-text--heading-1",
186
+ h2: "rich-text--heading rich-text--heading-2",
187
+ h3: "rich-text--heading rich-text--heading-3",
188
+ h4: "rich-text--heading rich-text--heading-4",
189
+ h5: "rich-text--heading rich-text--heading-5",
190
+ h6: "rich-text--heading rich-text--heading-6",
191
+ hr: "rich-text--hr",
192
+ table: "rich-text--table",
193
+ pre: "rich-text--pre",
194
+ code: "rich-text--code",
195
+ blockquote: "rich-text--blockquote"
196
+ })
197
+ },
198
+ useMarkdown: {
199
+ type: Boolean,
200
+ default: !1
201
+ },
202
+ /** Provide GitHub Flavored Markdown syntax */
203
+ useExtendedMarkdown: {
204
+ type: Boolean,
205
+ default: !1
206
+ },
207
+ /** Provide event from rendered markdown inputs */
208
+ interactive: {
209
+ type: Boolean,
210
+ default: !1
211
+ },
212
+ autolink: {
213
+ type: Boolean,
214
+ default: !0
215
+ }
216
+ },
217
+ emits: ["interact:todo"],
218
+ methods: {
219
+ renderPlaintext(e) {
220
+ const i = this, r = this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(function(t, s, a) {
221
+ const n = t.match(/^\{([a-z\-_.0-9]+)\}$/i);
222
+ if (!n)
223
+ return T({ h: e, context: i }, t);
224
+ const l = n[1], o = i.arguments[l];
225
+ if (typeof o == "object") {
226
+ const { component: c, props: d } = o;
227
+ return e(c, {
228
+ props: d,
229
+ class: "rich-text--component"
230
+ });
231
+ }
232
+ return o ? e("span", { class: "rich-text--fallback" }, o) : t;
233
+ });
234
+ return e("div", { class: "rich-text--wrapper" }, [
235
+ e("div", {}, r.flat()),
236
+ this.referenceLimit > 0 ? e("div", { class: "rich-text--reference-widget" }, [
237
+ e(u, { props: { text: this.text, referenceData: this.references } })
238
+ ]) : null
239
+ ]);
240
+ },
241
+ renderMarkdown(e) {
242
+ const i = N().use(M).use(_, {
243
+ autolink: this.autolink,
244
+ useMarkdown: this.useMarkdown,
245
+ useExtendedMarkdown: this.useExtendedMarkdown
246
+ }).use(this.useExtendedMarkdown ? $ : void 0).use(E).use(L, {
247
+ handlers: {
248
+ component(r, t) {
249
+ return r(t, t.component, { value: t.value });
250
+ }
251
+ }
252
+ }).use(D).use(O, {
253
+ target: "_blank",
254
+ rel: ["noopener noreferrer"]
255
+ }).use(j, {
256
+ createElement: (r, t, s) => {
257
+ if (s = s?.map(
258
+ (n) => typeof n == "string" ? n.replace(/&lt;/gmi, "<") : n
259
+ ), !r.startsWith("#")) {
260
+ if (this.useExtendedMarkdown && r === "li" && Array.isArray(s) && s[0].tag === "input" && s[0].data.attrs.type === "checkbox") {
261
+ const [n, , l] = s, o = "markdown-input-" + R(5), c = e(w, {
262
+ attrs: {
263
+ ...n.data.attrs,
264
+ id: o,
265
+ disabled: !this.interactive
266
+ },
267
+ on: {
268
+ "update:checked": (d) => {
269
+ this.$emit("interact:todo", { id: o, label: l, value: d });
270
+ }
271
+ }
272
+ }, [l]);
273
+ return e(r, t, [c]);
274
+ }
275
+ if (r === "a") {
276
+ const n = v(this.$router, t.attrs.href);
277
+ if (n)
278
+ return delete t.attrs.href, delete t.attrs.target, e(b, {
279
+ ...t,
280
+ props: {
281
+ to: n
282
+ }
283
+ }, s);
284
+ }
285
+ return e(r, t, s);
286
+ }
287
+ const a = this.arguments[r.slice(1)];
288
+ return a ? a.component ? e(
289
+ a.component,
290
+ {
291
+ attrs: t,
292
+ props: a.props,
293
+ class: "rich-text--component"
294
+ },
295
+ s
296
+ ) : e("span", t, [a]) : e("span", { attrs: t, class: "rich-text--fallback" }, [`{${r.slice(1)}}`]);
297
+ },
298
+ prefix: !1
299
+ }).processSync(
300
+ this.text.replace(/</gmi, "&lt;").replace(/&gt;/gmi, ">")
301
+ ).result;
302
+ return e("div", { class: "rich-text--wrapper rich-text--wrapper-markdown" }, [
303
+ i,
304
+ this.referenceLimit > 0 ? e("div", { class: "rich-text--reference-widget" }, [
305
+ e(u, { props: { text: this.text, referenceData: this.references } })
306
+ ]) : null
307
+ ]);
308
+ }
309
+ },
310
+ render(e) {
311
+ return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown(e) : this.renderPlaintext(e);
312
+ }
313
+ }, F = null, G = null;
314
+ var P = /* @__PURE__ */ x(
315
+ z,
316
+ F,
317
+ G,
318
+ !1,
319
+ null,
320
+ "0f33c076",
321
+ null,
322
+ null
323
+ );
324
+ const ie = P.exports;
325
+ export {
326
+ ie as N,
327
+ u as a
328
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcRichText-yfYdNWFh.mjs","sources":["../../src/components/NcRichText/NcReferenceList.vue","../../src/components/NcRichText/placeholder.js","../../src/components/NcRichText/NcRichText.vue"],"sourcesContent":["<template>\n\t<div v-if=\"isVisible\" class=\"widgets--list\" :class=\"{'icon-loading': loading }\">\n\t\t<div v-for=\"reference in displayedReferences\" :key=\"reference?.openGraphObject?.id\">\n\t\t\t<NcReferenceWidget :reference=\"reference\" />\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport NcReferenceWidget from './NcReferenceWidget.vue'\nimport { URL_PATTERN } from './helpers.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcReferenceList',\n\tcomponents: {\n\t\tNcReferenceWidget,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\treferenceData: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1,\n\t\t},\n\t\tdisplayFallback: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\treferences: null,\n\t\t\tloading: true,\n\t\t}\n\t},\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn this.loading || this.displayedReferences.length !== 0\n\t\t},\n\t\tvalues() {\n\t\t\tif (this.referenceData) {\n\t\t\t\treturn this.referenceData\n\t\t\t}\n\n\t\t\tif (this.displayFallback && !this.loading && !this.references) {\n\t\t\t\treturn [this.fallbackReference]\n\t\t\t}\n\n\t\t\treturn this.references ? Object.values(this.references) : []\n\t\t},\n\t\tfirstReference() {\n\t\t\treturn this.values[0] ?? null\n\t\t},\n\t\tdisplayedReferences() {\n\t\t\treturn this.values.slice(0, this.limit).map(reference => {\n\t\t\t\treturn {\n\t\t\t\t\t...reference,\n\t\t\t\t\tinteractive: this.interactive,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\tfallbackReference() {\n\t\t\treturn {\n\t\t\t\taccessible: true,\n\t\t\t\topenGraphObject: {\n\t\t\t\t\tid: this.text,\n\t\t\t\t\tlink: this.text,\n\t\t\t\t\tname: this.text,\n\t\t\t\t},\n\t\t\t\trichObjectType: 'open-graph',\n\t\t\t}\n\t\t},\n\t\tfullUrl() {\n\t\t\treturn new URL(this.text.trim(), window.location)\n\t\t},\n\t},\n\twatch: {\n\t\ttext: 'fetch',\n\t},\n\tmounted() {\n\t\tthis.fetch()\n\t},\n\tmethods: {\n\t\tfetch() {\n\t\t\tthis.loading = true\n\t\t\tif (this.referenceData) {\n\t\t\t\tthis.loading = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!(new RegExp(URL_PATTERN).exec(this.fullUrl.href))) {\n\t\t\t\tthis.loading = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.resolve().then((response) => {\n\t\t\t\tthis.references = response.data.ocs.data.references\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.$emit('loaded')\n\t\t\t}).catch((error) => {\n\t\t\t\tconsole.error('Failed to extract references', error)\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.$emit('loaded')\n\t\t\t})\n\t\t},\n\t\tresolve() {\n\t\t\tconst match = (new RegExp(URL_PATTERN).exec(this.fullUrl.href))\n\t\t\tif (this.limit === 1 && match) {\n\t\t\t\treturn axios.get(generateOcsUrl('references/resolve', 2) + `?reference=${encodeURIComponent(match[0])}`)\n\t\t\t}\n\n\t\t\treturn axios.post(generateOcsUrl('references/extract', 2), {\n\t\t\t\ttext: this.text,\n\t\t\t\tresolve: true,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.widgets--list.icon-loading {\n\tmin-height: 44px;\n}\n</style>\n","import { parseUrl } from './autolink.js'\n\nimport { visit } from 'unist-util-visit'\nimport { u } from 'unist-builder'\n\nexport const remarkPlaceholder = function() {\n\treturn function(ast) {\n\t\tvisit(ast, (node) => node.type === 'text', visitor)\n\n\t\t/**\n\t\t *\n\t\t * @param {object} node The node\n\t\t * @param {number} index The index of the node\n\t\t * @param {object} parent The parent node\n\t\t */\n\t\tfunction visitor(node, index, parent) {\n\t\t\tconst placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig)\n\t\t\t\t.map((entry, index, list) => {\n\t\t\t\t\tconst matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i)\n\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\treturn u('text', entry)\n\t\t\t\t\t}\n\t\t\t\t\tconst [, component] = matches\n\t\t\t\t\treturn u('element', {\n\t\t\t\t\t\ttagName: `#${component}`,\n\t\t\t\t\t})\n\t\t\t\t})\n\n\t\t\tparent.children.splice(index, 1, ...placeholders)\n\t\t}\n\t}\n}\n\nexport const prepareTextNode = ({ h, context }, text) => {\n\tif (context.autolink) {\n\t\ttext = parseUrl(text)\n\t}\n\tif (Array.isArray(text)) {\n\t\treturn text.map((entry) => {\n\t\t\tif (typeof entry === 'string') {\n\t\t\t\treturn entry\n\t\t\t}\n\t\t\tconst { component, props } = entry\n\t\t\t// do not override class of NcLink\n\t\t\tconst componentClass = component.name === 'NcLink' ? undefined : 'rich-text--component'\n\t\t\treturn h(component, {\n\t\t\t\tprops,\n\t\t\t\tclass: componentClass,\n\t\t\t})\n\t\t})\n\t}\n\treturn text\n}\n","<!--\n - @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Guido Krömer <mail@cacodaemon.de>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\n### General description\n\nThis component displays rich text with optional autolink or [Markdown support](https://www.markdownguide.org/basic-syntax/).\n\n```vue\n<template>\n\t<div>\n\t\t<textarea v-model=\"text\" />\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"autolink\" type=\"checkbox\">Autolink</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"useMarkdown\" type=\"checkbox\">Use Markdown</NcCheckboxRadioSwitch>\n\n\t\t<NcRichText\n\t\t\t:class=\"{'plain-text': !useMarkdown }\"\n\t\t\t:text=\"text\" :autolink=\"autolink\" :arguments=\"args\"\n\t\t\t:use-markdown=\"useMarkdown\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttext: `## Hello everyone 🎉\nThe file {file} was added by {username}. Visit https://nextcloud.com to check it!\n\nSome examples for markdown syntax:\n1. **bold text**\n2. _italic text_\n3. example of \\`inline code\\`\n\n> blockquote example\n`,\n\t\t\tautolink: true,\n\t\t\tuseMarkdown: true,\n\t\t\targs: {\n\t\t\t\tfile: 'MyDocument.odt',\n\t\t\t\tusername: {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Jane Doe'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n}\n</script>\n<style lang=\"scss\">\ntextarea {\n\twidth: 100%;\n\theight: 200px;\n}\n\n.plain-text {\n\twhite-space: pre-line;\n}\n</style>\n```\n\n### Flavored Markdown\n\nThis component can support [Github Flavored Markdown](https://github.github.com/gfm/).\nIt adds such elements, as tables, task lists, strikethrough, and supports autolinks by default\n\nIt is also possible to make a rendered content interactive and listen for events\n\n```vue\n<template>\n\t<div>\n\t\t<textarea v-model=\"text\" />\n\n\t\t<NcRichText :text=\"text\"\n\t\t\t:use-extended-markdown=\"true\"\n\t\t\t:interactive=\"true\"\n\t\t\t@interact:todo=\"handleInteraction\"/>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttext: `## Try flavored markdown right now!\n\n~~strikethrough~~\n\n- [ ] task to be done\n- [x] task completed\n\nTable header | Column A | Column B\n-- | -- | --\nTable row | value A | value B\n`,\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\thandleInteraction(event) {\n\t\t\t\tconst uncheckedItem = '- [ ] ' + event.label + '\\n'\n\t\t\t\tconst checkedItem = '- [x] ' + event.label + '\\n'\n\n\t\t\t\tthis.text = event.value\n\t\t\t\t\t? this.text.replace(uncheckedItem, checkedItem)\n\t\t\t\t\t: this.text.replace(checkedItem, uncheckedItem)\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style lang=\"scss\">\ntextarea {\n\twidth: 100%;\n\theight: 200px;\n}\n</style>\n```\n\n### Usage with NcRichContenteditable\n\nSee [NcRichContenteditable](#/Components/NcRichContenteditable) documentation for more information\n\n```vue\n<template>\n\t<div>\n\t\t<NcRichContenteditable :value.sync=\"message\"\n\t\t\t:auto-complete=\"autoComplete\"\n\t\t\t:maxlength=\"100\"\n\t\t\t:user-data=\"userData\"\n\t\t\tplaceholder=\"Try mentioning user @Test01 or inserting emoji :smile\"\n\t\t\t@submit=\"onSubmit\" />\n\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"autolink\" type=\"checkbox\">Autolink</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"useMarkdown\" type=\"checkbox\">Use Markdown</NcCheckboxRadioSwitch>\n\n\t\t<NcRichText :text=\"text\"\n\t\t\t:autolink=\"autolink\"\n\t\t\t:arguments=\"userMentions\"\n\t\t\t:use-markdown=\"useMarkdown\" />\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tmessage: '',\n\t\t\t\tautolink: true,\n\t\t\t\tuseMarkdown: true,\n\t\t\t\tuserData: {\n\t\t\t\t\tTest01: {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test01',\n\t\t\t\t\t\tlabel: 'Test01',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t},\n\t\t\t\t\tTest02: {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test02',\n\t\t\t\t\t\tlabel: 'Test02',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\t\tmessage: 'Visiting London',\n\t\t\t\t\t\t\tstatus: 'away',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t\t},\n\t\t\t\t\t'Test@User': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test@User',\n\t\t\t\t\t\tlabel: 'Test 03',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\t\tmessage: 'Having space in my name',\n\t\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t\t},\n\t\t\t\t\t'Test Offline': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test Offline',\n\t\t\t\t\t\tlabel: 'Test Offline',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\tmessage: null,\n\t\t\t\t\t\t\tstatus: 'offline',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: null,\n\t\t\t\t\t},\n\t\t\t\t\t'Test DND': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test DND',\n\t\t\t\t\t\tlabel: 'Test DND',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\tmessage: 'Out sick',\n\t\t\t\t\t\t\tstatus: 'dnd',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Out sick',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tuserMentions: {\n\t\t\t\t\t'user-1': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test01',\n\t\t\t\t\t\t\tuser: 'Test01',\n\t\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-2': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test02',\n\t\t\t\t\t\t\tuser: 'Test02',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-3': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test 03',\n\t\t\t\t\t\t\tuser: 'Test@User',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-4': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test Offline',\n\t\t\t\t\t\t\tuser: 'Test Offline',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-5': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test DND',\n\t\t\t\t\t\t\tuser: 'Test DND',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\tcomputed: {\n\t\t\ttext() {\n\t\t\t\treturn this.message\n\t\t\t\t\t\t.replace('@Test01', '{user-1}')\n\t\t\t\t\t\t.replace('@Test02', '{user-2}')\n\t\t\t\t\t\t.replace('@Test@User', '{user-3}')\n\t\t\t\t\t\t.replace('@\"Test Offline\"', '{user-4}')\n\t\t\t\t\t\t.replace('@\"Test DND\"', '{user-5}')\n\t\t\t},\n\t\t},\n\t\tmethods: {\n\t\t\tautoComplete(search, callback) {\n\t\t\t\tcallback(Object.values(this.userData))\n\t\t\t},\n\t\t\tonSubmit() {\n\t\t\t\talert(this.message)\n\t\t\t}\n\t\t}\n\t}\n</script>\n```\n</docs>\n\n<script>\nimport NcReferenceList from './NcReferenceList.vue'\nimport NcCheckboxRadioSwitch from '../NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue'\nimport { getRoute, remarkAutolink } from './autolink.js'\nimport { remarkPlaceholder, prepareTextNode } from './placeholder.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport { unified } from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkGfm from 'remark-gfm'\nimport breaks from 'remark-breaks'\nimport remark2rehype from 'remark-rehype'\nimport rehype2react from 'rehype-react'\nimport rehypeExternalLinks from 'rehype-external-links'\nimport { RouterLink } from 'vue-router'\n\nexport default {\n\tname: 'NcRichText',\n\tcomponents: {\n\t\tNcReferenceList,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\targuments: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {\n\t\t\t\treturn {}\n\t\t\t},\n\t\t},\n\t\treferenceLimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\t/** Provide data upfront to avoid extra http request */\n\t\treferences: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\tmarkdownCssClasses: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\ta: 'rich-text--external-link',\n\t\t\t\t\tol: 'rich-text--ordered-list',\n\t\t\t\t\tul: 'rich-text--un-ordered-list',\n\t\t\t\t\tli: 'rich-text--list-item',\n\t\t\t\t\tstrong: 'rich-text--strong',\n\t\t\t\t\tem: 'rich-text--italic',\n\t\t\t\t\th1: 'rich-text--heading rich-text--heading-1',\n\t\t\t\t\th2: 'rich-text--heading rich-text--heading-2',\n\t\t\t\t\th3: 'rich-text--heading rich-text--heading-3',\n\t\t\t\t\th4: 'rich-text--heading rich-text--heading-4',\n\t\t\t\t\th5: 'rich-text--heading rich-text--heading-5',\n\t\t\t\t\th6: 'rich-text--heading rich-text--heading-6',\n\t\t\t\t\thr: 'rich-text--hr',\n\t\t\t\t\ttable: 'rich-text--table',\n\t\t\t\t\tpre: 'rich-text--pre',\n\t\t\t\t\tcode: 'rich-text--code',\n\t\t\t\t\tblockquote: 'rich-text--blockquote',\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tuseMarkdown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide GitHub Flavored Markdown syntax */\n\t\tuseExtendedMarkdown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide event from rendered markdown inputs */\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tautolink: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\temits: ['interact:todo'],\n\tmethods: {\n\t\trenderPlaintext(h) {\n\t\t\tconst context = this\n\t\t\tconst placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(entry, index, list) {\n\t\t\t\tconst matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i)\n\t\t\t\t// just return plain string nodes as text\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn prepareTextNode({ h, context }, entry)\n\t\t\t\t}\n\t\t\t\t// return component instance if argument is an object\n\t\t\t\tconst argumentId = matches[1]\n\t\t\t\tconst argument = context.arguments[argumentId]\n\t\t\t\tif (typeof argument === 'object') {\n\t\t\t\t\tconst { component, props } = argument\n\t\t\t\t\treturn h(component, {\n\t\t\t\t\t\tprops,\n\t\t\t\t\t\tclass: 'rich-text--component',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (argument) {\n\t\t\t\t\treturn h('span', { class: 'rich-text--fallback' }, argument)\n\t\t\t\t}\n\t\t\t\treturn entry\n\t\t\t})\n\t\t\treturn h('div', { class: 'rich-text--wrapper' }, [\n\t\t\t\th('div', {}, placeholders.flat()),\n\t\t\t\tthis.referenceLimit > 0\n\t\t\t\t\t? h('div', { class: 'rich-text--reference-widget' }, [\n\t\t\t\t\t\th(NcReferenceList, { props: { text: this.text, referenceData: this.references } }),\n\t\t\t\t\t])\n\t\t\t\t\t: null,\n\t\t\t])\n\t\t},\n\t\trenderMarkdown(h) {\n\t\t\tconst renderedMarkdown = unified()\n\t\t\t\t.use(remarkParse)\n\t\t\t\t.use(remarkAutolink, {\n\t\t\t\t\tautolink: this.autolink,\n\t\t\t\t\tuseMarkdown: this.useMarkdown,\n\t\t\t\t\tuseExtendedMarkdown: this.useExtendedMarkdown,\n\t\t\t\t})\n\t\t\t\t.use(this.useExtendedMarkdown ? remarkGfm : undefined)\n\t\t\t\t.use(breaks)\n\t\t\t\t.use(remark2rehype, {\n\t\t\t\t\thandlers: {\n\t\t\t\t\t\tcomponent(toHast, node) {\n\t\t\t\t\t\t\treturn toHast(node, node.component, { value: node.value })\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t// .use(rehypeAddClasses, this.markdownCssClasses)\n\t\t\t\t.use(remarkPlaceholder)\n\t\t\t\t.use(rehypeExternalLinks, {\n\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\trel: ['noopener noreferrer'],\n\t\t\t\t})\n\t\t\t\t.use(rehype2react, {\n\t\t\t\t\tcreateElement: (tag, attrs, children) => {\n\t\t\t\t\t\t// unescape special symbol \"<\" for simple text nodes\n\t\t\t\t\t\tchildren = children?.map(child => typeof child === 'string'\n\t\t\t\t\t\t\t? child.replace(/&lt;/gmi, '<')\n\t\t\t\t\t\t\t: child,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (!tag.startsWith('#')) {\n\t\t\t\t\t\t\tif (this.useExtendedMarkdown) {\n\t\t\t\t\t\t\t\tif (tag === 'li' && Array.isArray(children)\n\t\t\t\t\t\t\t\t\t&& children[0].tag === 'input'\n\t\t\t\t\t\t\t\t\t&& children[0].data.attrs.type === 'checkbox') {\n\t\t\t\t\t\t\t\t\tconst [inputNode, , label] = children\n\t\t\t\t\t\t\t\t\tconst id = 'markdown-input-' + GenRandomId(5)\n\t\t\t\t\t\t\t\t\tconst inputComponent = h(NcCheckboxRadioSwitch, {\n\t\t\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\t\t\t...inputNode.data.attrs,\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: !this.interactive,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\t\t\t\t'update:checked': (value) => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.$emit('interact:todo', { id, label, value })\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}, [label])\n\t\t\t\t\t\t\t\t\treturn h(tag, attrs, [inputComponent])\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (tag === 'a') {\n\t\t\t\t\t\t\t\tconst route = getRoute(this.$router, attrs.attrs.href)\n\t\t\t\t\t\t\t\tif (route) {\n\t\t\t\t\t\t\t\t\tdelete attrs.attrs.href\n\t\t\t\t\t\t\t\t\tdelete attrs.attrs.target\n\n\t\t\t\t\t\t\t\t\treturn h(RouterLink, {\n\t\t\t\t\t\t\t\t\t\t...attrs,\n\t\t\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\t\t\tto: route,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn h(tag, attrs, children)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst placeholder = this.arguments[tag.slice(1)]\n\t\t\t\t\t\tif (!placeholder) {\n\t\t\t\t\t\t\treturn h('span', { ...{ attrs }, ...{ class: 'rich-text--fallback' } }, [`{${tag.slice(1)}}`])\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!placeholder.component) {\n\t\t\t\t\t\t\treturn h('span', attrs, [placeholder])\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn h(\n\t\t\t\t\t\t\tplaceholder.component,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattrs,\n\t\t\t\t\t\t\t\tprops: placeholder.props,\n\t\t\t\t\t\t\t\tclass: 'rich-text--component',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\tprefix: false,\n\t\t\t\t})\n\t\t\t\t.processSync(this.text\n\t\t\t\t\t// escape special symbol \"<\" to not treat text as HTML\n\t\t\t\t\t.replace(/</gmi, '&lt;')\n\t\t\t\t\t// unescape special symbol \">\" to parse blockquotes\n\t\t\t\t\t.replace(/&gt;/gmi, '>'),\n\t\t\t\t)\n\t\t\t\t.result\n\n\t\t\treturn h('div', { class: 'rich-text--wrapper rich-text--wrapper-markdown' }, [\n\t\t\t\trenderedMarkdown,\n\t\t\t\tthis.referenceLimit > 0\n\t\t\t\t\t? h('div', { class: 'rich-text--reference-widget' }, [\n\t\t\t\t\t\th(NcReferenceList, { props: { text: this.text, referenceData: this.references } }),\n\t\t\t\t\t])\n\t\t\t\t\t: null,\n\t\t\t])\n\t\t},\n\t},\n\trender(h) {\n\t\treturn this.useMarkdown || this.useExtendedMarkdown\n\t\t\t? this.renderMarkdown(h)\n\t\t\t: this.renderPlaintext(h)\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n/* stylelint-disable-next-line scss/at-import-partial-extension */\n@import './richtext.scss';\n\na:not(.rich-text--component) {\n\ttext-decoration: underline;\n}\n</style>\n"],"names":["_sfc_main","NcReferenceWidget","reference","URL_PATTERN","response","error","match","axios","generateOcsUrl","remarkPlaceholder","ast","visit","node","visitor","index","parent","placeholders","entry","list","matches","u","component","prepareTextNode","h","context","text","parseUrl","props","componentClass","NcReferenceList","argumentId","argument","renderedMarkdown","unified","remarkParse","remarkAutolink","remarkGfm","breaks","remark2rehype","toHast","rehypeExternalLinks","rehype2react","tag","attrs","children","child","inputNode","label","id","GenRandomId","inputComponent","NcCheckboxRadioSwitch","value","route","getRoute","RouterLink","placeholder"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  require('../assets/NcSelect-GsLmwj9w.css');
2
2
  "use strict";
3
3
  require("@nextcloud/vue-select/dist/vue-select.css");
4
- const f = require("vue"), a = require("@nextcloud/vue-select"), s = require("@floating-ui/dom"), r = require("./_l10n-Od-4xzJA.cjs"), b = require("./ChevronDown-Hc_DTRav.cjs"), y = require("./Close-dotk0707.cjs"), m = require("../Components/NcEllipsisedOption.cjs"), h = require("./NcListItemIcon-BnoIbVbD.cjs"), _ = require("../Components/NcLoadingIcon.cjs"), c = require("./GenRandomId-ULxaMkkr.cjs"), g = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), L = (t) => t && t.__esModule ? t : { default: t }, p = /* @__PURE__ */ L(f);
5
- r.register(r.t14);
4
+ const f = require("vue"), o = require("@nextcloud/vue-select"), r = require("@floating-ui/dom"), s = require("./_l10n-Od-4xzJA.cjs"), b = require("./ChevronDown-Hc_DTRav.cjs"), y = require("./Close-dotk0707.cjs"), m = require("../Components/NcEllipsisedOption.cjs"), h = require("./NcListItemIcon-BnoIbVbD.cjs"), _ = require("../Components/NcLoadingIcon.cjs"), c = require("./GenRandomId-ULxaMkkr.cjs"), g = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), L = (t) => t && t.__esModule ? t : { default: t }, p = /* @__PURE__ */ L(f);
5
+ s.register(s.t14);
6
6
  const S = {
7
7
  name: "NcSelect",
8
8
  components: {
@@ -10,18 +10,18 @@ const S = {
10
10
  NcEllipsisedOption: m,
11
11
  NcListItemIcon: h.NcListItemIcon,
12
12
  NcLoadingIcon: _,
13
- VueSelect: a.VueSelect
13
+ VueSelect: o.VueSelect
14
14
  },
15
15
  props: {
16
16
  // Add VueSelect props to $props
17
- ...a.VueSelect.props,
18
- ...a.VueSelect.mixins.reduce((t, e) => ({ ...t, ...e.props }), {}),
17
+ ...o.VueSelect.props,
18
+ ...o.VueSelect.mixins.reduce((t, e) => ({ ...t, ...e.props }), {}),
19
19
  /**
20
20
  * `aria-label` for the clear input button
21
21
  */
22
22
  ariaLabelClearSelected: {
23
23
  type: String,
24
- default: r.t("Clear selected")
24
+ default: s.t("Clear selected")
25
25
  },
26
26
  /**
27
27
  * `aria-label` for the search input
@@ -37,7 +37,7 @@ const S = {
37
37
  */
38
38
  ariaLabelListbox: {
39
39
  type: String,
40
- default: r.t("Options")
40
+ default: s.t("Options")
41
41
  },
42
42
  /**
43
43
  * Allows to customize the `aria-label` for the deselect-option button
@@ -46,7 +46,7 @@ const S = {
46
46
  */
47
47
  ariaLabelDeselectOption: {
48
48
  type: Function,
49
- default: (t) => r.t("Deselect {option}", { option: t })
49
+ default: (t) => s.t("Deselect {option}", { option: t })
50
50
  },
51
51
  /**
52
52
  * Append the dropdown element to the end of the body
@@ -268,8 +268,8 @@ const S = {
268
268
  *
269
269
  * @param {KeyboardEvent} event - default keydown event handler
270
270
  */
271
- 27: (o) => {
272
- e.open && o.stopPropagation(), t[27](o);
271
+ 27: (n) => {
272
+ e.open && n.stopPropagation(), t[27](n);
273
273
  }
274
274
  };
275
275
  }
@@ -324,6 +324,13 @@ const S = {
324
324
  type: [String, Number, Object, Array],
325
325
  default: null
326
326
  },
327
+ /**
328
+ * Enable if a value is required for native form validation
329
+ */
330
+ required: {
331
+ type: Boolean,
332
+ default: !1
333
+ },
327
334
  /**
328
335
  * Any available prop
329
336
  *
@@ -346,15 +353,18 @@ const S = {
346
353
  };
347
354
  },
348
355
  computed: {
356
+ inputRequired() {
357
+ return this.required ? this.value === null || Array.isArray(this.value) && this.value.length === 0 : null;
358
+ },
349
359
  localCalculatePosition() {
350
- return this.calculatePosition !== null ? this.calculatePosition : (t, e, { width: o }) => {
351
- t.style.width = o;
360
+ return this.calculatePosition !== null ? this.calculatePosition : (t, e, { width: n }) => {
361
+ t.style.width = n;
352
362
  const l = {
353
363
  name: "addClass",
354
364
  fn(i) {
355
365
  return t.classList.add("vs__dropdown-menu--floating"), {};
356
366
  }
357
- }, n = {
367
+ }, a = {
358
368
  name: "togglePlacementClass",
359
369
  fn({ placement: i }) {
360
370
  return e.$el.classList.toggle(
@@ -366,15 +376,15 @@ const S = {
366
376
  ), {};
367
377
  }
368
378
  }, u = () => {
369
- s.computePosition(e.$refs.toggle, t, {
379
+ r.computePosition(e.$refs.toggle, t, {
370
380
  placement: this.placement,
371
381
  middleware: [
372
- s.offset(-1),
382
+ r.offset(-1),
373
383
  l,
374
- n,
384
+ a,
375
385
  // Match popperjs default collision prevention behavior by appending the following middleware in order
376
- s.flip(),
377
- s.shift({ limiter: s.limitShift() })
386
+ r.flip(),
387
+ r.shift({ limiter: r.limitShift() })
378
388
  ]
379
389
  }).then(({ x: i, y: d }) => {
380
390
  Object.assign(t.style, {
@@ -384,7 +394,7 @@ const S = {
384
394
  });
385
395
  });
386
396
  };
387
- return s.autoUpdate(
397
+ return r.autoUpdate(
388
398
  e.$refs.toggle,
389
399
  t,
390
400
  u
@@ -393,22 +403,22 @@ const S = {
393
403
  },
394
404
  localFilterBy() {
395
405
  const t = /[^<]*<([^>]+)/;
396
- return this.filterBy !== null ? this.filterBy : this.userSelect ? (e, o, l) => {
397
- const n = l.match(t);
398
- return n && e.subname?.toLocaleLowerCase?.()?.indexOf(n[1].toLocaleLowerCase()) > -1 || `${o} ${e.subname}`.toLocaleLowerCase().indexOf(l.toLocaleLowerCase()) > -1;
399
- } : a.VueSelect.props.filterBy.default;
406
+ return this.filterBy !== null ? this.filterBy : this.userSelect ? (e, n, l) => {
407
+ const a = l.match(t);
408
+ return a && e.subname?.toLocaleLowerCase?.()?.indexOf(a[1].toLocaleLowerCase()) > -1 || `${n} ${e.subname}`.toLocaleLowerCase().indexOf(l.toLocaleLowerCase()) > -1;
409
+ } : o.VueSelect.props.filterBy.default;
400
410
  },
401
411
  localLabel() {
402
- return this.label !== null ? this.label : this.userSelect ? "displayName" : a.VueSelect.props.label.default;
412
+ return this.label !== null ? this.label : this.userSelect ? "displayName" : o.VueSelect.props.label.default;
403
413
  },
404
414
  propsToForward() {
405
415
  const t = [
406
- ...Object.keys(a.VueSelect.props),
407
- ...a.VueSelect.mixins.flatMap((l) => Object.keys(l.props ?? {}))
416
+ ...Object.keys(o.VueSelect.props),
417
+ ...o.VueSelect.mixins.flatMap((l) => Object.keys(l.props ?? {}))
408
418
  ];
409
419
  return {
410
420
  ...Object.fromEntries(
411
- Object.entries(this.$props).filter(([l, n]) => t.includes(l))
421
+ Object.entries(this.$props).filter(([l, a]) => t.includes(l))
412
422
  ),
413
423
  // Custom overrides of vue-select props
414
424
  calculatePosition: this.localCalculatePosition,
@@ -421,44 +431,44 @@ const S = {
421
431
  !this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox && p.default.util.warn("[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`."), this.inputLabel && this.ariaLabelCombobox && p.default.util.warn("[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.");
422
432
  },
423
433
  methods: {
424
- t: r.t
434
+ t: s.t
425
435
  }
426
436
  };
427
437
  var C = function() {
428
- var e = this, o = e._self._c;
429
- return o("VueSelect", e._g(e._b({ staticClass: "select", class: {
438
+ var e = this, n = e._self._c;
439
+ return n("VueSelect", e._g(e._b({ staticClass: "select", class: {
430
440
  "select--no-wrap": e.noWrap,
431
441
  "user-select": e.userSelect
432
442
  }, on: { search: (l) => e.search = l }, scopedSlots: e._u([!e.labelOutside && e.inputLabel ? { key: "header", fn: function() {
433
- return [o("label", { staticClass: "select__label", attrs: { for: e.inputId } }, [e._v(" " + e._s(e.inputLabel) + " ")])];
434
- }, proxy: !0 } : null, { key: "search", fn: function({ attributes: l, events: n }) {
435
- return [o("input", e._g(e._b({ class: ["vs__search", e.inputClass] }, "input", l, !1), n))];
443
+ return [n("label", { staticClass: "select__label", attrs: { for: e.inputId } }, [e._v(" " + e._s(e.inputLabel) + " ")])];
444
+ }, proxy: !0 } : null, { key: "search", fn: function({ attributes: l, events: a }) {
445
+ return [n("input", e._g(e._b({ class: ["vs__search", e.inputClass], attrs: { required: e.inputRequired } }, "input", l, !1), a))];
436
446
  } }, { key: "open-indicator", fn: function({ attributes: l }) {
437
- return [o("ChevronDown", e._b({ style: {
447
+ return [n("ChevronDown", e._b({ style: {
438
448
  cursor: e.disabled ? null : "pointer"
439
449
  }, attrs: { "fill-color": "var(--vs-controls-color)", size: 26 } }, "ChevronDown", l, !1))];
440
450
  } }, { key: "option", fn: function(l) {
441
- return [e.userSelect ? o("NcListItemIcon", e._b({ attrs: { "avatar-size": 24, name: l[e.localLabel], search: e.search } }, "NcListItemIcon", l, !1)) : o("NcEllipsisedOption", { attrs: { name: String(l[e.localLabel]), search: e.search } })];
451
+ return [e.userSelect ? n("NcListItemIcon", e._b({ attrs: { "avatar-size": 24, name: l[e.localLabel], search: e.search } }, "NcListItemIcon", l, !1)) : n("NcEllipsisedOption", { attrs: { name: String(l[e.localLabel]), search: e.search } })];
442
452
  } }, { key: "selected-option", fn: function(l) {
443
- return [e.userSelect ? o("NcListItemIcon", e._b({ attrs: { "avatar-size": 24, name: l[e.localLabel], search: e.search } }, "NcListItemIcon", l, !1)) : o("NcEllipsisedOption", { attrs: { name: String(l[e.localLabel]), search: e.search } })];
453
+ return [e.userSelect ? n("NcListItemIcon", e._b({ attrs: { "avatar-size": 24, name: l[e.localLabel], search: e.search } }, "NcListItemIcon", l, !1)) : n("NcEllipsisedOption", { attrs: { name: String(l[e.localLabel]), search: e.search } })];
444
454
  } }, { key: "spinner", fn: function(l) {
445
- return [l.loading ? o("NcLoadingIcon") : e._e()];
455
+ return [l.loading ? n("NcLoadingIcon") : e._e()];
446
456
  } }, { key: "no-options", fn: function() {
447
457
  return [e._v(" " + e._s(e.t("No results")) + " ")];
448
- }, proxy: !0 }, e._l(e.$scopedSlots, function(l, n) {
449
- return { key: n, fn: function(u) {
450
- return [e._t(n, null, null, u)];
458
+ }, proxy: !0 }, e._l(e.$scopedSlots, function(l, a) {
459
+ return { key: a, fn: function(u) {
460
+ return [e._t(a, null, null, u)];
451
461
  } };
452
462
  })], null, !0) }, "VueSelect", e.propsToForward, !1), e.$listeners));
453
- }, I = [], N = /* @__PURE__ */ g.normalizeComponent(
463
+ }, v = [], I = /* @__PURE__ */ g.normalizeComponent(
454
464
  S,
455
465
  C,
456
- I,
466
+ v,
457
467
  !1,
458
468
  null,
459
469
  null,
460
470
  null,
461
471
  null
462
472
  );
463
- const O = N.exports;
464
- exports.NcSelect = O;
473
+ const N = I.exports;
474
+ exports.NcSelect = N;