<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-veCenter.js</id>
	<title>MediaWiki:Gadget-veCenter.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-veCenter.js"/>
	<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?title=MediaWiki:Gadget-veCenter.js&amp;action=history"/>
	<updated>2026-05-07T06:00:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?title=MediaWiki:Gadget-veCenter.js&amp;diff=611&amp;oldid=prev</id>
		<title>Anw: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?title=MediaWiki:Gadget-veCenter.js&amp;diff=611&amp;oldid=prev"/>
		<updated>2024-08-17T07:14:22Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:14, 17 August 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Anw</name></author>
	</entry>
	<entry>
		<id>https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?title=MediaWiki:Gadget-veCenter.js&amp;diff=610&amp;oldid=prev</id>
		<title>MCS&gt;Anw: Added shortcut key</title>
		<link rel="alternate" type="text/html" href="https://calidusassist.adcservices.apteancloud.com/calidus-assist/MCS/index.php?title=MediaWiki:Gadget-veCenter.js&amp;diff=610&amp;oldid=prev"/>
		<updated>2024-08-02T10:45:15Z</updated>

		<summary type="html">&lt;p&gt;Added shortcut key&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;mw.loader.using( [ 'ext.visualEditor.core', 'ext.visualEditor.mwtransclusion' ] ).then(function () {&lt;br /&gt;
&lt;br /&gt;
// --------- (start of ve.ui.CenterAction definition) -----------------------------------------------&lt;br /&gt;
// This is based on [lib/ve/src/ui/actions/ve.ui.BlockquoteAction.js] from Extension:VisualEditor.&lt;br /&gt;
&lt;br /&gt;
	ve.ui.CenterAction = function VeUiCenterAction() {&lt;br /&gt;
		ve.ui.CenterAction.super.apply( this, arguments );&lt;br /&gt;
	};&lt;br /&gt;
	OO.inheritClass( ve.ui.CenterAction, ve.ui.Action );&lt;br /&gt;
&lt;br /&gt;
	ve.ui.CenterAction.static.name = 'center';&lt;br /&gt;
	ve.ui.CenterAction.static.methods = [ 'wrap', 'unwrap', 'toggle' ];&lt;br /&gt;
&lt;br /&gt;
	ve.ui.CenterAction.prototype.isWrapped = function () {&lt;br /&gt;
		var fragment = this.surface.getModel().getFragment();&lt;br /&gt;
		return fragment.hasMatchingAncestor( 'center' );&lt;br /&gt;
	};&lt;br /&gt;
	ve.ui.CenterAction.prototype.toggle = function () {&lt;br /&gt;
		return this[ this.isWrapped() ? 'unwrap' : 'wrap' ]();&lt;br /&gt;
	};&lt;br /&gt;
	ve.ui.CenterAction.prototype.wrap = function () {&lt;br /&gt;
		var&lt;br /&gt;
			surfaceModel = this.surface.getModel(),&lt;br /&gt;
			selection = surfaceModel.getSelection(),&lt;br /&gt;
			fragment = surfaceModel.getFragment( null, true ),&lt;br /&gt;
			leaves, leavesRange;&lt;br /&gt;
&lt;br /&gt;
		if ( !( selection instanceof ve.dm.LinearSelection ) ) {&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		leaves = fragment.getSelectedLeafNodes();&lt;br /&gt;
		leavesRange = new ve.Range(&lt;br /&gt;
			leaves[ 0 ].getRange().start,&lt;br /&gt;
			leaves[ leaves.length - 1 ].getRange().end&lt;br /&gt;
		);&lt;br /&gt;
		fragment = surfaceModel.getLinearFragment( leavesRange, true );&lt;br /&gt;
&lt;br /&gt;
		fragment = fragment.expandLinearSelection( 'siblings' );&lt;br /&gt;
&lt;br /&gt;
		while (&lt;br /&gt;
			fragment.getCoveredNodes().some( function ( nodeInfo ) {&lt;br /&gt;
				return !nodeInfo.node.isAllowedParentNodeType( 'center' ) || nodeInfo.node.isContent();&lt;br /&gt;
			} )&lt;br /&gt;
		) {&lt;br /&gt;
			fragment = fragment.expandLinearSelection( 'parent' );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Wrap everything in a &amp;lt;center&amp;gt; tag&lt;br /&gt;
		fragment.wrapAllNodes( { type: 'center' } );&lt;br /&gt;
&lt;br /&gt;
		return true;&lt;br /&gt;
	};&lt;br /&gt;
	ve.ui.CenterAction.prototype.unwrap = function () {&lt;br /&gt;
		var&lt;br /&gt;
			surfaceModel = this.surface.getModel(),&lt;br /&gt;
			selection = surfaceModel.getSelection(),&lt;br /&gt;
			fragment = surfaceModel.getFragment( null, true ),&lt;br /&gt;
			leaves, leavesRange;&lt;br /&gt;
&lt;br /&gt;
		if ( !( selection instanceof ve.dm.LinearSelection ) ) {&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if ( !this.isWrapped() ) {&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		leaves = fragment.getSelectedLeafNodes();&lt;br /&gt;
		leavesRange = new ve.Range(&lt;br /&gt;
			leaves[ 0 ].getRange().start,&lt;br /&gt;
			leaves[ leaves.length - 1 ].getRange().end&lt;br /&gt;
		);&lt;br /&gt;
		fragment = surfaceModel.getLinearFragment( leavesRange, true );&lt;br /&gt;
&lt;br /&gt;
		fragment&lt;br /&gt;
			// Expand to cover entire &amp;lt;center&amp;gt; tag&lt;br /&gt;
			.expandLinearSelection( 'closest', ve.dm.CenterNode )&lt;br /&gt;
			// Unwrap it&lt;br /&gt;
			.unwrapNodes( 0, 1 );&lt;br /&gt;
&lt;br /&gt;
		return true;&lt;br /&gt;
	};&lt;br /&gt;
	ve.ui.actionFactory.register( ve.ui.CenterAction );&lt;br /&gt;
&lt;br /&gt;
// --------- (end of ve.ui.CenterAction definition) -------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	ve.ui.CenterFormatTool = function VeUiCenterFormatTool() {&lt;br /&gt;
		ve.ui.CenterFormatTool.super.apply( this, arguments );&lt;br /&gt;
	};&lt;br /&gt;
	OO.inheritClass( ve.ui.CenterFormatTool, ve.ui.FormatTool );&lt;br /&gt;
&lt;br /&gt;
	ve.ui.CenterFormatTool.static.name = 'center';&lt;br /&gt;
	ve.ui.CenterFormatTool.static.group = 'format';&lt;br /&gt;
	ve.ui.CenterFormatTool.static.title = 'Center';&lt;br /&gt;
	ve.ui.CenterFormatTool.static.format = { type: 'center' };&lt;br /&gt;
	ve.ui.CenterFormatTool.static.commandName = 'center';&lt;br /&gt;
	ve.ui.toolFactory.register( ve.ui.CenterFormatTool );&lt;br /&gt;
&lt;br /&gt;
	ve.ui.commandRegistry.register(&lt;br /&gt;
		new ve.ui.Command(&lt;br /&gt;
			'center', 'center', 'toggle',&lt;br /&gt;
			{ supportedSelections: [ 'linear' ] }&lt;br /&gt;
		)&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	ve.ui.triggerRegistry.register(&lt;br /&gt;
		'center', {&lt;br /&gt;
			mac: new ve.ui.Trigger('cmd+j'),&lt;br /&gt;
			pc: new ve.ui.Trigger('ctrl+j')&lt;br /&gt;
		}&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>MCS&gt;Anw</name></author>
	</entry>
</feed>