@quoreadmin/ui 1.10.29 → 1.10.31

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 (171) hide show
  1. package/dist/index147.js +149 -149
  2. package/dist/index149.js +1 -1
  3. package/dist/index151.js +4 -4
  4. package/dist/index165.js +1 -1
  5. package/dist/index169.js +7 -7
  6. package/dist/index186.js +4 -4
  7. package/dist/index195.js +7 -7
  8. package/dist/index197.js +36 -1228
  9. package/dist/index198.js +46 -0
  10. package/dist/index199.js +1106 -5816
  11. package/dist/index201.js +5922 -19
  12. package/dist/index202.js +199 -10
  13. package/dist/index203.js +33 -76
  14. package/dist/index204.js +14 -249
  15. package/dist/index205.js +72 -13678
  16. package/dist/index206.js +253 -27
  17. package/dist/index207.js +13669 -48
  18. package/dist/index208.js +25 -236
  19. package/dist/index209.js +45 -293
  20. package/dist/index210.js +179 -238
  21. package/dist/index211.js +311 -36
  22. package/dist/index212.js +296 -43
  23. package/dist/index227.js +2 -2
  24. package/dist/index228.js +2 -2
  25. package/dist/index229.js +1 -1
  26. package/dist/index230.js +2 -2
  27. package/dist/index231.js +1 -1
  28. package/dist/index232.js +1 -1
  29. package/dist/index233.js +1 -1
  30. package/dist/index234.js +5 -5
  31. package/dist/index235.js +1 -1
  32. package/dist/index236.js +1 -1
  33. package/dist/index237.js +1 -1
  34. package/dist/index238.js +156 -122
  35. package/dist/index239.js +225 -35
  36. package/dist/index240.js +37 -80
  37. package/dist/index241.js +10 -20
  38. package/dist/index242.js +126 -19
  39. package/dist/index243.js +34 -16
  40. package/dist/index244.js +80 -20
  41. package/dist/index245.js +19 -160
  42. package/dist/index246.js +20 -228
  43. package/dist/index247.js +19 -36
  44. package/dist/index248.js +20 -10
  45. package/dist/index249.js +253 -22
  46. package/dist/index250.js +7 -21
  47. package/dist/index251.js +138 -20
  48. package/dist/index252.js +78 -831
  49. package/dist/index253.js +21 -701
  50. package/dist/index254.js +22 -176
  51. package/dist/index255.js +13 -15
  52. package/dist/index256.js +836 -20
  53. package/dist/index257.js +701 -19
  54. package/dist/index258.js +176 -3
  55. package/dist/index259.js +21 -186
  56. package/dist/index260.js +19 -132
  57. package/dist/index261.js +20 -1223
  58. package/dist/index262.js +3 -20
  59. package/dist/index263.js +186 -21
  60. package/dist/index264.js +132 -21
  61. package/dist/index265.js +1223 -29
  62. package/dist/index266.js +12 -12
  63. package/dist/index267.js +15 -13
  64. package/dist/index268.js +22 -2
  65. package/dist/index269.js +29 -2
  66. package/dist/index270.js +20 -3709
  67. package/dist/index271.js +20 -60
  68. package/dist/index272.js +2 -83
  69. package/dist/index273.js +2 -52
  70. package/dist/index274.js +52 -213
  71. package/dist/index275.js +79 -10
  72. package/dist/index276.js +26 -57
  73. package/dist/index277.js +22 -61
  74. package/dist/index278.js +22 -54
  75. package/dist/index279.js +14 -79
  76. package/dist/index280.js +16 -727
  77. package/dist/index281.js +21 -45
  78. package/dist/index282.js +3687 -42
  79. package/dist/index283.js +59 -10
  80. package/dist/index284.js +73 -695
  81. package/dist/index285.js +51 -819
  82. package/dist/index286.js +198 -236
  83. package/dist/index287.js +9 -7
  84. package/dist/index288.js +54 -135
  85. package/dist/index289.js +60 -82
  86. package/dist/index290.js +51 -51
  87. package/dist/index291.js +78 -76
  88. package/dist/index292.js +727 -25
  89. package/dist/index293.js +47 -22
  90. package/dist/index294.js +64 -22
  91. package/dist/index295.js +10 -15
  92. package/dist/index296.js +704 -16
  93. package/dist/index297.js +820 -23
  94. package/dist/index301.js +221 -1520
  95. package/dist/index302.js +4 -384
  96. package/dist/index303.js +119 -2716
  97. package/dist/index304.js +65 -83
  98. package/dist/index305.js +85 -3796
  99. package/dist/index306.js +26 -57
  100. package/dist/index307.js +7 -77
  101. package/dist/index308.js +74 -21
  102. package/dist/index309.js +3 -934
  103. package/dist/index310.js +2 -22
  104. package/dist/index311.js +82 -19
  105. package/dist/index312.js +53 -19
  106. package/dist/index313.js +5 -68
  107. package/dist/index314.js +5 -19
  108. package/dist/index315.js +178 -18
  109. package/dist/index316.js +62 -21
  110. package/dist/index317.js +75 -22
  111. package/dist/index318.js +68 -52
  112. package/dist/index319.js +22 -15
  113. package/dist/index320.js +923 -72
  114. package/dist/index321.js +22 -202
  115. package/dist/index322.js +20 -246
  116. package/dist/index323.js +19 -234
  117. package/dist/index324.js +68 -5
  118. package/dist/index325.js +18 -133
  119. package/dist/index326.js +19 -68
  120. package/dist/index327.js +20 -85
  121. package/dist/index328.js +21 -28
  122. package/dist/index329.js +62 -8
  123. package/dist/index330.js +35 -73
  124. package/dist/index331.js +1533 -3
  125. package/dist/index332.js +386 -2
  126. package/dist/index333.js +2730 -82
  127. package/dist/index334.js +84 -52
  128. package/dist/index335.js +3796 -4
  129. package/dist/index336.js +59 -4
  130. package/dist/index337.js +15 -179
  131. package/dist/index338.js +78 -57
  132. package/dist/index339.js +201 -74
  133. package/dist/index340.js +240 -31
  134. package/dist/index364.js +20 -19
  135. package/dist/index365.js +55 -19
  136. package/dist/index366.js +28 -63
  137. package/dist/index367.js +7 -37
  138. package/dist/index368.js +49 -18
  139. package/dist/index369.js +6 -56
  140. package/dist/index370.js +10 -27
  141. package/dist/index371.js +7 -7
  142. package/dist/index372.js +27 -51
  143. package/dist/index373.js +2 -6
  144. package/dist/index374.js +69 -11
  145. package/dist/index375.js +166 -6
  146. package/dist/index376.js +20 -28
  147. package/dist/index377.js +20 -2
  148. package/dist/index378.js +61 -67
  149. package/dist/index379.js +36 -166
  150. package/dist/index380.js +31 -17
  151. package/dist/index381.js +10 -100
  152. package/dist/index382.js +3 -90
  153. package/dist/index383.js +4 -98
  154. package/dist/index384.js +12 -30
  155. package/dist/index385.js +7 -11
  156. package/dist/index386.js +11 -3
  157. package/dist/index387.js +4 -3
  158. package/dist/index388.js +33 -13
  159. package/dist/index389.js +31 -7
  160. package/dist/index390.js +28 -12
  161. package/dist/index391.js +61 -5
  162. package/dist/index392.js +17 -33
  163. package/dist/index393.js +99 -29
  164. package/dist/index394.js +91 -28
  165. package/dist/index395.js +96 -59
  166. package/dist/index396.js +1 -1
  167. package/dist/index401.js +1 -1
  168. package/dist/index402.js +2 -2
  169. package/dist/src/components/room-details-popover/room-details-popover.d.ts +9 -3
  170. package/package.json +1 -1
  171. package/dist/index200.js +0 -209
