@mythpe/quasar-ui-qui 0.2.25 → 0.2.27

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.
@@ -11,73 +11,27 @@
11
11
  setup
12
12
  >
13
13
 
14
+ import { computed, onMounted, reactive, ref, toValue, useTemplateRef } from 'vue'
15
+ import { Ckeditor, useCKEditorCloud } from '@ckeditor/ckeditor5-vue'
16
+ import { useBindInput, useMyth } from '../../composable'
14
17
  import { useField } from 'vee-validate'
15
18
  import type { MCkeditorProps as Props } from '../../types'
16
- import { computed, reactive, toValue, useTemplateRef } from 'vue'
17
- import { useBindInput, useMyth } from '../../composable'
18
-
19
- import type { EditorConfig } from 'ckeditor5'
20
- import {
21
- Alignment,
22
- Autoformat,
23
- Base64UploadAdapter,
24
- BlockQuote,
25
- Bold,
26
- CKFinder,
27
- CKFinderUploadAdapter,
28
- ClassicEditor,
29
- CloudServices,
30
- Code,
31
- CodeBlock,
32
- Essentials,
33
- FontBackgroundColor,
34
- FontColor,
35
- FontFamily,
36
- FontSize,
37
- Heading,
38
- Image,
39
- ImageCaption,
40
- ImageResize,
41
- ImageStyle,
42
- ImageToolbar,
43
- ImageUpload,
44
- Indent,
45
- IndentBlock,
46
- Italic,
47
- Link,
48
- List,
49
- MediaEmbed,
50
- Mention,
51
- Paragraph,
52
- PasteFromOffice,
53
- PictureEditing,
54
- RemoveFormat,
55
- SourceEditing,
56
- Strikethrough,
57
- Subscript,
58
- Superscript,
59
- Table,
60
- TableColumnResize,
61
- TableToolbar,
62
- TextTransformation,
63
- TodoList,
64
- Underline
65
- } from 'ckeditor5'
66
- import { Ckeditor } from '@ckeditor/ckeditor5-vue'
19
+ import type { EditorConfig } from 'https://cdn.ckeditor.com/typings/ckeditor5.d.ts'
67
20
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
68
21
  // @ts-ignore
69
22
  import arTranslations from 'ckeditor5/translations/ar.js'
70
23
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
71
24
  // @ts-ignore
72
25
  import enTranslations from 'ckeditor5/translations/en.js'
26
+ import { useQuasar } from 'quasar'
73
27
 
