@firestitch/markdown-editor 18.0.1 → 18.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/theme/common/prosemirror.css +1 -0
- package/assets/theme/common/reset.css +288 -0
- package/assets/theme/common/style.css +12 -0
- package/assets/theme/crepe/style.css +29 -0
- package/assets/theme/crepe-dark/style.css +31 -0
- package/assets/theme/frame/style.css +29 -0
- package/assets/theme/frame-dark/style.css +31 -0
- package/assets/theme/nord-dark/style.css +31 -0
- package/esm2022/app/modules/markdown-editor/components/markdown-editor/markdown-editor.component.mjs +3 -3
- package/fesm2022/firestitch-markdown-editor.mjs +2 -2
- package/fesm2022/firestitch-markdown-editor.mjs.map +1 -1
- package/package.json +1 -1
- /package/assets/{milkdown/milkdown.js → milkdown.js} +0 -0
- /package/assets/{milkdown/theme → theme}/common/block-edit.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/code-mirror.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/cursor.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/image-block.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/latex.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/link-tooltip.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/list-item.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/placeholder.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/table.css +0 -0
- /package/assets/{milkdown/theme → theme}/common/toolbar.css +0 -0
- /package/assets/{milkdown/theme → theme}/nord/style.css +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import '@milkdown/kit/prose/view/style/prosemirror.css';
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
.milkdown {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.milkdown * {
|
|
6
|
+
margin: 0;
|
|
7
|
+
padding: 0;
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.milkdown button,
|
|
12
|
+
.milkdown input {
|
|
13
|
+
border: none;
|
|
14
|
+
background: none;
|
|
15
|
+
box-shadow: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.milkdown button:focus, .milkdown input:focus {
|
|
19
|
+
outline: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.milkdown :focus-visible {
|
|
23
|
+
outline: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.milkdown {
|
|
27
|
+
|
|
28
|
+
font-family: var(--crepe-font-default);
|
|
29
|
+
color: var(--crepe-color-on-background);
|
|
30
|
+
background: var(--crepe-color-background);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.milkdown .milkdown-icon {
|
|
34
|
+
display: inline-flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.milkdown .ProseMirror-focused {
|
|
40
|
+
outline: none;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.milkdown .ProseMirror {
|
|
44
|
+
padding: 60px 120px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.milkdown .ProseMirror *::-moz-selection {
|
|
48
|
+
background: var(--crepe-color-selected);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.milkdown .ProseMirror *::selection {
|
|
52
|
+
background: var(--crepe-color-selected);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.milkdown .ProseMirror li.ProseMirror-selectednode {
|
|
56
|
+
background: var(--crepe-color-selected);
|
|
57
|
+
outline: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.milkdown .ProseMirror li.ProseMirror-selectednode ::-moz-selection {
|
|
61
|
+
background: transparent;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.milkdown .ProseMirror li.ProseMirror-selectednode ::selection {
|
|
65
|
+
background: transparent;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.milkdown .ProseMirror li.ProseMirror-selectednode::-moz-selection {
|
|
69
|
+
background: transparent;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.milkdown .ProseMirror li.ProseMirror-selectednode::selection {
|
|
73
|
+
background: transparent;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.milkdown .ProseMirror li.ProseMirror-selectednode:after {
|
|
77
|
+
all: unset;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.milkdown .ProseMirror .ProseMirror-selectednode {
|
|
81
|
+
background: var(--crepe-color-selected);
|
|
82
|
+
outline: none;
|
|
83
|
+
background: color-mix(
|
|
84
|
+
in srgb,
|
|
85
|
+
var(--crepe-color-selected),
|
|
86
|
+
transparent 60%
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.milkdown .ProseMirror .ProseMirror-selectednode ::-moz-selection {
|
|
91
|
+
background: transparent;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.milkdown .ProseMirror .ProseMirror-selectednode ::selection {
|
|
95
|
+
background: transparent;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.milkdown .ProseMirror .ProseMirror-selectednode::-moz-selection {
|
|
99
|
+
background: transparent;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.milkdown .ProseMirror .ProseMirror-selectednode::selection {
|
|
103
|
+
background: transparent;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.milkdown .ProseMirror[data-dragging='true']::-moz-selection, .milkdown .ProseMirror[data-dragging='true'] *::-moz-selection {
|
|
107
|
+
background: transparent;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.milkdown .ProseMirror[data-dragging='true'] .ProseMirror-selectednode,
|
|
111
|
+
.milkdown .ProseMirror[data-dragging='true']::selection,
|
|
112
|
+
.milkdown .ProseMirror[data-dragging='true'] *::selection {
|
|
113
|
+
background: transparent;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.milkdown .ProseMirror[data-dragging='true'] input::-moz-selection {
|
|
117
|
+
background: var(--crepe-color-selected);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.milkdown .ProseMirror[data-dragging='true'] input::selection {
|
|
121
|
+
background: var(--crepe-color-selected);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.milkdown .ProseMirror img {
|
|
125
|
+
vertical-align: bottom;
|
|
126
|
+
max-width: 100%;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.milkdown .ProseMirror img.ProseMirror-selectednode {
|
|
130
|
+
background: none;
|
|
131
|
+
outline: 2px solid var(--crepe-color-primary);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.milkdown .ProseMirror h1,
|
|
135
|
+
.milkdown .ProseMirror h2,
|
|
136
|
+
.milkdown .ProseMirror h3,
|
|
137
|
+
.milkdown .ProseMirror h4,
|
|
138
|
+
.milkdown .ProseMirror h5,
|
|
139
|
+
.milkdown .ProseMirror h6 {
|
|
140
|
+
font-family: var(--crepe-font-title);
|
|
141
|
+
font-weight: 400;
|
|
142
|
+
padding: 2px 0;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.milkdown .ProseMirror h1 {
|
|
146
|
+
font-size: 42px;
|
|
147
|
+
line-height: 50px;
|
|
148
|
+
margin-top: 32px;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.milkdown .ProseMirror h2 {
|
|
152
|
+
font-size: 36px;
|
|
153
|
+
line-height: 44px;
|
|
154
|
+
margin-top: 28px;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.milkdown .ProseMirror h3 {
|
|
158
|
+
font-size: 32px;
|
|
159
|
+
line-height: 40px;
|
|
160
|
+
margin-top: 24px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.milkdown .ProseMirror h4 {
|
|
164
|
+
font-size: 28px;
|
|
165
|
+
line-height: 36px;
|
|
166
|
+
margin-top: 20px;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.milkdown .ProseMirror h5 {
|
|
170
|
+
font-size: 24px;
|
|
171
|
+
line-height: 32px;
|
|
172
|
+
margin-top: 16px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.milkdown .ProseMirror h6 {
|
|
176
|
+
font-size: 18px;
|
|
177
|
+
font-weight: 700;
|
|
178
|
+
line-height: 28px;
|
|
179
|
+
margin-top: 16px;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.milkdown .ProseMirror p {
|
|
183
|
+
font-size: 16px;
|
|
184
|
+
line-height: 24px;
|
|
185
|
+
padding: 4px 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.milkdown .ProseMirror code {
|
|
189
|
+
color: var(--crepe-color-inline-code);
|
|
190
|
+
background: color-mix(
|
|
191
|
+
in srgb,
|
|
192
|
+
var(--crepe-color-inline-area),
|
|
193
|
+
transparent 40%
|
|
194
|
+
);
|
|
195
|
+
font-family: var(--crepe-font-code);
|
|
196
|
+
padding: 0 2px;
|
|
197
|
+
border-radius: 4px;
|
|
198
|
+
font-size: 87.5%;
|
|
199
|
+
display: inline-block;
|
|
200
|
+
line-height: 1.4286;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.milkdown .ProseMirror a {
|
|
204
|
+
color: var(--crepe-color-primary);
|
|
205
|
+
text-decoration: underline;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.milkdown .ProseMirror pre {
|
|
209
|
+
background: color-mix(
|
|
210
|
+
in srgb,
|
|
211
|
+
var(--crepe-color-inline-area),
|
|
212
|
+
transparent 40%
|
|
213
|
+
);
|
|
214
|
+
padding: 10px;
|
|
215
|
+
border-radius: 4px;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.milkdown .ProseMirror pre code {
|
|
219
|
+
padding: 0;
|
|
220
|
+
background: transparent;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.milkdown .ProseMirror blockquote {
|
|
224
|
+
position: relative;
|
|
225
|
+
padding-left: 40px;
|
|
226
|
+
padding-top: 0;
|
|
227
|
+
padding-bottom: 0;
|
|
228
|
+
box-sizing: content-box;
|
|
229
|
+
margin: 4px 0;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.milkdown .ProseMirror blockquote::before {
|
|
233
|
+
content: '';
|
|
234
|
+
width: 4px;
|
|
235
|
+
left: 0;
|
|
236
|
+
top: 4px;
|
|
237
|
+
bottom: 4px;
|
|
238
|
+
position: absolute;
|
|
239
|
+
background: var(--crepe-color-selected);
|
|
240
|
+
border-radius: 100px;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.milkdown .ProseMirror blockquote hr {
|
|
244
|
+
margin-bottom: 16px;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.milkdown .ProseMirror hr {
|
|
248
|
+
border: none;
|
|
249
|
+
background-color: color-mix(
|
|
250
|
+
in srgb,
|
|
251
|
+
var(--crepe-color-outline),
|
|
252
|
+
transparent 80%
|
|
253
|
+
);
|
|
254
|
+
background-clip: content-box;
|
|
255
|
+
padding: 6px 0;
|
|
256
|
+
height: 13px;
|
|
257
|
+
position: relative;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.milkdown .ProseMirror hr.ProseMirror-selectednode {
|
|
261
|
+
outline: none;
|
|
262
|
+
background-color: color-mix(
|
|
263
|
+
in srgb,
|
|
264
|
+
var(--crepe-color-outline),
|
|
265
|
+
transparent 20%
|
|
266
|
+
);
|
|
267
|
+
background-clip: content-box;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.milkdown .ProseMirror hr.ProseMirror-selectednode::before {
|
|
271
|
+
content: '';
|
|
272
|
+
position: absolute;
|
|
273
|
+
left: 0;
|
|
274
|
+
top: 0;
|
|
275
|
+
bottom: 0;
|
|
276
|
+
right: 0;
|
|
277
|
+
background-color: color-mix(
|
|
278
|
+
in srgb,
|
|
279
|
+
var(--crepe-color-outline),
|
|
280
|
+
transparent 80%
|
|
281
|
+
);
|
|
282
|
+
pointer-events: none;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.milkdown .ProseMirror ul,
|
|
286
|
+
.milkdown .ProseMirror ol {
|
|
287
|
+
padding: 0;
|
|
288
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
@import './prosemirror.css';
|
|
2
|
+
@import './reset.css';
|
|
3
|
+
@import './block-edit.css';
|
|
4
|
+
@import './code-mirror.css';
|
|
5
|
+
@import './cursor.css';
|
|
6
|
+
@import './image-block.css';
|
|
7
|
+
@import './link-tooltip.css';
|
|
8
|
+
@import './list-item.css';
|
|
9
|
+
@import './placeholder.css';
|
|
10
|
+
@import './toolbar.css';
|
|
11
|
+
@import './table.css';
|
|
12
|
+
@import './latex.css';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.milkdown {
|
|
2
|
+
--crepe-color-background: #fffdfb;
|
|
3
|
+
--crepe-color-on-background: #1f1b16;
|
|
4
|
+
--crepe-color-surface: #fff8f4;
|
|
5
|
+
--crepe-color-surface-low: #fff1e5;
|
|
6
|
+
--crepe-color-on-surface: #201b13;
|
|
7
|
+
--crepe-color-on-surface-variant: #4f4539;
|
|
8
|
+
--crepe-color-outline: #817567;
|
|
9
|
+
--crepe-color-primary: #805610;
|
|
10
|
+
--crepe-color-secondary: #fbdebc;
|
|
11
|
+
--crepe-color-on-secondary: #271904;
|
|
12
|
+
--crepe-color-inverse: #362f27;
|
|
13
|
+
--crepe-color-on-inverse: #fcefe2;
|
|
14
|
+
--crepe-color-inline-code: #ba1a1a;
|
|
15
|
+
--crepe-color-error: #ba1a1a;
|
|
16
|
+
--crepe-color-hover: #f9ecdf;
|
|
17
|
+
--crepe-color-selected: #ede0d4;
|
|
18
|
+
--crepe-color-inline-area: #e4d8cc;
|
|
19
|
+
|
|
20
|
+
--crepe-font-title: Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
21
|
+
--crepe-font-default: 'Open Sans', Arial, Helvetica, sans-serif;
|
|
22
|
+
--crepe-font-code:
|
|
23
|
+
Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
|
|
24
|
+
|
|
25
|
+
--crepe-shadow-1:
|
|
26
|
+
0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
|
|
27
|
+
--crepe-shadow-2:
|
|
28
|
+
0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
|
|
29
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.milkdown {
|
|
2
|
+
--crepe-color-background: #1f1b16;
|
|
3
|
+
--crepe-color-on-background: #eae1d9;
|
|
4
|
+
--crepe-color-surface: #18120b;
|
|
5
|
+
--crepe-color-surface-low: #201b13;
|
|
6
|
+
--crepe-color-on-surface: #ede0d4;
|
|
7
|
+
--crepe-color-on-surface-variant: #d3c4b4;
|
|
8
|
+
--crepe-color-outline: #9c8f80;
|
|
9
|
+
--crepe-color-primary: #f4bd6f;
|
|
10
|
+
--crepe-color-secondary: #56442a;
|
|
11
|
+
--crepe-color-on-secondary: #fbdebc;
|
|
12
|
+
--crepe-color-inverse: #ede0d4;
|
|
13
|
+
--crepe-color-on-inverse: #362f27;
|
|
14
|
+
--crepe-color-inline-code: #ffb4ab;
|
|
15
|
+
--crepe-color-error: #ffb4ab;
|
|
16
|
+
--crepe-color-hover: #251f17;
|
|
17
|
+
--crepe-color-selected: #3b342b;
|
|
18
|
+
--crepe-color-inline-area: #3f3830;
|
|
19
|
+
|
|
20
|
+
--crepe-font-title: Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
21
|
+
--crepe-font-default: 'Open Sans', Arial, Helvetica, sans-serif;
|
|
22
|
+
--crepe-font-code:
|
|
23
|
+
Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
|
|
24
|
+
|
|
25
|
+
--crepe-shadow-1:
|
|
26
|
+
0px 1px 2px 0px rgba(255, 255, 255, 0.3),
|
|
27
|
+
0px 1px 3px 1px rgba(255, 255, 255, 0.15);
|
|
28
|
+
--crepe-shadow-2:
|
|
29
|
+
0px 1px 2px 0px rgba(255, 255, 255, 0.3),
|
|
30
|
+
0px 2px 6px 2px rgba(255, 255, 255, 0.15);
|
|
31
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.milkdown {
|
|
2
|
+
--crepe-color-background: #ffffff;
|
|
3
|
+
--crepe-color-on-background: #000000;
|
|
4
|
+
--crepe-color-surface: #f7f7f7;
|
|
5
|
+
--crepe-color-surface-low: #ededed;
|
|
6
|
+
--crepe-color-on-surface: #1c1c1c;
|
|
7
|
+
--crepe-color-on-surface-variant: #4d4d4d;
|
|
8
|
+
--crepe-color-outline: #a8a8a8;
|
|
9
|
+
--crepe-color-primary: #333333;
|
|
10
|
+
--crepe-color-secondary: #cfcfcf;
|
|
11
|
+
--crepe-color-on-secondary: #000000;
|
|
12
|
+
--crepe-color-inverse: #f0f0f0;
|
|
13
|
+
--crepe-color-on-inverse: #1a1a1a;
|
|
14
|
+
--crepe-color-inline-code: #ba1a1a;
|
|
15
|
+
--crepe-color-error: #ba1a1a;
|
|
16
|
+
--crepe-color-hover: #e0e0e0;
|
|
17
|
+
--crepe-color-selected: #d5d5d5;
|
|
18
|
+
--crepe-color-inline-area: #cacaca;
|
|
19
|
+
|
|
20
|
+
--crepe-font-title: 'Noto Serif', Cambria, 'Times New Roman', Times, serif;
|
|
21
|
+
--crepe-font-default: 'Noto Sans', Arial, Helvetica, sans-serif;
|
|
22
|
+
--crepe-font-code:
|
|
23
|
+
'Space Mono', Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
|
|
24
|
+
|
|
25
|
+
--crepe-shadow-1:
|
|
26
|
+
0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
|
|
27
|
+
--crepe-shadow-2:
|
|
28
|
+
0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.3);
|
|
29
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.milkdown {
|
|
2
|
+
--crepe-color-background: #1a1a1a;
|
|
3
|
+
--crepe-color-on-background: #e6e6e6;
|
|
4
|
+
--crepe-color-surface: #121212;
|
|
5
|
+
--crepe-color-surface-low: #1c1c1c;
|
|
6
|
+
--crepe-color-on-surface: #d1d1d1;
|
|
7
|
+
--crepe-color-on-surface-variant: #a9a9a9;
|
|
8
|
+
--crepe-color-outline: #757575;
|
|
9
|
+
--crepe-color-primary: #b5b5b5;
|
|
10
|
+
--crepe-color-secondary: #4d4d4d;
|
|
11
|
+
--crepe-color-on-secondary: #d6d6d6;
|
|
12
|
+
--crepe-color-inverse: #e5e5e5;
|
|
13
|
+
--crepe-color-on-inverse: #2a2a2a;
|
|
14
|
+
--crepe-color-inline-code: #ff6666;
|
|
15
|
+
--crepe-color-error: #ff6666;
|
|
16
|
+
--crepe-color-hover: #232323;
|
|
17
|
+
--crepe-color-selected: #2f2f2f;
|
|
18
|
+
--crepe-color-inline-area: #2b2b2b;
|
|
19
|
+
|
|
20
|
+
--crepe-font-title: 'Noto Serif', Cambria, 'Times New Roman', Times, serif;
|
|
21
|
+
--crepe-font-default: 'Noto Sans', Arial, Helvetica, sans-serif;
|
|
22
|
+
--crepe-font-code:
|
|
23
|
+
'Space Mono', Fira Code, Menlo, Monaco, 'Courier New', Courier, monospace;
|
|
24
|
+
|
|
25
|
+
--crepe-shadow-1:
|
|
26
|
+
0px 1px 2px 0px rgba(255, 255, 255, 0.3),
|
|
27
|
+
0px 1px 3px 1px rgba(255, 255, 255, 0.15);
|
|
28
|
+
--crepe-shadow-2:
|
|
29
|
+
0px 1px 2px 0px rgba(255, 255, 255, 0.3),
|
|
30
|
+
0px 2px 6px 2px rgba(255, 255, 255, 0.15);
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.milkdown {
|
|
2
|
+
--crepe-color-background: #1b1c1d;
|
|
3
|
+
--crepe-color-on-background: #f8f9ff;
|
|
4
|
+
--crepe-color-surface: #111418;
|
|
5
|
+
--crepe-color-surface-low: #191c20;
|
|
6
|
+
--crepe-color-on-surface: #e1e2e8;
|
|
7
|
+
--crepe-color-on-surface-variant: #c3c6cf;
|
|
8
|
+
--crepe-color-outline: #8d9199;
|
|
9
|
+
--crepe-color-primary: #a1c9fd;
|
|
10
|
+
--crepe-color-secondary: #3c4858;
|
|
11
|
+
--crepe-color-on-secondary: #d7e3f8;
|
|
12
|
+
--crepe-color-inverse: #e1e2e8;
|
|
13
|
+
--crepe-color-on-inverse: #2e3135;
|
|
14
|
+
--crepe-color-inline-code: #ffb4ab;
|
|
15
|
+
--crepe-color-error: #ffb4ab;
|
|
16
|
+
--crepe-color-hover: #1d2024;
|
|
17
|
+
--crepe-color-selected: #32353a;
|
|
18
|
+
--crepe-color-inline-area: #111418;
|
|
19
|
+
|
|
20
|
+
--crepe-font-title: Rubik, Cambria, 'Times New Roman', Times, serif;
|
|
21
|
+
--crepe-font-default: Inter, Arial, Helvetica, sans-serif;
|
|
22
|
+
--crepe-font-code:
|
|
23
|
+
'JetBrains Mono', Menlo, Monaco, 'Courier New', Courier, monospace;
|
|
24
|
+
|
|
25
|
+
--crepe-shadow-1:
|
|
26
|
+
0px 1px 2px 0px rgba(255, 255, 255, 0.3),
|
|
27
|
+
0px 1px 3px 1px rgba(255, 255, 255, 0.15);
|
|
28
|
+
--crepe-shadow-2:
|
|
29
|
+
0px 1px 2px 0px rgba(255, 255, 255, 0.3),
|
|
30
|
+
0px 2px 6px 2px rgba(255, 255, 255, 0.15);
|
|
31
|
+
}
|
package/esm2022/app/modules/markdown-editor/components/markdown-editor/markdown-editor.component.mjs
CHANGED
|
@@ -189,7 +189,7 @@ export class FsMarkdownEditorComponent {
|
|
|
189
189
|
useExisting: forwardRef(() => FsMarkdownEditorComponent),
|
|
190
190
|
multi: true,
|
|
191
191
|
},
|
|
192
|
-
], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editorRef"], descendants: true }], ngImport: i0, template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i1.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i1.FsLabelMessageComponent, selector: "fs-label-message" }], viewProviders: [
|
|
192
|
+
], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editorRef"], descendants: true }], ngImport: i0, template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{margin-left:80px;position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i1.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i1.FsLabelMessageComponent, selector: "fs-label-message" }], viewProviders: [
|
|
193
193
|
{
|
|
194
194
|
provide: ControlContainer,
|
|
195
195
|
deps: [[Optional, NgForm]],
|
|
@@ -218,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
218
218
|
},
|
|
219
219
|
], standalone: true, imports: [
|
|
220
220
|
FsLabelModule,
|
|
221
|
-
], template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"] }]
|
|
221
|
+
], template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{margin-left:80px;position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"] }]
|
|
222
222
|
}], propDecorators: { editorRef: [{
|
|
223
223
|
type: ViewChild,
|
|
224
224
|
args: ['editorRef']
|
|
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
236
236
|
type: HostBinding,
|
|
237
237
|
args: ['class.initialized']
|
|
238
238
|
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYXJrZG93bi1lZGl0b3IvY29tcG9uZW50cy9tYXJrZG93bi1lZGl0b3IvbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYXJrZG93bi1lZGl0b3IvY29tcG9uZW50cy9tYXJrZG93bi1lZGl0b3IvbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixNQUFNLEdBR1AsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFnQ2pGLE1BQU0sT0FBTyx5QkFBeUI7SUFHTCxTQUFTLENBQWE7SUFFaEIsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUUxQyxNQUFNLEdBQTJCLEVBQUUs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xDb250YWluZXIsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdGb3JtLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZTX01BUktET1dOX0VESVRPUl9DT05GSUcgfSBmcm9tICcuLi8uLi9pbmplY3RzL2NvbmZpZy5pbmplY3QnO1xuaW1wb3J0IHsgRnNNYXJrZG93bkVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbWFya2Rvd24tZWRpdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBGc01pbGtkb3duTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21pbGtkb3duLWxvYWRlci5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1tYXJrZG93bi1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRnNNYXJrZG93bkVkaXRvckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGc01hcmtkb3duRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICAgIGRlcHM6IFtbT3B0aW9uYWwsIE5nRm9ybV1dLFxuICAgICAgdXNlRmFjdG9yeTogKG5nRm9ybTogTmdGb3JtKSA9PiBuZ0Zvcm0sXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZzTGFiZWxNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzTWFya2Rvd25FZGl0b3JDb21wb25lbnRcbmltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvclJlZicpIHB1YmxpYyBlZGl0b3JSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c2VkJykgcHVibGljIGNsYXNzRm9jdXNlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IEZzTWFya2Rvd25FZGl0b3JDb25maWcgPSB7fTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbml0aWFsaXplZCcpXG4gIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb250YWluZXJJRCA9IGBmcy1tYXJrZG93bi1lZGl0b3ItJHtndWlkKCd4eHgnKX1gO1xuICBwdWJsaWMgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgb25DaGFuZ2U6IChkYXRhOiBhbnkpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfY3JlcGU6IGFueTtcbiAgcHJpdmF0ZSBfZWRpdG9yVmlld0N0eDogYW55O1xuICBwcml2YXRlIF9wYXJzZXJDdHg6IGFueTtcbiAgcHJpdmF0ZSBfbWFya2Rvd24gPSAnJztcbiAgcHJpdmF0ZSBfZWRpdG9yUmVhZHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZWZhdWx0Q29uZmlnID0gaW5qZWN0PEZzTWFya2Rvd25FZGl0b3JDb25maWc+KEZTX01BUktET1dOX0VESVRPUl9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfbG9hZGVyID0gaW5qZWN0KEZzTWlsa2Rvd25Mb2FkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG5cbiAgcHVibGljIGdldCBtYXJrZG93bigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZG93bjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4uKHRoaXMuX2RlZmF1bHRDb25maWcgfHwge30pLCAuLi4odGhpcy5jb25maWcgfHwge30pIH07XG4gICAgdGhpcy5fbG9hZGVyLmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZGVyLmxvYWRlZCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChsb2FkZWQpID0+IHtcbiAgICAgICAgaWYgKGxvYWRlZCkge1xuICAgICAgICAgIHRoaXMuX2luaXRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbWFya2Rvd24gPSBtYXJrZG93biB8fCAnJztcblxuICAgIGlmICh0aGlzLl9lZGl0b3JSZWFkeSkge1xuICAgICAgdGhpcy5fc2V0RWRpdG9yQ29udGVudCh0aGlzLl9tYXJrZG93bik7XG4gICAgfVxuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGRhdGE6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IGVycjogYW55ID0ge307XG4gICAgaWYgKHRoaXMuY29uZmlnLm1heExlbmd0aCAmJiB0aGlzLl9tYXJrZG93bikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gdGhpcy5fbWFya2Rvd24ubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCA+IHRoaXMuY29uZmlnLm1heExlbmd0aCkge1xuICAgICAgICBlcnIubWF4TGVuZ3RoRXJyb3IgPSBgTXVzdCBiZSAke3RoaXMuY29uZmlnLm1heExlbmd0aH0gY2hhcmFjdGVycyBvciBmZXdlci4gWW91IGVudGVyZWQgJHtsZW5ndGh9IGNoYXJhY3RlcnMuYDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyKS5sZW5ndGggPyBlcnIgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZSgnJyk7XG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXJrZG93bihtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKG1hcmtkb3duKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNYXJrZG93bigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fY3JlcGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXJrZG93bjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY3JlcGUuZ2V0TWFya2Rvd24oKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3JlcGUgJiYgdGhpcy5fZWRpdG9yVmlld0N0eCkge1xuICAgICAgdGhpcy5fY3JlcGUuZWRpdG9yLmFjdGlvbigoY3R4OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdmlldyA9IGN0eC5nZXQodGhpcy5fZWRpdG9yVmlld0N0eCk7XG4gICAgICAgIHZpZXcuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NyZXBlKSB7XG4gICAgICB0aGlzLl9jcmVwZS5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9jcmVwZSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuX2VkaXRvclJlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVkaXRvcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3JlcGUgfHwgIXRoaXMuZWRpdG9yUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWlsa2Rvd24gPSAod2luZG93IGFzIGFueSkuX19NSUxLRE9XTl9fO1xuICAgIGlmICghbWlsa2Rvd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01pbGtkb3duIG5vdCBsb2FkZWQuIEVuc3VyZSBhc3NldHMgYXJlIGNvbmZpZ3VyZWQuJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9lZGl0b3JWaWV3Q3R4ID0gbWlsa2Rvd24uZWRpdG9yVmlld0N0eDtcbiAgICB0aGlzLl9wYXJzZXJDdHggPSBtaWxrZG93bi5wYXJzZXJDdHg7XG5cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2NyZXBlID0gbmV3IG1pbGtkb3duLkNyZXBlKHtcbiAgICAgICAgcm9vdDogdGhpcy5lZGl0b3JSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLl9tYXJrZG93bixcbiAgICAgICAgZmVhdHVyZXM6IHt9LFxuICAgICAgICBmZWF0dXJlQ29uZmlnczoge1xuICAgICAgICAgIFttaWxrZG93bi5DcmVwZS5GZWF0dXJlLlBsYWNlaG9sZGVyXToge1xuICAgICAgICAgICAgdGV4dDogdGhpcy5jb25maWcucGxhY2Vob2xkZXIgfHwgJ1N0YXJ0IHR5cGluZy4uLicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9jcmVwZS5vbigobGlzdGVuZXI6IGFueSkgPT4ge1xuICAgICAgICBsaXN0ZW5lci5tYXJrZG93blVwZGF0ZWQoKF9jdHg6IGFueSwgbWFya2Rvd246IHN0cmluZywgcHJldk1hcmtkb3duOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAobWFya2Rvd24gIT09IHByZXZNYXJrZG93bikge1xuICAgICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9tYXJrZG93biA9IG1hcmtkb3duO1xuICAgICAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobWFya2Rvd24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2NyZXBlLmNyZWF0ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZWRpdG9yUmVhZHkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHRoaXMuX21hcmtkb3duKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRFZGl0b3JDb250ZW50KHRoaXMuX21hcmtkb3duKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5hdXRvZm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5jb25maWcuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmluaXRpYWxpemVkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RWRpdG9yQ29udGVudChtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fY3JlcGUuZWRpdG9yLmFjdGlvbigoY3R4OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHZpZXcgPSBjdHguZ2V0KHRoaXMuX2VkaXRvclZpZXdDdHgpO1xuICAgICAgY29uc3QgcGFyc2VyID0gY3R4LmdldCh0aGlzLl9wYXJzZXJDdHgpO1xuICAgICAgY29uc3QgZG9jID0gcGFyc2VyKG1hcmtkb3duKTtcbiAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgY29uc3QgdHIgPSB2aWV3LnN0YXRlLnRyLnJlcGxhY2VXaXRoKFxuICAgICAgICAgIDAsIHZpZXcuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSwgZG9jLmNvbnRlbnQsXG4gICAgICAgICk7XG4gICAgICAgIHZpZXcuZGlzcGF0Y2godHIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZnMtbGFiZWwtZmllbGRcbiAgW2FwcGVhcmFuY2VdPVwiJ291dGxpbmUnXCJcbiAgW2hvdmVyYWJsZV09XCJ0cnVlXCJcbiAgW3Nob3dPdXRsaW5lXT1cImluaXRpYWxpemVkXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3BhZGxlc3NdPVwiY29uZmlnLnBhZGxlc3NcIlxuICBbY2xhc3MuaW5pdGlhbGl6ZWRdPVwiaW5pdGlhbGl6ZWRcIj5cbiAgQGlmIChjb25maWcubGFiZWwpIHtcbiAgICA8ZnMtbGFiZWw+XG4gICAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICA8L2ZzLWxhYmVsPlxuICB9XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1hcmtkb3duLWVkaXRvci1jb250YWluZXJcIlxuICAgIFtpZF09XCJjb250YWluZXJJRFwiPlxuICAgIDxkaXYgI2VkaXRvclJlZj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxmcy1sYWJlbC1tZXNzYWdlPlxuICAgIDxkaXYgY2xhc3M9XCJmcy1mb3JtLW1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1mb3JtLWhpbnRcIj5cbiAgICAgICAge3sgY29uZmlnLmhpbnQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2ZzLWxhYmVsLW1lc3NhZ2U+XG48L2ZzLWxhYmVsLWZpZWxkPlxuIl19
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYXJrZG93bi1lZGl0b3IvY29tcG9uZW50cy9tYXJrZG93bi1lZGl0b3IvbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYXJrZG93bi1lZGl0b3IvY29tcG9uZW50cy9tYXJrZG93bi1lZGl0b3IvbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixNQUFNLEdBR1AsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFnQ2pGLE1BQU0sT0FBTyx5QkFBeUI7SUFHTCxTQUFTLENBQWE7SUFFaEIsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUUxQyxNQUFNLEdBQTJCLEVBQUUs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xDb250YWluZXIsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdGb3JtLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZTX01BUktET1dOX0VESVRPUl9DT05GSUcgfSBmcm9tICcuLi8uLi9pbmplY3RzL2NvbmZpZy5pbmplY3QnO1xuaW1wb3J0IHsgRnNNYXJrZG93bkVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbWFya2Rvd24tZWRpdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBGc01pbGtkb3duTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21pbGtkb3duLWxvYWRlci5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1tYXJrZG93bi1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFya2Rvd24tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRnNNYXJrZG93bkVkaXRvckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGc01hcmtkb3duRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICAgIGRlcHM6IFtbT3B0aW9uYWwsIE5nRm9ybV1dLFxuICAgICAgdXNlRmFjdG9yeTogKG5nRm9ybTogTmdGb3JtKSA9PiBuZ0Zvcm0sXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZzTGFiZWxNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzTWFya2Rvd25FZGl0b3JDb21wb25lbnRcbmltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvclJlZicpIHB1YmxpYyBlZGl0b3JSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c2VkJykgcHVibGljIGNsYXNzRm9jdXNlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IEZzTWFya2Rvd25FZGl0b3JDb25maWcgPSB7fTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pbml0aWFsaXplZCcpXG4gIHB1YmxpYyBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb250YWluZXJJRCA9IGBmcy1tYXJrZG93bi1lZGl0b3ItJHtndWlkKCd4eHgnKX1gO1xuICBwdWJsaWMgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuICBwdWJsaWMgb25DaGFuZ2U6IChkYXRhOiBhbnkpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfY3JlcGU6IGFueTtcbiAgcHJpdmF0ZSBfZWRpdG9yVmlld0N0eDogYW55O1xuICBwcml2YXRlIF9wYXJzZXJDdHg6IGFueTtcbiAgcHJpdmF0ZSBfbWFya2Rvd24gPSAnJztcbiAgcHJpdmF0ZSBfZWRpdG9yUmVhZHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZWZhdWx0Q29uZmlnID0gaW5qZWN0PEZzTWFya2Rvd25FZGl0b3JDb25maWc+KEZTX01BUktET1dOX0VESVRPUl9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfbG9hZGVyID0gaW5qZWN0KEZzTWlsa2Rvd25Mb2FkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG5cbiAgcHVibGljIGdldCBtYXJrZG93bigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZG93bjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4uKHRoaXMuX2RlZmF1bHRDb25maWcgfHwge30pLCAuLi4odGhpcy5jb25maWcgfHwge30pIH07XG4gICAgdGhpcy5fbG9hZGVyLmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZGVyLmxvYWRlZCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChsb2FkZWQpID0+IHtcbiAgICAgICAgaWYgKGxvYWRlZCkge1xuICAgICAgICAgIHRoaXMuX2luaXRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbWFya2Rvd24gPSBtYXJrZG93biB8fCAnJztcblxuICAgIGlmICh0aGlzLl9lZGl0b3JSZWFkeSkge1xuICAgICAgdGhpcy5fc2V0RWRpdG9yQ29udGVudCh0aGlzLl9tYXJrZG93bik7XG4gICAgfVxuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGRhdGE6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IGVycjogYW55ID0ge307XG4gICAgaWYgKHRoaXMuY29uZmlnLm1heExlbmd0aCAmJiB0aGlzLl9tYXJrZG93bikge1xuICAgICAgY29uc3QgbGVuZ3RoID0gdGhpcy5fbWFya2Rvd24ubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCA+IHRoaXMuY29uZmlnLm1heExlbmd0aCkge1xuICAgICAgICBlcnIubWF4TGVuZ3RoRXJyb3IgPSBgTXVzdCBiZSAke3RoaXMuY29uZmlnLm1heExlbmd0aH0gY2hhcmFjdGVycyBvciBmZXdlci4gWW91IGVudGVyZWQgJHtsZW5ndGh9IGNoYXJhY3RlcnMuYDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyKS5sZW5ndGggPyBlcnIgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZSgnJyk7XG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXJrZG93bihtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKG1hcmtkb3duKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNYXJrZG93bigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fY3JlcGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXJrZG93bjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY3JlcGUuZ2V0TWFya2Rvd24oKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3JlcGUgJiYgdGhpcy5fZWRpdG9yVmlld0N0eCkge1xuICAgICAgdGhpcy5fY3JlcGUuZWRpdG9yLmFjdGlvbigoY3R4OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdmlldyA9IGN0eC5nZXQodGhpcy5fZWRpdG9yVmlld0N0eCk7XG4gICAgICAgIHZpZXcuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NyZXBlKSB7XG4gICAgICB0aGlzLl9jcmVwZS5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9jcmVwZSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuX2VkaXRvclJlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVkaXRvcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3JlcGUgfHwgIXRoaXMuZWRpdG9yUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWlsa2Rvd24gPSAod2luZG93IGFzIGFueSkuX19NSUxLRE9XTl9fO1xuICAgIGlmICghbWlsa2Rvd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01pbGtkb3duIG5vdCBsb2FkZWQuIEVuc3VyZSBhc3NldHMgYXJlIGNvbmZpZ3VyZWQuJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9lZGl0b3JWaWV3Q3R4ID0gbWlsa2Rvd24uZWRpdG9yVmlld0N0eDtcbiAgICB0aGlzLl9wYXJzZXJDdHggPSBtaWxrZG93bi5wYXJzZXJDdHg7XG5cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2NyZXBlID0gbmV3IG1pbGtkb3duLkNyZXBlKHtcbiAgICAgICAgcm9vdDogdGhpcy5lZGl0b3JSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLl9tYXJrZG93bixcbiAgICAgICAgZmVhdHVyZXM6IHt9LFxuICAgICAgICBmZWF0dXJlQ29uZmlnczoge1xuICAgICAgICAgIFttaWxrZG93bi5DcmVwZS5GZWF0dXJlLlBsYWNlaG9sZGVyXToge1xuICAgICAgICAgICAgdGV4dDogdGhpcy5jb25maWcucGxhY2Vob2xkZXIgfHwgJ1N0YXJ0IHR5cGluZy4uLicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9jcmVwZS5vbigobGlzdGVuZXI6IGFueSkgPT4ge1xuICAgICAgICBsaXN0ZW5lci5tYXJrZG93blVwZGF0ZWQoKF9jdHg6IGFueSwgbWFya2Rvd246IHN0cmluZywgcHJldk1hcmtkb3duOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAobWFya2Rvd24gIT09IHByZXZNYXJrZG93bikge1xuICAgICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9tYXJrZG93biA9IG1hcmtkb3duO1xuICAgICAgICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobWFya2Rvd24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2NyZXBlLmNyZWF0ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZWRpdG9yUmVhZHkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHRoaXMuX21hcmtkb3duKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRFZGl0b3JDb250ZW50KHRoaXMuX21hcmtkb3duKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5hdXRvZm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5jb25maWcuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmluaXRpYWxpemVkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RWRpdG9yQ29udGVudChtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fY3JlcGUuZWRpdG9yLmFjdGlvbigoY3R4OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHZpZXcgPSBjdHguZ2V0KHRoaXMuX2VkaXRvclZpZXdDdHgpO1xuICAgICAgY29uc3QgcGFyc2VyID0gY3R4LmdldCh0aGlzLl9wYXJzZXJDdHgpO1xuICAgICAgY29uc3QgZG9jID0gcGFyc2VyKG1hcmtkb3duKTtcbiAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgY29uc3QgdHIgPSB2aWV3LnN0YXRlLnRyLnJlcGxhY2VXaXRoKFxuICAgICAgICAgIDAsIHZpZXcuc3RhdGUuZG9jLmNvbnRlbnQuc2l6ZSwgZG9jLmNvbnRlbnQsXG4gICAgICAgICk7XG4gICAgICAgIHZpZXcuZGlzcGF0Y2godHIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZnMtbGFiZWwtZmllbGRcbiAgW2FwcGVhcmFuY2VdPVwiJ291dGxpbmUnXCJcbiAgW2hvdmVyYWJsZV09XCJ0cnVlXCJcbiAgW3Nob3dPdXRsaW5lXT1cImluaXRpYWxpemVkXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3BhZGxlc3NdPVwiY29uZmlnLnBhZGxlc3NcIlxuICBbY2xhc3MuaW5pdGlhbGl6ZWRdPVwiaW5pdGlhbGl6ZWRcIj5cbiAgQGlmIChjb25maWcubGFiZWwpIHtcbiAgICA8ZnMtbGFiZWw+XG4gICAgICB7eyBjb25maWcubGFiZWwgfX1cbiAgICA8L2ZzLWxhYmVsPlxuICB9XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1hcmtkb3duLWVkaXRvci1jb250YWluZXJcIlxuICAgIFtpZF09XCJjb250YWluZXJJRFwiPlxuICAgIDxkaXYgI2VkaXRvclJlZj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxmcy1sYWJlbC1tZXNzYWdlPlxuICAgIDxkaXYgY2xhc3M9XCJmcy1mb3JtLW1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1mb3JtLWhpbnRcIj5cbiAgICAgICAge3sgY29uZmlnLmhpbnQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2ZzLWxhYmVsLW1lc3NhZ2U+XG48L2ZzLWxhYmVsLWZpZWxkPlxuIl19
|
|
@@ -275,7 +275,7 @@ class FsMarkdownEditorComponent {
|
|
|
275
275
|
useExisting: forwardRef(() => FsMarkdownEditorComponent),
|
|
276
276
|
multi: true,
|
|
277
277
|
},
|
|
278
|
-
], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editorRef"], descendants: true }], ngImport: i0, template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i1.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i1.FsLabelMessageComponent, selector: "fs-label-message" }], viewProviders: [
|
|
278
|
+
], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editorRef"], descendants: true }], ngImport: i0, template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{margin-left:80px;position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i1.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i1.FsLabelMessageComponent, selector: "fs-label-message" }], viewProviders: [
|
|
279
279
|
{
|
|
280
280
|
provide: ControlContainer,
|
|
281
281
|
deps: [[Optional, NgForm]],
|
|
@@ -304,7 +304,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
304
304
|
},
|
|
305
305
|
], standalone: true, imports: [
|
|
306
306
|
FsLabelModule,
|
|
307
|
-
], template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"] }]
|
|
307
|
+
], template: "<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n", styles: [":host{position:relative;display:block}:host ::ng-deep fs-label-field.initialized.appearance-outline .field-wrap{padding-top:6px;padding-bottom:4px}:host ::ng-deep .markdown-editor-container{position:relative;min-height:100px}:host ::ng-deep .milkdown{--crepe-color-background: transparent;--crepe-color-on-background: #1b1c1d;--crepe-color-surface: #f8f9ff;--crepe-color-surface-low: #f2f3fa;--crepe-color-on-surface: #191c20;--crepe-color-on-surface-variant: #43474e;--crepe-color-outline: #73777f;--crepe-color-primary: #37618e;--crepe-color-secondary: #d7e3f8;--crepe-color-on-secondary: #101c2b;--crepe-color-inverse: #2e3135;--crepe-color-on-inverse: #eff0f7;--crepe-color-inline-code: #ba1a1a;--crepe-color-error: #ba1a1a;--crepe-color-hover: #eceef4;--crepe-color-selected: #e1e2e8;--crepe-color-inline-area: #d8dae0;--crepe-font-title: Rubik, Cambria, \"Times New Roman\", Times, serif;--crepe-font-default: Inter, Arial, Helvetica, sans-serif;--crepe-font-code: \"JetBrains Mono\", Menlo, Monaco, \"Courier New\", Courier, monospace;--crepe-shadow-1: 0px 1px 3px 1px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3);--crepe-shadow-2: 0px 2px 6px 2px rgba(0, 0, 0, .15), 0px 1px 2px 0px rgba(0, 0, 0, .3)}:host ::ng-deep .milkdown{margin-left:80px;position:relative;color:var(--crepe-color-on-background);background:var(--crepe-color-background)}:host ::ng-deep .milkdown *{margin:0;padding:0;box-sizing:border-box}:host ::ng-deep .milkdown button,:host ::ng-deep .milkdown input{border:none;background:none;box-shadow:none}:host ::ng-deep .milkdown button:focus,:host ::ng-deep .milkdown input:focus{outline:none}:host ::ng-deep .milkdown :focus-visible{outline:none}:host ::ng-deep .milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}:host ::ng-deep .milkdown .ProseMirror-focused{outline:none}:host ::ng-deep .milkdown .ProseMirror{padding:10px 0}:host ::ng-deep .milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode{background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);outline:none}:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode::selection,:host ::ng-deep .milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true]::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] *::selection,:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode{background:transparent}:host ::ng-deep .milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}:host ::ng-deep .milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}:host ::ng-deep .milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}:host ::ng-deep .milkdown .ProseMirror h1,:host ::ng-deep .milkdown .ProseMirror h2,:host ::ng-deep .milkdown .ProseMirror h3,:host ::ng-deep .milkdown .ProseMirror h4,:host ::ng-deep .milkdown .ProseMirror h5,:host ::ng-deep .milkdown .ProseMirror h6{font-weight:400;padding:2px 0}:host ::ng-deep .milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}:host ::ng-deep .milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}:host ::ng-deep .milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}:host ::ng-deep .milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}:host ::ng-deep .milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}:host ::ng-deep .milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}:host ::ng-deep .milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}:host ::ng-deep .milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}:host ::ng-deep .milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}:host ::ng-deep .milkdown .ProseMirror pre code{padding:0;background:transparent}:host ::ng-deep .milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}:host ::ng-deep .milkdown .ProseMirror blockquote:before{content:\"\";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}:host ::ng-deep .milkdown .ProseMirror blockquote hr{margin-bottom:16px}:host ::ng-deep .milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}:host ::ng-deep .milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:\"\";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}:host ::ng-deep .milkdown .ProseMirror ul,:host ::ng-deep .milkdown .ProseMirror ol{padding:0}:host ::ng-deep .milkdown .milkdown-code-block{--crepe-color-background: #1b1c1d;--crepe-color-on-background: #f8f9ff;--crepe-color-surface: #111418;--crepe-color-surface-low: #191c20;--crepe-color-on-surface: #e1e2e8;--crepe-color-on-surface-variant: #c3c6cf;--crepe-color-outline: #8d9199;--crepe-color-primary: #a1c9fd;--crepe-color-secondary: #3c4858;--crepe-color-on-secondary: #d7e3f8;--crepe-color-inverse: #e1e2e8;--crepe-color-on-inverse: #2e3135;--crepe-color-inline-code: #ffb4ab;--crepe-color-error: #ffb4ab;--crepe-color-hover: #1d2024;--crepe-color-selected: #32353a;--crepe-color-inline-area: #111418;--crepe-shadow-1: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 1px 3px 1px rgba(255, 255, 255, .15);--crepe-shadow-2: 0px 1px 2px 0px rgba(255, 255, 255, .3), 0px 2px 6px 2px rgba(255, 255, 255, .15);background:var(--crepe-color-surface);border-radius:6px}:host.disabled ::ng-deep .markdown-editor-container{opacity:.5;pointer-events:none}\n"] }]
|
|
308
308
|
}], propDecorators: { editorRef: [{
|
|
309
309
|
type: ViewChild,
|
|
310
310
|
args: ['editorRef']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestitch-markdown-editor.mjs","sources":["../../src/app/modules/markdown-editor/injects/config.inject.ts","../../src/app/modules/markdown-editor/services/milkdown-loader.service.ts","../../src/app/modules/markdown-editor/components/markdown-editor/markdown-editor.component.ts","../../src/app/modules/markdown-editor/components/markdown-editor/markdown-editor.component.html","../../src/app/modules/markdown-editor/fs-markdown-editor.module.ts","../../src/app/modules/markdown-renderer/components/markdown-renderer/markdown-renderer.component.ts","../../src/app/modules/markdown-renderer/components/markdown-renderer/markdown-renderer.component.html","../../src/firestitch-markdown-editor.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FS_MARKDOWN_EDITOR_DEFAULT_CONFIG = new InjectionToken<any[]>('fs-markdown-editor.default-config');\nexport const FS_MARKDOWN_EDITOR_CONFIG = new InjectionToken<any[]>('fs-markdown-editor.config');\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\nconst ASSET_BASE = '/assets/markdown-editor/';\n\nconst STYLESHEETS = [\n `${ASSET_BASE}theme/common/block-edit.css`,\n `${ASSET_BASE}theme/common/code-mirror.css`,\n `${ASSET_BASE}theme/common/cursor.css`,\n `${ASSET_BASE}theme/common/image-block.css`,\n `${ASSET_BASE}theme/common/latex.css`,\n `${ASSET_BASE}theme/common/link-tooltip.css`,\n `${ASSET_BASE}theme/common/list-item.css`,\n `${ASSET_BASE}theme/common/placeholder.css`,\n `${ASSET_BASE}theme/common/toolbar.css`,\n `${ASSET_BASE}theme/common/table.css`,\n];\n\nconst SCRIPT = `${ASSET_BASE}milkdown.js`;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsMilkdownLoaderService {\n private _document = inject<Document>(DOCUMENT);\n private _loaded = new BehaviorSubject(false);\n private _loading = false;\n\n private _loaded$ = this._loaded.asObservable()\n .pipe(\n shareReplay(1),\n );\n\n public get loaded$(): Observable<boolean> {\n return this._loaded$;\n }\n\n public load(): void {\n if (this._loaded.value || this._loading) {\n if (this._loaded.value) {\n this._loaded.next(true);\n }\n\n return;\n }\n\n this._loading = true;\n\n let stylesRemaining = STYLESHEETS.length;\n let scriptDone = false;\n\n const checkComplete = () => {\n if (stylesRemaining === 0 && scriptDone) {\n this._loading = false;\n this._loaded.next(true);\n }\n };\n\n const onStyleDone = () => {\n stylesRemaining--;\n checkComplete();\n };\n\n STYLESHEETS.forEach((href) => {\n if (this._document.querySelector(`link[href=\"${href}\"]`)) {\n onStyleDone();\n\n return;\n }\n\n const link = this._document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n link.onload = onStyleDone;\n link.onerror = onStyleDone;\n this._document.head.appendChild(link);\n });\n\n if (this._document.querySelector(`script[src=\"${SCRIPT}\"]`)) {\n scriptDone = true;\n checkComplete();\n\n return;\n }\n\n const script = this._document.createElement('script');\n script.src = SCRIPT;\n script.onload = () => {\n scriptDone = true;\n checkComplete();\n };\n script.onerror = () => {\n scriptDone = true;\n checkComplete();\n };\n this._document.head.appendChild(script);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlContainer,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgForm,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { guid } from '@firestitch/common';\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FS_MARKDOWN_EDITOR_CONFIG } from '../../injects/config.inject';\nimport { FsMarkdownEditorConfig } from '../../interfaces/markdown-editor-config';\nimport { FsMilkdownLoaderService } from '../../services/milkdown-loader.service';\n\n\n@Component({\n selector: 'fs-markdown-editor',\n templateUrl: './markdown-editor.component.html',\n styleUrls: ['./markdown-editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsMarkdownEditorComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => FsMarkdownEditorComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n deps: [[Optional, NgForm]],\n useFactory: (ngForm: NgForm) => ngForm,\n },\n ],\n standalone: true,\n imports: [\n FsLabelModule,\n ],\n})\nexport class FsMarkdownEditorComponent\nimplements OnInit, AfterViewInit, ControlValueAccessor, Validator, OnDestroy {\n\n @ViewChild('editorRef') public editorRef: ElementRef;\n\n @HostBinding('class.focused') public classFocused = false;\n\n @Input() public config: FsMarkdownEditorConfig = {};\n\n @Input()\n @HostBinding('class.disabled')\n public disabled = false;\n\n @HostBinding('class.initialized')\n public initialized = false;\n\n public readonly containerID = `fs-markdown-editor-${guid('xxx')}`;\n public onTouched: () => void;\n public onChange: (data: any) => void;\n\n private _crepe: any;\n private _editorViewCtx: any;\n private _parserCtx: any;\n private _markdown = '';\n private _editorReady = false;\n private _destroy$ = new Subject<void>();\n private _defaultConfig = inject<FsMarkdownEditorConfig>(FS_MARKDOWN_EDITOR_CONFIG, { optional: true });\n private _cdRef = inject(ChangeDetectorRef);\n private _loader = inject(FsMilkdownLoaderService);\n private _zone = inject(NgZone);\n\n\n public get markdown(): string {\n return this._markdown;\n }\n\n public ngOnInit(): void {\n this.config = { ...(this._defaultConfig || {}), ...(this.config || {}) };\n this._loader.load();\n }\n\n public ngAfterViewInit(): void {\n this._loader.loaded$\n .pipe(takeUntil(this._destroy$))\n .subscribe((loaded) => {\n if (loaded) {\n this._initEditor();\n }\n });\n }\n\n public writeValue(markdown: string): void {\n this._markdown = markdown || '';\n\n if (this._editorReady) {\n this._setEditorContent(this._markdown);\n }\n\n this._cdRef.markForCheck();\n }\n\n public registerOnChange(fn: (data: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public validate(): ValidationErrors | null {\n const err: any = {};\n if (this.config.maxLength && this._markdown) {\n const length = this._markdown.length;\n if (length > this.config.maxLength) {\n err.maxLengthError = `Must be ${this.config.maxLength} characters or fewer. You entered ${length} characters.`;\n }\n }\n\n return Object.keys(err).length ? err : null;\n }\n\n public clear(): void {\n this.writeValue('');\n if (this.onChange) {\n this.onChange('');\n }\n }\n\n public setMarkdown(markdown: string): void {\n this.writeValue(markdown);\n }\n\n public getMarkdown(): string {\n if (!this._crepe) {\n return this._markdown;\n }\n\n return this._crepe.getMarkdown();\n }\n\n public focus(): void {\n if (this._crepe && this._editorViewCtx) {\n this._crepe.editor.action((ctx: any) => {\n const view = ctx.get(this._editorViewCtx);\n view.focus();\n });\n }\n }\n\n public disable(): void {\n this.disabled = true;\n this._cdRef.markForCheck();\n }\n\n public destroy(): void {\n if (this._crepe) {\n this._crepe.destroy();\n this._crepe = null;\n }\n this._editorReady = false;\n this.initialized = false;\n this._cdRef.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this.destroy();\n }\n\n private _initEditor(): void {\n if (this._crepe || !this.editorRef) {\n return;\n }\n\n const milkdown = (window as any).__MILKDOWN__;\n if (!milkdown) {\n console.error('Milkdown not loaded. Ensure assets are configured.');\n\n return;\n }\n\n this._editorViewCtx = milkdown.editorViewCtx;\n this._parserCtx = milkdown.parserCtx;\n\n this._zone.runOutsideAngular(() => {\n this._crepe = new milkdown.Crepe({\n root: this.editorRef.nativeElement,\n defaultValue: this._markdown,\n features: {},\n featureConfigs: {\n [milkdown.Crepe.Feature.Placeholder]: {\n text: this.config.placeholder || 'Start typing...',\n },\n },\n });\n\n this._crepe.on((listener: any) => {\n listener.markdownUpdated((_ctx: any, markdown: string, prevMarkdown: string) => {\n if (markdown !== prevMarkdown) {\n this._zone.run(() => {\n this._markdown = markdown;\n if (this.onChange) {\n this.onChange(markdown);\n }\n if (this.onTouched) {\n this.onTouched();\n }\n this._cdRef.markForCheck();\n });\n }\n });\n });\n\n this._crepe.create().then(() => {\n this._zone.run(() => {\n this._editorReady = true;\n this.initialized = true;\n\n if (this._markdown) {\n this._setEditorContent(this._markdown);\n }\n\n this._cdRef.markForCheck();\n\n if (this.config.autofocus) {\n this.focus();\n }\n\n if (this.config.initialized) {\n this.config.initialized();\n }\n });\n });\n });\n }\n\n private _setEditorContent(markdown: string): void {\n this._crepe.editor.action((ctx: any) => {\n const view = ctx.get(this._editorViewCtx);\n const parser = ctx.get(this._parserCtx);\n const doc = parser(markdown);\n if (doc) {\n const tr = view.state.tr.replaceWith(\n 0, view.state.doc.content.size, doc.content,\n );\n view.dispatch(tr);\n }\n });\n }\n}\n","<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsMarkdownEditorComponent } from './components/markdown-editor/markdown-editor.component';\nimport { FS_MARKDOWN_EDITOR_CONFIG, FS_MARKDOWN_EDITOR_DEFAULT_CONFIG } from './injects/config.inject';\nimport { FsMarkdownEditorConfig } from './interfaces/markdown-editor-config';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FsLabelModule,\n FsMarkdownEditorComponent,\n ],\n exports: [\n FsMarkdownEditorComponent,\n ],\n})\nexport class FsMarkdownEditorModule {\n public static forRoot(config: FsMarkdownEditorConfig = {}): ModuleWithProviders<FsMarkdownEditorModule> {\n return {\n ngModule: FsMarkdownEditorModule,\n providers: [\n { provide: FS_MARKDOWN_EDITOR_DEFAULT_CONFIG, useValue: config },\n {\n provide: FS_MARKDOWN_EDITOR_CONFIG,\n useFactory: markdownEditorConfigFactory,\n deps: [FS_MARKDOWN_EDITOR_DEFAULT_CONFIG],\n },\n ],\n };\n }\n}\n\nexport function markdownEditorConfigFactory(config: FsMarkdownEditorConfig) {\n return {\n ...config,\n };\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n\n@Component({\n selector: 'fs-markdown-renderer',\n templateUrl: 'markdown-renderer.component.html',\n styleUrls: ['markdown-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class FsMarkdownRendererComponent {\n private _sanitizer = inject(DomSanitizer);\n private _cdRef = inject(ChangeDetectorRef);\n\n @Input('markdown') public set setMarkdown(markdown: string) {\n this._rawMarkdown = markdown || '';\n this._renderMarkdown();\n }\n\n public renderedHtml: SafeHtml;\n\n private _rawMarkdown = '';\n\n private _renderMarkdown(): void {\n const html = this._markdownToHtml(this._rawMarkdown);\n this.renderedHtml = this._sanitizer.bypassSecurityTrustHtml(html);\n this._cdRef.markForCheck();\n }\n\n private _markdownToHtml(markdown: string): string {\n if (!markdown) {\n return '';\n }\n\n let html = markdown;\n\n html = html.replace(/^### (.+)$/gm, '<h3>$1</h3>');\n html = html.replace(/^## (.+)$/gm, '<h2>$1</h2>');\n html = html.replace(/^# (.+)$/gm, '<h1>$1</h1>');\n\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n html = html.replace(/\\*(.+?)\\*/g, '<em>$1</em>');\n html = html.replace(/~~(.+?)~~/g, '<del>$1</del>');\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n html = html.replace(/```(\\w*)\\n([\\s\\S]*?)```/g, '<pre><code class=\"language-$1\">$2</code></pre>');\n\n html = html.replace(/^\\> (.+)$/gm, '<blockquote>$1</blockquote>');\n\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\">$1</a>');\n\n html = html.replace(/\\n/g, '<br>');\n\n return html;\n }\n}\n","<div class=\"fs-markdown-renderer\" [innerHtml]=\"renderedHtml\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"firestitch-markdown-editor.mjs","sources":["../../src/app/modules/markdown-editor/injects/config.inject.ts","../../src/app/modules/markdown-editor/services/milkdown-loader.service.ts","../../src/app/modules/markdown-editor/components/markdown-editor/markdown-editor.component.ts","../../src/app/modules/markdown-editor/components/markdown-editor/markdown-editor.component.html","../../src/app/modules/markdown-editor/fs-markdown-editor.module.ts","../../src/app/modules/markdown-renderer/components/markdown-renderer/markdown-renderer.component.ts","../../src/app/modules/markdown-renderer/components/markdown-renderer/markdown-renderer.component.html","../../src/firestitch-markdown-editor.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FS_MARKDOWN_EDITOR_DEFAULT_CONFIG = new InjectionToken<any[]>('fs-markdown-editor.default-config');\nexport const FS_MARKDOWN_EDITOR_CONFIG = new InjectionToken<any[]>('fs-markdown-editor.config');\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\nconst ASSET_BASE = '/assets/markdown-editor/';\n\nconst STYLESHEETS = [\n `${ASSET_BASE}theme/common/block-edit.css`,\n `${ASSET_BASE}theme/common/code-mirror.css`,\n `${ASSET_BASE}theme/common/cursor.css`,\n `${ASSET_BASE}theme/common/image-block.css`,\n `${ASSET_BASE}theme/common/latex.css`,\n `${ASSET_BASE}theme/common/link-tooltip.css`,\n `${ASSET_BASE}theme/common/list-item.css`,\n `${ASSET_BASE}theme/common/placeholder.css`,\n `${ASSET_BASE}theme/common/toolbar.css`,\n `${ASSET_BASE}theme/common/table.css`,\n];\n\nconst SCRIPT = `${ASSET_BASE}milkdown.js`;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsMilkdownLoaderService {\n private _document = inject<Document>(DOCUMENT);\n private _loaded = new BehaviorSubject(false);\n private _loading = false;\n\n private _loaded$ = this._loaded.asObservable()\n .pipe(\n shareReplay(1),\n );\n\n public get loaded$(): Observable<boolean> {\n return this._loaded$;\n }\n\n public load(): void {\n if (this._loaded.value || this._loading) {\n if (this._loaded.value) {\n this._loaded.next(true);\n }\n\n return;\n }\n\n this._loading = true;\n\n let stylesRemaining = STYLESHEETS.length;\n let scriptDone = false;\n\n const checkComplete = () => {\n if (stylesRemaining === 0 && scriptDone) {\n this._loading = false;\n this._loaded.next(true);\n }\n };\n\n const onStyleDone = () => {\n stylesRemaining--;\n checkComplete();\n };\n\n STYLESHEETS.forEach((href) => {\n if (this._document.querySelector(`link[href=\"${href}\"]`)) {\n onStyleDone();\n\n return;\n }\n\n const link = this._document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n link.onload = onStyleDone;\n link.onerror = onStyleDone;\n this._document.head.appendChild(link);\n });\n\n if (this._document.querySelector(`script[src=\"${SCRIPT}\"]`)) {\n scriptDone = true;\n checkComplete();\n\n return;\n }\n\n const script = this._document.createElement('script');\n script.src = SCRIPT;\n script.onload = () => {\n scriptDone = true;\n checkComplete();\n };\n script.onerror = () => {\n scriptDone = true;\n checkComplete();\n };\n this._document.head.appendChild(script);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlContainer,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgForm,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { guid } from '@firestitch/common';\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FS_MARKDOWN_EDITOR_CONFIG } from '../../injects/config.inject';\nimport { FsMarkdownEditorConfig } from '../../interfaces/markdown-editor-config';\nimport { FsMilkdownLoaderService } from '../../services/milkdown-loader.service';\n\n\n@Component({\n selector: 'fs-markdown-editor',\n templateUrl: './markdown-editor.component.html',\n styleUrls: ['./markdown-editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsMarkdownEditorComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => FsMarkdownEditorComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n deps: [[Optional, NgForm]],\n useFactory: (ngForm: NgForm) => ngForm,\n },\n ],\n standalone: true,\n imports: [\n FsLabelModule,\n ],\n})\nexport class FsMarkdownEditorComponent\nimplements OnInit, AfterViewInit, ControlValueAccessor, Validator, OnDestroy {\n\n @ViewChild('editorRef') public editorRef: ElementRef;\n\n @HostBinding('class.focused') public classFocused = false;\n\n @Input() public config: FsMarkdownEditorConfig = {};\n\n @Input()\n @HostBinding('class.disabled')\n public disabled = false;\n\n @HostBinding('class.initialized')\n public initialized = false;\n\n public readonly containerID = `fs-markdown-editor-${guid('xxx')}`;\n public onTouched: () => void;\n public onChange: (data: any) => void;\n\n private _crepe: any;\n private _editorViewCtx: any;\n private _parserCtx: any;\n private _markdown = '';\n private _editorReady = false;\n private _destroy$ = new Subject<void>();\n private _defaultConfig = inject<FsMarkdownEditorConfig>(FS_MARKDOWN_EDITOR_CONFIG, { optional: true });\n private _cdRef = inject(ChangeDetectorRef);\n private _loader = inject(FsMilkdownLoaderService);\n private _zone = inject(NgZone);\n\n\n public get markdown(): string {\n return this._markdown;\n }\n\n public ngOnInit(): void {\n this.config = { ...(this._defaultConfig || {}), ...(this.config || {}) };\n this._loader.load();\n }\n\n public ngAfterViewInit(): void {\n this._loader.loaded$\n .pipe(takeUntil(this._destroy$))\n .subscribe((loaded) => {\n if (loaded) {\n this._initEditor();\n }\n });\n }\n\n public writeValue(markdown: string): void {\n this._markdown = markdown || '';\n\n if (this._editorReady) {\n this._setEditorContent(this._markdown);\n }\n\n this._cdRef.markForCheck();\n }\n\n public registerOnChange(fn: (data: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public validate(): ValidationErrors | null {\n const err: any = {};\n if (this.config.maxLength && this._markdown) {\n const length = this._markdown.length;\n if (length > this.config.maxLength) {\n err.maxLengthError = `Must be ${this.config.maxLength} characters or fewer. You entered ${length} characters.`;\n }\n }\n\n return Object.keys(err).length ? err : null;\n }\n\n public clear(): void {\n this.writeValue('');\n if (this.onChange) {\n this.onChange('');\n }\n }\n\n public setMarkdown(markdown: string): void {\n this.writeValue(markdown);\n }\n\n public getMarkdown(): string {\n if (!this._crepe) {\n return this._markdown;\n }\n\n return this._crepe.getMarkdown();\n }\n\n public focus(): void {\n if (this._crepe && this._editorViewCtx) {\n this._crepe.editor.action((ctx: any) => {\n const view = ctx.get(this._editorViewCtx);\n view.focus();\n });\n }\n }\n\n public disable(): void {\n this.disabled = true;\n this._cdRef.markForCheck();\n }\n\n public destroy(): void {\n if (this._crepe) {\n this._crepe.destroy();\n this._crepe = null;\n }\n this._editorReady = false;\n this.initialized = false;\n this._cdRef.markForCheck();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this.destroy();\n }\n\n private _initEditor(): void {\n if (this._crepe || !this.editorRef) {\n return;\n }\n\n const milkdown = (window as any).__MILKDOWN__;\n if (!milkdown) {\n console.error('Milkdown not loaded. Ensure assets are configured.');\n\n return;\n }\n\n this._editorViewCtx = milkdown.editorViewCtx;\n this._parserCtx = milkdown.parserCtx;\n\n this._zone.runOutsideAngular(() => {\n this._crepe = new milkdown.Crepe({\n root: this.editorRef.nativeElement,\n defaultValue: this._markdown,\n features: {},\n featureConfigs: {\n [milkdown.Crepe.Feature.Placeholder]: {\n text: this.config.placeholder || 'Start typing...',\n },\n },\n });\n\n this._crepe.on((listener: any) => {\n listener.markdownUpdated((_ctx: any, markdown: string, prevMarkdown: string) => {\n if (markdown !== prevMarkdown) {\n this._zone.run(() => {\n this._markdown = markdown;\n if (this.onChange) {\n this.onChange(markdown);\n }\n if (this.onTouched) {\n this.onTouched();\n }\n this._cdRef.markForCheck();\n });\n }\n });\n });\n\n this._crepe.create().then(() => {\n this._zone.run(() => {\n this._editorReady = true;\n this.initialized = true;\n\n if (this._markdown) {\n this._setEditorContent(this._markdown);\n }\n\n this._cdRef.markForCheck();\n\n if (this.config.autofocus) {\n this.focus();\n }\n\n if (this.config.initialized) {\n this.config.initialized();\n }\n });\n });\n });\n }\n\n private _setEditorContent(markdown: string): void {\n this._crepe.editor.action((ctx: any) => {\n const view = ctx.get(this._editorViewCtx);\n const parser = ctx.get(this._parserCtx);\n const doc = parser(markdown);\n if (doc) {\n const tr = view.state.tr.replaceWith(\n 0, view.state.doc.content.size, doc.content,\n );\n view.dispatch(tr);\n }\n });\n }\n}\n","<fs-label-field\n [appearance]=\"'outline'\"\n [hoverable]=\"true\"\n [showOutline]=\"initialized\"\n [disabled]=\"disabled\"\n [padless]=\"config.padless\"\n [class.initialized]=\"initialized\">\n @if (config.label) {\n <fs-label>\n {{ config.label }}\n </fs-label>\n }\n <div\n class=\"markdown-editor-container\"\n [id]=\"containerID\">\n <div #editorRef></div>\n </div>\n <fs-label-message>\n <div class=\"fs-form-message\">\n <div class=\"fs-form-hint\">\n {{ config.hint }}\n </div>\n </div>\n </fs-label-message>\n</fs-label-field>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { FsLabelModule } from '@firestitch/label';\n\nimport { FsMarkdownEditorComponent } from './components/markdown-editor/markdown-editor.component';\nimport { FS_MARKDOWN_EDITOR_CONFIG, FS_MARKDOWN_EDITOR_DEFAULT_CONFIG } from './injects/config.inject';\nimport { FsMarkdownEditorConfig } from './interfaces/markdown-editor-config';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FsLabelModule,\n FsMarkdownEditorComponent,\n ],\n exports: [\n FsMarkdownEditorComponent,\n ],\n})\nexport class FsMarkdownEditorModule {\n public static forRoot(config: FsMarkdownEditorConfig = {}): ModuleWithProviders<FsMarkdownEditorModule> {\n return {\n ngModule: FsMarkdownEditorModule,\n providers: [\n { provide: FS_MARKDOWN_EDITOR_DEFAULT_CONFIG, useValue: config },\n {\n provide: FS_MARKDOWN_EDITOR_CONFIG,\n useFactory: markdownEditorConfigFactory,\n deps: [FS_MARKDOWN_EDITOR_DEFAULT_CONFIG],\n },\n ],\n };\n }\n}\n\nexport function markdownEditorConfigFactory(config: FsMarkdownEditorConfig) {\n return {\n ...config,\n };\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n\n@Component({\n selector: 'fs-markdown-renderer',\n templateUrl: 'markdown-renderer.component.html',\n styleUrls: ['markdown-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class FsMarkdownRendererComponent {\n private _sanitizer = inject(DomSanitizer);\n private _cdRef = inject(ChangeDetectorRef);\n\n @Input('markdown') public set setMarkdown(markdown: string) {\n this._rawMarkdown = markdown || '';\n this._renderMarkdown();\n }\n\n public renderedHtml: SafeHtml;\n\n private _rawMarkdown = '';\n\n private _renderMarkdown(): void {\n const html = this._markdownToHtml(this._rawMarkdown);\n this.renderedHtml = this._sanitizer.bypassSecurityTrustHtml(html);\n this._cdRef.markForCheck();\n }\n\n private _markdownToHtml(markdown: string): string {\n if (!markdown) {\n return '';\n }\n\n let html = markdown;\n\n html = html.replace(/^### (.+)$/gm, '<h3>$1</h3>');\n html = html.replace(/^## (.+)$/gm, '<h2>$1</h2>');\n html = html.replace(/^# (.+)$/gm, '<h1>$1</h1>');\n\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n html = html.replace(/\\*(.+?)\\*/g, '<em>$1</em>');\n html = html.replace(/~~(.+?)~~/g, '<del>$1</del>');\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n html = html.replace(/```(\\w*)\\n([\\s\\S]*?)```/g, '<pre><code class=\"language-$1\">$2</code></pre>');\n\n html = html.replace(/^\\> (.+)$/gm, '<blockquote>$1</blockquote>');\n\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\">$1</a>');\n\n html = html.replace(/\\n/g, '<br>');\n\n return html;\n }\n}\n","<div class=\"fs-markdown-renderer\" [innerHtml]=\"renderedHtml\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;AAEO,MAAM,iCAAiC,GAAG,IAAI,cAAc,CAAQ,mCAAmC,CAAC,CAAC;MACnG,yBAAyB,GAAG,IAAI,cAAc,CAAQ,2BAA2B;;ACG9F,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,WAAW,GAAG;AAClB,IAAA,CAAA,EAAG,UAAU,CAA6B,2BAAA,CAAA;AAC1C,IAAA,CAAA,EAAG,UAAU,CAA8B,4BAAA,CAAA;AAC3C,IAAA,CAAA,EAAG,UAAU,CAAyB,uBAAA,CAAA;AACtC,IAAA,CAAA,EAAG,UAAU,CAA8B,4BAAA,CAAA;AAC3C,IAAA,CAAA,EAAG,UAAU,CAAwB,sBAAA,CAAA;AACrC,IAAA,CAAA,EAAG,UAAU,CAA+B,6BAAA,CAAA;AAC5C,IAAA,CAAA,EAAG,UAAU,CAA4B,0BAAA,CAAA;AACzC,IAAA,CAAA,EAAG,UAAU,CAA8B,4BAAA,CAAA;AAC3C,IAAA,CAAA,EAAG,UAAU,CAA0B,wBAAA,CAAA;AACvC,IAAA,CAAA,EAAG,UAAU,CAAwB,sBAAA,CAAA;CACtC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAG,EAAA,UAAU,aAAa,CAAC;MAK7B,uBAAuB,CAAA;AAC1B,IAAA,SAAS,GAAG,MAAM,CAAW,QAAQ,CAAC,CAAC;AACvC,IAAA,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAQ,GAAG,KAAK,CAAC;AAEjB,IAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAC3C,SAAA,IAAI,CACH,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAEJ,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAEM,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACtB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,OAAO;SACR;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,QAAA,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC;QACzC,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,MAAM,aAAa,GAAG,MAAK;AACzB,YAAA,IAAI,eAAe,KAAK,CAAC,IAAI,UAAU,EAAE;AACvC,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;AACH,SAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAK;AACvB,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;AAClB,SAAC,CAAC;AAEF,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA,WAAA,EAAc,IAAI,CAAA,EAAA,CAAI,CAAC,EAAE;AACxD,gBAAA,WAAW,EAAE,CAAC;gBAEd,OAAO;aACR;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;AACxB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA,YAAA,EAAe,MAAM,CAAA,EAAA,CAAI,CAAC,EAAE;YAC3D,UAAU,GAAG,IAAI,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;YAEhB,OAAO;SACR;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACtD,QAAA,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;AACpB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;YACnB,UAAU,GAAG,IAAI,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;AAClB,SAAC,CAAC;AACF,QAAA,MAAM,CAAC,OAAO,GAAG,MAAK;YACpB,UAAU,GAAG,IAAI,CAAC;AAClB,YAAA,aAAa,EAAE,CAAC;AAClB,SAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KACzC;uGAzEU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCyCY,yBAAyB,CAAA;AAGL,IAAA,SAAS,CAAa;IAEhB,YAAY,GAAG,KAAK,CAAC;IAE1C,MAAM,GAA2B,EAAE,CAAC;IAI7C,QAAQ,GAAG,KAAK,CAAC;IAGjB,WAAW,GAAG,KAAK,CAAC;AAEX,IAAA,WAAW,GAAG,CAAsB,mBAAA,EAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3D,IAAA,SAAS,CAAa;AACtB,IAAA,QAAQ,CAAsB;AAE7B,IAAA,MAAM,CAAM;AACZ,IAAA,cAAc,CAAM;AACpB,IAAA,UAAU,CAAM;IAChB,SAAS,GAAG,EAAE,CAAC;IACf,YAAY,GAAG,KAAK,CAAC;AACrB,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAChC,cAAc,GAAG,MAAM,CAAyB,yBAAyB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/F,IAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACnC,IAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC1C,IAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAG/B,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;AACzE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,CAAC,OAAO;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;YACpB,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;AACH,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,UAAU,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,EAAE,CAAC;AAEhC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACxC;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,EAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAEM,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAEM,QAAQ,GAAA;QACb,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;AAC3C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACrC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAClC,gBAAA,GAAG,CAAC,cAAc,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA,kCAAA,EAAqC,MAAM,CAAA,YAAA,CAAc,CAAC;aAChH;SACF;AAED,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;KAC7C;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACnB;KACF;AAEM,IAAA,WAAW,CAAC,QAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KAClC;IAEM,KAAK,GAAA;QACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAI;gBACrC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,aAAC,CAAC,CAAC;SACJ;KACF;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAEO,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAClC,OAAO;SACR;AAED,QAAA,MAAM,QAAQ,GAAI,MAAc,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAEpE,OAAO;SACR;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;AAC7C,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;AAErC,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC;AAC/B,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa;gBAClC,YAAY,EAAE,IAAI,CAAC,SAAS;AAC5B,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,cAAc,EAAE;oBACd,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG;AACpC,wBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,iBAAiB;AACnD,qBAAA;AACF,iBAAA;AACF,aAAA,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAa,KAAI;gBAC/B,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAS,EAAE,QAAgB,EAAE,YAAoB,KAAI;AAC7E,oBAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;AAC7B,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAK;AAClB,4BAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,4BAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gCAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;6BACzB;AACD,4BAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gCAClB,IAAI,CAAC,SAAS,EAAE,CAAC;6BAClB;AACD,4BAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAC7B,yBAAC,CAAC,CAAC;qBACJ;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAK;AAClB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAExB,oBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,wBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBACxC;AAED,oBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAE3B,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;wBACzB,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;AAED,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC3B,wBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;qBAC3B;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,iBAAiB,CAAC,QAAgB,EAAA;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAI;YACrC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,GAAG,EAAE;gBACP,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAClC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAC5C,CAAC;AACF,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACnB;AACH,SAAC,CAAC,CAAC;KACJ;uGArNU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAzBzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECpDH,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qlBAyBA,EDsCI,MAAA,EAAA,CAAA,yrNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EATA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,aAAA,EAAA;AACb,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1B,gBAAA,UAAU,EAAE,CAAC,MAAc,KAAK,MAAM;AACvC,aAAA;AACF,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAMU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA7BrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGnB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA;AACb,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1B,4BAAA,UAAU,EAAE,CAAC,MAAc,KAAK,MAAM;AACvC,yBAAA;AACF,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA;wBACP,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,qlBAAA,EAAA,MAAA,EAAA,CAAA,yrNAAA,CAAA,EAAA,CAAA;8BAK8B,SAAS,EAAA,CAAA;sBAAvC,SAAS;uBAAC,WAAW,CAAA;gBAEe,YAAY,EAAA,CAAA;sBAAhD,WAAW;uBAAC,eAAe,CAAA;gBAEZ,MAAM,EAAA,CAAA;sBAArB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBAFd,KAAK;;sBACL,WAAW;uBAAC,gBAAgB,CAAA;gBAItB,WAAW,EAAA,CAAA;sBADjB,WAAW;uBAAC,mBAAmB,CAAA;;;ME3DrB,sBAAsB,CAAA;AAC1B,IAAA,OAAO,OAAO,CAAC,MAAA,GAAiC,EAAE,EAAA;QACvD,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,MAAM,EAAE;AAChE,gBAAA;AACE,oBAAA,OAAO,EAAE,yBAAyB;AAClC,oBAAA,UAAU,EAAE,2BAA2B;oBACvC,IAAI,EAAE,CAAC,iCAAiC,CAAC;AAC1C,iBAAA;AACF,aAAA;SACF,CAAC;KACH;uGAbU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAR/B,YAAY;YACZ,aAAa;AACb,YAAA,yBAAyB,aAGzB,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAGhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAR/B,YAAY;YACZ,aAAa;YACb,yBAAyB,CAAA,EAAA,CAAA,CAAA;;2FAMhB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;AAC1B,qBAAA;AACF,iBAAA,CAAA;;AAiBK,SAAU,2BAA2B,CAAC,MAA8B,EAAA;IACxE,OAAO;AACL,QAAA,GAAG,MAAM;KACV,CAAC;AACJ;;MC7Ba,2BAA2B,CAAA;AAC9B,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,IAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE3C,IAA8B,WAAW,CAAC,QAAgB,EAAA;AACxD,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,YAAY,CAAW;IAEtB,YAAY,GAAG,EAAE,CAAC;IAElB,eAAe,GAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;KAC5B;AAEO,IAAA,eAAe,CAAC,QAAgB,EAAA;QACtC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,EAAE,CAAC;SACX;QAED,IAAI,IAAI,GAAG,QAAQ,CAAC;QAEpB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAEjD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAC7D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACnD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAErD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,gDAAgD,CAAC,CAAC;QAElG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,6BAA6B,CAAC,CAAC;QAElE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC;QAEvE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEnC,QAAA,OAAO,IAAI,CAAC;KACb;uGA5CU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,sICXxC,2EACA,EAAA,MAAA,EAAA,CAAA,ooDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDUa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,ooDAAA,CAAA,EAAA,CAAA;8BAMc,WAAW,EAAA,CAAA;sBAAxC,KAAK;uBAAC,UAAU,CAAA;;;AEfnB;;AAEG;;;;"}
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|