@akashjs/runtime 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +50 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +50 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -921,6 +921,55 @@ function useWindowSize() {
|
|
|
921
921
|
height: (() => height())
|
|
922
922
|
};
|
|
923
923
|
}
|
|
924
|
+
function useClickOutside(target, handler, options = {}) {
|
|
925
|
+
if (typeof document === "undefined") return () => {
|
|
926
|
+
};
|
|
927
|
+
const {
|
|
928
|
+
events = ["pointerdown"],
|
|
929
|
+
ignore = [],
|
|
930
|
+
active = true
|
|
931
|
+
} = options;
|
|
932
|
+
let isActive = active;
|
|
933
|
+
function getTarget() {
|
|
934
|
+
return typeof target === "function" ? target() : target;
|
|
935
|
+
}
|
|
936
|
+
function shouldIgnore(event) {
|
|
937
|
+
const eventTarget = event.target;
|
|
938
|
+
if (!eventTarget) return false;
|
|
939
|
+
for (const pattern of ignore) {
|
|
940
|
+
if (typeof pattern === "string") {
|
|
941
|
+
if (eventTarget.closest(pattern)) return true;
|
|
942
|
+
} else {
|
|
943
|
+
if (pattern === eventTarget || pattern.contains(eventTarget)) return true;
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
return false;
|
|
947
|
+
}
|
|
948
|
+
function listener(event) {
|
|
949
|
+
if (!isActive) return;
|
|
950
|
+
const el = getTarget();
|
|
951
|
+
if (!el) return;
|
|
952
|
+
const eventTarget = event.target;
|
|
953
|
+
if (el === eventTarget || el.contains(eventTarget)) return;
|
|
954
|
+
if (shouldIgnore(event)) return;
|
|
955
|
+
handler(event);
|
|
956
|
+
}
|
|
957
|
+
for (const eventName of events) {
|
|
958
|
+
document.addEventListener(eventName, listener, { passive: true, capture: true });
|
|
959
|
+
}
|
|
960
|
+
const dispose = () => {
|
|
961
|
+
for (const eventName of events) {
|
|
962
|
+
document.removeEventListener(eventName, listener, { capture: true });
|
|
963
|
+
}
|
|
964
|
+
};
|
|
965
|
+
dispose.enable = () => {
|
|
966
|
+
isActive = true;
|
|
967
|
+
};
|
|
968
|
+
dispose.disable = () => {
|
|
969
|
+
isActive = false;
|
|
970
|
+
};
|
|
971
|
+
return dispose;
|
|
972
|
+
}
|
|
924
973
|
|
|
925
974
|
// src/portal.ts
|
|
926
975
|
var Portal = defineComponent((ctx) => {
|
|
@@ -4546,6 +4595,6 @@ function globalEventBus() {
|
|
|
4546
4595
|
return globalBus;
|
|
4547
4596
|
}
|
|
4548
4597
|
|
|
4549
|
-
export { Await, ErrorBoundary, HYDRATE_ATTR, Image, LWWRegister, Portal, Suspense, Switch, Transition, VirtualFor, animate, animateGroup, animateSequence, animateSpring, animateStagger, applyDirective, applyStyles, assignTransitionName, awaitSignal, bindClass, bindClasses, bindDimensions, bindElement, bindGroup, bindGroupItem, bindScroll, bindStyle, bindStyles, calculateRange, capitalize, chain, checkForLeaks, claimElement, claimText, clearProviders, clearQueryState, clearStores, collectSSRHead, countOps, createApp, createDataTable, createEventBus, createFlip, createInjector, createLocalTransport, createMachine, createOfflineStore, createSlots, createSync, createTimer, createToaster, createWebSocketTransport, css, currency, cx, date, deepSignal, defer, defineAsyncComponent, defineCustomElement, defineDirective, defineFormAction, definePipe, definePlugin, defineProvider, defineSnippet, defineStates, defineStore, directiveFromFn, disableLeakDetection, discoverStaticRoutes, easings, enableLeakDetection, enableSnapshots, enterTransition, escapeHtml, exitTransition, findHydrationBoundaries, flip, formatProfile, generatePaths, generateSWScript, generateSitemap, generateTransitionCSS, getActiveEffects, getLeakDetectionStats, getProfileSummary, getQueryParams, getSuspenseContext, getTransitionClasses, globalEventBus, hasSlot, hydrate, injectProvider, inspect, isDeepSignal, isHydrationActive, isLeakDetectionEnabled, isProfiling, isServerRendering, json, keyframes, longestIncreasingSubsequence, lowercase, match, measureAsync, measureSync, nodeToHtml, number, onEvent, percent, pipe, plural, prerender, progressiveHydrate, reconcileKeys, recordPerfEntry, registerPending, registerServiceWorker, relativeTime, removeDirectives, removeQueryState, renderHeadToString, renderNodes, renderSlot, renderSwitch, renderToStream, renderToString, renderToStringSync, reportLeaks, resetQueryState, sitemapFromResults, ssrElement, ssrRaw, ssrText, startProfiling, startViewTransition, stopProfiling, subscribePush, supportsViewTransitions, titleCase, toCustomElement, toRaw, trackEffect, trim, truncate, tweened, untrackEffect, updateDirective, uppercase, urlToFilePath, useAnnounce, useBreakpoint, useClipboard, useCounter, useDebounce, useFocusTrap, useGeolocation, useHead, useInfiniteScroll, useInterval, useKeyboard, useMediaQuery, useOnline, useOpenGraph, usePrevious, useQueryState, useQueryStates, useSEO, useStorage, useStructuredData, useTheme, useThrottle, useTimeout, useToggle, useTwitterCard, useVirtualList, useWindowSize, vAutoFocus, vClickOutside, vIntersect, vLongPress, vResize, viewTransitionCSS, watch, watchDebounced, watchOnce, withModifiers };
|
|
4598
|
+
export { Await, ErrorBoundary, HYDRATE_ATTR, Image, LWWRegister, Portal, Suspense, Switch, Transition, VirtualFor, animate, animateGroup, animateSequence, animateSpring, animateStagger, applyDirective, applyStyles, assignTransitionName, awaitSignal, bindClass, bindClasses, bindDimensions, bindElement, bindGroup, bindGroupItem, bindScroll, bindStyle, bindStyles, calculateRange, capitalize, chain, checkForLeaks, claimElement, claimText, clearProviders, clearQueryState, clearStores, collectSSRHead, countOps, createApp, createDataTable, createEventBus, createFlip, createInjector, createLocalTransport, createMachine, createOfflineStore, createSlots, createSync, createTimer, createToaster, createWebSocketTransport, css, currency, cx, date, deepSignal, defer, defineAsyncComponent, defineCustomElement, defineDirective, defineFormAction, definePipe, definePlugin, defineProvider, defineSnippet, defineStates, defineStore, directiveFromFn, disableLeakDetection, discoverStaticRoutes, easings, enableLeakDetection, enableSnapshots, enterTransition, escapeHtml, exitTransition, findHydrationBoundaries, flip, formatProfile, generatePaths, generateSWScript, generateSitemap, generateTransitionCSS, getActiveEffects, getLeakDetectionStats, getProfileSummary, getQueryParams, getSuspenseContext, getTransitionClasses, globalEventBus, hasSlot, hydrate, injectProvider, inspect, isDeepSignal, isHydrationActive, isLeakDetectionEnabled, isProfiling, isServerRendering, json, keyframes, longestIncreasingSubsequence, lowercase, match, measureAsync, measureSync, nodeToHtml, number, onEvent, percent, pipe, plural, prerender, progressiveHydrate, reconcileKeys, recordPerfEntry, registerPending, registerServiceWorker, relativeTime, removeDirectives, removeQueryState, renderHeadToString, renderNodes, renderSlot, renderSwitch, renderToStream, renderToString, renderToStringSync, reportLeaks, resetQueryState, sitemapFromResults, ssrElement, ssrRaw, ssrText, startProfiling, startViewTransition, stopProfiling, subscribePush, supportsViewTransitions, titleCase, toCustomElement, toRaw, trackEffect, trim, truncate, tweened, untrackEffect, updateDirective, uppercase, urlToFilePath, useAnnounce, useBreakpoint, useClickOutside, useClipboard, useCounter, useDebounce, useFocusTrap, useGeolocation, useHead, useInfiniteScroll, useInterval, useKeyboard, useMediaQuery, useOnline, useOpenGraph, usePrevious, useQueryState, useQueryStates, useSEO, useStorage, useStructuredData, useTheme, useThrottle, useTimeout, useToggle, useTwitterCard, useVirtualList, useWindowSize, vAutoFocus, vClickOutside, vIntersect, vLongPress, vResize, viewTransitionCSS, watch, watchDebounced, watchOnce, withModifiers };
|
|
4550
4599
|
//# sourceMappingURL=index.js.map
|
|
4551
4600
|
//# sourceMappingURL=index.js.map
|