PageSourceSearch

https://mondialtoys.it/modules/klarnapayment/views/js/front/onsite_messaging/onsite_messaging.js?1.6.10

js mondialtoys.it collected 2026-10-10 02:13:58 UTC 3,163 bytes, 100 lines download raw bytes

1/**
2 * NOTICE OF LICENSE
3 *
4 * @author    Klarna Bank AB www.klarna.com
5 * @copyright Copyright (c) permanent, Klarna Bank AB
6 * @license   ISC
7 * @see       /LICENSE
8 *
9 * International Registered Trademark & Property of Klarna Bank AB
10 */
11(function () {
12    var klarnaSdkPromise = null;
13
14    function getKlarnaSdk() {
15        if (klarnaSdkPromise) {
16            return klarnaSdkPromise;
17        }
18
19        klarnaSdkPromise = (async function () {
20            const { KlarnaSDK } = await import('https://js.klarna.com/web-sdk/v2/klarna.mjs');
21
22            return await KlarnaSDK({
23                clientId: klarnapayment.onsite_messaging.client_id,
24                products: ['MESSAGING'],
25            });
26        })();
27
28        return klarnaSdkPromise;
29    }
30
31    async function mountOnsiteMessagingPlacements() {
32        if (!klarnapayment.onsite_messaging || !klarnapayment.onsite_messaging.client_id) {
33            return;
34        }
35
36        const $containers = $('.klarna-onsite-messaging-container');
37
38        if ($containers.length === 0) {
39            return;
40        }
41
42        try {
43            const Klarna = await getKlarnaSdk();
44
45            $containers.each(function () {
46                const container = this;
47                const $container = $(container);
48                const key = $container.data('key');
49                const locale = $container.data('locale');
50                const theme = $container.data('theme');
51                const purchaseAmount = parseInt($container.data('purchase-amount'), 10);
52
53                if (!key || !locale) {
54                    console.warn('Klarna onsite messaging: missing required data attributes', {
55                        key: key,
56                        locale: locale,
57                    });
58
59                    return;
60                }
61
62                if (container.querySelector('[data-key="' + key + '"]:not(.klarna-onsite-messaging-container)')) {
63                    return;
64                }
65
66                const placementOptions = {
67                    key: key,
68                    locale: locale,
69                };
70
71                if (theme) {
72                    placementOptions.theme = theme;
73                }
74
75                if (purchaseAmount && !isNaN(purchaseAmount) && purchaseAmount > 0) {
76                    placementOptions.amount = purchaseAmount;
77                }
78
79                try {
80                    Klarna.Messaging.placement(placementOptions).mount(container);
81                } catch (error) {
82                    console.error('Klarna onsite messaging: failed to mount placement', error);
83                }
84            });
85        } catch (error) {
86            console.error('Klarna onsite messaging: failed to initialize SDK', error);
87        }
88    }
89
90    window.addEventListener('DOMContentLoaded', mountOnsiteMessagingPlacements);
91
92    $(document).ready(function () {
93        if (typeof prestashop === 'undefined' || typeof prestashop.on !== 'function') {
94            return;
95        }
96
97        prestashop.on('updatedProduct', mountOnsiteMessagingPlacements);
98        prestashop.on('updatedCart', mountOnsiteMessagingPlacements);
99    });
100})();

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.