PageSourceSearch

https://membership.rameplatform.com/wp-content/themes/rame/assets/js/account.js?ver=1.0.9j

js rameplatform.com collected 2026-09-24 10:31:14 UTC 4,565 bytes, 173 lines download raw bytes

1(function () {
2	const toast = document.getElementById('rame-plan-toast');
3	let openModal = null;
4
5	function closeModal() {
6		if (openModal) {
7			openModal.setAttribute('hidden', '');
8			openModal = null;
9			document.body.classList.remove('rame-modal-open');
10		}
11	}
12
13	function openModalById(modalId) {
14		closeModal();
15		const targetModal = document.getElementById(modalId);
16		if (targetModal) {
17			targetModal.removeAttribute('hidden');
18			openModal = targetModal;
19			document.body.classList.add('rame-modal-open');
20			targetModal.focus();
21		}
22		return targetModal;
23	}
24
25	function showToast(message) {
26		if (!toast) {
27			return;
28		}
29		toast.textContent = message;
30		toast.removeAttribute('hidden');
31		setTimeout(() => {
32			toast.setAttribute('hidden', '');
33		}, 3600);
34	}
35
36	document.addEventListener('click', function (event) {
37		const opener = event.target.closest('[data-rame-open-modal]');
38		if (opener) {
39			event.preventDefault();
40			const modalId = opener.getAttribute('data-rame-open-modal');
41			openModalById(modalId);
42			return;
43		}
44
45		const closer = event.target.closest('[data-rame-modal-close]');
46		if (closer) {
47			event.preventDefault();
48			const toastMsg = closer.getAttribute('data-rame-toast');
49			if (toastMsg) {
50				showToast(toastMsg);
51			}
52			closeModal();
53			return;
54		}
55
56		const overlay = event.target.closest('.rame-modal__overlay');
57		if (overlay && openModal && overlay.closest('.rame-modal') === openModal) {
58			event.preventDefault();
59			closeModal();
60			return;
61		}
62	});
63
64	document.addEventListener('keydown', function (event) {
65		if (event.key === 'Escape' && openModal) {
66			event.preventDefault();
67			closeModal();
68		}
69	});
70
71	window.rameAccount = window.rameAccount || {};
72	window.rameAccount.openModalById = openModalById;
73	window.rameAccount.closeModal = closeModal;
74})();
75
76(function () {
77	const defaultModal = document.getElementById('rame-pm-confirm-default');
78	const deleteModal = document.getElementById('rame-pm-confirm-delete');
79
80	if (!defaultModal && !deleteModal) {
81		return;
82	}
83
84	function fillModal(modal, href, title) {
85		if (!modal || !window.rameAccount) {
86			return;
87		}
88
89		const confirmLink = modal.querySelector('[data-rame-pm-confirm-action]');
90		if (confirmLink) {
91			confirmLink.setAttribute('href', href);
92		}
93
94		const titleSlot = modal.querySelector('[data-rame-pm-title-slot]');
95		if (titleSlot) {
96			titleSlot.textContent = title;
97		}
98
99		window.rameAccount.openModalById(modal.id);
100	}
101
102	document.addEventListener('click', function (event) {
103		const defaultTrigger = event.target.closest('[data-rame-pm-default]');
104		if (defaultTrigger) {
105			event.preventDefault();
106			fillModal(defaultModal, defaultTrigger.getAttribute('href'), defaultTrigger.getAttribute('data-rame-pm-title') || '');
107			return;
108		}
109
110		const deleteTrigger = event.target.closest('[data-rame-pm-delete]');
111		if (deleteTrigger) {
112			event.preventDefault();
113			fillModal(deleteModal, deleteTrigger.getAttribute('href'), deleteTrigger.getAttribute('data-rame-pm-title') || '');
114		}
115	});
116})();
117
118document.addEventListener('click', function (event) {
119	const navToggle = event.target.closest('.rame-account-nav__toggle');
120	if (navToggle) {
121		const nav = navToggle.closest('.rame-account-nav');
122		const isOpen = nav.classList.toggle('is-open');
123		navToggle.setAttribute('aria-expanded', String(isOpen));
124	}
125});
126
127document.addEventListener('click', function (event) {
128	const toggle = event.target.closest('[data-rame-password-toggle]');
129	if (!toggle) {
130		return;
131	}
132
133	event.preventDefault();
134	const inputId = toggle.getAttribute('aria-controls');
135	const input = document.getElementById(inputId);
136
137	if (!input) {
138		return;
139	}
140
141	const isPassword = input.type === 'password';
142	input.type = isPassword ? 'text' : 'password';
143	toggle.textContent = isPassword ? 'Nascondi' : 'Mostra';
144	toggle.setAttribute('aria-pressed', isPassword ? 'true' : 'false');
145});
146
147document.addEventListener('click', function (event) {
148	const shareButton = event.target.closest('.rame-gc-share');
149	if (!shareButton) {
150		return;
151	}
152
153	if (!navigator.clipboard || !navigator.clipboard.writeText) {
154		return;
155	}
156
157	const code = shareButton.dataset.gcCode;
158
159	navigator.clipboard.writeText(code).then(function () {
160		const row = shareButton.closest('.rame-row--giftcard');
161		if (!row) {
162			return;
163		}
164
165		const note = row.querySelector('.rame-row__note');
166		if (!note) {
167			return;
168		}
169
170		note.textContent = `Link regalo copiato. Condividilo su WhatsApp, email o messaggi: chi lo apre trova la card con il codice ${code}.`;
171		note.removeAttribute('hidden');
172	}).catch(function () {});
173});

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.