@reimujs/aos 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 D-Sketon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/LICENSE-aos ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Michał Sajnóg
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # aos.js
2
+
3
+ Animate on scroll library.
4
+
5
+ Rewrite [aos](https://github.com/michalsnik/aos) using typescript.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @reimujs/aos --save
11
+ ```
12
+
13
+ or
14
+
15
+ ```html
16
+ <link
17
+ rel="stylesheet"
18
+ href="https://cdn.jsdelivr.net/npm/@reimujs/aos/dist/aos.css"
19
+ />
20
+ <script src="https://cdn.jsdelivr.net/npm/@reimujs/aos/dist/aos.umd.js"></script>
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ Just same as aos@next. For more information, please visit [aos-how-to-use-it](https://github.com/michalsnik/aos?tab=readme-ov-file#-how-to-use-it).
26
+
27
+ ```typescript
28
+ import AOS from "@reimujs/aos";
29
+
30
+ AOS.init({
31
+ // Global settings:
32
+ disable: false, // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function
33
+ startEvent: "DOMContentLoaded", // name of the event dispatched on the document, that AOS should initialize on
34
+ initClassName: "aos-init", // class applied after initialization
35
+ animatedClassName: "aos-animate", // class applied on animation
36
+ useClassNames: false, // if true, will add content of `data-aos` as classes on scroll
37
+ disableMutationObserver: false, // disables automatic mutations' detections (advanced)
38
+ debounceDelay: 50, // the delay on debounce used while resizing window (advanced)
39
+ throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced)
40
+
41
+ // Settings that can be overridden on per-element basis, by `data-aos-*` attributes:
42
+ offset: 120, // offset (in px) from the original trigger point
43
+ delay: 0, // values from 0 to 3000, with step 50ms
44
+ duration: 400, // values from 0 to 3000, with step 50ms
45
+ easing: "ease", // default easing for AOS animations
46
+ once: false, // whether animation should happen only once - while scrolling down
47
+ mirror: false, // whether elements should animate out while scrolling past them
48
+ anchorPlacement: "top-bottom", // defines which position of the element regarding to window/container should trigger the animation
49
+
50
+ // Additional setting:
51
+ container: window, // AOS Container, accepts CSS Selector (e.g. ".my-awesome-container") or HTMLElement
52
+ });
53
+ ```
54
+
55
+ ## Difference
56
+
57
+ So what's the difference between aos and @reimujs/aos?
58
+
59
+
60
+ - Typescript friendly
61
+ - Smaller package size (from 14.7KB + 26.1KB to 6.74KB + 24.5KB)
62
+ - Only support modern browsers
63
+ - Support additional settings
64
+ - Support additional API
65
+
66
+ ### Additional settings
67
+
68
+ #### container
69
+
70
+ merge from [aos#223](https://github.com/michalsnik/aos/issues/223), you can set the container of AOS, accepts CSS Selector (e.g. ".my-awesome-container") or HTMLElement.
71
+
72
+ ```typescript
73
+ container: window, // AOS Container, accepts CSS Selector (e.g. ".my-awesome-container") or HTMLElement
74
+ ```
75
+
76
+ ### Additional API
77
+
78
+ #### AOS.destroy()
79
+
80
+ ```typescript
81
+ function destroy(): void;
82
+ ```
83
+
84
+ Remove all event listeners and disconnect MutationObserver.
85
+
86
+
87
+ ## License
88
+ MIT
@@ -0,0 +1,348 @@
1
+ 'use strict';
2
+
3
+ var esToolkit = require('es-toolkit');
4
+
5
+ const phoneRe = /iphone|ipod|android.*mobile|windows phone|blackberry|opera mini|mobile|phone/i;
6
+ const tabletRe = /ipad|android(?!.*mobile)|tablet|kindle/i;
7
+ function ua() {
8
+ return navigator.userAgent;
9
+ }
10
+ class Detector {
11
+ userAgent = ua();
12
+ phone() {
13
+ return phoneRe.test(this.userAgent);
14
+ }
15
+ mobile() {
16
+ return phoneRe.test(this.userAgent) || tabletRe.test(this.userAgent);
17
+ }
18
+ tablet() {
19
+ return tabletRe.test(this.userAgent);
20
+ }
21
+ }
22
+ var detect = new Detector();
23
+
24
+ const resolveContainer = (container) => {
25
+ if (container instanceof Element || container === window)
26
+ return container;
27
+ return typeof container === "string"
28
+ ? document.querySelector(container)
29
+ : null;
30
+ };
31
+ const getElementHeight = (container) => {
32
+ return container === window
33
+ ? container.innerHeight
34
+ : container.clientHeight;
35
+ };
36
+ const getElementOffset = (container) => {
37
+ return container === window
38
+ ? container.pageYOffset
39
+ : container.scrollTop;
40
+ };
41
+
42
+ const updateClasses = (node, classes, action = "add") => classes?.forEach((className) => node.classList[action](className));
43
+ const fireEvent = (eventName, data) => document.dispatchEvent(new CustomEvent(eventName, {
44
+ detail: data,
45
+ }));
46
+ const toggleClasses = (el, isVisible) => {
47
+ if (el.animated === isVisible)
48
+ return;
49
+ const { options, node } = el;
50
+ const eventName = isVisible ? "aos:in" : "aos:out";
51
+ const action = isVisible ? "add" : "remove";
52
+ updateClasses(node, options.animatedClassNames, action);
53
+ fireEvent(eventName, node);
54
+ if (options.id) {
55
+ fireEvent(`${eventName}:${options.id}`, node);
56
+ }
57
+ el.animated = isVisible;
58
+ };
59
+ const applyClasses = (el, top) => {
60
+ const { options, position } = el;
61
+ if (options.mirror && top >= position.out && !options.once) {
62
+ toggleClasses(el, false);
63
+ }
64
+ else if (top >= position.in) {
65
+ toggleClasses(el, true);
66
+ }
67
+ else if (el.animated && !options.once) {
68
+ toggleClasses(el, false);
69
+ }
70
+ };
71
+ var handleScroll = (elements, container) => {
72
+ elements.forEach((el) => applyClasses(el, getElementOffset(container)));
73
+ };
74
+
75
+ var getInlineOption = (el, key, fallback) => {
76
+ const attr = el.getAttribute(`data-aos-${key}`);
77
+ if (attr === "true")
78
+ return true;
79
+ if (attr === "false")
80
+ return false;
81
+ return attr || fallback;
82
+ };
83
+
84
+ const getOffset = function (el, container) {
85
+ let left = 0;
86
+ let top = 0;
87
+ while (el) {
88
+ left += el.offsetLeft - (el.tagName != "BODY" ? el.scrollLeft : 0);
89
+ top += el.offsetTop - (el.tagName != "BODY" ? el.scrollTop : 0);
90
+ el =
91
+ el.offsetParent === container ? null : el.offsetParent;
92
+ }
93
+ return {
94
+ top,
95
+ left,
96
+ };
97
+ };
98
+ const getPositionIn = (el, defaultOffset, defaultAnchorPlacement, container) => {
99
+ const containerHeight = getElementHeight(container);
100
+ const anchor = getInlineOption(el, "anchor");
101
+ const inlineAnchorPlacement = getInlineOption(el, "anchor-placement");
102
+ const additionalOffset = Number(getInlineOption(el, "offset", inlineAnchorPlacement ? 0 : defaultOffset));
103
+ const anchorPlacement = inlineAnchorPlacement || defaultAnchorPlacement;
104
+ let finalEl = el;
105
+ if (anchor) {
106
+ const queryResult = (container === window ? document : container).querySelector(anchor);
107
+ if (queryResult)
108
+ finalEl = queryResult;
109
+ }
110
+ let triggerPoint = getOffset(finalEl, container).top - containerHeight;
111
+ switch (anchorPlacement) {
112
+ case "top-bottom":
113
+ // Default offset
114
+ break;
115
+ case "center-bottom":
116
+ triggerPoint += finalEl.offsetHeight / 2;
117
+ break;
118
+ case "bottom-bottom":
119
+ triggerPoint += finalEl.offsetHeight;
120
+ break;
121
+ case "top-center":
122
+ triggerPoint += containerHeight / 2;
123
+ break;
124
+ case "center-center":
125
+ triggerPoint += containerHeight / 2 + finalEl.offsetHeight / 2;
126
+ break;
127
+ case "bottom-center":
128
+ triggerPoint += containerHeight / 2 + finalEl.offsetHeight;
129
+ break;
130
+ case "top-top":
131
+ triggerPoint += containerHeight;
132
+ break;
133
+ case "bottom-top":
134
+ triggerPoint += containerHeight + finalEl.offsetHeight;
135
+ break;
136
+ case "center-top":
137
+ triggerPoint += containerHeight + finalEl.offsetHeight / 2;
138
+ break;
139
+ }
140
+ return triggerPoint + additionalOffset;
141
+ };
142
+ const getPositionOut = (el, defaultOffset, container) => {
143
+ const anchor = getInlineOption(el, "anchor");
144
+ const additionalOffset = getInlineOption(el, "offset", defaultOffset);
145
+ let finalEl = el;
146
+ if (anchor) {
147
+ const queryResult = (container === window ? document : container).querySelector(anchor);
148
+ if (queryResult)
149
+ finalEl = queryResult;
150
+ }
151
+ const elementOffsetTop = getOffset(finalEl, container).top;
152
+ return elementOffsetTop + finalEl.offsetHeight - additionalOffset;
153
+ };
154
+
155
+ function prepare(elements, options, container) {
156
+ elements.forEach((element) => {
157
+ const { node } = element;
158
+ const mirror = getInlineOption(node, "mirror", options.mirror);
159
+ const once = getInlineOption(node, "once", options.once);
160
+ const id = getInlineOption(node, "id");
161
+ const customClassNames = options.useClassNames
162
+ ? node.getAttribute("data-aos")?.split(" ") || []
163
+ : [];
164
+ const animatedClassNames = [
165
+ options.animatedClassName,
166
+ ...customClassNames,
167
+ ].filter((className) => typeof className === "string");
168
+ if (options.initClassName) {
169
+ node.classList.add(options.initClassName);
170
+ }
171
+ element.position = {
172
+ in: getPositionIn(node, options.offset, options.anchorPlacement, container),
173
+ out: mirror && getPositionOut(node, options.offset, container),
174
+ };
175
+ element.options = {
176
+ once,
177
+ mirror,
178
+ animatedClassNames,
179
+ id,
180
+ };
181
+ });
182
+ return elements;
183
+ }
184
+
185
+ const containsAOSNode = (nodes) => {
186
+ return [...nodes].some((node) => {
187
+ return (node.dataset?.aos || (node.children && containsAOSNode(node.children)));
188
+ });
189
+ };
190
+ const observe = (fn) => {
191
+ const observer = new MutationObserver((mutations) => {
192
+ if (mutations?.some(({ addedNodes, removedNodes }) => containsAOSNode([...addedNodes, ...removedNodes]))) {
193
+ fn();
194
+ }
195
+ });
196
+ observer.observe(document.documentElement, {
197
+ childList: true,
198
+ subtree: true,
199
+ });
200
+ return observer;
201
+ };
202
+
203
+ const defaultOptions = {
204
+ offset: 120,
205
+ delay: 0,
206
+ easing: "ease",
207
+ duration: 400,
208
+ disable: false,
209
+ once: false,
210
+ mirror: false,
211
+ anchorPlacement: "top-bottom",
212
+ startEvent: "DOMContentLoaded",
213
+ animatedClassName: "aos-animate",
214
+ initClassName: "aos-init",
215
+ useClassNames: false,
216
+ disableMutationObserver: false,
217
+ throttleDelay: 99,
218
+ debounceDelay: 50,
219
+ container: window,
220
+ };
221
+ class Aos {
222
+ elements = [];
223
+ initialized = false;
224
+ options = defaultOptions;
225
+ container = null;
226
+ observer = null;
227
+ scrollHandler = null;
228
+ resizeHandler = null;
229
+ startHandler = null;
230
+ static getElements(container) {
231
+ return [
232
+ ...(container === window ? document : container).querySelectorAll("[data-aos]"),
233
+ ].map((node) => ({
234
+ node,
235
+ }));
236
+ }
237
+ static isDisabled(optionDisable) {
238
+ return (optionDisable === true ||
239
+ (optionDisable === "mobile" && detect.mobile()) ||
240
+ (optionDisable === "phone" && detect.phone()) ||
241
+ (optionDisable === "tablet" && detect.tablet()) ||
242
+ (typeof optionDisable === "function" && optionDisable() === true));
243
+ }
244
+ initializeScroll() {
245
+ const { container } = this;
246
+ this.elements = prepare(this.elements, this.options, container);
247
+ handleScroll(this.elements, this.container);
248
+ this.scrollHandler = esToolkit.throttle(() => {
249
+ handleScroll(this.elements, container);
250
+ }, this.options.throttleDelay);
251
+ container.addEventListener("scroll", this.scrollHandler, {
252
+ passive: true,
253
+ });
254
+ return this.elements;
255
+ }
256
+ init(options = {}) {
257
+ this.destroy();
258
+ this.options = { ...defaultOptions, ...options };
259
+ const container = resolveContainer(this.options.container);
260
+ if (!container) {
261
+ throw `AOS - cannot find the container element. The container option must be an HTMLElement or a CSS Selector.`;
262
+ }
263
+ this.elements = Aos.getElements(container);
264
+ this.container = container;
265
+ if (Aos.isDisabled(this.options.disable)) {
266
+ return this.disable();
267
+ }
268
+ if (!this.options.disableMutationObserver) {
269
+ this.observer = observe(this.refreshHard.bind(this));
270
+ }
271
+ document.body.setAttribute("data-aos-easing", this.options.easing);
272
+ document.body.setAttribute("data-aos-duration", this.options.duration);
273
+ document.body.setAttribute("data-aos-delay", this.options.delay);
274
+ this.startHandler = {
275
+ handler: this.refresh.bind(this),
276
+ type: "document",
277
+ };
278
+ if (!["DOMContentLoaded", "load"].includes(this.options.startEvent)) {
279
+ document.addEventListener(this.options.startEvent, this.startHandler.handler);
280
+ }
281
+ else {
282
+ window.addEventListener("load", this.startHandler.handler);
283
+ this.startHandler.type = "window";
284
+ }
285
+ if (this.options.startEvent === "DOMContentLoaded" &&
286
+ ["complete", "interactive"].indexOf(document.readyState) > -1) {
287
+ this.refresh(true);
288
+ }
289
+ this.resizeHandler = esToolkit.debounce(this.refresh.bind(this), this.options.debounceDelay);
290
+ window.addEventListener("resize", this.resizeHandler);
291
+ window.addEventListener("orientationchange", this.resizeHandler);
292
+ }
293
+ refresh(initialize = false) {
294
+ if (initialize) {
295
+ this.initialized = true;
296
+ }
297
+ if (this.initialized) {
298
+ this.initializeScroll();
299
+ }
300
+ }
301
+ refreshHard() {
302
+ this.elements = Aos.getElements(this.container);
303
+ if (Aos.isDisabled(this.options.disable)) {
304
+ return this.disable();
305
+ }
306
+ this.refresh();
307
+ }
308
+ disable() {
309
+ this.elements.forEach(({ node }) => {
310
+ node.removeAttribute("data-aos");
311
+ node.removeAttribute("data-aos-easing");
312
+ node.removeAttribute("data-aos-duration");
313
+ node.removeAttribute("data-aos-delay");
314
+ if (this.options.initClassName) {
315
+ node.classList.remove(this.options.initClassName);
316
+ }
317
+ if (this.options.animatedClassName) {
318
+ node.classList.remove(this.options.animatedClassName);
319
+ }
320
+ });
321
+ }
322
+ destroy() {
323
+ this.observer?.disconnect();
324
+ this.observer = null;
325
+ if (this.startHandler) {
326
+ const { handler, type } = this.startHandler;
327
+ if (type === "document") {
328
+ document.removeEventListener(this.options.startEvent, handler);
329
+ }
330
+ else {
331
+ window.removeEventListener("load", handler);
332
+ }
333
+ this.startHandler = null;
334
+ }
335
+ if (this.scrollHandler) {
336
+ window.removeEventListener("scroll", this.scrollHandler);
337
+ this.scrollHandler = null;
338
+ }
339
+ if (this.resizeHandler) {
340
+ window.removeEventListener("resize", this.resizeHandler);
341
+ window.removeEventListener("orientationchange", this.resizeHandler);
342
+ this.resizeHandler = null;
343
+ }
344
+ }
345
+ }
346
+ var index = new Aos();
347
+
348
+ module.exports = index;
package/dist/aos.css ADDED
@@ -0,0 +1 @@
1
+ body[data-aos-duration="50"] [data-aos],[data-aos][data-aos-duration="50"]{transition-duration:50ms}body[data-aos-delay="50"] [data-aos],[data-aos][data-aos-delay="50"]{transition-delay:0s}body[data-aos-delay="50"] [data-aos].aos-animate,[data-aos][data-aos-delay="50"].aos-animate{transition-delay:50ms}body[data-aos-duration="100"] [data-aos],[data-aos][data-aos-duration="100"]{transition-duration:100ms}body[data-aos-delay="100"] [data-aos],[data-aos][data-aos-delay="100"]{transition-delay:0s}body[data-aos-delay="100"] [data-aos].aos-animate,[data-aos][data-aos-delay="100"].aos-animate{transition-delay:100ms}body[data-aos-duration="150"] [data-aos],[data-aos][data-aos-duration="150"]{transition-duration:150ms}body[data-aos-delay="150"] [data-aos],[data-aos][data-aos-delay="150"]{transition-delay:0s}body[data-aos-delay="150"] [data-aos].aos-animate,[data-aos][data-aos-delay="150"].aos-animate{transition-delay:150ms}body[data-aos-duration="200"] [data-aos],[data-aos][data-aos-duration="200"]{transition-duration:200ms}body[data-aos-delay="200"] [data-aos],[data-aos][data-aos-delay="200"]{transition-delay:0s}body[data-aos-delay="200"] [data-aos].aos-animate,[data-aos][data-aos-delay="200"].aos-animate{transition-delay:200ms}body[data-aos-duration="250"] [data-aos],[data-aos][data-aos-duration="250"]{transition-duration:250ms}body[data-aos-delay="250"] [data-aos],[data-aos][data-aos-delay="250"]{transition-delay:0s}body[data-aos-delay="250"] [data-aos].aos-animate,[data-aos][data-aos-delay="250"].aos-animate{transition-delay:250ms}body[data-aos-duration="300"] [data-aos],[data-aos][data-aos-duration="300"]{transition-duration:300ms}body[data-aos-delay="300"] [data-aos],[data-aos][data-aos-delay="300"]{transition-delay:0s}body[data-aos-delay="300"] [data-aos].aos-animate,[data-aos][data-aos-delay="300"].aos-animate{transition-delay:300ms}body[data-aos-duration="350"] [data-aos],[data-aos][data-aos-duration="350"]{transition-duration:350ms}body[data-aos-delay="350"] [data-aos],[data-aos][data-aos-delay="350"]{transition-delay:0s}body[data-aos-delay="350"] [data-aos].aos-animate,[data-aos][data-aos-delay="350"].aos-animate{transition-delay:350ms}body[data-aos-duration="400"] [data-aos],[data-aos][data-aos-duration="400"]{transition-duration:400ms}body[data-aos-delay="400"] [data-aos],[data-aos][data-aos-delay="400"]{transition-delay:0s}body[data-aos-delay="400"] [data-aos].aos-animate,[data-aos][data-aos-delay="400"].aos-animate{transition-delay:400ms}body[data-aos-duration="450"] [data-aos],[data-aos][data-aos-duration="450"]{transition-duration:450ms}body[data-aos-delay="450"] [data-aos],[data-aos][data-aos-delay="450"]{transition-delay:0s}body[data-aos-delay="450"] [data-aos].aos-animate,[data-aos][data-aos-delay="450"].aos-animate{transition-delay:450ms}body[data-aos-duration="500"] [data-aos],[data-aos][data-aos-duration="500"]{transition-duration:500ms}body[data-aos-delay="500"] [data-aos],[data-aos][data-aos-delay="500"]{transition-delay:0s}body[data-aos-delay="500"] [data-aos].aos-animate,[data-aos][data-aos-delay="500"].aos-animate{transition-delay:500ms}body[data-aos-duration="550"] [data-aos],[data-aos][data-aos-duration="550"]{transition-duration:550ms}body[data-aos-delay="550"] [data-aos],[data-aos][data-aos-delay="550"]{transition-delay:0s}body[data-aos-delay="550"] [data-aos].aos-animate,[data-aos][data-aos-delay="550"].aos-animate{transition-delay:550ms}body[data-aos-duration="600"] [data-aos],[data-aos][data-aos-duration="600"]{transition-duration:600ms}body[data-aos-delay="600"] [data-aos],[data-aos][data-aos-delay="600"]{transition-delay:0s}body[data-aos-delay="600"] [data-aos].aos-animate,[data-aos][data-aos-delay="600"].aos-animate{transition-delay:600ms}body[data-aos-duration="650"] [data-aos],[data-aos][data-aos-duration="650"]{transition-duration:650ms}body[data-aos-delay="650"] [data-aos],[data-aos][data-aos-delay="650"]{transition-delay:0s}body[data-aos-delay="650"] [data-aos].aos-animate,[data-aos][data-aos-delay="650"].aos-animate{transition-delay:650ms}body[data-aos-duration="700"] [data-aos],[data-aos][data-aos-duration="700"]{transition-duration:700ms}body[data-aos-delay="700"] [data-aos],[data-aos][data-aos-delay="700"]{transition-delay:0s}body[data-aos-delay="700"] [data-aos].aos-animate,[data-aos][data-aos-delay="700"].aos-animate{transition-delay:700ms}body[data-aos-duration="750"] [data-aos],[data-aos][data-aos-duration="750"]{transition-duration:750ms}body[data-aos-delay="750"] [data-aos],[data-aos][data-aos-delay="750"]{transition-delay:0s}body[data-aos-delay="750"] [data-aos].aos-animate,[data-aos][data-aos-delay="750"].aos-animate{transition-delay:750ms}body[data-aos-duration="800"] [data-aos],[data-aos][data-aos-duration="800"]{transition-duration:800ms}body[data-aos-delay="800"] [data-aos],[data-aos][data-aos-delay="800"]{transition-delay:0s}body[data-aos-delay="800"] [data-aos].aos-animate,[data-aos][data-aos-delay="800"].aos-animate{transition-delay:800ms}body[data-aos-duration="850"] [data-aos],[data-aos][data-aos-duration="850"]{transition-duration:850ms}body[data-aos-delay="850"] [data-aos],[data-aos][data-aos-delay="850"]{transition-delay:0s}body[data-aos-delay="850"] [data-aos].aos-animate,[data-aos][data-aos-delay="850"].aos-animate{transition-delay:850ms}body[data-aos-duration="900"] [data-aos],[data-aos][data-aos-duration="900"]{transition-duration:900ms}body[data-aos-delay="900"] [data-aos],[data-aos][data-aos-delay="900"]{transition-delay:0s}body[data-aos-delay="900"] [data-aos].aos-animate,[data-aos][data-aos-delay="900"].aos-animate{transition-delay:900ms}body[data-aos-duration="950"] [data-aos],[data-aos][data-aos-duration="950"]{transition-duration:950ms}body[data-aos-delay="950"] [data-aos],[data-aos][data-aos-delay="950"]{transition-delay:0s}body[data-aos-delay="950"] [data-aos].aos-animate,[data-aos][data-aos-delay="950"].aos-animate{transition-delay:950ms}body[data-aos-duration="1000"] [data-aos],[data-aos][data-aos-duration="1000"]{transition-duration:1000ms}body[data-aos-delay="1000"] [data-aos],[data-aos][data-aos-delay="1000"]{transition-delay:0s}body[data-aos-delay="1000"] [data-aos].aos-animate,[data-aos][data-aos-delay="1000"].aos-animate{transition-delay:1000ms}body[data-aos-duration="1050"] [data-aos],[data-aos][data-aos-duration="1050"]{transition-duration:1050ms}body[data-aos-delay="1050"] [data-aos],[data-aos][data-aos-delay="1050"]{transition-delay:0s}body[data-aos-delay="1050"] [data-aos].aos-animate,[data-aos][data-aos-delay="1050"].aos-animate{transition-delay:1050ms}body[data-aos-duration="1100"] [data-aos],[data-aos][data-aos-duration="1100"]{transition-duration:1100ms}body[data-aos-delay="1100"] [data-aos],[data-aos][data-aos-delay="1100"]{transition-delay:0s}body[data-aos-delay="1100"] [data-aos].aos-animate,[data-aos][data-aos-delay="1100"].aos-animate{transition-delay:1100ms}body[data-aos-duration="1150"] [data-aos],[data-aos][data-aos-duration="1150"]{transition-duration:1150ms}body[data-aos-delay="1150"] [data-aos],[data-aos][data-aos-delay="1150"]{transition-delay:0s}body[data-aos-delay="1150"] [data-aos].aos-animate,[data-aos][data-aos-delay="1150"].aos-animate{transition-delay:1150ms}body[data-aos-duration="1200"] [data-aos],[data-aos][data-aos-duration="1200"]{transition-duration:1200ms}body[data-aos-delay="1200"] [data-aos],[data-aos][data-aos-delay="1200"]{transition-delay:0s}body[data-aos-delay="1200"] [data-aos].aos-animate,[data-aos][data-aos-delay="1200"].aos-animate{transition-delay:1200ms}body[data-aos-duration="1250"] [data-aos],[data-aos][data-aos-duration="1250"]{transition-duration:1250ms}body[data-aos-delay="1250"] [data-aos],[data-aos][data-aos-delay="1250"]{transition-delay:0s}body[data-aos-delay="1250"] [data-aos].aos-animate,[data-aos][data-aos-delay="1250"].aos-animate{transition-delay:1250ms}body[data-aos-duration="1300"] [data-aos],[data-aos][data-aos-duration="1300"]{transition-duration:1300ms}body[data-aos-delay="1300"] [data-aos],[data-aos][data-aos-delay="1300"]{transition-delay:0s}body[data-aos-delay="1300"] [data-aos].aos-animate,[data-aos][data-aos-delay="1300"].aos-animate{transition-delay:1300ms}body[data-aos-duration="1350"] [data-aos],[data-aos][data-aos-duration="1350"]{transition-duration:1350ms}body[data-aos-delay="1350"] [data-aos],[data-aos][data-aos-delay="1350"]{transition-delay:0s}body[data-aos-delay="1350"] [data-aos].aos-animate,[data-aos][data-aos-delay="1350"].aos-animate{transition-delay:1350ms}body[data-aos-duration="1400"] [data-aos],[data-aos][data-aos-duration="1400"]{transition-duration:1400ms}body[data-aos-delay="1400"] [data-aos],[data-aos][data-aos-delay="1400"]{transition-delay:0s}body[data-aos-delay="1400"] [data-aos].aos-animate,[data-aos][data-aos-delay="1400"].aos-animate{transition-delay:1400ms}body[data-aos-duration="1450"] [data-aos],[data-aos][data-aos-duration="1450"]{transition-duration:1450ms}body[data-aos-delay="1450"] [data-aos],[data-aos][data-aos-delay="1450"]{transition-delay:0s}body[data-aos-delay="1450"] [data-aos].aos-animate,[data-aos][data-aos-delay="1450"].aos-animate{transition-delay:1450ms}body[data-aos-duration="1500"] [data-aos],[data-aos][data-aos-duration="1500"]{transition-duration:1500ms}body[data-aos-delay="1500"] [data-aos],[data-aos][data-aos-delay="1500"]{transition-delay:0s}body[data-aos-delay="1500"] [data-aos].aos-animate,[data-aos][data-aos-delay="1500"].aos-animate{transition-delay:1500ms}body[data-aos-duration="1550"] [data-aos],[data-aos][data-aos-duration="1550"]{transition-duration:1550ms}body[data-aos-delay="1550"] [data-aos],[data-aos][data-aos-delay="1550"]{transition-delay:0s}body[data-aos-delay="1550"] [data-aos].aos-animate,[data-aos][data-aos-delay="1550"].aos-animate{transition-delay:1550ms}body[data-aos-duration="1600"] [data-aos],[data-aos][data-aos-duration="1600"]{transition-duration:1600ms}body[data-aos-delay="1600"] [data-aos],[data-aos][data-aos-delay="1600"]{transition-delay:0s}body[data-aos-delay="1600"] [data-aos].aos-animate,[data-aos][data-aos-delay="1600"].aos-animate{transition-delay:1600ms}body[data-aos-duration="1650"] [data-aos],[data-aos][data-aos-duration="1650"]{transition-duration:1650ms}body[data-aos-delay="1650"] [data-aos],[data-aos][data-aos-delay="1650"]{transition-delay:0s}body[data-aos-delay="1650"] [data-aos].aos-animate,[data-aos][data-aos-delay="1650"].aos-animate{transition-delay:1650ms}body[data-aos-duration="1700"] [data-aos],[data-aos][data-aos-duration="1700"]{transition-duration:1700ms}body[data-aos-delay="1700"] [data-aos],[data-aos][data-aos-delay="1700"]{transition-delay:0s}body[data-aos-delay="1700"] [data-aos].aos-animate,[data-aos][data-aos-delay="1700"].aos-animate{transition-delay:1700ms}body[data-aos-duration="1750"] [data-aos],[data-aos][data-aos-duration="1750"]{transition-duration:1750ms}body[data-aos-delay="1750"] [data-aos],[data-aos][data-aos-delay="1750"]{transition-delay:0s}body[data-aos-delay="1750"] [data-aos].aos-animate,[data-aos][data-aos-delay="1750"].aos-animate{transition-delay:1750ms}body[data-aos-duration="1800"] [data-aos],[data-aos][data-aos-duration="1800"]{transition-duration:1800ms}body[data-aos-delay="1800"] [data-aos],[data-aos][data-aos-delay="1800"]{transition-delay:0s}body[data-aos-delay="1800"] [data-aos].aos-animate,[data-aos][data-aos-delay="1800"].aos-animate{transition-delay:1800ms}body[data-aos-duration="1850"] [data-aos],[data-aos][data-aos-duration="1850"]{transition-duration:1850ms}body[data-aos-delay="1850"] [data-aos],[data-aos][data-aos-delay="1850"]{transition-delay:0s}body[data-aos-delay="1850"] [data-aos].aos-animate,[data-aos][data-aos-delay="1850"].aos-animate{transition-delay:1850ms}body[data-aos-duration="1900"] [data-aos],[data-aos][data-aos-duration="1900"]{transition-duration:1900ms}body[data-aos-delay="1900"] [data-aos],[data-aos][data-aos-delay="1900"]{transition-delay:0s}body[data-aos-delay="1900"] [data-aos].aos-animate,[data-aos][data-aos-delay="1900"].aos-animate{transition-delay:1900ms}body[data-aos-duration="1950"] [data-aos],[data-aos][data-aos-duration="1950"]{transition-duration:1950ms}body[data-aos-delay="1950"] [data-aos],[data-aos][data-aos-delay="1950"]{transition-delay:0s}body[data-aos-delay="1950"] [data-aos].aos-animate,[data-aos][data-aos-delay="1950"].aos-animate{transition-delay:1950ms}body[data-aos-duration="2000"] [data-aos],[data-aos][data-aos-duration="2000"]{transition-duration:2000ms}body[data-aos-delay="2000"] [data-aos],[data-aos][data-aos-delay="2000"]{transition-delay:0s}body[data-aos-delay="2000"] [data-aos].aos-animate,[data-aos][data-aos-delay="2000"].aos-animate{transition-delay:2000ms}body[data-aos-duration="2050"] [data-aos],[data-aos][data-aos-duration="2050"]{transition-duration:2050ms}body[data-aos-delay="2050"] [data-aos],[data-aos][data-aos-delay="2050"]{transition-delay:0s}body[data-aos-delay="2050"] [data-aos].aos-animate,[data-aos][data-aos-delay="2050"].aos-animate{transition-delay:2050ms}body[data-aos-duration="2100"] [data-aos],[data-aos][data-aos-duration="2100"]{transition-duration:2100ms}body[data-aos-delay="2100"] [data-aos],[data-aos][data-aos-delay="2100"]{transition-delay:0s}body[data-aos-delay="2100"] [data-aos].aos-animate,[data-aos][data-aos-delay="2100"].aos-animate{transition-delay:2100ms}body[data-aos-duration="2150"] [data-aos],[data-aos][data-aos-duration="2150"]{transition-duration:2150ms}body[data-aos-delay="2150"] [data-aos],[data-aos][data-aos-delay="2150"]{transition-delay:0s}body[data-aos-delay="2150"] [data-aos].aos-animate,[data-aos][data-aos-delay="2150"].aos-animate{transition-delay:2150ms}body[data-aos-duration="2200"] [data-aos],[data-aos][data-aos-duration="2200"]{transition-duration:2200ms}body[data-aos-delay="2200"] [data-aos],[data-aos][data-aos-delay="2200"]{transition-delay:0s}body[data-aos-delay="2200"] [data-aos].aos-animate,[data-aos][data-aos-delay="2200"].aos-animate{transition-delay:2200ms}body[data-aos-duration="2250"] [data-aos],[data-aos][data-aos-duration="2250"]{transition-duration:2250ms}body[data-aos-delay="2250"] [data-aos],[data-aos][data-aos-delay="2250"]{transition-delay:0s}body[data-aos-delay="2250"] [data-aos].aos-animate,[data-aos][data-aos-delay="2250"].aos-animate{transition-delay:2250ms}body[data-aos-duration="2300"] [data-aos],[data-aos][data-aos-duration="2300"]{transition-duration:2300ms}body[data-aos-delay="2300"] [data-aos],[data-aos][data-aos-delay="2300"]{transition-delay:0s}body[data-aos-delay="2300"] [data-aos].aos-animate,[data-aos][data-aos-delay="2300"].aos-animate{transition-delay:2300ms}body[data-aos-duration="2350"] [data-aos],[data-aos][data-aos-duration="2350"]{transition-duration:2350ms}body[data-aos-delay="2350"] [data-aos],[data-aos][data-aos-delay="2350"]{transition-delay:0s}body[data-aos-delay="2350"] [data-aos].aos-animate,[data-aos][data-aos-delay="2350"].aos-animate{transition-delay:2350ms}body[data-aos-duration="2400"] [data-aos],[data-aos][data-aos-duration="2400"]{transition-duration:2400ms}body[data-aos-delay="2400"] [data-aos],[data-aos][data-aos-delay="2400"]{transition-delay:0s}body[data-aos-delay="2400"] [data-aos].aos-animate,[data-aos][data-aos-delay="2400"].aos-animate{transition-delay:2400ms}body[data-aos-duration="2450"] [data-aos],[data-aos][data-aos-duration="2450"]{transition-duration:2450ms}body[data-aos-delay="2450"] [data-aos],[data-aos][data-aos-delay="2450"]{transition-delay:0s}body[data-aos-delay="2450"] [data-aos].aos-animate,[data-aos][data-aos-delay="2450"].aos-animate{transition-delay:2450ms}body[data-aos-duration="2500"] [data-aos],[data-aos][data-aos-duration="2500"]{transition-duration:2500ms}body[data-aos-delay="2500"] [data-aos],[data-aos][data-aos-delay="2500"]{transition-delay:0s}body[data-aos-delay="2500"] [data-aos].aos-animate,[data-aos][data-aos-delay="2500"].aos-animate{transition-delay:2500ms}body[data-aos-duration="2550"] [data-aos],[data-aos][data-aos-duration="2550"]{transition-duration:2550ms}body[data-aos-delay="2550"] [data-aos],[data-aos][data-aos-delay="2550"]{transition-delay:0s}body[data-aos-delay="2550"] [data-aos].aos-animate,[data-aos][data-aos-delay="2550"].aos-animate{transition-delay:2550ms}body[data-aos-duration="2600"] [data-aos],[data-aos][data-aos-duration="2600"]{transition-duration:2600ms}body[data-aos-delay="2600"] [data-aos],[data-aos][data-aos-delay="2600"]{transition-delay:0s}body[data-aos-delay="2600"] [data-aos].aos-animate,[data-aos][data-aos-delay="2600"].aos-animate{transition-delay:2600ms}body[data-aos-duration="2650"] [data-aos],[data-aos][data-aos-duration="2650"]{transition-duration:2650ms}body[data-aos-delay="2650"] [data-aos],[data-aos][data-aos-delay="2650"]{transition-delay:0s}body[data-aos-delay="2650"] [data-aos].aos-animate,[data-aos][data-aos-delay="2650"].aos-animate{transition-delay:2650ms}body[data-aos-duration="2700"] [data-aos],[data-aos][data-aos-duration="2700"]{transition-duration:2700ms}body[data-aos-delay="2700"] [data-aos],[data-aos][data-aos-delay="2700"]{transition-delay:0s}body[data-aos-delay="2700"] [data-aos].aos-animate,[data-aos][data-aos-delay="2700"].aos-animate{transition-delay:2700ms}body[data-aos-duration="2750"] [data-aos],[data-aos][data-aos-duration="2750"]{transition-duration:2750ms}body[data-aos-delay="2750"] [data-aos],[data-aos][data-aos-delay="2750"]{transition-delay:0s}body[data-aos-delay="2750"] [data-aos].aos-animate,[data-aos][data-aos-delay="2750"].aos-animate{transition-delay:2750ms}body[data-aos-duration="2800"] [data-aos],[data-aos][data-aos-duration="2800"]{transition-duration:2800ms}body[data-aos-delay="2800"] [data-aos],[data-aos][data-aos-delay="2800"]{transition-delay:0s}body[data-aos-delay="2800"] [data-aos].aos-animate,[data-aos][data-aos-delay="2800"].aos-animate{transition-delay:2800ms}body[data-aos-duration="2850"] [data-aos],[data-aos][data-aos-duration="2850"]{transition-duration:2850ms}body[data-aos-delay="2850"] [data-aos],[data-aos][data-aos-delay="2850"]{transition-delay:0s}body[data-aos-delay="2850"] [data-aos].aos-animate,[data-aos][data-aos-delay="2850"].aos-animate{transition-delay:2850ms}body[data-aos-duration="2900"] [data-aos],[data-aos][data-aos-duration="2900"]{transition-duration:2900ms}body[data-aos-delay="2900"] [data-aos],[data-aos][data-aos-delay="2900"]{transition-delay:0s}body[data-aos-delay="2900"] [data-aos].aos-animate,[data-aos][data-aos-delay="2900"].aos-animate{transition-delay:2900ms}body[data-aos-duration="2950"] [data-aos],[data-aos][data-aos-duration="2950"]{transition-duration:2950ms}body[data-aos-delay="2950"] [data-aos],[data-aos][data-aos-delay="2950"]{transition-delay:0s}body[data-aos-delay="2950"] [data-aos].aos-animate,[data-aos][data-aos-delay="2950"].aos-animate{transition-delay:2950ms}body[data-aos-duration="3000"] [data-aos],[data-aos][data-aos-duration="3000"]{transition-duration:3000ms}body[data-aos-delay="3000"] [data-aos],[data-aos][data-aos-delay="3000"]{transition-delay:0s}body[data-aos-delay="3000"] [data-aos].aos-animate,[data-aos][data-aos-delay="3000"].aos-animate{transition-delay:3000ms}[data-aos]{pointer-events:none}[data-aos].aos-animate{pointer-events:auto}body[data-aos-easing=linear] [data-aos],[data-aos][data-aos-easing=linear]{transition-timing-function:cubic-bezier(0.25, 0.25, 0.75, 0.75)}body[data-aos-easing=ease] [data-aos],[data-aos][data-aos-easing=ease]{transition-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}body[data-aos-easing=ease-in] [data-aos],[data-aos][data-aos-easing=ease-in]{transition-timing-function:cubic-bezier(0.42, 0, 1, 1)}body[data-aos-easing=ease-out] [data-aos],[data-aos][data-aos-easing=ease-out]{transition-timing-function:cubic-bezier(0, 0, 0.58, 1)}body[data-aos-easing=ease-in-out] [data-aos],[data-aos][data-aos-easing=ease-in-out]{transition-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}body[data-aos-easing=ease-in-back] [data-aos],[data-aos][data-aos-easing=ease-in-back]{transition-timing-function:cubic-bezier(0.6, -0.28, 0.735, 0.045)}body[data-aos-easing=ease-out-back] [data-aos],[data-aos][data-aos-easing=ease-out-back]{transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.275)}body[data-aos-easing=ease-in-out-back] [data-aos],[data-aos][data-aos-easing=ease-in-out-back]{transition-timing-function:cubic-bezier(0.68, -0.55, 0.265, 1.55)}body[data-aos-easing=ease-in-sine] [data-aos],[data-aos][data-aos-easing=ease-in-sine]{transition-timing-function:cubic-bezier(0.47, 0, 0.745, 0.715)}body[data-aos-easing=ease-out-sine] [data-aos],[data-aos][data-aos-easing=ease-out-sine]{transition-timing-function:cubic-bezier(0.39, 0.575, 0.565, 1)}body[data-aos-easing=ease-in-out-sine] [data-aos],[data-aos][data-aos-easing=ease-in-out-sine]{transition-timing-function:cubic-bezier(0.445, 0.05, 0.55, 0.95)}body[data-aos-easing=ease-in-quad] [data-aos],[data-aos][data-aos-easing=ease-in-quad]{transition-timing-function:cubic-bezier(0.55, 0.085, 0.68, 0.53)}body[data-aos-easing=ease-out-quad] [data-aos],[data-aos][data-aos-easing=ease-out-quad]{transition-timing-function:cubic-bezier(0.25, 0.46, 0.45, 0.94)}body[data-aos-easing=ease-in-out-quad] [data-aos],[data-aos][data-aos-easing=ease-in-out-quad]{transition-timing-function:cubic-bezier(0.455, 0.03, 0.515, 0.955)}body[data-aos-easing=ease-in-cubic] [data-aos],[data-aos][data-aos-easing=ease-in-cubic]{transition-timing-function:cubic-bezier(0.55, 0.085, 0.68, 0.53)}body[data-aos-easing=ease-out-cubic] [data-aos],[data-aos][data-aos-easing=ease-out-cubic]{transition-timing-function:cubic-bezier(0.25, 0.46, 0.45, 0.94)}body[data-aos-easing=ease-in-out-cubic] [data-aos],[data-aos][data-aos-easing=ease-in-out-cubic]{transition-timing-function:cubic-bezier(0.455, 0.03, 0.515, 0.955)}body[data-aos-easing=ease-in-quart] [data-aos],[data-aos][data-aos-easing=ease-in-quart]{transition-timing-function:cubic-bezier(0.55, 0.085, 0.68, 0.53)}body[data-aos-easing=ease-out-quart] [data-aos],[data-aos][data-aos-easing=ease-out-quart]{transition-timing-function:cubic-bezier(0.25, 0.46, 0.45, 0.94)}body[data-aos-easing=ease-in-out-quart] [data-aos],[data-aos][data-aos-easing=ease-in-out-quart]{transition-timing-function:cubic-bezier(0.455, 0.03, 0.515, 0.955)}@media screen{html:not(.no-js) [data-aos^=fade]{opacity:0;transition-property:opacity,transform}html:not(.no-js) [data-aos^=fade].aos-animate{opacity:1;transform:none}html:not(.no-js) [data-aos=fade-up]{transform:translate3d(0, 100px, 0)}html:not(.no-js) [data-aos=fade-down]{transform:translate3d(0, -100px, 0)}html:not(.no-js) [data-aos=fade-right]{transform:translate3d(-100px, 0, 0)}html:not(.no-js) [data-aos=fade-left]{transform:translate3d(100px, 0, 0)}html:not(.no-js) [data-aos=fade-up-right]{transform:translate3d(-100px, 100px, 0)}html:not(.no-js) [data-aos=fade-up-left]{transform:translate3d(100px, 100px, 0)}html:not(.no-js) [data-aos=fade-down-right]{transform:translate3d(-100px, -100px, 0)}html:not(.no-js) [data-aos=fade-down-left]{transform:translate3d(100px, -100px, 0)}html:not(.no-js) [data-aos^=zoom]{opacity:0;transition-property:opacity,transform}html:not(.no-js) [data-aos^=zoom].aos-animate{opacity:1;transform:translate3d(0, 0, 0) scale(1)}html:not(.no-js) [data-aos=zoom-in]{transform:scale(0.6)}html:not(.no-js) [data-aos=zoom-in-up]{transform:translate3d(0, 100px, 0) scale(0.6)}html:not(.no-js) [data-aos=zoom-in-down]{transform:translate3d(0, -100px, 0) scale(0.6)}html:not(.no-js) [data-aos=zoom-in-right]{transform:translate3d(-100px, 0, 0) scale(0.6)}html:not(.no-js) [data-aos=zoom-in-left]{transform:translate3d(100px, 0, 0) scale(0.6)}html:not(.no-js) [data-aos=zoom-out]{transform:scale(1.2)}html:not(.no-js) [data-aos=zoom-out-up]{transform:translate3d(0, 100px, 0) scale(1.2)}html:not(.no-js) [data-aos=zoom-out-down]{transform:translate3d(0, -100px, 0) scale(1.2)}html:not(.no-js) [data-aos=zoom-out-right]{transform:translate3d(-100px, 0, 0) scale(1.2)}html:not(.no-js) [data-aos=zoom-out-left]{transform:translate3d(100px, 0, 0) scale(1.2)}html:not(.no-js) [data-aos^=slide]{transition-property:transform;visibility:hidden}html:not(.no-js) [data-aos^=slide].aos-animate{visibility:visible;transform:translate3d(0, 0, 0)}html:not(.no-js) [data-aos=slide-up]{transform:translate3d(0, 100%, 0)}html:not(.no-js) [data-aos=slide-down]{transform:translate3d(0, -100%, 0)}html:not(.no-js) [data-aos=slide-right]{transform:translate3d(-100%, 0, 0)}html:not(.no-js) [data-aos=slide-left]{transform:translate3d(100%, 0, 0)}html:not(.no-js) [data-aos^=flip]{backface-visibility:hidden;transition-property:transform}html:not(.no-js) [data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}html:not(.no-js) [data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}html:not(.no-js) [data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}html:not(.no-js) [data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}html:not(.no-js) [data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}html:not(.no-js) [data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}html:not(.no-js) [data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}html:not(.no-js) [data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)}}
@@ -0,0 +1,346 @@
1
+ import { throttle, debounce } from 'es-toolkit';
2
+
3
+ const phoneRe = /iphone|ipod|android.*mobile|windows phone|blackberry|opera mini|mobile|phone/i;
4
+ const tabletRe = /ipad|android(?!.*mobile)|tablet|kindle/i;
5
+ function ua() {
6
+ return navigator.userAgent;
7
+ }
8
+ class Detector {
9
+ userAgent = ua();
10
+ phone() {
11
+ return phoneRe.test(this.userAgent);
12
+ }
13
+ mobile() {
14
+ return phoneRe.test(this.userAgent) || tabletRe.test(this.userAgent);
15
+ }
16
+ tablet() {
17
+ return tabletRe.test(this.userAgent);
18
+ }
19
+ }
20
+ var detect = new Detector();
21
+
22
+ const resolveContainer = (container) => {
23
+ if (container instanceof Element || container === window)
24
+ return container;
25
+ return typeof container === "string"
26
+ ? document.querySelector(container)
27
+ : null;
28
+ };
29
+ const getElementHeight = (container) => {
30
+ return container === window
31
+ ? container.innerHeight
32
+ : container.clientHeight;
33
+ };
34
+ const getElementOffset = (container) => {
35
+ return container === window
36
+ ? container.pageYOffset
37
+ : container.scrollTop;
38
+ };
39
+
40
+ const updateClasses = (node, classes, action = "add") => classes?.forEach((className) => node.classList[action](className));
41
+ const fireEvent = (eventName, data) => document.dispatchEvent(new CustomEvent(eventName, {
42
+ detail: data,
43
+ }));
44
+ const toggleClasses = (el, isVisible) => {
45
+ if (el.animated === isVisible)
46
+ return;
47
+ const { options, node } = el;
48
+ const eventName = isVisible ? "aos:in" : "aos:out";
49
+ const action = isVisible ? "add" : "remove";
50
+ updateClasses(node, options.animatedClassNames, action);
51
+ fireEvent(eventName, node);
52
+ if (options.id) {
53
+ fireEvent(`${eventName}:${options.id}`, node);
54
+ }
55
+ el.animated = isVisible;
56
+ };
57
+ const applyClasses = (el, top) => {
58
+ const { options, position } = el;
59
+ if (options.mirror && top >= position.out && !options.once) {
60
+ toggleClasses(el, false);
61
+ }
62
+ else if (top >= position.in) {
63
+ toggleClasses(el, true);
64
+ }
65
+ else if (el.animated && !options.once) {
66
+ toggleClasses(el, false);
67
+ }
68
+ };
69
+ var handleScroll = (elements, container) => {
70
+ elements.forEach((el) => applyClasses(el, getElementOffset(container)));
71
+ };
72
+
73
+ var getInlineOption = (el, key, fallback) => {
74
+ const attr = el.getAttribute(`data-aos-${key}`);
75
+ if (attr === "true")
76
+ return true;
77
+ if (attr === "false")
78
+ return false;
79
+ return attr || fallback;
80
+ };
81
+
82
+ const getOffset = function (el, container) {
83
+ let left = 0;
84
+ let top = 0;
85
+ while (el) {
86
+ left += el.offsetLeft - (el.tagName != "BODY" ? el.scrollLeft : 0);
87
+ top += el.offsetTop - (el.tagName != "BODY" ? el.scrollTop : 0);
88
+ el =
89
+ el.offsetParent === container ? null : el.offsetParent;
90
+ }
91
+ return {
92
+ top,
93
+ left,
94
+ };
95
+ };
96
+ const getPositionIn = (el, defaultOffset, defaultAnchorPlacement, container) => {
97
+ const containerHeight = getElementHeight(container);
98
+ const anchor = getInlineOption(el, "anchor");
99
+ const inlineAnchorPlacement = getInlineOption(el, "anchor-placement");
100
+ const additionalOffset = Number(getInlineOption(el, "offset", inlineAnchorPlacement ? 0 : defaultOffset));
101
+ const anchorPlacement = inlineAnchorPlacement || defaultAnchorPlacement;
102
+ let finalEl = el;
103
+ if (anchor) {
104
+ const queryResult = (container === window ? document : container).querySelector(anchor);
105
+ if (queryResult)
106
+ finalEl = queryResult;
107
+ }
108
+ let triggerPoint = getOffset(finalEl, container).top - containerHeight;
109
+ switch (anchorPlacement) {
110
+ case "top-bottom":
111
+ // Default offset
112
+ break;
113
+ case "center-bottom":
114
+ triggerPoint += finalEl.offsetHeight / 2;
115
+ break;
116
+ case "bottom-bottom":
117
+ triggerPoint += finalEl.offsetHeight;
118
+ break;
119
+ case "top-center":
120
+ triggerPoint += containerHeight / 2;
121
+ break;
122
+ case "center-center":
123
+ triggerPoint += containerHeight / 2 + finalEl.offsetHeight / 2;
124
+ break;
125
+ case "bottom-center":
126
+ triggerPoint += containerHeight / 2 + finalEl.offsetHeight;
127
+ break;
128
+ case "top-top":
129
+ triggerPoint += containerHeight;
130
+ break;
131
+ case "bottom-top":
132
+ triggerPoint += containerHeight + finalEl.offsetHeight;
133
+ break;
134
+ case "center-top":
135
+ triggerPoint += containerHeight + finalEl.offsetHeight / 2;
136
+ break;
137
+ }
138
+ return triggerPoint + additionalOffset;
139
+ };
140
+ const getPositionOut = (el, defaultOffset, container) => {
141
+ const anchor = getInlineOption(el, "anchor");
142
+ const additionalOffset = getInlineOption(el, "offset", defaultOffset);
143
+ let finalEl = el;
144
+ if (anchor) {
145
+ const queryResult = (container === window ? document : container).querySelector(anchor);
146
+ if (queryResult)
147
+ finalEl = queryResult;
148
+ }
149
+ const elementOffsetTop = getOffset(finalEl, container).top;
150
+ return elementOffsetTop + finalEl.offsetHeight - additionalOffset;
151
+ };
152
+
153
+ function prepare(elements, options, container) {
154
+ elements.forEach((element) => {
155
+ const { node } = element;
156
+ const mirror = getInlineOption(node, "mirror", options.mirror);
157
+ const once = getInlineOption(node, "once", options.once);
158
+ const id = getInlineOption(node, "id");
159
+ const customClassNames = options.useClassNames
160
+ ? node.getAttribute("data-aos")?.split(" ") || []
161
+ : [];
162
+ const animatedClassNames = [
163
+ options.animatedClassName,
164
+ ...customClassNames,
165
+ ].filter((className) => typeof className === "string");
166
+ if (options.initClassName) {
167
+ node.classList.add(options.initClassName);
168
+ }
169
+ element.position = {
170
+ in: getPositionIn(node, options.offset, options.anchorPlacement, container),
171
+ out: mirror && getPositionOut(node, options.offset, container),
172
+ };
173
+ element.options = {
174
+ once,
175
+ mirror,
176
+ animatedClassNames,
177
+ id,
178
+ };
179
+ });
180
+ return elements;
181
+ }
182
+
183
+ const containsAOSNode = (nodes) => {
184
+ return [...nodes].some((node) => {
185
+ return (node.dataset?.aos || (node.children && containsAOSNode(node.children)));
186
+ });
187
+ };
188
+ const observe = (fn) => {
189
+ const observer = new MutationObserver((mutations) => {
190
+ if (mutations?.some(({ addedNodes, removedNodes }) => containsAOSNode([...addedNodes, ...removedNodes]))) {
191
+ fn();
192
+ }
193
+ });
194
+ observer.observe(document.documentElement, {
195
+ childList: true,
196
+ subtree: true,
197
+ });
198
+ return observer;
199
+ };
200
+
201
+ const defaultOptions = {
202
+ offset: 120,
203
+ delay: 0,
204
+ easing: "ease",
205
+ duration: 400,
206
+ disable: false,
207
+ once: false,
208
+ mirror: false,
209
+ anchorPlacement: "top-bottom",
210
+ startEvent: "DOMContentLoaded",
211
+ animatedClassName: "aos-animate",
212
+ initClassName: "aos-init",
213
+ useClassNames: false,
214
+ disableMutationObserver: false,
215
+ throttleDelay: 99,
216
+ debounceDelay: 50,
217
+ container: window,
218
+ };
219
+ class Aos {
220
+ elements = [];
221
+ initialized = false;
222
+ options = defaultOptions;
223
+ container = null;
224
+ observer = null;
225
+ scrollHandler = null;
226
+ resizeHandler = null;
227
+ startHandler = null;
228
+ static getElements(container) {
229
+ return [
230
+ ...(container === window ? document : container).querySelectorAll("[data-aos]"),
231
+ ].map((node) => ({
232
+ node,
233
+ }));
234
+ }
235
+ static isDisabled(optionDisable) {
236
+ return (optionDisable === true ||
237
+ (optionDisable === "mobile" && detect.mobile()) ||
238
+ (optionDisable === "phone" && detect.phone()) ||
239
+ (optionDisable === "tablet" && detect.tablet()) ||
240
+ (typeof optionDisable === "function" && optionDisable() === true));
241
+ }
242
+ initializeScroll() {
243
+ const { container } = this;
244
+ this.elements = prepare(this.elements, this.options, container);
245
+ handleScroll(this.elements, this.container);
246
+ this.scrollHandler = throttle(() => {
247
+ handleScroll(this.elements, container);
248
+ }, this.options.throttleDelay);
249
+ container.addEventListener("scroll", this.scrollHandler, {
250
+ passive: true,
251
+ });
252
+ return this.elements;
253
+ }
254
+ init(options = {}) {
255
+ this.destroy();
256
+ this.options = { ...defaultOptions, ...options };
257
+ const container = resolveContainer(this.options.container);
258
+ if (!container) {
259
+ throw `AOS - cannot find the container element. The container option must be an HTMLElement or a CSS Selector.`;
260
+ }
261
+ this.elements = Aos.getElements(container);
262
+ this.container = container;
263
+ if (Aos.isDisabled(this.options.disable)) {
264
+ return this.disable();
265
+ }
266
+ if (!this.options.disableMutationObserver) {
267
+ this.observer = observe(this.refreshHard.bind(this));
268
+ }
269
+ document.body.setAttribute("data-aos-easing", this.options.easing);
270
+ document.body.setAttribute("data-aos-duration", this.options.duration);
271
+ document.body.setAttribute("data-aos-delay", this.options.delay);
272
+ this.startHandler = {
273
+ handler: this.refresh.bind(this),
274
+ type: "document",
275
+ };
276
+ if (!["DOMContentLoaded", "load"].includes(this.options.startEvent)) {
277
+ document.addEventListener(this.options.startEvent, this.startHandler.handler);
278
+ }
279
+ else {
280
+ window.addEventListener("load", this.startHandler.handler);
281
+ this.startHandler.type = "window";
282
+ }
283
+ if (this.options.startEvent === "DOMContentLoaded" &&
284
+ ["complete", "interactive"].indexOf(document.readyState) > -1) {
285
+ this.refresh(true);
286
+ }
287
+ this.resizeHandler = debounce(this.refresh.bind(this), this.options.debounceDelay);
288
+ window.addEventListener("resize", this.resizeHandler);
289
+ window.addEventListener("orientationchange", this.resizeHandler);
290
+ }
291
+ refresh(initialize = false) {
292
+ if (initialize) {
293
+ this.initialized = true;
294
+ }
295
+ if (this.initialized) {
296
+ this.initializeScroll();
297
+ }
298
+ }
299
+ refreshHard() {
300
+ this.elements = Aos.getElements(this.container);
301
+ if (Aos.isDisabled(this.options.disable)) {
302
+ return this.disable();
303
+ }
304
+ this.refresh();
305
+ }
306
+ disable() {
307
+ this.elements.forEach(({ node }) => {
308
+ node.removeAttribute("data-aos");
309
+ node.removeAttribute("data-aos-easing");
310
+ node.removeAttribute("data-aos-duration");
311
+ node.removeAttribute("data-aos-delay");
312
+ if (this.options.initClassName) {
313
+ node.classList.remove(this.options.initClassName);
314
+ }
315
+ if (this.options.animatedClassName) {
316
+ node.classList.remove(this.options.animatedClassName);
317
+ }
318
+ });
319
+ }
320
+ destroy() {
321
+ this.observer?.disconnect();
322
+ this.observer = null;
323
+ if (this.startHandler) {
324
+ const { handler, type } = this.startHandler;
325
+ if (type === "document") {
326
+ document.removeEventListener(this.options.startEvent, handler);
327
+ }
328
+ else {
329
+ window.removeEventListener("load", handler);
330
+ }
331
+ this.startHandler = null;
332
+ }
333
+ if (this.scrollHandler) {
334
+ window.removeEventListener("scroll", this.scrollHandler);
335
+ this.scrollHandler = null;
336
+ }
337
+ if (this.resizeHandler) {
338
+ window.removeEventListener("resize", this.resizeHandler);
339
+ window.removeEventListener("orientationchange", this.resizeHandler);
340
+ this.resizeHandler = null;
341
+ }
342
+ }
343
+ }
344
+ var index = new Aos();
345
+
346
+ export { index as default };
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).AOS=t()}(this,(function(){"use strict";function e(e,t,{signal:n,edges:s}={}){let i,o=null;const a=null!=s&&s.includes("leading"),r=null==s||s.includes("trailing"),l=()=>{null!==o&&(e.apply(i,o),i=void 0,o=null)};let d=null;const c=()=>{null!=d&&clearTimeout(d),d=setTimeout((()=>{d=null,r&&l(),u()}),t)},h=()=>{null!==d&&(clearTimeout(d),d=null)},u=()=>{h(),i=void 0,o=null},m=function(...e){if(n?.aborted)return;i=this,o=e;const t=null==d;c(),a&&t&&l()};return m.schedule=c,m.cancel=u,m.flush=()=>{h(),l()},n?.addEventListener("abort",u,{once:!0}),m}const t=/iphone|ipod|android.*mobile|windows phone|blackberry|opera mini|mobile|phone/i,n=/ipad|android(?!.*mobile)|tablet|kindle/i;var s=new class{userAgent=function(){return navigator.userAgent}();phone(){return t.test(this.userAgent)}mobile(){return t.test(this.userAgent)||n.test(this.userAgent)}tablet(){return n.test(this.userAgent)}};const i=(e,t)=>document.dispatchEvent(new CustomEvent(e,{detail:t})),o=(e,t)=>{if(e.animated===t)return;const{options:n,node:s}=e,o=t?"aos:in":"aos:out",a=t?"add":"remove";((e,t,n="add")=>{t?.forEach((t=>e.classList[n](t)))})(s,n.animatedClassNames,a),i(o,s),n.id&&i(`${o}:${n.id}`,s),e.animated=t};var a=(e,t)=>{e.forEach((e=>((e,t)=>{const{options:n,position:s}=e;n.mirror&&t>=s.out&&!n.once?o(e,!1):t>=s.in?o(e,!0):e.animated&&!n.once&&o(e,!1)})(e,(e=>e===window?e.pageYOffset:e.scrollTop)(t))))},r=(e,t,n)=>{const s=e.getAttribute(`data-aos-${t}`);return"true"===s||"false"!==s&&(s||n)};const l=function(e,t){let n=0,s=0;for(;e;)n+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),s+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent===t?null:e.offsetParent;return{top:s,left:n}},d=(e,t,n,s)=>{const i=(e=>e===window?e.innerHeight:e.clientHeight)(s),o=r(e,"anchor"),a=r(e,"anchor-placement"),d=Number(r(e,"offset",a?0:t)),c=a||n;let h=e;if(o){const e=(s===window?document:s).querySelector(o);e&&(h=e)}let u=l(h,s).top-i;switch(c){case"top-bottom":break;case"center-bottom":u+=h.offsetHeight/2;break;case"bottom-bottom":u+=h.offsetHeight;break;case"top-center":u+=i/2;break;case"center-center":u+=i/2+h.offsetHeight/2;break;case"bottom-center":u+=i/2+h.offsetHeight;break;case"top-top":u+=i;break;case"bottom-top":u+=i+h.offsetHeight;break;case"center-top":u+=i+h.offsetHeight/2}return u+d},c=(e,t,n)=>{const s=r(e,"anchor"),i=r(e,"offset",t);let o=e;if(s){const e=(n===window?document:n).querySelector(s);e&&(o=e)}return l(o,n).top+o.offsetHeight-i};const h=e=>[...e].some((e=>e.dataset?.aos||e.children&&h(e.children))),u={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,mirror:!1,anchorPlacement:"top-bottom",startEvent:"DOMContentLoaded",animatedClassName:"aos-animate",initClassName:"aos-init",useClassNames:!1,disableMutationObserver:!1,throttleDelay:99,debounceDelay:50,container:window};class m{elements=[];initialized=!1;options=u;container=null;observer=null;scrollHandler=null;resizeHandler=null;startHandler=null;static getElements(e){return[...(e===window?document:e).querySelectorAll("[data-aos]")].map((e=>({node:e})))}static isDisabled(e){return!0===e||"mobile"===e&&s.mobile()||"phone"===e&&s.phone()||"tablet"===e&&s.tablet()||"function"==typeof e&&!0===e()}initializeScroll(){const{container:t}=this;return this.elements=function(e,t,n){return e.forEach((e=>{const{node:s}=e,i=r(s,"mirror",t.mirror),o=r(s,"once",t.once),a=r(s,"id"),l=t.useClassNames&&s.getAttribute("data-aos")?.split(" ")||[],h=[t.animatedClassName,...l].filter((e=>"string"==typeof e));t.initClassName&&s.classList.add(t.initClassName),e.position={in:d(s,t.offset,t.anchorPlacement,n),out:i&&c(s,t.offset,n)},e.options={once:o,mirror:i,animatedClassNames:h,id:a}})),e}(this.elements,this.options,t),a(this.elements,this.container),this.scrollHandler=function(t,n,{signal:s,edges:i=["leading","trailing"]}={}){let o=null;const a=e(t,n,{signal:s,edges:i}),r=function(...e){null==o?o=Date.now():Date.now()-o>=n&&(o=Date.now(),a.cancel(),a(...e)),a(...e)};return r.cancel=a.cancel,r.flush=a.flush,r}((()=>{a(this.elements,t)}),this.options.throttleDelay),t.addEventListener("scroll",this.scrollHandler,{passive:!0}),this.elements}init(t={}){this.destroy(),this.options={...u,...t};const n=(e=>e instanceof Element||e===window?e:"string"==typeof e?document.querySelector(e):null)(this.options.container);if(!n)throw"AOS - cannot find the container element. The container option must be an HTMLElement or a CSS Selector.";if(this.elements=m.getElements(n),this.container=n,m.isDisabled(this.options.disable))return this.disable();this.options.disableMutationObserver||(this.observer=(e=>{const t=new MutationObserver((t=>{t?.some((({addedNodes:e,removedNodes:t})=>h([...e,...t])))&&e()}));return t.observe(document.documentElement,{childList:!0,subtree:!0}),t})(this.refreshHard.bind(this))),document.body.setAttribute("data-aos-easing",this.options.easing),document.body.setAttribute("data-aos-duration",this.options.duration),document.body.setAttribute("data-aos-delay",this.options.delay),this.startHandler={handler:this.refresh.bind(this),type:"document"},["DOMContentLoaded","load"].includes(this.options.startEvent)?(window.addEventListener("load",this.startHandler.handler),this.startHandler.type="window"):document.addEventListener(this.options.startEvent,this.startHandler.handler),"DOMContentLoaded"===this.options.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1&&this.refresh(!0),this.resizeHandler=e(this.refresh.bind(this),this.options.debounceDelay),window.addEventListener("resize",this.resizeHandler),window.addEventListener("orientationchange",this.resizeHandler)}refresh(e=!1){e&&(this.initialized=!0),this.initialized&&this.initializeScroll()}refreshHard(){if(this.elements=m.getElements(this.container),m.isDisabled(this.options.disable))return this.disable();this.refresh()}disable(){this.elements.forEach((({node:e})=>{e.removeAttribute("data-aos"),e.removeAttribute("data-aos-easing"),e.removeAttribute("data-aos-duration"),e.removeAttribute("data-aos-delay"),this.options.initClassName&&e.classList.remove(this.options.initClassName),this.options.animatedClassName&&e.classList.remove(this.options.animatedClassName)}))}destroy(){if(this.observer?.disconnect(),this.observer=null,this.startHandler){const{handler:e,type:t}=this.startHandler;"document"===t?document.removeEventListener(this.options.startEvent,e):window.removeEventListener("load",e),this.startHandler=null}this.scrollHandler&&(window.removeEventListener("scroll",this.scrollHandler),this.scrollHandler=null),this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),window.removeEventListener("orientationchange",this.resizeHandler),this.resizeHandler=null)}}return new m}));
@@ -0,0 +1,3 @@
1
+ export declare const resolveContainer: (container: Window | Element | string) => Window | Element;
2
+ export declare const getElementHeight: (container: Window | Element) => number;
3
+ export declare const getElementOffset: (container: Window | Element) => number;
@@ -0,0 +1,8 @@
1
+ declare class Detector {
2
+ userAgent: string;
3
+ phone(): boolean;
4
+ mobile(): boolean;
5
+ tablet(): boolean;
6
+ }
7
+ declare const _default: Detector;
8
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: (el: Element, key: string, fallback?: any) => any;
2
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import type { ElementNode } from ".";
2
+ declare const _default: (elements: ElementNode[], container: Window | Element) => void;
3
+ export default _default;
@@ -0,0 +1,55 @@
1
+ export interface Options {
2
+ offset: number;
3
+ delay: number;
4
+ easing: string;
5
+ duration: number;
6
+ disable: boolean | "mobile" | "phone" | "tablet" | (() => boolean);
7
+ once: boolean;
8
+ mirror: boolean;
9
+ anchorPlacement: string;
10
+ startEvent: string;
11
+ animatedClassName: string;
12
+ initClassName: string;
13
+ useClassNames: boolean;
14
+ disableMutationObserver: boolean;
15
+ throttleDelay: number;
16
+ debounceDelay: number;
17
+ container: Window | Element | string;
18
+ }
19
+ export interface ElementNode {
20
+ node: HTMLElement;
21
+ position?: {
22
+ in: number;
23
+ out?: number;
24
+ };
25
+ options?: {
26
+ once: boolean;
27
+ mirror: boolean;
28
+ animatedClassNames: string[];
29
+ id: string;
30
+ };
31
+ animated?: boolean;
32
+ }
33
+ declare class Aos {
34
+ elements: ElementNode[];
35
+ initialized: boolean;
36
+ options: Options;
37
+ container: Window | Element | null;
38
+ observer: MutationObserver | null;
39
+ scrollHandler: (...args: any[]) => void | null;
40
+ resizeHandler: (...args: any[]) => void | null;
41
+ startHandler: {
42
+ handler: (...args: any[]) => void;
43
+ type: "document" | "window";
44
+ } | null;
45
+ static getElements(container: Window | Element): ElementNode[];
46
+ static isDisabled(optionDisable: boolean | "mobile" | "phone" | "tablet" | (() => boolean)): boolean;
47
+ initializeScroll(): ElementNode[];
48
+ init(options?: Partial<Options>): void;
49
+ refresh(initialize?: boolean): void;
50
+ refreshHard(): void;
51
+ disable(): void;
52
+ destroy(): void;
53
+ }
54
+ declare const _default: Aos;
55
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const observe: (fn: () => void) => MutationObserver;
2
+ export default observe;
@@ -0,0 +1,2 @@
1
+ export declare const getPositionIn: (el: HTMLElement, defaultOffset: number, defaultAnchorPlacement: string, container: Window | Element) => number;
2
+ export declare const getPositionOut: (el: HTMLElement, defaultOffset: number, container: Window | Element) => number;
@@ -0,0 +1,2 @@
1
+ import type { Options, ElementNode } from ".";
2
+ export default function prepare(elements: ElementNode[], options: Options, container: Window | Element): ElementNode[];
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@reimujs/aos",
3
+ "version": "0.0.1",
4
+ "main": "dist/aos.cjs.js",
5
+ "module": "dist/aos.esm.js",
6
+ "browser": "dist/aos.umd.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "rollup -c",
10
+ "build:umd": "rollup -c umd.config.mjs"
11
+ },
12
+ "author": "D-Sketon",
13
+ "license": "MIT",
14
+ "description": "Animate on scroll library",
15
+ "devDependencies": {
16
+ "@rollup/plugin-node-resolve": "^15.3.0",
17
+ "@rollup/plugin-terser": "^0.4.4",
18
+ "@rollup/plugin-typescript": "^12.1.0",
19
+ "rollup": "^4.24.0",
20
+ "rollup-plugin-scss": "^3.0.0",
21
+ "sass": "^1.79.4",
22
+ "tslib": "^2.7.0",
23
+ "typescript": "^5.6.2"
24
+ },
25
+ "dependencies": {
26
+ "es-toolkit": "^1.23.0"
27
+ },
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/D-Sketon/aos.js.git"
31
+ },
32
+ "bugs": {
33
+ "url": "https://github.com/D-Sketon/aos.js/issues"
34
+ },
35
+ "homepage": "https://github.com/D-Sketon/aos.js#readme"
36
+ }