@scrolia/vanilla
Version:
A headless scrollbar component
1 lines • 2.7 kB
Source Map (JSON)
{"version":3,"file":"x.mjs","names":["elRef: Required<Atom.Ref<DOM.AtomicoThis>>","length: number","offset: number"],"sources":["../../../src/components/thumb/x.tsx"],"sourcesContent":["import type * as DOM from \"atomico/types/dom\";\n\nimport type { ComponentTypes } from \"#/@types/component\";\n\nimport * as Atom from \"atomico\";\n\nimport { useScrollCore } from \"#/contexts/scrollcore\";\nimport { useComponentPropsSetter } from \"#/hooks/props\";\nimport { useThumbXHandler } from \"#/hooks/thumb\";\n\nconst _ThumbX = (): Atom.Host<any> => {\n const elRef: Required<Atom.Ref<DOM.AtomicoThis>> = Atom.useHost();\n\n const {\n options: { disabled },\n x: { setHvThumb, scrollbarLength, scrollbarOffset },\n } = useScrollCore();\n\n Atom.useEffect((): void => {\n setHvThumb(true);\n });\n\n const { onPointerDown } = useThumbXHandler();\n\n Atom.useEffect((): (() => void) => {\n elRef.current.addEventListener(\"pointerdown\", onPointerDown);\n\n return (): void => {\n elRef.current.removeEventListener(\"pointerdown\", onPointerDown);\n };\n }, [\n onPointerDown,\n ]);\n\n useComponentPropsSetter(\"thumbX\");\n\n Atom.useEffect((): void => {\n if (disabled) return void 0;\n\n const length: number = Number.isNaN(scrollbarLength)\n ? 0\n : scrollbarLength;\n\n const offset: number = Number.isNaN(scrollbarOffset)\n ? 0\n : scrollbarOffset;\n\n elRef.current.style.width = `${length}px`;\n elRef.current.style.left = `${offset}px`;\n }, [\n disabled,\n scrollbarLength,\n scrollbarOffset,\n ]);\n\n return (\n <host shadowDom>\n <slot />\n </host>\n );\n};\n\n/** Scrollbar thumb X type. */\ntype ThumbXElement = ComponentTypes<typeof _ThumbX>;\n\nconst ThumbX = Atom.c(_ThumbX);\n\nexport type { ThumbXElement };\nexport { ThumbX };\n"],"mappings":";;;;;;AAUA,MAAM,UAAU,MAAsB;CAClC,MAAMA,QAA6C,KAAK,SAAS;CAEjE,MAAM,EACF,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,YAAY,iBAAiB,iBAAiB,EACtD,GAAG,eAAe;AAEnB,MAAK,UAAU,MAAY;AACvB,aAAW,KAAK;CACnB,EAAC;CAEF,MAAM,EAAE,eAAe,GAAG,kBAAkB;AAE5C,MAAK,UAAU,MAAoB;AAC/B,QAAM,QAAQ,iBAAiB,eAAe,cAAc;AAE5D,SAAO,MAAY;AACf,SAAM,QAAQ,oBAAoB,eAAe,cAAc;EAClE;CACJ,GAAE,CACC,aACH,EAAC;AAEF,yBAAwB,SAAS;AAEjC,MAAK,UAAU,MAAY;AACvB,MAAI,SAAU,aAAY;EAE1B,MAAMC,SAAiB,OAAO,MAAM,gBAAgB,GAC9C,IACA;EAEN,MAAMC,SAAiB,OAAO,MAAM,gBAAgB,GAC9C,IACA;AAEN,QAAM,QAAQ,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;AACzC,QAAM,QAAQ,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;CAC3C,GAAE;EACC;EACA;EACA;CACH,EAAC;AAEF,wBACI,IAAC;EAAK;4BACF,IAAC,WAAO;GACL;AAEd;AAKD,MAAM,SAAS,KAAK,EAAE,QAAQ"}