{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/oqltqnxvqrWeRkmrFxMD/0K8MQcFGCdfrOaHx0B92/useFetch.js", "ssg:https://cdn.jsdelivr.net/npm/@heroicons/react@2.2.0/24/outline/esm/ChevronDownIcon.js", "ssg:https://framerusercontent.com/modules/5Ta852VS5m4BZPiLVqFb/WdpuuAIR9LfOWWOpYVwl/MultiSelectDropDown.js", "ssg:https://cdn.jsdelivr.net/npm/fuse.js@7.0.0/dist/fuse.mjs", "ssg:https://cdn.jsdelivr.net/npm/@heroicons/react@2.2.0/24/outline/esm/MagnifyingGlassIcon.js", "ssg:https://framerusercontent.com/modules/ASmZF7srJG1FTbswfh2E/yTDonbsQhLu4695no6gj/SearchInput.js"],
  "sourcesContent": ["import{useState,useEffect}from\"react\";export function useFetch(url,dependencies=[]){const[data,setData]=useState([]);const[isLoading,setIsLoading]=useState(false);const[error,setError]=useState(null);useEffect(()=>{async function fetchData(){setIsLoading(true);setError(null);try{const response=await fetch(url);const result=await response.json();setData(result);}catch(err){setError(err);}finally{setIsLoading(false);}}fetchData();},dependencies);return{data,isLoading,error};}\nexport const __FramerMetadata__ = {\"exports\":{\"useFetch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useFetch.map", "import * as React from \"react\";\nfunction ChevronDownIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"m19.5 8.25-7.5 7.5-7.5-7.5\"\n  }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ChevronDownIcon);\nexport default ForwardRef;", "// Welcome to Code in Framer\n// Get Started: https://www.framer.com/developers/\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState}from\"react\";import ChevronDownIcon from\"https://cdn.jsdelivr.net/npm/@heroicons/react@2.2.0/24/outline/esm/ChevronDownIcon.js\";/**\n * These annotations control how your component sizes\n * Learn more: https://www.framer.com/developers/#code-components-auto-sizing\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function MultiSelectDropDown({options,placeholder,value,allValuePlaceholder,onChange}){const[isOpen,setIsOpen]=useState(false);const toggleDropdown=()=>{setIsOpen(!isOpen);};const handleOptionClick=option=>{onChange(value.includes(option)?value.filter(item=>item!==option):[...value,option]);};return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"inline-block\",fontFamily:\"Poppins\"},children:[/*#__PURE__*/_jsxs(\"button\",{onClick:toggleDropdown,\"aria-haspopup\":\"listbox\",\"aria-expanded\":isOpen,style:{display:\"inline-flex\",flexDirection:\"row\",gap:\"0.5em\",paddingInline:\"1em\",paddingBlock:\"0.5em\",border:\"2px solid #007ec6\",borderRadius:\"0.75em\",backgroundColor:\"white\",color:\"#3c3c3c\",cursor:\"pointer\",fontFamily:\"Poppins\",alignItems:\"center\"},children:[value.length===0?placeholder:(options===null||options===void 0?void 0:options.length)===value.length?allValuePlaceholder:value.join(\" & \"),/*#__PURE__*/_jsx(ChevronDownIcon,{style:{width:\"1em\",height:\"1em\"}})]}),isOpen&&/*#__PURE__*/_jsx(\"ul\",{role:\"listbox\",\"aria-multiselectable\":\"true\",style:{listStyle:\"none\",padding:0,margin:0,border:\"1px solid #ccc\",borderRadius:\"4px\",position:\"absolute\",backgroundColor:\"#fff\",zIndex:1,width:\"fit-content\"},children:options===null||options===void 0?void 0:options.map((option,index)=>/*#__PURE__*/_jsxs(\"li\",{role:\"option\",\"aria-selected\":value.includes(option),onClick:()=>handleOptionClick(option),style:{padding:\"8px\",cursor:\"pointer\",display:\"relative\",paddingInlineStart:\"2em\",backgroundColor:value.includes(option)?\"#eee\":\"#fff\"},children:[value.includes(option)&&/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",left:\"0.5em\"},children:\"\u2713\"}),/*#__PURE__*/_jsx(\"span\",{children:option})]},index))})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MultiSelectDropDown\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MultiSelectDropDown.map", "/**\n * Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2023 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n  return !Array.isArray\n    ? getTag(value) === '[object Array]'\n    : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value\n  }\n  let result = value + '';\n  return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n  return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n  return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n  return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n  return (\n    value === true ||\n    value === false ||\n    (isObjectLike(value) && getTag(value) == '[object Boolean]')\n  )\n}\n\nfunction isObject(value) {\n  return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n  return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n  return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n  return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n  return value == null\n    ? value === undefined\n      ? '[object Undefined]'\n      : '[object Null]'\n    : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n  `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n  `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n  `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n  constructor(keys) {\n    this._keys = [];\n    this._keyMap = {};\n\n    let totalWeight = 0;\n\n    keys.forEach((key) => {\n      let obj = createKey(key);\n\n      this._keys.push(obj);\n      this._keyMap[obj.id] = obj;\n\n      totalWeight += obj.weight;\n    });\n\n    // Normalize weights so that their sum is equal to 1\n    this._keys.forEach((key) => {\n      key.weight /= totalWeight;\n    });\n  }\n  get(keyId) {\n    return this._keyMap[keyId]\n  }\n  keys() {\n    return this._keys\n  }\n  toJSON() {\n    return JSON.stringify(this._keys)\n  }\n}\n\nfunction createKey(key) {\n  let path = null;\n  let id = null;\n  let src = null;\n  let weight = 1;\n  let getFn = null;\n\n  if (isString(key) || isArray(key)) {\n    src = key;\n    path = createKeyPath(key);\n    id = createKeyId(key);\n  } else {\n    if (!hasOwn.call(key, 'name')) {\n      throw new Error(MISSING_KEY_PROPERTY('name'))\n    }\n\n    const name = key.name;\n    src = name;\n\n    if (hasOwn.call(key, 'weight')) {\n      weight = key.weight;\n\n      if (weight <= 0) {\n        throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n      }\n    }\n\n    path = createKeyPath(name);\n    id = createKeyId(name);\n    getFn = key.getFn;\n  }\n\n  return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n  return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n  return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n  let list = [];\n  let arr = false;\n\n  const deepGet = (obj, path, index) => {\n    if (!isDefined(obj)) {\n      return\n    }\n    if (!path[index]) {\n      // If there's no path left, we've arrived at the object we care about.\n      list.push(obj);\n    } else {\n      let key = path[index];\n\n      const value = obj[key];\n\n      if (!isDefined(value)) {\n        return\n      }\n\n      // If we're at the last value in the path, and if it's a string/number/bool,\n      // add it to the list\n      if (\n        index === path.length - 1 &&\n        (isString(value) || isNumber(value) || isBoolean(value))\n      ) {\n        list.push(toString(value));\n      } else if (isArray(value)) {\n        arr = true;\n        // Search each item in the array.\n        for (let i = 0, len = value.length; i < len; i += 1) {\n          deepGet(value[i], path, index + 1);\n        }\n      } else if (path.length) {\n        // An object. Recurse further.\n        deepGet(value, path, index + 1);\n      }\n    }\n  };\n\n  // Backwards compatibility (since path used to be a string)\n  deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n  return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n  // Whether the matches should be included in the result set. When `true`, each record in the result\n  // set will include the indices of the matched characters.\n  // These can consequently be used for highlighting purposes.\n  includeMatches: false,\n  // When `true`, the matching function will continue to the end of a search pattern even if\n  // a perfect match has already been located in the string.\n  findAllMatches: false,\n  // Minimum number of characters that must be matched before a result is considered a match\n  minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n  // When `true`, the algorithm continues searching to the end of the input even if a perfect\n  // match is found before the end of the same input.\n  isCaseSensitive: false,\n  // When true, the matching function will continue to the end of a search pattern even if\n  includeScore: false,\n  // List of properties that will be searched. This also supports nested properties.\n  keys: [],\n  // Whether to sort the result list, by score\n  shouldSort: true,\n  // Default sort function: sort by ascending score, ascending index\n  sortFn: (a, b) =>\n    a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n  // Approximately where in the text is the pattern expected to be found?\n  location: 0,\n  // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n  // (of both letters and location), a threshold of '1.0' would match anything.\n  threshold: 0.6,\n  // Determines how close the match must be to the fuzzy location (specified above).\n  // An exact letter match which is 'distance' characters away from the fuzzy location\n  // would score as a complete mismatch. A distance of '0' requires the match be at\n  // the exact location specified, a threshold of '1000' would require a perfect match\n  // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n  distance: 100\n};\n\nconst AdvancedOptions = {\n  // When `true`, it enables the use of unix-like search commands\n  useExtendedSearch: false,\n  // The get function to use when fetching an object's properties.\n  // The default will search nested paths *ie foo.bar.baz*\n  getFn: get,\n  // When `true`, search will ignore `location` and `distance`, so it won't matter\n  // where in the string the pattern appears.\n  // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n  ignoreLocation: false,\n  // When `true`, the calculation for the relevance score (used for sorting) will\n  // ignore the field-length norm.\n  // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n  ignoreFieldNorm: false,\n  // The weight to determine how much field length norm effects scoring.\n  fieldNormWeight: 1\n};\n\nvar Config = {\n  ...BasicOptions,\n  ...MatchOptions,\n  ...FuzzyOptions,\n  ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n  const cache = new Map();\n  const m = Math.pow(10, mantissa);\n\n  return {\n    get(value) {\n      const numTokens = value.match(SPACE).length;\n\n      if (cache.has(numTokens)) {\n        return cache.get(numTokens)\n      }\n\n      // Default function is 1/sqrt(x), weight makes that variable\n      const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n      // In place of `toFixed(mantissa)`, for faster computation\n      const n = parseFloat(Math.round(norm * m) / m);\n\n      cache.set(numTokens, n);\n\n      return n\n    },\n    clear() {\n      cache.clear();\n    }\n  }\n}\n\nclass FuseIndex {\n  constructor({\n    getFn = Config.getFn,\n    fieldNormWeight = Config.fieldNormWeight\n  } = {}) {\n    this.norm = norm(fieldNormWeight, 3);\n    this.getFn = getFn;\n    this.isCreated = false;\n\n    this.setIndexRecords();\n  }\n  setSources(docs = []) {\n    this.docs = docs;\n  }\n  setIndexRecords(records = []) {\n    this.records = records;\n  }\n  setKeys(keys = []) {\n    this.keys = keys;\n    this._keysMap = {};\n    keys.forEach((key, idx) => {\n      this._keysMap[key.id] = idx;\n    });\n  }\n  create() {\n    if (this.isCreated || !this.docs.length) {\n      return\n    }\n\n    this.isCreated = true;\n\n    // List is Array<String>\n    if (isString(this.docs[0])) {\n      this.docs.forEach((doc, docIndex) => {\n        this._addString(doc, docIndex);\n      });\n    } else {\n      // List is Array<Object>\n      this.docs.forEach((doc, docIndex) => {\n        this._addObject(doc, docIndex);\n      });\n    }\n\n    this.norm.clear();\n  }\n  // Adds a doc to the end of the index\n  add(doc) {\n    const idx = this.size();\n\n    if (isString(doc)) {\n      this._addString(doc, idx);\n    } else {\n      this._addObject(doc, idx);\n    }\n  }\n  // Removes the doc at the specified index of the index\n  removeAt(idx) {\n    this.records.splice(idx, 1);\n\n    // Change ref index of every subsquent doc\n    for (let i = idx, len = this.size(); i < len; i += 1) {\n      this.records[i].i -= 1;\n    }\n  }\n  getValueForItemAtKeyId(item, keyId) {\n    return item[this._keysMap[keyId]]\n  }\n  size() {\n    return this.records.length\n  }\n  _addString(doc, docIndex) {\n    if (!isDefined(doc) || isBlank(doc)) {\n      return\n    }\n\n    let record = {\n      v: doc,\n      i: docIndex,\n      n: this.norm.get(doc)\n    };\n\n    this.records.push(record);\n  }\n  _addObject(doc, docIndex) {\n    let record = { i: docIndex, $: {} };\n\n    // Iterate over every key (i.e, path), and fetch the value at that key\n    this.keys.forEach((key, keyIndex) => {\n      let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n      if (!isDefined(value)) {\n        return\n      }\n\n      if (isArray(value)) {\n        let subRecords = [];\n        const stack = [{ nestedArrIndex: -1, value }];\n\n        while (stack.length) {\n          const { nestedArrIndex, value } = stack.pop();\n\n          if (!isDefined(value)) {\n            continue\n          }\n\n          if (isString(value) && !isBlank(value)) {\n            let subRecord = {\n              v: value,\n              i: nestedArrIndex,\n              n: this.norm.get(value)\n            };\n\n            subRecords.push(subRecord);\n          } else if (isArray(value)) {\n            value.forEach((item, k) => {\n              stack.push({\n                nestedArrIndex: k,\n                value: item\n              });\n            });\n          } else ;\n        }\n        record.$[keyIndex] = subRecords;\n      } else if (isString(value) && !isBlank(value)) {\n        let subRecord = {\n          v: value,\n          n: this.norm.get(value)\n        };\n\n        record.$[keyIndex] = subRecord;\n      }\n    });\n\n    this.records.push(record);\n  }\n  toJSON() {\n    return {\n      keys: this.keys,\n      records: this.records\n    }\n  }\n}\n\nfunction createIndex(\n  keys,\n  docs,\n  { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n  const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n  myIndex.setKeys(keys.map(createKey));\n  myIndex.setSources(docs);\n  myIndex.create();\n  return myIndex\n}\n\nfunction parseIndex(\n  data,\n  { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n  const { keys, records } = data;\n  const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n  myIndex.setKeys(keys);\n  myIndex.setIndexRecords(records);\n  return myIndex\n}\n\nfunction computeScore$1(\n  pattern,\n  {\n    errors = 0,\n    currentLocation = 0,\n    expectedLocation = 0,\n    distance = Config.distance,\n    ignoreLocation = Config.ignoreLocation\n  } = {}\n) {\n  const accuracy = errors / pattern.length;\n\n  if (ignoreLocation) {\n    return accuracy\n  }\n\n  const proximity = Math.abs(expectedLocation - currentLocation);\n\n  if (!distance) {\n    // Dodge divide by zero error.\n    return proximity ? 1.0 : accuracy\n  }\n\n  return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n  matchmask = [],\n  minMatchCharLength = Config.minMatchCharLength\n) {\n  let indices = [];\n  let start = -1;\n  let end = -1;\n  let i = 0;\n\n  for (let len = matchmask.length; i < len; i += 1) {\n    let match = matchmask[i];\n    if (match && start === -1) {\n      start = i;\n    } else if (!match && start !== -1) {\n      end = i - 1;\n      if (end - start + 1 >= minMatchCharLength) {\n        indices.push([start, end]);\n      }\n      start = -1;\n    }\n  }\n\n  // (i-1 - start) + 1 => i - start\n  if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n    indices.push([start, i - 1]);\n  }\n\n  return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n  text,\n  pattern,\n  patternAlphabet,\n  {\n    location = Config.location,\n    distance = Config.distance,\n    threshold = Config.threshold,\n    findAllMatches = Config.findAllMatches,\n    minMatchCharLength = Config.minMatchCharLength,\n    includeMatches = Config.includeMatches,\n    ignoreLocation = Config.ignoreLocation\n  } = {}\n) {\n  if (pattern.length > MAX_BITS) {\n    throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n  }\n\n  const patternLen = pattern.length;\n  // Set starting location at beginning text and initialize the alphabet.\n  const textLen = text.length;\n  // Handle the case when location > text.length\n  const expectedLocation = Math.max(0, Math.min(location, textLen));\n  // Highest score beyond which we give up.\n  let currentThreshold = threshold;\n  // Is there a nearby exact match? (speedup)\n  let bestLocation = expectedLocation;\n\n  // Performance: only computer matches when the minMatchCharLength > 1\n  // OR if `includeMatches` is true.\n  const computeMatches = minMatchCharLength > 1 || includeMatches;\n  // A mask of the matches, used for building the indices\n  const matchMask = computeMatches ? Array(textLen) : [];\n\n  let index;\n\n  // Get all exact matches, here for speed up\n  while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n    let score = computeScore$1(pattern, {\n      currentLocation: index,\n      expectedLocation,\n      distance,\n      ignoreLocation\n    });\n\n    currentThreshold = Math.min(score, currentThreshold);\n    bestLocation = index + patternLen;\n\n    if (computeMatches) {\n      let i = 0;\n      while (i < patternLen) {\n        matchMask[index + i] = 1;\n        i += 1;\n      }\n    }\n  }\n\n  // Reset the best location\n  bestLocation = -1;\n\n  let lastBitArr = [];\n  let finalScore = 1;\n  let binMax = patternLen + textLen;\n\n  const mask = 1 << (patternLen - 1);\n\n  for (let i = 0; i < patternLen; i += 1) {\n    // Scan for the best match; each iteration allows for one more error.\n    // Run a binary search to determine how far from the match location we can stray\n    // at this error level.\n    let binMin = 0;\n    let binMid = binMax;\n\n    while (binMin < binMid) {\n      const score = computeScore$1(pattern, {\n        errors: i,\n        currentLocation: expectedLocation + binMid,\n        expectedLocation,\n        distance,\n        ignoreLocation\n      });\n\n      if (score <= currentThreshold) {\n        binMin = binMid;\n      } else {\n        binMax = binMid;\n      }\n\n      binMid = Math.floor((binMax - binMin) / 2 + binMin);\n    }\n\n    // Use the result from this iteration as the maximum for the next.\n    binMax = binMid;\n\n    let start = Math.max(1, expectedLocation - binMid + 1);\n    let finish = findAllMatches\n      ? textLen\n      : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n    // Initialize the bit array\n    let bitArr = Array(finish + 2);\n\n    bitArr[finish + 1] = (1 << i) - 1;\n\n    for (let j = finish; j >= start; j -= 1) {\n      let currentLocation = j - 1;\n      let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n      if (computeMatches) {\n        // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n        matchMask[currentLocation] = +!!charMatch;\n      }\n\n      // First pass: exact match\n      bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n      // Subsequent passes: fuzzy match\n      if (i) {\n        bitArr[j] |=\n          ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n      }\n\n      if (bitArr[j] & mask) {\n        finalScore = computeScore$1(pattern, {\n          errors: i,\n          currentLocation,\n          expectedLocation,\n          distance,\n          ignoreLocation\n        });\n\n        // This match will almost certainly be better than any existing match.\n        // But check anyway.\n        if (finalScore <= currentThreshold) {\n          // Indeed it is\n          currentThreshold = finalScore;\n          bestLocation = currentLocation;\n\n          // Already passed `loc`, downhill from here on in.\n          if (bestLocation <= expectedLocation) {\n            break\n          }\n\n          // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n          start = Math.max(1, 2 * expectedLocation - bestLocation);\n        }\n      }\n    }\n\n    // No hope for a (better) match at greater error levels.\n    const score = computeScore$1(pattern, {\n      errors: i + 1,\n      currentLocation: expectedLocation,\n      expectedLocation,\n      distance,\n      ignoreLocation\n    });\n\n    if (score > currentThreshold) {\n      break\n    }\n\n    lastBitArr = bitArr;\n  }\n\n  const result = {\n    isMatch: bestLocation >= 0,\n    // Count exact matches (those with a score of 0) to be \"almost\" exact\n    score: Math.max(0.001, finalScore)\n  };\n\n  if (computeMatches) {\n    const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n    if (!indices.length) {\n      result.isMatch = false;\n    } else if (includeMatches) {\n      result.indices = indices;\n    }\n  }\n\n  return result\n}\n\nfunction createPatternAlphabet(pattern) {\n  let mask = {};\n\n  for (let i = 0, len = pattern.length; i < len; i += 1) {\n    const char = pattern.charAt(i);\n    mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n  }\n\n  return mask\n}\n\nclass BitapSearch {\n  constructor(\n    pattern,\n    {\n      location = Config.location,\n      threshold = Config.threshold,\n      distance = Config.distance,\n      includeMatches = Config.includeMatches,\n      findAllMatches = Config.findAllMatches,\n      minMatchCharLength = Config.minMatchCharLength,\n      isCaseSensitive = Config.isCaseSensitive,\n      ignoreLocation = Config.ignoreLocation\n    } = {}\n  ) {\n    this.options = {\n      location,\n      threshold,\n      distance,\n      includeMatches,\n      findAllMatches,\n      minMatchCharLength,\n      isCaseSensitive,\n      ignoreLocation\n    };\n\n    this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n    this.chunks = [];\n\n    if (!this.pattern.length) {\n      return\n    }\n\n    const addChunk = (pattern, startIndex) => {\n      this.chunks.push({\n        pattern,\n        alphabet: createPatternAlphabet(pattern),\n        startIndex\n      });\n    };\n\n    const len = this.pattern.length;\n\n    if (len > MAX_BITS) {\n      let i = 0;\n      const remainder = len % MAX_BITS;\n      const end = len - remainder;\n\n      while (i < end) {\n        addChunk(this.pattern.substr(i, MAX_BITS), i);\n        i += MAX_BITS;\n      }\n\n      if (remainder) {\n        const startIndex = len - MAX_BITS;\n        addChunk(this.pattern.substr(startIndex), startIndex);\n      }\n    } else {\n      addChunk(this.pattern, 0);\n    }\n  }\n\n  searchIn(text) {\n    const { isCaseSensitive, includeMatches } = this.options;\n\n    if (!isCaseSensitive) {\n      text = text.toLowerCase();\n    }\n\n    // Exact match\n    if (this.pattern === text) {\n      let result = {\n        isMatch: true,\n        score: 0\n      };\n\n      if (includeMatches) {\n        result.indices = [[0, text.length - 1]];\n      }\n\n      return result\n    }\n\n    // Otherwise, use Bitap algorithm\n    const {\n      location,\n      distance,\n      threshold,\n      findAllMatches,\n      minMatchCharLength,\n      ignoreLocation\n    } = this.options;\n\n    let allIndices = [];\n    let totalScore = 0;\n    let hasMatches = false;\n\n    this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n      const { isMatch, score, indices } = search(text, pattern, alphabet, {\n        location: location + startIndex,\n        distance,\n        threshold,\n        findAllMatches,\n        minMatchCharLength,\n        includeMatches,\n        ignoreLocation\n      });\n\n      if (isMatch) {\n        hasMatches = true;\n      }\n\n      totalScore += score;\n\n      if (isMatch && indices) {\n        allIndices = [...allIndices, ...indices];\n      }\n    });\n\n    let result = {\n      isMatch: hasMatches,\n      score: hasMatches ? totalScore / this.chunks.length : 1\n    };\n\n    if (hasMatches && includeMatches) {\n      result.indices = allIndices;\n    }\n\n    return result\n  }\n}\n\nclass BaseMatch {\n  constructor(pattern) {\n    this.pattern = pattern;\n  }\n  static isMultiMatch(pattern) {\n    return getMatch(pattern, this.multiRegex)\n  }\n  static isSingleMatch(pattern) {\n    return getMatch(pattern, this.singleRegex)\n  }\n  search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n  const matches = pattern.match(exp);\n  return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'exact'\n  }\n  static get multiRegex() {\n    return /^=\"(.*)\"$/\n  }\n  static get singleRegex() {\n    return /^=(.*)$/\n  }\n  search(text) {\n    const isMatch = text === this.pattern;\n\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices: [0, this.pattern.length - 1]\n    }\n  }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'inverse-exact'\n  }\n  static get multiRegex() {\n    return /^!\"(.*)\"$/\n  }\n  static get singleRegex() {\n    return /^!(.*)$/\n  }\n  search(text) {\n    const index = text.indexOf(this.pattern);\n    const isMatch = index === -1;\n\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices: [0, text.length - 1]\n    }\n  }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'prefix-exact'\n  }\n  static get multiRegex() {\n    return /^\\^\"(.*)\"$/\n  }\n  static get singleRegex() {\n    return /^\\^(.*)$/\n  }\n  search(text) {\n    const isMatch = text.startsWith(this.pattern);\n\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices: [0, this.pattern.length - 1]\n    }\n  }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'inverse-prefix-exact'\n  }\n  static get multiRegex() {\n    return /^!\\^\"(.*)\"$/\n  }\n  static get singleRegex() {\n    return /^!\\^(.*)$/\n  }\n  search(text) {\n    const isMatch = !text.startsWith(this.pattern);\n\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices: [0, text.length - 1]\n    }\n  }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'suffix-exact'\n  }\n  static get multiRegex() {\n    return /^\"(.*)\"\\$$/\n  }\n  static get singleRegex() {\n    return /^(.*)\\$$/\n  }\n  search(text) {\n    const isMatch = text.endsWith(this.pattern);\n\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices: [text.length - this.pattern.length, text.length - 1]\n    }\n  }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'inverse-suffix-exact'\n  }\n  static get multiRegex() {\n    return /^!\"(.*)\"\\$$/\n  }\n  static get singleRegex() {\n    return /^!(.*)\\$$/\n  }\n  search(text) {\n    const isMatch = !text.endsWith(this.pattern);\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices: [0, text.length - 1]\n    }\n  }\n}\n\nclass FuzzyMatch extends BaseMatch {\n  constructor(\n    pattern,\n    {\n      location = Config.location,\n      threshold = Config.threshold,\n      distance = Config.distance,\n      includeMatches = Config.includeMatches,\n      findAllMatches = Config.findAllMatches,\n      minMatchCharLength = Config.minMatchCharLength,\n      isCaseSensitive = Config.isCaseSensitive,\n      ignoreLocation = Config.ignoreLocation\n    } = {}\n  ) {\n    super(pattern);\n    this._bitapSearch = new BitapSearch(pattern, {\n      location,\n      threshold,\n      distance,\n      includeMatches,\n      findAllMatches,\n      minMatchCharLength,\n      isCaseSensitive,\n      ignoreLocation\n    });\n  }\n  static get type() {\n    return 'fuzzy'\n  }\n  static get multiRegex() {\n    return /^\"(.*)\"$/\n  }\n  static get singleRegex() {\n    return /^(.*)$/\n  }\n  search(text) {\n    return this._bitapSearch.searchIn(text)\n  }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n  constructor(pattern) {\n    super(pattern);\n  }\n  static get type() {\n    return 'include'\n  }\n  static get multiRegex() {\n    return /^'\"(.*)\"$/\n  }\n  static get singleRegex() {\n    return /^'(.*)$/\n  }\n  search(text) {\n    let location = 0;\n    let index;\n\n    const indices = [];\n    const patternLen = this.pattern.length;\n\n    // Get all exact matches\n    while ((index = text.indexOf(this.pattern, location)) > -1) {\n      location = index + patternLen;\n      indices.push([index, location - 1]);\n    }\n\n    const isMatch = !!indices.length;\n\n    return {\n      isMatch,\n      score: isMatch ? 0 : 1,\n      indices\n    }\n  }\n}\n\n// \u2757Order is important. DO NOT CHANGE.\nconst searchers = [\n  ExactMatch,\n  IncludeMatch,\n  PrefixExactMatch,\n  InversePrefixExactMatch,\n  InverseSuffixExactMatch,\n  SuffixExactMatch,\n  InverseExactMatch,\n  FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n  return pattern.split(OR_TOKEN).map((item) => {\n    let query = item\n      .trim()\n      .split(SPACE_RE)\n      .filter((item) => item && !!item.trim());\n\n    let results = [];\n    for (let i = 0, len = query.length; i < len; i += 1) {\n      const queryItem = query[i];\n\n      // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n      let found = false;\n      let idx = -1;\n      while (!found && ++idx < searchersLen) {\n        const searcher = searchers[idx];\n        let token = searcher.isMultiMatch(queryItem);\n        if (token) {\n          results.push(new searcher(token, options));\n          found = true;\n        }\n      }\n\n      if (found) {\n        continue\n      }\n\n      // 2. Handle single query matches (i.e, once that are *not* quoted)\n      idx = -1;\n      while (++idx < searchersLen) {\n        const searcher = searchers[idx];\n        let token = searcher.isSingleMatch(queryItem);\n        if (token) {\n          results.push(new searcher(token, options));\n          break\n        }\n      }\n    }\n\n    return results\n  })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token       | Match type                 | Description                            |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript`   | fuzzy-match                | Items that fuzzy match `jscript`       |\n * | `=scheme`   | exact-match                | Items that are `scheme`                |\n * | `'python`   | include-match              | Items that include `python`            |\n * | `!ruby`     | inverse-exact-match        | Items that do not include `ruby`       |\n * | `^java`     | prefix-exact-match         | Items that start with `java`           |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$`      | suffix-exact-match         | Items that end with `.js`              |\n * | `!.go$`     | inverse-suffix-exact-match | Items that do not end with `.go`       |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n  constructor(\n    pattern,\n    {\n      isCaseSensitive = Config.isCaseSensitive,\n      includeMatches = Config.includeMatches,\n      minMatchCharLength = Config.minMatchCharLength,\n      ignoreLocation = Config.ignoreLocation,\n      findAllMatches = Config.findAllMatches,\n      location = Config.location,\n      threshold = Config.threshold,\n      distance = Config.distance\n    } = {}\n  ) {\n    this.query = null;\n    this.options = {\n      isCaseSensitive,\n      includeMatches,\n      minMatchCharLength,\n      findAllMatches,\n      ignoreLocation,\n      location,\n      threshold,\n      distance\n    };\n\n    this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n    this.query = parseQuery(this.pattern, this.options);\n  }\n\n  static condition(_, options) {\n    return options.useExtendedSearch\n  }\n\n  searchIn(text) {\n    const query = this.query;\n\n    if (!query) {\n      return {\n        isMatch: false,\n        score: 1\n      }\n    }\n\n    const { includeMatches, isCaseSensitive } = this.options;\n\n    text = isCaseSensitive ? text : text.toLowerCase();\n\n    let numMatches = 0;\n    let allIndices = [];\n    let totalScore = 0;\n\n    // ORs\n    for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n      const searchers = query[i];\n\n      // Reset indices\n      allIndices.length = 0;\n      numMatches = 0;\n\n      // ANDs\n      for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n        const searcher = searchers[j];\n        const { isMatch, indices, score } = searcher.search(text);\n\n        if (isMatch) {\n          numMatches += 1;\n          totalScore += score;\n          if (includeMatches) {\n            const type = searcher.constructor.type;\n            if (MultiMatchSet.has(type)) {\n              allIndices = [...allIndices, ...indices];\n            } else {\n              allIndices.push(indices);\n            }\n          }\n        } else {\n          totalScore = 0;\n          numMatches = 0;\n          allIndices.length = 0;\n          break\n        }\n      }\n\n      // OR condition, so if TRUE, return\n      if (numMatches) {\n        let result = {\n          isMatch: true,\n          score: totalScore / numMatches\n        };\n\n        if (includeMatches) {\n          result.indices = allIndices;\n        }\n\n        return result\n      }\n    }\n\n    // Nothing was matched\n    return {\n      isMatch: false,\n      score: 1\n    }\n  }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n  registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n  for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n    let searcherClass = registeredSearchers[i];\n    if (searcherClass.condition(pattern, options)) {\n      return new searcherClass(pattern, options)\n    }\n  }\n\n  return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n  AND: '$and',\n  OR: '$or'\n};\n\nconst KeyType = {\n  PATH: '$path',\n  PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n  !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n  !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n  [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n    [key]: query[key]\n  }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n  const next = (query) => {\n    let keys = Object.keys(query);\n\n    const isQueryPath = isPath(query);\n\n    if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n      return next(convertToExplicit(query))\n    }\n\n    if (isLeaf(query)) {\n      const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n      const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n      if (!isString(pattern)) {\n        throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n      }\n\n      const obj = {\n        keyId: createKeyId(key),\n        pattern\n      };\n\n      if (auto) {\n        obj.searcher = createSearcher(pattern, options);\n      }\n\n      return obj\n    }\n\n    let node = {\n      children: [],\n      operator: keys[0]\n    };\n\n    keys.forEach((key) => {\n      const value = query[key];\n\n      if (isArray(value)) {\n        value.forEach((item) => {\n          node.children.push(next(item));\n        });\n      }\n    });\n\n    return node\n  };\n\n  if (!isExpression(query)) {\n    query = convertToExplicit(query);\n  }\n\n  return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n  results,\n  { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n  results.forEach((result) => {\n    let totalScore = 1;\n\n    result.matches.forEach(({ key, norm, score }) => {\n      const weight = key ? key.weight : null;\n\n      totalScore *= Math.pow(\n        score === 0 && weight ? Number.EPSILON : score,\n        (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n      );\n    });\n\n    result.score = totalScore;\n  });\n}\n\nfunction transformMatches(result, data) {\n  const matches = result.matches;\n  data.matches = [];\n\n  if (!isDefined(matches)) {\n    return\n  }\n\n  matches.forEach((match) => {\n    if (!isDefined(match.indices) || !match.indices.length) {\n      return\n    }\n\n    const { indices, value } = match;\n\n    let obj = {\n      indices,\n      value\n    };\n\n    if (match.key) {\n      obj.key = match.key.src;\n    }\n\n    if (match.idx > -1) {\n      obj.refIndex = match.idx;\n    }\n\n    data.matches.push(obj);\n  });\n}\n\nfunction transformScore(result, data) {\n  data.score = result.score;\n}\n\nfunction format(\n  results,\n  docs,\n  {\n    includeMatches = Config.includeMatches,\n    includeScore = Config.includeScore\n  } = {}\n) {\n  const transformers = [];\n\n  if (includeMatches) transformers.push(transformMatches);\n  if (includeScore) transformers.push(transformScore);\n\n  return results.map((result) => {\n    const { idx } = result;\n\n    const data = {\n      item: docs[idx],\n      refIndex: idx\n    };\n\n    if (transformers.length) {\n      transformers.forEach((transformer) => {\n        transformer(result, data);\n      });\n    }\n\n    return data\n  })\n}\n\nclass Fuse {\n  constructor(docs, options = {}, index) {\n    this.options = { ...Config, ...options };\n\n    if (\n      this.options.useExtendedSearch &&\n      !true\n    ) {\n      throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n    }\n\n    this._keyStore = new KeyStore(this.options.keys);\n\n    this.setCollection(docs, index);\n  }\n\n  setCollection(docs, index) {\n    this._docs = docs;\n\n    if (index && !(index instanceof FuseIndex)) {\n      throw new Error(INCORRECT_INDEX_TYPE)\n    }\n\n    this._myIndex =\n      index ||\n      createIndex(this.options.keys, this._docs, {\n        getFn: this.options.getFn,\n        fieldNormWeight: this.options.fieldNormWeight\n      });\n  }\n\n  add(doc) {\n    if (!isDefined(doc)) {\n      return\n    }\n\n    this._docs.push(doc);\n    this._myIndex.add(doc);\n  }\n\n  remove(predicate = (/* doc, idx */) => false) {\n    const results = [];\n\n    for (let i = 0, len = this._docs.length; i < len; i += 1) {\n      const doc = this._docs[i];\n      if (predicate(doc, i)) {\n        this.removeAt(i);\n        i -= 1;\n        len -= 1;\n\n        results.push(doc);\n      }\n    }\n\n    return results\n  }\n\n  removeAt(idx) {\n    this._docs.splice(idx, 1);\n    this._myIndex.removeAt(idx);\n  }\n\n  getIndex() {\n    return this._myIndex\n  }\n\n  search(query, { limit = -1 } = {}) {\n    const {\n      includeMatches,\n      includeScore,\n      shouldSort,\n      sortFn,\n      ignoreFieldNorm\n    } = this.options;\n\n    let results = isString(query)\n      ? isString(this._docs[0])\n        ? this._searchStringList(query)\n        : this._searchObjectList(query)\n      : this._searchLogical(query);\n\n    computeScore(results, { ignoreFieldNorm });\n\n    if (shouldSort) {\n      results.sort(sortFn);\n    }\n\n    if (isNumber(limit) && limit > -1) {\n      results = results.slice(0, limit);\n    }\n\n    return format(results, this._docs, {\n      includeMatches,\n      includeScore\n    })\n  }\n\n  _searchStringList(query) {\n    const searcher = createSearcher(query, this.options);\n    const { records } = this._myIndex;\n    const results = [];\n\n    // Iterate over every string in the index\n    records.forEach(({ v: text, i: idx, n: norm }) => {\n      if (!isDefined(text)) {\n        return\n      }\n\n      const { isMatch, score, indices } = searcher.searchIn(text);\n\n      if (isMatch) {\n        results.push({\n          item: text,\n          idx,\n          matches: [{ score, value: text, norm, indices }]\n        });\n      }\n    });\n\n    return results\n  }\n\n  _searchLogical(query) {\n\n    const expression = parse(query, this.options);\n\n    const evaluate = (node, item, idx) => {\n      if (!node.children) {\n        const { keyId, searcher } = node;\n\n        const matches = this._findMatches({\n          key: this._keyStore.get(keyId),\n          value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n          searcher\n        });\n\n        if (matches && matches.length) {\n          return [\n            {\n              idx,\n              item,\n              matches\n            }\n          ]\n        }\n\n        return []\n      }\n\n      const res = [];\n      for (let i = 0, len = node.children.length; i < len; i += 1) {\n        const child = node.children[i];\n        const result = evaluate(child, item, idx);\n        if (result.length) {\n          res.push(...result);\n        } else if (node.operator === LogicalOperator.AND) {\n          return []\n        }\n      }\n      return res\n    };\n\n    const records = this._myIndex.records;\n    const resultMap = {};\n    const results = [];\n\n    records.forEach(({ $: item, i: idx }) => {\n      if (isDefined(item)) {\n        let expResults = evaluate(expression, item, idx);\n\n        if (expResults.length) {\n          // Dedupe when adding\n          if (!resultMap[idx]) {\n            resultMap[idx] = { idx, item, matches: [] };\n            results.push(resultMap[idx]);\n          }\n          expResults.forEach(({ matches }) => {\n            resultMap[idx].matches.push(...matches);\n          });\n        }\n      }\n    });\n\n    return results\n  }\n\n  _searchObjectList(query) {\n    const searcher = createSearcher(query, this.options);\n    const { keys, records } = this._myIndex;\n    const results = [];\n\n    // List is Array<Object>\n    records.forEach(({ $: item, i: idx }) => {\n      if (!isDefined(item)) {\n        return\n      }\n\n      let matches = [];\n\n      // Iterate over every key (i.e, path), and fetch the value at that key\n      keys.forEach((key, keyIndex) => {\n        matches.push(\n          ...this._findMatches({\n            key,\n            value: item[keyIndex],\n            searcher\n          })\n        );\n      });\n\n      if (matches.length) {\n        results.push({\n          idx,\n          item,\n          matches\n        });\n      }\n    });\n\n    return results\n  }\n  _findMatches({ key, value, searcher }) {\n    if (!isDefined(value)) {\n      return []\n    }\n\n    let matches = [];\n\n    if (isArray(value)) {\n      value.forEach(({ v: text, i: idx, n: norm }) => {\n        if (!isDefined(text)) {\n          return\n        }\n\n        const { isMatch, score, indices } = searcher.searchIn(text);\n\n        if (isMatch) {\n          matches.push({\n            score,\n            key,\n            value: text,\n            idx,\n            norm,\n            indices\n          });\n        }\n      });\n    } else {\n      const { v: text, n: norm } = value;\n\n      const { isMatch, score, indices } = searcher.searchIn(text);\n\n      if (isMatch) {\n        matches.push({ score, key, value: text, norm, indices });\n      }\n    }\n\n    return matches\n  }\n}\n\nFuse.version = '7.0.0';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n  Fuse.parseQuery = parse;\n}\n\n{\n  register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n", "import * as React from \"react\";\nfunction MagnifyingGlassIcon({\n  title,\n  titleId,\n  ...props\n}, svgRef) {\n  return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    fill: \"none\",\n    viewBox: \"0 0 24 24\",\n    strokeWidth: 1.5,\n    stroke: \"currentColor\",\n    \"aria-hidden\": \"true\",\n    \"data-slot\": \"icon\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\",\n    d: \"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\"\n  }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(MagnifyingGlassIcon);\nexport default ForwardRef;", "import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import MagnifyingGlassIcon from\"https://cdn.jsdelivr.net/npm/@heroicons/react@2.2.0/24/outline/esm/MagnifyingGlassIcon.js\";export default function SearchInput(props){var _props_placeholder;// This is a React component containing an Example component\n// Replace <Example /> with your own code\nreturn /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(MagnifyingGlassIcon,{style:{width:\"1em\"}}),/*#__PURE__*/_jsx(\"input\",{style:{flexGrow:1,border:\"2px solid #007ec6\",borderRadius:\"0.75em\",paddingBlock:\"0.5em\",paddingInline:\"0.75em\",fontFamily:\"Poppins\"},type:\"search\",value:props.search,placeholder:(_props_placeholder=props.placeholder)!==null&&_props_placeholder!==void 0?_props_placeholder:\"Finde Events in deiner N\\xe4he\",onChange:e=>props.setSearch(e.target.value)})]});}// Styles are written in object syntax\n// Learn more: https://reactjs.org/docs/dom-elements.html#style\nconst containerStyle={display:\"inline-flex\",gap:\"1em\",alignItems:\"center\",minWidth:\"20em\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SearchInput\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SearchInput.map"],
  "mappings": "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",
  "names": ["useFetch", "url", "dependencies", "data", "setData", "ye", "isLoading", "setIsLoading", "error", "setError", "ue", "fetchData", "result", "err", "ChevronDownIcon", "title", "titleId", "props", "svgRef", "B", "ForwardRef", "Y", "ChevronDownIcon_default", "MultiSelectDropDown", "options", "placeholder", "value", "allValuePlaceholder", "onChange", "isOpen", "setIsOpen", "ye", "toggleDropdown", "handleOptionClick", "option", "item", "u", "p", "ChevronDownIcon_default", "index", "isArray", "value", "getTag", "INFINITY", "baseToString", "result", "toString", "isString", "isNumber", "isBoolean", "isObjectLike", "isObject", "isDefined", "isBlank", "INCORRECT_INDEX_TYPE", "LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY", "key", "PATTERN_LENGTH_TOO_LARGE", "max", "MISSING_KEY_PROPERTY", "name", "INVALID_KEY_WEIGHT_VALUE", "hasOwn", "KeyStore", "keys", "totalWeight", "obj", "createKey", "keyId", "path", "id", "src", "weight", "getFn", "isString", "isArray", "createKeyPath", "createKeyId", "get", "list", "arr", "deepGet", "index", "isDefined", "value", "isNumber", "isBoolean", "toString", "i", "len", "MatchOptions", "BasicOptions", "a", "b", "FuzzyOptions", "AdvancedOptions", "Config", "SPACE", "norm", "mantissa", "cache", "m", "numTokens", "n", "FuseIndex", "fieldNormWeight", "docs", "records", "idx", "doc", "docIndex", "item", "isBlank", "record", "keyIndex", "subRecords", "stack", "nestedArrIndex", "subRecord", "k", "createIndex", "myIndex", "parseIndex", "data", "computeScore$1", "pattern", "errors", "currentLocation", "expectedLocation", "distance", "ignoreLocation", "accuracy", "proximity", "convertMaskToIndices", "matchmask", "minMatchCharLength", "indices", "start", "end", "match", "MAX_BITS", "search", "text", "patternAlphabet", "location", "threshold", "findAllMatches", "includeMatches", "patternLen", "textLen", "currentThreshold", "bestLocation", "computeMatches", "matchMask", "score", "lastBitArr", "finalScore", "binMax", "mask", "binMin", "binMid", "finish", "bitArr", "j", "charMatch", "result", "createPatternAlphabet", "char", "BitapSearch", "isCaseSensitive", "addChunk", "startIndex", "remainder", "allIndices", "totalScore", "hasMatches", "alphabet", "isMatch", "BaseMatch", "getMatch", "exp", "matches", "ExactMatch", "InverseExactMatch", "PrefixExactMatch", "InversePrefixExactMatch", "SuffixExactMatch", "InverseSuffixExactMatch", "FuzzyMatch", "IncludeMatch", "searchers", "searchersLen", "SPACE_RE", "OR_TOKEN", "parseQuery", "options", "query", "results", "queryItem", "found", "searcher", "token", "MultiMatchSet", "ExtendedSearch", "_", "numMatches", "qLen", "pLen", "type", "registeredSearchers", "register", "args", "createSearcher", "searcherClass", "LogicalOperator", "KeyType", "isExpression", "isPath", "isLeaf", "isObject", "convertToExplicit", "parse", "auto", "next", "isQueryPath", "node", "computeScore", "ignoreFieldNorm", "transformMatches", "transformScore", "format", "includeScore", "transformers", "transformer", "Fuse", "predicate", "limit", "shouldSort", "sortFn", "expression", "evaluate", "res", "child", "resultMap", "expResults", "MagnifyingGlassIcon", "title", "titleId", "props", "svgRef", "B", "ForwardRef", "Y", "MagnifyingGlassIcon_default", "SearchInput", "props", "_props_placeholder", "u", "containerStyle", "p", "MagnifyingGlassIcon_default", "e"]
}
