{
  "version": 3,
  "sources": ["esm/misc.js"],
  "sourcesContent": ["/**\n * Empty function.\n */\nfunction noop() {}\n/**\n * Compares two objects.\n * @example\n * shallowEqual({ a: \"a\" }, {}); // false\n * shallowEqual({ a: \"a\" }, { b: \"b\" }); // false\n * shallowEqual({ a: \"a\" }, { a: \"a\" }); // true\n * shallowEqual({ a: \"a\" }, { a: \"a\", b: \"b\" }); // false\n */\n\nfunction shallowEqual(a, b) {\n  if (a === b) return true;\n  if (!a) return false;\n  if (!b) return false;\n  if (typeof a !== \"object\") return false;\n  if (typeof b !== \"object\") return false;\n  const aKeys = Object.keys(a);\n  const bKeys = Object.keys(b);\n  const {\n    length\n  } = aKeys;\n  if (bKeys.length !== length) return false;\n\n  for (const key of aKeys) {\n    if (a[key] !== b[key]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * Receives a `setState` argument and calls it with `currentValue` if it's a\n * function. Otherwise return the argument as the new value.\n * @example\n * applyState((value) => value + 1, 1); // 2\n * applyState(2, 1); // 2\n */\n\nfunction applyState(argument, currentValue) {\n  if (isUpdater(argument)) {\n    const value = isLazyValue(currentValue) ? currentValue() : currentValue;\n    return argument(value);\n  }\n\n  return argument;\n}\n\nfunction isUpdater(argument) {\n  return typeof argument === \"function\";\n}\n\nfunction isLazyValue(value) {\n  return typeof value === \"function\";\n}\n/**\n * Sets both a function and object React ref.\n */\n\n\nfunction setRef(ref, value) {\n  if (typeof ref === \"function\") {\n    ref(value);\n  } else if (ref) {\n    ref.current = value;\n  }\n}\n/**\n * Checks whether `arg` is an object or not.\n * @returns {boolean}\n */\n\nfunction isObject(arg) {\n  return typeof arg === \"object\" && arg != null;\n}\n/**\n * Checks whether `arg` is empty or not.\n * @example\n * isEmpty([]); // true\n * isEmpty([\"a\"]); // false\n * isEmpty({}); // true\n * isEmpty({ a: \"a\" }); // false\n * isEmpty(); // true\n * isEmpty(null); // true\n * isEmpty(undefined); // true\n * isEmpty(\"\"); // true\n */\n\nfunction isEmpty(arg) {\n  if (Array.isArray(arg)) return !arg.length;\n  if (isObject(arg)) return !Object.keys(arg).length;\n  if (arg == null) return true;\n  if (arg === \"\") return true;\n  return false;\n}\n/**\n * Checks whether `arg` is a promise or not.\n * @returns {boolean}\n */\n\nfunction isPromise(arg) {\n  return Boolean(arg && \"then\" in arg && typeof arg.then === \"function\");\n}\n/**\n * Checks whether `arg` is an integer or not.\n * @example\n * isInteger(1); // true\n * isInteger(1.5); // false\n * isInteger(\"1\"); // true\n * isInteger(\"1.5\"); // false\n */\n\nfunction isInteger(arg) {\n  if (typeof arg === \"number\") {\n    return Math.floor(arg) === arg;\n  }\n\n  return String(Math.floor(Number(arg))) === arg;\n}\n/**\n * Checks whether `prop` is an own property of `obj` or not.\n */\n\nfunction hasOwnProperty(object, prop) {\n  return Object.prototype.hasOwnProperty.call(object, prop);\n}\n/**\n * Receives functions as arguments and returns a new function that calls all.\n */\n\nfunction chain() {\n  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n    fns[_key] = arguments[_key];\n  }\n\n  return function () {\n    for (const fn of fns) {\n      if (typeof fn === \"function\") {\n        // @ts-ignore\n        fn(...arguments);\n      }\n    }\n  };\n}\n/**\n * Returns a string with the truthy values of `args` separated by space.\n */\n\nfunction cx() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  return args.filter(Boolean).join(\" \") || undefined;\n}\n/**\n * Removes diatrics from a string.\n * TODO: Check if it works on WebView Android.\n */\n\nfunction normalizeString(str) {\n  return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n/**\n * Queues a function to be called at the end of the current event loop.\n */\n\nfunction queueMicrotask(callback) {\n  if (window.queueMicrotask) {\n    return window.queueMicrotask(callback);\n  }\n\n  Promise.resolve().then(callback);\n}\n\nexport { applyState, chain, cx, hasOwnProperty, isEmpty, isInteger, isObject, isPromise, noop, normalizeString, queueMicrotask, setRef, shallowEqual };\n"],
  "mappings": "AAGA,SAASA,GAAO,CAAC,CAUjB,SAASC,EAAaC,EAAGC,EAAG,CAC1B,GAAID,IAAMC,EAAG,MAAO,GAIpB,GAHI,CAACD,GACD,CAACC,GACD,OAAOD,GAAM,UACb,OAAOC,GAAM,SAAU,MAAO,GAClC,IAAMC,EAAQ,OAAO,KAAKF,CAAC,EACrBG,EAAQ,OAAO,KAAKF,CAAC,EACrB,CACJ,OAAAG,CACF,EAAIF,EACJ,GAAIC,EAAM,SAAWC,EAAQ,MAAO,GAEpC,QAAWC,KAAOH,EAChB,GAAIF,EAAEK,CAAG,IAAMJ,EAAEI,CAAG,EAClB,MAAO,GAIX,MAAO,EACT,CASA,SAASC,EAAWC,EAAUC,EAAc,CAC1C,GAAIC,EAAUF,CAAQ,EAAG,CACvB,IAAMG,EAAQC,EAAYH,CAAY,EAAIA,EAAa,EAAIA,EAC3D,OAAOD,EAASG,CAAK,EAGvB,OAAOH,CACT,CAEA,SAASE,EAAUF,EAAU,CAC3B,OAAO,OAAOA,GAAa,UAC7B,CAEA,SAASI,EAAYD,EAAO,CAC1B,OAAO,OAAOA,GAAU,UAC1B,CAMA,SAASE,EAAOC,EAAKH,EAAO,CACtB,OAAOG,GAAQ,WACjBA,EAAIH,CAAK,EACAG,IACTA,EAAI,QAAUH,EAElB,CAMA,SAASI,EAASC,EAAK,CACrB,OAAO,OAAOA,GAAQ,UAAYA,GAAO,IAC3C,CAcA,SAASC,EAAQD,EAAK,CACpB,OAAI,MAAM,QAAQA,CAAG,EAAU,CAACA,EAAI,OAChCD,EAASC,CAAG,EAAU,CAAC,OAAO,KAAKA,CAAG,EAAE,OACxCA,GAAO,MACPA,IAAQ,EAEd,CAMA,SAASE,EAAUF,EAAK,CACtB,MAAO,GAAQA,GAAO,SAAUA,GAAO,OAAOA,EAAI,MAAS,WAC7D,CAUA,SAASG,EAAUH,EAAK,CACtB,OAAI,OAAOA,GAAQ,SACV,KAAK,MAAMA,CAAG,IAAMA,EAGtB,OAAO,KAAK,MAAM,OAAOA,CAAG,CAAC,CAAC,IAAMA,CAC7C,CAKA,SAASI,EAAeC,EAAQC,EAAM,CACpC,OAAO,OAAO,UAAU,eAAe,KAAKD,EAAQC,CAAI,CAC1D,CAKA,SAASC,GAAQ,CACf,QAASC,EAAO,UAAU,OAAQC,EAAM,IAAI,MAAMD,CAAI,EAAGE,EAAO,EAAGA,EAAOF,EAAME,IAC9ED,EAAIC,CAAI,EAAI,UAAUA,CAAI,EAG5B,OAAO,UAAY,CACjB,QAAWC,KAAMF,EACX,OAAOE,GAAO,YAEhBA,EAAG,GAAG,SAAS,CAGrB,CACF,CAKA,SAASC,GAAK,CACZ,QAASC,EAAQ,UAAU,OAAQC,EAAO,IAAI,MAAMD,CAAK,EAAGE,EAAQ,EAAGA,EAAQF,EAAOE,IACpFD,EAAKC,CAAK,EAAI,UAAUA,CAAK,EAG/B,OAAOD,EAAK,OAAO,OAAO,EAAE,KAAK,GAAG,GAAK,MAC3C,CAMA,SAASE,EAAgBC,EAAK,CAC5B,OAAOA,EAAI,UAAU,KAAK,EAAE,QAAQ,mBAAoB,EAAE,CAC5D,CAKA,SAASC,EAAeC,EAAU,CAChC,GAAI,OAAO,eACT,OAAO,OAAO,eAAeA,CAAQ,EAGvC,QAAQ,QAAQ,EAAE,KAAKA,CAAQ,CACjC",
  "names": ["noop", "shallowEqual", "a", "b", "aKeys", "bKeys", "length", "key", "applyState", "argument", "currentValue", "isUpdater", "value", "isLazyValue", "setRef", "ref", "isObject", "arg", "isEmpty", "isPromise", "isInteger", "hasOwnProperty", "object", "prop", "chain", "_len", "fns", "_key", "fn", "cx", "_len2", "args", "_key2", "normalizeString", "str", "queueMicrotask", "callback"]
}
