PageSourceSearch

https://jasmin.bg/wp-content/themes/Jasmin26/assets/js/jquery.shapeshift.min.js

js jasmin.bg collected 2026-10-02 13:31:54 UTC 29,637 bytes, 690 lines download raw bytes

1// Generated by CoffeeScript 1.4.0
2(function() {
3
4  (function($, window, document) {
5    var Plugin, defaults, pluginName;
6    pluginName = "shapeshift";
7    defaults = {
8      selector: "*",
9      enableDrag: true,
10      enableCrossDrop: true,
11      enableResize: true,
12      enableTrash: false,
13      align: "center",
14      colWidth: null,
15      columns: null,
16      minColumns: 1,
17      autoHeight: true,
18      maxHeight: null,
19      minHeight: 100,
20      gutterX: 10,
21      gutterY: 10,
22      paddingX: 10,
23      paddingY: 10,
24      animated: true,
25      animateOnInit: false,
26      animationSpeed: 225,
27      animationThreshold: 100,
28      dragClone: false,
29      deleteClone: true,
30      dragRate: 100,
31      dragWhitelist: "*",
32      crossDropWhitelist: "*",
33      cutoffStart: null,
34      cutoffEnd: null,
35      handle: false,
36      cloneClass: "ss-cloned-child",
37      activeClass: "ss-active-child",
38      draggedClass: "ss-dragged-child",
39      placeholderClass: "ss-placeholder-child",
40      originalContainerClass: "ss-original-container",
41      currentContainerClass: "ss-current-container",
42      previousContainerClass: "ss-previous-container"
43    };
44    Plugin = (function() {
45
46      function Plugin(element, options) {
47        this.element = element;
48        this.options = $.extend({}, defaults, options);
49        this.globals = {};
50        this.$container = $(element);
51        if (this.errorCheck()) {
52          this.init();
53        }
54      }
55
56      Plugin.prototype.errorCheck = function() {
57        var $children, error_msg, errors, options;
58        options = this.options;
59        errors = false;
60        error_msg = "Shapeshift ERROR:";
61        if (options.colWidth === null) {
62          $children = this.$container.children(options.selector);
63          if ($children.length === 0) {
64            errors = true;
65            console.error("" + error_msg + " option colWidth must be specified if Shapeshift is initialized with no active children.");
66          }
67        }
68        return !errors;
69      };
70
71      Plugin.prototype.init = function() {
72        this.createEvents();
73        this.setGlobals();
74        this.setIdentifier();
75        this.setActiveChildren();
76        this.enableFeatures();
77        this.gridInit();
78        this.render();
79        return this.afterInit();
80      };
81
82      Plugin.prototype.createEvents = function() {
83        var $container, options,
84          _this = this;
85        options = this.options;
86        $container = this.$container;
87        $container.off("ss-arrange").on("ss-arrange", function(e, trigger_drop_finished) {
88          if (trigger_drop_finished == null) {
89            trigger_drop_finished = false;
90          }
91          return _this.render(false, trigger_drop_finished);
92        });
93        $container.off("ss-rearrange").on("ss-rearrange", function() {
94          return _this.render(true);
95        });
96        $container.off("ss-setTargetPosition").on("ss-setTargetPosition", function() {
97          return _this.setTargetPosition();
98        });
99        $container.off("ss-destroy").on("ss-destroy", function() {
100          return _this.destroy();
101        });
102        return $container.off("ss-shuffle").on("ss-shuffle", function() {
103          return _this.shuffle();
104        });
105      };
106
107      Plugin.prototype.setGlobals = function() {
108        this.globals.animated = this.options.animateOnInit;
109        return this.globals.dragging = false;
110      };
111
112      Plugin.prototype.afterInit = function() {
113        return this.globals.animated = this.options.animated;
114      };
115
116      Plugin.prototype.setIdentifier = function() {
117        this.identifier = "shapeshifted_container_" + Math.random().toString(36).substring(7);
118        return this.$container.addClass(this.identifier);
119      };
120
121      Plugin.prototype.enableFeatures = function() {
122        if (this.options.enableResize) {
123          this.enableResize();
124        }
125        if (this.options.enableDrag || this.options.enableCrossDrop) {
126          return this.enableDragNDrop();
127        }
128      };
129
130      Plugin.prototype.setActiveChildren = function() {
131        var $children, active_child_class, colspan, columns, i, min_columns, options, total, _i, _j, _ref, _results;
132        options = this.options;
133        $children = this.$container.children(options.selector);
134        active_child_class = options.activeClass;
135        total = $children.length;
136        for (i = _i = 0; 0 <= total ? _i < total : _i > total; i = 0 <= total ? ++_i : --_i) {
137          $($children[i]).addClass(active_child_class);
138        }
139        this.setParsedChildren();
140        columns = options.columns;
141        _results = [];
142        for (i = _j = 0, _ref = this.parsedChildren.length; 0 <= _ref ? _j < _ref : _j > _ref; i = 0 <= _ref ? ++_j : --_j) {
143          colspan = this.parsedChildren[i].colspan;
144          min_columns = options.minColumns;
145          if (colspan > columns && colspan > min_columns) {
146            options.minColumns = colspan;
147            _results.push(console.error("Shapeshift ERROR: There are child elements that have a larger colspan than the minimum columns set through options.\noptions.minColumns has been set to " + colspan));
148          } else {
149            _results.push(void 0);
150          }
151        }
152        return _results;
153      };
154
155      Plugin.prototype.setParsedChildren = function() {
156        var $child, $children, child, i, parsedChildren, total, _i;
157        $children = this.$container.find("." + this.options.activeClass).filter(":visible");
158        total = $children.length;
159        parsedChildren = [];
160        for (i = _i = 0; 0 <= total ? _i < total : _i > total; i = 0 <= total ? ++_i : --_i) {
161          $child = $($children[i]);
162          child = {
163            i: i,
164            el: $child,
165            colspan: parseInt($child.attr("data-ss-colspan")) || 1,
166            height: $child.outerHeight()
167          };
168          parsedChildren.push(child);
169        }
170        return this.parsedChildren = parsedChildren;
171      };
172
173      Plugin.prototype.gridInit = function() {
174        var fc_colspan, fc_width, first_child, gutter_x, single_width;
175        gutter_x = this.options.gutterX;
176        if (!(this.options.colWidth >= 1)) {
177          first_child = this.parsedChildren[0];
178          fc_width = first_child.el.outerWidth();
179          fc_colspan = first_child.colspan;
180          single_width = (fc_width - ((fc_colspan - 1) * gutter_x)) / fc_colspan;
181          return this.globals.col_width = single_width + gutter_x;
182        } else {
183          return this.globals.col_width = this.options.colWidth + gutter_x;
184        }
185      };
186
187      Plugin.prototype.render = function(reparse, trigger_drop_finished) {
188        if (reparse == null) {
189          reparse = false;
190        }
191        if (reparse) {
192          this.setActiveChildren();
193        }
194        this.setGridColumns();
195        return this.arrange(false, trigger_drop_finished);
196      };
197
198      Plugin.prototype.setGridColumns = function() {
199        var actual_columns, children_count, col_width, colspan, columns, globals, grid_width, gutter_x, i, inner_width, minColumns, options, padding_x, _i, _ref;
200        globals = this.globals;
201        options = this.options;
202        col_width = globals.col_width;
203        gutter_x = options.gutterX;
204        padding_x = options.paddingX;
205        inner_width = this.$container.innerWidth() - (padding_x * 2);
206        minColumns = options.minColumns;
207        columns = options.columns || Math.floor((inner_width + gutter_x) / col_width);
208        if (minColumns && minColumns > columns) {
209          columns = minColumns;
210        }
211        globals.columns = columns;
212        children_count = this.parsedChildren.length;
213        if (columns > children_count) {
214          actual_columns = 0;
215          for (i = _i = 0, _ref = this.parsedChildren.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
216            colspan = this.parsedChildren[i].colspan;
217            if (colspan + actual_columns <= columns) {
218              actual_columns += colspan;
219            }
220          }
221          columns = actual_columns;
222        }
223        globals.child_offset = padding_x;
224        switch (options.align) {
225          case "center":
226            grid_width = (columns * col_width) - gutter_x;
227            return globals.child_offset += (inner_width - grid_width) / 2;
228          case "right":
229            grid_width = (columns * col_width) - gutter_x;
230            return globals.child_offset += inner_width - grid_width;
231        }
232      };
233
234      Plugin.prototype.arrange = function(reparse, trigger_drop_finished) {
235        var $child, $container, animated, animation_speed, attributes, child_positions, container_height, dragged_class, globals, i, is_dragged_child, max_height, min_height, options, parsed_children, placeholder_class, total_children, _i;
236        if (reparse) {
237          this.setParsedChildren();
238        }
239        globals = this.globals;
240        options = this.options;
241        $container = this.$container;
242        child_positions = this.getPositions();
243        parsed_children = this.parsedChildren;
244        total_children = parsed_children.length;
245        animated = globals.animated && total_children <= options.animationThreshold;
246        animation_speed = options.animationSpeed;
247        dragged_class = options.draggedClass;
248        for (i = _i = 0; 0 <= total_children ? _i < total_children : _i > total_children; i = 0 <= total_children ? ++_i : --_i) {
249          $child = parsed_children[i].el;
250          attributes = child_positions[i];
251          is_dragged_child = $child.hasClass(dragged_class);
252          if (is_dragged_child) {
253            placeholder_class = options.placeholderClass;
254            $child = $child.siblings("." + placeholder_class);
255          }
256          if (animated && !is_dragged_child) {
257            $child.stop(true, false).animate(attributes, animation_speed, function() {});
258          } else {
259            $child.css(attributes);
260          }
261        }
262        if (trigger_drop_finished) {
263          if (animated) {
264            setTimeout((function() {
265              return $container.trigger("ss-drop-complete");
266            }), animation_speed);
267          } else {
268            $container.trigger("ss-drop-complete");
269          }
270        }
271        $container.trigger("ss-arranged");
272        if (options.autoHeight) {
273          container_height = globals.container_height;
274          max_height = options.maxHeight;
275          min_height = options.minHeight;
276          if (min_height && container_height < min_height) {
277            container_height = min_height;
278          } else if (max_height && container_height > max_height) {
279            container_height = max_height;
280          }
281          return $container.height(container_height);
282        }
283      };
284
285      Plugin.prototype.getPositions = function(include_dragged) {
286        var col_heights, determineMultiposition, determinePositions, dragged_class, globals, grid_height, gutter_y, i, options, padding_y, parsed_children, positions, recalculateSavedChildren, savePosition, saved_children, total_children, _i, _ref,
287          _this = this;
288        if (include_dragged == null) {
289          include_dragged = true;
290        }
291        globals = this.globals;
292        options = this.options;
293        gutter_y = options.gutterY;
294        padding_y = options.paddingY;
295        dragged_class = options.draggedClass;
296        parsed_children = this.parsedChildren;
297        total_children = parsed_children.length;
298        col_heights = [];
299        for (i = _i = 0, _ref = globals.columns; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
300          col_heights.push(padding_y);
301        }
302        savePosition = function(child) {
303          var col, colspan, j, offset_x, offset_y, _j, _results;
304          col = child.col;
305          colspan = child.colspan;
306          offset_x = (child.col * globals.col_width) + globals.child_offset;
307          offset_y = col_heights[col];
308          positions[child.i] = {
309            left: offset_x,
310            top: offset_y
311          };
312          col_heights[col] += child.height + gutter_y;
313          if (colspan >= 1) {
314            _results = [];
315            for (j = _j = 1; 1 <= colspan ? _j < colspan : _j > colspan; j = 1 <= colspan ? ++_j : --_j) {
316              _results.push(col_heights[col + j] = col_heights[col]);
317            }
318            return _results;
319          }
320        };
321        determineMultiposition = function(child) {
322          var chosen_col, col, colspan, height, kosher, next_height, offset, possible_col_heights, possible_cols, span, _j, _k;
323          possible_cols = col_heights.length - child.colspan + 1;
324          possible_col_heights = col_heights.slice(0).splice(0, possible_cols);
325          chosen_col = void 0;
326          for (offset = _j = 0; 0 <= possible_cols ? _j < possible_cols : _j > possible_cols; offset = 0 <= possible_cols ? ++_j : --_j) {
327            col = _this.lowestCol(possible_col_heights, offset);
328            colspan = child.colspan;
329            height = col_heights[col];
330            kosher = true;
331            for (span = _k = 1; 1 <= colspan ? _k < colspan : _k > colspan; span = 1 <= colspan ? ++_k : --_k) {
332              next_height = col_heights[col + span];
333              if (height < next_height) {
334                kosher = false;
335                break;
336              }
337            }
338            if (kosher) {
339              chosen_col = col;
340              break;
341            }
342          }
343          return chosen_col;
344        };
345        saved_children = [];
346        recalculateSavedChildren = function() {
347          var index, pop_i, saved_child, saved_i, to_pop, _j, _k, _ref1, _ref2, _results;
348          to_pop = [];
349          for (saved_i = _j = 0, _ref1 = saved_children.length; 0 <= _ref1 ? _j < _ref1 : _j > _ref1; saved_i = 0 <= _ref1 ? ++_j : --_j) {
350            saved_child = saved_children[saved_i];
351            saved_child.col = determineMultiposition(saved_child);
352            if (saved_child.col >= 0) {
353              savePosition(saved_child);
354              to_pop.push(saved_i);
355            }
356          }
357          _results = [];
358          for (pop_i = _k = _ref2 = to_pop.length - 1; _k >= 0; pop_i = _k += -1) {
359            index = to_pop[pop_i];
360            _results.push(saved_children.splice(index, 1));
361          }
362          return _results;
363        };
364        positions = [];
365        (determinePositions = function() {
366          var child, _j, _results;
367          _results = [];
368          for (i = _j = 0; 0 <= total_children ? _j < total_children : _j > total_children; i = 0 <= total_children ? ++_j : --_j) {
369            child = parsed_children[i];
370            if (!(!include_dragged && child.el.hasClass(dragged_class))) {
371              if (child.colspan > 1) {
372                child.col = determineMultiposition(child);
373              } else {
374                child.col = _this.lowestCol(col_heights);
375              }
376              if (child.col === void 0) {
377                saved_children.push(child);
378              } else {
379                savePosition(child);
380              }
381              _results.push(recalculateSavedChildren());
382            } else {
383              _results.push(void 0);
384            }
385          }
386          return _results;
387        })();
388        if (options.autoHeight) {
389          grid_height = col_heights[this.highestCol(col_heights)] - gutter_y;
390          globals.container_height = grid_height + padding_y;
391        }
392        return positions;
393      };
394
395      Plugin.prototype.enableDragNDrop = function() {
396        var $clone, $container, $placeholder, $selected, active_class, clone_class, current_container_
396class, delete_clone, drag_clone, drag_rate, drag_timeout, dragged_class, options, original_container_class, placeholder_class, previous_container_class, selected_offset_x, selected_offset_y,
397          _this = this;
398        options = this.options;
399        $container = this.$container;
400        active_class = options.activeClass;
401        dragged_class = options.draggedClass;
402        placeholder_class = options.placeholderClass;
403        original_container_class = options.originalContainerClass;
404        current_container_class = options.currentContainerClass;
405        previous_container_class = options.previousContainerClass;
406        delete_clone = options.deleteClone;
407        drag_rate = options.dragRate;
408        drag_clone = options.dragClone;
409        clone_class = options.cloneClass;
410        $selected = $placeholder = $clone = selected_offset_y = selected_offset_x = null;
411        drag_timeout = false;
412        if (options.enableDrag) {
413          $container.children("." + active_class).filter(options.dragWhitelist).draggable({
414            addClasses: false,
415            containment: 'document',
416            handle: options.handle,
417            zIndex: 9999,
418            start: function(e, ui) {
419              var selected_tag;
420              _this.globals.dragging = true;
421              $selected = $(e.target);
422              if (drag_clone) {
423                $clone = $selected.clone(false, false).insertBefore($selected).addClass(clone_class);
424              }
425              $selected.addClass(dragged_class);
426              selected_tag = $selected.prop("tagName");
427              $placeholder = $("<" + selected_tag + " class='" + placeholder_class + "' style='height: " + ($selected.height()) + "px; width: " + ($selected.width()) + "px'></" + selected_tag + ">");
428              $selected.parent().addClass(original_container_class).addClass(current_container_
428class);
429              selected_offset_y = $selected.outerHeight() / 2;
430              return selected_offset_x = $selected.outerWidth() / 2;
431            },
432            drag: function(e, ui) {
433              if (!drag_timeout && !(drag_clone && delete_clone && $("." + current_container_class)[0] === $("." + original_container_class)[0])) {
434                $placeholder.remove().appendTo("." + current_container_class);
435                $("." + current_container_class).trigger("ss-setTargetPosition");
436                drag_timeout = true;
437                window.setTimeout((function() {
438                  return drag_timeout = false;
439                }), drag_rate);
440              }
441              ui.position.left = e.pageX - $selected.parent().offset().left - selected_offset_x;
442              return ui.position.top = e.pageY - $selected.parent().offset().top - selected_offset_y;
443            },
444            stop: function() {
445              var $current_container, $original_container, $previous_container;
446              _this.globals.dragging = false;
447              $original_container = $("." + original_container_class);
448              $current_container = $("." + current_container_class);
449              $previous_container = $("." + previous_container_class);
450              $selected.removeClass(dragged_class);
451              $("." + placeholder_class).remove();
452              if (drag_clone) {
453                if (delete_clone && $("." + current_container_class)[0] === $("." + original_container_class)[0]) {
454                  $clone.remove();
455                  $("." + current_container_class).trigger("ss-rearrange");
456                } else {
457                    $clone.removeClass(clone_class);
458                    $original_container.shapeshift($original_container.data("plugin_shapeshift").options);
459                    $current_container.shapeshift($current_container.data("plugin_shapeshift").options);
460                }
461              }
462              if ($original_container[0] === $current_container[0]) {
463                $current_container.trigger("ss-rearranged", $selected);
464              } else {
465                $original_container.trigger("ss-removed", $selected);
466                $current_container.trigger("ss-added", $selected);
467              }
468              $original_container.trigger("ss-arrange").removeClass(original_container_class);
469              $current_container.trigger("ss-arrange", true).removeClass(current_container_
469class);
470              $previous_container.trigger("ss-arrange").removeClass(previous_container_class);
471              return $selected = $placeholder = null;
472            }
473          });
474        }
475        if (options.enableCrossDrop) {
476          return $container.droppable({
477            accept: options.crossDropWhitelist,
478            tolerance: 'intersect',
479            over: function(e) {
480              $("." + previous_container_class).removeClass(previous_container_class);
481              $("." + current_container_class).removeClass(current_container_class).addClass(previous_container_class);
482              return $(e.target).addClass(current_container_class);
483            },
484            drop: function(e, selected) {
485              var $current_container, $original_container, $previous_container;
486              if (_this.options.enableTrash) {
487                $original_container = $("." + original_container_class);
488                $current_container = $("." + current_container_class);
489                $previous_container = $("." + previous_container_class);
490                $selected = $(selected.helper);
491                $current_container.trigger("ss-trashed", $selected);
492                $selected.remove();
493                $original_container.trigger("ss-rearrange").removeClass(original_container_class);
494                $current_container.trigger("ss-rearrange").removeClass(current_container_
494class);
495                return $previous_container.trigger("ss-arrange").removeClass(previous_container_class);
496              }
497            }
498          });
499        }
500      };
501
502      Plugin.prototype.setTargetPosition = function() {
503        var $selected, $start_container, $target, attributes, child_positions, cutoff_end, cutoff_start, distance, dragged_class, options, parsed_children, placeholder_class, position_i, previous_container_class, selected_x, selected_y, shortest_distance, target_position, total_positions, x_dist, y_dist, _i;
504        options = this.options;
505        if (!options.enableTrash) {
506          dragged_class = options.draggedClass;
507          $selected = $("." + dragged_class);
508          $start_container = $selected.parent();
509          parsed_children = this.parsedChildren;
510          child_positions = this.getPositions(false);
511          total_positions = child_positions.length;
512          selected_x = $selected.offset().left - $start_container.offset().left + (this.globals.col_width / 2);
513          selected_y = $selected.offset().top - $start_container.offset().top + ($selected.height() / 2);
514          shortest_distance = 9999999;
515          target_position = 0;
516          if (total_positions > 1) {
517            cutoff_start = options.cutoffStart + 1 || 0;
518            cutoff_end = options.cutoffEnd || total_positions;
519            for (position_i = _i = cutoff_start; cutoff_start <= cutoff_end ? _i < cutoff_end : _i > cutoff_end; position_i = cutoff_start <= cutoff_end ? ++_i : --_i) {
520              attributes = child_positions[position_i];
521              if (attributes) {
522                y_dist = selected_x - attributes.left;
523                x_dist = selected_y - attributes.top;
524                if (y_dist > 0 && x_dist > 0) {
525                  distance = Math.sqrt((x_dist * x_dist) + (y_dist * y_dist));
526                  if (distance < shortest_distance) {
527                    shortest_distance = distance;
528                    target_position = position_i;
529                    if (position_i === total_positions - 1) {
530                      if (y_dist > parsed_children[position_i].height / 2) {
531                        target_position++;
532                      }
533                    }
534                  }
535                }
536              }
537            }
538            if (target_position === parsed_children.length) {
539              $target = parsed_children[target_position - 1].el;
540              $selected.insertAfter($target);
541            } else {
542              $target = parsed_children[target_position].el;
543              $selected.insertBefore($target);
544            }
545          } else {
546            if (total_positions === 1) {
547              attributes = child_positions[0];
548              if (attributes.left < selected_x) {
549                this.$container.append($selected);
550              } else {
551                this.$container.prepend($selected);
552              }
553            } else {
554              this.$container.append($selected);
555            }
556          }
557          this.arrange(true);
558          if ($start_container[0] !== $selected.parent()[0]) {
559              previous_container_class = options.previousContainerClass;
560              if ($("." + previous_container_class).data("plugin_shapeshift").options.enableCrossDrop == true) {
561                  return $("." + previous_container_class).trigger("ss-rearrange");
562              } else {
563                  return $("." + previous_container_class);
564              }
565          }
566        } else {
567          placeholder_class = this.options.placeholderClass;
568          return $("." + placeholder_class).remove();
569        }
570      };
571
572      Plugin.prototype.enableResize = function() {
573        var animation_speed, binding, resizing,
574          _this = this;
575        animation_speed = this.options.animationSpeed;
576        resizing = false;
577        binding = "resize." + this.identifier;
578        return $(window).on(binding, function() {
579          if (!resizing) {
580            resizing = true;
581            setTimeout((function() {
582              return _this.render();
583            }), animation_speed / 3);
584            setTimeout((function() {
585              return _this.render();
586            }), animation_speed / 3);
587            return setTimeout(function() {
588              resizing = false;
589              return _this.render();
590            }, animation_speed / 3);
591          }
592        });
593      };
594
595      Plugin.prototype.shuffle = function() {
596        var calculateShuffled;
597        calculateShuffled = function(container, activeClass) {
598          var shuffle;
599          shuffle = function(arr) {
600            var i, j, x;
601            j = void 0;
602            x = void 0;
603            i = arr.length;
604            while (i) {
605              j = parseInt(Math.random() * i);
606              x = arr[--i];
607              arr[i] = arr[j];
608              arr[j] = x;
609            }
610            return arr;
611          };
612          return container.each(function() {
613            var items;
614            items = container.find("." + activeClass).filter(":visible");
615            if (items.length) {
616              return container.html(shuffle(items));
617            } else {
618              return this;
619            }
620          });
621        };
622        if (!this.globals.dragging) {
623          calculateShuffled(this.$container, this.options.activeClass);
624          this.enableFeatures();
625          return this.$container.trigger("ss-rearrange");
626        }
627      };
628
629      Plugin.prototype.lowestCol = function(array, offset) {
630        var augmented_array, i, length, _i;
631        if (offset == null) {
632          offset = 0;
633        }
634        length = array.length;
635        augmented_array = [];
636        for (i = _i = 0; 0 <= length ? _i < length : _i > length; i = 0 <= length ? ++_i : --_i) {
637          augmented_array.push([array[i], i]);
638        }
639        augmented_array.sort(function(a, b) {
640          var ret;
641          ret = a[0] - b[0];
642          if (ret === 0) {
643            ret = a[1] - b[1];
644          }
645          return ret;
646        });
647        return augmented_array[offset][1];
648      };
649
650      Plugin.prototype.highestCol = function(array) {
651        return $.inArray(Math.max.apply(window, array), array);
652      };
653
654      Plugin.prototype.destroy = function() {
655        var $active_children, $container, active_class;
656        $container = this.$container;
657        $container.off("ss-arrange");
658        $container.off("ss-rearrange");
659        $container.off("ss-setTargetPosition");
660        $container.off("ss-destroy");
661        active_class = this.options.activeClass;
662        $active_children = $container.find("." + active_class);
663        if (this.options.enableDrag) {
664          $active_children.draggable('destroy');
665        }
666        if (this.options.enableCrossDrop) {
667          $container.droppable('destroy');
668        }
669        $active_children.removeClass(active_class);
670        return $container.removeClass(this.identifier);
671      };
672
673      return Plugin;
674
675    })();
676    return $.fn[pluginName] = function(options) {
677      return this.each(function() {
678        var bound_indentifier, old_class, _ref, _ref1;
679        old_class = (_ref = $(this).attr("class")) != null ? (_ref1 = _ref.match(/shapeshifted_container_\w+/)) != null ? _ref1[0] : void 0 : void 0;
680        if (old_class) {
681          bound_indentifier = "resize." + old_class;
682          $(window).off(bound_indentifier);
683          $(this).removeClass(old_class);
684        }
685        return $.data(this, "plugin_" + pluginName, new Plugin(this, options));
686      });
687    };
688  })(jQuery, window, document);
689
690}).call(this);

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.