PluginProbe
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant / 2.3.1
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant v2.3.1
2.3.2 2.3.1 2.3.0 2.2.8 2.2.7 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.10.5 1.11.0 1.11.1 1.11.2 1.6 1.7 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.10 1.9.11 All 60 releases
merchant / assets / js / modules / payment-logos / admin / preview.js
assets/js/modules/payment-logos/admin
preview.js 4.0 KB 1 month ago preview.min.js 1.9 KB 1 month ago

preview.js in Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant 2.3.1, at assets/js/modules/payment-logos/admin/preview.js

102 lines 4.0 KB Raw Download Zip
1 "use strict";
2
3 ;
4 (function ($) {
5 'use strict';
6
7 var $widthInput = $('input[name="merchant[image-max-width]"]');
8 var $heightInput = $('input[name="merchant[image-max-height]"]');
9 var imageDimensionPrev = {
10 width: $widthInput.val(),
11 height: $heightInput.val()
12 };
13 $(document).on('save.merchant', function (e, module) {
14 if (module === 'payment-logos') {
15 var logosStr = $('input[name="merchant[logos]"]').val();
16 var logosArr = logosStr.split(',');
17 regenerate_images(logosArr);
18 }
19 });
20 function regenerate_images(attachments) {
21 var _merchant, _merchant2;
22 var imageDimensionNext = {
23 width: $widthInput.val(),
24 height: $heightInput.val()
25 };
26 var isDimensionChanged = imageDimensionPrev.width !== imageDimensionNext.width || imageDimensionPrev.height !== imageDimensionNext.height;
27 if (isDimensionChanged) {
28 imageDimensionPrev.height = imageDimensionNext.height;
29 imageDimensionPrev.width = imageDimensionNext.width;
30 }
31 $.ajax({
32 type: 'POST',
33 url: (_merchant = merchant) === null || _merchant === void 0 ? void 0 : _merchant.ajax_url,
34 data: {
35 action: 'merchant_regenerate_images',
36 nonce: (_merchant2 = merchant) === null || _merchant2 === void 0 ? void 0 : _merchant2.nonce,
37 is_dimension_changed: isDimensionChanged,
38 attachments: attachments
39 },
40 error: function error(_error) {
41 console.log(_error);
42 }
43 });
44 }
45
46 /**
47 * Container styling live preview.
48 */
49 function updateContainerPreview() {
50 var $container = $('.merchant-payment-logos');
51 if (!$container.length) {
52 return;
53 }
54 var bgColor = $('input[name="merchant[container_bg_color]"]').val() || 'transparent';
55 var padding = $('input[name="merchant[container_padding]"]').val() || 0;
56 var borderRadius = $('input[name="merchant[container_border_radius]"]').val() || 0;
57 var borderColor = $('input[name="merchant[container_border_color]"]').val() || 'transparent';
58 var borderWidth = $('input[name="merchant[container_border_width]"]').val() || 0;
59 $container.css({
60 'background-color': bgColor,
61 'padding': padding + 'px',
62 'border-radius': borderRadius + 'px',
63 'border': borderWidth > 0 && borderColor !== 'transparent' ? borderWidth + 'px solid ' + borderColor : 'none'
64 });
65 }
66
67 // Range sliders have no name attr — target by parent wrapper class instead.
68 $(document).on('change.merchant input.merchant change input', '.merchant-field-container_bg_color input, .merchant-field-container_padding input, .merchant-field-container_border_radius input, .merchant-field-container_border_color input, .merchant-field-container_border_width input', function () {
69 updateContainerPreview();
70 });
71 updateContainerPreview();
72
73 /**
74 * Library icons live preview.
75 *
76 * Syncs the "Select payment icons" checkboxes with the preview panel.
77 * Relies on `merchant.payment_logos` localized from PHP.
78 */
79 function updateLibraryIconsPreview() {
80 var _merchant3;
81 var $imagesContainer = $('.merchant-payment-logos-images.is-library');
82 if (!$imagesContainer.length) {
83 return;
84 }
85 var selectedKeys = [];
86 $('input[name="merchant[library_icons][]"]:checked').each(function () {
87 selectedKeys.push($(this).val());
88 });
89 $imagesContainer.empty();
90 var iconsUrlMap = ((_merchant3 = merchant) === null || _merchant3 === void 0 || (_merchant3 = _merchant3.payment_logos) === null || _merchant3 === void 0 ? void 0 : _merchant3.icons_url_map) || {};
91 selectedKeys.forEach(function (key) {
92 if (iconsUrlMap[key] && iconsUrlMap[key].url) {
93 var label = iconsUrlMap[key].label || key;
94 $imagesContainer.append($('<img>').attr('src', iconsUrlMap[key].url).attr('alt', label));
95 }
96 });
97 $imagesContainer.closest('.merchant-payment-logos').toggle(selectedKeys.length > 0);
98 }
99 $(document).on('change.merchant', 'input[name="merchant[library_icons][]"]', function () {
100 updateLibraryIconsPreview();
101 });
102 })(jQuery);