{"ast":null,"code":"import { warnOnce } from '../../../utils/warn-once.mjs';\nimport { updateScrollInfo } from './info.mjs';\nimport { resolveOffsets } from './offsets/index.mjs';\nfunction measure(container) {\n  let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : container;\n  let info = arguments.length > 2 ? arguments[2] : undefined;\n  /**\n   * Find inset of target within scrollable container\n   */\n  info.x.targetOffset = 0;\n  info.y.targetOffset = 0;\n  if (target !== container) {\n    let node = target;\n    while (node && node !== container) {\n      info.x.targetOffset += node.offsetLeft;\n      info.y.targetOffset += node.offsetTop;\n      node = node.offsetParent;\n    }\n  }\n  info.x.targetLength = target === container ? target.scrollWidth : target.clientWidth;\n  info.y.targetLength = target === container ? target.scrollHeight : target.clientHeight;\n  info.x.containerLength = container.clientWidth;\n  info.y.containerLength = container.clientHeight;\n  /**\n   * In development mode ensure scroll containers aren't position: static as this makes\n   * it difficult to measure their relative positions.\n   */\n  if (process.env.NODE_ENV !== \"production\") {\n    if (container && target && target !== container) {\n      warnOnce(getComputedStyle(container).position !== \"static\", \"Please ensure that the container has a non-static position, like 'relative', 'fixed', or 'absolute' to ensure scroll offset is calculated correctly.\");\n    }\n  }\n}\nfunction createOnScrollHandler(element, onScroll, info) {\n  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  return {\n    measure: () => measure(element, options.target, info),\n    update: time => {\n      updateScrollInfo(element, info, time);\n      if (options.offset || options.target) {\n        resolveOffsets(element, info, options);\n      }\n    },\n    notify: () => onScroll(info)\n  };\n}\nexport { createOnScrollHandler };","map":{"version":3,"names":["warnOnce","updateScrollInfo","resolveOffsets","measure","container","target","arguments","length","undefined","info","x","targetOffset","y","node","offsetLeft","offsetTop","offsetParent","targetLength","scrollWidth","clientWidth","scrollHeight","clientHeight","containerLength","process","env","NODE_ENV","getComputedStyle","position","createOnScrollHandler","element","onScroll","options","update","time","offset","notify"],"sources":["/opt/bitnami/minigames/frasle/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs"],"sourcesContent":["import { warnOnce } from '../../../utils/warn-once.mjs';\nimport { updateScrollInfo } from './info.mjs';\nimport { resolveOffsets } from './offsets/index.mjs';\n\nfunction measure(container, target = container, info) {\n    /**\n     * Find inset of target within scrollable container\n     */\n    info.x.targetOffset = 0;\n    info.y.targetOffset = 0;\n    if (target !== container) {\n        let node = target;\n        while (node && node !== container) {\n            info.x.targetOffset += node.offsetLeft;\n            info.y.targetOffset += node.offsetTop;\n            node = node.offsetParent;\n        }\n    }\n    info.x.targetLength =\n        target === container ? target.scrollWidth : target.clientWidth;\n    info.y.targetLength =\n        target === container ? target.scrollHeight : target.clientHeight;\n    info.x.containerLength = container.clientWidth;\n    info.y.containerLength = container.clientHeight;\n    /**\n     * In development mode ensure scroll containers aren't position: static as this makes\n     * it difficult to measure their relative positions.\n     */\n    if (process.env.NODE_ENV !== \"production\") {\n        if (container && target && target !== container) {\n            warnOnce(getComputedStyle(container).position !== \"static\", \"Please ensure that the container has a non-static position, like 'relative', 'fixed', or 'absolute' to ensure scroll offset is calculated correctly.\");\n        }\n    }\n}\nfunction createOnScrollHandler(element, onScroll, info, options = {}) {\n    return {\n        measure: () => measure(element, options.target, info),\n        update: (time) => {\n            updateScrollInfo(element, info, time);\n            if (options.offset || options.target) {\n                resolveOffsets(element, info, options);\n            }\n        },\n        notify: () => onScroll(info),\n    };\n}\n\nexport { createOnScrollHandler };\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,gBAAgB,QAAQ,YAAY;AAC7C,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,SAASC,OAAOA,CAACC,SAAS,EAA4B;EAAA,IAA1BC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGF,SAAS;EAAA,IAAEK,IAAI,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAChD;AACJ;AACA;EACIC,IAAI,CAACC,CAAC,CAACC,YAAY,GAAG,CAAC;EACvBF,IAAI,CAACG,CAAC,CAACD,YAAY,GAAG,CAAC;EACvB,IAAIN,MAAM,KAAKD,SAAS,EAAE;IACtB,IAAIS,IAAI,GAAGR,MAAM;IACjB,OAAOQ,IAAI,IAAIA,IAAI,KAAKT,SAAS,EAAE;MAC/BK,IAAI,CAACC,CAAC,CAACC,YAAY,IAAIE,IAAI,CAACC,UAAU;MACtCL,IAAI,CAACG,CAAC,CAACD,YAAY,IAAIE,IAAI,CAACE,SAAS;MACrCF,IAAI,GAAGA,IAAI,CAACG,YAAY;IAC5B;EACJ;EACAP,IAAI,CAACC,CAAC,CAACO,YAAY,GACfZ,MAAM,KAAKD,SAAS,GAAGC,MAAM,CAACa,WAAW,GAAGb,MAAM,CAACc,WAAW;EAClEV,IAAI,CAACG,CAAC,CAACK,YAAY,GACfZ,MAAM,KAAKD,SAAS,GAAGC,MAAM,CAACe,YAAY,GAAGf,MAAM,CAACgB,YAAY;EACpEZ,IAAI,CAACC,CAAC,CAACY,eAAe,GAAGlB,SAAS,CAACe,WAAW;EAC9CV,IAAI,CAACG,CAAC,CAACU,eAAe,GAAGlB,SAAS,CAACiB,YAAY;EAC/C;AACJ;AACA;AACA;EACI,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACvC,IAAIrB,SAAS,IAAIC,MAAM,IAAIA,MAAM,KAAKD,SAAS,EAAE;MAC7CJ,QAAQ,CAAC0B,gBAAgB,CAACtB,SAAS,CAAC,CAACuB,QAAQ,KAAK,QAAQ,EAAE,sJAAsJ,CAAC;IACvN;EACJ;AACJ;AACA,SAASC,qBAAqBA,CAACC,OAAO,EAAEC,QAAQ,EAAErB,IAAI,EAAgB;EAAA,IAAdsB,OAAO,GAAAzB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAChE,OAAO;IACHH,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAAC0B,OAAO,EAAEE,OAAO,CAAC1B,MAAM,EAAEI,IAAI,CAAC;IACrDuB,MAAM,EAAGC,IAAI,IAAK;MACdhC,gBAAgB,CAAC4B,OAAO,EAAEpB,IAAI,EAAEwB,IAAI,CAAC;MACrC,IAAIF,OAAO,CAACG,MAAM,IAAIH,OAAO,CAAC1B,MAAM,EAAE;QAClCH,cAAc,CAAC2B,OAAO,EAAEpB,IAAI,EAAEsB,OAAO,CAAC;MAC1C;IACJ,CAAC;IACDI,MAAM,EAAEA,CAAA,KAAML,QAAQ,CAACrB,IAAI;EAC/B,CAAC;AACL;AAEA,SAASmB,qBAAqB"},"metadata":{},"sourceType":"module","externalDependencies":[]}