PageSourceSearch

https://mydprint.com/wp-content/plugins/product-extras-for-woocomm…/js/select-box.js?ver=3.26.4&18e511&18e511

js mydprint.com collected 2026-10-10 01:38:31 UTC 11,582 bytes, 234 lines download raw bytes

1// Forked from DDSlick
2(function (e) {
3    e.fn.ddslick = function (l) {
4        if (c[l]) {
5            return c[l].apply(this, Array.prototype.slice.call(arguments, 1));
6        } else {
7            if (typeof l === "object" || !l) {
8                return c.init.apply(this, arguments);
9            } else {
10                e.error("Method " + l + " does not exists.");
11            }
12        }
13    };
14    var c = {},
15        d = {
16            data: [],
17            keepJSONItemsOnTop: false,
18            width: 260,
19            height: null,
20            background: "#eee",
21            selectText: "",
22            defaultSelectedIndex: null,
23            truncateDescription: true,
24            imagePosition: "left",
25            showSelectedHTML: true,
26            clickOffToClose: true,
27            embedCSS: true,
28            onSelected: function () {},
29        },
30        i = '<div class="dd-select"><input class="dd-selected-value" type="hidden" /><a class="dd-selected"></a><span class="dd-pointer dd-pointer-down"></span></div>',
31        a = '<ul class="dd-options"></ul>',
32        b =
33            '<style id="css-ddslick" type="text/css">.dd-select{ border-radius:2px; border:solid 1px #ccc; position:relative; cursor:pointer;}.dd-desc { color:#aaa; display:block; overflow: hidden; font-weight:normal; line-height: 1.4em; }.dd-selected{ overflow:hidden; display:block; padding:10px; font-weight:bold;}.dd-pointer{ width:0; height:0; position:absolute; right:10px; top:50%; margin-top:-3px;}.dd-pointer-down{ border:solid 5px transparent; border-top:solid 5px #000; }.dd-pointer-up{border:solid 5px transparent !important; border-bottom:solid 5px #000 !important; margin-top:-8px;}.dd-options{ border:solid 1px #ccc; border-top:none; list-style:none; box-shadow:0px 1px 5px #ddd; display:none; position:absolute; z-index:2000; margin:0; padding:0;background:#fff; overflow:auto;}.dd-option{ padding:10px; display:block; border-bottom:solid 1px #ddd; overflow:hidden; text-decoration:none; color:#333; cursor:pointer;-webkit-transition: all 0.25s ease-in-out; -moz-transition: all 0.25s ease-in-out;-o-transition: all 0.25s ease-in-out;-ms-transition: all 0.25s ease-in-out; }.dd-options > li:last-child > .dd-option{ border-bottom:none;}.dd-option:hover{ background:#f3f3f3; color:#000;}.dd-selected-description-truncated { text-overflow: ellipsis; white-space:nowrap; }.dd-option-selected { background:#f6f6f6; }.dd-option-image, .dd-selected-image { vertical-align:middle; float:left; margin-right:5px; max-width:64px;}.dd-image-right { float:right; margin-right:15px; margin-left:5px;}.dd-container{ position:relative;}​ .dd-selected-text { font-weight:bold}​</style>';
34    c.init = function (l) {
35        var l = e.extend({}, d, l);
36        if (e("#css-ddslick").length <= 0 && l.embedCSS) {
37            e(b).appendTo("head");
38        }
39        return this.each(function () {
40            var p = e(this),
41                q = p.data("ddslick");
42            if (!q) {
43                var n = [],
44                    o = l.data;
45                p.find("option").each(function () {
46                    var w = e(this),
47                        v = w.data();
48                    // 3.13.7
49                    //var pushdata = { text: e.trim(w.text()), value: w.val(), selected: w.is(":selected"), description: v.description, imageSrc: v.imagesrc };
50                    var pushdata = { text: w.text().trim(), value: w.val(), selected: w.is(":selected"), description: v.description, imageSrc: v.imagesrc }; // 3.21.2, replaced deprecated e.trim() (jQuery.trim()) with String.trim()
51                    if ( v.imagesrcFull ) {
52                        pushdata.imagesrcFull = v.imagesrcFull;
53                    }
54                    if ( v.imagesrcWidth ) {
55                        pushdata.imagesrcWidth = v.imagesrcWidth;
56                    }
57                    if ( v.imagesrcHeight ) {
58                        pushdata.imagesrcHeight = v.imagesrcHeight;
59                    }
60                    n.push( pushdata );
61                });
62                if (l.keepJSONItemsOnTop) {
63                    e.merge(l.data, n);
64                } else {
65                    l.data = e.merge(n, l.data);
66                }
67                var m = p,
68                    s = e('<div id="' + p.attr("id") + '"></div>');
69                // Added this to ensure original select field isn't destroyed
70                var gc = p.clone().attr('id',p.attr('data-select-id'));
71                p.after(gc);
72                p.replaceWith(s);
73                p = s;
74                p.addClass("dd-container").append(i).append(a);
75                var n = p.find(".dd-select"),
76                    u = p.find(".dd-options");
77                u.css({ width: l.width });
78                n.css({ width: l.width, background: l.background });
79                p.css({ width: l.width });
80                if (l.height != null) {
81                    u.css({ height: l.height, overflow: "auto" });
82                }
83                e.each(l.data, function (v, w) {
84                    if (w.selected) {
85                        l.defaultSelectedIndex = v;
86                    }
87                    u.append(
88                        '<li><a class="dd-option">' +
89                            (w.value ? ' <input class="dd-option-value" type="hidden" value="' + w.value + '" />' : "") +
90                            (w.imageSrc ? ' <img class="dd-option-image' + (l.imagePosition == "right" ? " dd-image-right" : "") + '" src="' + w.imageSrc + '" />' : "") +
91                            (w.text ? ' <label class="dd-option-text">' + w.text + "</label>" : "") +
92                            (w.description ? ' <small class="dd-option-description dd-desc">' + w.description + "</small>" : "") +
93                            "</a></li>"
94                    );
95                });
96                var t = { settings: l, original: m, selectedIndex: -1, selectedItem: null, selectedData: null };
97                p.data("ddslick", t);
98                if (l.selectText.length > 0 && l.defaultSelectedIndex == null) {
99                    p.find(".dd-selected").html(l.selectText);
100                } else {
101                    var r = l.defaultSelectedIndex != null && l.defaultSelectedIndex >= 0 && l.defaultSelectedIndex < l.data.length ? l.defaultSelectedIndex : 0;
102                    j(p, r);
103                }
104                p.find(".dd-select").on("click.ddslick", function () {
105                    f(p);
106                });
107                p.find(".dd-option").on("click.ddslick", function () {
108                    j(p, e(this).closest("li").index());
109                });
110                if (l.clickOffToClose) {
111                    u.addClass("dd-click-off-close");
112                    p.on("click.ddslick", function (v) {
113                        v.stopPropagation();
114                    });
115                    e("body").on("click", function () {
116                        e(".dd-click-off-close").slideUp(50).siblings(".dd-select").find(".dd-pointer").removeClass("dd-pointer-up");
117                    });
118                }
119            }
120        });
121    };
122    c.select = function (l) {
123        return this.each(function () {
124            if (l.index !== undefined) {
125                j(e(this), l.index);
126            }
127        });
128    };
129    c.open = function () {
130        return this.each(function () {
131            var m = e(this),
132                l = m.data("ddslick");
133            if (l) {
134                f(m);
135            }
136        });
137    };
138    c.close = function () {
139        return this.each(function () {
140            var m = e(this),
141                l = m.data("ddslick");
142            if (l) {
143                k(m);
144            }
145        });
146    };
147    c.destroy = function () {
148        return this.each(function () {
149            var n = e(this),
150                m = n.data("ddslick");
151            if (m) {
152                var l = m.original;
153                n.removeData("ddslick").unbind(".ddslick").replaceWith(l);
154            }
155        });
156    };
157    function j(q, s) {
158        var u = q.data("ddslick");
159        var r = q.find(".dd-selected"),
160            n = r.siblings(".dd-selected-value"),
161            v = q.find(".dd-options"),
162            l = r.siblings(".dd-pointer"),
163            p = q.find(".dd-option").eq(s),
164            m = p.closest("li"),
165            o = u.settings,
166            t = u.settings.data[s];
167        q.find(".dd-option").removeClass("dd-option-selected");
168        p.addClass("dd-option-selected");
169        u.selectedIndex = s;
170        u.selectedItem = m;
171        u.selectedData = t;
172        if (o.showSelectedHTML) {
173            r.html(
174                (t.imageSrc ? '<img class="dd-selected-image' + (o.imagePosition == "right" ? " dd-image-right" : "") + '" src="' + t.imageSrc + '" />' : "") +
175                    (t.text ? '<label class="dd-selected-text">' + t.text + "</label>" : "") +
176                    (t.description ? '<small class="dd-selected-description dd-desc' + (o.truncateDescription ? " dd-selected-description-truncated" : "") + '" >' + t.description + "</small>" : "") + 
177                    (t.imagesrcFull ? '<input type="hidden" class="dd-selected-image-full" data-imgsrc-width="' + ( t.imagesrcWidth ? t.imagesrcWidth : '' ) + '" data-imgsrc-height="' + ( t.imagesrcHeight ? t.imagesrcHeight : '' ) + '" value="' + t.imagesrcFull + '">' : "" )
178            );
179        } else {
180            r.html(t.text);
181        }
182        n.val(t.value);
183        u.original.val(t.value);
184        q.data("ddslick", u);
185        k(q);
186        g(q);
187        if (typeof o.onSelected == "function") {
188            o.onSelected.call(this, u);
189        }
190    }
191    function f(p) {
192        var o = p.find(".dd-select"),
193            m = o.siblings(".dd-options"),
194            l = o.find(".dd-pointer"),
195            n = m.is(":visible");
196        e(".dd-click-off-close").not(m).slideUp(50);
197        e(".dd-pointer").removeClass("dd-pointer-up");
198        if (n) {
199            m.slideUp("fast");
200            l.removeClass("dd-pointer-up");
201        } else {
202            m.slideDown("fast");
203            l.addClass("dd-pointer-up");
204        }
205        h(p);
206    }
207    function k(l) {
208        l.find(".dd-options").slideUp(50);
209        l.find(".dd-pointer").removeClass("dd-pointer-up").removeClass("dd-pointer-up");
210    }
211    function g(o) {
212        var n = o.find(".dd-select").css("height");
213        var m = o.find(".dd-selected-description");
214        var l = o.find(".dd-selected-image");
215        if (m.length <= 0 && l.length > 0 && pewc_vars.disable_line_height_select_box != 'yes' ) {
216            o.find(".dd-selected-text").css("lineHeight", n); // 3.17.2, this causes inconsistent height on the selected option, so we added a filter. pewc_disable_line_height_select_box is true by default
217        }
218    }
219    function h(l) {
220        l.find(".dd-option").each(function () {
221            var p = e(this);
222            if ( p.find(".dd-option-text").attr( "style" ) ) {
223                // 3.13.7, line-height was already set, return to prevent continuous increase of line-height
224                return;
225            }
226            var n = p.css("height");
227            var o = p.find(".dd-option-description");
228            var m = l.find(".dd-option-image");
229            if (o.length <= 0 && m.length > 0 && pewc_vars.disable_line_height_select_box != 'yes' ) {
230                p.find(".dd-option-text").css("lineHeight", n); // 3.17.2, this causes inconsistent heights when not all options have prices, so we added a filter (see above)
231            }
232        });
233    }
234})(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.