Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/www/pusher/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/www/pusher/codemirror.zip

PK䓌[� 8y;);)codemirror.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  Editors.codemirror
 *
 * @copyright   (C) 2009 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

// No direct access
defined('_JEXEC') or die;

/**
 * CodeMirror Editor Plugin.
 *
 * @since  1.6
 */
class PlgEditorCodemirror extends JPlugin
{
	/**
	 * Affects constructor behavior. If true, language files will be loaded
automatically.
	 *
	 * @var    boolean
	 * @since  3.1.4
	 */
	protected $autoloadLanguage = true;

	/**
	 * Mapping of syntax to CodeMirror modes.
	 *
	 * @var array
	 */
	protected $modeAlias = array();

	/**
	 * Initialises the Editor.
	 *
	 * @return  void
	 */
	public function onInit()
	{
		static $done = false;

		// Do this only once.
		if ($done)
		{
			return;
		}

		$done = true;

		// Most likely need this later
		$doc = JFactory::getDocument();

		// Codemirror shall have its own group of plugins to modify and extend
its behavior
		JPluginHelper::importPlugin('editors_codemirror');
		$dispatcher	= JEventDispatcher::getInstance();

		// At this point, params can be modified by a plugin before going to the
layout renderer.
		$dispatcher->trigger('onCodeMirrorBeforeInit',
array(&$this->params));

		$displayData = (object) array('params'  =>
$this->params);

		// We need to do output buffering here because layouts may actually
'echo' things which we do not want.
		ob_start();
		JLayoutHelper::render('editors.codemirror.init', $displayData,
__DIR__ . '/layouts');
		ob_end_clean();

		$font = $this->params->get('fontFamily', '0');
		$fontInfo = $this->getFontInfo($font);

		if (isset($fontInfo))
		{
			if (isset($fontInfo->url))
			{
				$doc->addStyleSheet($fontInfo->url);
			}

			if (isset($fontInfo->css))
			{
				$displayData->fontFamily = $fontInfo->css .
'!important';
			}
		}

		// We need to do output buffering here because layouts may actually
'echo' things which we do not want.
		ob_start();
		JLayoutHelper::render('editors.codemirror.styles',
$displayData, __DIR__ . '/layouts');
		ob_end_clean();

		$dispatcher->trigger('onCodeMirrorAfterInit',
array(&$this->params));
	}

