Files
SIGE-WEB-snapshot/wp-content/plugins/users-customers-import-export-for-wp-woocommerce/admin/js/wt-ds-extensions.js

104 lines
3.5 KiB
JavaScript

/**
* Design System Extensions
*
* This script extends the design system library functionality.
*
* Extensions included:
* - Help widget: Extends widget selector to support all basic plugins (order, product, user)
*/
(function($) {
'use strict';
function extendHelpWidget() {
var widgetObjects = [];
if (typeof wbte_oimpexp_help_widget !== 'undefined') widgetObjects.push(wbte_oimpexp_help_widget);
if (typeof wbte_pimpexp_help_widget !== 'undefined') widgetObjects.push(wbte_pimpexp_help_widget);
if (typeof wbte_uimpexp_help_widget !== 'undefined') widgetObjects.push(wbte_uimpexp_help_widget);
if (widgetObjects.length === 0) return;
// Create unified Set function once globally
if (!window.wt_ds_unified_help_widget_set) {
window.wt_ds_unified_help_widget_set = function() {
$(document).off('click.wt_ds_help_widget');
// Disable original handlers
try {
var events = $._data(document, 'events');
if (events && events.click) {
$.each(events.click, function(index, handler) {
if (handler && handler.handler) {
var handlerStr = handler.handler.toString();
if ((handlerStr.indexOf('.wbte_oimpexp_help-widget') !== -1 ||
handlerStr.indexOf('.wbte_pimpexp_help-widget') !== -1 ||
handlerStr.indexOf('.wbte_uimpexp_help-widget') !== -1) &&
handlerStr.indexOf('#wt_ds_help-widget_hidden_checkbox') !== -1) {
handler.handler = function() {}; // Disable original handler
}
}
});
}
} catch (err) {}
// Unified click handler for all widgets
$(document).on('click.wt_ds_help_widget', function (e) {
var $target = $(e.target);
if ($target.is('input[type="checkbox"]') || $target.is('label') || $target.closest('label').length) {
return;
}
var allWidgets = $('.wbte_oimpexp_help-widget, .wbte_pimpexp_help-widget, .wbte_uimpexp_help-widget');
var clickedWidget = null;
allWidgets.each(function() {
var $widget = $(this);
if ($widget.is(e.target) || $widget.has(e.target).length) {
clickedWidget = $widget;
return false;
}
});
if (!clickedWidget) {
allWidgets.each(function() {
var $checkbox = $(this).find('#wt_ds_help-widget_hidden_checkbox');
if ($checkbox.length && $checkbox.is(':checked')) {
$checkbox.prop('checked', false);
}
});
}
});
};
}
// Override Set function for all widget objects
$.each(widgetObjects, function(index, widgetObj) {
widgetObj.Set = window.wt_ds_unified_help_widget_set;
widgetObj.Set();
});
}
// Override Set() immediately to prevent original handlers
if (typeof wbte_oimpexp_help_widget !== 'undefined' ||
typeof wbte_pimpexp_help_widget !== 'undefined' ||
typeof wbte_uimpexp_help_widget !== 'undefined') {
var tempWidgets = [];
if (typeof wbte_oimpexp_help_widget !== 'undefined') tempWidgets.push(wbte_oimpexp_help_widget);
if (typeof wbte_pimpexp_help_widget !== 'undefined') tempWidgets.push(wbte_pimpexp_help_widget);
if (typeof wbte_uimpexp_help_widget !== 'undefined') tempWidgets.push(wbte_uimpexp_help_widget);
$.each(tempWidgets, function(index, widgetObj) {
if (widgetObj.Set && typeof widgetObj.Set === 'function') {
widgetObj._originalSet = widgetObj.Set;
widgetObj.Set = function() {}; // No-op
}
});
}
// Initialize on DOM ready
$(document).ready(function() {
setTimeout(function() {
extendHelpWidget();
}, 300);
});
})(jQuery);