PageSourceSearch

https://www.surgeons.org/-/media/Themes/RACS/surgeons-org/Custom/S…&hash=EE59B250F42514D09E7B0D71A3DBFFC9

js surgeons.org collected 2026-09-24 17:10:04 UTC 5,025 bytes, 140 lines download raw bytes

1XA.component.tabs && XA.component.tabs.initInstance && (XA.component.tabs.initInstance = (function(func, $) {
2
3
4    var beforeInitScript = function(component, prop) {
5        // code which will be run before initialization of the rendering
6
7    }
8
9    var afterInitScript = function(component) {
10        // script which will be used after the component has been initialized in the original script
11        createMobileTabs(component);
12
13    }
14
15    var createMobileTabs = function(component) {
16        var inner = $(component).find('.tabs-inner');
17        var header = inner.find('.tabs-heading');
18
19        var mobileHeader = $('<div>');
20        mobileHeader.addClass('tabs-mobile-header');
21        var opener = $('<div>');
22        opener.addClass('tabs-mobile-header__opener');
23        opener.appendTo(mobileHeader);
24        var openerContent = $('<span>');
25        openerContent.addClass('tabs-mobile-header__opener-content');
26        openerContent.appendTo(opener);
27        var icon = $('<i class="icon-down-open-big"></i>');
28        icon.appendTo(opener);
29
30        var newHeader = header.clone();
31        newHeader.appendTo(mobileHeader);
32        mobileHeader.insertBefore(header);
33        newHeader.addClass('closed');
34        newHeader.slideUp();
35
36        header.addClass ('tabs-desktop-header');
37
38        var display = newHeader.find('li.active div.field-heading');
39        openerContent.html(display.html());
40
41        header.addClass('desktop-heading');
42
43        addMobileTabsClickEvents(component, opener, openerContent, newHeader);
44        opener.on('click', function() {
45            var $this = $(this);
46            if (newHeader.hasClass('closed')) {
47                newHeader.removeClass('closed');
48                newHeader.addClass('open');
49                $('.tabs-mobile-header__opener-content').addClass('opened');
50                newHeader.slideDown();
51
52            } else {
53                newHeader.removeClass('open');
54                newHeader.addClass('closed');
55                $('.tabs-mobile-header__opener-content').removeClass('opened');
56                newHeader.slideUp();
57            }
58        })
59    }
60    var isFlipInside = function(instance) {
61        return !!instance.find(".component.flip").length;
62    };
63    var addMobileTabsClickEvents = function(component, opener, contentSpan, newHeader) {
64        var innerComponent = $(component).find('.tabs-inner');
65        var $tabNav = innerComponent.find(".tabs-mobile-header .tabs-heading > li");
66
67        $tabNav
68            .click(function(event) {
69                var current = $(this),
70                    index = current.index(),
71                    tabInner = current.parents('.tabs-inner'),
72                    content = current.find('div.field-heading');
73
74                contentSpan.html(content.html());
75                newHeader.removeClass('open');
76                newHeader.addClass('closed');
77
78                newHeader.slideUp();
79
80                current.siblings().removeClass("active");
81                tabInner
82                    .find("> .tabs-container > .tab")
83                    .removeClass("active");
84                current.addClass("active");
85                $(
86                    tabInner
87                    .children(".tabs-container")
88                    .children(".tab")
89                    .eq(index)
90                ).addClass("active");
91                if (isFlipInside(component)) {
92                    try {
93                        XA.component.flip.equalSideHeight(component);
94                    } catch (e) {
95                        /* eslint-disable no-console */
96                        console.warn(
97                            "Error during calculation height of Flip list in toggle"
98                        ); // jshint ignore:line
99                        /* eslint-enable no-console */
100                    }
101                }
102                current.focus();
103                event.preventDefault();
104            })
105            .keyup(function(event) {
106                var currentHeading = $(this);
107                switch (event.keyCode) {
108                    case 38:
109                        {
110                            currentHeading.prev("li").click();
111                            break;
112                        }
113                    case 40:
114                        {
115                            currentHeading.next("li").click();
116                            break;
117                        }
118                }
119            });
120    }
121
122    return function(component, prop) {
123        try {
124            var _prop = beforeInitScript(component, prop);
125        } catch (e) {
126            console.log(e)
127        }
128
129        var answer = func.apply(this, [component, _prop]);
130
131        try {
132            afterInitScript(component);
133        } catch (e) {
134            console.log(e)
135        }
136
137        return answer;
138    }
139
140})(XA.component.tabs.initInstance, 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.