@quoreadmin/ui 1.10.0 → 1.10.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.
Files changed (286) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index105.js +2 -2
  3. package/dist/index111.js +1 -1
  4. package/dist/index115.js +2 -2
  5. package/dist/index119.js +3 -3
  6. package/dist/index131.js +91 -83
  7. package/dist/{index135.js → index136.js} +1 -1
  8. package/dist/{index137.js → index138.js} +2 -2
  9. package/dist/{index146.js → index147.js} +3 -3
  10. package/dist/{index148.js → index149.js} +1 -1
  11. package/dist/{index150.js → index151.js} +6 -6
  12. package/dist/{index161.js → index162.js} +1 -1
  13. package/dist/{index164.js → index165.js} +1 -1
  14. package/dist/{index168.js → index169.js} +9 -9
  15. package/dist/index172.js +111 -492
  16. package/dist/index173.js +471 -5498
  17. package/dist/index174.js +5511 -80
  18. package/dist/index175.js +86 -856
  19. package/dist/index176.js +844 -21
  20. package/dist/index177.js +23 -265
  21. package/dist/index178.js +256 -126
  22. package/dist/index179.js +146 -1195
  23. package/dist/index180.js +1139 -712
  24. package/dist/index181.js +704 -1240
  25. package/dist/index182.js +1280 -248
  26. package/dist/index183.js +266 -96
  27. package/dist/index184.js +106 -2
  28. package/dist/index185.js +2 -1376
  29. package/dist/index186.js +1378 -0
  30. package/dist/index188.js +12 -12
  31. package/dist/index189.js +10 -10
  32. package/dist/index190.js +12 -12
  33. package/dist/index191.js +14 -21
  34. package/dist/index192.js +23 -757
  35. package/dist/index193.js +759 -1144
  36. package/dist/index194.js +1144 -1234
  37. package/dist/index195.js +1205 -11248
  38. package/dist/index196.js +11277 -36
  39. package/dist/index197.js +36 -44
  40. package/dist/index198.js +42 -1226
  41. package/dist/index199.js +1230 -0
  42. package/dist/index201.js +5830 -99
  43. package/dist/index202.js +188 -16
  44. package/dist/index203.js +25 -8
  45. package/dist/index204.js +16 -76
  46. package/dist/index205.js +74 -249
  47. package/dist/index206.js +229 -13660
  48. package/dist/index207.js +13684 -27
  49. package/dist/index208.js +26 -62
  50. package/dist/index209.js +40 -215
  51. package/dist/index210.js +206 -279
  52. package/dist/index211.js +281 -265
  53. package/dist/index212.js +293 -31
  54. package/dist/index213.js +81 -109
  55. package/dist/index214.js +404 -33
  56. package/dist/index215.js +22 -26
  57. package/dist/index216.js +122 -31
  58. package/dist/index217.js +35 -48
  59. package/dist/index218.js +80 -43
  60. package/dist/index219.js +19 -3
  61. package/dist/index220.js +20 -9
  62. package/dist/index221.js +19 -18
  63. package/dist/index222.js +20 -10
  64. package/dist/index223.js +20 -10
  65. package/dist/index224.js +3633 -36
  66. package/dist/index225.js +55 -21
  67. package/dist/index226.js +73 -84
  68. package/dist/index227.js +50 -405
  69. package/dist/index228.js +214 -21
  70. package/dist/index229.js +10 -161
  71. package/dist/index230.js +57 -20
  72. package/dist/index231.js +61 -20
  73. package/dist/index232.js +54 -22
  74. package/dist/index233.js +66 -190
  75. package/dist/index234.js +714 -58
  76. package/dist/index235.js +39 -31
  77. package/dist/index236.js +60 -36
  78. package/dist/index237.js +11 -161
  79. package/dist/index238.js +681 -204
  80. package/dist/index239.js +819 -36
  81. package/dist/index240.js +33 -10
  82. package/dist/index241.js +109 -120
  83. package/dist/index242.js +34 -36
  84. package/dist/index243.js +26 -80
  85. package/dist/index244.js +35 -19
  86. package/dist/index245.js +50 -19
  87. package/dist/index246.js +42 -19
  88. package/dist/index247.js +3 -19
  89. package/dist/index248.js +9 -22
  90. package/dist/index249.js +18 -21
  91. package/dist/index250.js +10 -20
  92. package/dist/index251.js +9 -835
  93. package/dist/index252.js +34 -697
  94. package/dist/index253.js +21 -176
  95. package/dist/index254.js +160 -21
  96. package/dist/index255.js +228 -20
  97. package/dist/index256.js +36 -19
  98. package/dist/index257.js +10 -3
  99. package/dist/index258.js +21 -186
  100. package/dist/index259.js +21 -132
  101. package/dist/index260.js +20 -1223
  102. package/dist/index261.js +836 -20
  103. package/dist/index262.js +701 -21
  104. package/dist/index263.js +176 -22
  105. package/dist/index264.js +15 -22
  106. package/dist/index265.js +7 -7
  107. package/dist/index266.js +13 -13
  108. package/dist/index267.js +2 -1
  109. package/dist/index268.js +187 -2
  110. package/dist/index269.js +120 -3623
  111. package/dist/index270.js +155 -49
  112. package/dist/index271.js +1214 -68
  113. package/dist/index272.js +20 -52
  114. package/dist/index273.js +22 -215
  115. package/dist/index274.js +20 -10
  116. package/dist/index275.js +22 -57
  117. package/dist/index276.js +29 -61
  118. package/dist/index277.js +20 -54
  119. package/dist/index278.js +20 -75
  120. package/dist/index279.js +2 -726
  121. package/dist/index280.js +2 -42
  122. package/dist/index281.js +22 -64
  123. package/dist/index282.js +199 -11
  124. package/dist/index283.js +63 -698
  125. package/dist/index284.js +33 -819
  126. package/dist/index285.js +34 -247
  127. package/dist/index286.js +253 -8
  128. package/dist/index287.js +8 -138
  129. package/dist/index288.js +123 -68
  130. package/dist/index289.js +83 -3
  131. package/dist/index290.js +2 -27
  132. package/dist/index291.js +71 -46
  133. package/dist/index292.js +1528 -73
  134. package/dist/index293.js +386 -26
  135. package/dist/index294.js +2731 -22
  136. package/dist/index295.js +85 -21
  137. package/dist/index296.js +3792 -16
  138. package/dist/index297.js +60 -17
  139. package/dist/index298.js +15 -23
  140. package/dist/index299.js +84 -2
  141. package/dist/index300.js +190 -250
  142. package/dist/index301.js +244 -4
  143. package/dist/index302.js +3 -140
  144. package/dist/index303.js +24 -70
  145. package/dist/index304.js +50 -83
  146. package/dist/index305.js +25 -28
  147. package/dist/index306.js +21 -15
  148. package/dist/index307.js +21 -74
  149. package/dist/index308.js +16 -4
  150. package/dist/index309.js +17 -2
  151. package/dist/index310.js +22 -82
  152. package/dist/index311.js +77 -51
  153. package/dist/index312.js +21 -5
  154. package/dist/index313.js +934 -4
  155. package/dist/index314.js +21 -178
  156. package/dist/index315.js +19 -62
  157. package/dist/index316.js +20 -75
  158. package/dist/index317.js +69 -1534
  159. package/dist/index318.js +19 -386
  160. package/dist/index319.js +19 -2731
  161. package/dist/index320.js +21 -85
  162. package/dist/index321.js +22 -3792
  163. package/dist/index322.js +63 -60
  164. package/dist/index323.js +256 -73
  165. package/dist/index324.js +5 -21
  166. package/dist/index325.js +130 -925
  167. package/dist/index326.js +72 -21
  168. package/dist/index327.js +85 -18
  169. package/dist/index328.js +28 -19
  170. package/dist/index329.js +15 -68
  171. package/dist/index330.js +75 -19
  172. package/dist/index331.js +4 -19
  173. package/dist/index332.js +2 -22
  174. package/dist/index333.js +82 -21
  175. package/dist/index334.js +53 -63
  176. package/dist/index335.js +6 -15
  177. package/dist/index336.js +4 -83
  178. package/dist/index337.js +165 -188
  179. package/dist/index338.js +56 -239
  180. package/dist/index339.js +75 -9
  181. package/dist/index340.js +36 -12
  182. package/dist/index341.js +8 -54
  183. package/dist/index342.js +12 -11
  184. package/dist/index343.js +52 -11
  185. package/dist/index344.js +9 -55
  186. package/dist/index345.js +13 -51
  187. package/dist/index346.js +51 -24
  188. package/dist/index347.js +52 -2
  189. package/dist/index348.js +31 -5
  190. package/dist/index349.js +2 -2
  191. package/dist/index350.js +4 -22
  192. package/dist/index351.js +2 -41
  193. package/dist/index352.js +23 -2
  194. package/dist/index353.js +40 -10
  195. package/dist/index354.js +2 -20
  196. package/dist/index355.js +10 -9
  197. package/dist/index356.js +20 -10
  198. package/dist/index357.js +9 -16
  199. package/dist/index358.js +10 -2
  200. package/dist/index359.js +16 -8
  201. package/dist/index360.js +2 -10
  202. package/dist/index361.js +8 -13
  203. package/dist/index362.js +9 -36
  204. package/dist/index363.js +14 -19
  205. package/dist/index364.js +19 -56
  206. package/dist/index365.js +19 -28
  207. package/dist/index366.js +62 -5
  208. package/dist/index367.js +36 -51
  209. package/dist/index368.js +19 -7
  210. package/dist/index369.js +56 -11
  211. package/dist/index370.js +29 -7
  212. package/dist/index371.js +6 -27
  213. package/dist/index372.js +52 -2
  214. package/dist/index373.js +6 -69
  215. package/dist/index374.js +11 -166
  216. package/dist/index375.js +7 -20
  217. package/dist/index376.js +28 -20
  218. package/dist/index377.js +2 -64
  219. package/dist/index378.js +70 -37
  220. package/dist/index379.js +166 -12
  221. package/dist/index38.js +3 -2
  222. package/dist/index380.js +101 -7
  223. package/dist/index381.js +90 -30
  224. package/dist/index382.js +98 -11
  225. package/dist/index383.js +17 -4
  226. package/dist/index384.js +30 -3
  227. package/dist/index385.js +10 -11
  228. package/dist/index386.js +3 -4
  229. package/dist/index387.js +4 -33
  230. package/dist/index388.js +12 -30
  231. package/dist/index389.js +7 -28
  232. package/dist/index39.js +1 -1
  233. package/dist/index390.js +12 -61
  234. package/dist/index391.js +4 -100
  235. package/dist/index392.js +33 -17
  236. package/dist/index393.js +31 -91
  237. package/dist/index394.js +27 -97
  238. package/dist/index395.js +61 -3
  239. package/dist/index396.js +3 -2
  240. package/dist/index397.js +2 -2
  241. package/dist/index398.js +2 -17
  242. package/dist/index399.js +15 -11
  243. package/dist/index40.js +1 -1
  244. package/dist/index400.js +13 -6
  245. package/dist/index401.js +6 -32
  246. package/dist/index402.js +34 -0
  247. package/dist/index41.js +1 -1
  248. package/dist/index42.js +1 -1
  249. package/dist/index43.js +1 -1
  250. package/dist/index44.js +1 -1
  251. package/dist/index45.js +1 -1
  252. package/dist/index46.js +1 -1
  253. package/dist/index47.js +1 -1
  254. package/dist/index48.js +1 -1
  255. package/dist/index49.js +2 -2
  256. package/dist/index50.js +1 -1
  257. package/dist/index51.js +2 -2
  258. package/dist/index52.js +1 -1
  259. package/dist/index53.js +1 -1
  260. package/dist/index54.js +1 -1
  261. package/dist/index55.js +1 -1
  262. package/dist/index57.js +2 -2
  263. package/dist/index59.js +1 -1
  264. package/dist/index61.js +5 -5
  265. package/dist/index62.js +1 -1
  266. package/dist/index74.js +2 -2
  267. package/dist/index78.js +1 -1
  268. package/dist/index83.js +1 -1
  269. package/dist/index88.js +1 -1
  270. package/dist/index90.js +3 -3
  271. package/dist/index92.js +2 -2
  272. package/dist/index98.js +2 -2
  273. package/dist/src/components/page-layout/page-layout.vue.d.ts +3 -0
  274. package/package.json +1 -1
  275. package/dist/index171.js +0 -116
  276. package/dist/index187.js +0 -20
  277. package/dist/index200.js +0 -5940
  278. /package/dist/{index133.js → index134.js} +0 -0
  279. /package/dist/{index140.js → index141.js} +0 -0
  280. /package/dist/{index142.js → index143.js} +0 -0
  281. /package/dist/{index144.js → index145.js} +0 -0
  282. /package/dist/{index152.js → index153.js} +0 -0
  283. /package/dist/{index154.js → index155.js} +0 -0
  284. /package/dist/{index156.js → index157.js} +0 -0
  285. /package/dist/{index159.js → index160.js} +0 -0
  286. /package/dist/{index166.js → index167.js} +0 -0
