PageSourceSearch

https://novargonaftes.gr/wp-content/themes/oxigeno/framework/js/fancySelect.js?ver=6.1.14

js novargonaftes.gr collected 2026-10-01 15:34:24 UTC 6,967 bytes, 216 lines download raw bytes

1'use strict';
2
3// Generated by CoffeeScript 1.4.0
4
5(function() {
6  var $;
7
8  $ = window.jQuery || window.Zepto || window.$;
9
10  $.fn.fancySelect = function(opts) {
11    
12  //    var isiOS, settings;
13
14    var isiOS, settings, clicked = false;
15    if (opts == null) {
16      opts = {};
17    }
18    settings = $.extend({
19      forceiOS: false,
20      includeBlank: false,
21      optionTemplate: function(optionEl) {
22        return optionEl.text();
23      },
24      triggerTemplate: function(optionEl) {
25        return optionEl.text();
26      }
27    }, opts);
28    isiOS = !!navigator.userAgent.match(/iP(hone|od|ad)/i);
29    return this.each(function() {
30      var copyOptionsToList, disabled, options, sel, trigger, updateTriggerText, wrapper;
31      sel = $(this);
32      if (sel.hasClass('fancified') || sel[0].tagName !== 'SELECT') {
33        return;
34      }
35      sel.addClass('fancified');
36      sel.css({
37        width: 1,
38        height: 1,
39        display: 'none',
40        position: 'absolute',
41        top: 0,
42        left: 0,
43        opacity: 0
44      });
45      sel.wrap('<div class="fancy-select">');
46      wrapper = sel.parent();
47      if (sel.data('class')) {
48        wrapper.addClass(sel.data('class'));
49      }
50      wrapper.append('<div class="trigger">');
51
52      wrapper.append('<ul class="options">');
53
54      trigger = wrapper.find('.trigger');
55      options = wrapper.find('.options');
56      disabled = sel.prop('disabled');
57
58      if (disabled) {
59        wrapper.addClass('disabled');
60      }
61      updateTriggerText = function() {
62        var triggerHtml;
63        triggerHtml = settings.triggerTemplate(sel.find(':selected'));
64        return trigger.html(triggerHtml);
65      };
66      sel.on('blur.fs', function() {
67        if (trigger.hasClass('open')) {
68          return setTimeout(function() {
69            return trigger.trigger('close.fs');
70          }, 120);
71        }
72      });
73      trigger.on('close.fs', function() {
74        trigger.removeClass('open');
75        return options.removeClass('open');
76      });
77        trigger.on('close', function() {
78            var parent = sel.parent();
79            if(!parent.is(':hover') || (parent.is(':hover') && clicked)) {
80                clicked = false;
81                trigger.removeClass('open');
82                return options.removeClass('open');
83            }
84        });
85        sel.parent().on('mouseout', function() {
86            sel.trigger('focus');
87        });
88              
89      trigger.on('click.fs', function() {
90        var offParent, parent;
91        if (!disabled) {
92          trigger.toggleClass('open');
93            if (trigger.hasClass('open')) {
94              parent = trigger.parent();
95              offParent = parent.offsetParent();
96              if ((parent.offset().top + parent.outerHeight() + options.outerHeight() + 20) > $(window).height() + $(window).scrollTop()) {
97                options.addClass('overflowing');
98              } else {
99                options.removeClass('overflowing');
100              }
101            }
102            options.toggleClass('open');
103            if (!isiOS) {
104              return sel.focus();
105            }
106        }
107      });
108      sel.on('enable', function() {
109        sel.prop('disabled', false);
110        wrapper.removeClass('disabled');
111        disabled = false;
112        return copyOptionsToList();
113      });
114      sel.on('disable', function() {
115        sel.prop('disabled', true);
116        wrapper.addClass('disabled');
117        return disabled = true;
118      });
119      sel.on('change.fs', function(e) {
120        if (e.originalEvent && e.originalEvent.isTrusted) {
121          return e.stopPropagation();
122        } else {
123          return updateTriggerText();
124        }
125      });
126      sel.on('keydown', function(e) {
127        var hovered, newHovered, w;
128        w = e.which;
129        hovered = options.find('.hover');
130        hovered.removeClass('hover');
131        if (!options.hasClass('open')) {
132          if (w === 13 || w === 32 || w === 38 || w === 40) {
133            e.preventDefault();
134            return trigger.trigger('click.fs');
135          }
136        } else {
137          if (w === 38) {
138            e.preventDefault();
139            if (hovered.length && hovered.index() > 0) {
140              hovered.prev().addClass('hover');
141            } else {
142              options.find('li:last-child').addClass('hover');
143            }
144          } else if (w === 40) {
145            e.preventDefault();
146            if (hovered.length && hovered.index() < options.find('li').length - 1) {
147              hovered.next().addClass('hover');
148            } else {
149              options.find('li:first-child').addClass('hover');
150            }
151          } else if (w === 27) {
152            e.preventDefault();
153            trigger.trigger('click.fs');
154          } else if (w === 13 || w === 32) {
155            e.preventDefault();
156            hovered.trigger('click.fs');
157          } else if (w === 9) {
158            if (trigger.hasClass('open')) {
159              trigger.trigger('close.fs');
160            }
161          }
162          newHovered = options.find('.hover');
163          if (newHovered.length) {
164            options.scrollTop(0);
165            return options.scrollTop(newHovered.position().top - 12);
166          }
167        }
168      });
169      options.on('click.fs', 'li', function(e) {
170        var clicked;
171        clicked = $(this);
172        sel.val(clicked.data('raw-value'));
173        if (!isiOS) {
174          sel.trigger('blur.fs').trigger('focus.fs');
175        }
176        options.find('.selected').removeClass('selected');
177        clicked.addClass('selected');
178        trigger.addClass('selected');
179        return sel.val(clicked.data('raw-value')).trigger('change.fs').trigger('blur.fs').trigger('focus.fs');
180      });
181      options.on('mouseenter.fs', 'li', function() {
182        var hovered, nowHovered;
183        nowHovered = $(this);
184        hovered = options.find('.hover');
185        hovered.removeClass('hover');
186        return nowHovered.addClass('hover');
187      });
188      options.on('mouseleave.fs', 'li', function() {
189        return options.find('.hover').removeClass('hover');
190      });
191      copyOptionsToList = function() {
192        var selOpts;
193        updateTriggerText();
194        selOpts = sel.find('option');
195        return sel.find('option').each(function(i, opt) {
196          var optHtml;
197          opt = $(opt);
198          if (!opt.prop('disabled') && (opt.val() || settings.includeBlank)) {
199            optHtml = settings.optionTemplate(opt);
200            if (opt.prop('selected')) {
201              return options.append("<li data-raw-value=\"" + (opt.val()) + "\" class=\"selected\">" + optHtml + "</li>");
202            } else {
203              return options.append("<li data-raw-value=\"" + (opt.val()) + "\">" + optHtml + "</li>");
204            }
205          }
206        });
207      };
208      sel.on('update.fs', function() {
209        wrapper.find('.options').empty();
210        return copyOptionsToList();
211      });
212      return copyOptionsToList();
213    });
214  };
215
216}).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.