package/dist/index208.js CHANGED
@@ -1,240 +1,29 @@
1
- import { Mark as y, mergeAttributes as p, Extension as l } from "./index270.js";
2
- var d = 20, u = (t, e = 0) => {
3
- const r = [];
4
- return !t.children.length || e > d || Array.from(t.children).forEach((o) => {
5
- o.tagName === "SPAN" ? r.push(o) : o.children.length && r.push(...u(o, e + 1));
6
- }), r;
7
- }, f = (t) => {
8
- if (!t.children.length)
9
- return;
10
- const e = u(t);
11
- e && e.forEach((r) => {
12
- var o, n;
13
- const s = r.getAttribute("style"), i = (n = (o = r.parentElement) == null ? void 0 : o.closest("span")) == null ? void 0 : n.getAttribute("style");
14
- r.setAttribute("style", `${i};${s}`);
15
- });
16
- }, c = y.create({
17
- name: "textStyle",
18
- priority: 101,
19
- addOptions() {
20
- return {
21
- HTMLAttributes: {},
22
- mergeNestedSpanStyles: !0
23
- };
24
- },
25
- parseHTML() {
26
- return [
27
- {
28
- tag: "span",
29
- consuming: !1,
30
- getAttrs: (t) => t.hasAttribute("style") ? (this.options.mergeNestedSpanStyles && f(t), {}) : !1
31
- }
32
- ];
33
- },
34
- renderHTML({ HTMLAttributes: t }) {
35
- return ["span", p(this.options.HTMLAttributes, t), 0];
36
- },
37
- addCommands() {
38
- return {
39
- toggleTextStyle: (t) => ({ commands: e }) => e.toggleMark(this.name, t),
40
- removeEmptyTextStyle: () => ({ tr: t }) => {
41
- const { selection: e } = t;
42
- return t.doc.nodesBetween(e.from, e.to, (r, o) => {
43
- if (r.isTextblock)
44
- return !0;
45
- r.marks.filter((n) => n.type === this.type).some((n) => Object.values(n.attrs).some((s) => !!s)) || t.removeMark(o, o + r.nodeSize, this.type);
46
- }), !0;
47
- }
48
- };
49
- }
50
- }), m = l.create({
51
- name: "backgroundColor",
52
- addOptions() {
53
- return {
54
- types: ["textStyle"]
55
- };
56
- },
57
- addGlobalAttributes() {
58
- return [
59
- {
60
- types: this.options.types,
61
- attributes: {
62
- backgroundColor: {
63
- default: null,
64
- parseHTML: (t) => {
65
- var e;
66
- const r = t.getAttribute("style");
67
- if (r) {
68
- const o = r.split(";").map((n) => n.trim()).filter(Boolean);
69
- for (let n = o.length - 1; n >= 0; n -= 1) {
70
- const s = o[n].split(":");
71
- if (s.length >= 2) {
72
- const i = s[0].trim().toLowerCase(), a = s.slice(1).join(":").trim();
73
- if (i === "background-color")
74
- return a.replace(/['"]+/g, "");
75
- }
76
- }
77
- }
78
- return (e = t.style.backgroundColor) == null ? void 0 : e.replace(/['"]+/g, "");
79
- },
80
- renderHTML: (t) => t.backgroundColor ? {
81
- style: `background-color: ${t.backgroundColor}`
82
- } : {}
83
- }
84
- }
85
- }
86
- ];
87
- },
88
- addCommands() {
89
- return {
90
- setBackgroundColor: (t) => ({ chain: e }) => e().setMark("textStyle", { backgroundColor: t }).run(),
91
- unsetBackgroundColor: () => ({ chain: t }) => t().setMark("textStyle", { backgroundColor: null }).removeEmptyTextStyle().run()
92
- };
93
- }
94
- }), g = l.create({
95
- name: "color",
96
- addOptions() {
97
- return {
98
- types: ["textStyle"]
99
- };
100
- },
101
- addGlobalAttributes() {
102
- return [
103
- {
104
- types: this.options.types,
105
- attributes: {
106
- color: {
107
- default: null,
108
- parseHTML: (t) => {
109
- var e;
110
- const r = t.getAttribute("style");
111
- if (r) {
112
- const o = r.split(";").map((n) => n.trim()).filter(Boolean);
113
- for (let n = o.length - 1; n >= 0; n -= 1) {
114
- const s = o[n].split(":");
115
- if (s.length >= 2) {
116
- const i = s[0].trim().toLowerCase(), a = s.slice(1).join(":").trim();
117
- if (i === "color")
118
- return a.replace(/['"]+/g, "");
119
- }
120
- }
121
- }
122
- return (e = t.style.color) == null ? void 0 : e.replace(/['"]+/g, "");
123
- },
124
- renderHTML: (t) => t.color ? {
125
- style: `color: ${t.color}`
126
- } : {}
127
- }
128
- }
129
- }
130
- ];
131
- },
132
- addCommands() {
133
- return {
134
- setColor: (t) => ({ chain: e }) => e().setMark("textStyle", { color: t }).run(),
135
- unsetColor: () => ({ chain: t }) => t().setMark("textStyle", { color: null }).removeEmptyTextStyle().run()
136
- };
137
- }
138
- }), h = l.create({
139
- name: "fontFamily",
140
- addOptions() {
141
- return {
142
- types: ["textStyle"]
143
- };
144
- },
145
- addGlobalAttributes() {
146
- return [
147
- {
148
- types: this.options.types,
149
- attributes: {
150
- fontFamily: {
151
- default: null,
152
- parseHTML: (t) => t.style.fontFamily,
153
- renderHTML: (t) => t.fontFamily ? {
154
- style: `font-family: ${t.fontFamily}`
155
- } : {}
156
- }
157
- }
158
- }
159
- ];
160
- },
161
- addCommands() {
162
- return {
163
- setFontFamily: (t) => ({ chain: e }) => e().setMark("textStyle", { fontFamily: t }).run(),
164
- unsetFontFamily: () => ({ chain: t }) => t().setMark("textStyle", { fontFamily: null }).removeEmptyTextStyle().run()
165
- };
166
- }
167
- }), S = l.create({
168
- name: "fontSize",
169
- addOptions() {
170
- return {
171
- types: ["textStyle"]
172
- };
173
- },
174
- addGlobalAttributes() {
175
- return [
176
- {
177
- types: this.options.types,
178
- attributes: {
179
- fontSize: {
180
- default: null,
181
- parseHTML: (t) => t.style.fontSize,
182
- renderHTML: (t) => t.fontSize ? {
183
- style: `font-size: ${t.fontSize}`
184
- } : {}
185
- }
186
- }
187
- }
188
- ];
189
- },
190
- addCommands() {
191
- return {
192
- setFontSize: (t) => ({ chain: e }) => e().setMark("textStyle", { fontSize: t }).run(),
193
- unsetFontSize: () => ({ chain: t }) => t().setMark("textStyle", { fontSize: null }).removeEmptyTextStyle().run()
194
- };
195
- }
196
- }), b = l.create({
197
- name: "lineHeight",
198
- addOptions() {
199
- return {
200
- types: ["textStyle"]
201
- };
202
- },
203
- addGlobalAttributes() {
204
- return [
205
- {
206
- types: this.options.types,
207
- attributes: {
208
- lineHeight: {
209
- default: null,
210
- parseHTML: (t) => t.style.lineHeight,
211
- renderHTML: (t) => t.lineHeight ? {
212
- style: `line-height: ${t.lineHeight}`
213
- } : {}
214
- }
215
- }
216
- }
217
- ];
218
- },
219
- addCommands() {
220
- return {
221
- setLineHeight: (t) => ({ chain: e }) => e().setMark("textStyle", { lineHeight: t }).run(),
222
- unsetLineHeight: () => ({ chain: t }) => t().setMark("textStyle", { lineHeight: null }).removeEmptyTextStyle().run()
223
- };
224
- }
225
- });
226
- l.create({
227
- name: "textStyleKit",
1
+ import { Extension as r } from "./index282.js";
2
+ import { Blockquote as n } from "./index283.js";
3
+ import { Bold as p } from "./index284.js";
4
+ import { Code as f } from "./index285.js";
5
+ import { CodeBlock as h } from "./index286.js";
6
+ import { Document as u } from "./index287.js";
7
+ import { HardBreak as l } from "./index288.js";
8
+ import { Heading as a } from "./index289.js";
9
+ import { HorizontalRule as c } from "./index290.js";
10
+ import { Italic as d } from "./index291.js";
11
+ import { Link as m } from "./index211.js";
12
+ import { BulletList as g, ListItem as k, ListKeymap as B, OrderedList as L } from "./index292.js";
13
+ import { Paragraph as x } from "./index293.js";
14
+ import { Strike as b } from "./index294.js";
15
+ import { Text as v } from "./index295.js";
16
+ import { Underline as R } from "./index209.js";
17
+ import { Dropcursor as K, Gapcursor as _, UndoRedo as I, TrailingNode as q } from "./index212.js";
18
+ var y = r.create({
19
+ name: "starterKit",
228
20
  addExtensions() {
229
- const t = [];
230
- return this.options.backgroundColor !== !1 && t.push(m.configure(this.options.backgroundColor)), this.options.color !== !1 && t.push(g.configure(this.options.color)), this.options.fontFamily !== !1 && t.push(h.configure(this.options.fontFamily)), this.options.fontSize !== !1 && t.push(S.configure(this.options.fontSize)), this.options.lineHeight !== !1 && t.push(b.configure(this.options.lineHeight)), this.options.textStyle !== !1 && t.push(c.configure(this.options.textStyle)), t;
21
+ var i, s, t, e;
22
+ const o = [];
23
+ return this.options.bold !== !1 && o.push(p.configure(this.options.bold)), this.options.blockquote !== !1 && o.push(n.configure(this.options.blockquote)), this.options.bulletList !== !1 && o.push(g.configure(this.options.bulletList)), this.options.code !== !1 && o.push(f.configure(this.options.code)), this.options.codeBlock !== !1 && o.push(h.configure(this.options.codeBlock)), this.options.document !== !1 && o.push(u.configure(this.options.document)), this.options.dropcursor !== !1 && o.push(K.configure(this.options.dropcursor)), this.options.gapcursor !== !1 && o.push(_.configure(this.options.gapcursor)), this.options.hardBreak !== !1 && o.push(l.configure(this.options.hardBreak)), this.options.heading !== !1 && o.push(a.configure(this.options.heading)), this.options.undoRedo !== !1 && o.push(I.configure(this.options.undoRedo)), this.options.horizontalRule !== !1 && o.push(c.configure(this.options.horizontalRule)), this.options.italic !== !1 && o.push(d.configure(this.options.italic)), this.options.listItem !== !1 && o.push(k.configure(this.options.listItem)), this.options.listKeymap !== !1 && o.push(B.configure((i = this.options) == null ? void 0 : i.listKeymap)), this.options.link !== !1 && o.push(m.configure((s = this.options) == null ? void 0 : s.link)), this.options.orderedList !== !1 && o.push(L.configure(this.options.orderedList)), this.options.paragraph !== !1 && o.push(x.configure(this.options.paragraph)), this.options.strike !== !1 && o.push(b.configure(this.options.strike)), this.options.text !== !1 && o.push(v.configure(this.options.text)), this.options.underline !== !1 && o.push(R.configure((t = this.options) == null ? void 0 : t.underline)), this.options.trailingNode !== !1 && o.push(q.configure((e = this.options) == null ? void 0 : e.trailingNode)), o;
231
24
  }
232
- });
25
+ }), M = y;
233
26
  export {
234
- m as BackgroundColor,
235
- g as Color,
236
- h as FontFamily,
237
- S as FontSize,
238
- b as LineHeight,
239
- c as TextStyle
27
+ y as StarterKit,
28
+ M as default
240
29
  };
package/dist/index209.js CHANGED
@@ -1,313 +1,65 @@
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 "./index270.js";
2
- import { registerCustomProtocol as C, tokenize as H, find as M, reset as U } from "./index284.js";
3
- import { Plugin as g, PluginKey as A } from "./index285.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))
29
- return;
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
- })
53
- );
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)
75
- return !1;
76
- const a = t.editor.view.dom;
77
- i = u.closest("a"), i && !a.contains(i) && (i = null);
78
- }
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
- },
1
+ import { Mark as s, mergeAttributes as d } from "./index282.js";
2
+ var u = s.create({
3
+ name: "underline",
146
4
  addOptions() {
147
5
  return {
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
- }
168
- };
169
- },
170
- addAttributes() {
171
- return {
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
- }
6
+ HTMLAttributes: {}
190
7
  };
191
8
  },
192
9
  parseHTML() {
193
10
  return [
194
11
  {
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;
203
- }
12
+ tag: "u"
13
+ },
14
+ {
15
+ style: "text-decoration",
16
+ consuming: !1,
17
+ getAttrs: (e) => e.includes("underline") ? {} : !1
204
18
  }
205
19
  ];
206
20
  },
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];
21
+ renderHTML({ HTMLAttributes: e }) {
22
+ return ["u", d(this.options.HTMLAttributes, e), 0];
23
+ },
24
+ parseMarkdown(e, n) {
25
+ return n.applyMark(this.name || "underline", n.parseInline(e.tokens || []));
213
26
  },
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})`;
27
+ renderMarkdown(e, n) {
28
+ return `++${n.renderChildren(e)}++`;
29
+ },
30
+ markdownTokenizer: {
31
+ name: "underline",
32
+ level: "inline",
33
+ start(e) {
34
+ return e.indexOf("++");
35
+ },
36
+ tokenize(e, n, i) {
37
+ const r = /^(\+\+)([\s\S]+?)(\+\+)/.exec(e);
38
+ if (!r)
39
+ return;
40
+ const t = r[2].trim();
41
+ return {
42
+ type: "underline",
43
+ raw: r[0],
44
+ text: t,
45
+ tokens: i.inlineTokens(t)
46
+ };
47
+ }
223
48
  },
224
49
  addCommands() {
225
50
  return {
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()
51
+ setUnderline: () => ({ commands: e }) => e.setMark(this.name),
52
+ toggleUnderline: () => ({ commands: e }) => e.toggleMark(this.name),
53
+ unsetUnderline: () => ({ commands: e }) => e.unsetMark(this.name)
243
54
  };
244
55
  },
245
- addPasteRules() {
246
- return [
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
256
- })
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
- });
267
- }
268
- return e;
269
- },
270
- type: this.type,
271
- getAttributes: (t) => {
272
- var e;
273
- return {
274
- href: (e = t.data) == null ? void 0 : e.href
275
- };
276
- }
277
- })
278
- ];
279
- },
280
- addProseMirrorPlugins() {
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;
56
+ addKeyboardShortcuts() {
57
+ return {
58
+ "Mod-u": () => this.editor.commands.toggleUnderline(),
59
+ "Mod-U": () => this.editor.commands.toggleUnderline()
60
+ };
308
61
  }
309
62
  });
310
63
  export {
311
- X as Link,
312
- p as isAllowedUri
64
+ u as Underline
313
65
  };