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
						
					
					
				| (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
 |