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]\",\
|