	/**
	 * Copy editor content to form field.
	 *
	 * @param   string  $id  The id of the editor field.
	 *
	 * @return  string  Javascript
	 *
	 * @deprecated 4.0 Code executes directly on submit
	 */
	public function onSave($id)
	{
		return sprintf('document.getElementById(%1$s).value =
Joomla.editors.instances[%1$s].getValue();', json_encode((string)
$id));
	}

	/**
	 * Get the editor content.
	 *
	 * @param   string  $id  The id of the editor field.
	 *
	 * @return  string  Javascript
	 *
	 * @deprecated 4.0 Use directly the returned code
	 */
	public function onGetContent($id)
	{
		return sprintf('Joomla.editors.instances[%1$s].getValue();',
json_encode((string) $id));
	}

	/**
	 * Set the editor content.
	 *
	 * @param   string  $id       The id of the editor field.
	 * @param   string  $content  The content to set.
	 *
	 * @return  string  Javascript
	 *
	 * @deprecated 4.0 Use directly the returned code
	 */
	public function onSetContent($id, $content)
	{
		return
sprintf('Joomla.editors.instances[%1$s].setValue(%2$s);',
json_encode((string) $id), json_encode((string) $content));
	}

	/**
	 * Adds the editor specific insert method.
	 *
	 * @return  void
	 *
	 * @deprecated 4.0 Code is loaded in the init script
	 */
	public function onGetInsertMethod()
	{
		static $done = false;

		// Do this only once.
		if ($done)
		{
			return true;
		}

		$done = true;

		JFactory::getDocument()->addScriptDeclaration("
		;function jInsertEditorText(text, editor) {
Joomla.editors.instances[editor].replaceSelection(text); }
		");

		return true;
	}

	/**
	 * Display the editor area.
	 *
	 * @param   string   $name     The control name.
	 * @param   string   $content  The contents of the text area.
	 * @param   string   $width    The width of the text area (px or %).
	 * @param   string   $height   The height of the text area (px or %).
	 * @param   int      $col      The number of columns for the textarea.
	 * @param   int      $row      The number of rows for the textarea.
	 * @param   boolean  $buttons  True and the editor buttons will be
displayed.
	 * @param   string   $id       An optional ID for the textarea (note:
since 1.6). If not supplied the name is used.
	 * @param   string   $asset    Not used.
	 * @param   object   $author   Not used.
	 * @param   array    $params   Associative array of editor parameters.
	 *
	 * @return  string  HTML
	 */
	public function onDisplay(
		$name, $content, $width, $height, $col, $row, $buttons = true, $id =
null, $asset = null, $author = null, $params = array())
	{
		// True if a CodeMirror already has autofocus. Prevent multiple
autofocuses.
		static $autofocused;

		$id = empty($id) ? $name : $id;

		// Must pass the field id to the buttons in this editor.
		$buttons = $this->displayButtons($id, $buttons, $asset, $author);

		// Only add "px" to width and height if they are not given as a
percentage.
		$width .= is_numeric($width) ? 'px' : '';
		$height .= is_numeric($height) ? 'px' : '';

		// Options for the CodeMirror constructor.
		$options = new stdClass;

		// Is field readonly?
		if (!empty($params['readonly']))
		{
			$options->readOnly = 'nocursor';
		}

		// Should we focus on the editor on load?
		if (!$autofocused)
		{
			$options->autofocus = isset($params['autofocus']) ? (bool)
$params['autofocus'] : false;
			$autofocused = $options->autofocus;
		}

		$options->lineWrapping = (boolean)
$this->params->get('lineWrapping', 1);

		// Add styling to the active line.
		$options->styleActiveLine = (boolean)
$this->params->get('activeLine', 1);

		// Do we highlight selection matches?
		if ($this->params->get('selectionMatches', 1))
		{
			$options->highlightSelectionMatches = array(
					'showToken' => true,
					'annotateScrollbar' => true,
				);
		}

		// Do we use line numbering?
		if ($options->lineNumbers = (boolean)
$this->params->get('lineNumbers', 1))
		{
			$options->gutters[] = 'CodeMirror-linenumbers';
		}

		// Do we use code folding?
		if ($options->foldGutter = (boolean)
$this->params->get('codeFolding', 1))
		{
			$options->gutters[] = 'CodeMirror-foldgutter';
		}

		// Do we use a marker gutter?
		if ($options->markerGutter = (boolean)
$this->params->get('markerGutter',
$this->params->get('marker-gutter', 1)))
		{
			$options->gutters[] = 'CodeMirror-markergutter';
		}

		// Load the syntax mode.
		$syntax = !empty($params['syntax'])
			? $params['syntax']
			: $this->params->get('syntax', 'html');
		$options->mode = isset($this->modeAlias[$syntax]) ?
$this->modeAlias[$syntax] : $syntax;

		// Load the theme if specified.
		if ($theme = $this->params->get('theme'))
		{
			$options->theme = $theme;
			JHtml::_('stylesheet',
$this->params->get('basePath',
'media/editors/codemirror/') . 'theme/' . $theme .
'.css', array('version' => 'auto'));
		}

		// Special options for tagged modes (xml/html).
		if (in_array($options->mode, array('xml', 'html',
'php')))
		{
			// Autogenerate closing tags (html/xml only).
			$options->autoCloseTags = (boolean)
$this->params->get('autoCloseTags', 1);

			// Highlight the matching tag when the cursor is in a tag (html/xml
only).
			$options->matchTags = (boolean)
$this->params->get('matchTags', 1);
		}

		// Special options for non-tagged modes.
		if (!in_array($options->mode, array('xml',
'html')))
		{
			// Autogenerate closing brackets.
			$options->autoCloseBrackets = (boolean)
$this->params->get('autoCloseBrackets', 1);

			// Highlight the matching bracket.
			$options->matchBrackets = (boolean)
$this->params->get('matchBrackets', 1);
		}

		$options->scrollbarStyle =
$this->params->get('scrollbarStyle', 'native');

		// KeyMap settings.
		$options->keyMap = $this->params->get('keyMap',
false);

		// Support for older settings.
		if ($options->keyMap === false)
		{
			$options->keyMap =
$this->params->get('vimKeyBinding', 0) ? 'vim' :
'default';
		}

		if ($options->keyMap && $options->keyMap !=
'default')
		{
			$this->loadKeyMap($options->keyMap);
		}

		$displayData = (object) array(
				'options' => $options,
				'params'  => $this->params,
				'name'    => $name,
				'id'      => $id,
				'cols'    => $col,
				'rows'    => $row,
				'content' => $content,
				'buttons' => $buttons
			);

		$dispatcher = JEventDispatcher::getInstance();

		// At this point, displayData can be modified by a plugin before going to
the layout renderer.
		$results = $dispatcher->trigger('onCodeMirrorBeforeDisplay',
array(&$displayData));

		$results[] =
JLayoutHelper::render('editors.codemirror.element', $displayData,
__DIR__ . '/layouts', array('debug' => JDEBUG));

		foreach ($dispatcher->trigger('onCodeMirrorAfterDisplay',
array(&$displayData)) as $result)
		{
			$results[] = $result;
		}

		return implode("\n", $results);
	}

	/**
	 * Displays the editor buttons.
	 *
	 * @param   string  $name     Button name.
	 * @param   mixed   $buttons  [array with button objects | boolean true to
display buttons]
	 * @param   mixed   $asset    Unused.
	 * @param   mixed   $author   Unused.
	 *
	 * @return  string  HTML
	 */
	protected function displayButtons($name, $buttons, $asset, $author)
	{
		$return = '';

		$args = array(
			'name'  => $name,
			'event' => 'onGetInsertMethod'
		);

		$results = (array) $this->update($args);

		if ($results)
		{
			foreach ($results as $result)
			{
				if (is_string($result) && trim($result))
				{
					$return .= $result;
				}
			}
		}

		if (is_array($buttons) || (is_bool($buttons) && $buttons))
		{
			$buttons = $this->_subject->getButtons($name, $buttons, $asset,
$author);

			$return .= JLayoutHelper::render('joomla.editors.buttons',
$buttons);
		}

		return $return;
	}

	/**
	 * Gets font info from the json data file
	 *
	 * @param   string  $font  A key from the $fonts array.
	 *
	 * @return  object
	 */
	protected function getFontInfo($font)
	{
		static $fonts;

		if (!$fonts)
		{
			$fonts = json_decode(file_get_contents(__DIR__ .
'/fonts.json'), true);
		}

		return isset($fonts[$font]) ? (object) $fonts[$font] : null;
	}

	/**
	 * Loads a keyMap file
	 *
	 * @param   string  $keyMap  The name of a keyMap file to load.
	 *
	 * @return  void
	 */
	protected function loadKeyMap($keyMap)
	{
		$basePath = $this->params->get('basePath',
'media/editors/codemirror/');
		$ext = JDEBUG ? '.js' : '.min.js';
		JHtml::_('script', $basePath . 'keymap/' . $keyMap .
$ext, array('version' => 'auto'));
	}
}
PK䓌[�W"�)�)codemirror.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.2" type="plugin"
group="editors" method="upgrade">
	<name>plg_editors_codemirror</name>
	<version>5.60.0</version>
	<creationDate>28 March 2011</creationDate>
	<author>Marijn Haverbeke</author>
	<authorEmail>marijnh@gmail.com</authorEmail>
	<authorUrl>https://codemirror.net/</authorUrl>
	<copyright>Copyright (C) 2014 - 2021 by Marijn Haverbeke
&lt;marijnh@gmail.com&gt; and others</copyright>
	<license>MIT license: https://codemirror.net/LICENSE</license>
	<description>PLG_CODEMIRROR_XML_DESCRIPTION</description>
	<files>
		<filename
plugin="codemirror">codemirror.php</filename>
		<filename>styles.css</filename>
		<filename>styles.min.css</filename>
		<filename>fonts.json</filename>
		<filename>fonts.php</filename>
	</files>

	<languages>
		<language
tag="en-GB">en-GB.plg_editors_codemirror.ini</language>
		<language
tag="en-GB">en-GB.plg_editors_codemirror.sys.ini</language>
	</languages>

	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="lineNumbers"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_LINENUMBERS_LABEL"
					description="PLG_CODEMIRROR_FIELD_LINENUMBERS_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="codeFolding"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_CODEFOLDING_LABEL"
					description="PLG_CODEMIRROR_FIELD_CODEFOLDING_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="markerGutter"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_MARKERGUTTER_LABEL"
					description="PLG_CODEMIRROR_FIELD_MARKERGUTTER_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="lineWrapping"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_LINEWRAPPING_LABEL"
					description="PLG_CODEMIRROR_FIELD_LINEWRAPPING_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="activeLine"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_ACTIVELINE_LABEL"
					description="PLG_CODEMIRROR_FIELD_ACTIVELINE_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="selectionMatches"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_SELECTIONMATCHES_LABEL"
					description="PLG_CODEMIRROR_FIELD_SELECTIONMATCHES_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="matchTags"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_MATCHTAGS_LABEL"
					description="PLG_CODEMIRROR_FIELD_MATCHTAGS_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="matchBrackets"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_MATCHBRACKETS_LABEL"
					description="PLG_CODEMIRROR_FIELD_MATCHBRACKETS_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="autoCloseTags"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_AUTOCLOSETAGS_LABEL"
					description="PLG_CODEMIRROR_FIELD_AUTOCLOSETAGS_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="autoCloseBrackets"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_AUTOCLOSEBRACKET_LABEL"
					description="PLG_CODEMIRROR_FIELD_AUTOCLOSEBRACKET_DESC"
					class="btn-group btn-group-yesno"
					default="1"
					filter="integer"
					>
					<option value="1">JON</option>
					<option value="0">JOFF</option>
				</field>

				<field
					name="keyMap"
					type="list"
					label="PLG_CODEMIRROR_FIELD_KEYMAP_LABEL"
					description="PLG_CODEMIRROR_FIELD_KEYMAP_DESC"
					default=""
					>
					<option value="">JDEFAULT</option>
					<option
value="emacs">PLG_CODEMIRROR_FIELD_KEYMAP_EMACS</option>
					<option
value="sublime">PLG_CODEMIRROR_FIELD_KEYMAP_SUBLIME</option>
					<option
value="vim">PLG_CODEMIRROR_FIELD_KEYMAP_VIM</option>
				</field>

				<field
					name="fullScreen"
					type="list"
					label="PLG_CODEMIRROR_FIELD_FULLSCREEN_LABEL"
					description="PLG_CODEMIRROR_FIELD_FULLSCREEN_DESC"
					default="F10"
					>
					<option value="F1">F1</option>
					<option value="F2">F2</option>
					<option value="F3">F3</option>
					<option value="F4">F4</option>
					<option value="F5">F5</option>
					<option value="F6">F6</option>
					<option value="F7">F7</option>
					<option value="F8">F8</option>
					<option value="F9">F9</option>
					<option value="F10">F10</option>
					<option value="F11">F11</option>
					<option value="F12">F12</option>
				</field>

				<field
					name="fullScreenMod"
					type="checkboxes"
					label="PLG_CODEMIRROR_FIELD_FULLSCREEN_MOD_LABEL"
					description="PLG_CODEMIRROR_FIELD_FULLSCREEN_MOD_DESC"
					>
					<option
value="Shift">PLG_CODEMIRROR_FIELD_VALUE_FULLSCREEN_MOD_SHIFT</option>
					<option
value="Cmd">PLG_CODEMIRROR_FIELD_VALUE_FULLSCREEN_MOD_CMD</option>
					<option
value="Ctrl">PLG_CODEMIRROR_FIELD_VALUE_FULLSCREEN_MOD_CTRL</option>
					<option
value="Alt">PLG_CODEMIRROR_FIELD_VALUE_FULLSCREEN_MOD_ALT</option>
				</field>

				<field
					name="basePath"
					type="hidden"
					default="media/editors/codemirror/"
				/>

				<field
					name="modePath"
					type="hidden"
					default="media/editors/codemirror/mode/%N/%N"
				/>
			</fieldset>

			<fieldset name="appearance"
label="PLG_CODEMIRROR_FIELDSET_APPEARANCE_OPTIONS_LABEL"
addfieldpath="plugins/editors/codemirror">
				<field
					name="theme"
					type="filelist"
					label="PLG_CODEMIRROR_FIELD_THEME_LABEL"
					description="PLG_CODEMIRROR_FIELD_THEME_DESC"
					default=""
					filter="\.css$"
					stripext="true"
					hide_none="true"
					hide_default="false"
					directory="media/editors/codemirror/theme"
				/>

				<field
					name="activeLineColor"
					type="color"
					label="PLG_CODEMIRROR_FIELD_ACTIVELINE_COLOR_LABEL"
					description="PLG_CODEMIRROR_FIELD_ACTIVELINE_COLOR_DESC"
					default="#a4c2eb"
					filter="color"
				/>

				<field
					name="highlightMatchColor"
					type="color"
					label="PLG_CODEMIRROR_FIELD_HIGHLIGHT_MATCH_COLOR_LABEL"
					description="PLG_CODEMIRROR_FIELD_HIGHLIGHT_MATCH_COLOR_DESC"
					default="#fa542f"
					filter="color"
				/>

				<field
					name="fontFamily"
					type="fonts"
					label="PLG_CODEMIRROR_FIELD_FONT_FAMILY_LABEL"
					description="PLG_CODEMIRROR_FIELD_FONT_FAMILY_DESC"
					default="0"
					>
					<option
value="0">PLG_CODEMIRROR_FIELD_VALUE_FONT_FAMILY_DEFAULT</option>
				</field>

				<field
					name="fontSize"
					type="integer"
					label="PLG_CODEMIRROR_FIELD_FONT_SIZE_LABEL"
					description="PLG_CODEMIRROR_FIELD_FONT_SIZE_DESC"
					first="6"
					last="16"
					step="1"
					default="13"
					filter="integer"
				/>

				<field
					name="lineHeight"
					type="list"
					label="PLG_CODEMIRROR_FIELD_LINE_HEIGHT_LABEL"
					description="PLG_CODEMIRROR_FIELD_LINE_HEIGHT_DESC"
					default="1.2"
					filter="float"
					>
					<option value="1">1</option>
					<option value="1.1">1.1</option>
					<option value="1.2">1.2</option>
					<option value="1.3">1.3</option>
					<option value="1.4">1.4</option>
					<option value="1.5">1.5</option>
					<option value="1.6">1.6</option>
					<option value="1.7">1.7</option>
					<option value="1.8">1.8</option>
					<option value="1.9">1.9</option>
					<option value="2">2</option>
				</field>

				<field
					name="scrollbarStyle"
					type="radio"
					label="PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_LABEL"
					description="PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_DESC"
					class="btn-group btn-group-yesno"
					default="native"
					>
					<option
value="native">PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_DEFAULT</option>
					<option
value="simple">PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_SIMPLE</option>
					<option
value="overlay">PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_OVERLAY</option>
				</field>

				<field
					name="preview"
					type="editor"
					label="PLG_CODEMIRROR_FIELD_PREVIEW_LABEL"
					description="PLG_CODEMIRROR_FIELD_PREVIEW_DESC"
					editor="codemirror"
					filter="unset"
					buttons="false"
					>
					<default>
<![CDATA[
<script type="text/javascript">
	jQuery(function ($) {
		$('.hello').html('Hello World');
	});
</script>

<style type="text/css">
	h1 {
		background-clip: border-box;
		background-color: #cacaff;
		background-image: linear-gradient(45deg, transparent 0px, transparent
30px, #ababff 30px, #ababff 60px, transparent 60px);
		background-repeat: repeat-x;
		background-size: 90px 100%;
		border: 1px solid #8989ff;
		border-radius: 10px;
		color: #333;
		padding: 0 15px;
	}
</style>

<div>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam
a ornare lectus, quis semper urna. Vestibulum ante ipsum primis in faucibus
orci luctus et ultrices posuere cubilia Curae; Vivamus interdum metus id
elit rutrum sollicitudin. Pellentesque habitant morbi tristique senectus et
netus et malesuada fames ac turpis egestas. Aliquam in fermentum risus, id
facilisis nulla. Phasellus gravida erat sed ullamcorper accumsan. Donec
blandit sem eget sem congue, a varius sapien semper.</p>
	<p>Integer euismod tempor convallis. Nullam porttitor et ex ac
fringilla. Quisque facilisis est ac erat condimentum malesuada. Aenean
commodo quam odio, tincidunt ultricies mauris suscipit et.</p>

	<ul>
		<li>Vivamus ultrices ligula a odio lacinia pellentesque.</li>
		<li>Curabitur iaculis arcu pharetra, mollis turpis id, commodo
erat.</li>
		<li>Etiam consequat enim quis faucibus interdum.</li>
		<li>Morbi in ipsum pulvinar, eleifend lorem sit amet, euismod
magna.</li>
		<li>Donec consectetur lacus vitae eros euismod porta.</li>
	</ul>
</div>
]]>
					</default>
				</field>

			</fieldset>
		</fields>
	</config>
</extension>
PK䓌[���--
fonts.jsonnu�[���{
	"anonymous_pro": {
		"name": "Anonymous Pro",
		"url":
"https://fonts.googleapis.com/css?family=Anonymous+Pro",
		"css": "'Anonymous Pro', monospace"
	},
	"cousine": {
		"name": "Cousine",
		"url":
"https://fonts.googleapis.com/css?family=Cousine",
		"css": "Cousine, monospace"
	},
	"cutive_mono": {
		"name": "Cutive Mono",
		"url":
"https://fonts.googleapis.com/css?family=Cutive+Mono",
		"css": "'Cutive Mono', monospace"
	},
	"droid_sans_mono": {
		"name": "Droid Sans Mono",
		"url":
"https://fonts.googleapis.com/css?family=Droid+Sans+Mono",
		"css": "'Droid Sans Mono', monospace"
	},
	"fira_mono": {
		"name": "Fira Mono",
		"url":
"https://fonts.googleapis.com/css?family=Fira+Mono",
		"css": "'Fira Mono', monospace"
	},
	"ibm_plex_mono": {
		"name": "IBM Plex Mono",
		"url":
"https://fonts.googleapis.com/css?family=IBM+Plex+Mono",
		"css": "'IBM Plex Mono', monospace;"
	},
	"inconsolata": {
		"name": "Inconsolata",
		"url":
"https://fonts.googleapis.com/css?family=Inconsolata",
		"css": "Inconsolata, monospace"
	},
	"lekton": {
		"name": "Lekton",
		"url":
"https://fonts.googleapis.com/css?family=Lekton",
		"css": "Lekton, monospace"
	},
	"nanum_gothic_coding": {
		"name": "Nanum Gothic Coding",
		"url":
"https://fonts.googleapis.com/css?family=Nanum+Gothic+Coding",
		"css": "'Nanum Gothic Coding', monospace"
	},
	"nova_mono": {
		"name": "Nova Mono",
		"url":
"https://fonts.googleapis.com/css?family=Nova+Mono",
		"css": "'Nova Mono', monospace"
	},
	"overpass_mono": {
		"name": "Overpass Mono",
		"url":
"https://fonts.googleapis.com/css?family=Overpass+Mono",
		"css": "'Overpass Mono', monospace"
	},
	"oxygen_mono": {
		"name": "Oxygen Mono",
		"url":
"https://fonts.googleapis.com/css?family=Oxygen+Mono",
		"css": "'Oxygen Mono', monospace"
	},
	"press_start_2p": {
		"name": "Press Start 2P",
		"url":
"https://fonts.googleapis.com/css?family=Press+Start+2P",
		"css": "'Press Start 2P', monospace"
	},
	"pt_mono": {
		"name": "PT Mono",
		"url":
"https://fonts.googleapis.com/css?family=PT+Mono",
		"css": "'PT Mono', monospace"
	},
	"roboto_mono": {
		"name": "Roboto Mono",
		"url":
"https://fonts.googleapis.com/css?family=Roboto+Mono",
		"css": "'Roboto Mono', monospace"
	},
	"rubik_mono_one": {
		"name": "Rubik Mono One",
		"url":
"https://fonts.googleapis.com/css?family=Rubik+Mono+One",
		"css": "'Rubik Mono One', monospace"
	},
	"share_tech_mono": {
		"name": "Share Tech Mono",
		"url":
"https://fonts.googleapis.com/css?family=Share+Tech+Mono",
		"css": "'Share Tech Mono', monospace"
	},
	"source_code_pro": {
		"name": "Source Code Pro",
		"url":
"https://fonts.googleapis.com/css?family=Source+Code+Pro",
		"css": "'Source Code Pro', monospace"
	},
	"space_mono": {
		"name": "Space Mono",
		"url":
"https://fonts.googleapis.com/css?family=Space+Mono",
		"css": "'Space Mono', monospace"
	},
	"ubuntu_mono": {
		"name": "Ubuntu Mono",
		"url":
"https://fonts.googleapis.com/css?family=Ubuntu+Mono",
		"css": "'Ubuntu Mono', monospace"
	},
	"vt323": {
		"name": "VT323",
		"url":
"https://fonts.googleapis.com/css?family=VT323",
		"css": "'VT323', monospace"
	}
}
PK䓌[>MDD	fonts.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  Editors.codemirror
 *
 * @copyright   (C) 2014 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

// No direct access
defined('_JEXEC') or die;

JFormHelper::loadFieldClass('list');

/**
 * Supports an HTML select list of fonts
 *
 * @package     Joomla.Plugin
 * @subpackage  Editors.codemirror
 * @since       3.4
 */
class JFormFieldFonts extends JFormFieldList
{
	/**
	 * The form field type.
	 *
	 * @var    string
	 * @since  3.4
	 */
	protected $type = 'Fonts';

	/**
	 * Method to get the list of fonts field options.
	 *
	 * @return  array  The field option objects.
	 *
	 * @since   3.4
	 */
	protected function getOptions()
	{
		$fonts = json_decode(file_get_contents(__DIR__ .
'/fonts.json'));
		$options = array();

		foreach ($fonts as $key => $info)
		{
			$options[] = JHtml::_('select.option', $key, $info->name);
		}

		// Merge any additional options in the XML definition.
		return array_merge(parent::getOptions(), $options);
	}
}
PK䓌[GL:**&layouts/editors/codemirror/element.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  Editors.codemirror
 *
 * @copyright   (C) 2015 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

// No direct access
defined('_JEXEC') or die;

$options  = $displayData->options;
$params   = $displayData->params;
$name     = $displayData->name;
$id       = $displayData->id;
$cols     = $displayData->cols;
$rows     = $displayData->rows;
$content  = $displayData->content;
$buttons  = $displayData->buttons;
$modifier = $params->get('fullScreenMod', array()) ?
implode(' + ', $params->get('fullScreenMod',
array())) . ' + ' : '';

?>

<p class="label">
    <?php echo
JText::sprintf('PLG_CODEMIRROR_TOGGLE_FULL_SCREEN', $modifier,
$params->get('fullScreen', 'F10')); ?>
</p>

<?php
	echo '<textarea class="codemirror-source"
name="', $name,
		'" id="', $id,
		'" cols="', $cols,
		'" rows="', $rows,
		'" data-options="',
htmlspecialchars(json_encode($options)),
		'">', $content, '</textarea>';
?>

<?php echo $buttons; ?>
PK䓌[��'d��#layouts/editors/codemirror/init.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  Editors.codemirror
 *
 * @copyright   (C) 2015 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

// No direct access
defined('_JEXEC') or die;

$params   = $displayData->params;
$basePath = $params->get('basePath',
'media/editors/codemirror/');
$modePath = $params->get('modePath',
'media/editors/codemirror/mode/%N/%N');
$extJS    = JDEBUG ? '.js' : '.min.js';
$extCSS   = JDEBUG ? '.css' : '.min.css';

JHtml::_('script', $basePath . 'lib/codemirror' .
$extJS, array('version' => 'auto'));
JHtml::_('script', $basePath . 'lib/addons' . $extJS,
array('version' => 'auto'));
JHtml::_('stylesheet', $basePath . 'lib/codemirror' .
$extCSS, array('version' => 'auto'));
JHtml::_('stylesheet', $basePath . 'lib/addons' .
$extCSS, array('version' => 'auto'));

$fskeys          = $params->get('fullScreenMod', array());
$fskeys[]        = $params->get('fullScreen',
'F10');
$fullScreenCombo = implode('-', $fskeys);
$fsCombo         = json_encode($fullScreenCombo);
$modPath         = json_encode(JUri::root(true) . '/' . $modePath
. $extJS);
JFactory::getDocument()->addScriptDeclaration(
<<<JS
		;(function (cm, $) {
			cm.commands.toggleFullScreen = function (cm) {
				cm.setOption('fullScreen',
!cm.getOption('fullScreen'));
			};
			cm.commands.closeFullScreen = function (cm) {
				cm.getOption('fullScreen') &&
cm.setOption('fullScreen', false);
			};

			cm.keyMap.default['Ctrl-Q'] = 'toggleFullScreen';
			cm.keyMap.default[$fsCombo] = 'toggleFullScreen';
			cm.keyMap.default['Esc'] = 'closeFullScreen';
			// For mode autoloading.
			cm.modeURL = $modPath;
			// Fire this function any time an editor is created.
			cm.defineInitHook(function (editor)
			{
				// Try to set up the mode
				var mode = cm.findModeByMIME(editor.options.mode || '') ||
							cm.findModeByName(editor.options.mode || '') ||
							cm.findModeByExtension(editor.options.mode || '');

				cm.autoLoadMode(editor, mode ? mode.mode : editor.options.mode);

				if (mode && mode.mime)
				{
					editor.setOption('mode', mode.mime);
				}

				// Handle gutter clicks (place or remove a marker).
				editor.on('gutterClick', function (ed, n, gutter) {
					if (gutter != 'CodeMirror-markergutter') { return; }
					var info = ed.lineInfo(n),
						hasMarker = !!info.gutterMarkers &&
!!info.gutterMarkers['CodeMirror-markergutter'];
					ed.setGutterMarker(n, 'CodeMirror-markergutter', hasMarker ?
null : makeMarker());
				});

				// jQuery's ready function.
				$(function () {
					// Some browsers do something weird with the fieldset which
doesn't work well with CodeMirror. Fix it.
					$(editor.getWrapperElement()).parent('fieldset').css('min-width',
0);
					// Listen for Bootstrap's 'shown' event. If this editor
was in a hidden element when created, it may need to be refreshed.
					$(document.body).on('shown shown.bs.tab shown.bs.modal',
function () { editor.refresh(); });
				});
			});

			function makeMarker()
			{
				var marker = document.createElement('div');
				marker.className = 'CodeMirror-markergutter-mark';
				return marker;
			}

			// Initialize any CodeMirrors on page load and when a subform is added
			$(function ($) {
				initCodeMirror();
				$('body').on('subform-row-add', initCodeMirror);
			});

			function initCodeMirror(event, container)
			{
				container = container || document;
				$(container).find('textarea.codemirror-source').each(function
() {
					var input = $(this).removeClass('codemirror-source');
					var id = input.prop('id');

					Joomla.editors.instances[id] = cm.fromTextArea(this,
input.data('options'));
				});
			}

		}(CodeMirror, jQuery));
JS
);
PK䓌[�1nB	B	%layouts/editors/codemirror/styles.phpnu�[���<?php
/**
 * @package     Joomla.Plugin
 * @subpackage  Editors.codemirror
 *
 * @copyright   (C) 2015 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

// No direct access
defined('_JEXEC') or die;

$params     = $displayData->params;
$fontFamily = isset($displayData->fontFamily) ?
$displayData->fontFamily : 'monospace';
$fontSize   = $params->get('fontSize', 13) . 'px;';
$lineHeight = $params->get('lineHeight', 1.2) .
'em;';

// Set the active line color.
$color           = $params->get('activeLineColor',
'#a4c2eb');
$r               = hexdec($color[1] . $color[2]);
$g               = hexdec($color[3] . $color[4]);
$b               = hexdec($color[5] . $color[6]);
$activeLineColor = 'rgba(' . $r . ', ' . $g . ',
' . $b . ', .5)';

// Set the color for matched tags.
$color               = $params->get('highlightMatchColor',
'#fa542f');
$r                   = hexdec($color[1] . $color[2]);
$g                   = hexdec($color[3] . $color[4]);
$b                   = hexdec($color[5] . $color[6]);
$highlightMatchColor = 'rgba(' . $r . ', ' . $g .
', ' . $b . ', .5)';

JFactory::getDocument()->addStyleDeclaration(
<<<CSS
		.CodeMirror
		{
			font-family: $fontFamily;
			font-size: $fontSize;
			line-height: $lineHeight;
			border: 1px solid #ccc;
		}
		/* In order to hid the Joomla menu */
		.CodeMirror-fullscreen
		{
			z-index: 1040;
		}
		/* Make the fold marker a little more visible/nice */
		.CodeMirror-foldmarker
		{
			background: rgb(255, 128, 0);
			background: rgba(255, 128, 0, .5);
			box-shadow: inset 0 0 2px rgba(255, 255, 255, .5);
			font-family: serif;
			font-size: 90%;
			border-radius: 1em;
			padding: 0 1em;
			vertical-align: middle;
			color: white;
			text-shadow: none;
		}
		.CodeMirror-foldgutter, .CodeMirror-markergutter { width: 1.2em;
text-align: center; }
		.CodeMirror-markergutter { cursor: pointer; }
		.CodeMirror-markergutter-mark { cursor: pointer; text-align: center; }
		.CodeMirror-markergutter-mark:after { content: "\25CF"; }
		.CodeMirror-activeline-background { background: $activeLineColor; }
		.CodeMirror-matchingtag { background: $highlightMatchColor; }
		.cm-matchhighlight {background-color: $highlightMatchColor; }
		.CodeMirror-selection-highlight-scrollbar {background-color:
$highlightMatchColor; }
CSS
);
PK䓌[�
8y;);)codemirror.phpnu�[���PK䓌[�W"�)�)y)codemirror.xmlnu�[���PK䓌[���--
sSfonts.jsonnu�[���PK䓌[>MDD	�_fonts.phpnu�[���PK䓌[GL:**&Wdlayouts/editors/codemirror/element.phpnu�[���PK䓌[��'d��#�hlayouts/editors/codemirror/init.phpnu�[���PK䓌[�1nB	B	%�wlayouts/editors/codemirror/styles.phpnu�[���PK]d