PageSourceSearch

https://teyes-russia.com/uss-js/flex.js

js teyes-russia.com collected 2026-10-08 11:44:53 UTC 22,967 bytes, 547 lines download raw bytes

1/*
2	0. Äåòàëüíûé ñïèñîê ïðàâèë, ê êîòîðûì ïðèìåíÿåòñÿ ñêðèïò, ìîæíî íàéòè â ðàéîíå 78 ñòðîêè.
3	
4	A. Âèäæåò Template::displaySiteContent äîëæåí íàõîäèòüñÿ â êîíòåéíåðå ñ êëàññîì "content". Äðóãèõ äîïîëíèòåëüíûõ óêàçàíèé äëÿ ñèñòåìíûõ âûâîäîâ êîíòåíòà íå òðåáóåòñÿ.
5	
6	B. Äëÿ âèäæåòîâ ó êîòîðûõ åñòü îáåðòêà äëÿ ýëåìåíòîâ òðåáóåòñÿ óêàçàòü êëàññ flex â êà÷åñòâå îäíî èç ðîäèòåëåé (áëèæàéøåãî).
7		åñòü îáåðòêà :
8		- âèäæåò êàòàëîãà ìàãàçèíà
9		- âèäæåò êàòàëîãà óñëóã
10		- âèäæåò ôîòîàëüáîìà
11		- âèäæåò ìåíþ ôîòîàëüáîìà
12		- âèäæåò âûâîäà ýëåìåíòîâ êàòàëîã óñëóã â âèäå ïîçèöèé
13
14	C. Äëÿ âñåõ îñòàëüíûõ âèäæåòîâ è ñâîèõ áëîêîâ íóæíî èñïîëüçîâàòü ñëåäóþùóþ ñòðóêòóðó
15		.flex
16			.items
17				.element
18				.element
19				.element
20	Ãäå .items ÿâëÿåòñÿ îáåðòêîé âèäæåòà èëè "ñâîèõ" ýëåìåíòîâ , à .flex - îáùàÿ îáåðòêà âñåãî áëîêà.
21	* Äîïîëíèòåëüíûå êëàññû ó flex è items íèêàê íå âëèÿþò íà ðàáîòó ñêðèïòà.
22	
23	** Äëÿ îòìåíû ðàáîòû ñêðèïòà ïðåäóñìîòðåí êëàññ noflex. Åãî ìîæíî èñïîëüçîâàòü êàê äëÿ îäíîãî áëîêà òàê è äëÿ âñåé ñòðàíèöû öåëèêîì. Äëÿ áëîêîâ òèïà  B è C íåò ñìûñëà èñïîëüçîâàòü êëàññ noflex , ïðîùå óáðàòü ñàì êëàññ flex.
24
25	Ïðèíöèï ðàáîòû ñêðèïòà: 
26	
27	1. Èíèöèàëèçàöèÿ (Flex.detect_targets)
28		a. - îïðåäåëÿåì âñå áëîêè â êîòîðûõ íóæíî ïîñ÷èòàòü îòñòóïû ìåæäó ýëåìåíòàìè.
29		b. - èñêëþ÷àåì áëîêè ó êîòîðûõ åñòü ðîäèòåëü ñ êëàññîì noflex
30		c. - èñêëþ÷àåì áëîêè åñëè îíè ÿâëÿþòñÿ ñëàéäåðàìè  'mCustomScrollbar', 'slick-slider'
31		FIX 2019-05-22
32			! Äîáàâëåíà ïðîâåðêà âëîæåííûõ êëàñîâ äëÿ èçáåæàíèÿ ïîâòîðíîãî îáîðà÷èâàíèÿ .
33			Åñëè ñëó÷èëîñü òàê ÷òî âèäæåò îáåðíóò â äâà èëè íåñêîëüêî ðîäèòåëåé êîòîðûå îòñëåæèâàþòñÿ â ïóíêòå 1.à , òî îòñòóïû áóäóò ñ÷èòàòüñÿ òîëüêî äëÿ ïîñëåäíåãî (ñàìîãî ãëóáîêîãî â äåðåâå)
34			Ïðèìåð:
35				- âèäæåò îáåðíóò â 2 áëîêà .items
36				- .uss_widget_outer_content îáåðíóò â .items
37
38	2. Äëÿ êàæäîãî áëîêà èç ïóíêòà 1 
39		- äîáàâëÿåì êëàññ uss-flex-items , äëÿ css ñòèëåé.
40		- êëàññ many-rows - ýëåìåíòû íå âëåçàþò â 1 ñòðîêó
41		- êëàññ one-row - âñå ýëåìåíòû âëåçëè â 1 ñòðîêó
42		- êëàññ one-in-row - 1 ýëåìåíò â ñòðîêó
43		- êëàññ last-in-row - ïîñëåäíèé ýëåìåíò â ñòðîêå
44		- êëàññ bigmargin - ñòðîê áîëüøå 1 & îòñòóï ìåæäó ýëåìåíòàìè áîëüøå 1/3 øèðèíû áëîêà 
45		- äîáàâëÿåì óíèêàëüíûé êëàññ items-*ñëó÷àéíîå ÷èñëî* äëÿ ñëó÷àåâ êîãäà âûâîäèòüñÿ 2 èëè íåñêîëüêî îäèíàêîâûõ âèäæåòîâ ñ îäíèì îôîðìëåíèåì íî ðàçíûì ñîäåðæàíèåì.
46			Ïðèìåð: 2 âèäæåòà íîâèíîê ñ ðàçíàìè ðàçìåðàìè êàðòèíîê.
47	
48	3. Äëÿ êàæäîãî áëîêà ñ÷èòàåì îòñòóïû  (Flex.calculate)
49		- Çà áàçîâóþ øèðèíó ýëåìåíòà áëîêà áåðåì ïåðâûé ýëåìåíò â äàííîì áëîêå , åñëè îí íå ÿâëÿåòñÿ çàãîëîâêîì (äëÿ ñëó÷àåâ êîãäà íîâèíêè\ëèäåðû\ðàñïðîäàæà âûâîäÿòüñÿ âíóòðè êîíòåíòà ìàãàçèíà). Äàëåå áóäåì ñ÷èòàòü ÷òî øèðèíà âñåõ ýëåìåíòîâ îäèíàêîâàÿ.
50		- Ñ÷èòàåì ñêîëüêî áëîêîâ âëåçåò â ñòðîêó
51			êîë-âî áëîêîâ áîëüøå 1 è ñòðîê áîëüøå îäíîé: 
52				- íàõîäèì ðàçíîñòü ìåæäó äëèííîé âñåõ ýëåìåíòîâ â ñòðîêå è øèðèíîé ñòðîêè , ïîëó÷åííûé ðåçóëüòàò äåëèì íà êîë-âî îòñòóïîâ ìåæäó ýëåìåíòàìè.
53				- óñòàíàâëèâàåì îòñòóïû ÷åðåç margin.
54				- åñëè bigmargin : öåíòðóåì ýëåìåíòû âíóòðè ñòðîêè .
55			êîë-âî áëîêîâ ðàâíî 1 : 
56				- ðàçíîñòü ìåæäó øèðèíîé ýëåìåíòà è øèðèíîé ñðîêè äåëèì ïîïîëàì è öåíòðóåì ýëåìåíò âíóòðè ñòðîêè çà ñ÷åò îòñòóïîâ.
57					* ×åðåç ñòèëè ìîæíî çàäàòü ñâîå ïîâèäåíèå äëÿ òàêîé ñèòóàöèè. (.one-in-row)
58			êîë-âî áëîêîâ áîëüøåãî îäíîãî è âñå â îäíîé ñòðîêå :
59				- Ñ÷èòàåì ñêîëüêî ìîæåò âëåçòè ýëåìåíòîâ â ñòðîêó => ñ÷èòàåì îòñòóïû ìåæäó êàæäûì ýëåìåíòîì åñëè áû îíè çàïîëíÿëè âñþ ñòðîêó öåëèêîì 
60		
61		* Åñëè ðàçìåð îòñòóïà ìåíüøå ìèíèìàëüíîãî ðàçìåðà (10) (Flex.min_element_margin) => óìåíüøàåì êîë-âî ýëåìåíòîâ â ñòðîêå íà 1.
62
63	4. ñëóøàåì ñîáûòèå resize è ñîáûòèå complete ó jQuery.AJAX => çàïóñêàåì ïåðåñ÷åò çàíîâî. (Flex.resizer => Flex.calculate) 
64		* complete ó jQuery.AJAX äëÿ ñëó÷àåâ êîãäà âêëþ÷åí ïàðàìåòð "Ïðè âûáîðå ôèëüòðîâ, îáíîâëÿòü ñïèñîê òîâàðîâ áåç ïåðåçàãðóçêè ñòðàíèöû".
65		* Äëÿ òîãî ÷òîá ïåðåñ÷åò íà çàïóñêàëñÿ ñëèøêîì ÷àñòî óñòàíîâëåííî îãðàíè÷åíèå íà âûçîâ ôóíêöèè ïåðåñ÷åòà. ñì. Flex.resizer 
66
67	** Äëÿ ïîëó÷åíèÿ îïðåäåëåííîãî êîë-âà ýëåìåíòîâ â ñòðîêå ñ àäàïòèâíîé øèðèíîé ýëåìåíòà çàäàòü â ñòèëÿõ äëÿ ýëåìåíòà:
68		k = êîë-âî ýëåìåíòîâ â ñòðîêå 
69		10px = ìèíèìàëüíûé îòñòóï ìåæäó ýëåìåíòàìè
70		width : calc( (100% - ( (k - 1) * 10px) ) / k )
71*/
72var Flex = {
73    targets: [],
74    wrap_classname: 'uss-flex-items',
75    exclude_by_parent: ['noflex'],
76    other_plugins: ['mCustomScrollbar', 'slick-slider'],
77    avoid_double_wrap_classNames: '.items,.uss_widget_outer_content',
78    min_element_margin: 10,
79    target_with_parent: [
80        '.flex .catalog_menu',
81        '.flex .uss_eshop_menu',
82        '.flex .items',
83        '.content .uss_shop_blocks_view',
84        '.content .uss_eshop_sameproducts:not(.table):not(.list)',
85        '.content .uss_shop_block_cat.uss_shop_cats',
86        '.flex .uss_images_block',
87        '.content .uss_catalog_block_cat',
88        '.flex.items',
89        '.flex .lastEshopPosItems',
90        '.uss_photoalbums_foto_box',
91        '.flex .photoalbum_menu',
92        '.content .uss_photoalbums_albums_block',
93        '.flex .uss_catalog_sidebar.uss_catalog_list_cat',
94        '.flex .uss_widget_outer_content',
95        '.content .news_list.news_block_items',
96        '.content .news_similar_wrap .similar_items.similar_items_block'
97    ],
98    target_with_out_parent: ['.flex .news_block_item'],
99    get_random_class: function () {
100        var num = Math.random() + '';
101        num = num.replace('0.', '');
102        return 'items-' + num;
103    },
104    detect_targets: function () {
105        if (Flex.target_with_parent.length !== 0) {
106            for (var i = 0; i < Flex.target_with_parent.length; i++) {
107                _elem = $(Flex.target_with_parent[i]);
108                if (_elem.children('*').length > 0 && !Flex.find_class_in_parents(Flex.target_with_parent[i])) {
109                    for (var zi = 0; zi < _elem.length; zi++) {
110                        //åñëè ýåëåìåíò óæå îáðàáîòàí - ïðîïóñêàåì
111                        if ($(_elem[zi]).hasClass('uss-flex-items')) {
112                            continue;
113                        }
114                        if ($(_elem[zi]).find(Flex.avoid_double_wrap_classNames).length === 0) {
115                            __elem = $(_elem[zi]);
116                            r_class = Flex.get_random_class();
117                            __elem.addClass(r_class).addClass(Flex.wrap_classname);
118                            Flex.targets.push('.' + r_class);
119                        }
120                    }
121                }
122            }
123        }
124        if (Flex.target_with_out_parent.length !== 0) {
125            $.each(Flex.target_with_out_parent, function (index, element) {
126                if ($(element).length !== 0 && $(element).closest('.uss_widget_outer_content').length === 0) {
127                    $(element).each(function (el_index, target) {
128                        if (!$(target).parent('div').hasClass('items')) {
129                            r_class = Flex.get_random_class();
130                            _container = $('<div class="items"></div>');
131                            $(target).siblings(element).appendTo(_container);
132                            $(_container).insertAfter($(target));
133                            $(target).prependTo(_container);
134                            $(_container).addClass(r_class).addClass(Flex.wrap_classname);
135                            Flex.targets.push('.' + r_class);
136                        }
137                    });
138                }
139            });
140        }
141    },
142    remove_target: function (key) {
143        var i = Flex.targets.indexOf(key);
144
145        if (i !== -1) {
146            delete Flex.targets[i];
147        }
148    },
149    run: function () {
150        if (Flex.targets.length !== 0) {
151            for (var i = 0; i < Flex.targets.length; i++) {
152                if (typeof Flex.targets[i] != 'undefined') {
153                    Flex.calculate(Flex.targets[i]);
154                }
155            }
156        }
157    },
158    resizer: function () {
159        function throttle(func, ms) {
160            var isThrottled = false,
161                savedArgs,
162                savedThis;
163
164            function wrapper() {
165                if (isThrottled) {
166                    savedArgs = arguments;
167                    savedThis = this;
168                    return;
169                }
170                func.apply(this, arguments);
171                isThrottled = true;
172                setTimeout(function () {
173                    isThrottled = false;
174                    if (savedArgs) {
175                        wrapper.apply(savedThis, savedArgs);
176                        savedArgs = savedThis = null;
177                    }
178                }, ms);
179            }
180            return wrapper;
181        }
182        var onResize = function () {
183            Flex.run();
184        };
185        var throttle_500 = throttle(onResize, 500);
186        $(window).resize(function () {
187            throttle_500();
188        });
189    },
190    normalizeNumber: function (value, minimal = false, ignore) {
191        let result = value;
192        if (!ignore) {
193            result = minimal ? Math.floor(value.toFixed(1)) : Math.ceil(value.toFixed(1));
194        }
195        return parseFloat(result);
196    },
197
198    calculate: function (target_parent) {
199        box = $(target_parent);
200        if (!box.length) {
201            Flex.remove_target(target_parent);
202            return false;
203        }
204        box_width = $(box)[0].getBoundingClientRect().width;
205        box_width = Flex.normalizeNumber(box_width, true,true);
206		
207        elements = $(target_parent).children(
208            '*:not(.uss_cleaner):not(.photo_page_navitem):not(.uss_shop_newbies_title):not(.h3)'
209        );
210        elements_lenght = $(target_parent).children(
211            '*:not(.uss_cleaner):not(.photo_page_navitem):not(.uss_shop_newbies_title):not(.h3)'
212        ).length;
213        element_width = $(target_parent)
214            .children('*:not(.uss_cleaner):not(.photo_page_navitem):not(.uss_shop_newbies_title):not(.h3)')[0]
215            .getBoundingClientRect().width;
216        element_width = Flex.normalizeNumber(element_width, false);
217        max_elems_in_row = Flex.normalizeNumber(
218            (box_width + Flex.min_element_margin) / (element_width + Flex.min_element_margin),
219            true
220        );
221        box_width -= 1;
222        elements_in_row = max_elems_in_row;
223
224        function calcMargin(elemsRow) {
225            return Flex.normalizeNumber((box_width - elemsRow * element_width) / (elemsRow - 1),true);
226        }
227
228        var margin_for_row = calcMargin(elements_in_row);
229
230        var isOneRow = function () {
231            // êîë-âî ýëåìåíòîâ ìåíüøå ÷åì ìîæåò ïîìåñòèòüñÿ â ñòðîêó.
232            return box_width - elements_lenght * Flex.min_element_margin >= elements_lenght * element_width
233                ? true
234                : false;
235        };
236        var big_margin = function () {
237            return margin_for_row > element_width / 2 ? true : false;
238        };
239        var one_in_row = function () {
240            return max_elems_in_row === 1 ? true : false;
241        };
242
243        var last_in_row = function () {
244            elements = $(target_parent).children('*:not(.uss_cleaner):not(.photo_page_navitem)');
245            var index = 0;
246            var ii = 0;
247            var makeZ = function (iterator, reset) {
248                if (iterator === 0) {
249                    ii = 0;
250                } else {
251                    ii = ii + 1;
252                }
253                if (reset) {
254                    index = 1;
255                    ii = 0;
256                }
257                z = ii - index;
258                return z;
259            };
260            for (var i = 0; i < elements.length; i++) {
261                _el = $($(elements)[i]);
262                var z;
263                if ($(_el).hasClass('uss_shop_newbies_title') || $(_el).hasClass('h3')) {
264                    z = makeZ(i, true);
265                } else {
266                    z = makeZ(i);
267                    if ((z + 1) % elements_in_row === 0) {
268                        _el.css({
269                            'margin-right': Flex.normalizeNumber(margin_right_last,true),
270                            'margin-left': Flex.normalizeNumber(margin_left_last,true)
271                        }).addClass('last-in-row');
272                    } else {
273                        _el.css({
274                            'margin-right': Flex.normalizeNumber(margin_right,true),
275                            'margin-left': Flex.normalizeNumber(margin_left,true)
276                        });
277                    }
278                }
279            }
280        };
281        var last_in_row_big_margin = function () {
282            elements = $(target_parent).children('*:not(.uss_cleaner):not(.photo_page_navitem)');
283            var index = 0;
284            var ii = 0;
285            var makeZ = function (iterator, reset) {
286                if (iterator === 0) {
287                    ii = 0;
288                } else {
289                    ii = ii + 1;
290                }
291                if (reset) {
292                    index = 1;
293                    ii = 0;
294                }
295                z = ii - index;
296                return z;
297            };
298            for (var i = 0; i < elements.length; i++) {
299                _el = $($(elements)[i]);
300                var z;
301                if ($(_el).hasClass('uss_shop_newbies_title')) {
302                    z = makeZ(i, true);
303                } else {
304                    z = makeZ(i);
305                    if ((z + 1) % elements_in_row === 0) {
306                        _el.css({
307                            'margin-right': Flex.normalizeNumber(margin_right_last, true),
308                            'margin-left': Flex.normalizeNumber(margin_left_last, true)
309                        });
310                    } else if (z % elements_in_row === 0) {
311                        _el.css({
312                            'margin-right': 0,
313                            'margin-left': Flex.normalizeNumber(margin_left, true)
314                        }).addClass('last-in-row');
315                    } else {
316                        _el.css({
317                            'margin-right': Flex.normalizeNumber(margin_right, true),
318                            'margin-left': Flex.normalizeNumber(margin_left, true)
319                        });
320                    }
321                }
322            }
323        };
324        var last_elemenet_big_margin = function () {
325            var _elements = $(elements);
326            _elements.css({
327                'margin-left': 0,
328                'margin-right': Flex.normalizeNumber(margin_right, true)
329            });
330            _elements.eq(0).css({
331                'margin-left': Flex.normalizeNumber(margin_left, true),
332                'margin-right': Flex.normalizeNumber(margin_right, true)
333            });
334        };
335        var margin_left, margin_right, margin_left_last, margin_right_last;
336        $(box).removeClass('bigmargin');
337        $(box).removeClass('one-row');
338        $(box).removeClass('many-rows');
339        $(box).removeClass('one-in-row');
340
341        if (isOneRow()) {
342            $(target_parent).addClass('one-row');
343            // âñå ýëåìåíòû âëåçàþò â 1 ñòðîêó
344            margin_for_row = Flex.normalizeNumber(
345                (box_width - elements_lenght * element_width) / (elements_lenght - 1),
346                true
347            );
348            if (one_in_row()) {
349                $(box).addClass('one-in-row');
350                margin_for_row = ~~(box_width - element_width);
351                margin_left = margin_for_row / 2;
352                margin_right = margin_for_row / 2;
353                margin_left_last = margin_for_row / 2;
354                margin_right_last = margin_for_row / 2;
355                last_in_row();
356            } else {
357                margin_left = 0;
358                margin_right = margin_for_row;
359                margin_left_last = 0;
360                margin_right_last = 0;
361                elements_in_row = elements_lenght;
362                last_in_row();
363                if (big_margin()) {
364                    margin_for_row = Flex.normalizeNumber(
365                        (box_width - max_elems_in_row * element_width) / (max_elems_in_row + 1),
366                        true
367                    );
368                    margin_left = 0;
369                    margin_right = margin_for_row;
370                    margin_left_last = 0;
371                    margin_right_last = margin_for_row;
372                    last_elemenet_big_margin();
373                }
374            }
375        } else {
376            // âñå ýëåìåíòû ÍÅ âëåçàþò â 1 ñòðîêó
377            $(target_parent).addClass('many-rows');
378            if (one_in_row()) {
379                $(box).addClass('one-in-row');
380                margin_for_row = Flex.normalizeNumber(box_width - element_width, true);
381                margin_left = margin_for_row / 2;
382                margin_right = margin_for_row / 2;
383                margin_left_last = margin_for_row / 2;
384                margin_right_last = margin_for_row / 2;
385                last_in_row();
386            } else if (big_margin()) {
387                $(box).addClass('bigmargin');
388                margin_fix = 11 * (elements_in_row + 1);
389                margin_for_row = Flex.normalizeNumber(
390                    (box_width - elements_in_row * element_width) / (elements_in_row + 1),
391                    true
392                );
393                margin_left = margin_for_row;
394                margin_right = 0;
395                margin_left_last = margin_for_row;
396                margin_right_last = margin_for_row;
397                if (max_elems_in_row > 2) {
398                    last_in_row_big_margin();
399                } else {
400                    last_in_row();
401                }
402            } else {
403                margin_left = 0;
404                margin_right = margin_for_row;
405                margin_left_last = 0;
406                margin_right_last = 0;
407                last_in_row();
408            }
409        }
410    },
411    find_class_in_parents: function (target) {
412        find = false;
413        $.each($(target).parents(), function (index, val) {
414            $.each(Flex.exclude_by_parent, function (index2, val2) {
415                if ($(val).hasClass(val2)) {
416                    find = true;
417                }
418            });
419        });
420        return find;
421    },
422    init: function (type) {
423        Flex.exclude_by_parent = Flex.exclude_by_parent.concat(Flex.other_plugins);
424        Flex.detect_targets();
425        Flex.run();
426        Flex.resizer();
427    }
428};
429jQuery(document).ready(function ($) {
430    $(window).load(function () {
431        Flex.init();
432    });
433    $.ajaxSetup({
434        complete: function () {
435            Flex.init();
436        }
437    });
438});
439// *** iconsCalculate ***
440// Ó áëîêîâ îáÿçàòåëüíî äîëæåí áûòü îáøèé ðîäèòåëü
441// Ñòàíäàðòíûé âûçîâ
442// $('.icons .icon').iconsCalculate();
443// Âûçîâ ñ êàñòîìíîé ñõåìîé ðàñïðåäåëåíèÿ
444// $('.icons .icon').iconsCalculate({"1920":[2,3,5],"1200":[3,3,3,1],"768":[2,2,2,2,2]});
445(function ($, window, document, undefined) {
446    function findResolution(_window_width, array) {
447        var array_keys = [];
448        for (key in array) {
449            array_keys.push(parseInt(key));
450        }
451        array_keys = array_keys.sort(function (a, b) {
452            return a - b;
453        });
454        for (var i = array_keys.length - 1; i >= 0; i--) {
455            if (_window_width <= array_keys[i] && _window_width > (array_keys[i - 1] || 0)) {
456                return array_keys[i];
457            }
458        }
459        return array_keys[array_keys.length - 1];
460    }
461
462    function buildRows(schema, resolution, _items, parent) {
463        for (var i = 0; i < schema[resolution].length; i++) {
464            var j = schema[resolution][i];
465            row = _items.splice(0, j);
466            $(row).wrapAll('<div class="row x' + j + '"></div>');
467        }
468        $(parent).attr('resolution', resolution);
469    }
470    $.fn.iconsCalculate = function (optional_schema) {
471        var _this = this;
472        function init() {
473            var items = _this;
474            var parent;
475            _this
476                .eq(0)
477                .parents('div')
478                .each(function (index, el) {
479                    if (!$(el).hasClass('row') && parent === undefined) {
480                        parent = $(el);
481                    }
482                });
483            var items_length = items.length.toString();
484            var default_schema = {
485                // ñòàíäàðòíàÿ ñõåìà ðàñïðåäåëåíèÿ
486                8: {
487                    1920: [4, 4],
488                    1200: [3, 3, 2],
489                    768: [2, 2, 2, 2],
490                    550: [1, 1, 1, 1, 1, 1, 1, 1]
491                },
492                7: {
493                    1920: [4, 3],
494                    1200: [3, 3, 1],
495                    768: [2, 2, 2, 1],
496                    550: [1, 1, 1, 1, 1, 1, 1]
497                },
498                6: {
499                    1920: [4, 2],
500                    1200: [3, 3],
501                    768: [2, 2, 2],
502                    550: [1, 1, 1, 1, 1, 1]
503                },
504                5: {
505                    1920: [3, 2],
506                    768: [2, 2, 1],
507                    550: [1, 1, 1, 1, 1]
508                },
509                4: {
510                    1920: [4],
511                    768: [2, 2],
512                    550: [1, 1, 1, 1, 1]
513                },
514                3: {
515                    1920: [3],
516                    768: [2, 1],
517                    550: [1, 1, 1]
518                },
519                2: {
520                    1920: [2],
521                    768: [1, 1]
522                },
523                1: {
524                    1920: [1]
525                },
526                0: {
527                    2000: [100]
528                }
529            };
530            var activeSchema = optional_schema || default_schema[items_length];
531            if ($(parent).attr('resolution') === undefined) {
532                $(parent).attr('resolution', '0');
533            }
534            var resolution = findResolution($(window).width(), activeSchema);
535            if ($(parent).attr('resolution') === '0') {
536                buildRows(activeSchema, resolution, items, parent);
537            } else if (parent.attr('resolution') !== '0' && parent.attr('resolution') !== resolution) {
538                items.unwrap('.row');
539                buildRows(activeSchema, resolution, items, parent);
540            }
541        }
542        if (this.length > 0) {
543            init();
544        }
545        return _this;
546    };
547})(jQuery, window, document);

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.