74
28
  type P = {
75
29
  name: Props['name'];
76
- lang: Props['lang'];
30
+ lang?: Props['lang'];
77
31
  config?: Props['config'];
78
32
  tagName?: Props['tagName'];
79
33
  disabled?: Props['disabled'];
80
- disableTwoWayDataBinding?: Props['disableTwoWayDataBinding'];
34
+ html?: Props['html'];
81
35
 
82
36
  auto?: Props['auto'];
83
37
  col?: Props['col'];
@@ -97,11 +51,11 @@ type P = {
97
51
  }
98
52
  const props = withDefaults(defineProps<P>(), {
99
53
  name: '',
100
- lang: 'ar',
54
+ lang: undefined,
101
55
  config: undefined,
102
56
  tagName: 'div',
103
57
  disabled: !1,
104
- disableTwoWayDataBinding: !1,
58
+ html: !1,
105
59
 
106
60
  auto: undefined,
107
61
  col: undefined,
@@ -120,7 +74,7 @@ const props = withDefaults(defineProps<P>(), {
120
74
  fieldOptions: undefined
121
75
  })
122
76
  defineModel<Props['modelValue']>({ required: !1, default: undefined })
123
- const { __, props: pluginOptions } = useMyth()
77
+ const { __, props: pluginOptions, ckeditorKey } = useMyth()
124
78
  const helper = useBindInput<any>(() => props, 'ckeditor')
125
79
  const { getLabel, inputRules } = helper
126
80
  const inputScope = useField<Props['modelValue']>(() => props.name, inputRules, {
@@ -131,21 +85,209 @@ const inputScope = useField<Props['modelValue']>(() => props.name, inputRules, {
131
85
  ...toValue<any>(props.fieldOptions)
132
86
  })
133
87
  const { value, errorMessage, handleChange } = inputScope
88
+ const cloud = useCKEditorCloud(() => ({
89
+ version: '45.1.0',
90
+ translations: ['en', 'ar']
91
+ }))
92
+ const isLayoutReady = ref(!1)
93
+ const editor = computed(() => {
94
+ if (!cloud.data.value) {
95
+ return null
96
+ }
134
97
 
135
- const isRtl = computed(() => props.lang === 'ar')
98
+ return cloud.data.value.CKEditor.ClassicEditor
99
+ })
100
+ const $q = useQuasar()
136
101
  const getConfig = computed<any>(() => {
137
- const inpConfig: EditorConfig = {
102
+ if (!cloud.data.value) {
103
+ return null
104
+ }
105
+ if (!isLayoutReady.value) {
106
+ return null
107
+ }
108
+
109
+ const {
110
+ Alignment,
111
+ Autoformat,
112
+ AutoImage,
113
+ AutoLink,
114
+ Autosave,
115
+ BalloonToolbar,
116
+ Base64UploadAdapter,
117
+ BlockQuote,
118
+ BlockToolbar,
119
+ Bold,
120
+ Bookmark,
121
+ CloudServices,
122
+ Code,
123
+ CodeBlock,
124
+ Emoji,
125
+ Essentials,
126
+ FindAndReplace,
127
+ FontBackgroundColor,
128
+ FontColor,
129
+ FontFamily,
130
+ FontSize,
131
+ FullPage,
132
+ Fullscreen,
133
+ GeneralHtmlSupport,
134
+ Heading,
135
+ Highlight,
136
+ HorizontalLine,
137
+ HtmlComment,
138
+ HtmlEmbed,
139
+ ImageBlock,
140
+ ImageCaption,
141
+ ImageEditing,
142
+ ImageInline,
143
+ ImageInsert,
144
+ ImageInsertViaUrl,
145
+ ImageResize,
146
+ ImageStyle,
147
+ ImageTextAlternative,
148
+ ImageToolbar,
149
+ ImageUpload,
150
+ ImageUtils,
151
+ Indent,
152
+ IndentBlock,
153
+ Italic,
154
+ Link,
155
+ LinkImage,
156
+ List,
157
+ ListProperties,
158
+ Markdown,
159
+ MediaEmbed,
160
+ Mention,
161
+ PageBreak,
162
+ Paragraph,
163
+ PasteFromMarkdownExperimental,
164
+ PasteFromOffice,
165
+ PlainTableOutput,
166
+ RemoveFormat,
167
+ ShowBlocks,
168
+ SourceEditing,
169
+ SpecialCharacters,
170
+ SpecialCharactersArrows,
171
+ SpecialCharactersCurrency,
172
+ SpecialCharactersEssentials,
173
+ SpecialCharactersLatin,
174
+ SpecialCharactersMathematical,
175
+ SpecialCharactersText,
176
+ Strikethrough,
177
+ Style,
178
+ Subscript,
179
+ Superscript,
180
+ Table,
181
+ TableCaption,
182
+ TableCellProperties,
183
+ TableColumnResize,
184
+ TableLayout,
185
+ TableProperties,
186
+ TableToolbar,
187
+ TextPartLanguage,
188
+ TextTransformation,
189
+ TodoList,
190
+ Underline
191
+ } = cloud.data.value.CKEditor
192
+ const plugins: any = [
193
+ Alignment,
194
+ Autoformat,
195
+ AutoImage,
196
+ AutoLink,
197
+ Autosave,
198
+ BalloonToolbar,
199
+ Base64UploadAdapter,
200
+ BlockQuote,
201
+ BlockToolbar,
202
+ Bold,
203
+ Bookmark,
204
+ Code,
205
+ CodeBlock,
206
+ Emoji,
207
+ Essentials,
208
+ FindAndReplace,
209
+ FontBackgroundColor,
210
+ FontColor,
211
+ FontFamily,
212
+ FontSize,
213
+ FullPage,
214
+ Fullscreen,
215
+ GeneralHtmlSupport,
216
+ Heading,
217
+ Highlight,
218
+ HorizontalLine,
219
+ HtmlComment,
220
+ HtmlEmbed,
221
+ ImageBlock,
222
+ ImageCaption,
223
+ ImageEditing,
224
+ ImageInline,
225
+ ImageInsert,
226
+ ImageInsertViaUrl,
227
+ ImageResize,
228
+ ImageStyle,
229
+ ImageTextAlternative,
230
+ ImageToolbar,
231
+ ImageUpload,
232
+ ImageUtils,
233
+ Indent,
234
+ IndentBlock,
235
+ Italic,
236
+ Link,
237
+ LinkImage,
238
+ List,
239
+ ListProperties,
240
+ MediaEmbed,
241
+ Mention,
242
+ PageBreak,
243
+ Paragraph,
244
+ PasteFromMarkdownExperimental,
245
+ PasteFromOffice,
246
+ PlainTableOutput,
247
+ RemoveFormat,
248
+ ShowBlocks,
249
+ SourceEditing,
250
+ SpecialCharacters,
251
+ SpecialCharactersArrows,
252
+ SpecialCharactersCurrency,
253
+ SpecialCharactersEssentials,
254
+ SpecialCharactersLatin,
255
+ SpecialCharactersMathematical,
256
+ SpecialCharactersText,
257
+ Strikethrough,
258
+ Style,
259
+ Subscript,
260
+ Superscript,
261
+ Table,
262
+ TableCaption,
263
+ TableCellProperties,
264
+ TableColumnResize,
265
+ TableLayout,
266
+ TableProperties,
267
+ TableToolbar,
268
+ TextPartLanguage,
269
+ TextTransformation,
270
+ TodoList,
271
+ Underline
272
+ ]
273
+ if (!props.html) {
274
+ plugins.push(CloudServices)
275
+ plugins.push(Markdown)
276
+ }
277
+ const def = {
278
+ licenseKey: ckeditorKey.value,
279
+ initialData: value.value || undefined,
138
280
  language: {
139
- ui: props.lang as string,
140
- content: props.lang as string,
281
+ ui: $q.lang.isoName,
282
+ content: props.lang || $q.lang.isoName,
141
283
  textPartLanguage: [
142
284
  {
143
- title: __('labels.ar'),
285
+ title: __('ar'),
144
286
  languageCode: 'ar',
145
287
  textDirection: 'rtl'
146
288
  },
147
289
  {
148
- title: __('labels.en'),
290
+ title: __('en'),
149
291
  languageCode: 'en',
150
292
  textDirection: 'ltr'
151
293
  }
@@ -155,75 +297,107 @@ const getConfig = computed<any>(() => {
155
297
  arTranslations,
156
298
  enTranslations
157
299
  ],
158
- plugins: [
159
- Autoformat,
160
- BlockQuote,
161
- Bold,
162
- CKFinder,
163
- CKFinderUploadAdapter,
164
- CloudServices,
165
- Essentials,
166
- Heading,
167
- Image,
168
- ImageCaption,
169
- ImageResize,
170
- ImageStyle,
171
- ImageToolbar,
172
- ImageUpload,
173
- Base64UploadAdapter,
174
- Indent,
175
- IndentBlock,
176
- Italic,
177
- Link,
178
- List,
179
- MediaEmbed,
180
- Mention,
181
- Paragraph,
182
- PasteFromOffice,
183
- PictureEditing,
184
- Table,
185
- TableColumnResize,
186
- TableToolbar,
187
- TextTransformation,
188
- Underline,
189
- FontSize,
190
- FontFamily,
191
- FontColor,
192
- FontBackgroundColor,
193
- RemoveFormat,
194
- Strikethrough,
195
- Subscript,
196
- Code,
197
- CodeBlock,
198
- Alignment,
199
- Superscript,
200
- TodoList,
201
- SourceEditing
300
+ placeholder: getLabel.value || undefined,
301
+ balloonToolbar: [
302
+ 'bold', 'italic', '|', 'link', 'insertImage', '|', 'bulletedList', 'numberedList',
303
+ '|',
304
+ 'fontSize',
305
+ 'fontFamily',
306
+ 'fontColor',
307
+ 'fontBackgroundColor',
308
+ '|',
309
+ 'textPartLanguage'
202
310
  ],
311
+ fontFamily: {
312
+ supportAllValues: true
313
+ },
314
+ fontSize: {
315
+ options: [10, 12, 14, 'default', 18, 20, 22],
316
+ supportAllValues: true
317
+ },
203
318
  toolbar: {
204
319
  items: [
205
320
  'undo',
206
321
  'redo',
207
322
  '|',
208
- 'bold', 'italic', 'underline', 'strikethrough', 'subscript', 'superscript', 'code',
209
- '|',
210
- 'fontfamily', 'fontsize', 'fontColor', 'fontBackgroundColor',
323
+ 'sourceEditing',
324
+ 'showBlocks',
325
+ 'findAndReplace',
326
+ 'textPartLanguage',
327
+ 'fullscreen',
211
328
  '|',
212
- 'alignment',
213
- 'insertTable',
214
329
  'heading',
330
+ 'style',
215
331
  '|',
216
- 'link', 'uploadImage', 'blockQuote', 'codeBlock',
217
- '|',
218
- 'bulletedList', 'numberedList', 'todoList', 'outdent', 'indent',
332
+ 'fontSize',
333
+ 'fontFamily',
334
+ 'fontColor',
335
+ 'fontBackgroundColor',
219
336
  '|',
220
- // 'ckbox',
337
+ 'bold',
338
+ 'italic',
339
+ 'underline',
340
+ 'strikethrough',
341
+ 'subscript',
342
+ 'superscript',
343
+ 'code',
221
344
  'removeFormat',
345
+ '|',
346
+ 'emoji',
347
+ 'specialCharacters',
348
+ 'horizontalLine',
349
+ 'pageBreak',
350
+ 'link',
351
+ 'bookmark',
352
+ 'insertImage',
353
+ 'insertImageViaUrl',
222
354
  'mediaEmbed',
355
+ 'insertTable',
356
+ 'insertTableLayout',
357
+ 'highlight',
358
+ 'blockQuote',
359
+ 'codeBlock',
360
+ 'htmlEmbed',
223
361
  '|',
224
- 'sourceEditing'
362
+ 'alignment',
363
+ '|',
364
+ 'bulletedList',
365
+ 'numberedList',
366
+ 'todoList',
367
+ 'outdent',
368
+ 'indent'
225
369
  ],
226
- shouldNotGroupWhenFull: true
370
+ shouldNotGroupWhenFull: false
371
+ },
372
+ blockToolbar: [
373
+ 'fontSize',
374
+ 'fontColor',
375
+ 'fontBackgroundColor',
376
+ '|',
377
+ 'bold',
378
+ 'italic',
379
+ '|',
380
+ 'link',
381
+ 'insertImage',
382
+ 'insertTable',
383
+ 'insertTableLayout',
384
+ '|',
385
+ 'bulletedList',
386
+ 'numberedList',
387
+ 'outdent',
388
+ 'indent'
389
+ ],
390
+ fullscreen: {
391
+ onEnterCallback: container =>
392
+ container.classList.add(
393
+ 'editor-container',
394
+ 'editor-container_classic-editor',
395
+ 'editor-container_include-style',
396
+ 'editor-container_include-block-toolbar',
397
+ 'editor-container_include-word-count',
398
+ 'editor-container_include-fullscreen',
399
+ 'main-container'
400
+ )
227
401
  },
228
402
  heading: {
229
403
  options: [
@@ -255,30 +429,35 @@ const getConfig = computed<any>(() => {
255
429
  view: 'h4',
256
430
  title: 'Heading 4',
257
431
  class: 'ck-heading_heading4'
258
- }
259
- ]
260
- },
261
- image: {
262
- resizeOptions: [
263
- {
264
- name: 'resizeImage:original',
265
- label: 'Default image width',
266
- value: null
267
432
  },
268
433
  {
269
- name: 'resizeImage:50',
270
- label: '50% page width',
271
- value: '50'
434
+ model: 'heading5',
435
+ view: 'h5',
436
+ title: 'Heading 5',
437
+ class: 'ck-heading_heading5'
272
438
  },
273
439
  {
274
- name: 'resizeImage:75',
275
- label: '75% page width',
276
- value: '75'
440
+ model: 'heading6',
441
+ view: 'h6',
442
+ title: 'Heading 6',
443
+ class: 'ck-heading_heading6'
277
444
  }
278
- ],
445
+ ]
446
+ },
447
+ htmlSupport: {
448
+ allow: [
449
+ {
450
+ name: /^.*$/,
451
+ styles: true,
452
+ attributes: true,
453
+ classes: true
454
+ }
455
+ ]
456
+ },
457
+ image: {
279
458
  toolbar: [
280
- 'imageTextAlternative',
281
459
  'toggleImageCaption',
460
+ 'imageTextAlternative',
282
461
  '|',
283
462
  'imageStyle:inline',
284
463
  'imageStyle:wrapText',
@@ -287,24 +466,132 @@ const getConfig = computed<any>(() => {
287
466
  'resizeImage'
288
467
  ]
289
468
  },
290
- menuBar: {
291
- isVisible: !1
292
- },
293
469
  link: {
294
470
  addTargetToExternalLinks: true,
295
- defaultProtocol: 'https://'
471
+ defaultProtocol: 'https://',
472
+ decorators: {
473
+ toggleDownloadable: {
474
+ mode: 'manual',
475
+ label: 'Downloadable',
476
+ attributes: {
477
+ download: 'file'
478
+ }
479
+ }
480
+ }
481
+ },
482
+ list: {
483
+ properties: {
484
+ styles: true,
485
+ startIndex: true,
486
+ reversed: true
487
+ }
488
+ },
489
+ menuBar: {
490
+ isVisible: true
491
+ },
492
+ style: {
493
+ definitions: [
494
+ {
495
+ name: 'Article category',
496
+ element: 'h3',
497
+ classes: ['category']
498
+ },
499
+ {
500
+ name: 'Title',
501
+ element: 'h2',
502
+ classes: ['document-title']
503
+ },
504
+ {
505
+ name: 'Subtitle',
506
+ element: 'h3',
507
+ classes: ['document-subtitle']
508
+ },
509
+ {
510
+ name: 'Info box',
511
+ element: 'p',
512
+ classes: ['info-box']
513
+ },
514
+ {
515
+ name: 'CTA Link Primary',
516
+ element: 'a',
517
+ classes: ['button', 'button--green']
518
+ },
519
+ {
520
+ name: 'CTA Link Secondary',
521
+ element: 'a',
522
+ classes: ['button', 'button--black']
523
+ },
524
+ {
525
+ name: 'Marker',
526
+ element: 'span',
527
+ classes: ['marker']
528
+ },
529
+ {
530
+ name: 'Spoiler',
531
+ element: 'span',
532
+ classes: ['spoiler']
533
+ }
534
+ ]
296
535
  },
297
536
  table: {
298
- contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells']
299
- }
300
- }
537
+ contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells', 'tableProperties', 'tableCellProperties']
538
+ },
539
+ mention: {
540
+ feeds: [
541
+ {
542
+ marker: '@',
543
+ feed: [
544
+ /* See: https://ckeditor.com/docs/ckeditor5/latest/features/mentions.html */
545
+ '@myth', '@mythpe', '@ahmed', '@myth70', '@mythnooty', '@4myth'
546
+ ],
547
+ minimumCharacters: 1
548
+ }
549
+ ]
550
+ },
551
+ plugins
552
+ } as EditorConfig
553
+
301
554
  if (props.config) {
302
- return props.config(inpConfig as EditorConfig)
555
+ return props.config(def) as EditorConfig
303
556
  }
304
- return inpConfig
557
+ return def as EditorConfig
305
558
  })
559
+
560
+ onMounted(() => {
561
+ isLayoutReady.value = true
562
+ })
563
+
564
+ /* type Emits = {
565
+ (e: 'ready', editor: EventInfo): void;
566
+ (e: 'destroy', editor: EventInfo): void;
567
+ (e: 'focus', event: { editor: EventInfo, event: DomEventData<FocusEvent> }): void;
568
+ (e: 'blur', event: { editor: EventInfo, event: DomEventData<FocusEvent> }): void;
569
+ (e: 'input', event: { editor: EventInfo, batch: Batch }): void;
570
+ }
571
+ const emit = defineEmits<Emits>()
572
+ const onReady = (editor: EventInfo) => {
573
+ emit('ready', editor)
574
+ }
575
+ const onEditorFocus = (event: DomEventData<FocusEvent>, editor: EventInfo) => {
576
+ emit('focus', { editor, event })
577
+ }
578
+ const onEditorBlur = (event: DomEventData<FocusEvent>, editor: EventInfo) => {
579
+ emit('blur', { editor, event })
580
+ }
581
+ const onEditorInput = (editor: EventInfo, batch: Batch) => {
582
+ emit('input', { editor, batch })
583
+ }
584
+ const onEditorDestroy = (editor: EventInfo) => {
585
+ emit('destroy', editor)
586
+ } */
587
+
306
588
  const listeners = {
307
589
  'update:modelValue': (v: Props['modelValue']) => handleChange(v, !!errorMessage.value)
590
+ // ready: onReady,
591
+ // focus: onEditorFocus,
592
+ // blur: onEditorBlur,
593
+ // input: onEditorInput,
594
+ // destroy: onEditorDestroy
308
595
  }
309
596
  const input = useTemplateRef<any>('input')
310
597
  const scopes = reactive(inputScope)
@@ -316,6 +603,31 @@ defineOptions({
316
603
  </script>
317
604
 
318
605
  <template>
606
+ <!--<div class="main-container">-->
607
+ <!-- <div-->
608
+ <!-- ref="editorContainerElement"-->
609
+ <!-- class="editor-container editor-container_classic-editor editor-container_include-style editor-container_include-block-toolbar editor-container_include-word-count editor-container_include-fullscreen"-->
610
+ <!-- >-->
611
+ <!-- <div class="editor-container__editor">-->
612
+ <!-- <div ref="editorElement">-->
613
+ <!-- <ckeditor-->
614
+ <!-- v-if="editor && getConfig"-->
615
+ <!-- :config="getConfig"-->
616
+ <!-- :disabled="disabled"-->
617
+ <!-- :editor="editor"-->
618
+ <!-- :model-value="value || ''"-->
619
+ <!-- :tag-name="tagName"-->
620
+ <!-- v-on="listeners"-->
621
+ <!-- />-->
622
+ <!-- </div>-->
623
+ <!-- </div>-->
624
+ <!-- <div-->
625
+ <!-- ref="editorWordCountElement"-->
626
+ <!-- class="editor_container__word-count"-->
627
+ <!-- />-->
628
+ <!-- </div>-->
629
+ <!--</div>-->
630
+
319
631
  <MCol
320
632
  :auto="auto"
321
633
  :class="[$attrs.class,{'m--input__required':inputRules?.required!==undefined,'m--input__error':!!errorMessage,'m--input__view':viewMode}]"
@@ -375,24 +687,42 @@ defineOptions({
375
687
  </MTransition>
376
688
  <div
377
689
  v-if="viewMode"
378
- v-html="value"
379
- />
690
+ style="max-width: 100%;"
691
+ >
692
+ <div v-html="value" />
693
+ </div>
380
694
  <div
381
695
  v-else
382
- :dir="isRtl ? 'rtl' : 'ltr'"
383
- :style="`direction: ${isRtl ? 'rtl' : 'ltr'}`"
384
696
  >
385
697
  <ckeditor
386
- ref="input"
698
+ v-if="editor && getConfig"
387
699
  :config="getConfig"
388
- :disable-two-way-data-binding="disableTwoWayDataBinding"
389
700
  :disabled="disabled"
390
- :editor="ClassicEditor"
701
+ :editor="editor"
391
702
  :model-value="value || ''"
392
703
  :tag-name="tagName"
393
704
  v-bind="{...$attrs,...pluginOptions.ckeditor}"
394
705
  v-on="listeners"
395
706
  />
707
+ <div v-else>
708
+ <div class="q-mb-sm row q-gutter-xs">
709
+ <q-skeleton
710
+ v-for="bb in 3"
711
+ :key="`ck-sk-${bb}`"
712
+ square
713
+ type="QBtn"
714
+ />
715
+ <q-skeleton
716
+ class="col"
717
+ square
718
+ />
719
+ </div>
720
+ <q-skeleton
721
+ height="250px"
722
+ square
723
+ type="QSlider"
724
+ />
725
+ </div>
396
726
  <slot v-bind="scopes" />
397
727
  </div>
398
728
  <slot
@@ -401,3 +731,129 @@ defineOptions({
401
731
  />
402
732
  </MCol>
403
733
  </template>
734
+
735
+ <!--<style>-->
736
+ <!--@import url('https://fonts.googleapis.com/css2?family=Oswald&family=PT+Serif:ital,wght@0,400;0,700;1,400&display=swap');-->
737
+ <!--@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap');-->
738
+
739
+ <!--@media print {-->
740
+ <!-- body {-->
741
+ <!-- margin: 0 !important;-->
742
+ <!-- }-->
743
+ <!--}-->
744
+
745
+ <!--.main-container {-->
746
+ <!-- font-family: 'Lato';-->
747
+ <!-- width: fit-content;-->
748
+ <!-- margin-left: auto;-->
749
+ <!-- margin-right: auto;-->
750
+ <!--}-->
751
+
752
+ <!--.ck-content {-->
753
+ <!-- font-family: 'Lato';-->
754
+ <!-- line-height: 1.6;-->
755
+ <!-- word-break: break-word;-->
756
+ <!--}-->
757
+
758
+ <!--.editor-container_classic-editor .editor-container__editor {-->
759
+ <!-- min-width: 795px;-->
760
+ <!-- max-width: 795px;-->
761
+ <!--}-->
762
+
763
+ <!--.editor-container_include-block-toolbar {-->
764
+ <!-- margin-left: 42px;-->
765
+ <!--}-->
766
+
767
+ <!--.ck-content h3.category {-->
768
+ <!-- font-family: 'Oswald';-->
769
+ <!-- font-size: 20px;-->
770
+ <!-- font-weight: bold;-->
771
+ <!-- color: #555;-->
772
+ <!-- letter-spacing: 10px;-->
773
+ <!-- margin: 0;-->
774
+ <!-- padding: 0;-->
775
+ <!--}-->
776
+
777
+ <!--.ck-content h2.document-title {-->
778
+ <!-- font-family: 'Oswald';-->
779
+ <!-- font-size: 50px;-->
780
+ <!-- font-weight: bold;-->
781
+ <!-- margin: 0;-->
782
+ <!-- padding: 0;-->
783
+ <!-- border: 0;-->
784
+ <!--}-->
785
+
786
+ <!--.ck-content h3.document-subtitle {-->
787
+ <!-- font-family: 'Oswald';-->
788
+ <!-- font-size: 20px;-->
789
+ <!-- color: #555;-->
790
+ <!-- margin: 0 0 1em;-->
791
+ <!-- font-weight: bold;-->
792
+ <!-- padding: 0;-->
793
+ <!--}-->
794
+
795
+ <!--.ck-content p.info-box {-->
796
+ <!-- &#45;&#45;background-size: 30px;-->
797
+ <!-- &#45;&#45;background-color: #e91e63;-->
798
+ <!-- padding: 1.2em 2em;-->
799
+ <!-- border: 1px solid var(&#45;&#45;background-color);-->
800
+ <!-- background: linear-gradient(135deg, var(&#45;&#45;background-color) 0%, var(&#45;&#45;background-color) var(&#45;&#45;background-size), transparent var(&#45;&#45;background-size)),-->
801
+ <!-- linear-gradient(-->
802
+ <!-- 135deg,-->
803
+ <!-- transparent calc(100% - var(&#45;&#45;background-size)),-->
804
+ <!-- var(&#45;&#45;background-color) calc(100% - var(&#45;&#45;background-size)),-->
805
+ <!-- var(&#45;&#45;background-color)-->
806
+ <!-- );-->
807
+ <!-- border-radius: 10px;-->
808
+ <!-- margin: 1.5em 2em;-->
809
+ <!-- box-shadow: 5px 5px 0 #ffe6ef;-->
810
+ <!--}-->
811
+
812
+ <!--.ck-content span.marker {-->
813
+ <!-- background: yellow;-->
814
+ <!--}-->
815
+
816
+ <!--.ck-content span.spoiler {-->
817
+ <!-- background: #000;-->
818
+ <!-- color: #000;-->
819
+ <!--}-->
820
+
821
+ <!--.ck-content span.spoiler:hover {-->
822
+ <!-- background: #000;-->
823
+ <!-- color: #fff;-->
824
+ <!--}-->
825
+
826
+ <!--.ck-content .button {-->
827
+ <!-- display: inline-block;-->
828
+ <!-- width: 260px;-->
829
+ <!-- border-radius: 8px;-->
830
+ <!-- margin: 0 auto;-->
831
+ <!-- padding: 12px;-->
832
+ <!-- color: #ffffff;-->
833
+ <!-- font-size: 24px;-->
834
+ <!-- font-weight: 700;-->
835
+ <!-- text-align: center;-->
836
+ <!-- text-decoration: none;-->
837
+ <!--}-->
838
+
839
+ <!--.ck-content .button&#45;&#45;green {-->
840
+ <!-- background-color: #406b1e;-->
841
+ <!--}-->
842
+
843
+ <!--.ck-content .button&#45;&#45;black {-->
844
+ <!-- background-color: #141517;-->
845
+ <!--}-->
846
+
847
+ <!--.editor-container_include-word-count.editor-container_classic-editor .editor_container__word-count {-->
848
+ <!-- border: 1px solid var(&#45;&#45;ck-color-base-border);-->
849
+ <!-- border-radius: var(&#45;&#45;ck-border-radius);-->
850
+ <!-- border-top-left-radius: 0;-->
851
+ <!-- border-top-right-radius: 0;-->
852
+ <!-- border-top: none;-->
853
+ <!--}-->
854
+
855
+ <!--.editor-container_include-word-count.editor-container_classic-editor .editor-container__editor .ck-editor .ck-editor__editable {-->
856
+ <!-- border-radius: 0;-->
857
+ <!--}-->
858
+
859
+ <!--</style>-->