1 line
		
	
	
	
		
			40 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
		
		
			
		
	
	
			1 line
		
	
	
	
		
			40 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
|   | {"ast":null,"code":"function debounce(func, debounceMs, {\n  signal,\n  edges\n} = {}) {\n  let pendingThis,\n    pendingArgs = null,\n    leading = edges != null && edges.includes(\"leading\"),\n    trailing = edges == null || edges.includes(\"trailing\"),\n    invoke = () => {\n      pendingArgs !== null && (func.apply(pendingThis, pendingArgs), pendingThis = void 0, pendingArgs = null);\n    },\n    onTimerEnd = () => {\n      trailing && invoke(), cancel();\n    },\n    timeoutId = null,\n    schedule = () => {\n      timeoutId != null && clearTimeout(timeoutId), timeoutId = setTimeout(() => {\n        timeoutId = null, onTimerEnd();\n      }, debounceMs);\n    },\n    cancelTimer = () => {\n      timeoutId !== null && (clearTimeout(timeoutId), timeoutId = null);\n    },\n    cancel = () => {\n      cancelTimer(), pendingThis = void 0, pendingArgs = null;\n    },\n    flush = () => {\n      cancelTimer(), invoke();\n    },\n    debounced = function (...args) {\n      if (signal?.aborted) return;\n      pendingThis = this, pendingArgs = args;\n      let isFirstCall = timeoutId == null;\n      schedule(), leading && isFirstCall && invoke();\n    };\n  return debounced.schedule = schedule, debounced.cancel = cancel, debounced.flush = flush, signal?.addEventListener(\"abort\", cancel, {\n    once: !0\n  }), debounced;\n}\nfunction debounce2(func, debounceMs = 0, options = {}) {\n  typeof options != \"object\" && (options = {});\n  let {\n      signal,\n      leading = !1,\n      trailing = !0,\n      maxWait\n    } = options,\n    edges = Array(2);\n  leading && (edges[0] = \"leading\"), trailing && (edges[1] = \"trailing\");\n  let result,\n    pendingAt = null,\n    _debounced = debounce(function (...args) {\n      result = func.apply(this, args), pendingAt = null;\n    }, debounceMs, {\n      signal,\n      edges\n    }),\n    debounced = function (...args) {\n      if (maxWait != null) {\n        if (pendingAt === null) pendingAt = Date.now();else if (Date.now() - pendingAt >= maxWait) return result = func.apply(this, args), pendingAt = Date.now(), _debounced.cancel(), _debounced.schedule(), result;\n      }\n      return _debounced.apply(this, args), result;\n    },\n    flush = () => (_debounced.flush(), result);\n  return debounced.cancel = _debounced.cancel, debounced.flush = flush, debounced;\n}\nfunction isSymbol(value) {\n  return typeof value == \"symbol\" || value instanceof Symbol;\n}\nfunction toNumber(value) {\n  return isSymbol(value) ? NaN : Number(value);\n}\nfunction toFinite(value) {\n  return value ? (value = toNumber(value), value === 1 / 0 || value === -1 / 0 ? (value < 0 ? -1 : 1) * Number.MAX_VALUE : value === value ? value : 0) : value === 0 ? value : 0;\n}\nfunction toInteger(value) {\n  let finite = toFinite(value),\n    remainder = finite % 1;\n  return remainder ? finite - remainder : finite;\n}\nfunction uniq(arr) {\n  return Array.from(new Set(arr));\n}\nfunction isPrimitive(value) {\n  return value == null || typeof value != \"object\" && typeof value != \"function\";\n}\nfunction isTypedArray(x) {\n  return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\nfunction getSymbols(object) {\n  return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\nfunction getTag(value) {\n  return value == null ? value === void 0 ? \"[object Undefined]\" : \"[object Null]\" : Object.prototype.toString.call(value);\n}\nvar regexpTag = \"[object RegExp]\",\n  stringTag = \"[object String]\",\n  numberTag = \"[object Number]\",\n  booleanTag = \"[object Boolean]\",\n  argumentsTag = \"[object Arguments]\",\n  symbolTag = \"[object Symbol]\",\n  dateTag = \"[object Date]\",\n  mapTag = \"[object Map]\",\n  setTag = \"[object Set]\",\n  arrayTag = \"[object Array]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\",\n  objectTag = \"[object Object]\";\nvar dataViewTag = \"[object DataView]\",\n  uint8ArrayTag = \"[object Uint8Array]\",\n  uint8ClampedArrayTag = \"[object Uint8ClampedArray]\",\n  uint16ArrayTag = \"[object Uint16Array]\",\ |