PageSourceSearch

https://integrallife.com/wp-content/plugins/ss-woocommerce-myaccount-ajax-tabs/assets/js/sswcmaat.plugin.js

js integrallife.com collected 2026-10-02 04:56:48 UTC 9,328 bytes, 181 lines download raw bytes

1/**
2 * sswcmaat.plugin.js
3 * Custom JavaScript code required by the plugin
4 *
5 * @version 1.3.2
6 */
7jQuery(function ($) {
8
9    'use strict';
10
11    function sswcmaat() {
12        var requestRunning = false,
13            links = (sswcmaat_localize !== 'undefined' && sswcmaat_localize.internal_links) ? '.woocommerce-MyAccount-navigation > ul > li > a, .myaccount-menu > li > a, a.sswcmaat-ajax-link, .my_account_orders a, .woocommerce-Addresses a.edit' : '.woocommerce-MyAccount-navigation > ul > li > a, .myaccount-menu > li > a',
14            default_container = $('.woocommerce-MyAccount-content'),
15            yith_container = $('#my-account-content'),
16            container = $(yith_container).length ? yith_container : default_container,
17            endpoint = $(yith_container).length ? ' #my-account-content' : ' .woocommerce-MyAccount-content',
18            link_text = $('.woocommerce-MyAccount-navigation > ul > li.is-active > a, .myaccount-menu > li.active > a').text(),
19            account_nav = $('.woocommerce-MyAccount-navigation > ul, .myaccount-menu'),
20            id = 'sswcmaat-' + $.trim(link_text).replace(/\s/g, "%20"),
21            title_selector = (sswcmaat_localize !== 'undefined' && sswcmaat_localize.title_selector) ? sswcmaat_localize.title_selector : '.entry-title';
22
23        // First tab is already loaded
24        $('.woocommerce-MyAccount-navigation > ul > li.is-active > a, .myaccount-menu > li.active > a').attr('data-loaded', 'true');
25
26        // Update page heading text with current tab
27        if (link_text) {
28			$(title_selector).text(link_text);
29		}
30
31        // Update document title
32        if (sswcmaat_localize.change_doc_title && link_text) {
33            $(document).find('title').html(link_text + ' – ' + sswcmaat_localize.site_name);
34        }
35
36        // Wrap tab container
37        $(container).wrapInner('<div class="sswcmaat-tab">');
38        $(container).find('.sswcmaat-tab').attr('data-heading', link_text);
39
40        // create dummy holder
41        $(container).append('<div class="sswcmaat-loader">');
42        $('.sswcmaat-tab').attr('id', id);
43
44        if (links.length) {
45
46            $(document).on('click', links, function (e) {
47                // Do not ajaxify if it is a logout link
48                if ($(this).parent().hasClass('woocommerce-MyAccount-navigation-link--customer-logout')) {
49                    return;
50                }
51                e.preventDefault();
52
53                var href = $(this).attr('href'),
54                    btn = $(this),
55                    btn_text = $(this).text(),
56                    id = 'sswcmaat-' + $.trim(btn_text).replace(/\s/g, "%20"),
57                    to_show = '',
58                    h_text = $(document).find(title_selector).text();
59
60                to_show = $(document.getElementById(id));
61
62                if (!$(btn).data('loaded')) {
63
64                    if (container.length) {
65                        $(container).find('.sswcmaat-tab').hide();
66                        $(container).addClass('sswcmaat-loading');
67                        if (requestRunning) { // return if an ajax request is already running
68                            return;
69                        }
70                        requestRunning = true;
71
72                        // Remove error messages upon tab click
73                        $('.woocommerce > .woocommerce-message, .woocommerce > .woocommerce-info, .woocommerce > .woocommerce-error').hide();
74                        $('.load-error').remove();
75
76                        $.ajax({
77                            url: href,
78                            timeout: (sswcmaat_localize !== 'undefined' && sswcmaat_localize.ajax_timeout) ? sswcmaat_localize.ajax_timeout : 30000,
79                            error: function (response, jqXHR, textStatus) {
80
81                                var not_loaded = sswcmaat_localize !== 'undefined' ? sswcmaat_localize.loading_error : '';
82
83                                $(container).append('<div class="woocommerce-error load-error">' + not_loaded + ' ' + textStatus + '</div>');
84                                $(container).removeClass('sswcmaat-loading');
85                                $('.woocommerce-MyAccount-navigation > ul > li').removeClass('is-active');
86                                $('.myaccount-menu > li').removeClass('active');
87                                $(btn).parent('li').addClass('is-active');
88                                $(btn).parent('li').addClass('active');
89                                $(account_nav).find('a[href="' + href + '"]').parent('li').addClass('is-active');
90                                $(account_nav).find('a[href="' + href + '"]').parent('li').addClass('active');
91                                requestRunning = false;
92                                return;
93
94                            },
95                            success: function (response) {
96
97                                    var content = $(response).find(endpoint);
98
99                                    h_text = $(response).find(title_selector).text();
100
101                                    $(container).find('.sswcmaat-loader').html($(content).html());
102
103                                    // extract loaded content and convert into tab
104                                    if ($(yith_container).length) {
105                                        $(container).find('.sswcmaat-loader').addClass('sswcmaat-tab').removeClass('sswcmaat-loader').attr('id', id).attr('data-heading', btn_text);
106                                    } else {
107                                        $(container).find('.sswcmaat-loader').addClass('sswcmaat-tab').removeClass('woocommerce-MyAccount-content').removeClass('sswcmaat-loader').attr('id', id).attr('data-heading', btn_text);
108                                    }
109
110                                    // add dummy holder for next content
111                                    $(container).append('<div class="sswcmaat-loader">');
112
113                                    $('.woocommerce-MyAccount-navigation > ul > li').removeClass('is-active');
114                                    $('.myaccount-menu > li').removeClass('active');
115
116                                    $(btn).attr('data-loaded', 'true');
117                                    $(btn).parent('li').addClass('is-active');
118                                    $(btn).parent('li').addClass('active');
119                                    $(account_nav).find('a[href="' + href + '"]').parent('li').addClass('is-active');
120                                    $(account_nav).find('a[href="' + href + '"]').parent('li').addClass('active');
121
122                                    // Update page heading text
123                                    $(title_selector).text(h_text);
124
125                                    // Update document title
126                                    if (sswcmaat_localize.change_doc_title) {
127                                        $(document).find('title').html(btn_text + ' &ndash; ' + sswcmaat_localize.site_name);
128                                    }
129
130                                    // Update browser URL
131                                    if (history.pushState) {
132                                        history.pushState({}, '', href);
133                                    }
134
135                                    requestRunning = false;
136
137                                    // Remove loading spinner
138                                    $(container).removeClass('sswcmaat-loading');
139
140                                    // trigger an event
141                                    $(document).trigger("sswcmaat-loaded");
142
143                                } // success
144
145                        });
146                    } // container.length
147                } // if not btn.data('loaded')
148                else {
149
150                    $('.woocommerce-MyAccount-navigation > ul > li').removeClass('is-active');
151                    $('.myaccount-menu > li').removeClass('active');
152                    $(btn).parent('li').addClass('is-active');
153                    $(btn).parent('li').addClass('active');
154                    $(account_nav).find('a[href="' + href + '"]').parent('li').addClass('is-active');
155                    $(account_nav).find('a[href="' + href + '"]').parent('li').addClass('active');
156
157                    // hide all tabs and show the one whose link is clicked
158                    $('.sswcmaat-tab').hide();
159                    $(to_show).show();
160
161                    // Update page heading text
162                    $(title_selector).text(to_show.data('heading'));
163
164                    // Update document title
165                    if (sswcmaat_localize.change_doc_title) {
166                        $(document).find('title').html(to_show.data('heading') + ' &ndash; ' + sswcmaat_localize.site_name);
167                    }
168
169                    if (history.pushState) {
170                        history.pushState({}, '', href);
171                    }
172                }
173            });
174        } // links.length
175    } // sswcmat
176
177    if (sswcmaat_localize !== 'undefined' && !sswcmaat_localize.disable_ajax) {
178        sswcmaat();
179    }
180
181}); //$

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.