{"version":3,"file":"dep-8ff415ad.mjs","sources":["../../src/utils/index.ts"],"sourcesContent":["import { App, Plugin } from 'vue';\n\nexport const withInstall = <T>(comp: T): T & Plugin => {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const c = comp as any;\n  c.install = function (app: App) {\n    app.component(c.name, comp);\n  };\n\n  return comp as T & Plugin;\n};\n\n// eslint-disable-next-line arrow-body-style\nexport const createComponent = <T>(comp: any, name: string): T & Plugin => {\n  return withInstall(Object.assign({}, comp, { name }));\n};\n\n/**\n * 函数节流 - 随动画帧节流\n */\nexport const throttleWithFrame = function (fn: () => any) {\n  let req = null;\n  return function (...args) {\n    if (!req) {\n      req = window.requestAnimationFrame(() => {\n        fn.apply(this, args);\n        req = null;\n      });\n    }\n  };\n};\n"],"names":["withInstall","comp","c","install","app","component","name","createComponent","Object","assign","throttleWithFrame","fn","req","args","window","requestAnimationFrame","apply"],"mappings":"AAAaA,IAAAA,WAAW,GAAIC,IAAD,IAAU;EACnC,IAAMC,CAAC,GAAGD,IAAV,CAAA;;AACAC,EAAAA,CAAC,CAACC,OAAF,GAAY,UAASC,GAAT,EAAc;AACxBA,IAAAA,GAAG,CAACC,SAAJ,CAAcH,CAAC,CAACI,IAAhB,EAAsBL,IAAtB,CAAA,CAAA;GADF,CAAA;;AAGA,EAAA,OAAOA,IAAP,CAAA;AACD,EANM;IAOMM,eAAe,GAAG,CAACN,IAAD,EAAOK,IAAP,KAAgB;EAC7C,OAAON,WAAW,CAACQ,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBR,IAAlB,EAAwB;AAAEK,IAAAA,IAAAA;AAAF,GAAxB,CAAD,CAAlB,CAAA;AACD,EAFM;IAGMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAASC,EAAT,EAAa;EAC5C,IAAIC,GAAG,GAAG,IAAV,CAAA;AACA,EAAA,OAAO,YAAkB;AAAA,IAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAANC,IAAM,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;MAANA,IAAM,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;;IACvB,IAAI,CAACD,GAAL,EAAU;AACRA,MAAAA,GAAG,GAAGE,MAAM,CAACC,qBAAP,CAA6B,MAAM;AACvCJ,QAAAA,EAAE,CAACK,KAAH,CAAS,IAAT,EAAeH,IAAf,CAAA,CAAA;AACAD,QAAAA,GAAG,GAAG,IAAN,CAAA;AACD,OAHK,CAAN,CAAA;AAID,KAAA;GANH,CAAA;AAQD;;;;"}