{"mappings":";AAEM,SAAUA,EAASC,EAAgB,CACvC,OAAOC,OAAOC,UAAUC,SAASC,KAAKJ,CAAO,IAAM,iBACrD,CAEM,SAAUK,EACdL,EAAgB,CAEhB,OAAOD,EAASC,CAAO,GAAKM,MAAMC,QAAQP,CAAO,CACnD,UAEgBQ,GAAS,CACvB,MAAO,CAAC,EACN,OAAOC,OAAW,KAClBA,OAAOC,UACPD,OAAOC,SAASC,cAEpB,CAEgB,SAAAC,EACdC,EACAC,EAAiC,CAEjC,IAAMC,EAAed,OAAOe,KAAKH,CAAQ,EACnCI,EAAehB,OAAOe,KAAKF,CAAQ,EAEzC,GAAIC,EAAaG,SAAWD,EAAaC,OAAQ,MAAO,GAExD,IAAMC,EAAeC,KAAKC,UAAUpB,OAAOe,KAAKH,EAASS,aAAe,CAAA,CAAE,CAAC,EACrEC,EAAeH,KAAKC,UAAUpB,OAAOe,KAAKF,EAASQ,aAAe,CAAA,CAAE,CAAC,EAE3E,OAAIH,IAAiBI,EAAqB,GAEnCR,EAAaS,MAAOC,GAAO,CAChC,IAAMC,EAASb,EAASY,CAAG,EACrBE,EAASb,EAASW,CAAG,EAC3B,OAAI,OAAOC,GAAW,WAAmB,GAAGA,CAAM,IAAO,GAAGC,CAAM,GAC9D,CAACtB,EAASqB,CAAM,GAAK,CAACrB,EAASsB,CAAM,EAAUD,IAAWC,EACvDf,EAAgBc,EAAQC,CAAM,CACvC,CAAC,CACH,CAEM,SAAUC,EACdC,EAA0B,CAE1B,OAAOA,EACJC,OAAM,EACNC,KAAK,CAACC,EAAGC,IAAOD,EAAEE,KAAOD,EAAEC,KAAO,EAAI,EAAG,EACzCC,IAAKC,GAAWA,EAAOC,OAAO,CACnC,CAEgB,SAAAC,EACdC,EACAC,EAA2B,CAE3B,GAAID,EAASrB,SAAWsB,EAAStB,OAAQ,MAAO,GAEhD,IAAML,EAAWe,EAA0BW,CAAQ,EAC7CzB,EAAWc,EAA0BY,CAAQ,EAEnD,OAAO3B,EAASW,MAAM,CAACiB,EAASC,IAAS,CACvC,IAAMC,EAAU7B,EAAS4B,CAAK,EAC9B,OAAO9B,EAAgB6B,EAASE,CAAO,CACzC,CAAC,CACH","names":["isObject","subject","Object","prototype","toString","call","isRecord","Array","isArray","canUseDOM","window","document","createElement","areOptionsEqual","optionsA","optionsB","optionsAKeys","keys","optionsBKeys","length","breakpointsA","JSON","stringify","breakpoints","breakpointsB","every","key","valueA","valueB","sortAndMapPluginToOptions","plugins","concat","sort","a","b","name","map","plugin","options","arePluginsEqual","pluginsA","pluginsB","optionA","index","optionB"],"sources":["../esm/npm/embla-carousel-reactive-utils@8.6.0/node_modules/embla-carousel-reactive-utils/src/components/utils.ts"],"sourcesContent":["import { EmblaPluginType } from 'embla-carousel'\n\nexport function isObject(subject: unknown): subject is Record\u003cstring, unknown\u003e {\n  return Object.prototype.toString.call(subject) === '[object Object]'\n}\n\nexport function isRecord(\n  subject: unknown\n): subject is Record\u003cstring | number, unknown\u003e {\n  return isObject(subject) || Array.isArray(subject)\n}\n\nexport function canUseDOM(): boolean {\n  return !!(\n    typeof window !== 'undefined' \u0026\u0026\n    window.document \u0026\u0026\n    window.document.createElement\n  )\n}\n\nexport function areOptionsEqual(\n  optionsA: Record\u003cstring, unknown\u003e,\n  optionsB: Record\u003cstring, unknown\u003e\n): boolean {\n  const optionsAKeys = Object.keys(optionsA)\n  const optionsBKeys = Object.keys(optionsB)\n\n  if (optionsAKeys.length !== optionsBKeys.length) return false\n\n  const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}))\n  const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}))\n\n  if (breakpointsA !== breakpointsB) return false\n\n  return optionsAKeys.every((key) =\u003e {\n    const valueA = optionsA[key]\n    const valueB = optionsB[key]\n    if (typeof valueA === 'function') return `${valueA}` === `${valueB}`\n    if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB\n    return areOptionsEqual(valueA, valueB)\n  })\n}\n\nexport function sortAndMapPluginToOptions(\n  plugins: EmblaPluginType[]\n): EmblaPluginType['options'][] {\n  return plugins\n    .concat()\n    .sort((a, b) =\u003e (a.name \u003e b.name ? 1 : -1))\n    .map((plugin) =\u003e plugin.options)\n}\n\nexport function arePluginsEqual(\n  pluginsA: EmblaPluginType[],\n  pluginsB: EmblaPluginType[]\n): boolean {\n  if (pluginsA.length !== pluginsB.length) return false\n\n  const optionsA = sortAndMapPluginToOptions(pluginsA)\n  const optionsB = sortAndMapPluginToOptions(pluginsB)\n\n  return optionsA.every((optionA, index) =\u003e {\n    const optionB = optionsB[index]\n    return areOptionsEqual(optionA, optionB)\n  })\n}\n"],"version":3}
