@rethink-js/rt-smooth-scroll 1.2.1 → 1.3.0
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/README.md +198 -25
- package/dist/index.js +219 -10
- package/dist/index.js.map +3 -3
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|

|
|
5
5
|
[](https://www.npmjs.com/package/@rethink-js/rt-smooth-scroll)
|
|
6
6
|
[](https://www.jsdelivr.com/package/npm/@rethink-js/rt-smooth-scroll)
|
|
7
|
-
[](https://bundlephobia.com/package/@rethink-js/rt-smooth-scroll)
|
|
8
7
|
[](https://opensource.org/licenses/MIT)
|
|
9
8
|
|
|
10
9
|
`rt-smooth-scroll` is a lightweight JavaScript library that seamlessly integrates the **Lenis smooth scroll engine** into your sites with:
|
|
@@ -15,6 +14,7 @@
|
|
|
15
14
|
- A clean global API under `window.rtSmoothScroll`
|
|
16
15
|
- **Smart Scroll-To actions** with indexed selectors and dynamic offsets
|
|
17
16
|
- **Automatic Anchor Link Conversion** (hijack native links for smooth scrolling)
|
|
17
|
+
- **Scroll-To Completion Hooks** (run actions/functions after a scroll-to completes)
|
|
18
18
|
- Per-instance configuration via HTML attributes
|
|
19
19
|
- Console logs showing each instance’s final resolved config
|
|
20
20
|
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
### 1.1 CDN (jsDelivr)
|
|
46
46
|
|
|
47
47
|
```html
|
|
48
|
-
<script src="
|
|
48
|
+
<script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
### 1.2 npm
|
|
@@ -70,7 +70,7 @@ Add the script to your page. With no configuration provided, `rt-smooth-scroll`
|
|
|
70
70
|
Example:
|
|
71
71
|
|
|
72
72
|
```html
|
|
73
|
-
<script src="
|
|
73
|
+
<script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
> Note: If you do not set any `rt-smooth-scroll-*` config attributes, the root instance uses **Lenis defaults**.
|
|
@@ -117,21 +117,27 @@ Important Lenis behavior:
|
|
|
117
117
|
|
|
118
118
|
**Core attributes:**
|
|
119
119
|
|
|
120
|
-
| Attribute
|
|
121
|
-
|
|
|
122
|
-
| `rt-smooth-scroll-duration`
|
|
123
|
-
| `rt-smooth-scroll-lerp`
|
|
124
|
-
| `rt-smooth-scroll-orientation`
|
|
125
|
-
| `rt-smooth-scroll-gesture-orientation`
|
|
126
|
-
| `rt-smooth-scroll-normalize-wheel`
|
|
127
|
-
| `rt-smooth-scroll-wheel
|
|
128
|
-
| `rt-smooth-scroll-
|
|
129
|
-
| `rt-smooth-scroll-
|
|
130
|
-
| `rt-smooth-scroll-sync-touch
|
|
131
|
-
| `rt-smooth-scroll-touch-
|
|
132
|
-
| `rt-smooth-scroll-touch-
|
|
133
|
-
| `rt-smooth-scroll-infinite`
|
|
134
|
-
| `rt-smooth-scroll-
|
|
120
|
+
| Attribute | Description |
|
|
121
|
+
| ----------------------------------------- | ------------------------------------------------------------ |
|
|
122
|
+
| `rt-smooth-scroll-duration` | Lenis `duration` (only applies when `lerp` is not used) |
|
|
123
|
+
| `rt-smooth-scroll-lerp` | Lenis `lerp` (0 → 1) |
|
|
124
|
+
| `rt-smooth-scroll-orientation` | Lenis `orientation` |
|
|
125
|
+
| `rt-smooth-scroll-gesture-orientation` | Lenis `gestureOrientation` |
|
|
126
|
+
| `rt-smooth-scroll-normalize-wheel` | Alias of Lenis `smoothWheel` (legacy naming supported) |
|
|
127
|
+
| `rt-smooth-scroll-smooth-wheel` | Lenis `smoothWheel` |
|
|
128
|
+
| `rt-smooth-scroll-wheel-multiplier` | Lenis `wheelMultiplier` |
|
|
129
|
+
| `rt-smooth-scroll-touch-multiplier` | Lenis `touchMultiplier` |
|
|
130
|
+
| `rt-smooth-scroll-sync-touch` | Lenis `syncTouch` |
|
|
131
|
+
| `rt-smooth-scroll-sync-touch-lerp` | Lenis `syncTouchLerp` |
|
|
132
|
+
| `rt-smooth-scroll-touch-inertia-exponent` | Lenis `touchInertiaExponent` |
|
|
133
|
+
| `rt-smooth-scroll-infinite` | Lenis `infinite` |
|
|
134
|
+
| `rt-smooth-scroll-auto-resize` | Lenis `autoResize` |
|
|
135
|
+
| `rt-smooth-scroll-overscroll` | Lenis `overscroll` |
|
|
136
|
+
| `rt-smooth-scroll-anchors` | Lenis `anchors` (boolean or JSON) |
|
|
137
|
+
| `rt-smooth-scroll-auto-toggle` | Lenis `autoToggle` |
|
|
138
|
+
| `rt-smooth-scroll-allow-nested-scroll` | Lenis `allowNestedScroll` |
|
|
139
|
+
| `rt-smooth-scroll-easing` | Named easing function (only applies when `lerp` is not used) |
|
|
140
|
+
| `rt-smooth-scroll-options-json` | Merge additional Lenis options via JSON |
|
|
135
141
|
|
|
136
142
|
**Easing options included:**
|
|
137
143
|
|
|
@@ -164,6 +170,31 @@ Add attributes to any scroll container:
|
|
|
164
170
|
| `rt-smooth-scroll-id` | Optional instance identifier |
|
|
165
171
|
| `rt-smooth-scroll-content` | Selector inside container (defaults to first child if omitted) |
|
|
166
172
|
|
|
173
|
+
### Advanced Selectors (wrapper/content/eventsTarget)
|
|
174
|
+
|
|
175
|
+
You can map Lenis DOM targets using selectors:
|
|
176
|
+
|
|
177
|
+
```html
|
|
178
|
+
<body
|
|
179
|
+
rt-smooth-scroll
|
|
180
|
+
rt-smooth-scroll-wrapper="#page-wrapper"
|
|
181
|
+
rt-smooth-scroll-content="#page-content"
|
|
182
|
+
rt-smooth-scroll-events-target="#page-wrapper"
|
|
183
|
+
></body>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Or per instance:
|
|
187
|
+
|
|
188
|
+
```html
|
|
189
|
+
<div
|
|
190
|
+
rt-smooth-scroll-instance
|
|
191
|
+
rt-smooth-scroll-id="panel"
|
|
192
|
+
rt-smooth-scroll-wrapper="#panel-wrapper"
|
|
193
|
+
rt-smooth-scroll-content=".panel-content"
|
|
194
|
+
rt-smooth-scroll-events-target="#panel-wrapper"
|
|
195
|
+
></div>
|
|
196
|
+
```
|
|
197
|
+
|
|
167
198
|
---
|
|
168
199
|
|
|
169
200
|
## 5. Scroll-To Actions
|
|
@@ -211,6 +242,126 @@ Instead of hardcoding pixels, you can pass a selector to `rt-smooth-scroll-offse
|
|
|
211
242
|
</button>
|
|
212
243
|
```
|
|
213
244
|
|
|
245
|
+
### Scroll-To Completion Hooks
|
|
246
|
+
|
|
247
|
+
When a scroll-to finishes (including the built-in correction pass for layout shifts), you can run an action/function.
|
|
248
|
+
|
|
249
|
+
**Supported hook attributes:**
|
|
250
|
+
|
|
251
|
+
- Per-trigger: `rt-smooth-scroll-on-complete`
|
|
252
|
+
- Global default: `rt-smooth-scroll-on-complete` on `<html>` or `<body>`
|
|
253
|
+
|
|
254
|
+
#### 5.1 Per-trigger completion action
|
|
255
|
+
|
|
256
|
+
Click an element after the scroll completes:
|
|
257
|
+
|
|
258
|
+
```html
|
|
259
|
+
<a rt-smooth-scroll-to="#contact" rt-smooth-scroll-on-complete="#nav-show">
|
|
260
|
+
Contact
|
|
261
|
+
</a>
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
The shorthand above treats the value as a selector and will `click()` it.
|
|
265
|
+
|
|
266
|
+
You can also be explicit:
|
|
267
|
+
|
|
268
|
+
```html
|
|
269
|
+
<a
|
|
270
|
+
rt-smooth-scroll-to="#contact"
|
|
271
|
+
rt-smooth-scroll-on-complete="click:#nav-show"
|
|
272
|
+
>
|
|
273
|
+
Contact
|
|
274
|
+
</a>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
#### 5.2 Global default completion action
|
|
278
|
+
|
|
279
|
+
Apply to all scroll-to triggers unless they override it:
|
|
280
|
+
|
|
281
|
+
```html
|
|
282
|
+
<body rt-smooth-scroll rt-smooth-scroll-on-complete="click:#nav-show"></body>
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
#### 5.3 Supported completion action formats
|
|
286
|
+
|
|
287
|
+
**1) Selector-only (defaults to click)**
|
|
288
|
+
|
|
289
|
+
```html
|
|
290
|
+
<button rt-smooth-scroll-to="#x" rt-smooth-scroll-on-complete="#nav-show">
|
|
291
|
+
Go
|
|
292
|
+
</button>
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**2) Typed strings**
|
|
296
|
+
|
|
297
|
+
- `click:#selector`
|
|
298
|
+
- `focus:#selector`
|
|
299
|
+
- `dispatch:event-name` (fires `CustomEvent` on `window`)
|
|
300
|
+
- `call:functionName` (calls `window[functionName]`)
|
|
301
|
+
|
|
302
|
+
Examples:
|
|
303
|
+
|
|
304
|
+
```html
|
|
305
|
+
<button rt-smooth-scroll-to="#x" rt-smooth-scroll-on-complete="focus:#search">
|
|
306
|
+
Go
|
|
307
|
+
</button>
|
|
308
|
+
|
|
309
|
+
<button
|
|
310
|
+
rt-smooth-scroll-to="#x"
|
|
311
|
+
rt-smooth-scroll-on-complete="dispatch:rt:smooth-scroll:complete"
|
|
312
|
+
>
|
|
313
|
+
Go
|
|
314
|
+
</button>
|
|
315
|
+
|
|
316
|
+
<button
|
|
317
|
+
rt-smooth-scroll-to="#x"
|
|
318
|
+
rt-smooth-scroll-on-complete="call:afterScroll"
|
|
319
|
+
>
|
|
320
|
+
Go
|
|
321
|
+
</button>
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
When using `call:functionName`, your function receives a single object:
|
|
325
|
+
|
|
326
|
+
```js
|
|
327
|
+
window.afterScroll = function (ctx) {
|
|
328
|
+
console.log("afterScroll", ctx);
|
|
329
|
+
};
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
`ctx` includes:
|
|
333
|
+
|
|
334
|
+
- `lenis` (the Lenis instance used)
|
|
335
|
+
- `trigger` (the element that initiated the scroll)
|
|
336
|
+
- `target` (resolved target number/element/window)
|
|
337
|
+
- `value` (the raw `rt-smooth-scroll-to` string)
|
|
338
|
+
- `id` (the explicit `rt-smooth-scroll-target-id` if provided)
|
|
339
|
+
|
|
340
|
+
**3) JSON actions (single or array)**
|
|
341
|
+
|
|
342
|
+
This is the most robust option for multi-step actions:
|
|
343
|
+
|
|
344
|
+
```html
|
|
345
|
+
<button
|
|
346
|
+
rt-smooth-scroll-to="#x"
|
|
347
|
+
rt-smooth-scroll-on-complete='[
|
|
348
|
+
{"type":"click","selector":"#nav-show"},
|
|
349
|
+
{"type":"dispatch","name":"rt:smooth-scroll:complete","detail":{"from":"scroll-to"}}
|
|
350
|
+
]'
|
|
351
|
+
>
|
|
352
|
+
Go
|
|
353
|
+
</button>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Supported JSON action types:
|
|
357
|
+
|
|
358
|
+
- `{ "type": "click", "selector": "#el" }`
|
|
359
|
+
- `{ "type": "focus", "selector": "#el" }`
|
|
360
|
+
- `{ "type": "dispatch", "name": "event-name", "detail": any }`
|
|
361
|
+
- `{ "type": "call", "name": "functionName", "detail": any }`
|
|
362
|
+
|
|
363
|
+
For `dispatch` and `call`, `detail` is merged into the context under `detail`.
|
|
364
|
+
|
|
214
365
|
---
|
|
215
366
|
|
|
216
367
|
## 6. Anchor Link Conversion
|
|
@@ -230,7 +381,24 @@ Add this attribute to your `<body>` or `<html>` tag:
|
|
|
230
381
|
1. **Auto-Detection:** Finds all links pointing to a hash on the current page.
|
|
231
382
|
2. **Hijacking:** Converts them to use the `rt-smooth-scroll-to` logic.
|
|
232
383
|
3. **Clean URLs:** Removes the `href` attribute so the browser URL bar does **not** update (no `#hash` in URL), keeping your history clean.
|
|
233
|
-
4. **Accessibility:** Automatically restores `tabindex="0"`, `role="button"`, `cursor: pointer`, and keyboard `Enter` key support.
|
|
384
|
+
4. **Accessibility:** Automatically restores `tabindex="0"`, `role="button"`, `cursor: pointer`, and keyboard `Enter` / `Space` key support.
|
|
385
|
+
|
|
386
|
+
### Anchor link completion hook (auto-injected)
|
|
387
|
+
|
|
388
|
+
You can automatically attach a completion hook to every converted anchor link:
|
|
389
|
+
|
|
390
|
+
```html
|
|
391
|
+
<body
|
|
392
|
+
rt-smooth-scroll
|
|
393
|
+
rt-smooth-scroll-anchor-links="true"
|
|
394
|
+
rt-smooth-scroll-anchor-links-on-complete="click:#nav-show"
|
|
395
|
+
></body>
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Rules:
|
|
399
|
+
|
|
400
|
+
- If a link already has `rt-smooth-scroll-on-complete`, it is not overridden.
|
|
401
|
+
- If `rt-smooth-scroll-anchor-links-on-complete` exists, it is copied into each converted link as `rt-smooth-scroll-on-complete`.
|
|
234
402
|
|
|
235
403
|
---
|
|
236
404
|
|
|
@@ -297,18 +465,23 @@ This helps you confirm exactly what configuration is applied in the browser.
|
|
|
297
465
|
|
|
298
466
|
Lenis treats `duration` and `easing` as **useless if `lerp` is defined**. If you want time-based behavior, ensure you’re not effectively running in lerp-mode.
|
|
299
467
|
|
|
468
|
+
### My `rt-smooth-scroll-on-complete` didn’t run
|
|
469
|
+
|
|
470
|
+
Common causes:
|
|
471
|
+
|
|
472
|
+
- The selector/function name is wrong or not available at runtime.
|
|
473
|
+
- Your completion hook depends on DOM that’s not yet mounted/visible.
|
|
474
|
+
- If you are using `call:fnName`, ensure `window.fnName` exists before the scroll completes.
|
|
475
|
+
- If you are using JSON, ensure it is valid JSON (double quotes, no trailing commas).
|
|
476
|
+
|
|
300
477
|
---
|
|
301
478
|
|
|
302
479
|
## 11. License
|
|
303
480
|
|
|
304
481
|
MIT License
|
|
305
482
|
|
|
306
|
-
Package: `@rethink-js/rt-smooth-scroll`
|
|
307
|
-
<br>
|
|
483
|
+
Package: `@rethink-js/rt-smooth-scroll` <br>
|
|
308
484
|
GitHub: [https://github.com/Rethink-JS/rt-smooth-scroll](https://github.com/Rethink-JS/rt-smooth-scroll)
|
|
309
485
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
by **Rethink JS**
|
|
313
|
-
<br>
|
|
486
|
+
by **Rethink JS** <br>
|
|
314
487
|
[https://github.com/Rethink-JS](https://github.com/Rethink-JS)
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @rethink-js/rt-smooth-scroll v1.
|
|
1
|
+
/*! @rethink-js/rt-smooth-scroll v1.3.0 | MIT */
|
|
2
2
|
(() => {
|
|
3
3
|
// src/index.js
|
|
4
4
|
(function() {
|
|
@@ -239,9 +239,157 @@
|
|
|
239
239
|
document.head.appendChild(s);
|
|
240
240
|
});
|
|
241
241
|
}
|
|
242
|
+
function parseOnCompleteAction(raw) {
|
|
243
|
+
if (raw === null || raw === void 0) return null;
|
|
244
|
+
var s = String(raw).trim();
|
|
245
|
+
if (!s.length) return null;
|
|
246
|
+
var lower = s.toLowerCase();
|
|
247
|
+
function tryQuery(sel) {
|
|
248
|
+
if (!sel) return null;
|
|
249
|
+
try {
|
|
250
|
+
return document.querySelector(sel);
|
|
251
|
+
} catch (e) {
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
function safeClick(el2) {
|
|
256
|
+
if (!el2) return false;
|
|
257
|
+
try {
|
|
258
|
+
el2.click();
|
|
259
|
+
return true;
|
|
260
|
+
} catch (e) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
function safeFocus(el2) {
|
|
265
|
+
if (!el2) return false;
|
|
266
|
+
try {
|
|
267
|
+
if (typeof el2.focus === "function") el2.focus();
|
|
268
|
+
return true;
|
|
269
|
+
} catch (e) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
if (lower.indexOf("{") === 0 || lower.indexOf("[") === 0) {
|
|
274
|
+
try {
|
|
275
|
+
var parsed = JSON.parse(s);
|
|
276
|
+
return function(inst, ctx) {
|
|
277
|
+
try {
|
|
278
|
+
if (!parsed) return;
|
|
279
|
+
var arr = Array.isArray(parsed) ? parsed : [parsed];
|
|
280
|
+
for (var i = 0; i < arr.length; i++) {
|
|
281
|
+
var a = arr[i];
|
|
282
|
+
if (!a || typeof a !== "object") continue;
|
|
283
|
+
var type = typeof a.type === "string" ? a.type.trim().toLowerCase() : "";
|
|
284
|
+
var selector = typeof a.selector === "string" ? a.selector.trim() : "";
|
|
285
|
+
var name = typeof a.name === "string" ? a.name.trim() : "";
|
|
286
|
+
var detail = a.detail !== void 0 ? a.detail : void 0;
|
|
287
|
+
if (type === "click") {
|
|
288
|
+
safeClick(tryQuery(selector));
|
|
289
|
+
} else if (type === "focus") {
|
|
290
|
+
safeFocus(tryQuery(selector));
|
|
291
|
+
} else if (type === "dispatch") {
|
|
292
|
+
var evName = name || selector;
|
|
293
|
+
if (evName) {
|
|
294
|
+
try {
|
|
295
|
+
var ev = new CustomEvent(evName, {
|
|
296
|
+
detail: {
|
|
297
|
+
trigger: ctx && ctx.trigger ? ctx.trigger : null,
|
|
298
|
+
target: ctx && ctx.target ? ctx.target : null,
|
|
299
|
+
value: ctx && ctx.value ? ctx.value : null,
|
|
300
|
+
id: ctx && ctx.id ? ctx.id : null,
|
|
301
|
+
detail
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
window.dispatchEvent(ev);
|
|
305
|
+
} catch (e) {
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
} else if (type === "call") {
|
|
309
|
+
var fnName = name || selector;
|
|
310
|
+
if (fnName && window[fnName] && typeof window[fnName] === "function") {
|
|
311
|
+
try {
|
|
312
|
+
window[fnName]({
|
|
313
|
+
lenis: inst || null,
|
|
314
|
+
trigger: ctx && ctx.trigger ? ctx.trigger : null,
|
|
315
|
+
target: ctx && ctx.target ? ctx.target : null,
|
|
316
|
+
value: ctx && ctx.value ? ctx.value : null,
|
|
317
|
+
id: ctx && ctx.id ? ctx.id : null,
|
|
318
|
+
detail
|
|
319
|
+
});
|
|
320
|
+
} catch (e) {
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
} catch (e) {
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
} catch (e) {
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
var m = s.match(/^\s*([a-zA-Z]+)\s*:\s*(.+)\s*$/);
|
|
332
|
+
if (m) {
|
|
333
|
+
var type2 = String(m[1] || "").trim().toLowerCase();
|
|
334
|
+
var rest = String(m[2] || "").trim();
|
|
335
|
+
if (!rest.length) return null;
|
|
336
|
+
if (type2 === "click") {
|
|
337
|
+
return function() {
|
|
338
|
+
safeClick(tryQuery(rest));
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
if (type2 === "focus") {
|
|
342
|
+
return function() {
|
|
343
|
+
safeFocus(tryQuery(rest));
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
if (type2 === "dispatch" || type2 === "event") {
|
|
347
|
+
return function(inst, ctx) {
|
|
348
|
+
try {
|
|
349
|
+
var ev2 = new CustomEvent(rest, {
|
|
350
|
+
detail: {
|
|
351
|
+
trigger: ctx && ctx.trigger ? ctx.trigger : null,
|
|
352
|
+
target: ctx && ctx.target ? ctx.target : null,
|
|
353
|
+
value: ctx && ctx.value ? ctx.value : null,
|
|
354
|
+
id: ctx && ctx.id ? ctx.id : null
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
window.dispatchEvent(ev2);
|
|
358
|
+
} catch (e) {
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
if (type2 === "call" || type2 === "fn" || type2 === "function") {
|
|
363
|
+
return function(inst, ctx) {
|
|
364
|
+
try {
|
|
365
|
+
if (window[rest] && typeof window[rest] === "function") {
|
|
366
|
+
window[rest]({
|
|
367
|
+
lenis: inst || null,
|
|
368
|
+
trigger: ctx && ctx.trigger ? ctx.trigger : null,
|
|
369
|
+
target: ctx && ctx.target ? ctx.target : null,
|
|
370
|
+
value: ctx && ctx.value ? ctx.value : null,
|
|
371
|
+
id: ctx && ctx.id ? ctx.id : null
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
} catch (e) {
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
var el = tryQuery(s);
|
|
380
|
+
if (el) {
|
|
381
|
+
return function() {
|
|
382
|
+
safeClick(el);
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
242
387
|
function convertAnchorLinks() {
|
|
243
388
|
var raw = getAttr("rt-smooth-scroll-anchor-links");
|
|
244
389
|
if (!parseBool(raw, false)) return;
|
|
390
|
+
var defaultOnComplete = getAttr(
|
|
391
|
+
"rt-smooth-scroll-anchor-links-on-complete"
|
|
392
|
+
);
|
|
245
393
|
var links = document.querySelectorAll('a[href*="#"]');
|
|
246
394
|
var currentPath = window.location.pathname.replace(/\/+$/, "").toLowerCase();
|
|
247
395
|
var origin = window.location.origin;
|
|
@@ -274,6 +422,12 @@
|
|
|
274
422
|
}
|
|
275
423
|
if (isLocal) {
|
|
276
424
|
link.setAttribute("rt-smooth-scroll-to", hashPart);
|
|
425
|
+
if (!link.hasAttribute("rt-smooth-scroll-on-complete") && defaultOnComplete !== null && defaultOnComplete !== void 0) {
|
|
426
|
+
link.setAttribute(
|
|
427
|
+
"rt-smooth-scroll-on-complete",
|
|
428
|
+
String(defaultOnComplete)
|
|
429
|
+
);
|
|
430
|
+
}
|
|
277
431
|
link.removeAttribute("href");
|
|
278
432
|
link.style.cursor = "pointer";
|
|
279
433
|
link.setAttribute("tabindex", "0");
|
|
@@ -473,17 +627,72 @@
|
|
|
473
627
|
null
|
|
474
628
|
);
|
|
475
629
|
if (force !== null) opts.force = force;
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
630
|
+
var onCompleteRawLocal = targetEl.getAttribute(
|
|
631
|
+
"rt-smooth-scroll-on-complete"
|
|
632
|
+
);
|
|
633
|
+
var onCompleteRawGlobal = getAttr("rt-smooth-scroll-on-complete");
|
|
634
|
+
var onCompleteFn = parseOnCompleteAction(
|
|
635
|
+
isAttrPresent(onCompleteRawLocal) ? onCompleteRawLocal : onCompleteRawGlobal
|
|
636
|
+
);
|
|
637
|
+
var ctx = {
|
|
638
|
+
trigger: targetEl,
|
|
639
|
+
target,
|
|
640
|
+
value: targetVal,
|
|
641
|
+
id: explicitId || null
|
|
642
|
+
};
|
|
643
|
+
var userOnComplete = null;
|
|
644
|
+
if (onCompleteFn) {
|
|
645
|
+
userOnComplete = function(inst) {
|
|
646
|
+
try {
|
|
647
|
+
onCompleteFn(inst, ctx);
|
|
648
|
+
} catch (e2) {
|
|
649
|
+
}
|
|
485
650
|
};
|
|
486
651
|
}
|
|
652
|
+
var didCorrect = false;
|
|
653
|
+
var originalComplete = opts.onComplete;
|
|
654
|
+
opts.onComplete = function(inst) {
|
|
655
|
+
if (target instanceof Element) {
|
|
656
|
+
if (!didCorrect) {
|
|
657
|
+
didCorrect = true;
|
|
658
|
+
try {
|
|
659
|
+
instance.resize();
|
|
660
|
+
} catch (e2) {
|
|
661
|
+
}
|
|
662
|
+
var retryOpts = {};
|
|
663
|
+
for (var k in opts) retryOpts[k] = opts[k];
|
|
664
|
+
delete retryOpts.onComplete;
|
|
665
|
+
retryOpts.onComplete = function(inst2) {
|
|
666
|
+
if (originalComplete) {
|
|
667
|
+
try {
|
|
668
|
+
originalComplete(inst2);
|
|
669
|
+
} catch (e2) {
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
if (userOnComplete) {
|
|
673
|
+
try {
|
|
674
|
+
userOnComplete(inst2);
|
|
675
|
+
} catch (e2) {
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
};
|
|
679
|
+
instance.scrollTo(target, retryOpts);
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
if (originalComplete) {
|
|
684
|
+
try {
|
|
685
|
+
originalComplete(inst);
|
|
686
|
+
} catch (e2) {
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
if (userOnComplete) {
|
|
690
|
+
try {
|
|
691
|
+
userOnComplete(inst);
|
|
692
|
+
} catch (e2) {
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
};
|
|
487
696
|
instance.scrollTo(target, opts);
|
|
488
697
|
};
|
|
489
698
|
state.clickListener = function(e) {
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.js"],
|
|
4
|
-
"sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function resolveTargetFromStr(selectorStr) {\n if (!selectorStr) return null;\n var s = String(selectorStr).trim();\n if (!s) return null;\n if (s === \"window\") return window;\n\n var match = s.match(/^(.*)\\(\\s*(\\d+)\\s*\\)$/);\n if (match) {\n var baseSelector = match[1].trim();\n var index = parseInt(match[2], 10);\n if (!baseSelector || isNaN(index) || index < 1) return null;\n try {\n var all = document.querySelectorAll(baseSelector);\n return all[index - 1] || null;\n } catch (e) {\n return null;\n }\n }\n\n try {\n return document.querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function ensureAutoEnableIfNeeded() {\n var body = document.body;\n if (!body) return;\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances) {\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n }\n }\n\n function isAttrPresent(v) {\n return v !== null && v !== undefined;\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\n var hasEasing = hasRaw(\"easing\");\n var easingName = parseStr(getRaw(\"easing\"), \"\");\n var easingFn = easingByName(easingName);\n\n if (hasLerp && lerp !== undefined) {\n opts.lerp = lerp;\n } else {\n if (hasDuration && duration !== undefined) opts.duration = duration;\n if (hasEasing && easingFn) opts.easing = easingFn;\n }\n\n if (hasRaw(\"orientation\"))\n opts.orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (hasRaw(\"gesture-orientation\"))\n opts.gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\n\n var smoothWheelRaw = getRaw(\"smooth-wheel\");\n var normalizeWheelRaw = getRaw(\"normalize-wheel\");\n if (isAttrPresent(smoothWheelRaw))\n opts.smoothWheel = parseBool(smoothWheelRaw, true);\n else if (isAttrPresent(normalizeWheelRaw))\n opts.smoothWheel = parseBool(normalizeWheelRaw, true);\n\n if (hasRaw(\"wheel-multiplier\"))\n opts.wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (hasRaw(\"touch-multiplier\"))\n opts.touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (hasRaw(\"sync-touch\"))\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n if (hasRaw(\"sync-touch-lerp\"))\n opts.syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (hasRaw(\"touch-inertia-exponent\"))\n opts.touchInertiaExponent = parseNum(\n getRaw(\"touch-inertia-exponent\"),\n undefined,\n );\n if (hasRaw(\"infinite\"))\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n if (hasRaw(\"auto-resize\"))\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n if (hasRaw(\"overscroll\"))\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n\n if (hasRaw(\"anchors\")) {\n var s = String(getRaw(\"anchors\") || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") opts.anchors = true;\n else if (s.toLowerCase() === \"false\") opts.anchors = false;\n else {\n try {\n opts.anchors = JSON.parse(s);\n } catch (e) {\n opts.anchors = true;\n }\n }\n }\n\n if (hasRaw(\"auto-toggle\"))\n opts.autoToggle = parseBool(getRaw(\"auto-toggle\"), false);\n if (hasRaw(\"allow-nested-scroll\"))\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var links = document.querySelectorAll('a[href*=\"#\"]');\n var currentPath = window.location.pathname\n .replace(/\\/+$/, \"\")\n .toLowerCase();\n var origin = window.location.origin;\n\n for (var i = 0; i < links.length; i++) {\n var link = links[i];\n if (link.hasAttribute(\"rt-smooth-scroll-to\")) continue;\n\n var href = link.getAttribute(\"href\");\n if (!href) continue;\n\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex === -1) continue;\n\n var pathPart = href.substring(0, hashIndex);\n var hashPart = href.substring(hashIndex);\n\n if (hashPart.length <= 1) continue;\n\n var isLocal = false;\n if (pathPart === \"\" || pathPart === \"./\") {\n isLocal = true;\n } else {\n var normPath = pathPart.replace(/\\/+$/, \"\").toLowerCase();\n if (pathPart.indexOf(\"http\") === 0) {\n try {\n var u = new URL(href, origin);\n if (\n u.origin === origin &&\n u.pathname.replace(/\\/+$/, \"\").toLowerCase() === currentPath\n ) {\n isLocal = true;\n }\n } catch (e) {}\n } else if (normPath === currentPath) {\n isLocal = true;\n }\n }\n\n if (isLocal) {\n link.setAttribute(\"rt-smooth-scroll-to\", hashPart);\n\n // Remove href completely to hide status bar text\n link.removeAttribute(\"href\");\n\n // Restore accessibility and cursor\n link.style.cursor = \"pointer\";\n link.setAttribute(\"tabindex\", \"0\");\n link.setAttribute(\"role\", \"button\");\n }\n }\n }\n\n function init() {\n ensureAutoEnableIfNeeded();\n convertAnchorLinks();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instanceEls && instanceEls.length > 0;\n var shouldRun = enabledRoot || hasInstances;\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\",\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0,\n );\n var debug = parseBool(getAttr(\"rt-smooth-scroll-debug\"), true);\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n resizeTimers: {},\n clickListener: null,\n keyListener: null,\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") out[k] = \"[Function]\";\n else out[k] = v;\n }\n return out;\n }\n\n function resolveElementFromSelector(base, selector) {\n if (!selector) return null;\n var s = String(selector).trim();\n if (!s.length) return null;\n if (s === \"window\") return window;\n try {\n return (base || document).querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function applySelectorsToOptions(el, opts) {\n var prefix = \"rt-smooth-scroll-\";\n var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\n if (wrapperSel) {\n var w = resolveElementFromSelector(document, wrapperSel);\n if (w) opts.wrapper = w;\n }\n if (contentSel) {\n var c = resolveElementFromSelector(document, contentSel);\n if (c) opts.content = c;\n }\n if (eventsSel) {\n var et = resolveElementFromSelector(document, eventsSel);\n if (et) opts.eventsTarget = et;\n }\n return opts;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = null;\n try {\n found = wrapperEl.querySelector(selector);\n } catch (e) {\n found = null;\n }\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function createInstance(id, wrapper, content, options, isRoot) {\n var opts = options || {};\n if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (id === \"root\") window.lenis = inst;\n if (debug) {\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: isRoot ? opts.wrapper || \"default\" : wrapper,\n content: isRoot ? opts.content || \"default\" : content,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n }\n return inst;\n }\n\n function setupScrollToListeners() {\n if (state.clickListener) return;\n\n var handleScrollAction = function (targetEl, e) {\n var targetVal = targetEl.getAttribute(\"rt-smooth-scroll-to\");\n if (!targetVal) return;\n\n if (e) e.preventDefault();\n\n var target = null;\n var numeric = parseFloat(targetVal);\n\n if (targetVal === \"top\") {\n target = 0;\n } else if (!isNaN(numeric) && isFinite(numeric)) {\n target = numeric;\n } else {\n target = resolveTargetFromStr(targetVal);\n }\n\n if (target === null && targetVal !== \"top\" && isNaN(numeric)) return;\n\n var instance = null;\n var explicitId = targetEl.getAttribute(\"rt-smooth-scroll-target-id\");\n if (explicitId && state.instances[explicitId]) {\n instance = state.instances[explicitId];\n } else {\n var parentWrapper = targetEl.closest(\"[rt-smooth-scroll-instance]\");\n if (parentWrapper) {\n var parentId = parentWrapper.getAttribute(\"rt-smooth-scroll-id\");\n if (parentId && state.instances[parentId]) {\n instance = state.instances[parentId];\n }\n }\n }\n if (!instance && state.instances[\"root\"]) {\n instance = state.instances[\"root\"];\n }\n\n if (!instance) return;\n\n // Force resize before calculating scroll to handle lazy-loaded elements\n // that might have shifted layout since the last update.\n instance.resize();\n\n var opts = {};\n var offsetRaw = targetEl.getAttribute(\"rt-smooth-scroll-offset\");\n if (offsetRaw) {\n var offsetNum = parseFloat(offsetRaw);\n if (!isNaN(offsetNum) && isFinite(offsetNum)) {\n opts.offset = offsetNum;\n } else {\n var offsetEl = resolveTargetFromStr(offsetRaw);\n if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;\n }\n }\n var dur = parseNum(\n targetEl.getAttribute(\"rt-smooth-scroll-duration\"),\n undefined,\n );\n if (dur !== undefined) opts.duration = dur;\n var immediate = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-immediate\"),\n null,\n );\n if (immediate !== null) opts.immediate = immediate;\n var lock = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-lock\"),\n null,\n );\n if (lock !== null) opts.lock = lock;\n var force = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-force\"),\n null,\n );\n if (force !== null) opts.force = force;\n\n // If target is an DOM Element (not a number), we add a correction step.\n // If layout shifts during the scroll (e.g. images loading), the target\n // position might change. We re-check on completion.\n if (target instanceof Element) {\n var originalComplete = opts.onComplete;\n opts.onComplete = function (inst) {\n if (originalComplete) originalComplete(inst);\n // Re-measure the layout\n instance.resize();\n // Perform a correction scroll to the updated position\n // We create a copy of opts but remove onComplete to prevent infinite loops\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n // Execute correction\n instance.scrollTo(target, retryOpts);\n };\n }\n\n instance.scrollTo(target, opts);\n };\n\n state.clickListener = function (e) {\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger) handleScrollAction(trigger, e);\n };\n\n state.keyListener = function (e) {\n if (e.key !== \"Enter\" && e.key !== \" \") return;\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger && !trigger.hasAttribute(\"href\")) {\n handleScrollAction(trigger, e);\n }\n };\n\n document.addEventListener(\"click\", state.clickListener);\n document.addEventListener(\"keydown\", state.keyListener);\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n refreshAnchors: function () {\n convertAnchorLinks();\n },\n destroy: function (id) {\n if (state.destroyed) return;\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n if (state.clickListener) {\n document.removeEventListener(\"click\", state.clickListener);\n state.clickListener = null;\n }\n if (state.keyListener) {\n document.removeEventListener(\"keydown\", state.keyListener);\n state.keyListener = null;\n }\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);\n var allowAutoRaf =\n totalCount === 1 && enabledRoot && (!els || els.length === 0);\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot,\n );\n if (allowAutoRaf) {\n var rawAutoRaf = getAttr(\"rt-smooth-scroll-auto-raf\");\n var autoRaf = isAttrPresent(rawAutoRaf)\n ? parseBool(rawAutoRaf, true)\n : true;\n optsRoot.autoRaf = autoRaf;\n } else {\n optsRoot.autoRaf = false;\n }\n createInstance(\"root\", null, null, optsRoot, true);\n }\n\n var autoCount = 0;\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n el.setAttribute(\"rt-smooth-scroll-id\", id);\n }\n if (state.instances[id]) continue;\n var content = getContentForWrapper(el);\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n setupScrollToListeners();\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function resolveTargetFromStr(selectorStr) {\n if (!selectorStr) return null;\n var s = String(selectorStr).trim();\n if (!s) return null;\n if (s === \"window\") return window;\n\n var match = s.match(/^(.*)\\(\\s*(\\d+)\\s*\\)$/);\n if (match) {\n var baseSelector = match[1].trim();\n var index = parseInt(match[2], 10);\n if (!baseSelector || isNaN(index) || index < 1) return null;\n try {\n var all = document.querySelectorAll(baseSelector);\n return all[index - 1] || null;\n } catch (e) {\n return null;\n }\n }\n\n try {\n return document.querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function ensureAutoEnableIfNeeded() {\n var body = document.body;\n if (!body) return;\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances) {\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n }\n }\n\n function isAttrPresent(v) {\n return v !== null && v !== undefined;\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\n var hasEasing = hasRaw(\"easing\");\n var easingName = parseStr(getRaw(\"easing\"), \"\");\n var easingFn = easingByName(easingName);\n\n if (hasLerp && lerp !== undefined) {\n opts.lerp = lerp;\n } else {\n if (hasDuration && duration !== undefined) opts.duration = duration;\n if (hasEasing && easingFn) opts.easing = easingFn;\n }\n\n if (hasRaw(\"orientation\"))\n opts.orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (hasRaw(\"gesture-orientation\"))\n opts.gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\n\n var smoothWheelRaw = getRaw(\"smooth-wheel\");\n var normalizeWheelRaw = getRaw(\"normalize-wheel\");\n if (isAttrPresent(smoothWheelRaw))\n opts.smoothWheel = parseBool(smoothWheelRaw, true);\n else if (isAttrPresent(normalizeWheelRaw))\n opts.smoothWheel = parseBool(normalizeWheelRaw, true);\n\n if (hasRaw(\"wheel-multiplier\"))\n opts.wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (hasRaw(\"touch-multiplier\"))\n opts.touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (hasRaw(\"sync-touch\"))\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n if (hasRaw(\"sync-touch-lerp\"))\n opts.syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (hasRaw(\"touch-inertia-exponent\"))\n opts.touchInertiaExponent = parseNum(\n getRaw(\"touch-inertia-exponent\"),\n undefined,\n );\n if (hasRaw(\"infinite\"))\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n if (hasRaw(\"auto-resize\"))\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n if (hasRaw(\"overscroll\"))\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n\n if (hasRaw(\"anchors\")) {\n var s = String(getRaw(\"anchors\") || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") opts.anchors = true;\n else if (s.toLowerCase() === \"false\") opts.anchors = false;\n else {\n try {\n opts.anchors = JSON.parse(s);\n } catch (e) {\n opts.anchors = true;\n }\n }\n }\n\n if (hasRaw(\"auto-toggle\"))\n opts.autoToggle = parseBool(getRaw(\"auto-toggle\"), false);\n if (hasRaw(\"allow-nested-scroll\"))\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function parseOnCompleteAction(raw) {\n if (raw === null || raw === undefined) return null;\n var s = String(raw).trim();\n if (!s.length) return null;\n\n var lower = s.toLowerCase();\n\n function tryQuery(sel) {\n if (!sel) return null;\n try {\n return document.querySelector(sel);\n } catch (e) {\n return null;\n }\n }\n\n function safeClick(el) {\n if (!el) return false;\n try {\n el.click();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function safeFocus(el) {\n if (!el) return false;\n try {\n if (typeof el.focus === \"function\") el.focus();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n if (lower.indexOf(\"{\") === 0 || lower.indexOf(\"[\") === 0) {\n try {\n var parsed = JSON.parse(s);\n return function (inst, ctx) {\n try {\n if (!parsed) return;\n var arr = Array.isArray(parsed) ? parsed : [parsed];\n for (var i = 0; i < arr.length; i++) {\n var a = arr[i];\n if (!a || typeof a !== \"object\") continue;\n\n var type =\n typeof a.type === \"string\" ? a.type.trim().toLowerCase() : \"\";\n var selector =\n typeof a.selector === \"string\" ? a.selector.trim() : \"\";\n var name = typeof a.name === \"string\" ? a.name.trim() : \"\";\n var detail = a.detail !== undefined ? a.detail : undefined;\n\n if (type === \"click\") {\n safeClick(tryQuery(selector));\n } else if (type === \"focus\") {\n safeFocus(tryQuery(selector));\n } else if (type === \"dispatch\") {\n var evName = name || selector;\n if (evName) {\n try {\n var ev = new CustomEvent(evName, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n },\n });\n window.dispatchEvent(ev);\n } catch (e) {}\n }\n } else if (type === \"call\") {\n var fnName = name || selector;\n if (\n fnName &&\n window[fnName] &&\n typeof window[fnName] === \"function\"\n ) {\n try {\n window[fnName]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n });\n } catch (e) {}\n }\n }\n }\n } catch (e) {}\n };\n } catch (e) {}\n }\n\n var m = s.match(/^\\s*([a-zA-Z]+)\\s*:\\s*(.+)\\s*$/);\n if (m) {\n var type2 = String(m[1] || \"\")\n .trim()\n .toLowerCase();\n var rest = String(m[2] || \"\").trim();\n if (!rest.length) return null;\n\n if (type2 === \"click\") {\n return function () {\n safeClick(tryQuery(rest));\n };\n }\n if (type2 === \"focus\") {\n return function () {\n safeFocus(tryQuery(rest));\n };\n }\n if (type2 === \"dispatch\" || type2 === \"event\") {\n return function (inst, ctx) {\n try {\n var ev2 = new CustomEvent(rest, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n },\n });\n window.dispatchEvent(ev2);\n } catch (e) {}\n };\n }\n if (type2 === \"call\" || type2 === \"fn\" || type2 === \"function\") {\n return function (inst, ctx) {\n try {\n if (window[rest] && typeof window[rest] === \"function\") {\n window[rest]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n });\n }\n } catch (e) {}\n };\n }\n }\n\n var el = tryQuery(s);\n if (el) {\n return function () {\n safeClick(el);\n };\n }\n\n return null;\n }\n\n function convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var defaultOnComplete = getAttr(\n \"rt-smooth-scroll-anchor-links-on-complete\",\n );\n\n var links = document.querySelectorAll('a[href*=\"#\"]');\n var currentPath = window.location.pathname\n .replace(/\\/+$/, \"\")\n .toLowerCase();\n var origin = window.location.origin;\n\n for (var i = 0; i < links.length; i++) {\n var link = links[i];\n if (link.hasAttribute(\"rt-smooth-scroll-to\")) continue;\n\n var href = link.getAttribute(\"href\");\n if (!href) continue;\n\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex === -1) continue;\n\n var pathPart = href.substring(0, hashIndex);\n var hashPart = href.substring(hashIndex);\n\n if (hashPart.length <= 1) continue;\n\n var isLocal = false;\n if (pathPart === \"\" || pathPart === \"./\") {\n isLocal = true;\n } else {\n var normPath = pathPart.replace(/\\/+$/, \"\").toLowerCase();\n if (pathPart.indexOf(\"http\") === 0) {\n try {\n var u = new URL(href, origin);\n if (\n u.origin === origin &&\n u.pathname.replace(/\\/+$/, \"\").toLowerCase() === currentPath\n ) {\n isLocal = true;\n }\n } catch (e) {}\n } else if (normPath === currentPath) {\n isLocal = true;\n }\n }\n\n if (isLocal) {\n link.setAttribute(\"rt-smooth-scroll-to\", hashPart);\n\n if (\n !link.hasAttribute(\"rt-smooth-scroll-on-complete\") &&\n defaultOnComplete !== null &&\n defaultOnComplete !== undefined\n ) {\n link.setAttribute(\n \"rt-smooth-scroll-on-complete\",\n String(defaultOnComplete),\n );\n }\n\n link.removeAttribute(\"href\");\n\n link.style.cursor = \"pointer\";\n link.setAttribute(\"tabindex\", \"0\");\n link.setAttribute(\"role\", \"button\");\n }\n }\n }\n\n function init() {\n ensureAutoEnableIfNeeded();\n convertAnchorLinks();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instanceEls && instanceEls.length > 0;\n var shouldRun = enabledRoot || hasInstances;\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\",\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0,\n );\n var debug = parseBool(getAttr(\"rt-smooth-scroll-debug\"), true);\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n resizeTimers: {},\n clickListener: null,\n keyListener: null,\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") out[k] = \"[Function]\";\n else out[k] = v;\n }\n return out;\n }\n\n function resolveElementFromSelector(base, selector) {\n if (!selector) return null;\n var s = String(selector).trim();\n if (!s.length) return null;\n if (s === \"window\") return window;\n try {\n return (base || document).querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function applySelectorsToOptions(el, opts) {\n var prefix = \"rt-smooth-scroll-\";\n var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\n if (wrapperSel) {\n var w = resolveElementFromSelector(document, wrapperSel);\n if (w) opts.wrapper = w;\n }\n if (contentSel) {\n var c = resolveElementFromSelector(document, contentSel);\n if (c) opts.content = c;\n }\n if (eventsSel) {\n var et = resolveElementFromSelector(document, eventsSel);\n if (et) opts.eventsTarget = et;\n }\n return opts;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = null;\n try {\n found = wrapperEl.querySelector(selector);\n } catch (e) {\n found = null;\n }\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function createInstance(id, wrapper, content, options, isRoot) {\n var opts = options || {};\n if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (id === \"root\") window.lenis = inst;\n if (debug) {\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: isRoot ? opts.wrapper || \"default\" : wrapper,\n content: isRoot ? opts.content || \"default\" : content,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n }\n return inst;\n }\n\n function setupScrollToListeners() {\n if (state.clickListener) return;\n\n var handleScrollAction = function (targetEl, e) {\n var targetVal = targetEl.getAttribute(\"rt-smooth-scroll-to\");\n if (!targetVal) return;\n\n if (e) e.preventDefault();\n\n var target = null;\n var numeric = parseFloat(targetVal);\n\n if (targetVal === \"top\") {\n target = 0;\n } else if (!isNaN(numeric) && isFinite(numeric)) {\n target = numeric;\n } else {\n target = resolveTargetFromStr(targetVal);\n }\n\n if (target === null && targetVal !== \"top\" && isNaN(numeric)) return;\n\n var instance = null;\n var explicitId = targetEl.getAttribute(\"rt-smooth-scroll-target-id\");\n if (explicitId && state.instances[explicitId]) {\n instance = state.instances[explicitId];\n } else {\n var parentWrapper = targetEl.closest(\"[rt-smooth-scroll-instance]\");\n if (parentWrapper) {\n var parentId = parentWrapper.getAttribute(\"rt-smooth-scroll-id\");\n if (parentId && state.instances[parentId]) {\n instance = state.instances[parentId];\n }\n }\n }\n if (!instance && state.instances[\"root\"]) {\n instance = state.instances[\"root\"];\n }\n\n if (!instance) return;\n\n instance.resize();\n\n var opts = {};\n var offsetRaw = targetEl.getAttribute(\"rt-smooth-scroll-offset\");\n if (offsetRaw) {\n var offsetNum = parseFloat(offsetRaw);\n if (!isNaN(offsetNum) && isFinite(offsetNum)) {\n opts.offset = offsetNum;\n } else {\n var offsetEl = resolveTargetFromStr(offsetRaw);\n if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;\n }\n }\n var dur = parseNum(\n targetEl.getAttribute(\"rt-smooth-scroll-duration\"),\n undefined,\n );\n if (dur !== undefined) opts.duration = dur;\n var immediate = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-immediate\"),\n null,\n );\n if (immediate !== null) opts.immediate = immediate;\n var lock = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-lock\"),\n null,\n );\n if (lock !== null) opts.lock = lock;\n var force = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-force\"),\n null,\n );\n if (force !== null) opts.force = force;\n\n var onCompleteRawLocal = targetEl.getAttribute(\n \"rt-smooth-scroll-on-complete\",\n );\n var onCompleteRawGlobal = getAttr(\"rt-smooth-scroll-on-complete\");\n var onCompleteFn = parseOnCompleteAction(\n isAttrPresent(onCompleteRawLocal)\n ? onCompleteRawLocal\n : onCompleteRawGlobal,\n );\n\n var ctx = {\n trigger: targetEl,\n target: target,\n value: targetVal,\n id: explicitId || null,\n };\n\n var userOnComplete = null;\n if (onCompleteFn) {\n userOnComplete = function (inst) {\n try {\n onCompleteFn(inst, ctx);\n } catch (e) {}\n };\n }\n\n var didCorrect = false;\n var originalComplete = opts.onComplete;\n\n opts.onComplete = function (inst) {\n if (target instanceof Element) {\n if (!didCorrect) {\n didCorrect = true;\n try {\n instance.resize();\n } catch (e) {}\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n retryOpts.onComplete = function (inst2) {\n if (originalComplete) {\n try {\n originalComplete(inst2);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst2);\n } catch (e) {}\n }\n };\n instance.scrollTo(target, retryOpts);\n return;\n }\n }\n\n if (originalComplete) {\n try {\n originalComplete(inst);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst);\n } catch (e) {}\n }\n };\n\n instance.scrollTo(target, opts);\n };\n\n state.clickListener = function (e) {\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger) handleScrollAction(trigger, e);\n };\n\n state.keyListener = function (e) {\n if (e.key !== \"Enter\" && e.key !== \" \") return;\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger && !trigger.hasAttribute(\"href\")) {\n handleScrollAction(trigger, e);\n }\n };\n\n document.addEventListener(\"click\", state.clickListener);\n document.addEventListener(\"keydown\", state.keyListener);\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n refreshAnchors: function () {\n convertAnchorLinks();\n },\n destroy: function (id) {\n if (state.destroyed) return;\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n if (state.clickListener) {\n document.removeEventListener(\"click\", state.clickListener);\n state.clickListener = null;\n }\n if (state.keyListener) {\n document.removeEventListener(\"keydown\", state.keyListener);\n state.keyListener = null;\n }\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);\n var allowAutoRaf =\n totalCount === 1 && enabledRoot && (!els || els.length === 0);\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot,\n );\n if (allowAutoRaf) {\n var rawAutoRaf = getAttr(\"rt-smooth-scroll-auto-raf\");\n var autoRaf = isAttrPresent(rawAutoRaf)\n ? parseBool(rawAutoRaf, true)\n : true;\n optsRoot.autoRaf = autoRaf;\n } else {\n optsRoot.autoRaf = false;\n }\n createInstance(\"root\", null, null, optsRoot, true);\n }\n\n var autoCount = 0;\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n el.setAttribute(\"rt-smooth-scroll-id\", id);\n }\n if (state.instances[id]) continue;\n var content = getContentForWrapper(el);\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n setupScrollToListeners();\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["el", "e"]
|
|
7
7
|
}
|
package/dist/index.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! @rethink-js/rt-smooth-scroll v1.
|
|
2
|
-
(()=>{(function(){var k="rtSmoothScroll";if(window[k]&&window[k].__initialized)return;function A(o,u){return!o||!o.hasAttribute(u)?null:o.getAttribute(u)}function I(o){var u=document.documentElement,s=document.body,e=A(u,o);return e!==null||(e=A(s,o),e!==null)?e:null}function $(o){var u=document.documentElement,s=document.body;return!!(u&&u.hasAttribute(o)||s&&s.hasAttribute(o))}function m(o,u){if(o==null)return u;var s=String(o).trim().toLowerCase();return s===""||s==="true"||s==="1"||s==="yes"||s==="y"||s==="on"?!0:s==="false"||s==="0"||s==="no"||s==="n"||s==="off"?!1:u}function L(o,u){if(o==null)return u;var s=String(o).trim();if(!s.length)return u;var e=Number(s);return Number.isFinite(e)?e:u}function R(o,u){if(o==null)return u;var s=String(o);return s.length?s:u}function p(o){return o<0?0:o>1?1:o}function Q(o){if(!o)return null;var u=String(o).trim();if(!u)return null;if(u==="window")return window;var s=u.match(/^(.*)\(\s*(\d+)\s*\)$/);if(s){var e=s[1].trim(),c=parseInt(s[2],10);if(!e||isNaN(c)||c<1)return null;try{var a=document.querySelectorAll(e);return a[c-1]||null}catch(y){return null}}try{return document.querySelector(u)}catch(y){return null}}function Y(o){var u=String(o||"").trim();if(!u)return null;var s={linear:function(e){return p(e)},easeInQuad:function(e){return e=p(e),e*e},easeOutQuad:function(e){return e=p(e),e*(2-e)},easeInOutQuad:function(e){return e=p(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=p(e),e*e*e},easeOutCubic:function(e){return e=p(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=p(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=p(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=p(e),e===1?1:1-Math.pow(2,-10*e)}};return s[u]||null}function Z(){var o=document.body;if(o){var u=document.querySelectorAll("[rt-smooth-scroll-instance]"),s=u&&u.length>0;!$("rt-smooth-scroll")&&!s&&o.setAttribute("rt-smooth-scroll","")}}function x(o){return o!=null}function B(o){var u="rt-smooth-scroll-";function s(t){var n=o(t);return x(n)?n:I(t)}function e(t){return s(u+t)}function c(t){return x(e(t))}var a={},y=c("lerp"),r=L(e("lerp"),void 0),S=c("duration"),C=L(e("duration"),void 0),z=c("easing"),N=R(e("easing"),""),O=Y(N);y&&r!==void 0?a.lerp=r:(S&&C!==void 0&&(a.duration=C),z&&O&&(a.easing=O)),c("orientation")&&(a.orientation=R(e("orientation"),"")),c("gesture-orientation")&&(a.gestureOrientation=R(e("gesture-orientation"),""));var M=e("smooth-wheel"),_=e("normalize-wheel");if(x(M)?a.smoothWheel=m(M,!0):x(_)&&(a.smoothWheel=m(_,!0)),c("wheel-multiplier")&&(a.wheelMultiplier=L(e("wheel-multiplier"),void 0)),c("touch-multiplier")&&(a.touchMultiplier=L(e("touch-multiplier"),void 0)),c("sync-touch")&&(a.syncTouch=m(e("sync-touch"),!1)),c("sync-touch-lerp")&&(a.syncTouchLerp=L(e("sync-touch-lerp"),void 0)),c("touch-inertia-exponent")&&(a.touchInertiaExponent=L(e("touch-inertia-exponent"),void 0)),c("infinite")&&(a.infinite=m(e("infinite"),!1)),c("auto-resize")&&(a.autoResize=m(e("auto-resize"),!0)),c("overscroll")&&(a.overscroll=m(e("overscroll"),!0)),c("anchors")){var q=String(e("anchors")||"").trim();if(q===""||q.toLowerCase()==="true")a.anchors=!0;else if(q.toLowerCase()==="false")a.anchors=!1;else try{a.anchors=JSON.parse(q)}catch(t){a.anchors=!0}}c("auto-toggle")&&(a.autoToggle=m(e("auto-toggle"),!1)),c("allow-nested-scroll")&&(a.allowNestedScroll=m(e("allow-nested-scroll"),!1));var j=s(u+"options-json");if(j)try{var E=JSON.parse(j);if(E&&typeof E=="object")for(var i in E)a[i]=E[i]}catch(t){}return a}function ee(o){return new Promise(function(u,s){if(typeof window.Lenis!="undefined")return u();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){u()}),e.addEventListener("error",function(a){s(a)});return}var c=document.createElement("script");c.src=o,c.async=!0,c.dataset.rtLenis="true",c.onload=function(){u()},c.onerror=function(a){s(a)},document.head.appendChild(c)})}function J(){var o=I("rt-smooth-scroll-anchor-links");if(m(o,!1))for(var u=document.querySelectorAll('a[href*="#"]'),s=window.location.pathname.replace(/\/+$/,"").toLowerCase(),e=window.location.origin,c=0;c<u.length;c++){var a=u[c];if(!a.hasAttribute("rt-smooth-scroll-to")){var y=a.getAttribute("href");if(y){var r=y.indexOf("#");if(r!==-1){var S=y.substring(0,r),C=y.substring(r);if(!(C.length<=1)){var z=!1;if(S===""||S==="./")z=!0;else{var N=S.replace(/\/+$/,"").toLowerCase();if(S.indexOf("http")===0)try{var O=new URL(y,e);O.origin===e&&O.pathname.replace(/\/+$/,"").toLowerCase()===s&&(z=!0)}catch(M){}else N===s&&(z=!0)}z&&(a.setAttribute("rt-smooth-scroll-to",C),a.removeAttribute("href"),a.style.cursor="pointer",a.setAttribute("tabindex","0"),a.setAttribute("role","button"))}}}}}}function G(){Z(),J();var o=$("rt-smooth-scroll"),u=document.querySelectorAll("[rt-smooth-scroll-instance]"),s=u&&u.length>0,e=o||s;if(!e)return;var c=R(I("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),a=L(I("rt-smooth-scroll-resize-debounce-ms"),0),y=m(I("rt-smooth-scroll-debug"),!0),r={destroyed:!1,rafId:0,instances:{},order:[],resizeTimers:{},clickListener:null,keyListener:null};function S(i){var t=r.instances[i];if(!(!t||r.destroyed)){if(a>0){clearTimeout(r.resizeTimers[i]),r.resizeTimers[i]=setTimeout(function(){var n=r.instances[i];!n||r.destroyed||n.resize()},a);return}t.resize()}}function C(){function i(t){if(!r.destroyed){for(var n=0;n<r.order.length;n++){var l=r.order[n],f=r.instances[l];f&&f.raf(t)}r.rafId=requestAnimationFrame(i)}}r.rafId=requestAnimationFrame(i)}function z(i){var t={};for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var l=i[n];typeof l=="function"?t[n]="[Function]":t[n]=l}return t}function N(i,t){if(!t)return null;var n=String(t).trim();if(!n.length)return null;if(n==="window")return window;try{return(i||document).querySelector(n)}catch(l){return null}}function O(i,t){var n="rt-smooth-scroll-",l=A(i,n+"wrapper"),f=A(i,n+"content"),v=A(i,n+"events-target");if(l){var d=N(document,l);d&&(t.wrapper=d)}if(f){var w=N(document,f);w&&(t.content=w)}if(v){var g=N(document,v);g&&(t.eventsTarget=g)}return t}function M(i){var t=A(i,"rt-smooth-scroll-content");if(t){var n=null;try{n=i.querySelector(t)}catch(l){n=null}if(n)return n}return i.firstElementChild||i}function _(i,t,n,l,f){var v=l||{};f||(t&&(v.wrapper=t),n&&(v.content=n));var d=new window.Lenis(v);if(r.instances[i]=d,r.order.push(i),i==="root"&&(window.lenis=d),y)try{console.log("[rt-smooth-scroll] instance:",i,{wrapper:f?v.wrapper||"default":t,content:f?v.content||"default":n,options:z(v)})}catch(w){}return d}function q(){if(!r.clickListener){var i=function(t,n){var l=t.getAttribute("rt-smooth-scroll-to");if(l){n&&n.preventDefault();var f=null,v=parseFloat(l);if(l==="top"?f=0:!isNaN(v)&&isFinite(v)?f=v:f=Q(l),!(f===null&&l!=="top"&&isNaN(v))){var d=null,w=t.getAttribute("rt-smooth-scroll-target-id");if(w&&r.instances[w])d=r.instances[w];else{var g=t.closest("[rt-smooth-scroll-instance]");if(g){var b=g.getAttribute("rt-smooth-scroll-id");b&&r.instances[b]&&(d=r.instances[b])}}if(!d&&r.instances.root&&(d=r.instances.root),!!d){d.resize();var h={},T=t.getAttribute("rt-smooth-scroll-offset");if(T){var F=parseFloat(T);if(!isNaN(F)&&isFinite(F))h.offset=F;else{var D=Q(T);D&&(h.offset=-1*D.offsetHeight)}}var H=L(t.getAttribute("rt-smooth-scroll-duration"),void 0);H!==void 0&&(h.duration=H);var P=m(t.getAttribute("rt-smooth-scroll-immediate"),null);P!==null&&(h.immediate=P);var U=m(t.getAttribute("rt-smooth-scroll-lock"),null);U!==null&&(h.lock=U);var V=m(t.getAttribute("rt-smooth-scroll-force"),null);if(V!==null&&(h.force=V),f instanceof Element){var K=h.onComplete;h.onComplete=function(te){K&&K(te),d.resize();var W={};for(var X in h)W[X]=h[X];delete W.onComplete,d.scrollTo(f,W)}}d.scrollTo(f,h)}}}};r.clickListener=function(t){var n=t.target.closest("[rt-smooth-scroll-to]");n&&i(n,t)},r.keyListener=function(t){if(!(t.key!=="Enter"&&t.key!==" ")){var n=t.target.closest("[rt-smooth-scroll-to]");n&&!n.hasAttribute("href")&&i(n,t)}},document.addEventListener("click",r.clickListener),document.addEventListener("keydown",r.keyListener)}}function j(){function i(t,n){if(typeof t=="string"&&t.length){var l=r.instances[t];l&&n(t,l);return}for(var f=0;f<r.order.length;f++){var v=r.order[f],d=r.instances[v];d&&n(v,d)}}return{__initialized:!0,ids:function(){return r.order.slice()},get:function(t){return r.instances[t]||null},start:function(t){i(t,function(n,l){l.start()})},stop:function(t){i(t,function(n,l){l.stop()})},toggle:function(t,n){i(t,function(l,f){if(typeof n=="boolean"){n?f.stop():f.start();return}f.isStopped?f.start():f.stop()})},resize:function(t){i(t,function(n){S(n)})},refreshAnchors:function(){J()},destroy:function(t){if(r.destroyed)return;function n(l){clearTimeout(r.resizeTimers[l]);var f=r.instances[l];if(f){try{f.destroy()}catch(d){}delete r.instances[l]}var v=r.order.indexOf(l);if(v>=0&&r.order.splice(v,1),l==="root")try{delete window.lenis}catch(d){window.lenis=void 0}}if(typeof t=="string"&&t.length){n(t);return}for(r.clickListener&&(document.removeEventListener("click",r.clickListener),r.clickListener=null),r.keyListener&&(document.removeEventListener("keydown",r.keyListener),r.keyListener=null);r.order.length;)n(r.order[0]);r.destroyed=!0,r.rafId&&cancelAnimationFrame(r.rafId)}}}function E(i){window.disableScroll=function(){i.stop(),document.body&&document.body.classList.add("no-scroll")},window.enableScroll=function(){i.start(),document.body&&document.body.classList.remove("no-scroll")}}ee(c).then(function(){if(!r.destroyed){var i=document.querySelectorAll("[rt-smooth-scroll-instance]"),t=(o?1:0)+(i?i.length:0),n=t===1&&o&&(!i||i.length===0);if(o&&!r.instances.root){var l=B(function(){return null});if(l=O(document.body||document.documentElement,l),n){var f=I("rt-smooth-scroll-auto-raf"),v=x(f)?m(f,!0):!0;l.autoRaf=v}else l.autoRaf=!1;_("root",null,null,l,!0)}for(var d=0,w=0;w<i.length;w++){var g=i[w],b=A(g,"rt-smooth-scroll-id");if(b||(d++,b="instance-"+d,g.setAttribute("rt-smooth-scroll-id",b)),!r.instances[b]){var h=M(g),T=B(function(D){return A(g,D)});T=O(g,T),T.autoRaf=!1,_(b,g,h,T,!1)}}n||C();var F=j();window[k]=F,E(F),q(),window.addEventListener("resize",function(){F.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",G):G(),window[k]=window[k]||{__initialized:!0,ids:function(){return[]},get:function(){return null}}})();})();
|
|
1
|
+
/*! @rethink-js/rt-smooth-scroll v1.3.0 | MIT */
|
|
2
|
+
(()=>{(function(){var j="rtSmoothScroll";if(window[j]&&window[j].__initialized)return;function E(o,l){return!o||!o.hasAttribute(l)?null:o.getAttribute(l)}function N(o){var l=document.documentElement,a=document.body,e=E(l,o);return e!==null||(e=E(a,o),e!==null)?e:null}function H(o){var l=document.documentElement,a=document.body;return!!(l&&l.hasAttribute(o)||a&&a.hasAttribute(o))}function b(o,l){if(o==null)return l;var a=String(o).trim().toLowerCase();return a===""||a==="true"||a==="1"||a==="yes"||a==="y"||a==="on"?!0:a==="false"||a==="0"||a==="no"||a==="n"||a==="off"?!1:l}function q(o,l){if(o==null)return l;var a=String(o).trim();if(!a.length)return l;var e=Number(a);return Number.isFinite(e)?e:l}function W(o,l){if(o==null)return l;var a=String(o);return a.length?a:l}function T(o){return o<0?0:o>1?1:o}function P(o){if(!o)return null;var l=String(o).trim();if(!l)return null;if(l==="window")return window;var a=l.match(/^(.*)\(\s*(\d+)\s*\)$/);if(a){var e=a[1].trim(),d=parseInt(a[2],10);if(!e||isNaN(d)||d<1)return null;try{var c=document.querySelectorAll(e);return c[d-1]||null}catch(g){return null}}try{return document.querySelector(l)}catch(g){return null}}function ie(o){var l=String(o||"").trim();if(!l)return null;var a={linear:function(e){return T(e)},easeInQuad:function(e){return e=T(e),e*e},easeOutQuad:function(e){return e=T(e),e*(2-e)},easeInOutQuad:function(e){return e=T(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=T(e),e*e*e},easeOutCubic:function(e){return e=T(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=T(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=T(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=T(e),e===1?1:1-Math.pow(2,-10*e)}};return a[l]||null}function oe(){var o=document.body;if(o){var l=document.querySelectorAll("[rt-smooth-scroll-instance]"),a=l&&l.length>0;!H("rt-smooth-scroll")&&!a&&o.setAttribute("rt-smooth-scroll","")}}function _(o){return o!=null}function U(o){var l="rt-smooth-scroll-";function a(r){var i=o(r);return _(i)?i:N(r)}function e(r){return a(l+r)}function d(r){return _(e(r))}var c={},g=d("lerp"),t=q(e("lerp"),void 0),p=d("duration"),w=q(e("duration"),void 0),F=d("easing"),v=W(e("easing"),""),n=ie(v);g&&t!==void 0?c.lerp=t:(p&&w!==void 0&&(c.duration=w),F&&n&&(c.easing=n)),d("orientation")&&(c.orientation=W(e("orientation"),"")),d("gesture-orientation")&&(c.gestureOrientation=W(e("gesture-orientation"),""));var A=e("smooth-wheel"),z=e("normalize-wheel");if(_(A)?c.smoothWheel=b(A,!0):_(z)&&(c.smoothWheel=b(z,!0)),d("wheel-multiplier")&&(c.wheelMultiplier=q(e("wheel-multiplier"),void 0)),d("touch-multiplier")&&(c.touchMultiplier=q(e("touch-multiplier"),void 0)),d("sync-touch")&&(c.syncTouch=b(e("sync-touch"),!1)),d("sync-touch-lerp")&&(c.syncTouchLerp=q(e("sync-touch-lerp"),void 0)),d("touch-inertia-exponent")&&(c.touchInertiaExponent=q(e("touch-inertia-exponent"),void 0)),d("infinite")&&(c.infinite=b(e("infinite"),!1)),d("auto-resize")&&(c.autoResize=b(e("auto-resize"),!0)),d("overscroll")&&(c.overscroll=b(e("overscroll"),!0)),d("anchors")){var y=String(e("anchors")||"").trim();if(y===""||y.toLowerCase()==="true")c.anchors=!0;else if(y.toLowerCase()==="false")c.anchors=!1;else try{c.anchors=JSON.parse(y)}catch(r){c.anchors=!0}}d("auto-toggle")&&(c.autoToggle=b(e("auto-toggle"),!1)),d("allow-nested-scroll")&&(c.allowNestedScroll=b(e("allow-nested-scroll"),!1));var I=a(l+"options-json");if(I)try{var O=JSON.parse(I);if(O&&typeof O=="object")for(var u in O)c[u]=O[u]}catch(r){}return c}function ue(o){return new Promise(function(l,a){if(typeof window.Lenis!="undefined")return l();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){l()}),e.addEventListener("error",function(c){a(c)});return}var d=document.createElement("script");d.src=o,d.async=!0,d.dataset.rtLenis="true",d.onload=function(){l()},d.onerror=function(c){a(c)},document.head.appendChild(d)})}function le(o){if(o==null)return null;var l=String(o).trim();if(!l.length)return null;var a=l.toLowerCase();function e(v){if(!v)return null;try{return document.querySelector(v)}catch(n){return null}}function d(v){if(!v)return!1;try{return v.click(),!0}catch(n){return!1}}function c(v){if(!v)return!1;try{return typeof v.focus=="function"&&v.focus(),!0}catch(n){return!1}}if(a.indexOf("{")===0||a.indexOf("[")===0)try{var g=JSON.parse(l);return function(v,n){try{if(!g)return;for(var A=Array.isArray(g)?g:[g],z=0;z<A.length;z++){var y=A[z];if(!(!y||typeof y!="object")){var I=typeof y.type=="string"?y.type.trim().toLowerCase():"",O=typeof y.selector=="string"?y.selector.trim():"",u=typeof y.name=="string"?y.name.trim():"",r=y.detail!==void 0?y.detail:void 0;if(I==="click")d(e(O));else if(I==="focus")c(e(O));else if(I==="dispatch"){var i=u||O;if(i)try{var s=new CustomEvent(i,{detail:{trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null,detail:r}});window.dispatchEvent(s)}catch(m){}}else if(I==="call"){var f=u||O;if(f&&window[f]&&typeof window[f]=="function")try{window[f]({lenis:v||null,trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null,detail:r})}catch(m){}}}}}catch(m){}}}catch(v){}var t=l.match(/^\s*([a-zA-Z]+)\s*:\s*(.+)\s*$/);if(t){var p=String(t[1]||"").trim().toLowerCase(),w=String(t[2]||"").trim();if(!w.length)return null;if(p==="click")return function(){d(e(w))};if(p==="focus")return function(){c(e(w))};if(p==="dispatch"||p==="event")return function(v,n){try{var A=new CustomEvent(w,{detail:{trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null}});window.dispatchEvent(A)}catch(z){}};if(p==="call"||p==="fn"||p==="function")return function(v,n){try{window[w]&&typeof window[w]=="function"&&window[w]({lenis:v||null,trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null})}catch(A){}}}var F=e(l);return F?function(){d(F)}:null}function V(){var o=N("rt-smooth-scroll-anchor-links");if(b(o,!1))for(var l=N("rt-smooth-scroll-anchor-links-on-complete"),a=document.querySelectorAll('a[href*="#"]'),e=window.location.pathname.replace(/\/+$/,"").toLowerCase(),d=window.location.origin,c=0;c<a.length;c++){var g=a[c];if(!g.hasAttribute("rt-smooth-scroll-to")){var t=g.getAttribute("href");if(t){var p=t.indexOf("#");if(p!==-1){var w=t.substring(0,p),F=t.substring(p);if(!(F.length<=1)){var v=!1;if(w===""||w==="./")v=!0;else{var n=w.replace(/\/+$/,"").toLowerCase();if(w.indexOf("http")===0)try{var A=new URL(t,d);A.origin===d&&A.pathname.replace(/\/+$/,"").toLowerCase()===e&&(v=!0)}catch(z){}else n===e&&(v=!0)}v&&(g.setAttribute("rt-smooth-scroll-to",F),!g.hasAttribute("rt-smooth-scroll-on-complete")&&l!==null&&l!==void 0&&g.setAttribute("rt-smooth-scroll-on-complete",String(l)),g.removeAttribute("href"),g.style.cursor="pointer",g.setAttribute("tabindex","0"),g.setAttribute("role","button"))}}}}}}function Z(){oe(),V();var o=H("rt-smooth-scroll"),l=document.querySelectorAll("[rt-smooth-scroll-instance]"),a=l&&l.length>0,e=o||a;if(!e)return;var d=W(N("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),c=q(N("rt-smooth-scroll-resize-debounce-ms"),0),g=b(N("rt-smooth-scroll-debug"),!0),t={destroyed:!1,rafId:0,instances:{},order:[],resizeTimers:{},clickListener:null,keyListener:null};function p(u){var r=t.instances[u];if(!(!r||t.destroyed)){if(c>0){clearTimeout(t.resizeTimers[u]),t.resizeTimers[u]=setTimeout(function(){var i=t.instances[u];!i||t.destroyed||i.resize()},c);return}r.resize()}}function w(){function u(r){if(!t.destroyed){for(var i=0;i<t.order.length;i++){var s=t.order[i],f=t.instances[s];f&&f.raf(r)}t.rafId=requestAnimationFrame(u)}}t.rafId=requestAnimationFrame(u)}function F(u){var r={};for(var i in u)if(Object.prototype.hasOwnProperty.call(u,i)){var s=u[i];typeof s=="function"?r[i]="[Function]":r[i]=s}return r}function v(u,r){if(!r)return null;var i=String(r).trim();if(!i.length)return null;if(i==="window")return window;try{return(u||document).querySelector(i)}catch(s){return null}}function n(u,r){var i="rt-smooth-scroll-",s=E(u,i+"wrapper"),f=E(u,i+"content"),m=E(u,i+"events-target");if(s){var h=v(document,s);h&&(r.wrapper=h)}if(f){var L=v(document,f);L&&(r.content=L)}if(m){var C=v(document,m);C&&(r.eventsTarget=C)}return r}function A(u){var r=E(u,"rt-smooth-scroll-content");if(r){var i=null;try{i=u.querySelector(r)}catch(s){i=null}if(i)return i}return u.firstElementChild||u}function z(u,r,i,s,f){var m=s||{};f||(r&&(m.wrapper=r),i&&(m.content=i));var h=new window.Lenis(m);if(t.instances[u]=h,t.order.push(u),u==="root"&&(window.lenis=h),g)try{console.log("[rt-smooth-scroll] instance:",u,{wrapper:f?m.wrapper||"default":r,content:f?m.content||"default":i,options:F(m)})}catch(L){}return h}function y(){if(!t.clickListener){var u=function(r,i){var s=r.getAttribute("rt-smooth-scroll-to");if(s){i&&i.preventDefault();var f=null,m=parseFloat(s);if(s==="top"?f=0:!isNaN(m)&&isFinite(m)?f=m:f=P(s),!(f===null&&s!=="top"&&isNaN(m))){var h=null,L=r.getAttribute("rt-smooth-scroll-target-id");if(L&&t.instances[L])h=t.instances[L];else{var C=r.closest("[rt-smooth-scroll-instance]");if(C){var k=C.getAttribute("rt-smooth-scroll-id");k&&t.instances[k]&&(h=t.instances[k])}}if(!h&&t.instances.root&&(h=t.instances.root),!!h){h.resize();var S={},R=r.getAttribute("rt-smooth-scroll-offset");if(R){var M=parseFloat(R);if(!isNaN(M)&&isFinite(M))S.offset=M;else{var J=P(R);J&&(S.offset=-1*J.offsetHeight)}}var K=q(r.getAttribute("rt-smooth-scroll-duration"),void 0);K!==void 0&&(S.duration=K);var X=b(r.getAttribute("rt-smooth-scroll-immediate"),null);X!==null&&(S.immediate=X);var Y=b(r.getAttribute("rt-smooth-scroll-lock"),null);Y!==null&&(S.lock=Y);var x=b(r.getAttribute("rt-smooth-scroll-force"),null);x!==null&&(S.force=x);var ee=r.getAttribute("rt-smooth-scroll-on-complete"),ae=N("rt-smooth-scroll-on-complete"),re=le(_(ee)?ee:ae),se={trigger:r,target:f,value:s,id:L||null},$=null;re&&($=function(G){try{re(G,se)}catch(D){}});var te=!1,B=S.onComplete;S.onComplete=function(G){if(f instanceof Element&&!te){te=!0;try{h.resize()}catch(Q){}var D={};for(var ne in S)D[ne]=S[ne];delete D.onComplete,D.onComplete=function(Q){if(B)try{B(Q)}catch(ce){}if($)try{$(Q)}catch(ce){}},h.scrollTo(f,D);return}if(B)try{B(G)}catch(Q){}if($)try{$(G)}catch(Q){}},h.scrollTo(f,S)}}}};t.clickListener=function(r){var i=r.target.closest("[rt-smooth-scroll-to]");i&&u(i,r)},t.keyListener=function(r){if(!(r.key!=="Enter"&&r.key!==" ")){var i=r.target.closest("[rt-smooth-scroll-to]");i&&!i.hasAttribute("href")&&u(i,r)}},document.addEventListener("click",t.clickListener),document.addEventListener("keydown",t.keyListener)}}function I(){function u(r,i){if(typeof r=="string"&&r.length){var s=t.instances[r];s&&i(r,s);return}for(var f=0;f<t.order.length;f++){var m=t.order[f],h=t.instances[m];h&&i(m,h)}}return{__initialized:!0,ids:function(){return t.order.slice()},get:function(r){return t.instances[r]||null},start:function(r){u(r,function(i,s){s.start()})},stop:function(r){u(r,function(i,s){s.stop()})},toggle:function(r,i){u(r,function(s,f){if(typeof i=="boolean"){i?f.stop():f.start();return}f.isStopped?f.start():f.stop()})},resize:function(r){u(r,function(i){p(i)})},refreshAnchors:function(){V()},destroy:function(r){if(t.destroyed)return;function i(s){clearTimeout(t.resizeTimers[s]);var f=t.instances[s];if(f){try{f.destroy()}catch(h){}delete t.instances[s]}var m=t.order.indexOf(s);if(m>=0&&t.order.splice(m,1),s==="root")try{delete window.lenis}catch(h){window.lenis=void 0}}if(typeof r=="string"&&r.length){i(r);return}for(t.clickListener&&(document.removeEventListener("click",t.clickListener),t.clickListener=null),t.keyListener&&(document.removeEventListener("keydown",t.keyListener),t.keyListener=null);t.order.length;)i(t.order[0]);t.destroyed=!0,t.rafId&&cancelAnimationFrame(t.rafId)}}}function O(u){window.disableScroll=function(){u.stop(),document.body&&document.body.classList.add("no-scroll")},window.enableScroll=function(){u.start(),document.body&&document.body.classList.remove("no-scroll")}}ue(d).then(function(){if(!t.destroyed){var u=document.querySelectorAll("[rt-smooth-scroll-instance]"),r=(o?1:0)+(u?u.length:0),i=r===1&&o&&(!u||u.length===0);if(o&&!t.instances.root){var s=U(function(){return null});if(s=n(document.body||document.documentElement,s),i){var f=N("rt-smooth-scroll-auto-raf"),m=_(f)?b(f,!0):!0;s.autoRaf=m}else s.autoRaf=!1;z("root",null,null,s,!0)}for(var h=0,L=0;L<u.length;L++){var C=u[L],k=E(C,"rt-smooth-scroll-id");if(k||(h++,k="instance-"+h,C.setAttribute("rt-smooth-scroll-id",k)),!t.instances[k]){var S=A(C),R=U(function(J){return E(C,J)});R=n(C,R),R.autoRaf=!1,z(k,C,S,R,!1)}}i||w();var M=I();window[j]=M,O(M),y(),window.addEventListener("resize",function(){M.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Z):Z(),window[j]=window[j]||{__initialized:!0,ids:function(){return[]},get:function(){return null}}})();})();
|
|
3
3
|
//# sourceMappingURL=index.min.js.map
|
package/dist/index.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.js"],
|
|
4
|
-
"sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function resolveTargetFromStr(selectorStr) {\n if (!selectorStr) return null;\n var s = String(selectorStr).trim();\n if (!s) return null;\n if (s === \"window\") return window;\n\n var match = s.match(/^(.*)\\(\\s*(\\d+)\\s*\\)$/);\n if (match) {\n var baseSelector = match[1].trim();\n var index = parseInt(match[2], 10);\n if (!baseSelector || isNaN(index) || index < 1) return null;\n try {\n var all = document.querySelectorAll(baseSelector);\n return all[index - 1] || null;\n } catch (e) {\n return null;\n }\n }\n\n try {\n return document.querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function ensureAutoEnableIfNeeded() {\n var body = document.body;\n if (!body) return;\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances) {\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n }\n }\n\n function isAttrPresent(v) {\n return v !== null && v !== undefined;\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\n var hasEasing = hasRaw(\"easing\");\n var easingName = parseStr(getRaw(\"easing\"), \"\");\n var easingFn = easingByName(easingName);\n\n if (hasLerp && lerp !== undefined) {\n opts.lerp = lerp;\n } else {\n if (hasDuration && duration !== undefined) opts.duration = duration;\n if (hasEasing && easingFn) opts.easing = easingFn;\n }\n\n if (hasRaw(\"orientation\"))\n opts.orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (hasRaw(\"gesture-orientation\"))\n opts.gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\n\n var smoothWheelRaw = getRaw(\"smooth-wheel\");\n var normalizeWheelRaw = getRaw(\"normalize-wheel\");\n if (isAttrPresent(smoothWheelRaw))\n opts.smoothWheel = parseBool(smoothWheelRaw, true);\n else if (isAttrPresent(normalizeWheelRaw))\n opts.smoothWheel = parseBool(normalizeWheelRaw, true);\n\n if (hasRaw(\"wheel-multiplier\"))\n opts.wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (hasRaw(\"touch-multiplier\"))\n opts.touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (hasRaw(\"sync-touch\"))\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n if (hasRaw(\"sync-touch-lerp\"))\n opts.syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (hasRaw(\"touch-inertia-exponent\"))\n opts.touchInertiaExponent = parseNum(\n getRaw(\"touch-inertia-exponent\"),\n undefined,\n );\n if (hasRaw(\"infinite\"))\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n if (hasRaw(\"auto-resize\"))\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n if (hasRaw(\"overscroll\"))\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n\n if (hasRaw(\"anchors\")) {\n var s = String(getRaw(\"anchors\") || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") opts.anchors = true;\n else if (s.toLowerCase() === \"false\") opts.anchors = false;\n else {\n try {\n opts.anchors = JSON.parse(s);\n } catch (e) {\n opts.anchors = true;\n }\n }\n }\n\n if (hasRaw(\"auto-toggle\"))\n opts.autoToggle = parseBool(getRaw(\"auto-toggle\"), false);\n if (hasRaw(\"allow-nested-scroll\"))\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var links = document.querySelectorAll('a[href*=\"#\"]');\n var currentPath = window.location.pathname\n .replace(/\\/+$/, \"\")\n .toLowerCase();\n var origin = window.location.origin;\n\n for (var i = 0; i < links.length; i++) {\n var link = links[i];\n if (link.hasAttribute(\"rt-smooth-scroll-to\")) continue;\n\n var href = link.getAttribute(\"href\");\n if (!href) continue;\n\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex === -1) continue;\n\n var pathPart = href.substring(0, hashIndex);\n var hashPart = href.substring(hashIndex);\n\n if (hashPart.length <= 1) continue;\n\n var isLocal = false;\n if (pathPart === \"\" || pathPart === \"./\") {\n isLocal = true;\n } else {\n var normPath = pathPart.replace(/\\/+$/, \"\").toLowerCase();\n if (pathPart.indexOf(\"http\") === 0) {\n try {\n var u = new URL(href, origin);\n if (\n u.origin === origin &&\n u.pathname.replace(/\\/+$/, \"\").toLowerCase() === currentPath\n ) {\n isLocal = true;\n }\n } catch (e) {}\n } else if (normPath === currentPath) {\n isLocal = true;\n }\n }\n\n if (isLocal) {\n link.setAttribute(\"rt-smooth-scroll-to\", hashPart);\n\n // Remove href completely to hide status bar text\n link.removeAttribute(\"href\");\n\n // Restore accessibility and cursor\n link.style.cursor = \"pointer\";\n link.setAttribute(\"tabindex\", \"0\");\n link.setAttribute(\"role\", \"button\");\n }\n }\n }\n\n function init() {\n ensureAutoEnableIfNeeded();\n convertAnchorLinks();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instanceEls && instanceEls.length > 0;\n var shouldRun = enabledRoot || hasInstances;\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\",\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0,\n );\n var debug = parseBool(getAttr(\"rt-smooth-scroll-debug\"), true);\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n resizeTimers: {},\n clickListener: null,\n keyListener: null,\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") out[k] = \"[Function]\";\n else out[k] = v;\n }\n return out;\n }\n\n function resolveElementFromSelector(base, selector) {\n if (!selector) return null;\n var s = String(selector).trim();\n if (!s.length) return null;\n if (s === \"window\") return window;\n try {\n return (base || document).querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function applySelectorsToOptions(el, opts) {\n var prefix = \"rt-smooth-scroll-\";\n var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\n if (wrapperSel) {\n var w = resolveElementFromSelector(document, wrapperSel);\n if (w) opts.wrapper = w;\n }\n if (contentSel) {\n var c = resolveElementFromSelector(document, contentSel);\n if (c) opts.content = c;\n }\n if (eventsSel) {\n var et = resolveElementFromSelector(document, eventsSel);\n if (et) opts.eventsTarget = et;\n }\n return opts;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = null;\n try {\n found = wrapperEl.querySelector(selector);\n } catch (e) {\n found = null;\n }\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function createInstance(id, wrapper, content, options, isRoot) {\n var opts = options || {};\n if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (id === \"root\") window.lenis = inst;\n if (debug) {\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: isRoot ? opts.wrapper || \"default\" : wrapper,\n content: isRoot ? opts.content || \"default\" : content,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n }\n return inst;\n }\n\n function setupScrollToListeners() {\n if (state.clickListener) return;\n\n var handleScrollAction = function (targetEl, e) {\n var targetVal = targetEl.getAttribute(\"rt-smooth-scroll-to\");\n if (!targetVal) return;\n\n if (e) e.preventDefault();\n\n var target = null;\n var numeric = parseFloat(targetVal);\n\n if (targetVal === \"top\") {\n target = 0;\n } else if (!isNaN(numeric) && isFinite(numeric)) {\n target = numeric;\n } else {\n target = resolveTargetFromStr(targetVal);\n }\n\n if (target === null && targetVal !== \"top\" && isNaN(numeric)) return;\n\n var instance = null;\n var explicitId = targetEl.getAttribute(\"rt-smooth-scroll-target-id\");\n if (explicitId && state.instances[explicitId]) {\n instance = state.instances[explicitId];\n } else {\n var parentWrapper = targetEl.closest(\"[rt-smooth-scroll-instance]\");\n if (parentWrapper) {\n var parentId = parentWrapper.getAttribute(\"rt-smooth-scroll-id\");\n if (parentId && state.instances[parentId]) {\n instance = state.instances[parentId];\n }\n }\n }\n if (!instance && state.instances[\"root\"]) {\n instance = state.instances[\"root\"];\n }\n\n if (!instance) return;\n\n // Force resize before calculating scroll to handle lazy-loaded elements\n // that might have shifted layout since the last update.\n instance.resize();\n\n var opts = {};\n var offsetRaw = targetEl.getAttribute(\"rt-smooth-scroll-offset\");\n if (offsetRaw) {\n var offsetNum = parseFloat(offsetRaw);\n if (!isNaN(offsetNum) && isFinite(offsetNum)) {\n opts.offset = offsetNum;\n } else {\n var offsetEl = resolveTargetFromStr(offsetRaw);\n if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;\n }\n }\n var dur = parseNum(\n targetEl.getAttribute(\"rt-smooth-scroll-duration\"),\n undefined,\n );\n if (dur !== undefined) opts.duration = dur;\n var immediate = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-immediate\"),\n null,\n );\n if (immediate !== null) opts.immediate = immediate;\n var lock = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-lock\"),\n null,\n );\n if (lock !== null) opts.lock = lock;\n var force = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-force\"),\n null,\n );\n if (force !== null) opts.force = force;\n\n // If target is an DOM Element (not a number), we add a correction step.\n // If layout shifts during the scroll (e.g. images loading), the target\n // position might change. We re-check on completion.\n if (target instanceof Element) {\n var originalComplete = opts.onComplete;\n opts.onComplete = function (inst) {\n if (originalComplete) originalComplete(inst);\n // Re-measure the layout\n instance.resize();\n // Perform a correction scroll to the updated position\n // We create a copy of opts but remove onComplete to prevent infinite loops\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n // Execute correction\n instance.scrollTo(target, retryOpts);\n };\n }\n\n instance.scrollTo(target, opts);\n };\n\n state.clickListener = function (e) {\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger) handleScrollAction(trigger, e);\n };\n\n state.keyListener = function (e) {\n if (e.key !== \"Enter\" && e.key !== \" \") return;\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger && !trigger.hasAttribute(\"href\")) {\n handleScrollAction(trigger, e);\n }\n };\n\n document.addEventListener(\"click\", state.clickListener);\n document.addEventListener(\"keydown\", state.keyListener);\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n refreshAnchors: function () {\n convertAnchorLinks();\n },\n destroy: function (id) {\n if (state.destroyed) return;\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n if (state.clickListener) {\n document.removeEventListener(\"click\", state.clickListener);\n state.clickListener = null;\n }\n if (state.keyListener) {\n document.removeEventListener(\"keydown\", state.keyListener);\n state.keyListener = null;\n }\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);\n var allowAutoRaf =\n totalCount === 1 && enabledRoot && (!els || els.length === 0);\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot,\n );\n if (allowAutoRaf) {\n var rawAutoRaf = getAttr(\"rt-smooth-scroll-auto-raf\");\n var autoRaf = isAttrPresent(rawAutoRaf)\n ? parseBool(rawAutoRaf, true)\n : true;\n optsRoot.autoRaf = autoRaf;\n } else {\n optsRoot.autoRaf = false;\n }\n createInstance(\"root\", null, null, optsRoot, true);\n }\n\n var autoCount = 0;\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n el.setAttribute(\"rt-smooth-scroll-id\", id);\n }\n if (state.instances[id]) continue;\n var content = getContentForWrapper(el);\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n setupScrollToListeners();\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["RT_NS", "getAttrFrom", "el", "name", "getAttr", "html", "body", "v", "hasAttrAnywhere", "parseBool", "def", "parseNum", "n", "parseStr", "clamp01", "t", "resolveTargetFromStr", "selectorStr", "
|
|
4
|
+
"sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function resolveTargetFromStr(selectorStr) {\n if (!selectorStr) return null;\n var s = String(selectorStr).trim();\n if (!s) return null;\n if (s === \"window\") return window;\n\n var match = s.match(/^(.*)\\(\\s*(\\d+)\\s*\\)$/);\n if (match) {\n var baseSelector = match[1].trim();\n var index = parseInt(match[2], 10);\n if (!baseSelector || isNaN(index) || index < 1) return null;\n try {\n var all = document.querySelectorAll(baseSelector);\n return all[index - 1] || null;\n } catch (e) {\n return null;\n }\n }\n\n try {\n return document.querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function ensureAutoEnableIfNeeded() {\n var body = document.body;\n if (!body) return;\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances) {\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n }\n }\n\n function isAttrPresent(v) {\n return v !== null && v !== undefined;\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\n var hasEasing = hasRaw(\"easing\");\n var easingName = parseStr(getRaw(\"easing\"), \"\");\n var easingFn = easingByName(easingName);\n\n if (hasLerp && lerp !== undefined) {\n opts.lerp = lerp;\n } else {\n if (hasDuration && duration !== undefined) opts.duration = duration;\n if (hasEasing && easingFn) opts.easing = easingFn;\n }\n\n if (hasRaw(\"orientation\"))\n opts.orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (hasRaw(\"gesture-orientation\"))\n opts.gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\n\n var smoothWheelRaw = getRaw(\"smooth-wheel\");\n var normalizeWheelRaw = getRaw(\"normalize-wheel\");\n if (isAttrPresent(smoothWheelRaw))\n opts.smoothWheel = parseBool(smoothWheelRaw, true);\n else if (isAttrPresent(normalizeWheelRaw))\n opts.smoothWheel = parseBool(normalizeWheelRaw, true);\n\n if (hasRaw(\"wheel-multiplier\"))\n opts.wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (hasRaw(\"touch-multiplier\"))\n opts.touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (hasRaw(\"sync-touch\"))\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n if (hasRaw(\"sync-touch-lerp\"))\n opts.syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (hasRaw(\"touch-inertia-exponent\"))\n opts.touchInertiaExponent = parseNum(\n getRaw(\"touch-inertia-exponent\"),\n undefined,\n );\n if (hasRaw(\"infinite\"))\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n if (hasRaw(\"auto-resize\"))\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n if (hasRaw(\"overscroll\"))\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n\n if (hasRaw(\"anchors\")) {\n var s = String(getRaw(\"anchors\") || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") opts.anchors = true;\n else if (s.toLowerCase() === \"false\") opts.anchors = false;\n else {\n try {\n opts.anchors = JSON.parse(s);\n } catch (e) {\n opts.anchors = true;\n }\n }\n }\n\n if (hasRaw(\"auto-toggle\"))\n opts.autoToggle = parseBool(getRaw(\"auto-toggle\"), false);\n if (hasRaw(\"allow-nested-scroll\"))\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function parseOnCompleteAction(raw) {\n if (raw === null || raw === undefined) return null;\n var s = String(raw).trim();\n if (!s.length) return null;\n\n var lower = s.toLowerCase();\n\n function tryQuery(sel) {\n if (!sel) return null;\n try {\n return document.querySelector(sel);\n } catch (e) {\n return null;\n }\n }\n\n function safeClick(el) {\n if (!el) return false;\n try {\n el.click();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function safeFocus(el) {\n if (!el) return false;\n try {\n if (typeof el.focus === \"function\") el.focus();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n if (lower.indexOf(\"{\") === 0 || lower.indexOf(\"[\") === 0) {\n try {\n var parsed = JSON.parse(s);\n return function (inst, ctx) {\n try {\n if (!parsed) return;\n var arr = Array.isArray(parsed) ? parsed : [parsed];\n for (var i = 0; i < arr.length; i++) {\n var a = arr[i];\n if (!a || typeof a !== \"object\") continue;\n\n var type =\n typeof a.type === \"string\" ? a.type.trim().toLowerCase() : \"\";\n var selector =\n typeof a.selector === \"string\" ? a.selector.trim() : \"\";\n var name = typeof a.name === \"string\" ? a.name.trim() : \"\";\n var detail = a.detail !== undefined ? a.detail : undefined;\n\n if (type === \"click\") {\n safeClick(tryQuery(selector));\n } else if (type === \"focus\") {\n safeFocus(tryQuery(selector));\n } else if (type === \"dispatch\") {\n var evName = name || selector;\n if (evName) {\n try {\n var ev = new CustomEvent(evName, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n },\n });\n window.dispatchEvent(ev);\n } catch (e) {}\n }\n } else if (type === \"call\") {\n var fnName = name || selector;\n if (\n fnName &&\n window[fnName] &&\n typeof window[fnName] === \"function\"\n ) {\n try {\n window[fnName]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n });\n } catch (e) {}\n }\n }\n }\n } catch (e) {}\n };\n } catch (e) {}\n }\n\n var m = s.match(/^\\s*([a-zA-Z]+)\\s*:\\s*(.+)\\s*$/);\n if (m) {\n var type2 = String(m[1] || \"\")\n .trim()\n .toLowerCase();\n var rest = String(m[2] || \"\").trim();\n if (!rest.length) return null;\n\n if (type2 === \"click\") {\n return function () {\n safeClick(tryQuery(rest));\n };\n }\n if (type2 === \"focus\") {\n return function () {\n safeFocus(tryQuery(rest));\n };\n }\n if (type2 === \"dispatch\" || type2 === \"event\") {\n return function (inst, ctx) {\n try {\n var ev2 = new CustomEvent(rest, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n },\n });\n window.dispatchEvent(ev2);\n } catch (e) {}\n };\n }\n if (type2 === \"call\" || type2 === \"fn\" || type2 === \"function\") {\n return function (inst, ctx) {\n try {\n if (window[rest] && typeof window[rest] === \"function\") {\n window[rest]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n });\n }\n } catch (e) {}\n };\n }\n }\n\n var el = tryQuery(s);\n if (el) {\n return function () {\n safeClick(el);\n };\n }\n\n return null;\n }\n\n function convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var defaultOnComplete = getAttr(\n \"rt-smooth-scroll-anchor-links-on-complete\",\n );\n\n var links = document.querySelectorAll('a[href*=\"#\"]');\n var currentPath = window.location.pathname\n .replace(/\\/+$/, \"\")\n .toLowerCase();\n var origin = window.location.origin;\n\n for (var i = 0; i < links.length; i++) {\n var link = links[i];\n if (link.hasAttribute(\"rt-smooth-scroll-to\")) continue;\n\n var href = link.getAttribute(\"href\");\n if (!href) continue;\n\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex === -1) continue;\n\n var pathPart = href.substring(0, hashIndex);\n var hashPart = href.substring(hashIndex);\n\n if (hashPart.length <= 1) continue;\n\n var isLocal = false;\n if (pathPart === \"\" || pathPart === \"./\") {\n isLocal = true;\n } else {\n var normPath = pathPart.replace(/\\/+$/, \"\").toLowerCase();\n if (pathPart.indexOf(\"http\") === 0) {\n try {\n var u = new URL(href, origin);\n if (\n u.origin === origin &&\n u.pathname.replace(/\\/+$/, \"\").toLowerCase() === currentPath\n ) {\n isLocal = true;\n }\n } catch (e) {}\n } else if (normPath === currentPath) {\n isLocal = true;\n }\n }\n\n if (isLocal) {\n link.setAttribute(\"rt-smooth-scroll-to\", hashPart);\n\n if (\n !link.hasAttribute(\"rt-smooth-scroll-on-complete\") &&\n defaultOnComplete !== null &&\n defaultOnComplete !== undefined\n ) {\n link.setAttribute(\n \"rt-smooth-scroll-on-complete\",\n String(defaultOnComplete),\n );\n }\n\n link.removeAttribute(\"href\");\n\n link.style.cursor = \"pointer\";\n link.setAttribute(\"tabindex\", \"0\");\n link.setAttribute(\"role\", \"button\");\n }\n }\n }\n\n function init() {\n ensureAutoEnableIfNeeded();\n convertAnchorLinks();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instanceEls && instanceEls.length > 0;\n var shouldRun = enabledRoot || hasInstances;\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\",\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0,\n );\n var debug = parseBool(getAttr(\"rt-smooth-scroll-debug\"), true);\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n resizeTimers: {},\n clickListener: null,\n keyListener: null,\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") out[k] = \"[Function]\";\n else out[k] = v;\n }\n return out;\n }\n\n function resolveElementFromSelector(base, selector) {\n if (!selector) return null;\n var s = String(selector).trim();\n if (!s.length) return null;\n if (s === \"window\") return window;\n try {\n return (base || document).querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function applySelectorsToOptions(el, opts) {\n var prefix = \"rt-smooth-scroll-\";\n var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\n if (wrapperSel) {\n var w = resolveElementFromSelector(document, wrapperSel);\n if (w) opts.wrapper = w;\n }\n if (contentSel) {\n var c = resolveElementFromSelector(document, contentSel);\n if (c) opts.content = c;\n }\n if (eventsSel) {\n var et = resolveElementFromSelector(document, eventsSel);\n if (et) opts.eventsTarget = et;\n }\n return opts;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = null;\n try {\n found = wrapperEl.querySelector(selector);\n } catch (e) {\n found = null;\n }\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function createInstance(id, wrapper, content, options, isRoot) {\n var opts = options || {};\n if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (id === \"root\") window.lenis = inst;\n if (debug) {\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: isRoot ? opts.wrapper || \"default\" : wrapper,\n content: isRoot ? opts.content || \"default\" : content,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n }\n return inst;\n }\n\n function setupScrollToListeners() {\n if (state.clickListener) return;\n\n var handleScrollAction = function (targetEl, e) {\n var targetVal = targetEl.getAttribute(\"rt-smooth-scroll-to\");\n if (!targetVal) return;\n\n if (e) e.preventDefault();\n\n var target = null;\n var numeric = parseFloat(targetVal);\n\n if (targetVal === \"top\") {\n target = 0;\n } else if (!isNaN(numeric) && isFinite(numeric)) {\n target = numeric;\n } else {\n target = resolveTargetFromStr(targetVal);\n }\n\n if (target === null && targetVal !== \"top\" && isNaN(numeric)) return;\n\n var instance = null;\n var explicitId = targetEl.getAttribute(\"rt-smooth-scroll-target-id\");\n if (explicitId && state.instances[explicitId]) {\n instance = state.instances[explicitId];\n } else {\n var parentWrapper = targetEl.closest(\"[rt-smooth-scroll-instance]\");\n if (parentWrapper) {\n var parentId = parentWrapper.getAttribute(\"rt-smooth-scroll-id\");\n if (parentId && state.instances[parentId]) {\n instance = state.instances[parentId];\n }\n }\n }\n if (!instance && state.instances[\"root\"]) {\n instance = state.instances[\"root\"];\n }\n\n if (!instance) return;\n\n instance.resize();\n\n var opts = {};\n var offsetRaw = targetEl.getAttribute(\"rt-smooth-scroll-offset\");\n if (offsetRaw) {\n var offsetNum = parseFloat(offsetRaw);\n if (!isNaN(offsetNum) && isFinite(offsetNum)) {\n opts.offset = offsetNum;\n } else {\n var offsetEl = resolveTargetFromStr(offsetRaw);\n if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;\n }\n }\n var dur = parseNum(\n targetEl.getAttribute(\"rt-smooth-scroll-duration\"),\n undefined,\n );\n if (dur !== undefined) opts.duration = dur;\n var immediate = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-immediate\"),\n null,\n );\n if (immediate !== null) opts.immediate = immediate;\n var lock = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-lock\"),\n null,\n );\n if (lock !== null) opts.lock = lock;\n var force = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-force\"),\n null,\n );\n if (force !== null) opts.force = force;\n\n var onCompleteRawLocal = targetEl.getAttribute(\n \"rt-smooth-scroll-on-complete\",\n );\n var onCompleteRawGlobal = getAttr(\"rt-smooth-scroll-on-complete\");\n var onCompleteFn = parseOnCompleteAction(\n isAttrPresent(onCompleteRawLocal)\n ? onCompleteRawLocal\n : onCompleteRawGlobal,\n );\n\n var ctx = {\n trigger: targetEl,\n target: target,\n value: targetVal,\n id: explicitId || null,\n };\n\n var userOnComplete = null;\n if (onCompleteFn) {\n userOnComplete = function (inst) {\n try {\n onCompleteFn(inst, ctx);\n } catch (e) {}\n };\n }\n\n var didCorrect = false;\n var originalComplete = opts.onComplete;\n\n opts.onComplete = function (inst) {\n if (target instanceof Element) {\n if (!didCorrect) {\n didCorrect = true;\n try {\n instance.resize();\n } catch (e) {}\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n retryOpts.onComplete = function (inst2) {\n if (originalComplete) {\n try {\n originalComplete(inst2);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst2);\n } catch (e) {}\n }\n };\n instance.scrollTo(target, retryOpts);\n return;\n }\n }\n\n if (originalComplete) {\n try {\n originalComplete(inst);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst);\n } catch (e) {}\n }\n };\n\n instance.scrollTo(target, opts);\n };\n\n state.clickListener = function (e) {\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger) handleScrollAction(trigger, e);\n };\n\n state.keyListener = function (e) {\n if (e.key !== \"Enter\" && e.key !== \" \") return;\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger && !trigger.hasAttribute(\"href\")) {\n handleScrollAction(trigger, e);\n }\n };\n\n document.addEventListener(\"click\", state.clickListener);\n document.addEventListener(\"keydown\", state.keyListener);\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n refreshAnchors: function () {\n convertAnchorLinks();\n },\n destroy: function (id) {\n if (state.destroyed) return;\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n if (state.clickListener) {\n document.removeEventListener(\"click\", state.clickListener);\n state.clickListener = null;\n }\n if (state.keyListener) {\n document.removeEventListener(\"keydown\", state.keyListener);\n state.keyListener = null;\n }\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);\n var allowAutoRaf =\n totalCount === 1 && enabledRoot && (!els || els.length === 0);\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot,\n );\n if (allowAutoRaf) {\n var rawAutoRaf = getAttr(\"rt-smooth-scroll-auto-raf\");\n var autoRaf = isAttrPresent(rawAutoRaf)\n ? parseBool(rawAutoRaf, true)\n : true;\n optsRoot.autoRaf = autoRaf;\n } else {\n optsRoot.autoRaf = false;\n }\n createInstance(\"root\", null, null, optsRoot, true);\n }\n\n var autoCount = 0;\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n el.setAttribute(\"rt-smooth-scroll-id\", id);\n }\n if (state.instances[id]) continue;\n var content = getContentForWrapper(el);\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n setupScrollToListeners();\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["RT_NS", "getAttrFrom", "el", "name", "getAttr", "html", "body", "v", "hasAttrAnywhere", "parseBool", "def", "s", "parseNum", "n", "parseStr", "clamp01", "t", "resolveTargetFromStr", "selectorStr", "match", "baseSelector", "index", "all", "e", "easingByName", "easings", "ensureAutoEnableIfNeeded", "instances", "hasInstances", "isAttrPresent", "readOptions", "getLocal", "prefix", "localOrGlobal", "getRaw", "hasRaw", "opts", "hasLerp", "lerp", "hasDuration", "duration", "hasEasing", "easingName", "easingFn", "smoothWheelRaw", "normalizeWheelRaw", "extra", "parsed", "k", "loadScriptOnce", "src", "resolve", "reject", "existing", "parseOnCompleteAction", "raw", "lower", "tryQuery", "sel", "safeClick", "safeFocus", "inst", "ctx", "arr", "i", "a", "type", "selector", "detail", "evName", "ev", "fnName", "m", "type2", "rest", "ev2", "convertAnchorLinks", "defaultOnComplete", "links", "currentPath", "origin", "link", "href", "hashIndex", "pathPart", "hashPart", "isLocal", "normPath", "u", "init", "enabledRoot", "instanceEls", "shouldRun", "lenisSrc", "resizeDebounceMs", "debug", "state", "scheduleResize", "id", "i2", "startRaf", "raf", "time", "sanitizeOptionsForLog", "out", "resolveElementFromSelector", "base", "applySelectorsToOptions", "wrapperSel", "contentSel", "eventsSel", "w", "c", "et", "getContentForWrapper", "wrapperEl", "found", "createInstance", "wrapper", "content", "options", "isRoot", "setupScrollToListeners", "handleScrollAction", "targetEl", "targetVal", "target", "numeric", "instance", "explicitId", "parentWrapper", "parentId", "offsetRaw", "offsetNum", "offsetEl", "dur", "immediate", "lock", "force", "onCompleteRawLocal", "onCompleteRawGlobal", "onCompleteFn", "userOnComplete", "didCorrect", "originalComplete", "retryOpts", "inst2", "trigger", "makeApi", "forEachTarget", "fn", "one", "_", "destroyOne", "idx", "installLegacyAliases", "api", "els", "totalCount", "allowAutoRaf", "optsRoot", "rawAutoRaf", "autoRaf", "autoCount"]
|
|
7
7
|
}
|
package/package.json
CHANGED