@akilli/editor-src 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/abbreviation/Abbreviation.js +32 -0
  2. package/abbreviation/AbbreviationDialog.js +21 -0
  3. package/audio/Audio.js +47 -0
  4. package/audio/AudioDialog.js +18 -0
  5. package/audio/AudioListener.js +50 -0
  6. package/base/AlignCommand.js +34 -0
  7. package/base/AlignableListener.js +45 -0
  8. package/base/Alignment.js +36 -0
  9. package/base/BarListener.js +95 -0
  10. package/base/Base.js +127 -0
  11. package/base/Command.js +139 -0
  12. package/base/CommandManager.js +60 -0
  13. package/base/ContentFilter.js +109 -0
  14. package/base/DeletableListener.js +36 -0
  15. package/base/DeleteCommand.js +18 -0
  16. package/base/Dialog.js +153 -0
  17. package/base/DialogManager.js +44 -0
  18. package/base/Dispatcher.js +88 -0
  19. package/base/Dom.js +790 -0
  20. package/base/EditableListener.js +82 -0
  21. package/base/Editor.js +448 -0
  22. package/base/Filter.js +35 -0
  23. package/base/FilterManager.js +44 -0
  24. package/base/FocusableListener.js +22 -0
  25. package/base/FocusbarListener.js +99 -0
  26. package/base/FormCreator.js +162 -0
  27. package/base/FormatbarListener.js +32 -0
  28. package/base/Key.js +258 -0
  29. package/base/Listener.js +51 -0
  30. package/base/NavigableListener.js +81 -0
  31. package/base/Plugin.js +176 -0
  32. package/base/PluginManager.js +51 -0
  33. package/base/SlotableListener.js +40 -0
  34. package/base/SortCommand.js +30 -0
  35. package/base/SortableListener.js +135 -0
  36. package/base/Sorting.js +36 -0
  37. package/base/Tag.js +113 -0
  38. package/base/TagGroup.js +183 -0
  39. package/base/TagListener.js +34 -0
  40. package/base/TagManager.js +61 -0
  41. package/base/TagName.js +470 -0
  42. package/base/ToolbarListener.js +11 -0
  43. package/base/util.js +59 -0
  44. package/block/Block.js +51 -0
  45. package/block/BlockDialog.js +11 -0
  46. package/block/BlockElement.js +21 -0
  47. package/block/BlockListener.js +60 -0
  48. package/blockquote/Blockquote.js +43 -0
  49. package/blockquote/BlockquoteFilter.js +22 -0
  50. package/blockquote/BlockquoteListener.js +34 -0
  51. package/bold/Bold.js +30 -0
  52. package/break/Break.js +33 -0
  53. package/break/BreakFilter.js +24 -0
  54. package/build/BuildEditor.js +97 -0
  55. package/build/editor.css +548 -0
  56. package/build/editor.woff2 +0 -0
  57. package/cite/Cite.js +30 -0
  58. package/code/Code.js +30 -0
  59. package/data/Data.js +32 -0
  60. package/data/DataDialog.js +13 -0
  61. package/definition/Definition.js +32 -0
  62. package/definition/DefinitionDialog.js +13 -0
  63. package/deletion/Deletion.js +30 -0
  64. package/details/Details.js +63 -0
  65. package/details/DetailsFilter.js +17 -0
  66. package/details/DetailsListener.js +102 -0
  67. package/division/Division.js +53 -0
  68. package/division/DivisionDialog.js +13 -0
  69. package/emphasis/Emphasis.js +30 -0
  70. package/figure/Figure.js +58 -0
  71. package/figure/FigureFilter.js +14 -0
  72. package/figure/FigureListener.js +23 -0
  73. package/heading/Heading.js +38 -0
  74. package/horizontalrule/HorizontalRule.js +37 -0
  75. package/i18n/I18n.js +26 -0
  76. package/i18n/de.js +167 -0
  77. package/iframe/Iframe.js +49 -0
  78. package/iframe/IframeDialog.js +20 -0
  79. package/iframe/IframeListener.js +48 -0
  80. package/image/Image.js +47 -0
  81. package/image/ImageDialog.js +23 -0
  82. package/image/ImageListener.js +47 -0
  83. package/insertion/Insertion.js +30 -0
  84. package/italic/Italic.js +30 -0
  85. package/keyboard/Keyboard.js +30 -0
  86. package/link/Link.js +34 -0
  87. package/link/LinkDialog.js +14 -0
  88. package/link/LinkListener.js +45 -0
  89. package/list/List.js +40 -0
  90. package/list/ListListener.js +91 -0
  91. package/mark/Mark.js +30 -0
  92. package/orderedlist/OrderedList.js +39 -0
  93. package/package.json +24 -0
  94. package/paragraph/Paragraph.js +42 -0
  95. package/paragraph/ParagraphListener.js +40 -0
  96. package/preformat/Preformat.js +43 -0
  97. package/preformat/PreformatFilter.js +22 -0
  98. package/preformat/PreformatListener.js +34 -0
  99. package/quote/Quote.js +30 -0
  100. package/sample/Sample.js +30 -0
  101. package/section/Section.js +55 -0
  102. package/section/SectionDialog.js +13 -0
  103. package/small/Small.js +30 -0
  104. package/strikethrough/Strikethrough.js +30 -0
  105. package/strong/Strong.js +30 -0
  106. package/subheading/Subheading.js +38 -0
  107. package/subscript/Subscript.js +30 -0
  108. package/superscript/Superscript.js +30 -0
  109. package/table/Table.js +113 -0
  110. package/table/TableCellListener.js +125 -0
  111. package/table/TableColumnAddCommand.js +19 -0
  112. package/table/TableColumnListener.js +34 -0
  113. package/table/TableCommand.js +23 -0
  114. package/table/TableDialog.js +14 -0
  115. package/table/TableFilter.js +35 -0
  116. package/table/TableListener.js +39 -0
  117. package/table/TableRowAddCommand.js +18 -0
  118. package/table/TableRowListener.js +34 -0
  119. package/time/Time.js +32 -0
  120. package/time/TimeDialog.js +13 -0
  121. package/underline/Underline.js +30 -0
  122. package/unorderedlist/UnorderedList.js +39 -0
  123. package/variable/Variable.js +30 -0
  124. package/video/Video.js +47 -0
  125. package/video/VideoDialog.js +20 -0
  126. package/video/VideoListener.js +48 -0
