PageSourceSearch

https://www.dimensionvortex.com/wp-content/plugins/easy-facebook-l…/js/esf-facebook-caption.js?ver=6.7.10

js dimensionvortex.com collected 2026-10-08 13:51:12 UTC 2,306 bytes, 77 lines download raw bytes

1/**
2 * Facebook feed — caption See more / See less (ExpandableCaption).
3 *
4 * Shared across layouts via LayoutDefinition.assets.layout_js and injected
5 * into the customize preview via PreviewResponseBuilder `js_url`. Uses event
6 * delegation so Load More / preview HTML works without re-init.
7 *
8 * @package Easy_Social_Feed
9 * @subpackage Facebook/Frontend
10 * @since 6.7.8
11 */
12( function () {
13	'use strict';
14
15	// Preview asset re-injection must not stack duplicate document listeners.
16	if ( window.esfFacebookCaptionBound ) {
17		return;
18	}
19	window.esfFacebookCaptionBound = true;
20
21	/**
22	 * Toggle caption preview / full markup.
23	 *
24	 * @param {HTMLElement} button Toggle control.
25	 * @return {void}
26	 */
27	function toggleCaption( button ) {
28		var wrap = button.closest( '[data-esf-caption-expandable]' );
29		if ( ! wrap ) {
30			return;
31		}
32
33		var preview = wrap.querySelector( '.esf-facebook-feed__caption-preview' );
34		var full = wrap.querySelector( '.esf-facebook-feed__caption-full' );
35		if ( ! preview || ! full ) {
36			return;
37		}
38
39		var expanded = button.getAttribute( 'aria-expanded' ) === 'true';
40		var nextExpanded = ! expanded;
41		var moreLabel = button.getAttribute( 'data-label-more' ) || 'See more';
42		var lessLabel = button.getAttribute( 'data-label-less' ) || 'See less';
43
44		button.setAttribute( 'aria-expanded', nextExpanded ? 'true' : 'false' );
45		button.textContent = nextExpanded ? lessLabel : moreLabel;
46
47		if ( nextExpanded ) {
48			wrap.classList.remove( 'is-collapsed' );
49			wrap.classList.add( 'is-expanded' );
50			preview.hidden = true;
51			preview.setAttribute( 'aria-hidden', 'true' );
52			full.hidden = false;
53			full.setAttribute( 'aria-hidden', 'false' );
54		} else {
55			wrap.classList.add( 'is-collapsed' );
56			wrap.classList.remove( 'is-expanded' );
57			preview.hidden = false;
58			preview.setAttribute( 'aria-hidden', 'false' );
59			full.hidden = true;
60			full.setAttribute( 'aria-hidden', 'true' );
61		}
62	}
63
64	document.addEventListener( 'click', function ( event ) {
65		var target = event.target;
66		if ( ! target || ! target.closest ) {
67			return;
68		}
69		var button = target.closest( '[data-esf-caption-toggle]' );
70		if ( ! button || ! button.closest( '.esf-facebook-feed' ) ) {
71			return;
72		}
73		event.preventDefault();
74		event.stopPropagation();
75		toggleCaption( button );
76	} );
77}() );

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.