@afeefa/vue-app 0.0.91 → 0.0.92

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- 0.0.91
1
+ 0.0.92
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@afeefa/vue-app",
3
- "version": "0.0.91",
3
+ "version": "0.0.92",
4
4
  "description": "",
5
5
  "author": "Afeefa Kollektiv <kollektiv@afeefa.de>",
6
6
  "license": "MIT",
@@ -8,6 +8,7 @@
8
8
  <v-btn
9
9
  small
10
10
  :class="['menu-button', {'is-active': focus && editor.isActive('bold')}]"
11
+ title="fett"
11
12
  @click="editor.chain().focus().toggleBold().run()"
12
13
  >
13
14
  <v-icon>{{ boldIcon }}</v-icon>
@@ -16,6 +17,7 @@
16
17
  <v-btn
17
18
  small
18
19
  :class="['menu-button', {'is-active': focus && editor.isActive('italic')}]"
20
+ title="kursiv"
19
21
  @click="editor.chain().focus().toggleItalic().run()"
20
22
  >
21
23
  <v-icon>{{ italicIcon }}</v-icon>
@@ -24,6 +26,7 @@
24
26
  <v-btn
25
27
  small
26
28
  :class="['menu-button', 'strike', {'is-active': focus && editor.isActive('strike')}]"
29
+ title="durchgestrichen"
27
30
  @click="editor.chain().focus().toggleStrike().run()"
28
31
  >
29
32
  <v-icon>{{ strikeIcon }}</v-icon>
@@ -32,6 +35,7 @@
32
35
  <v-btn
33
36
  small
34
37
  :class="['menu-button', {'is-active': focus && editor.isActive('heading', {level: 1})}]"
38
+ title="überschrift 1"
35
39
  @click="editor.chain().focus().toggleHeading({level: 1}).run()"
36
40
  >
37
41
  <v-icon>{{ h1Icon }}</v-icon>
@@ -40,6 +44,7 @@
40
44
  <v-btn
41
45
  small
42
46
  :class="['menu-button', {'is-active': focus && editor.isActive('heading', {level: 2})}]"
47
+ title="pberschrift 2"
43
48
  @click="editor.chain().focus().toggleHeading({level: 2}).run()"
44
49
  >
45
50
  <v-icon>{{ h2Icon }}</v-icon>
@@ -48,6 +53,7 @@
48
53
  <v-btn
49
54
  small
50
55
  :class="['menu-button', {'is-active': focus && editor.isActive('bulletList')}]"
56
+ title="punkt-liste"
51
57
  @click="editor.chain().focus().toggleBulletList().run()"
52
58
  >
53
59
  <v-icon>{{ ulIcon }}</v-icon>
@@ -56,6 +62,7 @@
56
62
  <v-btn
57
63
  small
58
64
  :class="['menu-button', {'is-active': focus && editor.isActive('orderedList')}]"
65
+ title="nummerierte liste"
59
66
  @click="editor.chain().focus().toggleOrderedList().run()"
60
67
  >
61
68
  <v-icon>{{ olIcon }}</v-icon>
@@ -64,6 +71,7 @@
64
71
  <v-btn
65
72
  small
66
73
  :class="['menu-button', {'is-active': focus && editor.isActive('blockquote')}]"
74
+ title="zitat"
67
75
  @click="editor.chain().focus().toggleBlockquote().run()"
68
76
  >
69
77
  <v-icon>{{ commentIcon }}</v-icon>
@@ -72,13 +80,37 @@
72
80
  <v-btn
73
81
  small
74
82
  class="menu-button"
83
+ :class="{ 'is-active': editor.isActive('textStyle', { color: '#0000FF' })}"
84
+ title="rot"
85
+ color="red--text"
86
+ @click="editor.chain().focus().setColor('#0000FF').run()"
87
+ >
88
+ <v-icon>$paletteIcon</v-icon>
89
+ </v-btn>
90
+
91
+ <v-btn
92
+ small
93
+ class="menu-button"
94
+ :class="{ 'is-active': editor.isActive('textStyle', { color: '#FF0000' })}"
95
+ title="blau"
96
+ color="blue--text"
97
+ @click="editor.chain().focus().setColor('#FF0000').run()"
98
+ >
99
+ <v-icon>$paletteIcon</v-icon>
100
+ </v-btn>
101
+
102
+ <v-btn
103
+ small
104
+ class="menu-button undo-button"
75
105
  :disabled="initialValue === editor.getHTML()"
