PageSourceSearch

https://srim.ca/wp-content/plugins/facetwp-flyout/assets/js/front.js?ver=0.7

js srim.ca collected 2026-10-06 04:41:35 UTC 4,382 bytes, 123 lines download raw bytes

1(function($) {
2    window.FWP = window.FWP || {};
3    window.FWP.flyout = {
4        open: function() {
5            FWP.flyout.swapFacets('open');
6        },
7        close: function() {
8            FWP.flyout.swapFacets('close');
9        },
10        getOrderedFacets: function() {
11            var facets = [];
12
13            $('.facetwp-facet').each(function() {
14                var name = $(this).attr('data-name');
15                var type = $(this).attr('data-type');
16
17                if ('map' !== type && 'pager' !== type) {
18                    facets.push(name);
19                }
20            });
21
22            return FWP.hooks.applyFilters('facetwp/flyout/facets', facets);
23        },
24        init: function() {
25            var content = '';
26            var facet_html = `
27            <div class="flyout-row name-{name}">
28                <h3>{label}</h3>
29                <div class="flyout-item"></div>
30            </div>
31            `;
32
33            $.each(FWP.flyout.getOrderedFacets(), function(facet_name) {
34
35                // Support for custom HTML
36                var temp = FWP.hooks.applyFilters('facetwp/flyout/facet_html', facet_html, {
37                    facet_name: facet_name
38                });
39                temp = temp.split('{label}').join(FWP.settings.labels[facet_name]);
40                temp = temp.split('{name}').join(facet_name);
41                content += temp;
42            });
43
44            // Custom flyout content
45            $tpl = $('.facetwp-flyout-tpl');
46            var layout = $tpl.len() ? $tpl.html() : '{content}';
47
48            var flyout = `
49            <div class="facetwp-flyout">
50                <div class="facetwp-flyout-close">x</div>
51                <div class="facetwp-flyout-wrap">
52                    <div class="facetwp-flyout-content">${layout}</div>
53                </div>
54            </div>
55            <div class="facetwp-flyout-fog"></div>
56            `;
57
58            // Hook to modify flyout HTML
59            flyout = FWP.hooks.applyFilters('facetwp/flyout/flyout_html', flyout);
60            flyout = flyout.replace('{content}', content);
61
62            if (0 < $('.facetwp-flyout').len()) {
63                $('.facetwp-flyout').nodes[0].remove();
64                $('.facetwp-flyout-fog').nodes[0].remove();
65            }
66
67            $('body').append(flyout);
68        },
69        swapFacets: function(action) {
70            var action = ('undefined' !== typeof action) ? action : 'open';
71            var is_open = $('.facetwp-flyout.active').len() > 0;
72
73            if ((is_open && 'open' == action) || (!is_open && 'close' == action)) {
74                return;
75            }
76
77            // Loop through each facet
78            $.each(FWP.flyout.getOrderedFacets(), function(facet_name) {
79                var $this = $('.facetwp-facet-' + facet_name).nodes[0];
80
81                if ('open' == action) {
82                    var $dest = $('.flyout-row.name-' + facet_name + ' .flyout-item').nodes[0];
83                    $this.insertAdjacentHTML('afterend', '<div class="placeholder-' + facet_name + '"></div>');
84                    $dest.appendChild($this);
85                }
86                else {
87                    var $dest = $('.placeholder-' + facet_name).nodes[0];
88                    $dest.parentNode.insertBefore($this, $dest.nextSibling);
89                    $dest.remove();
90                }
91            });
92
93            // Add the open or close CSS class
94            var which = ('open' == action) ? 'addClass' : 'removeClass';
95            $('.facetwp-flyout, .facetwp-flyout-fog')[which]('active');
96
97            // Custom action
98            FWP.hooks.doAction('facetwp/flyout/' + action);
99        },
100        hideEmptyFacets: function() {
101            $.each(FWP.settings.num_choices, function(num_choices, facet_name) {
102                var $el = $('.flyout-row.name-' + facet_name);
103                var which = (num_choices < 1) ? 'addClass' : 'removeClass';
104                $el[which]('facetwp-hidden');
105            });
106        }
107    };
108
109    $().on('facetwp-loaded', function() {
110        if (!FWP.loaded) {
111            FWP.flyout.init();
112        }
113        FWP.flyout.hideEmptyFacets();
114    });
115
116    $().on('click', '.facetwp-flyout-open', function() {
117        FWP.flyout.open();
118    });
119
120    $().on('click', '.facetwp-flyout-close, .facetwp-flyout-fog', function() {
121        FWP.flyout.close();
122    });
123})(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.