Browse code

Refactor and rewrite as contao bundle

Benjamin Roth authored on04/11/2022 22:32:32
Showing1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,95 +0,0 @@
1
-<script>
2
-  import { onMount, onDestroy, beforeUpdate, afterUpdate, tick } from 'svelte';
3
-  import { uniqueClasses } from './utils';
4
-
5
-  export let zoom = undefined;
6
-  export let virtualIndex = undefined;
7
-
8
-  let className = undefined;
9
-  export { className as class };
10
-
11
-  let slideEl = null;
12
-  let slideClasses = 'swiper-slide';
13
-
14
-  let swiper = null;
15
-  let eventAttached = false;
16
-
17
-  const updateClasses = (_, el, classNames) => {
18
-    if (el === slideEl) {
19
-      slideClasses = classNames;
20
-    }
21
-  };
22
-
23
-  const attachEvent = () => {
24
-    if (!swiper || eventAttached) return;
25
-    swiper.on('_slideClass', updateClasses);
26
-    eventAttached = true;
27
-  };
28
-
29
-  const detachEvent = () => {
30
-    if (!swiper) return;
31
-    swiper.off('_slideClass', updateClasses);
32
-    eventAttached = false;
33
-  };
34
-
35
-  $: slideData = {
36
-    isActive:
37
-      slideClasses.indexOf('swiper-slide-active') >= 0 ||
38
-      slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,
39
-    isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,
40
-    isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,
41
-    isPrev:
42
-      slideClasses.indexOf('swiper-slide-prev') >= 0 ||
43
-      slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,
44
-    isNext:
45
-      slideClasses.indexOf('swiper-slide-next') >= 0 ||
46
-      slideClasses.indexOf('swiper-slide-duplicate-next') >= 0,
47
-  };
48
-
49
-  onMount(() => {
50
-    if (typeof virtualIndex === 'undefined') return;
51
-    slideEl.onSwiper = (_swiper) => {
52
-      swiper = _swiper;
53
-      attachEvent();
54
-    };
55
-    attachEvent();
56
-  });
57
-
58
-  afterUpdate(() => {
59
-    if (!slideEl || !swiper) return;
60
-    if (swiper.destroyed) {
61
-      if (slideClasses !== 'swiper-slide') {
62
-        slideClasses = 'swiper-slide';
63
-      }
64
-      return;
65
-    }
66
-    attachEvent();
67
-  });
68
-
69
-  beforeUpdate(() => {
70
-    attachEvent();
71
-  });
72
-
73
-  onDestroy(() => {
74
-    if (!swiper) return;
75
-    detachEvent();
76
-  });
77
-</script>
78
-
79
-<div
80
-  bind:this={slideEl}
81
-  class={uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`)}
82
-  data-swiper-slide-index={virtualIndex}
83
-  {...$$restProps}
84
->
85
-  {#if zoom}
86
-    <div
87
-      class="swiper-zoom-container"
88
-      data-swiper-zoom={typeof zoom === 'number' ? zoom : undefined}
89
-    >
90
-      <slot data={slideData} />
91
-    </div>
92
-  {:else}
93
-    <slot data={slideData} />
94
-  {/if}
95
-</div>
Browse code

swiper.js version 6.5.0

Benjamin Roth authored on14/03/2021 15:29:46
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,95 @@
1
+<script>
2
+  import { onMount, onDestroy, beforeUpdate, afterUpdate, tick } from 'svelte';
3
+  import { uniqueClasses } from './utils';
4
+
5
+  export let zoom = undefined;
6
+  export let virtualIndex = undefined;
7
+
8
+  let className = undefined;
9
+  export { className as class };
10
+
11
+  let slideEl = null;
12
+  let slideClasses = 'swiper-slide';
13
+
14
+  let swiper = null;
15
+  let eventAttached = false;
16
+
17
+  const updateClasses = (_, el, classNames) => {
18
+    if (el === slideEl) {
19
+      slideClasses = classNames;
20
+    }
21
+  };
22
+
23
+  const attachEvent = () => {
24
+    if (!swiper || eventAttached) return;
25
+    swiper.on('_slideClass', updateClasses);
26
+    eventAttached = true;
27
+  };
28
+
29
+  const detachEvent = () => {
30
+    if (!swiper) return;
31
+    swiper.off('_slideClass', updateClasses);
32
+    eventAttached = false;
33
+  };
34
+
35
+  $: slideData = {
36
+    isActive:
37
+      slideClasses.indexOf('swiper-slide-active') >= 0 ||
38
+      slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,
39
+    isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,
40
+    isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,
41
+    isPrev:
42
+      slideClasses.indexOf('swiper-slide-prev') >= 0 ||
43
+      slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,
44
+    isNext:
45
+      slideClasses.indexOf('swiper-slide-next') >= 0 ||
46
+      slideClasses.indexOf('swiper-slide-duplicate-next') >= 0,
47
+  };
48
+
49
+  onMount(() => {
50
+    if (typeof virtualIndex === 'undefined') return;
51
+    slideEl.onSwiper = (_swiper) => {
52
+      swiper = _swiper;
53
+      attachEvent();
54
+    };
55
+    attachEvent();
56
+  });
57
+
58
+  afterUpdate(() => {
59
+    if (!slideEl || !swiper) return;
60
+    if (swiper.destroyed) {
61
+      if (slideClasses !== 'swiper-slide') {
62
+        slideClasses = 'swiper-slide';
63
+      }
64
+      return;
65
+    }
66
+    attachEvent();
67
+  });
68
+
69
+  beforeUpdate(() => {
70
+    attachEvent();
71
+  });
72
+
73
+  onDestroy(() => {
74
+    if (!swiper) return;
75
+    detachEvent();
76
+  });
77
+</script>
78
+
79
+<div
80
+  bind:this={slideEl}
81
+  class={uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`)}
82
+  data-swiper-slide-index={virtualIndex}
83
+  {...$$restProps}
84
+>
85
+  {#if zoom}
86
+    <div
87
+      class="swiper-zoom-container"
88
+      data-swiper-zoom={typeof zoom === 'number' ? zoom : undefined}
89
+    >
90
+      <slot data={slideData} />
91
+    </div>
92
+  {:else}
93
+    <slot data={slideData} />
94
+  {/if}
95
+</div>