PageSourceSearch

https://warsawinstitute.org/wp-content/plugins/acme-divi-modules/p…/js/acme-divi-modules-public.js?ver=1.3.4

js warsawinstitute.org collected 2026-10-02 03:02:38 UTC 9,022 bytes, 250 lines download raw bytes

1(function( $ ) {
2    'use strict';
3
4    /**
5     * Check if Divi Visual Builder is loaded
6     *
7     * @returns {boolean}
8     */
9    function isFrontBuilder() {
10        if ($('.et-fb').length > 0)
11            return true;
12        return false;
13    }
14
15    /**
16     * Quick Delay, so actions can override some Divi stuff
17     */
18    var waitForFinalEvent = (function () {
19        var timers = {};
20        return function (callback, ms, uniqueId) {
21            if (!uniqueId) {
22                uniqueId = "Don't call this twice without a uniqueId";
23            }
24            if (timers[uniqueId]) {
25                clearTimeout (timers[uniqueId]);
26            }
27            timers[uniqueId] = setTimeout(callback, ms);
28        };
29    })();
30
31
32    /**
33     * ONLOAD Launcher
34     */
35   // $(document).ready(function () {
36    $(window).bind("load", function () {
37        waitForFinalEvent(function () {
38            if(false==isFrontBuilder())
39                masonry_setup($('.acme_grid'));
40            if($('.acme_carousel').length > 0) {
41                var $et_pb_fullwidth_portfolio = $('.acme_carousel');
42                $et_pb_fullwidth_portfolio.each(function () {
43                    var set_container_height = $(this).hasClass('et_pb_fullwidth_portfolio_carousel') ? true : false;
44                    if ( set_container_height ) {
45                        set_fullwidth_portfolio_columns ( $ ( this ), set_container_height );
46                    }
47                    $('.et_pb_fullwidth_portfolio' ).attr('style','');
48                });
49            }
50        }, 800, 'callbackID');
51    });
52
53    /**
54     * ON WINDOW RESIZE Launcher
55     */
56    $(window).resize(function () {
57        waitForFinalEvent(function () {
58            if(false==isFrontBuilder())
59                masonry_setup($('.acme_grid'));
60            if($('.acme_carousel').length > 0) {
61                var $et_pb_fullwidth_portfolio = $('.acme_carousel');
62                $et_pb_fullwidth_portfolio.each(function () {
63                    var set_container_height = $(this).hasClass('et_pb_fullwidth_portfolio_carousel') ? true : false;
64                    if ( set_container_height ) {
65                        set_fullwidth_portfolio_columns ( $ ( this ), set_container_height );
66                    }
67                    $('.et_pb_fullwidth_portfolio' ).attr('style','');
68                });
69            }
70        }, 40, 'callbackID');
71    });
72
73
74
75    /*****************************
76     * MASONRY *******************
77     ****************************/
78
79
80    /**
81     *  Setup Mansonry Display Settings
82     **/
83    var MasonryOptions = {
84        // options
85        itemSelector: '.acme_grid-item',
86        columnWidth: '.acme_grid_sizer',
87        percentPosition: true,
88        fitWidth: true,
89        initLayout: true,
90        resize: true
91    };
92
93    /**
94     *  Setup column width for responsive design
95     **/
96    function masonry_colums_calc(obj){
97        var columns;
98        var defaults_columns = [1, 1, 1, 1, 1];
99        var masonry_columns = obj.attr('data-acme-columns');
100        var myWidth=obj.width();
101        var my_columns = masonry_columns.split(',');
102        // calculate column breakpoints
103        if (myWidth >= 1600) {
104            columns = my_columns[0] ? parseInt(my_columns[0]) : defaults_columns[0];
105        } else if (myWidth >= 1024) {
106            columns = my_columns[1] ? parseInt(my_columns[1]) : defaults_columns[1];
107        } else if (myWidth >= 768) {
108            columns = my_columns[2] ? parseInt(my_columns[2]) : defaults_columns[2];
109        } else if (myWidth >= 480) {
110            columns = my_columns[3] ? parseInt(my_columns[3]) : defaults_columns[3];
111        } else {
112            columns = my_columns[4] ? parseInt(my_columns[4]) : defaults_columns[4];
113        }
114        var size_container = parseInt(100 / columns);
115
116        return size_container;
117    }
118
119    /**
120     *  Launch Masonry
121     **/
122    function masonry_setup(obj) {
123        var $grid = obj.masonry();
124        $grid.masonry('destroy');
125        obj.each(function () {
126            var size_container = masonry_colums_calc($(this));
127            $(this).find('.acme_grid_sizer').css('width', size_container + '%');
128            $(this).find('.acme_grid-item').css('width', parseInt(size_container * 0.99) + '%');
129            if(size_container<100) {
130                $(this).find('.acme_grid-item--width2').css('width', parseInt(size_container * 1.98) + '%');
131            }
132            $grid.masonry(MasonryOptions);
133        });
134    }
135
136
137    /*********************************
138     *
139     *  ACME FULL WIDTH PORTFOLIO ****
140     *
141     * @param $the_portfolio
142     * @param carousel_mode
143     * @returns {*}
144     ********************************/
145    function set_fullwidth_portfolio_columns( $the_portfolio, carousel_mode ) {
146
147        var columns,
148            $portfolio_items = $the_portfolio.find('.et_pb_portfolio_items'),
149            portfolio_items_width = $portfolio_items.width(),
150            $the_portfolio_items = $portfolio_items.find('.et_pb_portfolio_item'),
151            portfolio_item_count = $the_portfolio_items.length;
152
153        if ('undefined' === typeof $the_portfolio_items) {
154            return;
155        }
156        var defaults_columns = [5, 4, 3, 2, 1];
157        var max_columns= $the_portfolio.attr('data-max-columns');
158
159        var my_columns = max_columns.split(',');
160
161        // calculate column breakpoints
162        if ( portfolio_items_width >= 1600 ) {
163            columns = my_columns[0] ? parseInt(my_columns[0]) : defaults_columns[0];
164        } else if ( portfolio_items_width >= 1024 ) {
165            columns = my_columns[1] ? parseInt(my_columns[1]) : defaults_columns[1];
166        } else if ( portfolio_items_width >= 768 ) {
167            columns = my_columns[2] ? parseInt(my_columns[2]) : defaults_columns[2];
168        } else if ( portfolio_items_width >= 480 ) {
169            columns = my_columns[3] ? parseInt(my_columns[3]) : defaults_columns[3];
170        } else {
171            columns = my_columns[4] ? parseInt(my_columns[4]) : defaults_columns[4];
172        }
173        // set height of items
174        var portfolio_item_width = portfolio_items_width / columns;
175        var portfolio_item_height = 'auto';
175//portfolio_item_width * .75;
176
177        if ( carousel_mode ) {
178            $portfolio_items.css({ 'height' : portfolio_item_height });
179        }
180
181        $the_portfolio_items.css({ 'height' : portfolio_item_height });
182        $the_portfolio.height($the_portfolio_items.height());
183        //fix position of arrows at 50% of content height
184        $('.et-pb-arrow-prev').css('top',$the_portfolio_items.height()/2);
185        $('.et-pb-arrow-next').css('top',$the_portfolio_items.height()/2);
186
187
188
189        if ( columns === $portfolio_items.data('portfolio-columns') ) {
190            return;
191        }
192
193        if ( $the_portfolio.data('columns_setting_up') ) {
194            return;
195        }
196
197        $the_portfolio.data('columns_setting_up', true );
198
199        var portfolio_item_width_percentage = ( 100 / columns ) + '%';
200        $the_portfolio_items.css({ 'width' : portfolio_item_width_percentage });
201
202        // store last setup column
203        $portfolio_items.removeClass('columns-' + $portfolio_items.data('portfolio-columns') );
204        $portfolio_items.addClass('columns-' + columns );
205        $portfolio_items.data('portfolio-columns', columns );
206
207        if ( !carousel_mode ) {
208            return $the_portfolio.data('columns_setting_up', false );
209        }
210
211        // kill all previous groups to get ready to re-group
212        if ( $portfolio_items.find('.et_pb_carousel_group').length ) {
213            $the_portfolio_items.appendTo( $portfolio_items );
214            $portfolio_items.find('.et_pb_carousel_group').remove();
215        }
216
217        // setup the grouping
218        var the_portfolio_items = $portfolio_items.data('items' ),
219            $carousel_group = $('<div class="et_pb_carousel_group active">').appendTo( $portfolio_items );
220
221        if ('undefined' === typeof the_portfolio_items) {
222            return;
223        }
224
225
226        $the_portfolio_items.data('position', '');
227        if ( the_portfolio_items.length <= columns ) {
228            $portfolio_items.find('.et-pb-slider-arrows').hide();
229        } else {
230            $portfolio_items.find('.et-pb-slider-arrows').show();
231        }
232        for ( var position = 1, x=0 ;x < the_portfolio_items.length; x++, position++ ) {
233            if ( x < columns ) {
234                $( the_portfolio_items[x] ).show();
235                $( the_portfolio_items[x] ).appendTo( $carousel_group );
236                $( the_portfolio_items[x] ).data('position', position );
237            } else {
238                position = $( the_portfolio_items[x] ).data('position');
239                $( the_portfolio_items[x] ).removeClass('position_' + position );
240                $( the_portfolio_items[x] ).data('position', '' );
241                $( the_portfolio_items[x] ).hide();
242            }
243        }
244
245        $the_portfolio.data('columns_setting_up', false );
246
247    }
248
249
250})( jQuery );

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.