PluginProbe
Block Animations, Motion & Scroll Effects – Ghost Kit / 3.4.1
Block Animations, Motion & Scroll Effects – Ghost Kit v3.4.1
3.7.2 3.7.1 3.7.0 3.6.1 trunk 1.6.3 2.25.0 3.3.0 3.3.1 3.3.2 3.3.3 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.5.0 3.5.1 3.6.0
ghostkit / assets / js / event-fallbacks.js

event-fallbacks.js in Block Animations, Motion & Scroll Effects – Ghost Kit 3.4.1, at assets/js/event-fallbacks.js

200 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Fallbacks for JS events for Ghost Kit < v3.0
3 */
4 import getjQuery from './utils/get-jquery';
5
6 const { GHOSTKIT } = window;
7 const { events } = GHOSTKIT;
8
9 class GhostKitFallbackClass {
10 constructor() {
11 const self = this;
12
13 self.deprecatedWarning = self.deprecatedWarning.bind(self);
14 self.initBlocks = self.deprecatedWarning.bind(self);
15 self.initBlocksThrottled = self.deprecatedWarning.bind(self);
16 self.prepareSR = self.deprecatedWarning.bind(self);
17 self.prepareCounters = self.deprecatedWarning.bind(self);
18 self.prepareNumberedLists = self.deprecatedWarning.bind(self);
19 self.prepareFallbackCustomStyles = self.deprecatedWarning.bind(self);
20 }
21
22 deprecatedWarning() {
23 // eslint-disable-next-line no-console
24 console.warn(
25 'Using `classObject` methods are deprecated since version 3.0.0. The main class object is removed and no more used.'
26 );
27 }
28 }
29
30 const classObject = new GhostKitFallbackClass();
31 GHOSTKIT.classObject = classObject;
32
33 function trigger(name, ...args) {
34 const $ = getjQuery();
35
36 if ($) {
37 $(document).trigger(`${name}.ghostkit`, [...args]);
38 }
39 }
40 function getElement(element) {
41 const $ = getjQuery();
42
43 if ($) {
44 return $(element);
45 }
46
47 return element;
48 }
49
50 let warnOnce = true;
51 GHOSTKIT.triggerEvent = (...args) => {
52 if (warnOnce) {
53 warnOnce = false;
54
55 // eslint-disable-next-line no-console
56 console.warn(
57 'Using `GHOSTKIT.triggerEvent` function is deprecated since version 3.0.0. Please use `GHOSTKIT.events.trigger` function instead.'
58 );
59 }
60
61 trigger(...args);
62 };
63
64 // Init.
65 events.on(document, 'init.gkt', () => {
66 trigger('beforeInit', classObject);
67
68 window.requestAnimationFrame(() => {
69 trigger('afterInit', classObject);
70 });
71 });
72
73 // Init blocks.
74 events.on(document, 'init.blocks.gkt', () => {
75 trigger('beforeInitBlocks', classObject);
76 trigger('initBlocks', classObject);
77
78 trigger('beforePrepareNumberedLists', classObject);
79 trigger('beforePrepareCounters', classObject);
80 trigger('beforePrepareSR', classObject);
81 trigger('beforePrepareAccordions', classObject);
82 trigger('beforePrepareCarousels', classObject);
83 trigger('beforePrepareChangelog', classObject);
84 trigger('beforePrepareCountdown', classObject);
85 trigger('beforePrepareGist', classObject);
86 trigger('beforePrepareGoogleMaps', classObject);
87 trigger('beforePrepareTabs', classObject);
88 trigger('beforePrepareVideo', classObject);
89
90 window.requestAnimationFrame(() => {
91 trigger('afterPrepareNumberedLists', classObject);
92 trigger('afterPrepareCounters', classObject);
93 trigger('afterPrepareSR', classObject);
94 trigger('afterPrepareAccordions', classObject);
95 trigger('afterPrepareCarousels', classObject);
96 trigger('afterPrepareChangelog', classObject);
97 trigger('afterPrepareCountdown', classObject);
98 trigger('afterPrepareGist', classObject);
99 trigger('afterPrepareGoogleMaps', classObject);
100 trigger('afterPrepareTabs', classObject);
101 trigger('afterPrepareVideo', classObject);
102
103 trigger('afterInitBlocks', classObject);
104 });
105 });
106
107 // Counters.
108 events.on(document, 'prepare.counter.gkt', ({ config }) => {
109 trigger('prepareCounters', classObject, config);
110 });
111 events.on(document, 'counted.counter.gkt', ({ config }) => {
112 trigger('animatedCounters', classObject, config);
113 });
114
115 // Scroll Reveal.
116 events.on(document, 'prepare.scrollReveal.gkt', ({ config, target }) => {
117 trigger('beforePrepareSRStart', classObject, getElement(target));
118 trigger('beforeInitSR', classObject, getElement(target), config);
119 });
120 events.on(document, 'prepared.scrollReveal.gkt', ({ target }) => {
121 trigger('beforePrepareSREnd', classObject, getElement(target));
122 });
123
124 // Accordion.
125 events.on(
126 document,
127 'show.accordion.gkt hide.accordion.gkt',
128 ({ relatedTarget }) => {
129 trigger('toggleAccordionItem', classObject, getElement(relatedTarget));
130 trigger(
131 'activateAccordionItem',
132 classObject,
133 getElement(relatedTarget)
134 );
135 }
136 );
137 events.on(
138 document,
139 'shown.accordion.gkt hidden.accordion.gkt',
140 ({ relatedTarget }) => {
141 trigger(
142 'afterActivateAccordionItem',
143 classObject,
144 getElement(relatedTarget)
145 );
146 }
147 );
148
149 // Alert.
150 events.on(document, 'closed.alert.gkt', ({ target }) => {
151 trigger('dismissedAlert', classObject, getElement(target));
152 });
153
154 // Carousel.
155 events.on(document, 'touchStart.carousel.gkt', ({ target, originalEvent }) => {
156 trigger('swiperTouchStart', classObject, target.swiper, originalEvent);
157 });
158 events.on(document, 'touchMove.carousel.gkt', ({ target, originalEvent }) => {
159 trigger('swiperTouchMove', classObject, target.swiper, originalEvent);
160 });
161 events.on(document, 'touchEnd.carousel.gkt', ({ target, originalEvent }) => {
162 trigger('swiperTouchEnd', classObject, target.swiper, originalEvent);
163 });
164
165 // Google Maps.
166 events.on(document, 'prepare.googleMaps.gkt', ({ target }) => {
167 trigger('beforePrepareGoogleMapsStart', classObject, getElement(target));
168 });
169 events.on(document, 'prepared.googleMaps.gkt', ({ target, instance }) => {
170 trigger(
171 'beforePrepareGoogleMapsEnd',
172 classObject,
173 getElement(target),
174 instance
175 );
176 });
177
178 // Image Compare.
179 events.on(document, 'move.imageCompare.gkt', ({ target, originalEvent }) => {
180 trigger(
181 'movedImageCompare',
182 classObject,
183 getElement(target),
184 originalEvent
185 );
186 });
187
188 // Tabs.
189 events.on(document, 'show.tab.gkt', ({ target }) => {
190 window.requestAnimationFrame(() => {
191 const tabNameEncoded = target.getAttribute('href');
192 trigger('activateTab', classObject, getElement(target), tabNameEncoded);
193 });
194 });
195
196 // Video.
197 events.on(document, 'prepare.videoObserver.gkt', ({ config }) => {
198 trigger('prepareVideoObserver', classObject, config);
199 });
200