decord/source/1200__extends.js
2026-07-23 10:11:24 +00:00

899 lines
22 KiB
JavaScript

// Module ID: 1200
// Function ID: 13774
// Name: _extends
// Dependencies: [1201, 1203, 1205, 1206]
// Exports: createBrowserHistory, createHashHistory, createMemoryHistory, locationsAreEqual
// Module 1200 (_extends)
import isAbsolute from "isAbsolute";
import valueOf from "valueOf";
import warning from "warning";
import invariant from "invariant";
function _extends() {
const obj = Object.assign || ((arg0) => {
for (let num = 1; num < arguments.length; num = num + 1) {
let tmp3 = arguments[num];
let tmp4 = tmp3;
let tmp5 = tmp2;
let keys = Object.keys();
if (keys !== undefined) {
tmp2 = tmp5;
let tmp7 = keys[tmp];
while (tmp7 !== undefined) {
let tmp8 = tmp7;
let _Object = Object;
tmp5 = tmp7;
if (!hasOwnProperty.call(tmp3, tmp7)) {
continue;
} else {
arg0[tmp7] = tmp3[tmp7];
tmp5 = tmp7;
continue;
}
continue;
}
}
}
return arg0;
});
return obj(...arguments);
}
function addLeadingSlash(str) {
let text = str;
if ("/" !== str.charAt(0)) {
text = `/${str}`;
}
return text;
}
function stripLeadingSlash(str) {
let substr = str;
if ("/" === str.charAt(0)) {
substr = str.substr(1);
}
return substr;
}
function stripBasename(str, str2) {
const formatted = str.toLowerCase();
let tmp = 0 === formatted.indexOf(str2.toLowerCase());
if (tmp) {
const indexOf = "/?#".indexOf;
tmp = -1 !== "/?#".indexOf(str.charAt(str2.length));
}
let substr = str;
if (tmp) {
substr = str.substr(str2.length);
}
return substr;
}
function stripTrailingSlash(str) {
let substr = str;
if ("/" === str.charAt(str.length - 1)) {
substr = str.slice(0, -1);
}
return substr;
}
function parsePath(arg0) {
let str = arg0;
if (!arg0) {
str = "/";
}
const index = str.indexOf("#");
let str2 = "";
let substr = str;
let str3 = "";
if (-1 !== index) {
str3 = str.substr(index);
substr = str.substr(0, index);
}
const index1 = substr.indexOf("?");
let substr2 = substr;
let substr1 = str2;
if (-1 !== index1) {
substr1 = substr.substr(index1);
substr2 = substr.substr(0, index1);
}
const obj = { pathname: substr2 };
let tmp5 = str2;
if ("?" !== substr1) {
tmp5 = substr1;
}
obj.search = tmp5;
if ("#" !== str3) {
str2 = str3;
}
obj.hash = str2;
return obj;
}
function createPath(location) {
let hash;
let pathname;
let search;
({ pathname, search, hash } = location);
if (!pathname) {
pathname = "/";
}
let tmp = search;
if (search) {
tmp = "?" !== search;
}
let sum = pathname;
if (tmp) {
let text = search;
if ("?" !== search.charAt(0)) {
text = `?${search}`;
}
sum = pathname + text;
}
let tmp4 = hash;
if (hash) {
tmp4 = "#" !== hash;
}
let sum1 = sum;
if (tmp4) {
let text1 = hash;
if ("#" !== hash.charAt(0)) {
text1 = `#${hash}`;
}
sum1 = sum + text1;
}
return sum1;
}
function createLocation(to, state, key, pathname) {
if ("string" === typeof to) {
const tmp12 = parsePath(to);
let tmp13 = tmp12;
tmp12.state = state;
} else {
const tmp21 = _extends({}, to);
tmp13 = tmp21;
if (undefined === tmp21.pathname) {
tmp13.pathname = "";
}
if (tmp13.search) {
if ("?" !== str3.charAt(0)) {
tmp13.search = `?${tmp13.search}`;
}
str3 = tmp13.search;
} else {
tmp13.search = "";
}
if (tmp13.hash) {
if ("#" !== str6.charAt(0)) {
tmp13.hash = `#${tmp13.hash}`;
}
str6 = tmp13.hash;
} else {
tmp13.hash = "";
}
let tmp8 = undefined !== state;
if (tmp8) {
tmp8 = undefined === tmp13.state;
}
if (tmp8) {
tmp13.state = state;
}
}
tmp13.pathname = decodeURI(tmp13.pathname);
if (key) {
tmp13.key = key;
}
pathname = tmp13.pathname;
if (pathname) {
if (pathname) {
if ("/" !== str9.charAt(0)) {
tmp13.pathname = isAbsolute(tmp13.pathname, pathname.pathname);
}
str9 = tmp13.pathname;
} else {
tmp13.pathname = pathname.pathname;
}
} else if (!pathname) {
tmp13.pathname = "/";
}
return tmp13;
}
function createTransitionManager() {
let c0 = null;
let closure_1 = [];
return {
setPrompt(flag) {
let closure_0 = flag;
return () => {
if (closure_0 === closure_0) {
closure_0 = null;
}
};
},
confirmTransitionTo(arg0, POP, getUserConfirmation, arg3) {
if (null != _null) {
if ("function" === typeof _null) {
let tmp3 = _null(arg0, POP);
} else {
tmp3 = _null;
}
if ("string" === typeof tmp3) {
if ("function" === typeof getUserConfirmation) {
getUserConfirmation(tmp3, arg3);
} else {
arg3(true);
}
} else {
arg3(false !== tmp3);
}
} else {
arg3(true);
}
},
appendListener(arg0) {
let closure_0 = arg0;
const fn = function e() {
if (c1) {
callback(...arguments);
}
};
let arr = true;
arr = arr.push(fn);
return () => {
let _true = false;
_true = _true.filter((arg0) => arg0 !== outer1_2);
};
},
notifyListeners() {
const length = arguments.length;
const array = new Array(length);
for (let num = 0; num < length; num = num + 1) {
array[num] = arguments[num];
}
const item = arr.forEach((apply) => apply.apply(undefined, array));
}
};
}
function getConfirmation(arg0, arg1) {
arg1(window.confirm(arg0));
}
function getHistoryState() {
let obj = state;
if (!state) {
obj = {};
}
return obj;
}
function stripHash(href) {
const index = href.indexOf("#");
let substr = href;
if (-1 !== index) {
substr = href.slice(0, index);
}
return substr;
}
function getHashPath() {
const index = href.indexOf("#");
let str = "";
if (-1 !== index) {
str = href.substring(index + 1);
}
return str;
}
function replaceHashPath(encodePathResult) {
const replaced = window.location.replace(`${stripHash(window.location.href)}#${encodePathResult}`);
}
function clamp(arg0, arg1, arg2) {
return Math.min(Math.max(arg0, 0), arg2);
}
let tmp3 = "undefined" === typeof window;
if (!tmp3) {
let _window = window;
tmp3 = !window.document;
}
if (!tmp3) {
let _window2 = window;
tmp3 = !window.document.createElement;
}
let closure_3 = !tmp3;
const popstate = "popstate";
let hashchange = "hashchange";
hashchange = "hashchange";
let closure_7 = {
hashbang: {
encodePath(str) {
let text = str;
if ("!" !== str.charAt(0)) {
text = `!/${stripLeadingSlash(str)}`;
}
return text;
},
decodePath(str) {
let substr = str;
if ("!" === str.charAt(0)) {
substr = str.substr(1);
}
return substr;
}
},
noslash: { encodePath: stripLeadingSlash, decodePath: addLeadingSlash },
slash: { encodePath: addLeadingSlash, decodePath: addLeadingSlash }
};
export const createBrowserHistory = function createBrowserHistory(props) {
let obj = props;
const fn = function l(arg0) {
let key;
let state;
let obj = arg0;
if (!arg0) {
obj = {};
}
const _location = window.location;
const sum = _location.pathname + _location.search + _location.hash;
let tmp2 = sum;
({ key, state } = obj);
if (str6) {
tmp2 = callback2(sum, str6);
}
return p(tmp2, state, key);
};
function d() {
const str = Math.random();
return Math.random().toString(36).substr(2, num);
}
function p(arg0) {
callback(obj, arg0);
obj.length = history.length;
closure_7.notifyListeners(obj.location, obj.action);
}
function g(state) {
let tmp = undefined === state.state;
if (tmp) {
const _navigator = navigator;
tmp = -1 === userAgent.indexOf("CriOS");
}
if (!tmp) {
w(fn(state.state));
}
}
function P() {
w(fn(w()));
}
function w(arg0) {
let closure_0 = arg0;
if (c8) {
c8 = false;
p();
} else {
closure_7.confirmTransitionTo(arg0, "POP", getUserConfirmation, (arg0) => {
if (arg0) {
const obj = { action: "POP", location: closure_0 };
outer1_15(obj);
} else {
let num = outer1_9.indexOf(outer1_12.location.key);
if (-1 === num) {
num = 0;
}
let num3 = outer1_9.indexOf(closure_0.key);
if (-1 === num3) {
num3 = 0;
}
const diff = num - num3;
if (diff) {
let c8 = true;
outer1_20(diff);
}
const tmp = closure_0;
}
});
}
}
const fn2 = function x(arg0) {
return str6 + d(arg0);
};
class L {
constructor(arg0) {
goResult = history.go(props);
return;
}
}
let closure_20 = L;
function E(arg0) {
const sum = c10 + arg0;
c10 = sum;
if (1 === sum) {
if (1 === arg0) {
const _window2 = window;
const listener = window.addEventListener(getUserConfirmation, g);
if (closure_2) {
const _window3 = window;
const listener1 = window.addEventListener(num, P);
}
}
}
if (0 === c10) {
const _window4 = window;
const removed = window.removeEventListener(getUserConfirmation, g);
if (closure_2) {
const _window = window;
const removed1 = window.removeEventListener(num, P);
}
}
}
if (undefined === props) {
obj = {};
}
if (!closure_3) {
invariant(false);
}
history = -1 === userAgent.indexOf("Android 2.");
if (history) {
history = -1 === userAgent.indexOf("Android 4.0");
}
if (!history) {
history = -1 === userAgent.indexOf("Mobile Safari");
}
if (!history) {
history = -1 !== userAgent.indexOf("Chrome");
}
if (!history) {
history = -1 !== userAgent.indexOf("Windows Phone");
}
if (history) {
let _window = window;
history = window.history;
}
if (history) {
let _window2 = window;
history = "pushState" in window.history;
}
invariant = -1 !== userAgent1.indexOf("Trident");
const forceRefresh = obj.forceRefresh;
closure_3 = undefined !== forceRefresh && forceRefresh;
let getUserConfirmation = obj.getUserConfirmation;
if (undefined === getUserConfirmation) {
getUserConfirmation = P;
}
const keyLength = obj.keyLength;
let num = 6;
if (undefined !== keyLength) {
num = keyLength;
}
let str6 = "";
if (obj.basename) {
str6 = obj(items(obj.basename));
}
let closure_7 = g();
let c8 = false;
const fnResult = fn(w());
items = [fnResult.key];
let c10 = 0;
let c11 = false;
obj = {
length: history.length,
action: "POP",
location: fnResult,
createHref: fn2,
push(arg0, arg1) {
const tmp = p(arg0, arg1, d(), obj.location);
const history = tmp;
closure_7.confirmTransitionTo(tmp, "PUSH", getUserConfirmation, (arg0) => {
if (arg0) {
const tmp3 = outer1_19(outer1_19);
if (outer1_1) {
let obj = { key: tmp4, state: tmp5 };
tmp.pushState(obj, null, tmp3);
if (outer1_3) {
const _window2 = window;
window.location.href = tmp3;
} else {
const substr = outer1_9.slice(0, outer1_9.indexOf(outer1_12.location.key) + 1);
substr.push(tmp.key);
outer1_9 = substr;
obj = { action: "PUSH", location: tmp };
outer1_15(obj);
}
} else {
const _window = window;
window.location.href = tmp3;
}
}
});
},
replace(arg0, arg1) {
const tmp = p(arg0, arg1, d(), obj.location);
const history = tmp;
closure_7.confirmTransitionTo(tmp, "REPLACE", getUserConfirmation, (arg0) => {
if (arg0) {
const tmp3 = outer1_19(outer1_19);
if (outer1_1) {
let obj = { key: tmp4, state: tmp5 };
tmp.replaceState(obj, null, tmp3);
if (outer1_3) {
const _window2 = window;
const replaced = window.location.replace(tmp3);
const str3 = window.location;
} else {
const index = outer1_9.indexOf(outer1_12.location.key);
if (-1 !== index) {
outer1_9[index] = tmp.key;
}
obj = { action: "REPLACE", location: tmp };
outer1_15(obj);
}
} else {
const _window = window;
const replaced1 = window.location.replace(tmp3);
const str = window.location;
}
}
});
},
go: L,
goBack() {
L(-1);
},
goForward() {
L(1);
},
block(flag) {
if (undefined === flag) {
flag = false;
}
const _prompt = closure_7.setPrompt(flag);
if (!c11) {
E(1);
c11 = true;
}
return () => {
if (c11) {
c11 = false;
outer1_21(-1);
}
return callback();
};
},
listen(arg0) {
let closure_0 = closure_7.appendListener(arg0);
E(1);
return () => {
outer1_21(-1);
callback();
};
}
};
return obj;
};
export const createHashHistory = function createHashHistory(props) {
let obj = props;
const fn = function f(arg0) {
const tmp = decodePath(outer1_20());
let tmp2 = tmp;
if (str2) {
tmp2 = obj(tmp, str2);
}
return H(tmp2);
};
function d(variant) {
items(obj, variant);
obj.length = history.length;
closure_5.notifyListeners(obj.location, obj.action);
}
function g(fnResult) {
let tmp = outer1_20();
const tmp2 = encodePath(tmp);
if (tmp !== tmp2) {
outer1_21(tmp2);
} else {
const tmp4 = fn();
const _location = obj.location;
if (!c6) {
const tmp7 = _location.pathname === tmp4.pathname && _location.search === tmp4.search && _location.hash === tmp4.hash;
}
if (c7 !== g(tmp4)) {
c7 = null;
((arg0) => {
let closure_0 = arg0;
if (outer1_6) {
outer1_6 = false;
outer1_13();
} else {
outer1_5.confirmTransitionTo(arg0, "POP", outer1_1, (arg0) => {
if (arg0) {
const obj = { action: "POP", location: closure_0 };
outer2_13(obj);
} else {
let num = outer2_8.lastIndexOf(g(outer2_11.location));
if (-1 === num) {
num = 0;
}
let num3 = outer2_8.lastIndexOf(g(closure_0));
if (-1 === num3) {
num3 = 0;
}
const diff = num - num3;
if (diff) {
const outer2_6 = true;
outer2_15(diff);
}
const tmp = closure_0;
}
});
}
})(tmp4);
}
}
}
class H {
constructor(arg0) {
goResult = history.go(props);
return;
}
}
let closure_15 = H;
function L(arg0) {
const sum = c9 + arg0;
c9 = sum;
if (1 === sum) {
if (1 === arg0) {
const _window2 = window;
const listener = window.addEventListener(c6, g);
}
}
if (0 === c9) {
const _window = window;
const removed = window.removeEventListener(c6, g);
}
}
if (undefined === props) {
obj = {};
}
if (!encodePath) {
str2(false);
}
let index = userAgent.indexOf("Firefox");
let getUserConfirmation = obj.getUserConfirmation;
if (undefined === getUserConfirmation) {
getUserConfirmation = getConfirmation;
}
const hashType = obj.hashType;
let str = "slash";
if (undefined !== hashType) {
str = hashType;
}
str2 = "";
if (obj.basename) {
str2 = fn(addLeadingSlash(obj.basename));
}
encodePath = tmp6.encodePath;
const decodePath = tmp6.decodePath;
let closure_5 = L();
let c6 = false;
const table = null;
let tmp7 = getHashPath();
const encodePathResult = encodePath(tmp7);
if (tmp7 !== encodePathResult) {
replaceHashPath(encodePathResult);
}
const fnResult = fn();
const items = [g(fnResult)];
addLeadingSlash = 0;
let c10 = false;
obj = {
length: history.length,
action: "POP",
location: fnResult,
createHref(arg0) {
const element = document.querySelector("base");
let attr = element;
if (element) {
attr = element.getAttribute("href");
}
let str2 = "";
if (attr) {
const _window = window;
str2 = outer1_19(window.location.href);
}
return `${str2}#` + encodePath(str2 + g(arg0));
},
push(arg0, arg1) {
const tmp = H(arg0, undefined, undefined, obj.location);
const history = tmp;
closure_5.confirmTransitionTo(tmp, "PUSH", getUserConfirmation, (arg0) => {
if (arg0) {
const tmp3 = g(closure_0);
const tmp6 = outer1_3(outer1_2 + tmp3);
if (outer2_20() !== tmp6) {
const outer1_7 = tmp3;
const _window = window;
window.location.hash = tmp6;
const substr = outer1_8.slice(0, outer1_8.lastIndexOf(g(outer1_11.location)) + 1);
substr.push(tmp3);
outer1_8 = substr;
const obj = { action: "PUSH", location: closure_0 };
outer1_13(obj);
} else {
outer1_13();
}
}
});
},
replace(arg0, arg1) {
const tmp = H(arg0, undefined, undefined, obj.location);
const history = tmp;
closure_5.confirmTransitionTo(tmp, "REPLACE", getUserConfirmation, (arg0) => {
if (arg0) {
const tmp3 = g(closure_0);
const tmp6 = outer1_3(outer1_2 + tmp3);
if (outer2_20() !== tmp6) {
const outer1_7 = tmp3;
outer2_21(tmp6);
}
const index = outer1_8.indexOf(g(outer1_11.location));
if (-1 !== index) {
outer1_8[index] = tmp3;
}
const obj = { action: "REPLACE", location: closure_0 };
outer1_13(obj);
}
});
},
go: H,
goBack() {
H(-1);
},
goForward() {
H(1);
},
block(flag) {
if (undefined === flag) {
flag = false;
}
const _prompt = closure_5.setPrompt(flag);
if (!c10) {
L(1);
c10 = true;
}
return () => {
if (c10) {
c10 = false;
outer1_16(-1);
}
return callback();
};
},
listen(arg0) {
let closure_0 = closure_5.appendListener(arg0);
L(1);
return () => {
outer1_16(-1);
callback();
};
}
};
return obj;
};
export const createMemoryHistory = function createMemoryHistory(props) {
let initialEntries;
let isAbsolute;
let obj = props;
function u(arg0) {
outer1_8(obj, arg0);
obj.length = obj.entries.length;
closure_2.notifyListeners(obj.location, obj.action);
}
function f() {
const str = Math.random();
return Math.random().toString(36).substr(2, num2);
}
const fn = function p(arg0) {
const tmp = outer1_22(obj.index + arg0, 0, obj.entries.length - 1);
let closure_0 = tmp;
closure_2.confirmTransitionTo(obj.entries[tmp], "POP", closure_0, (arg0) => {
if (arg0) {
const obj = { action: "POP", location: closure_1, index: closure_0 };
tmp(obj);
} else {
tmp();
}
});
};
if (undefined === props) {
obj = {};
}
({ getUserConfirmation: isAbsolute, initialEntries } = obj);
if (undefined === initialEntries) {
initialEntries = ["/"];
}
const initialIndex = obj.initialIndex;
let num = 0;
if (undefined !== initialIndex) {
num = initialIndex;
}
const keyLength = obj.keyLength;
let num2 = 6;
if (undefined !== keyLength) {
num2 = keyLength;
}
let closure_2 = createTransitionManager();
let tmp = clamp(num, 0, initialEntries.length - 1);
const mapped = initialEntries.map((key) => {
if ("string" === typeof key) {
key = f();
} else {
key = key.key;
if (!key) {
key = f();
}
}
return outer1_15(key, undefined, key);
});
obj = {
length: mapped.length,
action: "POP",
location: mapped[tmp],
index: tmp,
entries: mapped,
createHref: createPath,
push(arg0, arg1) {
const tmp = outer1_15(arg0, arg1, f(), obj.location);
let closure_0 = tmp;
closure_2.confirmTransitionTo(tmp, "PUSH", closure_0, (arg0) => {
if (arg0) {
const sum = outer1_3.index + 1;
const entries = outer1_3.entries;
let substr = entries.slice(0);
if (substr.length > sum) {
substr.splice(sum, substr.length - sum, closure_0);
} else {
substr.push(closure_0);
}
const obj = { action: "PUSH", location: closure_0, index: sum, entries: substr };
substr = outer1_4(obj);
}
});
},
replace(arg0, arg1) {
const tmp = outer1_15(arg0, arg1, f(), obj.location);
let closure_0 = tmp;
closure_2.confirmTransitionTo(tmp, "REPLACE", closure_0, (arg0) => {
if (arg0) {
outer1_3.entries[outer1_3.index] = closure_0;
const obj = { action: "REPLACE", location: closure_0 };
outer1_4(obj);
}
});
},
go: fn,
goBack() {
fn(-1);
},
goForward() {
fn(1);
},
canGo(arg0) {
const sum = obj.index + arg0;
let tmp2 = 0 <= sum;
if (tmp2) {
tmp2 = sum < obj.entries.length;
}
return tmp2;
},
block(flag) {
if (undefined === flag) {
flag = false;
}
return closure_2.setPrompt(flag);
},
listen(arg0) {
return closure_2.appendListener(arg0);
}
};
return obj;
};
export { createLocation };
export const locationsAreEqual = function locationsAreEqual(_location, pathname2) {
let tmp = _location.pathname === pathname2.pathname && _location.search === pathname2.search && _location.hash === pathname2.hash && _location.key === pathname2.key;
if (tmp) {
tmp = valueOf(_location.state, pathname2.state);
}
return tmp;
};
export { parsePath };
export { createPath };