PageSourceSearch

https://chaos-industries.info/wp-content/plugins/cryptocurrency-wi…/assets/js/ccew-call-ajax.js?ver=1.9.4

js chaos-industries.info collected 2026-10-02 01:58:29 UTC 19,739 bytes, 395 lines download raw bytes

1class ccew_call_ajax extends elementorModules.frontend.handlers.Base {
2    getDefaultSettings() {
3        return {
4            selectors: {
5                renderHtml: '.ccew_htmlContainer',
6                ccew_html_container: '.ccew_html_container',
7                ccew_table_widget: '.ccew_table_widget'
8            },
9        };
10    }
11
12    getDefaultElements() {
13        const selectors = this.getSettings('selectors');
14        return {
15            $renderHtml: this.$element.find(selectors.renderHtml),
16            $ccew_html_container: this.$element.find(selectors.ccew_html_container),
17            $ccew_table_widget: this.$element.find(selectors.ccew_table_widget, )
18        };
19    }
20
21    bindEvents() {
22        var ccew_table_widget = this.elements.$ccew_table_widget;
23        var selector = this.elements.$renderHtml;
24        if (this.elements.$renderHtml.length === 0) {
25            //console.log("Please add the coingecko key.");
26            return;
27        }
28        var id_selector = this.elements.$ccew_html_container;
29        var data = selector.html();
30   
31        var ajaxURL = selector.attr("data-ajax-url");
32        var wp_nonce = selector.attr("data-ajax-nonce");
33        var id = id_selector.attr("id");
34        var type = JSON.parse(data);
35        var request = {
36            'action': 'ccew_getData',
37            'settings': JSON.parse(data),
38            'nonce': wp_nonce,
39        }
40
41        jQuery.fn.generateSmallChart = function() {
42            var thisEle = jQuery(this)
43               var coin_id = 'bitcoin',
44                period = jQuery(this).data("period"),
45                chartfill = jQuery(this).data("chart-fill"),
46                color = jQuery(this).data("color"),
47                bgcolor=jQuery(this).data("bgcolor"),
48                pointsSettings = jQuery(this).data("points"),
49                currencyPrice = jQuery(this).data("currency-price"),
50                currencySymbol = jQuery(this).data("currency-symbol"),
51                points = 0;
52            1 == pointsSettings && (points = 2);
53                var historicalData = jQuery(this).data("content");
54                undefined !== historicalData ? (historicalData = historicalData.map(function(value) {
55                    var convertedPrice = parseFloat(value) * currencyPrice;
56                    var decimalPosition = convertedPrice >= 1 ? 2 : convertedPrice < 1e-6 ? 8 : 6;
57                    return convertedPrice.toFixed(decimalPosition)
58                }), createChart(thisEle, historicalData, chartfill,color,bgcolor, points, currencySymbol)) : thisEle.before('<span class="no-graphical-data">' + thisEle.data("msz") + "</span>")
59        }
60
61        function createChart(element, chartData, chartfill,color,bgcolor, points, currencySymbol) {
62            var data = {
63                    labels: chartData,
64                    datasets: [{
65                        fill: chartfill,
66                        lineTension: .25,
67                        pointRadius: points,
68                        data: chartData,
69                        backgroundColor: bgcolor,
70                        borderColor: color,
71                        pointBorderColor: color
72                    }]
73                },
74                maxval = Math.max.apply(Math, chartData) + 1 * Math.max.apply(Math, chartData) / 100,
75                minval = Math.min.apply(Math, chartData) - 1 * Math.min.apply(Math, chartData) / 100,
76                settings, chart = new Chart(element, {
77                    type: "line",
78                    data: data,
79                    options: {
80                        layout:{
81                            padding:0
82                        },
83                        hover: {
84                            mode: "nearest",
85                            intersect: true
86                        },
87                        maintainAspectRatio: false,
88                        scales: {
89                            x: {
90                                display: false
91                            },
92                            y: {
93                                display: false,
94                            }
95                        },
96                        animation: {
97                            duration: 400
98                        },
99                        plugins:{
100                            legend: {
101                                display: false
102                            },
103                            tooltip: {
104                                intersect: false,
105                                displayColors: false,
106                                callbacks: {
107                                    label: function(context){
108                                        let value = context.formattedValue
109                                        return currencySymbol+""+value;
110                                    },
111                                    title: function(context){
112                                        return "";
113                                    }
114                                }
115                            }
116                        }
117                    }
118                })
119        }
120
121
122        function chart_call_back(container, symbol) {
123
124            var graphContainer = container;
125
126            // var StrokeColor = color;
127
128            var currencySymbol = symbol;
129
130
131            anychart.onDocumentReady(function() {
132                for (var i = 0; i < graphContainer.length; i++) {
133                    var containerID = graphContainer[i].id;
134                    var stage = anychart.graphics.create(containerID);
135                    var chartPrice = graphContainer[i].dataset.chartprice;
136                    chartPrice = JSON.parse(chartPrice);
137                    var StrokeColor = graphContainer[i].dataset.stroke_color;
138                    var coin_price = graphContainer[i].dataset.currency_price;
139                    // create charts
140                    var chart1 = anychart.sparkline();
141
142                    chart1.data(chartPrice);
143                    chart1.stroke(StrokeColor);
144                    chart1.height('70%');
145                    //chart1.padding('2px 12px');
146                    // chart1.height('100');
147                    //chart1.bounds(8, 0, 0, 20);
148                    chart1.container(stage);
149                    // chart1.padding('12px 12px');
150                    // setting the tooltips with formatting
151                    var columnTooltip = chart1.tooltip();
152                    var decimalPostion = coin_price >= 1 ? 2 : coin_price < 1e-6 ? 8 : 6;
153                    columnTooltip.format(currencySymbol + "{%value}{decimalsCount:" + decimalPostion + ",groupsSeparator:\\,}");
154
155                    // initiate chart drawing
156                    chart1.draw();
157                };
158
159
160            });
161
162        }
163
164        function ccew_ajax_data() {
165            if (type.widget_type == 'advanced_table') {
166                var table_id = '';
167                jQuery.fn.ccewDatatable = function() {
168                    table_id = jQuery(this).attr('id');
169                    var $ccew_table = jQuery(this);
170                    var columns = [];
171                    var pagination = parseInt(type.pagination)
172                    var loadingLbl = type.loading_lbl;
173                    var prevtext = type.prev
174                    var nexttext = type.next
175                    var zeroRecords = type.no_data
176                    var fiatSymbol = type.symbol
177                    var numberFormat = type.number_formating
178                    $ccew_table.find('thead th').each(function(index) {
179                        var thisTH = jQuery(this);
180                        var index = thisTH.data('index');
181                        var classes = thisTH.data('classes');
182
183                        columns.push({
184                            data: index,
185                            name: index,
186                            render: function(data, type, row, meta) {
187
188                                if (meta.settings.json === undefined) { return data; }
189                                switch (index) {
190                                    case 'rank':
191                                        return data;
192                                        break;
193                                    case 'name':
194                                        if (typeof dynamicLink != 'undefined' && dynamicLink != "") {
195                                            var coinLink = currencyLink + '/' + row.symbol + '/' + row.id;
196                                            var html = jQuery('<div>', { class: classes }).append(jQuery('<a>', { class: 'ccew_links', title: row.name, href: (/^(https?:)?\/\//i.test(coinLink) ? coinLink : '#') }).append(jQuery('<span>', { class: 'ccew_coin_logo' }).html(row.logo), jQuery('<span>', { class: 'ccew_coin_symbol', text: '(' + row.symbol + ')' }), jQuery('<br>'), jQuery('<span>', { class: 'ccew_coin_name ccew-desktop', text: row.name }))).prop('outerHTML');
197                                        } else {
198                                            var html = jQuery('<div>', { class: classes }).append(jQuery('<span>', { class: 'ccew_coin_logo' }).html(row.logo), jQuery('<span>', { class: 'ccew_coin_symbol', text: '(' + row.symbol + ')' }), jQuery('<br>'), jQuery('<span>', { class: 'ccew_coin_name ccew-desktop', text: data })).prop('outerHTML');
199                                        }
200                                        return html;
201                                    case 'price':
202                                        if (typeof data !== 'undefined' && data != null) {
203                                            var formatedVal = ccew_numeral_formating(data);
204                                            return html = '<div data-val="' + row.price + '" class="' + classes + '"><span class="ccew-formatted-price">' + fiatSymbol + formatedVal + '</span></div>';
205                                        } else {
206                                            return html = '<div class="' + classes + '>?</div>';
207                                        }
208                                        break;
209                                    case 'change_percentage_24h':
210                                        if (typeof data !== 'undefined' && data != null) {
211                                            var changesCls = "up";
212                                            var wrpchangesCls = "ccew-up";
213                                            if (typeof Math.sign === 'undefined') { Math.sign = function(x) { return x > 0 ? 1 : x < 0 ? -1 : x; } }
214                                            if (Math.sign(data) == -1) {
215                                                var changesCls = "down";
216                                                var wrpchangesCls = "ccew-down";
217                                            }
218                                            var html = '<div class="' + classes + ' ' + wrpchangesCls + '"><span class="changes ' + changesCls + '"><i class="ccew_icon-' + changesCls + '" aria-hidden="true"></i>' + data + '%</span></div>';
219                                            return html;
220                                        } else {
221                                            return html = '<div class="' + classes + '">?</span></div>';
222                                        }
223                                        break;
224                                    case 'market_cap':
225                                        if (typeof data !== 'undefined' && data != null) {
226                                            var formatedVal = ccew_numeral_formating(data);
227                                            if (numberFormat) {
228                                                var formatedVal = numeral(data).format('(0.00 a)').toUpperCase();
229                                            }
230                                            return html = '<div data-val="' + row.market_cap + '" class="' + classes + '"><span class="ccew-formatted-market-cap">' + fiatSymbol + formatedVal + '</span></div>';
231                                        } else {
232                                            return html = '<div class="' + classes + '>?</div>';
233                                        }
234                                        break;
235                                    case 'total_volume':
236                                        if (typeof data !== 'undefined' && data != null) {
237                                            var formatedVal = ccew_numeral_formating(data);
238                                            if (numberFormat) {
239                                                var formatedVal = numeral(data).format('(0.00 a)').toUpperCase();
240                                            }
241                                            return html = '<div data-val="' + row.total_volume 
241+ '" class="' + classes + '"><span class="ccew-formatted-total-volume">' + fiatSymbol + formatedVal + '</span></div>';
242                                        } else {
243                                            return html = '<div class="' + classes + '>?</div>';
244                                        }
245                                        break;
246                                    case 'supply':
247                                        if (typeof data !== 'undefined' && data != null && row.supply != 'N/A') {
248                                            var formatedVal = ccew_numeral_formating(data);
249                                            if (numberFormat) {
250                                                var formatedVal = numeral(data).format('(0.00 a)').toUpperCase();
251                                            }
252                                            return html = '<div data-val="' + row.supply + '" class="' + classes + '"><span class="ccew-formatted-supply">' + formatedVal + ' ' + row.symbol + '</span></div>';
253                                        } else {
254                                            return html = '<div class="' + classes + '">N/A</div>';
255                                        }
256                                        break;
257                                    default:
258                                        return data;
259                                }
260                            },
261                            "createdCell": function(td, cellData, rowData, row, col) {
262                                jQuery(td).attr('data-sort', cellData);
263                            }
264                        });
265                    });
266
267
268                    var table = $ccew_table.DataTable({
269                        "deferRender": true,
270                        "serverSide": true,
271                        "ajax": {
272                            "url": ajaxURL,
273                            "type": "POST",
274                            "dataType": "JSON",
275                            "data": request,
276                            "error": function(xhr, error, thrown) {
277                                alert('Something wrong with Server');
278                            }
279                        },
280                        "destroy": true,
281                        "ordering": false,
282                        "searching": false,
283                        "pageLength": pagination,
284                        "columns": columns,
285                        "responsive": true,
286                        "lengthChange": false,
287                        "pagingType": "simple",
288                        "processing": true,
289                        "dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>',
290                        "language": {
291                            "processing": loadingLbl,
292                            "loadingRecords": loadingLbl,
293                            "paginate": {
294                                "next": nexttext,
295                                "previous": prevtext
296                            },
297                        },
298                        "zeroRecords": zeroRecords,
299                        "emptyTable": zeroRecords,
300                        "renderer": {
301                            "header": "bootstrap",
302                        },
303                        "drawCallback": function(settings) {
304                            $ccew_table.tableHeadFixer({
305                                // fix table header
306                                head: true,
307                                // fix table footer
308                                foot: false,
309                                left: 2,
310                                right: false,
311                                'z-index': 1
312                            });
313
314                        },
315
316                    });
317                }
318                jQuery(ccew_table_widget).each(function() {
319                    jQuery(this).ccewDatatable();
320                    new Tablesort(this, {
321                        descending: true
322                    });
323                });
324
325                function ccew_numeral_formating(data) {
326                    if (data >= 25 || data <= -1) {
327                        var formatedVal = numeral(data).format('0,0.00');
328                    } else if (data >= 0.50 && data < 25) {
329                        var formatedVal = numeral(data).format('0,0.000');
330                    } else if (data >= 0.01 && data < 0.50) {
331                        var formatedVal = numeral(data).format('0,0.0000');
332                    } else if (data >= 0.0001 && data < 0.01) {
333                        var formatedVal = numeral(data).format('0,0.00000');
334                    } else {
335                        var formatedVal = numeral(data).format('0,0.00000000');
336                    }
337                    return formatedVal;
338                }
339
340            } else {
341                jQuery.ajax({
342                    type: "POST",
343                    dataType: "JSON",
344                    url: ajaxURL,
345                    data: request,
346                    success: function(response) {
347                        if (response.status == 'success') {
348                            var data = response.data
349                            jQuery('#' + id).html(data);
350                            if (type.widget_type == "list" || type.widget_type == 'to
350p_gainer_loser') {
351                                var container = jQuery(id_selector).find('.ccew-coin-graph');
352                                var symbol = container.data('currency') + ' ';
353                                chart_call_back(container, symbol);
354                            }else if(type.widget_type == 'card'){
355                            jQuery("#"+ id+" .ccew-sparkline-charts").generateSmallChart()
356                            }
357
358                        } else {
359                            console.log("response status failed");
360                        }
361                    },
362                    error: function(data) {
363                        console.log(data.status + ':' + data.statusText, data.responseText);
364                    }
365                })
366            }
367        }
368        setInterval(ccew_ajax_data, 600000);
369        ccew_ajax_data();
370    }
371}
372
373
374
375// Safe image fallback handler for coin logos - works globally
376jQuery(document).ready(function() {
377    jQuery(document).on('error', '.ccew-coin-logo', function() {
378        const fallbackSrc = jQuery(this).data('fallback-src');
379        if (fallbackSrc && this.src !== fallbackSrc) {
380            this.src = fallbackSrc;
381        }
382    });
383});
384
385jQuery(window).on('elementor/frontend/init', () => {
386
387    const addHandler = ($element) => {
388        elementorFrontend.elementsHandler.addHandler(ccew_call_ajax, {
389            $element,
390        });
391    };
392
393    elementorFrontend.hooks.addAction('frontend/element_ready/cryptocurrency-elementor-widget.default', addHandler);
394
395});

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.