PageSourceSearch

https://www.museemrjmoi.com/wp-content/plugins/facetwp-flyout/assets/js/front.js?ver=0.8.4

js museemrjmoi.com collected 2026-10-07 10:15:04 UTC 5,896 bytes, 149 lines download raw bytes

1(function($) {
2    window.FWP = window.FWP || {};
3    window.FWP.flyout = {
4        open: function() {
5            FWP.flyout.swapFacets('open');
6            FWP.flyout.hideEmptyFacets();
7        },
8        close: function() {
9            FWP.flyout.swapFacets('close');
10        },
11        getOrderedFacets: function() {
12            var facets = [];
13
14            $('.facetwp-facet').each(function() {
15                var name = $(this).attr('data-name');
16                var type = $(this).attr('data-type');
17                var blacklist = ['map', 'pager'];
18
19                if (! blacklist.includes(type)) {
20                    facets.push(name);
21                }
22            });
23
24            return FWP.hooks.applyFilters('facetwp/flyout/facets', facets);
25        },
26        init: function() {
27            var content = '';
28            var facet_html = `
29            <div class="flyout-row name-{name}">
30                <h3>{label}</h3>
31                <div class="flyout-item"></div>
32            </div>
33            `;
34
35            $.each(FWP.flyout.getOrderedFacets(), function(facet_name) {
36
37                // Support for custom HTML
38                var temp = FWP.hooks.applyFilters('facetwp/flyout/facet_html', facet_html, {
39                    facet_name: facet_name
40                });
41                temp = temp.split('{label}').join(FWP.settings.labels[facet_name]);
42                temp = temp.split('{name}').join(facet_name);
43                content += temp;
44            });
45
46            // Custom flyout content
47            $tpl = $('.facetwp-flyout-tpl');
48            var layout = $tpl.len() ? $tpl.html() : '{content}';
49
50            var flyout = `
51            <div class="facetwp-flyout">
52                <div class="facetwp-flyout-close">x</div>
53                <div class="facetwp-flyout-wrap">
54                    <div class="facetwp-flyout-content">${layout}</div>
55                </div>
56            </div>
57            <div class="facetwp-flyout-fog"></div>
58            `;
59
60            // Hook to modify flyout HTML
61            flyout = FWP.hooks.applyFilters('facetwp/flyout/flyout_html', flyout);
62            flyout = flyout.replace('{content}', content);
63
64            if (0 < $('.facetwp-flyout').len()) {
65                $('.facetwp-flyout').nodes[0].remove();
66                $('.facetwp-flyout-fog').nodes[0].remove();
67            }
68
69            $('body').append(flyout);
70        },
71        swapFacets: function(action) {
72            var action = ('undefined' !== typeof action) ? action : 'open';
73            var is_open = $('.facetwp-flyout.active').len() > 0;
74
75            if ((is_open && 'open' == action) || (!is_open && 'close' == action)) {
76                return;
77            }
78
79            // Loop through each facet
80            $.each(FWP.flyout.getOrderedFacets(), function(facet_name) {
81
82                if ('open' == action) {
83                    var $this = $('.facetwp-facet-' + facet_name).nodes[0];
84                    var $dest = $('.flyout-row.name-' + facet_name + ' .flyout-item:not(.ready)').nodes[0];
85                    $this.insertAdjacentHTML('afterend', '<div class="placeholder-' + facet_name + '"></div>');
86                    $dest.appendChild($this);
87                    $dest.classList.add('ready');
88                }
89                else {
90                    var $this = $('.flyout-item.ready .facetwp-facet-' + facet_name).nodes[0];
91                    $this.parentNode.classList.remove('ready');
92                    var $dest = $('.placeholder-' + facet_name).nodes[0];
93                    $dest.parentNode.insertBefore($this, $dest.nextSibling);
94                    $dest.remove();
95                }
96            });
97
98            // Add the open or close CSS class
99            var which = ('open' == action) ? 'addClass' : 'removeClass';
100            $('.facetwp-flyout, .facetwp-flyout-fog')[which]('active');
101
102            // Custom action
103            FWP.hooks.doAction('facetwp/flyout/' + action);
104        },
105        hideEmptyFacets: function() {
106            $('.flyout-row').each(function() {
107                var el = this;
108                var $facet = $(el).find('.facetwp-facet');
109                var facet_name = $facet.attr('data-name');
110                var facet_type = $facet.attr('data-type');
111
112                if ( 'pager' == facet_type ) {
113                    var which = FWP.settings.pager.total_pages < 2 ? 'addClass' : 'removeClass';
114                    $(el)[which]('facetwp-hidden');
115                } else {
116                    var which = 'undefined' !== FWP.settings.num_choices[facet_name] && FWP.settings.num_choices[facet_name] < 1 ? 'addClass' : 'removeClass';
117                    $(el)[which]('facetwp-hidden');
118                }
119            });
120
121            // Hide/show headers for hidden Reset facet, also when using facetwp_preload_url_vars
122            $('.facetwp-hide-empty').each(function() {
123                let $this = $(this);
124                let facet_name = $this.closest('.facetwp-facet').attr('data-name');
125                var $el = $('.flyout-row.name-' + facet_name);
126                let facets = $this.nodes[0]._facets;
127                let all_facets = ! FWP.loaded && ! FWP.is_bfcache && $.isset(FWP_HTTP.url_vars) ? Object.assign(FWP.facets, FWP_HTTP.url_vars): FWP.facets;
128                var which = facets.every(val => all_facets[val].length < 1) ? 'addClass' : 'removeClass';
129                $el[which]('facetwp-hidden');
130            });
131        }
132    };
133
134    $().on('facetwp-loaded', function() {
135        if (! FWP.loaded && ! FWP.is_bfcache) {
136            FWP.flyout.init();
137        }
138        FWP.flyout.hideEmptyFacets();
139    });
140
141    $().on('click', '.facetwp-flyout-open', function(e) {
142        e.preventDefault();
143        FWP.flyout.open();
144    });
145
146    $().on('click', '.facetwp-flyout-close, .facetwp-flyout-fog', function() {
147        FWP.flyout.close();
148    });
149})(fUtil);

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.