@@ -0,0 +1,30 @@
1
+ import Base from '../base/Base.js';
2
+ import Key from '../base/Key.js';
3
+ import Plugin from '../base/Plugin.js';
4
+ import TagGroup from '../base/TagGroup.js';
5
+ import TagName from '../base/TagName.js';
6
+
7
+ export default class Deletion extends Plugin {
8
+ /**
9
+ * @type {string}
10
+ */
11
+ static get name() {
12
+ return 'deletion';
13
+ }
14
+
15
+ /**
16
+ * @type {Plugin[]}
17
+ */
18
+ static get dependencies() {
19
+ return [Base];
20
+ }
21
+
22
+ /**
23
+ * @return {void}
24
+ */
25
+ init() {
26
+ this._tag({ name: TagName.DEL, group: TagGroup.FORMAT });
27
+ this._command(TagName.DEL);
28
+ this._formatbar('Text Deletion', Key.G);
29
+ }
30
+ }
@@ -0,0 +1,63 @@
1
+ import Base from '../base/Base.js';
2
+ import DetailsFilter from './DetailsFilter.js';
3
+ import DetailsListener from './DetailsListener.js';
4
+ import Plugin from '../base/Plugin.js';
5
+ import TagGroup from '../base/TagGroup.js';
6
+ import TagName from '../base/TagName.js';
7
+
8
+ export default class Details extends Plugin {
9
+ /**
10
+ * @type {string}
11
+ */
12
+ static get name() {
13
+ return 'details';
14
+ }
15
+
16
+ /**
17
+ * @type {Plugin[]}
18
+ */
19
+ static get dependencies() {
20
+ return [Base];
21
+ }
22
+
23
+ /**
24
+ * @return {void}
25
+ */
26
+ init() {
27
+ this._tag({
28
+ name: TagName.DETAILS,
29
+ group: TagGroup.CONTAINER,
30
+ children: [
31
+ TagGroup.AUDIO,
32
+ TagGroup.FIGURE,
33
+ TagGroup.IFRAME,
34
+ TagGroup.IMAGE,
35
+ TagGroup.LIST,
36
+ TagGroup.PARAGRAPH,
37
+ TagGroup.PREFORMAT,
38
+ TagGroup.QUOTE,
39
+ TagGroup.RULE,
40
+ TagGroup.SUMMARY,
41
+ TagGroup.TABLE,
42
+ TagGroup.VIDEO,
43
+ ],
44
+ arbitrary: true,
45
+ deletable: true,
46
+ focusable: true,
47
+ navigable: true,
48
+ slotable: true,
49
+ sortable: true,
50
+ });
51
+ this._tag({
52
+ name: TagName.SUMMARY,
53
+ group: TagGroup.SUMMARY,
54
+ editable: true,
55
+ navigable: true,
56
+ enter: TagName.P,
57
+ });
58
+ new DetailsListener(this.editor);
59
+ this._command(TagName.DETAILS);
60
+ this._toolbar('Details');
61
+ this.editor.filters.add(new DetailsFilter(this.editor));
62
+ }
63
+ }
@@ -0,0 +1,17 @@
1
+ import Filter from '../base/Filter.js';
2
+ import TagName from '../base/TagName.js';
3
+
4
+ export default class DetailsFilter extends Filter {
5
+ /**
6
+ * @param {HTMLElement} element
7
+ * @return {void}
8
+ */
9
+ filter(element) {
10
+ element
11
+ .querySelectorAll(`${TagName.SUMMARY}:not(:first-child)`)
12
+ .forEach((item) => item.parentElement.removeChild(item));
13
+ element
14
+ .querySelectorAll(`${TagName.SUMMARY}:only-child`)
15
+ .forEach((item) => item.parentElement.removeChild(item));
16
+ }
17
+ }
@@ -0,0 +1,102 @@
1
+ import Key from '../base/Key.js';
2
+ import Listener from '../base/Listener.js';
3
+ import TagName from '../base/TagName.js';
4
+
5
+ export default class DetailsListener extends Listener {
6
+ /**
7
+ * @param {Editor} editor
8
+ */
9
+ constructor(editor) {
10
+ super(editor);
11
+ this.editor.root.addEventListener('insertdetails', this);
12
+ this.editor.root.addEventListener('insertsummary', this);
13
+ }
14
+
15
+ /**
16
+ * @param {CustomEvent} event
17
+ * @param {HTMLDetailsElement} event.detail.element
18
+ * @return {void}
19
+ */
20
+ insertdetails({ detail: { element } }) {
21
+ element.open = true;
22
+
23
+ if (!element.querySelector(`:scope > ${TagName.SUMMARY}:first-child`)) {
24
+ this.editor.dom.insertFirstChild(this.editor.dom.createElement(TagName.SUMMARY), element);
25
+ }
26
+ }
27
+
28
+ /**
29
+ * @param {CustomEvent} event
30
+ * @param {HTMLElement} event.detail.element
31
+ * @return {void}
32
+ */
33
+ insertsummary({ detail: { element } }) {
34
+ this.#empty(element);
35
+ element.addEventListener('click', this);
36
+ element.addEventListener('blur', this);
37
+ element.addEventListener('keydown', this);
38
+ }
39
+
40
+ /**
41
+ * Prevents toggling details open state
42
+ *
43
+ * @param {MouseEvent} event
44
+ * @param {HTMLElement} event.target
45
+ * @return {void}
46
+ */
47
+ click(event) {
48
+ event.preventDefault();
49
+ event.stopPropagation();
50
+ event.target.parentElement.open = true;
51
+ }
52
+
53
+ /**
54
+ * Sets default summary text content if it's empty
55
+ *
56
+ * @param {FocusEvent} event
57
+ * @param {HTMLElement} event.target
58
+ * @return {void}
59
+ */
60
+ blur({ target }) {
61
+ this.#empty(target);
62
+ }
63
+
64
+ /**
65
+ * Fixes space and enter key handling for editable summary elements
66
+ *
67
+ * @param {KeyboardEvent} event
68
+ * @param {HTMLElement} event.target
69
+ * @return {void}
70
+ */
71
+ keydown(event) {
72
+ if (Key.isEventFor(event, Key.SPACE)) {
73
+ event.preventDefault();
74
+ event.stopPropagation();
75
+ this.editor.dom.insertText(' ');
76
+ } else if (Key.isEventFor(event, Key.ENTER)) {
77
+ event.preventDefault();
78
+ event.stopPropagation();
79
+ event.target.parentElement.open = true;
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Ensures summary element is not empty to avoid strange browser behaviour
85
+ *
86
+ * @param {HTMLElement} element
87
+ * @return {void}
88
+ */
89
+ #empty(element) {
90
+ if (!element.textContent.trim()) {
91
+ element.textContent = this._('Details');
92
+ } else {
93
+ element
94
+ .querySelectorAll(TagName.BR + ':not(:last-child)')
95
+ .forEach((item) => item.parentElement.removeChild(item));
96
+ }
97
+
98
+ if (!(element.lastElementChild instanceof HTMLBRElement)) {
99
+ this.editor.dom.insertLastChild(this.editor.dom.createElement(TagName.BR), element);
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,53 @@
1
+ import Base from '../base/Base.js';
2
+ import DivisionDialog from './DivisionDialog.js';
3
+ import Plugin from '../base/Plugin.js';
4
+ import TagGroup from '../base/TagGroup.js';
5
+ import TagName from '../base/TagName.js';
6
+
7
+ export default class Division extends Plugin {
8
+ /**
9
+ * @type {string}
10
+ */
11
+ static get name() {
12
+ return 'division';
13
+ }
14
+
15
+ /**
16
+ * @type {Plugin[]}
17
+ */
18
+ static get dependencies() {
19
+ return [Base];
20
+ }
21
+
22
+ /**
23
+ * @return {void}
24
+ */
25
+ init() {
26
+ this._tag({
27
+ name: TagName.DIV,
28
+ group: TagGroup.CONTAINER,
29
+ children: [
30
+ TagGroup.AUDIO,
31
+ TagGroup.BLOCK,
32
+ TagGroup.FIGURE,
33
+ TagGroup.IFRAME,
34
+ TagGroup.IMAGE,
35
+ TagGroup.PREFORMAT,
36
+ TagGroup.QUOTE,
37
+ TagGroup.RULE,
38
+ TagGroup.TABLE,
39
+ TagGroup.VIDEO,
40
+ ],
41
+ attributes: ['class'],
42
+ arbitrary: true,
43
+ deletable: true,
44
+ focusable: true,
45
+ navigable: true,
46
+ slotable: true,
47
+ sortable: true,
48
+ });
49
+ this.editor.dialogs.set(new DivisionDialog(this.editor, this.constructor.name));
50
+ this._command(TagName.DIV);
51
+ this._toolbar('Division');
52
+ }
53
+ }
@@ -0,0 +1,13 @@
1
+ import Dialog from '../base/Dialog.js';
2
+
3
+ export default class DivisionDialog extends Dialog {
4
+ /**
5
+ * @protected
6
+ * @return {void}
7
+ */
8
+ _prepareForm() {
9
+ this.formCreator
10
+ .addLegend(this._('Division'))
11
+ .addTextInput('class', this._('CSS class'), { placeholder: this._('Insert CSS class') });
12
+ }
13
+ }
@@ -0,0 +1,30 @@
1
+ import Base from '../base/Base.js';
2
+ import Key from '../base/Key.js';
3
+ import Plugin from '../base/Plugin.js';
4
+ import TagGroup from '../base/TagGroup.js';
5
+ import TagName from '../base/TagName.js';
6
+
7
+ export default class Emphasis extends Plugin {
8
+ /**
9
+ * @type {string}
10
+ */
11
+ static get name() {
12
+ return 'emphasis';
13
+ }
14
+
15
+ /**
16
+ * @type {Plugin[]}
17
+ */
18
+ static get dependencies() {
19
+ return [Base];
20
+ }
21
+
22
+ /**
23
+ * @return {void}
24
+ */
25
+ init() {
26
+ this._tag({ name: TagName.EM, group: TagGroup.FORMAT });
27
+ this._command(TagName.EM);
28
+ this._formatbar('emphasized', Key.E);
29
+ }
30
+ }
@@ -0,0 +1,58 @@
1
+ import Base from '../base/Base.js';
2
+ import FigureFilter from './FigureFilter.js';
3
+ import FigureListener from './FigureListener.js';
4
+ import Plugin from '../base/Plugin.js';
5
+ import TagGroup from '../base/TagGroup.js';
6
+ import TagName from '../base/TagName.js';
7
+
8
+ export default class Figure extends Plugin {
9
+ /**
10
+ * @type {string}
11
+ */
12
+ static get name() {
13
+ return 'figure';
14
+ }
15
+
16
+ /**
17
+ * @type {Plugin[]}
18
+ */
19
+ static get dependencies() {
20
+ return [Base];
21
+ }
22
+
23
+ /**
24
+ * @return {void}
25
+ */
26
+ init() {
27
+ this._tag({
28
+ name: TagName.FIGURE,
29
+ group: TagGroup.FIGURE,
30
+ children: [
31
+ TagGroup.AUDIO,
32
+ TagGroup.CAPTION,
33
+ TagGroup.IFRAME,
34
+ TagGroup.IMAGE,
35
+ TagGroup.PREFORMAT,
36
+ TagGroup.QUOTE,
37
+ TagGroup.TABLE,
38
+ TagGroup.VIDEO,
39
+ ],
40
+ attributes: ['class'],
41
+ alignable: true,
42
+ deletable: true,
43
+ focusable: true,
44
+ navigable: true,
45
+ sortable: true,
46
+ });
47
+ this._tag({
48
+ name: TagName.FIGCAPTION,
49
+ group: TagGroup.CAPTION,
50
+ children: [TagGroup.FORMAT],
51
+ editable: true,
52
+ navigable: true,
53
+ enter: TagName.P,
54
+ });
55
+ new FigureListener(this.editor);
56
+ this.editor.filters.add(new FigureFilter(this.editor));
57
+ }
58
+ }
@@ -0,0 +1,14 @@
1
+ import Filter from '../base/Filter.js';
2
+ import TagName from '../base/TagName.js';
3
+
4
+ export default class FigureFilter extends Filter {
5
+ /**
6
+ * @param {HTMLElement} element
7
+ * @return {void}
8
+ */
9
+ filter(element) {
10
+ element
11
+ .querySelectorAll(`${TagName.FIGURE} > ${TagName.FIGCAPTION}:only-child`)
12
+ .forEach((item) => item.parentElement.removeChild(item));
13
+ }
14
+ }
@@ -0,0 +1,23 @@
1
+ import Listener from '../base/Listener.js';
2
+ import TagName from '../base/TagName.js';
3
+
4
+ export default class FigureListener extends Listener {
5
+ /**
6
+ * @param {Editor} editor
7
+ */
8
+ constructor(editor) {
9
+ super(editor);
10
+ this.editor.root.addEventListener('insertfigure', this);
11
+ }
12
+
13
+ /**
14
+ * @param {CustomEvent} event
15
+ * @param {HTMLElement} event.detail.element
16
+ * @return {void}
17
+ */
18
+ insertfigure({ detail: { element } }) {
19
+ if (!element.querySelector(':scope > ' + TagName.FIGCAPTION)) {
20
+ this.editor.dom.insertLastChild(this.editor.dom.createElement(TagName.FIGCAPTION), element);
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,38 @@
1
+ import Base from '../base/Base.js';
2
+ import Plugin from '../base/Plugin.js';
3
+ import TagGroup from '../base/TagGroup.js';
4
+ import TagName from '../base/TagName.js';
5
+
6
+ export default class Heading extends Plugin {
7
+ /**
8
+ * @type {string}
9
+ */
10
+ static get name() {
11
+ return 'heading';
12
+ }
13
+
14
+ /**
15
+ * @type {Plugin[]}
16
+ */
17
+ static get dependencies() {
18
+ return [Base];
19
+ }
20
+
21
+ /**
22
+ * @return {void}
23
+ */
24
+ init() {
25
+ this._tag({
26
+ name: TagName.H2,
27
+ group: TagGroup.HEADING,
28
+ deletable: true,
29
+ editable: true,
30
+ focusable: true,
31
+ navigable: true,
32
+ sortable: true,
33
+ enter: TagName.P,
34
+ });
35
+ this._command(TagName.H2);
36
+ this._toolbar('Heading');
37
+ }
38
+ }
@@ -0,0 +1,37 @@
1
+ import Base from '../base/Base.js';
2
+ import Plugin from '../base/Plugin.js';
3
+ import TagGroup from '../base/TagGroup.js';
4
+ import TagName from '../base/TagName.js';
5
+
6
+ export default class HorizontalRule extends Plugin {
7
+ /**
8
+ * @type {string}
9
+ */
10
+ static get name() {
11
+ return 'horizontalrule';
12
+ }
13
+
14
+ /**
15
+ * @type {Plugin[]}
16
+ */
17
+ static get dependencies() {
18
+ return [Base];
19
+ }
20
+
21
+ /**
22
+ * @return {void}
23
+ */
24
+ init() {
25
+ this._tag({
26
+ name: TagName.HR,
27
+ group: TagGroup.RULE,
28
+ deletable: true,
29
+ empty: true,
30
+ focusable: true,
31
+ navigable: true,
32
+ sortable: true,
33
+ });
34
+ this._command(TagName.HR);
35
+ this._toolbar('Horizontal Rule');
36
+ }
37
+ }
package/i18n/I18n.js ADDED
@@ -0,0 +1,26 @@
1
+ import Base from '../base/Base.js';
2
+ import Plugin from '../base/Plugin.js';
3
+ import de from './de.js';
4
+
5
+ export default class I18n extends Plugin {
6
+ /**
7
+ * @type {string}
8
+ */
9
+ static get name() {
10
+ return 'i18n';
11
+ }
12
+
13
+ /**
14
+ * @type {Plugin[]}
15
+ */
16
+ static get dependencies() {
17
+ return [Base];
18
+ }
19
+
20
+ /**
21
+ * @return {void}
22
+ */
23
+ init() {
24
+ this._i18n({ de });
25
+ }
26
+ }
package/i18n/de.js ADDED
@@ -0,0 +1,167 @@
1
+ /**
2
+ * German translations
3
+ *
4
+ * @type {Object.<string, string>}
5
+ */
6
+ export default {
7
+ 'CSS class': 'CSS-Klasse',
8
+ Height: 'Höhe',
9
+ ID: 'ID',
10
+ 'Insert CSS class': 'CSS-Klasse eingeben',
11
+ URL: 'URL',
12
+ Width: 'Breite',
13
+
14
+ // abbreviation
15
+ Abbreviation: 'Abkürzung',
16
+ 'Full term': 'Langform',
17
+ 'Insert full term or leave empty to remove it': 'Langform eingeben oder zum Entfernen leer lassen',
18
+
19
+ // audio
20
+ Audio: 'Audio',
21
+ 'Insert URL to audio': 'URL zur Audiodatei eingeben',
22
+
23
+ // base
24
+ 'Align center': 'zentriert',
25
+ 'Align left': 'linksbündig',
26
+ 'Align right': 'rechtsbündig',
27
+ Alt: 'Alt',
28
+ Cancel: 'Abbrechen',
29
+ Delete: 'Löschen',
30
+ 'No alignment': 'Keine Ausrichtung',
31
+ Save: 'Speichern',
32
+ Shift: 'Umschalt',
33
+ 'Sort after next element': 'Hinter das nächste Element sortieren',
34
+ 'Sort before previous element': 'Vor das vorherige Element sortieren',
35
+ 'Sort to the beginning': 'An den Anfang sortieren',
36
+ 'Sort to the end': 'Ans Ende sortieren',
37
+
38
+ // block
39
+ Block: 'Block',
40
+
41
+ // Blockquote
42
+ Blockquote: 'Blockzitat',
43
+
44
+ // bold
45
+ bold: 'fett',
46
+
47
+ // cite
48
+ Citation: 'Zitatquelle',
49
+
50
+ // code
51
+ Code: 'Quelltext',
52
+
53
+ // data
54
+ Data: 'Data',
55
+ 'Machine-readable Value': 'Maschinenlesbarer Wert',
56
+ 'Insert value or leave empty to remove it': 'Wert eingeben oder zum Entfernen leer lassen',
57
+
58
+ // definition
59
+ Definition: 'Definition',
60
+ 'Insert term or leave empty to remove it': 'Begriff eingeben oder zum Entfernen leer lassen',
61
+ Term: 'Begriff',
62
+
63
+ // deletion
64
+ 'Text Deletion': 'Textlöschung',
65
+
66
+ // details
67
+ Details: 'Details',
68
+
69
+ // division
70
+ Division: 'Division',
71
+
72
+ // emphasis
73
+ emphasized: 'betont',
74
+
75
+ // heading
76
+ Heading: 'Überschrift',
77
+
78
+ // horizontalrule
79
+ 'Horizontal Rule': 'Horizontale Linie',
80
+
81
+ // iframe
82
+ Ifrane: 'Iframe',
83
+ 'Insert URL to embedded page': 'URL zur eingebetteten Seite eingeben',
84
+
85
+ // image
86
+ 'Alternative text': 'Alternativtext',
87
+ Image: 'Bild',
88
+ 'Insert URL to image': 'URL zur Bilddatei eingeben',
89
+ 'Text shown when media element is not available': 'Ersatztext, falls Medienelement nicht verfügbar ist',
90
+
91
+ // insertion
92
+ 'Text Insertion': 'Texteinfügung',
93
+
94
+ // italic
95
+ italic: 'kursiv',
96
+
97
+ // keyboard
98
+ 'User Input': 'Benutzereingabe',
99
+
100
+ // link
101
+ 'Insert link or leave empty to unlink': 'Link eingeben oder zum Entfernen leer lassen',
102
+ Link: 'Link',
103
+
104
+ // mark
105
+ mark: 'markiert',
106
+
107
+ // orderedlist
108
+ 'Ordered List': 'Geordnete Liste',
109
+
110
+ // paragraph
111
+ Paragraph: 'Absatz',
112
+
113
+ // preformat
114
+ 'Preformatted Text': 'Vorformatierter Text',
115
+
116
+ // quote
117
+ Quote: 'Zitat',
118
+
119
+ // sample
120
+ 'Sample Output': 'Beispielausgabe',
121
+
122
+ // section
123
+ Section: 'Sektion',
124
+
125
+ // small
126
+ small: 'klein',
127
+
128
+ // strikethrough
129
+ strikethrough: 'durchgestrichen',
130
+
131
+ // strong
132
+ 'strongly emphasized': 'stark betont',
133
+
134
+ // subheading
135
+ Subheading: 'Unterüberschrift',
136
+
137
+ // subscript
138
+ subscript: 'tiefgestellt',
139
+
140
+ // superscript
141
+ superscript: 'hochgestellt',
142
+
143
+ // table
144
+ 'Add column': 'Spalte hinzufügen',
145
+ 'Add row': 'Zeile hinzufügen',
146
+ Columns: 'Spalten',
147
+ Rows: 'Zeilen',
148
+ Table: 'Tabelle',
149
+
150
+ // time
151
+ 'Insert date/time or leave empty to remove it': 'Datum/Zeit eingeben oder zum Entfernen leer lassen',
152
+ 'Machine-readable Datetime': 'Maschinenlesbare Datums-/Zeitangabe',
153
+ Time: 'Zeit',
154
+
155
+ // underline
156
+ underline: 'unterstrichen',
157
+
158
+ // unorderedlist
159
+ 'Unordered List': 'Ungeordnete Liste',
160
+
161
+ // variable
162
+ Variable: 'Variable',
163
+
164
+ // video
165
+ 'Insert URL to video': 'URL zur Videodatei eingeben',
166
+ Video: 'Video',
167
+ };