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.
		
		
		
		
		
			
		
			
				
					65 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					65 lines
				
				2.6 KiB
			| 
											3 years ago
										 | (function (global, factory) { | ||
|  |   typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tiptap/core')) : | ||
|  |   typeof define === 'function' && define.amd ? define(['exports', '@tiptap/core'], factory) : | ||
|  |   (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@tiptap/extension-text-align"] = {}, global.core)); | ||
|  | })(this, (function (exports, core) { 'use strict'; | ||
|  | 
 | ||
|  |   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; | ||
|  | 
 | ||
|  |   Object.defineProperty(exports, '__esModule', { value: true }); | ||
|  | 
 | ||
|  | })); | ||
|  | //# sourceMappingURL=tiptap-extension-text-align.umd.js.map
 |