package/dist/index211.js CHANGED
@@ -1,297 +1,313 @@
1
- import { Extension as l, isNodeEmpty as v, callOrReturn as P, getExtensionField as S, isNodeSelection as z } from "./index269.js";
2
- import { Plugin as p, PluginKey as m } from "./index284.js";
3
- import { dropCursor as E } from "./index336.js";
4
- import { Decoration as y, DecorationSet as f } from "./index321.js";
5
- import { gapCursor as N } from "./index337.js";
6
- import { history as A, redo as M, undo as O } from "./index338.js";
7
- l.create({
8
- name: "characterCount",
9
- addOptions() {
10
- return {
11
- limit: null,
12
- mode: "textSize",
13
- textCounter: (e) => e.length,
14
- wordCounter: (e) => e.split(" ").filter((t) => t !== "").length
15
- };
16
- },
17
- addStorage() {
18
- return {
19
- characters: () => 0,
20
- words: () => 0
21
- };
22
- },
23
- onBeforeCreate() {
24
- this.storage.characters = (e) => {
25
- const t = e?.node || this.editor.state.doc;
26
- if ((e?.mode || this.options.mode) === "textSize") {
27
- const r = t.textBetween(0, t.content.size, void 0, " ");
28
- return this.options.textCounter(r);
29
- }
30
- return t.nodeSize;
31
- }, this.storage.words = (e) => {
32
- const t = e?.node || this.editor.state.doc, s = t.textBetween(0, t.content.size, " ", " ");
33
- return this.options.wordCounter(s);
34
- };
35
- },
36
- addProseMirrorPlugins() {
37
- let e = !1;
38
- return [
39
- new p({
40
- key: new m("characterCount"),
41
- appendTransaction: (t, s, r) => {
42
- if (e)
43
- return;
44
- const o = this.options.limit;
45
- if (o == null || o === 0) {
46
- e = !0;
1
+ import { Mark as x, markPasteRule as b, mergeAttributes as v, combineTransactionSteps as w, getChangedRanges as T, findChildrenInRange as _, getMarksBetween as O, getAttributes as R } from "./index224.js";
2
+ import { registerCustomProtocol as C, tokenize as H, find as M, reset as U } from "./index238.js";
3
+ import { Plugin as g, PluginKey as A } from "./index239.js";
4
+ var P = "[\0-   ᠎ -\u2029  ]", B = new RegExp(P), I = new RegExp(`${P}$`), W = new RegExp(P, "g");
5
+ function $(t) {
6
+ return t.length === 1 ? t[0].isLink : t.length === 3 && t[1].isLink ? ["()", "[]"].includes(t[0].value + t[2].value) : !1;
7
+ }
8
+ function z(t) {
9
+ return new g({
10
+ key: new A("autolink"),
11
+ appendTransaction: (e, r, o) => {
12
+ const n = e.some((a) => a.docChanged) && !r.doc.eq(o.doc), l = e.some((a) => a.getMeta("preventAutolink"));
13
+ if (!n || l)
14
+ return;
15
+ const { tr: i } = o, d = w(r.doc, [...e]);
16
+ if (T(d).forEach(({ newRange: a }) => {
17
+ const f = _(o.doc, a, (h) => h.isTextblock);
18
+ let c, k;
19
+ if (f.length > 1)
20
+ c = f[0], k = o.doc.textBetween(
21
+ c.pos,
22
+ c.pos + c.node.nodeSize,
23
+ void 0,
24
+ " "
25
+ );
26
+ else if (f.length) {
27
+ const h = o.doc.textBetween(a.from, a.to, " ", " ");
28
+ if (!I.test(h))
47
29
  return;
48
- }
49
- const n = this.storage.characters({ node: r.doc });
50
- if (n > o) {
51
- const c = n - o, a = 0, i = c;
52
- console.warn(
53
- `[CharacterCount] Initial content exceeded limit of ${o} characters. Content was automatically trimmed.`
30
+ c = f[0], k = o.doc.textBetween(c.pos, a.to, void 0, " ");
31
+ }
32
+ if (c && k) {
33
+ const h = k.split(B).filter(Boolean);
34
+ if (h.length <= 0)
35
+ return !1;
36
+ const m = h[h.length - 1], E = c.pos + k.lastIndexOf(m);
37
+ if (!m)
38
+ return !1;
39
+ const L = H(m).map((s) => s.toObject(t.defaultProtocol));
40
+ if (!$(L))
41
+ return !1;
42
+ L.filter((s) => s.isLink).map((s) => ({
43
+ ...s,
44
+ from: E + s.start + 1,
45
+ to: E + s.end + 1
46
+ })).filter((s) => o.schema.marks.code ? !o.doc.rangeHasMark(s.from, s.to, o.schema.marks.code) : !0).filter((s) => t.validate(s.value)).filter((s) => t.shouldAutoLink(s.value)).forEach((s) => {
47
+ O(s.from, s.to, o.doc).some((y) => y.mark.type === t.type) || i.addMark(
48
+ s.from,
49
+ s.to,
50
+ t.type.create({
51
+ href: s.href
52
+ })
54
53
  );
55
- const d = r.tr.deleteRange(a, i);
56
- return e = !0, d;
57
- }
58
- e = !0;
59
- },
60
- filterTransaction: (t, s) => {
61
- const r = this.options.limit;
62
- if (!t.docChanged || r === 0 || r === null || r === void 0)
63
- return !0;
64
- const o = this.storage.characters({ node: s.doc }), n = this.storage.characters({ node: t.doc });
65
- if (n <= r || o > r && n > r && n <= o)
66
- return !0;
67
- if (o > r && n > r && n > o || !t.getMeta("paste"))
54
+ });
55
+ }
56
+ }), !!i.steps.length)
57
+ return i;
58
+ }
59
+ });
60
+ }
61
+ function N(t) {
62
+ return new g({
63
+ key: new A("handleClickLink"),
64
+ props: {
65
+ handleClick: (e, r, o) => {
66
+ var n, l;
67
+ if (o.button !== 0 || !e.editable)
68
+ return !1;
69
+ let i = null;
70
+ if (o.target instanceof HTMLAnchorElement)
71
+ i = o.target;
72
+ else {
73
+ const u = o.target;
74
+ if (!u)
68
75
  return !1;
69
- const a = t.selection.$head.pos, i = n - r, d = a - i, u = a;
70
- return t.deleteRange(d, u), !(this.storage.characters({ node: t.doc }) > r);
76
+ const a = t.editor.view.dom;
77
+ i = u.closest("a"), i && !a.contains(i) && (i = null);
71
78
  }
72
- })
73
- ];
74
- }
75
- });
76
- var k = l.create({
77
- name: "dropCursor",
79
+ if (!i)
80
+ return !1;
81
+ let d = !1;
82
+ if (t.enableClickSelection && (d = t.editor.commands.extendMarkRange(t.type.name)), t.openOnClick) {
83
+ const u = R(e.state, t.type.name), a = (n = i.href) != null ? n : u.href, f = (l = i.target) != null ? l : u.target;
84
+ a && (window.open(a, f), d = !0);
85
+ }
86
+ return d;
87
+ }
88
+ }
89
+ });
90
+ }
91
+ function V(t) {
92
+ return new g({
93
+ key: new A("handlePasteLink"),
94
+ props: {
95
+ handlePaste: (e, r, o) => {
96
+ const { shouldAutoLink: n } = t, { state: l } = e, { selection: i } = l, { empty: d } = i;
97
+ if (d)
98
+ return !1;
99
+ let u = "";
100
+ o.content.forEach((f) => {
101
+ u += f.textContent;
102
+ });
103
+ const a = M(u, { defaultProtocol: t.defaultProtocol }).find(
104
+ (f) => f.isLink && f.value === u
105
+ );
106
+ return !u || !a || n !== void 0 && !n(a.value) ? !1 : t.editor.commands.setMark(t.type, {
107
+ href: a.href
108
+ });
109
+ }
110
+ }
111
+ });
112
+ }
113
+ function p(t, e) {
114
+ const r = ["http", "https", "ftp", "ftps", "mailto", "tel", "callto", "sms", "cid", "xmpp"];
115
+ return e && e.forEach((o) => {
116
+ const n = typeof o == "string" ? o : o.scheme;
117
+ n && r.push(n);
118
+ }), !t || t.replace(W, "").match(
119
+ new RegExp(
120
+ // eslint-disable-next-line no-useless-escape
121
+ `^(?:(?:${r.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,
122
+ "i"
123
+ )
124
+ );
125
+ }
126
+ var X = x.create({
127
+ name: "link",
128
+ priority: 1e3,
129
+ keepOnSplit: !1,
130
+ exitable: !0,
131
+ onCreate() {
132
+ this.options.validate && !this.options.shouldAutoLink && (this.options.shouldAutoLink = this.options.validate, console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")), this.options.protocols.forEach((t) => {
133
+ if (typeof t == "string") {
134
+ C(t);
135
+ return;
136
+ }
137
+ C(t.scheme, t.optionalSlashes);
138
+ });
139
+ },
140
+ onDestroy() {
141
+ U();
142
+ },
143
+ inclusive() {
144
+ return this.options.autolink;
145
+ },
78
146
  addOptions() {
79
147
  return {
80
- color: "currentColor",
81
- width: 1,
82
- class: void 0
148
+ openOnClick: !0,
149
+ enableClickSelection: !1,
150
+ linkOnPaste: !0,
151
+ autolink: !0,
152
+ protocols: [],
153
+ defaultProtocol: "http",
154
+ HTMLAttributes: {
155
+ target: "_blank",
156
+ rel: "noopener noreferrer nofollow",
157
+ class: null
158
+ },
159
+ isAllowedUri: (t, e) => !!p(t, e.protocols),
160
+ validate: (t) => !!t,
161
+ shouldAutoLink: (t) => {
162
+ const e = /^[a-z][a-z0-9+.-]*:\/\//i.test(t), r = /^[a-z][a-z0-9+.-]*:/i.test(t);
163
+ if (e || r && !t.includes("@"))
164
+ return !0;
165
+ const n = (t.includes("@") ? t.split("@").pop() : t).split(/[/?#:]/)[0];
166
+ return !(/^\d{1,3}(\.\d{1,3}){3}$/.test(n) || !/\./.test(n));
167
+ }
83
168
  };
84
169
  },
85
- addProseMirrorPlugins() {
86
- return [E(this.options)];
87
- }
88
- });
89
- l.create({
90
- name: "focus",
91
- addOptions() {
170
+ addAttributes() {
92
171
  return {
93
- className: "has-focus",
94
- mode: "all"
172
+ href: {
173
+ default: null,
174
+ parseHTML(t) {
175
+ return t.getAttribute("href");
176
+ }
177
+ },
178
+ target: {
179
+ default: this.options.HTMLAttributes.target
180
+ },
181
+ rel: {
182
+ default: this.options.HTMLAttributes.rel
183
+ },
184
+ class: {
185
+ default: this.options.HTMLAttributes.class
186
+ },
187
+ title: {
188
+ default: null
189
+ }
95
190
  };
96
191
  },
97
- addProseMirrorPlugins() {
192
+ parseHTML() {
98
193
  return [
99
- new p({
100
- key: new m("focus"),
101
- props: {
102
- decorations: ({ doc: e, selection: t }) => {
103
- const { isEditable: s, isFocused: r } = this.editor, { anchor: o } = t, n = [];
104
- if (!s || !r)
105
- return f.create(e, []);
106
- let c = 0;
107
- this.options.mode === "deepest" && e.descendants((i, d) => {
108
- if (i.isText)
109
- return;
110
- if (!(o >= d && o <= d + i.nodeSize - 1))
111
- return !1;
112
- c += 1;
113
- });
114
- let a = 0;
115
- return e.descendants((i, d) => {
116
- if (i.isText || !(o >= d && o <= d + i.nodeSize - 1))
117
- return !1;
118
- if (a += 1, this.options.mode === "deepest" && c - a > 0 || this.options.mode === "shallowest" && a > 1)
119
- return this.options.mode === "deepest";
120
- n.push(
121
- y.node(d, d + i.nodeSize, {
122
- class: this.options.className
123
- })
124
- );
125
- }), f.create(e, n);
126
- }
194
+ {
195
+ tag: "a[href]",
196
+ getAttrs: (t) => {
197
+ const e = t.getAttribute("href");
198
+ return !e || !this.options.isAllowedUri(e, {
199
+ defaultValidate: (r) => !!p(r, this.options.protocols),
200
+ protocols: this.options.protocols,
201
+ defaultProtocol: this.options.defaultProtocol
202
+ }) ? !1 : null;
127
203
  }
128
- })
204
+ }
129
205
  ];
130
- }
131
- });
132
- var L = l.create({
133
- name: "gapCursor",
134
- addProseMirrorPlugins() {
135
- return [N()];
136
206
  },
137
- extendNodeSchema(e) {
138
- var t;
139
- const s = {
140
- name: e.name,
141
- options: e.options,
142
- storage: e.storage
143
- };
144
- return {
145
- allowGapCursor: (t = P(S(e, "allowGapCursor", s))) != null ? t : null
146
- };
147
- }
148
- }), C = "placeholder";
149
- function T(e) {
150
- return e.replace(/\s+/g, "-").replace(/[^a-zA-Z0-9-]/g, "").replace(/^[0-9-]+/, "").replace(/^-+/, "").toLowerCase();
151
- }
152
- var B = l.create({
153
- name: "placeholder",
154
- addOptions() {
155
- return {
156
- emptyEditorClass: "is-editor-empty",
157
- emptyNodeClass: "is-empty",
158
- dataAttribute: C,
159
- placeholder: "Write something …",
160
- showOnlyWhenEditable: !0,
161
- showOnlyCurrent: !0,
162
- includeChildren: !1
163
- };
207
+ renderHTML({ HTMLAttributes: t }) {
208
+ return this.options.isAllowedUri(t.href, {
209
+ defaultValidate: (e) => !!p(e, this.options.protocols),
210
+ protocols: this.options.protocols,
211
+ defaultProtocol: this.options.defaultProtocol
212
+ }) ? ["a", v(this.options.HTMLAttributes, t), 0] : ["a", v(this.options.HTMLAttributes, { ...t, href: "" }), 0];
164
213
  },
165
- addProseMirrorPlugins() {
166
- const e = this.options.dataAttribute ? `data-${T(this.options.dataAttribute)}` : `data-${C}`;
167
- return [
168
- new p({
169
- key: new m("placeholder"),
170
- props: {
171
- decorations: ({ doc: t, selection: s }) => {
172
- const r = this.editor.isEditable || !this.options.showOnlyWhenEditable, { anchor: o } = s, n = [];
173
- if (!r)
174
- return null;
175
- const c = this.editor.isEmpty;
176
- return t.descendants((a, i) => {
177
- const d = o >= i && o <= i + a.nodeSize, u = !a.isLeaf && v(a);
178
- if ((d || !this.options.showOnlyCurrent) && u) {
179
- const h = [this.options.emptyNodeClass];
180
- c && h.push(this.options.emptyEditorClass);
181
- const g = y.node(i, i + a.nodeSize, {
182
- class: h.join(" "),
183
- [e]: typeof this.options.placeholder == "function" ? this.options.placeholder({
184
- editor: this.editor,
185
- node: a,
186
- pos: i,
187
- hasAnchor: d
188
- }) : this.options.placeholder
189
- });
190
- n.push(g);
191
- }
192
- return this.options.includeChildren;
193
- }), f.create(t, n);
194
- }
195
- }
196
- })
197
- ];
198
- }
199
- });
200
- l.create({
201
- name: "selection",
202
- addOptions() {
214
+ markdownTokenName: "link",
215
+ parseMarkdown: (t, e) => e.applyMark("link", e.parseInline(t.tokens || []), {
216
+ href: t.href,
217
+ title: t.title || null
218
+ }),
219
+ renderMarkdown: (t, e) => {
220
+ var r, o, n, l;
221
+ const i = (o = (r = t.attrs) == null ? void 0 : r.href) != null ? o : "", d = (l = (n = t.attrs) == null ? void 0 : n.title) != null ? l : "", u = e.renderChildren(t);
222
+ return d ? `[${u}](${i} "${d}")` : `[${u}](${i})`;
223
+ },
224
+ addCommands() {
203
225
  return {
204
- className: "selection"
226
+ setLink: (t) => ({ chain: e }) => {
227
+ const { href: r } = t;
228
+ return this.options.isAllowedUri(r, {
229
+ defaultValidate: (o) => !!p(o, this.options.protocols),
230
+ protocols: this.options.protocols,
231
+ defaultProtocol: this.options.defaultProtocol
232
+ }) ? e().setMark(this.name, t).setMeta("preventAutolink", !0).run() : !1;
233
+ },
234
+ toggleLink: (t) => ({ chain: e }) => {
235
+ const { href: r } = t || {};
236
+ return r && !this.options.isAllowedUri(r, {
237
+ defaultValidate: (o) => !!p(o, this.options.protocols),
238
+ protocols: this.options.protocols,
239
+ defaultProtocol: this.options.defaultProtocol
240
+ }) ? !1 : e().toggleMark(this.name, t, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run();
241
+ },
242
+ unsetLink: () => ({ chain: t }) => t().unsetMark(this.name, { extendEmptyMarkRange: !0 }).setMeta("preventAutolink", !0).run()
205
243
  };
206
244
  },
207
- addProseMirrorPlugins() {
208
- const { editor: e, options: t } = this;
245
+ addPasteRules() {
209
246
  return [
210
- new p({
211
- key: new m("selection"),
212
- props: {
213
- decorations(s) {
214
- return s.selection.empty || e.isFocused || !e.isEditable || z(s.selection) || e.view.dragging ? null : f.create(s.doc, [
215
- y.inline(s.selection.from, s.selection.to, {
216
- class: t.className
247
+ b({
248
+ find: (t) => {
249
+ const e = [];
250
+ if (t) {
251
+ const { protocols: r, defaultProtocol: o } = this.options, n = M(t).filter(
252
+ (l) => l.isLink && this.options.isAllowedUri(l.value, {
253
+ defaultValidate: (i) => !!p(i, r),
254
+ protocols: r,
255
+ defaultProtocol: o
217
256
  })
218
- ]);
257
+ );
258
+ n.length && n.forEach((l) => {
259
+ this.options.shouldAutoLink(l.value) && e.push({
260
+ text: l.value,
261
+ data: {
262
+ href: l.href
263
+ },
264
+ index: l.start
265
+ });
266
+ });
219
267
  }
220
- }
221
- })
222
- ];
223
- }
224
- });
225
- function w({ types: e, node: t }) {
226
- return t && Array.isArray(e) && e.includes(t.type) || t?.type === e;
227
- }
228
- var G = l.create({
229
- name: "trailingNode",
230
- addOptions() {
231
- return {
232
- node: void 0,
233
- notAfter: []
234
- };
235
- },
236
- addProseMirrorPlugins() {
237
- var e;
238
- const t = new m(this.name), s = this.options.node || ((e = this.editor.schema.topNodeType.contentMatch.defaultType) == null ? void 0 : e.name) || "paragraph", r = Object.entries(this.editor.schema.nodes).map(([, o]) => o).filter((o) => (this.options.notAfter || []).concat(s).includes(o.name));
239
- return [
240
- new p({
241
- key: t,
242
- appendTransaction: (o, n, c) => {
243
- const { doc: a, tr: i, schema: d } = c, u = t.getState(c), h = a.content.size, g = d.nodes[s];
244
- if (u)
245
- return i.insert(h, g.create());
268
+ return e;
246
269
  },
247
- state: {
248
- init: (o, n) => {
249
- const c = n.tr.doc.lastChild;
250
- return !w({ node: c, types: r });
251
- },
252
- apply: (o, n) => {
253
- if (!o.docChanged || o.getMeta("__uniqueIDTransaction"))
254
- return n;
255
- const c = o.doc.lastChild;
256
- return !w({ node: c, types: r });
257
- }
270
+ type: this.type,
271
+ getAttributes: (t) => {
272
+ var e;
273
+ return {
274
+ href: (e = t.data) == null ? void 0 : e.href
275
+ };
258
276
  }
259
277
  })
260
278
  ];
261
- }
262
- }), I = l.create({
263
- name: "undoRedo",
264
- addOptions() {
265
- return {
266
- depth: 100,
267
- newGroupDelay: 500
268
- };
269
- },
270
- addCommands() {
271
- return {
272
- undo: () => ({ state: e, dispatch: t }) => O(e, t),
273
- redo: () => ({ state: e, dispatch: t }) => M(e, t)
274
- };
275
279
  },
276
280
  addProseMirrorPlugins() {
277
- return [A(this.options)];
278
- },
279
- addKeyboardShortcuts() {
280
- return {
281
- "Mod-z": () => this.editor.commands.undo(),
282
- "Shift-Mod-z": () => this.editor.commands.redo(),
283
- "Mod-y": () => this.editor.commands.redo(),
284
- // Russian keyboard layouts
285
- "Mod-я": () => this.editor.commands.undo(),
286
- "Shift-Mod-я": () => this.editor.commands.redo()
287
- };
281
+ const t = [], { protocols: e, defaultProtocol: r } = this.options;
282
+ return this.options.autolink && t.push(
283
+ z({
284
+ type: this.type,
285
+ defaultProtocol: this.options.defaultProtocol,
286
+ validate: (o) => this.options.isAllowedUri(o, {
287
+ defaultValidate: (n) => !!p(n, e),
288
+ protocols: e,
289
+ defaultProtocol: r
290
+ }),
291
+ shouldAutoLink: this.options.shouldAutoLink
292
+ })
293
+ ), t.push(
294
+ N({
295
+ type: this.type,
296
+ editor: this.editor,
297
+ openOnClick: this.options.openOnClick === "whenNotEditable" ? !0 : this.options.openOnClick,
298
+ enableClickSelection: this.options.enableClickSelection
299
+ })
300
+ ), this.options.linkOnPaste && t.push(
301
+ V({
302
+ editor: this.editor,
303
+ defaultProtocol: this.options.defaultProtocol,
304
+ type: this.type,
305
+ shouldAutoLink: this.options.shouldAutoLink
306
+ })
307
+ ), t;
288
308
  }
289
309
  });
290
310
  export {
291
- k as Dropcursor,
292
- L as Gapcursor,
293
- B as Placeholder,
294
- G as TrailingNode,
295
- I as UndoRedo,
296
- T as preparePlaceholderAttribute
311
+ X as Link,
312
+ p as isAllowedUri
297
313
  };