Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
No EOL
1.4 KiB
Text
56 lines
No EOL
1.4 KiB
Text
/* eslint-disable no-return-assign */
|
|
import canUseDOM from './canUseDOM';
|
|
export var optionsSupported = false;
|
|
export var onceSupported = false;
|
|
|
|
try {
|
|
var options = {
|
|
get passive() {
|
|
return optionsSupported = true;
|
|
},
|
|
|
|
get once() {
|
|
// eslint-disable-next-line no-multi-assign
|
|
return onceSupported = optionsSupported = true;
|
|
}
|
|
|
|
};
|
|
|
|
if (canUseDOM) {
|
|
window.addEventListener('test', options, options);
|
|
window.removeEventListener('test', options, true);
|
|
}
|
|
} catch (e) {
|
|
/* */
|
|
}
|
|
|
|
/**
|
|
* An `addEventListener` ponyfill, supports the `once` option
|
|
*
|
|
* @param node the element
|
|
* @param eventName the event name
|
|
* @param handle the handler
|
|
* @param options event options
|
|
*/
|
|
function addEventListener(node, eventName, handler, options) {
|
|
if (options && typeof options !== 'boolean' && !onceSupported) {
|
|
var once = options.once,
|
|
capture = options.capture;
|
|
var wrappedHandler = handler;
|
|
|
|
if (!onceSupported && once) {
|
|
wrappedHandler = handler.__once || function onceHandler(event) {
|
|
this.removeEventListener(eventName, onceHandler, capture);
|
|
handler.call(this, event);
|
|
};
|
|
|
|
handler.__once = wrappedHandler;
|
|
}
|
|
|
|
node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);
|
|
}
|
|
|
|
node.addEventListener(eventName, handler, options);
|
|
}
|
|
|
|
export default addEventListener; |