HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //proc/1233/cwd/home/arjun/projects/buyercall/node_modules/@vueuse/integrations/useFuse.cjs
'use strict';

var Fuse = require('fuse.js');
var vueDemi = require('vue-demi');
var shared = require('@vueuse/shared');

function useFuse(search, data, options) {
  const createFuse = () => {
    var _a, _b;
    return new Fuse(
      (_a = shared.toValue(data)) != null ? _a : [],
      (_b = shared.toValue(options)) == null ? void 0 : _b.fuseOptions
    );
  };
  const fuse = vueDemi.ref(createFuse());
  vueDemi.watch(
    () => {
      var _a;
      return (_a = shared.toValue(options)) == null ? void 0 : _a.fuseOptions;
    },
    () => {
      fuse.value = createFuse();
    },
    { deep: true }
  );
  vueDemi.watch(
    () => shared.toValue(data),
    (newData) => {
      fuse.value.setCollection(newData);
    },
    { deep: true }
  );
  const results = vueDemi.computed(() => {
    const resolved = shared.toValue(options);
    if ((resolved == null ? void 0 : resolved.matchAllWhenSearchEmpty) && !shared.toValue(search))
      return shared.toValue(data).map((item, index) => ({ item, refIndex: index }));
    const limit = resolved == null ? void 0 : resolved.resultLimit;
    return fuse.value.search(shared.toValue(search), limit ? { limit } : void 0);
  });
  return {
    fuse,
    results
  };
}

exports.useFuse = useFuse;