PageSourceSearch

https://www.gemeinde-grafschaft.de/:res/modules/common/common/media/slider/js/manualSlider.js?fp=afc9779bf9e9

js gemeinde-grafschaft.de collected 2026-10-02 22:11:40 UTC 5,308 bytes, 196 lines download raw bytes

1var ManualSlider=(function(){
2var Default=Pegasus.defineNamespace('Common.Common.Default');
3var $slider;
4var $caption;
5var slickSliderProperties;
6var $slickSliderWrapper;
7var initialFade=false;
8function getProvidername(src){
9if(src!==undefined){
10if(src.indexOf("youtube.com")>=0||src.indexOf("youtu.be")>=0){
11return'YouTube';
12}else if(src.indexOf("vimeo.com")>=0){
13return'Vimeo';
14}else{
15return'localVideo';
16}
17}
18}
19function getOEmbedApiHref(src){
20let providername=getProvidername(src);
21if(providername==='Vimeo'){
22const url=new URL("https://vimeo.com/api/oembed.json");
23url.searchParams.append("url",src);
24return url.href;
25}else if(providername==='YouTube'){
26const url=new URL("https://youtube.com/oembed");
27url.searchParams.append("url",src);
28url.searchParams.append("format","json");
29return url.href;
30}
31return;
32}
33async function fetchOEmbed(src){
34let oEmbedApiHref=getOEmbedApiHref(src);
35if(oEmbedApiHref){
36const response=await fetch(oEmbedApiHref,{
37headers:{
38'Accept':'application/json'
39}
40});
41if(response.ok){
42return response.json();
43}else{
44throw new Error(response.statusText);
45}
46}
47}
48function onPause(slide){
49$slider.removeClass('stage-slider--video-is-playing');
50slide.parent().parent().focus();
51$('.header').removeClass('stage-slider--video-is-playing');
52}
53function onPlay(slide){
54$slider.addClass('stage-slider--video-is-playing');
55$('.header').addClass('stage-slider--video-is-playing');
56}
57function setAutoplayspeed($el,options){
58var $autoplaySpeedEl=$el.find("[data-autoplayspeed]");
59if($el.is("[data-autoplayspeed]")){
60$autoplaySpeedEl=$el;
61}
62if($autoplaySpeedEl.length>0){
63var speed=$autoplaySpeedEl.attr("data-autoplayspeed");
64options.autoplaySpeed=speed;
65}
66}
67function initVideos(){
68$slider.find('.stage-slider__media.video').each(async function(i,slide){
69var $this=$(this);
70var videoSrc=$this.data('videoSrc');
71var providerName=getProvidername(videoSrc);
72var metadata=await fetchOEmbed(videoSrc);
73if(metadata===undefined){
74return;
75}
76if($('body').is('.mode-editor')){
77$(slide).find('img').each((i,img)=>{
78$(img).attr('src',metadata.thumbnail_url)
79.css({"width":"100%","height":"inherit","float":"none"})
80.appendTo($this.empty());
81});
82}else{
83$this.html(metadata.html);
84if(providerName=='YouTube'){
85var $iframe=$(slide).children('iframe');
86$(slide).children('iframe').attr("src",$iframe.attr("src")+"&enablejsapi=1");
87Default.loadYoutubeIframeAPI().then(function(){
88var player;
89var videoControls={};
90var player=new YT.Player($iframe.get(0),{
91events:{
92'onReady':function(event){
93videoControls={
94play:function(){
95player.playVideo()
96},
97pause:function(){
98player.pauseVideo()
99}
100};
101$(slide).data('videoControls',videoControls);
102},
103'onStateChange':function(event){
104if(event.data==YT.PlayerState.PLAYING){
105onPlay($(slide));
106}
107if(event.data==YT.PlayerState.PAUSED){
108onPause($(slide));
109}
110}
111}
112});
113});
114}
115if(providerName=='Vimeo'){
116Default.loadVimeoAPI().then(function(){
117var iframe=$this.children('iframe').get(0);
118var player=new Vimeo.Player(iframe);
119var videoControls={
120play:function(){
121player.play()
122},
123pause:function(){
124player.pause()
125}
126};
127player.on('play',function(){
128onPlay($(slide));
129});
130player.on('pause',function(){
131onPause($(slide));
132});
133$(slide).data('videoControls',videoControls);
134});
135}
136}
137});
138}
139return function(slider,_slickSliderProperties){
140$slider=slider;
141$caption=$slider.find('.stage-slider__caption-inner');
142slickSliderProperties=_slickSliderProperties;
143slickSliderProperties.cssEase='ease-out';
144slickSliderProperties.useTransform=true;
145slickSliderProperties.accessibility=true;
146$slickSliderWrapper=$slider.closest(".slider-wrapper");
147initVideos();
148$('body').trigger('manualSlider.beforeSlickInit',
149{
150element:"#"+$slider.attr("id"),
151slickSliderProperties:slickSliderProperties
152}
153);
154setAutoplayspeed($slider.find(".manual-slider__slide-outer").first(),slickSliderProperties);
155$slider.on('init',function(e,slick){
156var ariaLabel=$slickSliderWrapper.attr("data-aria-label");
157if(ariaLabel.length>0){
158$slider.find(".slick-track").attr("aria-label",ariaLabel)
159}
160var $prevButton=$slider.find(".stage-slider__arrow-prev");
161var $nextButton=$slider.find(".stage-slider__arrow-next");
162$('body').trigger('manualSlider.slickInit',
163{
164element:"#"+$slider.attr("id"),
165slick:slick
166}
167);
168});
169$slider.on('beforeChange',function(event,slick,currentSlide,nextSlide){
170var $currentSlide=$slider.find('[data-slick-index="'+currentSlide+'"]');
171var $nextSlide=$slider.find('[data-slick-index="'+nextSlide+'"]');
172$nextSlide.addClass("is-animating");
173setAutoplayspeed($nextSlide,slick.options);
174var $media=$currentSlide.find('.stage-slider__media');
175var videoControls=$media.data('videoControls');
176if(videoControls!==undefined){
177videoControls.pause();
178}
179});
180$slider.on('afterChange',function(event,slick,currentSlide){
181var $currentSlide=$slider.find('[data-slick-index="'+currentSlide+'"]');
182var firstFocusable=$currentSlide.find('a, input, button, select, [role="link"]').not("[aria-hidden='true']").not("[role='presentation']").first();
183setTimeout(function(){
184if(slick.paused&&whatInput&&whatInput.ask('loose')==='keyboard'&&firstFocusable){
185firstFocusable.focus();
186}
187},1);
188$currentSlide.removeClass('is-animating');
189});
190_slickSliderProperties.accessibility=true;
191slickSliderProperties.customPaging=function(slider,i){
192return'<button type="button">Slide '+(i+1)+'</button>';
193}
194$slider.slick(slickSliderProperties);
195}
196})();

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.