PageSourceSearch

https://www.almustafatrust.org/wp-content/themes/al-mustafa-welfar…/_ui/js/std/i3/components/toggle.js?ver=1.0

js almustafatrust.org collected 2026-09-24 08:45:33 UTC 5,475 bytes, 164 lines download raw bytes

1"use strict";
2
3i3.use({
4    "object": ""
5});
6
7i3.object.extend({
8	__name__: "i3-toggle",
9	__constructor__: function (self, params)
10    {
11		params = i3.extend(true,
12        {
13			event: "click",
14            "affect-form": false,
15            
16            callbacks: {
17                show: null,
18                hide: null,
19                
20                check: function(ev, params)
21                {
22                    if (params && params['class'])
23                    {
24                        if (i3.is(params['class'], 'object'))
25                            return !i3(this).is("."+params['class']['in'].split(" ").join("."));
26                        else
27                            return !i3(this).is("."+params['class'].split(" ").join("."));
28                    }
29                    else
30                    {
31                        if (i3(self).is("input[type='checkbox'], input[type='radio']"))
32                            return i3(self).is(":checked");
33                        else
34                            return !i3(this).is(":visible");
35                    }
36                }
37            }
38		}, params);
39        
40        params.source = this.__target__(self, params.source, {contained: true, 'default': self});
41        params.target = this.__target__(self, params.target, i3(self).attr('href'));
42        
43        if (params.value)
44            params.callbacks.check = function(ev){ return i3.inArray(i3(ev.target).val(), i3.is(params.value, 'array') ? params.value : [params.value]) !== -1};
45        
46        if (params.label && i3.is(params.label, 'string'))
47            params.label = {"out": i3(self).html(), "in": params.label}
48        
49        var component = this;
50        
51        i3(params.source.node).on(this.__event__(params.event), function (ev)
52        {
53            component.event.apply(component, [self, ev].concat([].slice.call(arguments).slice(1)));
54        });
55        
56        this.params(params);
57	},
58    __show__: function()
59    {
60        var component = this;
61        var params = this.params();
62        
63        if (params['source-class'])
64        {
65            if (i3.is(params['source-class'], 'object'))
66                i3(params.source.node).removeClass(params['source-class']['out']).addClass(params['source-class']['in']);
67            else
68                i3(params.source.node).addClass(params['source-class']);
69        }
70        
71        if (params['class'])
72        {
73            if (i3.is(params['class'], 'object'))
74                i3(params.target.node).removeClass(params['class']['out']).addClass(params['class']['in']);
75            else
76                i3(params.target.node).addClass(params['class']);
77        }
78        else
79            i3(params.target.node).show();
80        
81        if (params.label)
82            i3(params.source.node).html(params.label['in']);
83            
84        if (params['affect-form'])
85            i3(params.target.node).find(":input").removeAttr('disabled');
86        
87        if (i3.is(params.callbacks.show, 'function'))
88            params.callbacks.show.apply(component);
89        
90        i3(params.target.node).trigger(this.__event__('show'));
91    },
92    __hide__: function()
93    {
94        var component = this;
95        var params = this.params();
96        
97        if (params['source-class'])
98        {
99            if (i3.is(params['source-class'], 'object'))
100                i3(params.source.node).removeClass(params['source-class']['in']).addClass(params['source-class']['out']);
101            else
102                i3(params.source.node).removeClass(params['source-class']);
103        }
104        
105        if (params['class'])
106        {
107            if (i3.is(params['class'], 'object'))
108                i3(params.target.node).removeClass(params['class']['in']).addClass(params['class']['out']);
109            else
110                i3(params.target.node).removeClass(params['class']);
111        }
112        else
113            i3(params.target.node).hide();
114        
115        if (params.label)
116            i3(params.source.node).html(params.label['out']);
117            
118        if (params['affect-form'])
119            i3(params.target.node).find(":input").attr('disabled', 'disabled');
120            
121        if (i3.is(params.callbacks.hide, 'function'))
122            params.callbacks.hide.apply(component);
123        
124        i3(params.target.node).trigger(this.__event__('hide'));
125    },
126	event: function (self, ev)
127    {
128        var component = this;
129		var params = this.params();
130
131        if (i3(self).is("a"))
132		    ev.preventDefault();
133            
134        if (params['class'])
135        {
136            if (params.callbacks.check.apply(params.target.node, [ev, {'class': params['class']}]))
137                this.__show__();
138            else
139                this.__hide__();
140        }
141        else
142        {
143            if (params.callbacks.check.apply(params.target.node, [ev]))
144                this.__show__();
145            else
146                this.__hide__();
147        }
148	},
149    __init__: function()
150    {
151        var component = this;
152        var params = this.params();
153        
154        if (i3(params.target.node).is(":hidden"))
155            this.__hide__();
156        
157        i3(params.target.node).off(this.__event__('show')).on(this.__event__('show'), function(event)
158        {
159            // reinitialise slick sliders after zero height hilarities
160            if(i3.fn.slick)
161                i3(this).find(".i3-slider.slick-slider").not(".slick-initialized").slick("reinit");
162        });
163    }
164});

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.