106
+ title="rückgängig"
76
107
  @click="editor.chain().focus().undo().run()"
77
108
  >
78
109
  <v-icon>{{ undoIcon }}</v-icon>
79
110
  </v-btn>
80
111
  </div>
81
112
 
113
+
82
114
  <div>
83
115
  <slot name="buttons" />
84
116
  </div>
@@ -108,6 +140,8 @@ import {
108
140
  mdiRotateLeft,
109
141
  mdiRotateRight
110
142
  } from '@mdi/js'
143
+ import { Color } from '@tiptap/extension-color'
144
+ import TextStyle from '@tiptap/extension-text-style'
111
145
 
112
146
  @Component({
113
147
  props: ['value', 'validator'],
@@ -145,7 +179,9 @@ export default class ARichTextArea extends Vue {
145
179
  this.editor = new Editor({
146
180
  content: this.internalValue,
147
181
  extensions: [
148
- StarterKit
182
+ StarterKit,
183
+ TextStyle,
184
+ Color
149
185
  ],
150
186
  onUpdate: () => {
151
187
  this.$emit('input', this.editor.getHTML())
@@ -240,11 +276,18 @@ export default class ARichTextArea extends Vue {
240
276
  width: unset;
241
277
  }
242
278
 
279
+ &:disabled {
280
+ background: none !important;
281
+ :deep(*) {
282
+ color: #CCCCCC !important;
283
+ }
284
+ }
285
+
243
286
  &.is-active {
244
287
  background: #ECECEC !important;
245
288
  }
246
289
 
247
- &[disabled] {
290
+ &.menu-button:disabled {
248
291
  background: none !important;
249
292
  }
250
293
  }
@@ -10,6 +10,10 @@ class CascadingWindowEventDispatcher {
10
10
  addEventListener (event, listener) {
11
11
  if (!this.listeners[event]) {
12
12
  this.listeners[event] = []
13
+ }
14
+
15
+ if (!this.listeners[event].length) {
16
+ this.listeners[event] = []
13
17
 
14
18
  window.addEventListener(event, e => {
15
19
  for (const listener of this.listeners[event]) {
@@ -1,13 +1,14 @@
1
1
  import {
2
2
  mdiAlarmLightOutline,
3
- mdiArrowLeft,
4
3
  mdiAlert,
4
+ mdiArrowLeft,
5
5
  mdiCalendar,
6
6
  mdiCheck,
7
7
  mdiCheckBold,
8
8
  mdiChevronRight,
9
9
  mdiClose,
10
10
  mdiCloseThick,
11
+ mdiCurrencyEur,
11
12
  mdiDelete,
12
13
  mdiDotsHorizontal,
13
14
  mdiDotsVertical,
@@ -16,11 +17,11 @@ import {
16
17
  mdiMagnify,
17
18
  mdiMenuDown,
18
19
  mdiMenuUp,
20
+ mdiPalette,
19
21
  mdiPencil,
20
22
  mdiPlus,
21
23
  mdiPrinter,
22
- mdiThumbUpOutline,
23
- mdiCurrencyEur
24
+ mdiThumbUpOutline
24
25
  } from '@mdi/js'
25
26
  import Vue from 'vue'
26
27
  import Vuetify from 'vuetify/lib'
@@ -52,7 +53,8 @@ export default new Vuetify({
52
53
  caretDownIcon: mdiMenuDown,
53
54
  caretUpIcon: mdiMenuUp,
54
55
  printerIcon: mdiPrinter,
55
- euroSymbol: mdiCurrencyEur
56
+ euroSymbol: mdiCurrencyEur,
57
+ paletteIcon: mdiPalette
56
58
  }
57
59
  },
58
60
  breakpoint: {