You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					61 lines
				
				2.1 KiB
			
		
		
			
		
	
	
					61 lines
				
				2.1 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { value: true }); | ||
|  | 
 | ||
|  | var core = require('@tiptap/core'); | ||
|  | 
 | ||
|  | const TextAlign = core.Extension.create({ | ||
|  |     name: 'textAlign', | ||
|  |     addOptions() { | ||
|  |         return { | ||
|  |             types: [], | ||
|  |             alignments: ['left', 'center', 'right', 'justify'], | ||
|  |             defaultAlignment: 'left', | ||
|  |         }; | ||
|  |     }, | ||
|  |     addGlobalAttributes() { | ||
|  |         return [ | ||
|  |             { | ||
|  |                 types: this.options.types, | ||
|  |                 attributes: { | ||
|  |                     textAlign: { | ||
|  |                         default: this.options.defaultAlignment, | ||
|  |                         parseHTML: element => element.style.textAlign || this.options.defaultAlignment, | ||
|  |                         renderHTML: attributes => { | ||
|  |                             if (attributes.textAlign === this.options.defaultAlignment) { | ||
|  |                                 return {}; | ||
|  |                             } | ||
|  |                             return { style: `text-align: ${attributes.textAlign}` }; | ||
|  |                         }, | ||
|  |                     }, | ||
|  |                 }, | ||
|  |             }, | ||
|  |         ]; | ||
|  |     }, | ||
|  |     addCommands() { | ||
|  |         return { | ||
|  |             setTextAlign: (alignment) => ({ commands }) => { | ||
|  |                 if (!this.options.alignments.includes(alignment)) { | ||
|  |                     return false; | ||
|  |                 } | ||
|  |                 return this.options.types.every(type => commands.updateAttributes(type, { textAlign: alignment })); | ||
|  |             }, | ||
|  |             unsetTextAlign: () => ({ commands }) => { | ||
|  |                 return this.options.types.every(type => commands.resetAttributes(type, 'textAlign')); | ||
|  |             }, | ||
|  |         }; | ||
|  |     }, | ||
|  |     addKeyboardShortcuts() { | ||
|  |         return { | ||
|  |             'Mod-Shift-l': () => this.editor.commands.setTextAlign('left'), | ||
|  |             'Mod-Shift-e': () => this.editor.commands.setTextAlign('center'), | ||
|  |             'Mod-Shift-r': () => this.editor.commands.setTextAlign('right'), | ||
|  |             'Mod-Shift-j': () => this.editor.commands.setTextAlign('justify'), | ||
|  |         }; | ||
|  |     }, | ||
|  | }); | ||
|  | 
 | ||
|  | exports.TextAlign = TextAlign; | ||
|  | exports["default"] = TextAlign; | ||
|  | //# sourceMappingURL=tiptap-extension-text-align.cjs.map
 |