INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(387, 0x61646d696e, 0x736d696c69655f696d706f7274, 0, '<xf:title>{{ phrase(\'import_smilies\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'smilies/import-form\') }}\" upload=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:radiorow name=\"mode\" value=\"upload\">\n				<xf:option value=\"upload\"\n					label=\"{{ phrase(\'import_from_uploaded_xml_file\') }}\"\n					hint=\"{{ phrase(\'smilie_pre_import_explain\') }}\">\n\n					<xf:upload name=\"upload\" accept=\".xml\" />\n				</xf:option>\n				<xf:if is=\"$smilieXmlFiles\">\n					<xf:option value=\"imported\"\n						label=\"{{ phrase(\'import_from_import_generated_xml\') }}\"\n						hint=\"{{ phrase(\'import_from_import_generated_xml_explain\') }}\">\n						<xf:select name=\"filename\">\n							<xf:options source=\"$smilieXmlFiles\" />\n						</xf:select>\n					</xf:option>\n				</xf:if>\n				<xf:option value=\"directory\"\n					label=\"{{ phrase(\'import_from_directory_on_server\') }}\"\n					hint=\"{{ phrase(\'smilie_pre_import_directory_explain\') }}\">\n\n					<xf:textbox name=\"directory\" placeholder=\"styles/default/xenforo/smilies...\" />\n				</xf:option>\n			</xf:radiorow>\n		</div>\n		<xf:submitrow submit=\"{{ phrase(\'proceed...\') }}\" />\n	</div>\n</xf:form>', 0x[encoded data, 16578 characters], 0x5846, 2000170, '2.0.1', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(388, 0x61646d696e, 0x736d696c69655f696d706f72745f666f726d, 0, '<xf:title>{{ phrase(\'import_smilies\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'smilies/import\') }}\" ajax=\"true\" data-json-name=\"json\" class=\"js-stickyParent\">\n	<xf:foreach loop=\"$smilies\" key=\"$i\" value=\"$smilie\">\n		<div class=\"block\">\n			<div class=\"block-container\">\n				<div class=\"block-body\">\n					<xf:macro id=\"smilie\" arg-smilie=\"{$smilie}\" arg-i=\"{$i}\" />\n				</div>\n			</div>\n		</div>\n	</xf:foreach>\n\n	<div class=\"block\">\n		<div class=\"block-container\">\n			<xf:submitrow icon=\"import\" />\n		</div>\n	</div>\n\n	<xf:foreach loop=\"$newCategories\" key=\"$newCategoryId\" value=\"$newCategory\">\n		<xf:hiddenval name=\"categories[{$newCategoryId}][title]\">{$newCategory.title}</xf:hiddenval>\n		<xf:hiddenval name=\"categories[{$newCategoryId}][display_order]\">{$newCategory.display_order}</xf:hiddenval>\n	</xf:foreach>\n</xf:form>\n\n<xf:macro id=\"smilie\" arg-smilie=\"!\" arg-i=\"!\" global=\"true\">\n	<xf:formrow>\n		<div>\n			<xf:if is=\"$smilie.sprite_mode\">\n				<img src=\"{{ transparent_img() }}\" alt=\"\" class=\"smilie smilie--sprite\" style=\"{{ $smilie.getSpriteCss() }}\" />\n			<xf:elseif is=\"$smilie.image_url\" />\n				<img src=\"{$smilie.image_url}\" class=\"smilie\" alt=\"\" />\n			<xf:else />\n				<span style=\"font-size: 1.2em\">{$smilie.emoji|emoji}</span>\n			</xf:if>\n		</div>\n		<xf:checkbox standalone=\"true\">\n			<xf:option name=\"import[]\" value=\"{$i}\" selected=\"true\"\n				data-xf-init=\"disabler\" data-hide=\"true\" data-container=\".js-importSmilie{$i}\">\n				{{ phrase(\'import_this_smilie\') }}\n			</xf:option>\n		</xf:checkbox>\n	</xf:formrow>\n\n	<div class=\"js-importSmilie{$i}\">\n		<hr class=\"formRowSep\" />\n\n		<xf:textboxrow name=\"smilies[{$i}][title]\" value=\"{$smilie.title}\"\n			label=\"{{ phrase(\'title\') }}\" />\n\n		<xf:textarearow name=\"smilies[{$i}][smilie_text]\" value=\"{$smilie.smilie_text}\" autosize=\"true\"\n			label=\"{{ phrase(\'text_to_replace\') }}\" />\n\n		<xf:if is=\"$uploadMode\">\n			<h3 class=\"block-formSectionHeader\">\n				<span class=\"collapseTrigger collapseTrigger--block\" data-xf-click=\"toggle\" data-target=\".js-importSmilie{$i}Advanced\">\n					<span class=\"block-formSectionHeader-aligner\">{{ phrase(\'more_options\') }}</span>\n				</span>\n			</h3>\n		</xf:if>\n\n		<div class=\"js-importSmilie{$i}Advanced {{ $uploadMode ? \'u-hidden u-hidden--transition\' : \'\' }}\">\n\n			<xf:if is=\"!$uploadMode\">\n				<hr class=\"formRowSep\" />\n			</xf:if>\n\n			<xf:textboxrow name=\"smilies[{$i}][image_url]\" value=\"{$smilie.image_url}\"\n				label=\"{{ phrase(\'image_replacement_url\') }}\"\n				hint=\"{{ phrase(\'optional\') }}\" />\n\n			<xf:textboxrow name=\"smilies[{$i}][image_url_2x]\" value=\"{$smilie.image_url_2x}\"\n				label=\"{{ phrase(\'2x_image_replacement_url\') }}\"\n				hint=\"{{ phrase(\'optional\') }}\"\n				explain=\"{{ phrase(\'2x_image_replacement_url_explain\') }}\" />\n\n			<xf:textboxrow name=\"smilies[{$i}][emoji_shortname]\" value=\"{$smilie.emoji}\"\n				dir=\"ltr\"\n				autocomplete=\"off\"\n				maxlength=\"{{ max_length($smilie, \'emoji_shortname\') }}\"\n				label=\"{{ phrase(\'emoji_replacement\') }}\"\n				hint=\"{{ phrase(\'optional\') }}\"\n				explain=\"{{ phrase(\'enter_emoji_or_emoji_short_name_such_as_smile_which_will_replace\') }}\"\n				data-xf-init=\"emoji-completer\" data-no-smilies=\"true\" data-insert-emoji=\"true\" />\n\n			<xf:if is=\"$uploadMode\">\n				<xf:checkboxrow label=\"{{ phrase(\'sprite_mode\') }}\">\n\n					<xf:option name=\"smilies[{$i}][sprite_mode]\" selected=\"$smilie.sprite_mode\">\n						{{ phrase(\'enable_sprite_mode_with_following_parameters\') }}\n					</xf:option>\n				</xf:checkboxrow>\n\n				<xf:formrow rowtype=\"input\"\n					label=\"{{ phrase(\'sprite_dimensions\') }}\">\n\n					<div class=\"inputGroup\">\n						<xf:numberbox name=\"smilies[{$i}][sprite_params][w]\" value=\"{$smilie.sprite_params.w}\"\n							min=\"1\"\n							title=\"{{ phrase(\'width\') }}\"\n							data-xf-init=\"tooltip\" />\n						<span class=\"inputGroup-splitter\"></span>\n						<xf:numberbox name=\"smilies[{$i}][sprite_params][h]\" value=\"{$smilie.sprite_params.h}\"\n							min=\"1\"\n							title=\"{{ phrase(\'height\') }}\"\n							data-xf-init=\"tooltip\" />\n						<span class=\"inputGroup-text\">px</span>\n					</div>\n				</xf:formrow>\n\n				<xf:formrow rowtype=\"input\"\n					label=\"{{ phrase(\'sprite_position\') }}\">\n\n					<div class=\"inputGroup\">\n						<xf:numberbox name=\"smilies[{$i}][sprite_params][x]\" value=\"{$smilie.sprite_params.x}\"\n							title=\"{{ phrase(\'background_position_x\') }}\"\n							data-xf-init=\"tooltip\" />\n						<span class=\"inputGroup-splitter\"></span>\n						<xf:numberbox name=\"smilies[{$i}][sprite_params][y]\" value=\"{$smilie.sprite_params.y}\"\n							title=\"{{ phrase(\'background_position_y\') }}\"\n							data-xf-init=\"tooltip\" />\n						<span class=\"inputGroup-text\">px</span>\n					</div>\n				</xf:formrow>\n\n				<xf:textboxrow name=\"smilies[{$i}][sprite_params][bs]\" value=\"{$smilie.sprite_params.bs}\"\n					label=\"{{ phrase(\'background_size\') }}\"\n					explain=\"{{ phrase(\'background_size_explain\') }}\" />\n			</xf:if>\n\n			<hr class=\"formRowSep\" />\n\n			<xf:selectrow name=\"smilies[{$i}][smilie_category_id]\"\n				value=\"{{ $smilieCategoryMap.{$i} ?: 0 }}\"\n				label=\"{{ phrase(\'smilie_category\') }}\">\n\n				<xf:option value=\"0\" label=\"{{ phrase(\'(none)\') }}\" />\n				<xf:optgroup label=\"{{ phrase(\'new\') }}\">\n					<xf:options source=\"$newCategoryPairs\" />\n				</xf:optgroup>\n				<xf:optgroup label=\"{{ phrase(\'existing\') }}\">\n					<xf:options source=\"$categoryPairs\" />\n				</xf:optgroup>\n			</xf:selectrow>\n\n			<xf:macro id=\"display_order_macros::row\"\n				arg-name=\"smilies[{$i}][display_order]\"\n				arg-value=\"{$smilie.display_order}\" />\n\n			<xf:checkboxrow>\n				<xf:option name=\"smilies[{$i}][display_in_editor]\" selected=\"$smilie.display_in_editor\">\n					{{ phrase(\'show_this_smilie_in_the_text_editor\') }}\n				</xf:option>\n			</xf:checkboxrow>\n\n		</div>\n	</div>\n</xf:macro>', 0x[encoded data, 87104 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(389, 0x61646d696e, 0x736d696c69655f6c697374, 0, '<xf:title>{{ phrase(\'smilies\') }}</xf:title>\n\n<xf:pageaction>\n	<div class=\"buttonGroup\">\n		<xf:button href=\"{{ link(\'smilies/add\') }}\" icon=\"add\">{{ phrase(\'add_smilie\') }}</xf:button>\n		<xf:button href=\"{{ link(\'smilie-categories/add\') }}\" icon=\"add\" overlay=\"true\">{{ phrase(\'add_category\') }}</xf:button>\n\n		<div class=\"buttonGroup-buttonWrapper\">\n			<xf:button class=\"menuTrigger\" data-xf-click=\"menu\" aria-expanded=\"false\" aria-haspopup=\"true\" title=\"{{ phrase(\'more_options\') }}\">&#8226;&#8226;&#8226;</xf:button>\n			<div class=\"menu\" data-menu=\"menu\" aria-hidden=\"true\">\n				<div class=\"menu-content\">\n					<h4 class=\"menu-header\">{{ phrase(\'more_options\') }}</h4>\n					<a href=\"{{ link(\'smilies/sort\') }}\" class=\"menu-linkRow\" data-xf-click=\"overlay\">{{ phrase(\'button.sort\') }}</a>\n					<a href=\"{{ link(\'smilies/import\') }}\" class=\"menu-linkRow\">{{ phrase(\'button.import\') }}</a>\n					<a href=\"{{ link(\'smilies\', {}, {\'export\': 1}) }}\" class=\"menu-linkRow\">{{ phrase(\'button.export\') }}</a>\n				</div>\n			</div>\n		</div>\n	</div>\n</xf:pageaction>\n\n<xf:css src=\"public:help_page_smilies.less\" />\n\n<xf:form action=\"{{ link(($exportView ? \'smilies/export\' : \'smilies/toggle\')) }}\"\n	ajax=\"{{ $exportView ? false : true }}\" class=\"block\"\n\n	data-xf-init=\"select-plus\"\n	data-sp-checkbox=\".dataList-cell input[type=checkbox]\"\n	data-sp-container=\".dataList-row\"\n	data-sp-control=\".dataList-cell--link a[href]\"\ndata-sp-debug=\"{{ true }}\">\n\n	<div class=\"block-outer\">\n		<xf:macro id=\"filter_macros::quick_filter\" arg-key=\"smilies\" arg-class=\"block-outer-opposite\" />\n	</div>\n	<div class=\"block-container\">\n\n		<h2 class=\"block-tabHeader tabs\" role=\"tablist\">\n			<!--[XF:tabs:start]-->\n			<a class=\"tabs-tab {{ $exportView ? \'\' : \'is-active\' }}\" role=\"tab\" tabindex=\"0\" aria-controls=\"smilie-list\" href=\"{{ link(\'smilies\') }}\">{{ phrase(\'smilies\') }}</a>\n			<a class=\"tabs-tab {{ $exportView ? \'is-active\' : \'\' }}\" role=\"tab\" tabindex=\"0\" aria-controls=\"export-mode\" href=\"{{ link(\'smilies\', {}, {\'export\': 1}) }}\">{{ phrase(\'export\') }}</a>\n			<!--[XF:tabs:end]-->\n		</h2>\n\n		<div class=\"block-body\">\n			<xf:datalist>\n				<xf:foreach loop=\"$smilieData.smilieCategories\" key=\"$smilieCategoryId\" value=\"$smilieCategory\">\n					<tbody class=\"dataList-rowGroup\">\n					<xf:if is=\"{{ count($smilieData.smilieCategories) > 1 }}\">\n						<xf:datarow rowtype=\"subsection\" rowclass=\"{{ !$smilieCategoryId ? \'dataList-row--noHover\' : \'\' }}\">\n							<xf:if is=\"$exportView\">\n								<xf:cell><xf:checkbox standalone=\"true\"><xf:option check-all=\"< .dataList-rowGroup\" /></xf:checkbox></xf:cell>\n							</xf:if>\n							<xf:if is=\"{{ $smilieCategoryId > 0 }}\">\n								<xf:cell href=\"{{ link(\'smilie-categories/edit\', $smilieCategory) }}\"\n									colspan=\"3\" overlay=\"true\">\n									{{ $smilieCategory.title }}\n								</xf:cell>\n								<xf:if is=\"!$exportView\">\n									<xf:delete href=\"{{ link(\'smilie-categories/delete\', $smilieCategory) }}\" />\n								</xf:if>\n							<xf:else />\n								<xf:cell colspan=\"4\">{{ phrase(\'smilie_category_title.uncategorized\') }}</xf:cell>\n							</xf:if>\n						</xf:datarow>\n					</xf:if>\n\n					<xf:foreach loop=\"{$smilieData.smilies.{$smilieCategoryId}}\" key=\"$smilieId\" value=\"$smilie\">\n						<xf:datarow>\n							<xf:if is=\"$exportView\">\n								<xf:toggle name=\"export[]\" value=\"{$smilie.smilie_id}\" />\n							</xf:if>\n							<xf:cell href=\"{{ link(\'smilies/edit\', $smilie) }}\" class=\"dataList-cell--min\">\n								{{ smilie($smilie.smilie_text_options.0) }}\n							</xf:cell>\n							<xf:cell href=\"{{ link(\'smilies/edit\', $smilie) }}\">\n								{$smilie.title}\n							</xf:cell>\n							<xf:cell href=\"{{ link(\'smilies/edit\', $smilie) }}\">\n								<xf:foreach loop=\"$smilie.smilie_text_options\" value=\"$smilieText\">\n									<span class=\"smilieText\">{$smilieText}</span>\n								</xf:foreach>\n							</xf:cell>\n							<xf:if is=\"!$exportView\">\n								<xf:delete href=\"{{ link(\'smilies/delete\', $smilie) }}\" />\n							</xf:if>\n						</xf:datarow>\n					<xf:else />\n						<xf:datarow rowclass=\"dataList-row--noHover dataList-row--note\">\n							<xf:cell colspan=\"4\" class=\"dataList-cell--noSearch\">\n								<xf:if is=\"{{ count($smilieData.smilieCategories) > 1 }}\">\n									{{ phrase(\'no_smilies_have_been_added_to_this_category_yet\') }}\n								<xf:else />\n									{{ phrase(\'no_smilies_have_been_added_yet\') }}\n								</xf:if>\n							</xf:cell>\n						</xf:datarow>\n					</xf:foreach>\n					</tbody>\n				</xf:foreach>\n			</xf:datalist>\n		</div>\n		<div class=\"block-footer block-footer--split\">\n			<span class=\"block-footer-counter\">{{ display_totals($smilieData.totalSmilies) }}</span>\n			<xf:if is=\"$exportView\">\n				<span class=\"block-footer-select\"><xf:checkbox standalone=\"true\"><xf:option check-all=\".dataList\" label=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></span>\n				<span class=\"block-footer-controls\"><xf:button type=\"submit\" icon=\"export\" /></span>\n			</xf:if>\n		</div>\n	</div>\n</xf:form>', 0x[encoded data, 77048 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(390, 0x61646d696e, 0x736d696c69655f736f7274, 0, '<xf:title>{{ phrase(\'sort_smilies\') }}</xf:title>\n\n<xf:macro id=\"public:nestable_macros::setup\" />\n\n<xf:form action=\"{{ link(\'smilies/sort\') }}\" class=\"block\" ajax=\"true\">\n	<div class=\"block-container\">\n		<xf:foreach loop=\"$smilieData.smilieCategories\" key=\"$smilieCategoryId\" value=\"$smilieCategory\">\n			<xf:if is=\"{{ $smilieCategoryId > 0 }}\">\n				<h4 class=\"block-minorHeader\">{$smilieCategory.title}</h4>\n			<xf:else />\n				<h4 class=\"block-minorHeader\">{{ phrase(\'smilie_category_title.uncategorized\') }}</h4>\n			</xf:if>\n			<div class=\"block-body\">\n				<div class=\"nestable-container\" data-xf-init=\"nestable\" data-parent-id=\"{$smilieCategoryId}\" data-max-depth=\"1\" data-value-target=\".js-smilieData\">\n					<xf:if contentcheck=\"true\">\n						<ol class=\"nestable-list\">\n							<xf:contentcheck>\n							<xf:foreach loop=\"{$smilieData.smilies.{$smilieCategoryId}}\" key=\"$smilieId\" value=\"$smilie\" i=\"$i\">\n								<li class=\"nestable-item\" data-id=\"{$smilieId}\">\n									<div class=\"nestable-handle nestable-handle--full\" aria-label=\"{{ phrase(\'drag_handle\')|for_attr }}\"><xf:fa icon=\"fa-bars\" /></div>\n									<div class=\"nestable-content\">{{ smilie($smilie.smilie_text_options.0) }} {$smilie.title} <xf:foreach loop=\"$smilie.smilie_text_options\" value=\"$smilieText\"><span class=\"smilieText\">{$smilieText}</span> </xf:foreach></div>\n								</li>\n							</xf:foreach>\n							</xf:contentcheck>\n						</ol>\n					</xf:if>\n					<xf:hiddenval name=\"smilies[]\" value=\"\" class=\"js-smilieData\" />\n				</div>\n			</div>\n		</xf:foreach>\n		<xf:submitrow icon=\"save\" rowtype=\"simple\" />\n	</div>\n</xf:form>', 0x[encoded data, 22558 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(391, 0x61646d696e, 0x7374617473, 0, '<xf:title>{{ phrase(\'statistics\') }}</xf:title>\n\n<xf:css src=\"public:chartist.css\" />\n<xf:css src=\"stats.less\" />\n\n<xf:js prod=\"xf/stats-compiled.js\" dev=\"vendor/chartist/chartist.min.js, xf/stats.js\" />\n\n<div class=\"block\">\n	<div class=\"block-container\">\n		<h2 class=\"block-header\">\n			<xf:if is=\"$grouping == \'daily\'\">\n				{{ phrase(\'daily_statistics\') }}\n			<xf:elseif is=\"$grouping == \'weekly\'\" />\n				{{ phrase(\'weekly_statistics\') }}\n			<xf:elseif is=\"$grouping == \'monthly\'\" />\n				{{ phrase(\'monthly_statistics\') }}\n			</xf:if>\n			<div class=\"block-desc\">{{ date($start, \'absolute\') }} - {{ date($end, \'absolute\') }}</div>\n		</h2>\n		<div class=\"block-body\">\n			<div class=\"block-row\">\n				<div data-xf-init=\"stats\" data-averages=\"{{ $value_type === \'average\' }}\" data-line-smooth=\"true\">\n					<script class=\"js-statsData\" type=\"application/json\">\n						{$data|json|raw}\n					</script>\n					<script class=\"js-statsSeriesLabels\" type=\"application/json\">\n						{$displayTypesPhrased|json|raw}\n					</script>\n					<div class=\"ct-chart ct-major-tenth js-statsChart\"></div>\n					<ul class=\"ct-legend js-statsLegend\"></ul>\n				</div>\n			</div>\n			<xf:if is=\"$grouping != \'daily\' && $value_type == \'average\'\">\n				<div class=\"block-row block-row--minor\">\n					{{ phrase(\'values_represent_daily_averages_within_each_time_period\') }}\n				</div>\n			</xf:if>\n		</div>\n		<h3 class=\"block-header\">\n			<span class=\"collapseTrigger collapseTrigger--block\" data-xf-click=\"toggle\" data-target=\"< :up :next\">\n				{{ phrase(\'raw_statistics\') }}\n			</span>\n		</h3>\n		<div class=\"block-body block-body--collapsible\">\n			<xf:datalist class=\"dataList--contained\" data-xf-init=\"responsive-data-list\">\n				<xf:datarow rowtype=\"header\">\n					<xf:cell>{{ phrase(\'period\') }}</xf:cell>\n					<xf:foreach loop=\"$displayTypes\" value=\"$displayType\">\n						<xf:cell>{$displayTypesPhrased.{$displayType}}</xf:cell>\n					</xf:foreach>\n				</xf:datarow>\n			<xf:foreach loop=\"$data\" value=\"$stat\">\n				<xf:datarow>\n					<xf:cell class=\"dataList-cell--alt\">{$stat.label}</xf:cell>\n					<xf:foreach loop=\"$displayTypes\" value=\"$displayType\">\n						<xf:cell>{$stat.averages.{$displayType}|number($grouping == \'daily\' ? 0 : 2)}</xf:cell>\n					</xf:foreach>\n				</xf:datarow>\n			</xf:foreach>\n			</xf:datalist>\n		</div>\n	</div>\n</div>\n\n<xf:form action=\"{{ link(\'stats\') }}\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:formrow label=\"{{ phrase(\'date_range\') }}\" rowtype=\"input\">\n				<div class=\"inputGroup inputGroup--auto\">\n					<xf:dateinput name=\"start\" value=\"{{ date($start, \'Y-m-d\') }}\" />\n					<span class=\"inputGroup-text\">-</span>\n					<xf:dateinput name=\"end\" value=\"{{ $endDisplay ? date($endDisplay, \'Y-m-d\') : \'\' }}\" />\n					<span class=\"inputGroup-splitter\"></span>\n					<xf:select name=\"date_preset\" class=\"js-presetChange input--autoSize\">\n						<xf:option value=\"-1\">{{ phrase(\'date_presets:\') }}</xf:option>\n						<xf:optgroup>\n							<xf:options source=\"{$datePresets}\" />\n							<xf:option value=\"1995-01-01\">{{ phrase(\'all_time\') }}</xf:option>\n						</xf:optgroup>\n					</xf:select>\n				</div>\n			</xf:formrow>\n\n			<xf:radiorow name=\"grouping\" value=\"{$grouping}\"\n				label=\"{{ phrase(\'grouping\') }}\">\n\n				<xf:option value=\"daily\">{{ phrase(\'daily\') }}</xf:option>\n				<xf:option value=\"weekly\">{{ phrase(\'weekly\') }}</xf:option>\n				<xf:option value=\"monthly\">{{ phrase(\'monthly\') }}</xf:option>\n			</xf:radiorow>\n\n			<xf:radiorow name=\"value_type\" value=\"{$value_type}\"\n				label=\"{{ phrase(\'display_value_type\') }}\">\n\n				<xf:option value=\"average\">{{ phrase(\'daily_averages\') }}</xf:option>\n				<xf:option value=\"total\">{{ phrase(\'totals\') }}</xf:option>\n			</xf:radiorow>\n\n			<xf:checkboxrow name=\"display_types\" value=\"{$displayTypes}\"\n				label=\"{{ phrase(\'display_statistics\') }}\">\n\n				<xf:foreach loop=\"array_keys($statsTypeOptions)\" value=\"$contentType\">\n					<xf:optgroup listclass=\"listColumns\" label=\"{$contentTypePhrases.{$contentType}}\">\n						<xf:options source=\"{$statsTypeOptions.{$contentType}}\" />\n					</xf:optgroup>\n				</xf:foreach>\n			</xf:checkboxrow>\n		</div>\n		<xf:submitrow submit=\"{{ phrase(\'show\') }}\" sticky=\"true\" />\n	</div>\n</xf:form>\n\n<xf:js>\n	document.querySelectorAll(\'.js-presetChange\').forEach(element =>\n	{\n		XF.on(element, \'change\', function (e)\n		{\n			const ctrl = e.currentTarget,\n				value = ctrl.value,\n				form = ctrl.closest(\'form\')\n\n			if (value == -1)\n			{\n				return\n			}\n\n			const startInput = form.querySelector(ctrl.getAttribute(\'data-start\') || \'input[name=start]\')\n			if (startInput)\n			{\n				startInput.value = value\n			}\n\n			const endInput = form.querySelector(ctrl.getAttribute(\'data-end\') || \'input[name=end]\')\n			if (endInput)\n			{\n				endInput.value = \'\'\n			}\n\n			if (XF.trigger(form, \'submit\'))\n			{\n				form.submit()\n			}\n		})\n	})\n</xf:js>', 0x[encoded data, 63252 characters], 0x5846, 2030170, '2.3.1', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(392, 0x61646d696e, 0x73746174732e6c657373, 0, '.listColumns\n{\n	&.contentTypes\n	{\n		margin-bottom: 14px;\n	}\n}\n\n.ct-chart\n{\n	svg\n	{\n		-webkit-backface-visibility: hidden;\n	}\n\n	.ct-series-a\n	{\n		.ct-line,\n		.ct-point\n		{\n			stroke: @xf-paletteColor3;\n		}\n	}\n\n	.ct-series-b\n	{\n		.ct-line,\n		.ct-point\n		{\n			stroke: @xf-paletteAccent2;\n		}\n	}\n\n	.ct-series-c\n	{\n		.ct-line,\n		.ct-point\n		{\n			stroke: @xf-paletteColor5;\n		}\n	}\n\n	.ct-series-d\n	{\n		.ct-line,\n		.ct-point\n		{\n			stroke: @xf-paletteAccent3;\n		}\n	}\n\n	.ct-grid\n	{\n		stroke: fade(@xf-textColor, 15%);\n	}\n\n	.ct-label\n	{\n		color: @xf-textColor;\n		font-size: @xf-fontSizeSmallest;\n	}\n\n	.ct-line\n	{\n		stroke-width: 2px;\n	}\n\n	.ct-point\n	{\n		stroke-width: 8px;\n	}\n\n	.ct-label.ct-horizontal.ct-end\n	{\n		.m-transform(translateX(-50%));\n		text-align: center;\n		justify-content: center;\n	}\n}\n\n.ct-chart--small\n{\n	.ct-point\n	{\n		opacity: 0;\n	}\n}\n\n.ct-legend\n{\n	.m-listPlain();\n	text-align: center;\n	font-size: @xf-fontSizeSmaller;\n\n	> li\n	{\n		display: inline-block;\n		position: relative;\n        padding-left: 16px;\n		margin-right: 2em;\n\n		&:last-child\n		{\n			margin-right: 0;\n		}\n\n		i\n		{\n			content: \'\';\n			position: absolute;\n			left: 0;\n			top: 3px;\n			width: 12px;\n			height: 12px;\n			border-radius: @xf-borderRadiusSmall;\n			background: transparent;\n		}\n	}\n}', 0x4f3a32343a2258465c54656d706c6174655c436f6d70696c65725c417374223a313a7b733a383a226368696c6472656e223b613a313a7b693a303b4f3a33313a2258465c54656d706c6174655c436f6d70696c65725c53796e7461785c537472223a323a7b733a343a226c696e65223b693a313b733a373a22636f6e74656e74223b733a313236313a222e6c697374436f6c756d6e730a7b0a09262e636f6e74656e7454797065730a097b0a09096d617267696e2d626f74746f6d3a20313470783b0a097d0a7d0a0a2e63742d63686172740a7b0a097376670a097b0a09092d7765626b69742d6261636b666163652d7669736962696c6974793a2068696464656e3b0a097d0a0a092e63742d7365726965732d610a097b0a09092e63742d6c696e652c0a09092e63742d706f696e740a09097b0a0909097374726f6b653a204078662d70616c65747465436f6c6f72333b0a09097d0a097d0a0a092e63742d7365726965732d620a097b0a09092e63742d6c696e652c0a09092e63742d706f696e740a09097b0a0909097374726f6b653a204078662d70616c65747465416363656e74323b0a09097d0a097d0a0a092e63742d7365726965732d630a097b0a09092e63742d6c696e652c0a09092e63742d706f696e740a09097b0a0909097374726f6b653a204078662d70616c65747465436f6c6f72353b0a09097d0a097d0a0a092e63742d7365726965732d640a097b0a09092e63742d6c696e652c0a09092e63742d706f696e740a09097b0a0909097374726f6b653a204078662d70616c65747465416363656e74333b0a09097d0a097d0a0a092e63742d677269640a097b0a09097374726f6b653a2066616465284078662d74657874436f6c6f722c20313525293b0a097d0a0a092e63742d6c6162656c0a097b0a0909636f6c6f723a204078662d74657874436f6c6f723b0a0909666f6e742d73697a653a204078662d666f6e7453697a65536d616c6c6573743b0a097d0a0a092e63742d6c696e650a097b0a09097374726f6b652d77696474683a203270783b0a097d0a0a092e63742d706f696e740a097b0a09097374726f6b652d77696474683a203870783b0a097d0a0a092e63742d6c6162656c2e63742d686f72697a6f6e74616c2e63742d656e640a097b0a09092e6d2d7472616e73666f726d287472616e736c61746558282d35302529293b0a0909746578742d616c69676e3a2063656e7465723b0a09096a7573746966792d636f6e74656e743a2063656e7465723b0a097d0a7d0a0a2e63742d63686172742d2d736d616c6c0a7b0a092e63742d706f696e740a097b0a09096f7061636974793a20303b0a097d0a7d0a0a2e63742d6c6567656e640a7b0a092e6d2d6c697374506c61696e28293b0a09746578742d616c69676e3a2063656e7465723b0a09666f6e742d73697a653a204078662d666f6e7453697a65536d616c6c65723b0a0a093e206c690a097b0a0909646973706c61793a20696e6c696e652d626c6f636b3b0a0909706f736974696f6e3a2072656c61746976653b0a202020202020202070616464696e672d6c6566743a20313670783b0a09096d617267696e2d72696768743a2032656d3b0a0a0909263a6c6173742d6368696c640a09097b0a0909096d617267696e2d72696768743a20303b0a09097d0a0a0909690a09097b0a090909636f6e74656e743a2027273b0a090909706f736974696f6e3a206162736f6c7574653b0a0909096c6566743a20303b0a090909746f703a203370783b0a09090977696474683a20313270783b0a0909096865696768743a20313270783b0a090909626f726465722d7261646975733a204078662d626f72646572526164697573536d616c6c3b0a0909096261636b67726f756e643a207472616e73706172656e743b0a09097d0a097d0a7d223b7d7d7d, 0x5846, 2000052, '2.0.0 Release Candidate 2', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(393, 0x61646d696e, 0x7374796c655f637573746f6d697a65645f636f6d706f6e656e7473, 0, '<xf:title>{{ phrase(\'customized_style_components:\') }} {$style.title}</xf:title>\n\n<xf:if is=\"$templates is not empty OR $properties is not empty\">\n	<xf:form action=\"{{ link(\'styles/mass-revert\', $style) }}\" ajax=\"true\" class=\"block\">\n		<div class=\"block-outer\">\n			<div class=\"block-outer-main\">\n				<xf:macro id=\"style_macros::style_change_menu\"\n					arg-styleTree=\"{$styleTree}\"\n					arg-currentStyle=\"{$style}\"\n					arg-route=\"styles/customized-components\" />\n			</div>\n			<div class=\"block-outer-opposite\">\n				<xf:macro id=\"filter_macros::quick_filter\" arg-key=\"customized-components\" arg-class=\"block-outer-opposite\" />\n			</div>\n		</div>\n		<div class=\"block-container\">\n			<div class=\"block-body\">\n				<xf:datalist>\n					<xf:if is=\"$templates is not empty\">\n						<xf:datarow rowtype=\"subsection\" rowclass=\"dataList-row--noHover\">\n							<xf:cell>{{ phrase(\'templates\') }}</xf:cell>\n							<xf:cell class=\"dataList-cell--min\"><xf:checkbox standalone=\"true\"><xf:option check-all=\".dataList .js-checkAllTemplates >\" /></xf:checkbox></xf:cell>\n						</xf:datarow>\n						<xf:foreach loop=\"$templates\" value=\"$template\">\n							<xf:datarow rowclass=\"js-checkAllTemplates\">\n								<xf:main href=\"{{ link(\'templates/edit\', $template) }}\"\n									label=\"{$template.title}\"\n									hint=\"{{ $template.version_string ? phrase(\'customized_in_version\', {\'version\': $template.version_string}) : \'\' }}\" />\n								<xf:toggle name=\"template_ids[]\" value=\"{$template.template_id}\" />\n							</xf:datarow>\n						</xf:foreach>\n					</xf:if>\n					<xf:if is=\"$properties is not empty\">\n						<xf:datarow rowtype=\"subsection\" rowclass=\"dataList-row--noHover\">\n							<xf:cell>{{ phrase(\'style_properties\') }}</xf:cell>\n							<xf:cell class=\"dataList-cell--min\"><xf:checkbox standalone=\"true\"><xf:option check-all=\".dataList .js-checkAllProperties >\" /></xf:checkbox></xf:cell>\n						</xf:datarow>\n						<xf:foreach loop=\"$properties\" value=\"$property\">\n							<xf:datarow rowclass=\"js-checkAllProperties\">\n								<xf:main href=\"{{ link(\'styles/style-properties/group\', $style, {\'group\': $property.group_name}) }}\"\n									label=\"{$property.title}\"\n									hint=\"{$property.property_name}\" />\n								<xf:toggle name=\"property_ids[]\" value=\"{$property.property_id}\" />\n							</xf:datarow>\n						</xf:foreach>\n					</xf:if>\n				</xf:datalist>\n			</div>\n			<div class=\"block-footer block-footer--split\">\n				<span class=\"block-footer-counter\">{{ display_totals($itemCount) }}</span>\n				<span class=\"block-footer-select\"><xf:checkbox standalone=\"true\"><xf:option check-all=\".dataList >\" label=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></span>\n				<span class=\"block-footer-controls\">\n					<xf:button type=\"submit\">{{ phrase(\'revert\') }}</xf:button>\n				</span>\n			</div>\n		</div>\n	</xf:form>\n<xf:else />\n	<div class=\"block\">\n		<div class=\"block-outer\">\n			<xf:macro id=\"style_macros::style_change_menu\"\n				arg-styleTree=\"{$styleTree}\"\n				arg-currentStyle=\"{$style}\"\n				arg-route=\"styles/customized-components\" />\n		</div>\n		<div class=\"block-container\">\n			<div class=\"block-body block-row\">\n				{{ phrase(\'style_contains_no_customized_templates_or_style_properties\') }}\n			</div>\n		</div>\n	</div>\n</xf:if>', 0x[encoded data, 42306 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(394, 0x61646d696e, 0x7374796c655f64656c657465, 0, '<xf:title>{{ phrase(\'confirm_action\') }}</xf:title>\n\n<xf:form action=\"{$confirmUrl}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:inforow rowtype=\"confirm\">\n				{{ phrase(\'please_confirm_that_you_want_to_delete_following:\') }}\n				<strong><a href=\"{$contentUrl}\">{$contentTitle}</a></strong>\n				<xf:if is=\"$content.hasDataUriAssets()\">\n					<div class=\"blockMessage blockMessage--important blockMessage--iconic\">\n						{{ phrase(\'all_asset_files_directly_associated_with_style_will_be_deleted\') }}\n					</div>\n				</xf:if>\n			</xf:inforow>\n		</div>\n		<xf:submitrow rowtype=\"simple\" icon=\"delete\" />\n	</div>\n</xf:form>', 0x[encoded data, 8356 characters], 0x5846, 2020010, '2.2.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(395, 0x61646d696e, 0x7374796c655f65646974, 0, '<xf:if is=\"$style.isInsert()\">\n	<xf:title>{{ phrase(\'add_style\') }}</xf:title>\n<xf:else />\n	<xf:title>{{ phrase(\'edit_style:\') }} {$style.title}</xf:title>\n</xf:if>\n\n<xf:pageaction if=\"$style.isUpdate()\">\n	<xf:button href=\"{{ link(\'styles/delete\', $style) }}\" icon=\"delete\" overlay=\"true\" />\n</xf:pageaction>\n\n<xf:form action=\"{{ link(\'styles/save\', $style) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:textboxrow name=\"title\" value=\"{$style}\"\n				label=\"{{ phrase(\'title\') }}\" />\n\n			<xf:textarearow name=\"description\" value=\"{$style}\" autosize=\"true\"\n				label=\"{{ phrase(\'description\') }}\" />\n\n			<xf:selectrow name=\"parent_id\" value=\"{$style}\"\n				label=\"{{ phrase(\'parent_style\') }}\">\n				<xf:option value=\"0\">{{ phrase(\'(no_parent)\') }}</xf:option>\n				<xf:foreach loop=\"$styleTree.getFlattened(1)\" value=\"$treeEntry\">\n					<xf:option value=\"{$treeEntry.record.style_id}\">\n						{{ repeat(\'--\', $treeEntry.depth) }} {$treeEntry.record.title}\n					</xf:option>\n				</xf:foreach>\n			</xf:selectrow>\n\n			<xf:formrow label=\"{{ phrase(\'asset_locations\') }}\"\n				explain=\"{{ phrase(\'asset_locations_explain\') }}\"\n				rowtype=\"input\"\n				data-xf-init=\"admin-asset-editor\">\n\n				<ul class=\"listPlain inputGroup-container\">\n					<xf:foreach loop=\"$style.effective_assets\" key=\"$key\" i=\"$i\" istart=\"-1\" value=\"$path\">\n						<li class=\"inputGroup\">\n							<xf:textbox name=\"assets[{$i}][key]\" placeholder=\"{{ phrase(\'asset_key\') }}\"\n								value=\"{$key}\"\n								disabled=\"{{ ($style.isAssetInherited($key) OR $style.isAssetModified($key)) ? \'disabled\' : \'\' }}\" />\n							<xf:hiddenval name=\"assets[{$i}][key]\" class=\"js-assetKey\" disabled=\"{{ !$style.isAssetModified($key) ? \'disabled\' : \'\' }}\">{$key}</xf:hiddenval>\n\n							<span class=\"inputGroup-splitter\"></span>\n\n							<xf:textbox name=\"assets[{$i}][path]\" placeholder=\"{{ phrase(\'asset_path\') }}\" class=\"js-assetValue\"\n								value=\"{$path}\" data-parent-value=\"{{ $style.isAssetModified($key) ? $style.getParentAssetValue($key) : null }}\"\n								disabled=\"{{ $style.isAssetInherited($key) ? \'disabled\' : \'\' }}\" />\n\n							<span class=\"inputGroup-splitter\"></span>\n\n							<xf:if is=\"$style.isAssetCustom($key)\">\n								<xf:button fa=\"fa-pencil\" class=\"button--plain button--iconOnly button--adminStyleAsset is-disabled\" />\n							<xf:else />\n								<xf:button\n									class=\"button--plain button--icon button--iconOnly button--adminStyleAsset {{ $style.isAssetInherited($key) ? \'is-modify js-assetModify\' : \'\' }} {{ ($style.isAssetModified($key)) ? \'is-revert js-assetModify\' : \'\' }}\"\n									data-xf-init=\"tooltip\" title=\"{{ $style.isAssetInherited($key) ? phrase(\'modify_in_this_style\') : phrase(\'revert_value_to_parent\') }}\" />\n							</xf:if>\n						</li>\n					</xf:foreach>\n\n					<li class=\"inputGroup\" data-xf-init=\"field-adder\" data-increment-format=\"assets[{counter}]\">\n						<xf:textbox name=\"assets[{$nextCounter}][key]\" placeholder=\"{{ phrase(\'asset_key\') }}\" />\n\n						<span class=\"inputGroup-splitter\"></span>\n\n						<xf:textbox name=\"assets[{$nextCounter}][path]\" placeholder=\"{{ phrase(\'asset_path\') }}\" />\n\n						<span class=\"inputGroup-splitter\"></span>\n\n						<xf:button fa=\"fa-pencil\" class=\"button--plain button--iconOnly button--adminStyleAsset is-disabled\" />\n					</li>\n				</ul>\n			</xf:formrow>\n\n			<xf:checkboxrow>\n				<xf:option name=\"enable_variations\" selected=\"{$style.enable_variations}\"\n					hint=\"{{ phrase(\'enable_variations_hint\') }}\">\n					{{ phrase(\'enable_variations\') }}\n				</xf:option>\n\n				<xf:option name=\"user_selectable\" selected=\"{$style.user_selectable}\">\n					{{ phrase(\'allow_user_selection\') }}\n				</xf:option>\n			</xf:checkboxrow>\n		</div>\n		<xf:submitrow sticky=\"true\" icon=\"save\" />\n	</div>\n</xf:form>', 0x[encoded data, 62830 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
