routie dev init since i didn't adhere to any proper guidance up until now

This commit is contained in:
2026-04-29 22:27:29 -06:00
commit e1dabb71e2
15301 changed files with 3562618 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
import type { DirectiveBinding } from 'vue';
type ObserveHandler = (isIntersecting: boolean, entries: IntersectionObserverEntry[], observer: IntersectionObserver) => void;
export interface ObserveDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {
value?: ObserveHandler | {
handler: ObserveHandler;
options?: IntersectionObserverInit;
};
modifiers: {
once?: boolean;
quiet?: boolean;
};
}
declare function mounted(el: HTMLElement, binding: ObserveDirectiveBinding): void;
declare function unmounted(el: HTMLElement, binding: ObserveDirectiveBinding): void;
export declare const Intersect: {
mounted: typeof mounted;
unmounted: typeof unmounted;
updated: (el: HTMLElement, binding: ObserveDirectiveBinding) => void;
};
export default Intersect;
+51
View File
@@ -0,0 +1,51 @@
// Utilities
import { SUPPORTS_INTERSECTION } from "../../util/index.js"; // Types
function mounted(el, binding) {
if (!SUPPORTS_INTERSECTION) return;
const modifiers = binding.modifiers || {};
const value = binding.value;
const {
handler,
options
} = typeof value === 'object' ? value : {
handler: value,
options: {}
};
const observer = new IntersectionObserver((entries = [], observer) => {
const _observe = el._observe?.[binding.instance.$.uid];
if (!_observe) return; // Just in case, should never fire
const isIntersecting = entries.some(entry => entry.isIntersecting);
// If is not quiet or has already been
// initted, invoke the user callback
if (handler && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) {
handler(isIntersecting, entries, observer);
}
if (isIntersecting && modifiers.once) unmounted(el, binding);else _observe.init = true;
}, options);
el._observe = Object(el._observe);
el._observe[binding.instance.$.uid] = {
init: false,
observer
};
observer.observe(el);
}
function unmounted(el, binding) {
const observe = el._observe?.[binding.instance.$.uid];
if (!observe) return;
observe.observer.unobserve(el);
delete el._observe[binding.instance.$.uid];
}
export const Intersect = {
mounted,
unmounted,
updated: (el, binding) => {
if (el._observe?.[binding.instance.$.uid]) {
unmounted(el, binding);
mounted(el, binding);
}
}
};
export default Intersect;
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["SUPPORTS_INTERSECTION","mounted","el","binding","modifiers","value","handler","options","observer","IntersectionObserver","entries","_observe","instance","$","uid","isIntersecting","some","entry","quiet","init","once","unmounted","Object","observe","unobserve","Intersect","updated"],"sources":["../../../src/directives/intersect/index.ts"],"sourcesContent":["// Utilities\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n if (!SUPPORTS_INTERSECTION) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[binding.instance!.$.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![binding.instance!.$.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const observe = el._observe?.[binding.instance!.$.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![binding.instance!.$.uid]\n}\n\nexport const Intersect = {\n mounted,\n unmounted,\n updated: (el: HTMLElement, binding: ObserveDirectiveBinding) => {\n if (el._observe?.[binding.instance!.$.uid]) {\n unmounted(el, binding)\n mounted(el, binding)\n }\n },\n}\n\nexport default Intersect\n"],"mappings":"AAAA;AAAA,SACSA,qBAAqB,+BAE9B;AAmBA,SAASC,OAAOA,CAAEC,EAAe,EAAEC,OAAgC,EAAE;EACnE,IAAI,CAACH,qBAAqB,EAAE;EAE5B,MAAMI,SAAS,GAAGD,OAAO,CAACC,SAAS,IAAI,CAAC,CAAC;EACzC,MAAMC,KAAK,GAAGF,OAAO,CAACE,KAAK;EAC3B,MAAM;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAClDA,KAAK,GACL;IAAEC,OAAO,EAAED,KAAK;IAAEE,OAAO,EAAE,CAAC;EAAE,CAAC;EAEnC,MAAMC,QAAQ,GAAG,IAAIC,oBAAoB,CAAC,CACxCC,OAAoC,GAAG,EAAE,EACzCF,QAA8B,KAC3B;IACH,MAAMG,QAAQ,GAAGT,EAAE,CAACS,QAAQ,GAAGR,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAACC,GAAG,CAAC;IACvD,IAAI,CAACH,QAAQ,EAAE,OAAM,CAAC;;IAEtB,MAAMI,cAAc,GAAGL,OAAO,CAACM,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACF,cAAc,CAAC;;IAElE;IACA;IACA,IACET,OAAO,KACL,CAACF,SAAS,CAACc,KAAK,IAChBP,QAAQ,CAACQ,IAAI,CACd,KACC,CAACf,SAAS,CAACgB,IAAI,IACfL,cAAc,IACdJ,QAAQ,CAACQ,IAAI,CACd,EACD;MACAb,OAAO,CAACS,cAAc,EAAEL,OAAO,EAAEF,QAAQ,CAAC;IAC5C;IAEA,IAAIO,cAAc,IAAIX,SAAS,CAACgB,IAAI,EAAEC,SAAS,CAACnB,EAAE,EAAEC,OAAO,CAAC,MACvDQ,QAAQ,CAACQ,IAAI,GAAG,IAAI;EAC3B,CAAC,EAAEZ,OAAO,CAAC;EAEXL,EAAE,CAACS,QAAQ,GAAGW,MAAM,CAACpB,EAAE,CAACS,QAAQ,CAAC;EACjCT,EAAE,CAACS,QAAQ,CAAER,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAACC,GAAG,CAAC,GAAG;IAAEK,IAAI,EAAE,KAAK;IAAEX;EAAS,CAAC;EAEjEA,QAAQ,CAACe,OAAO,CAACrB,EAAE,CAAC;AACtB;AAEA,SAASmB,SAASA,CAAEnB,EAAe,EAAEC,OAAgC,EAAE;EACrE,MAAMoB,OAAO,GAAGrB,EAAE,CAACS,QAAQ,GAAGR,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAACC,GAAG,CAAC;EACtD,IAAI,CAACS,OAAO,EAAE;EAEdA,OAAO,CAACf,QAAQ,CAACgB,SAAS,CAACtB,EAAE,CAAC;EAC9B,OAAOA,EAAE,CAACS,QAAQ,CAAER,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAACC,GAAG,CAAC;AAC9C;AAEA,OAAO,MAAMW,SAAS,GAAG;EACvBxB,OAAO;EACPoB,SAAS;EACTK,OAAO,EAAEA,CAACxB,EAAe,EAAEC,OAAgC,KAAK;IAC9D,IAAID,EAAE,CAACS,QAAQ,GAAGR,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAACC,GAAG,CAAC,EAAE;MAC1CO,SAAS,CAACnB,EAAE,EAAEC,OAAO,CAAC;MACtBF,OAAO,CAACC,EAAE,EAAEC,OAAO,CAAC;IACtB;EACF;AACF,CAAC;AAED,eAAesB,SAAS","ignoreList":[]}