997 lines
32 KiB
JavaScript
997 lines
32 KiB
JavaScript
// Module ID: 1562
|
|
// Function ID: 1563
|
|
// Name: prepareConfigResources
|
|
// Dependencies: [32, 1563, 1564, 1565, 1561, 1527, 1556]
|
|
// Exports: getStateFromPath
|
|
|
|
// Module 1562 (prepareConfigResources)
|
|
import findFocusedRoute from "findFocusedRoute" /* 1527 */;
|
|
import validateArrayFormatSeparatorAll from "validateArrayFormatSeparator" /* 1556 */;
|
|
import arrayStartsWith from "arrayStartsWith" /* 1565 */;
|
|
import closure_4 from "_slicedToArray" /* 32 */;
|
|
|
|
require = arg1;
|
|
function prepareConfigResources(screens) {
|
|
const initialRoutes = (function getInitialRoutes(initialRouteName) {
|
|
initialRouteName = undefined;
|
|
if (initialRouteName != null) {
|
|
initialRouteName = initialRouteName.initialRouteName;
|
|
}
|
|
const items = [];
|
|
if (initialRouteName) {
|
|
const obj = { initialRouteName: null, parentScreens: null };
|
|
obj[0] = initialRouteName.initialRouteName;
|
|
obj[1] = [];
|
|
items.push(obj);
|
|
}
|
|
return items;
|
|
})(screens);
|
|
screens = undefined;
|
|
if (screens != null) {
|
|
screens = screens.screens;
|
|
}
|
|
const configs = (function getSortedNormalizedConfigs(initialRoutes, screens) {
|
|
closure_0 = initialRoutes;
|
|
let obj = screens;
|
|
if (screens === undefined) {
|
|
obj = {};
|
|
}
|
|
const items = [];
|
|
const keys = Object.keys(obj);
|
|
const items1 = [...keys.map((arg0) => closure_1_13(arg0, obj, closure_0, [], [], []))];
|
|
const mapped = items.concat.apply(items1).map((arg0, order) => {
|
|
obj = {};
|
|
const merged = Object.assign(arg0);
|
|
obj.order = order;
|
|
return obj;
|
|
});
|
|
return mapped.sort((segments, segments2) => {
|
|
if (obj.isArrayEqual(segments.segments, segments2.segments)) {
|
|
if (segments.routeNames.length <= segments2.routeNames.length) {
|
|
if (segments2.routeNames.length <= segments.routeNames.length) {
|
|
let num10 = segments.routeNames.length - segments2.routeNames.length || segments.order - segments2.order;
|
|
const tmp10 = segments.routeNames.length - segments2.routeNames.length || segments.order - segments2.order;
|
|
} else {
|
|
let tmpResult = tmp(tmp2[3]);
|
|
num10 = 1;
|
|
}
|
|
let num9 = num10;
|
|
} else {
|
|
tmpResult = tmp(tmp2[3]);
|
|
num9 = -1;
|
|
}
|
|
return num9;
|
|
} else {
|
|
if (tmpResult1.arrayStartsWith(segments.segments, segments2.segments)) {
|
|
return -1;
|
|
} else {
|
|
if (tmpResult2.arrayStartsWith(segments2.segments, segments.segments)) {
|
|
return 1;
|
|
} else {
|
|
const _Math = Math;
|
|
let num = 0;
|
|
if (0 < Math.max(segments.segments.length, segments2.segments.length)) {
|
|
while (null != segments.segments[num]) {
|
|
if (null == segments2.segments[num]) {
|
|
let num6 = -1;
|
|
return -1;
|
|
} else {
|
|
let obj8 = segments.segments[num];
|
|
let startsWithResult = obj8.startsWith(":");
|
|
let obj9 = segments2.segments[num];
|
|
let startsWithResult1 = obj9.startsWith(":");
|
|
let hasItem = startsWithResult;
|
|
if (startsWithResult) {
|
|
let obj4 = segments.segments[num];
|
|
hasItem = obj4.includes("(");
|
|
}
|
|
let hasItem1 = startsWithResult1;
|
|
if (startsWithResult1) {
|
|
let obj5 = segments2.segments[num];
|
|
hasItem1 = obj5.includes("(");
|
|
}
|
|
let tmp8 = "*" === segments.segments[num];
|
|
let tmp9 = "*" === segments2.segments[num];
|
|
if (!tmp8) {
|
|
if (!hasItem) {
|
|
if (tmp8) {
|
|
if (!tmp9) {
|
|
return 1;
|
|
}
|
|
}
|
|
if (tmp9) {
|
|
if (!tmp8) {
|
|
let num3 = -1;
|
|
return -1;
|
|
}
|
|
}
|
|
if (startsWithResult) {
|
|
if (!startsWithResult1) {
|
|
return 1;
|
|
}
|
|
}
|
|
if (startsWithResult1) {
|
|
if (!startsWithResult) {
|
|
let num4 = -1;
|
|
return -1;
|
|
}
|
|
}
|
|
if (hasItem) {
|
|
if (!hasItem1) {
|
|
let num5 = -1;
|
|
return -1;
|
|
}
|
|
}
|
|
if (hasItem1) {
|
|
if (!hasItem) {
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
num = num + 1;
|
|
let _Math2 = Math;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
return segments.segments.length - segments2.segments.length;
|
|
}
|
|
tmpResult2 = tmp(tmp2[3]);
|
|
}
|
|
tmpResult1 = tmp(tmp2[3]);
|
|
}
|
|
obj = initialRoutes(table[2]);
|
|
});
|
|
})(initialRoutes, screens);
|
|
let replaced;
|
|
if (screens != null) {
|
|
if (screens.path != null) {
|
|
replaced = str.replace(/^\//, "");
|
|
}
|
|
}
|
|
let prefixRegex;
|
|
if (replaced) {
|
|
let str4 = replaced;
|
|
if (!replaced.endsWith("/")) {
|
|
const _HermesInternal = HermesInternal;
|
|
str4 = "" + replaced + "/";
|
|
}
|
|
const parts = str4.split("/");
|
|
let mapped = parts.map(getStaticSegmentPattern);
|
|
const _RegExp = RegExp;
|
|
const _HermesInternal2 = HermesInternal;
|
|
prefixRegex = new RegExp("^" + mapped.join("/"));
|
|
}
|
|
const configsByScreen = {};
|
|
const map = new Map();
|
|
const iter = configs[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
let tmp12 = nextResult;
|
|
let screen = nextResult.screen;
|
|
let arr2 = configsByScreen[screen];
|
|
if (arr2 == null) {
|
|
let items = [];
|
|
configsByScreen[screen] = items;
|
|
arr2 = items;
|
|
}
|
|
let tmp13 = nextResult;
|
|
let arr = arr2.push(tmp12);
|
|
let segments = tmp12.segments;
|
|
let joined = segments.join("/");
|
|
let tmp16 = checkForDuplicatedConfigs;
|
|
let tmp17 = checkForDuplicatedConfigs(map.get(joined), tmp12, joined);
|
|
let result = map.set(joined, tmp12);
|
|
continue;
|
|
}
|
|
return { initialRoutes, configs, configsByScreen, prefixRegex };
|
|
}
|
|
function checkForDuplicatedConfigs(map, routeNames2, joined) {
|
|
if (map) {
|
|
const routeNames = map.routeNames;
|
|
const routeNames1 = routeNames2.routeNames;
|
|
if (routeNames.length > routeNames1.length) {
|
|
let arrayStartsWithResult = arrayStartsWith.arrayStartsWith(routeNames, routeNames1);
|
|
const obj2 = arrayStartsWith;
|
|
} else {
|
|
arrayStartsWithResult = arrayStartsWith.arrayStartsWith(routeNames1, routeNames);
|
|
const obj = arrayStartsWith;
|
|
}
|
|
if (!arrayStartsWithResult) {
|
|
const _Error = Error;
|
|
joined = routeNames.join(" > ");
|
|
const _HermesInternal = HermesInternal;
|
|
error = new Error("Found conflicting screens with the same pattern. The pattern '" + joined + "' resolves to both '" + joined + "' and '" + routeNames1.join(" > ") + "'. Patterns must be unique and cannot resolve to more than one screen.");
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
let closure_5 = ["screen", "params", "initial", "path", "merge", "pop"];
|
|
function getStaticSegmentPattern(arg0) {
|
|
return Array.from(arg0, (str) => {
|
|
let encodeURIComponentResult = encodeURIComponent(str);
|
|
if (encodeURIComponentResult === str) {
|
|
str = str.charCodeAt(0);
|
|
str = str.toString(16);
|
|
const _HermesInternal = HermesInternal;
|
|
encodeURIComponentResult = "%" + str.padStart(2, "0").toUpperCase();
|
|
const str3 = str.padStart(2, "0");
|
|
}
|
|
return "(?:" + callback(1563)(str) + "|" + callback(1563)(encodeURIComponentResult) + ")";
|
|
}).join("");
|
|
}
|
|
function getExplicitParamNames(parse) {
|
|
let obj = parse;
|
|
if (parse == null) {
|
|
obj = {};
|
|
}
|
|
const entries = Object.entries(obj);
|
|
let set;
|
|
const mapped = entries.map((arg0) => {
|
|
[tmp] = arg0;
|
|
return tmp;
|
|
});
|
|
if (mapped.length) {
|
|
const _Set = Set;
|
|
set = new Set(mapped);
|
|
}
|
|
return set;
|
|
}
|
|
const weakMap = new WeakMap();
|
|
function matchAgainstConfigs(arg0, arg1, first, configs, configsByScreen) {
|
|
closure_0 = arg1;
|
|
closure_1 = first;
|
|
closure_2 = configsByScreen;
|
|
closure_5 = arg0;
|
|
function _loop(iter) {
|
|
closure_0 = iter;
|
|
if (iter.regex) {
|
|
if (closure_1_12(iter.segments[0], closure_0, closure_1)) {
|
|
const match = closure_5.match(iter.regex);
|
|
if (match) {
|
|
const items = [];
|
|
let flag = false;
|
|
const routeNames = iter.routeNames;
|
|
iter = routeNames[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
let tmp12 = nextResult;
|
|
let tmp13 = table;
|
|
let arr1 = table[nextResult];
|
|
let found;
|
|
if (arr1 != null) {
|
|
found = arr1.find((segments) => iter(items[3]).arrayStartsWith(iter.segments, segments.segments));
|
|
}
|
|
let tmp15 = found;
|
|
let fromEntriesResult;
|
|
if (found) {
|
|
if (match.groups) {
|
|
let items1 = [];
|
|
let tmp17 = found;
|
|
let params = tmp15.params;
|
|
let tmp18 = params;
|
|
let tmp19 = params;
|
|
for (const item10051 of params) {
|
|
let tmp20 = item10051;
|
|
let tmp21 = nextResult;
|
|
if (item10051.screen === tmp12) {
|
|
let tmp54 = item10051;
|
|
let _HermesInternal = HermesInternal;
|
|
let tmp55 = match.groups["param_" + tmp20.index];
|
|
let tmp56 = tmp55;
|
|
if (null != tmp55) {
|
|
let _decodeURIComponent = decodeURIComponent;
|
|
let tmp25 = tmp55;
|
|
let decodeURIComponentResult = decodeURIComponent(tmp56);
|
|
let tmp27 = item10051;
|
|
if (tmp20.regex) {
|
|
let tmp28 = tmp55;
|
|
let tmp29 = decodeURIComponentResult;
|
|
if (tmp56 !== decodeURIComponentResult) {
|
|
let tmp30 = item10051;
|
|
let regex = tmp20.regex;
|
|
let tmp31 = decodeURIComponentResult;
|
|
if (!regex.test(decodeURIComponentResult)) {
|
|
flag = true;
|
|
let tmp32 = obj;
|
|
obj.return();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
let tmp33 = found;
|
|
let parse = tmp15.parse;
|
|
let tmp34;
|
|
if (parse != null) {
|
|
let tmp35 = item10051;
|
|
tmp34 = parse[tmp20.name];
|
|
}
|
|
let tmp37 = items1;
|
|
let tmp38 = item10051;
|
|
let items2 = [tmp20.name, ];
|
|
if (tmp34) {
|
|
let tmp40 = tmp34;
|
|
let tmp41 = decodeURIComponentResult;
|
|
let tmp36Result = tmp36(decodeURIComponentResult);
|
|
} else {
|
|
tmp36Result = decodeURIComponentResult;
|
|
}
|
|
items2[1] = tmp36Result;
|
|
items2 = items1.push(items2);
|
|
} else {
|
|
let tmp22 = items1;
|
|
let tmp23 = item10051;
|
|
let items3 = [tmp20.name, undefined];
|
|
let arr = items1.push(items3);
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
while (true) {
|
|
let tmp42 = flag;
|
|
if (flag) {
|
|
let tmp52 = iter;
|
|
iter.return();
|
|
break label0;
|
|
} else {
|
|
let tmp43 = items1;
|
|
if (items1.length) {
|
|
let _Object = Object;
|
|
let tmp44 = items1;
|
|
fromEntriesResult = Object.fromEntries(items1);
|
|
}
|
|
}
|
|
break label0;
|
|
}
|
|
}
|
|
let num3 = 0;
|
|
if (!flag) {
|
|
closure_4 = iter;
|
|
let tmp53 = closure_5;
|
|
let str2 = "";
|
|
closure_5 = closure_5.replace(match[0], "");
|
|
num3 = 1;
|
|
}
|
|
return num3;
|
|
}
|
|
let tmp45 = fromEntriesResult;
|
|
if (fromEntriesResult) {
|
|
let _Object2 = Object;
|
|
let tmp46 = fromEntriesResult;
|
|
if (Object.keys(fromEntriesResult).length) {
|
|
let obj = { name: null, params: null };
|
|
let tmp49 = nextResult;
|
|
obj[0] = tmp12;
|
|
let tmp50 = fromEntriesResult;
|
|
obj[1] = fromEntriesResult;
|
|
arr = items.push(obj);
|
|
continue;
|
|
}
|
|
}
|
|
obj = { name: null };
|
|
let tmp47 = nextResult;
|
|
obj[0] = tmp12;
|
|
arr1 = items.push(obj);
|
|
}
|
|
}
|
|
} else {
|
|
return 0;
|
|
}
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
let iter = configs[Symbol.iterator]();
|
|
while (iter !== undefined) {
|
|
let _loopResult = _loop(iter.next());
|
|
if (0 !== _loopResult) {
|
|
let tmp3 = _loopResult;
|
|
if (1 === tmp2) {
|
|
let tmp4 = iter;
|
|
iter.return();
|
|
break;
|
|
}
|
|
let obj = { routes: null, remainingPath: null, config: null };
|
|
let tmp5 = dependencyMap;
|
|
obj[0] = dependencyMap;
|
|
let tmp6 = closure_5;
|
|
obj[1] = closure_5;
|
|
let tmp7 = closure_4;
|
|
obj[2] = closure_4;
|
|
return obj;
|
|
}
|
|
continue;
|
|
}
|
|
}
|
|
function canMatchFirstSegment(str) {
|
|
let tmp = undefined === arg1;
|
|
if (!tmp) {
|
|
let tmp3 = undefined !== str;
|
|
if (tmp3) {
|
|
let tmp4 = "*" !== str;
|
|
if (tmp4) {
|
|
tmp4 = !str.startsWith(":");
|
|
}
|
|
let tmp5 = !tmp4;
|
|
if (tmp4) {
|
|
let tmp6 = str === arg1;
|
|
if (!tmp6) {
|
|
tmp6 = str === arg2;
|
|
}
|
|
tmp5 = tmp6;
|
|
}
|
|
tmp3 = tmp5;
|
|
}
|
|
tmp = tmp3;
|
|
}
|
|
return tmp;
|
|
}
|
|
function createNormalizedConfigs(screen, arg1, arr, arr2, arr3, arr4) {
|
|
closure_0 = arr;
|
|
closure_1 = arr2;
|
|
closure_2 = arr3;
|
|
closure_3 = arr4;
|
|
let items = [];
|
|
arr4.push(screen);
|
|
arr3.push(screen);
|
|
if (typeof arg1[screen] === "string") {
|
|
let obj = { screen: null, path: null };
|
|
obj[0] = screen;
|
|
obj[1] = tmp3;
|
|
arr2.push(obj);
|
|
let items1 = [];
|
|
HermesBuiltin.arraySpread(arr4, 0);
|
|
let items2 = [];
|
|
HermesBuiltin.arraySpread(arr2, 0);
|
|
items.push(createConfigItem(screen, items1, items2));
|
|
} else if (typeof tmp3 === "object") {
|
|
const screens = tmp3.screens;
|
|
if (typeof tmp3.path === "string") {
|
|
if (tmp3.exact) {
|
|
if (null == tmp3.path) {
|
|
const _Error2 = Error;
|
|
const _HermesInternal2 = HermesInternal;
|
|
error = new Error("Screen '" + screen + "' doesn't specify a 'path'. A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
|
|
throw error;
|
|
}
|
|
}
|
|
const items3 = [];
|
|
if (tmp3.alias) {
|
|
let alias = tmp3.alias;
|
|
for (const item10023 of alias) {
|
|
let tmp8 = item10023;
|
|
if (typeof item10023 === "string") {
|
|
let tmp20 = createConfigItem;
|
|
let items4 = [];
|
|
let tmp21 = items4;
|
|
let tmp22 = arg5;
|
|
let num3 = 0;
|
|
let arraySpreadResult1 = HermesBuiltin.arraySpread(arg5, 0);
|
|
let items5 = [];
|
|
let tmp24 = items5;
|
|
let tmp25 = arg3;
|
|
obj = { screen: null, path: null };
|
|
obj[0] = arg0;
|
|
let tmp26 = item10023;
|
|
obj[1] = tmp8;
|
|
items5[HermesBuiltin.arraySpread(arg3, 0)] = obj;
|
|
let num4 = 0;
|
|
let tmp27 = arg0;
|
|
let tmp28 = items4;
|
|
let tmp29 = items5;
|
|
let tmp30 = tmp5;
|
|
arr3 = items3.push(createConfigItem(arg0, items4, items5, tmp3.parse, tmp5));
|
|
} else {
|
|
let tmp77 = item10023;
|
|
if (typeof tmp8 === "object") {
|
|
let items6 = [];
|
|
let tmp79 = items6;
|
|
let tmp80 = arg5;
|
|
let num11 = 0;
|
|
let tmp78 = createConfigItem;
|
|
let arraySpreadResult2 = HermesBuiltin.arraySpread(arg5, 0);
|
|
let tmp82 = item10023;
|
|
obj = { screen: null, path: null };
|
|
let items7 = [];
|
|
if (tmp8.exact) {
|
|
obj[0] = arg0;
|
|
let tmp13 = item10023;
|
|
obj[1] = tmp8.path;
|
|
items7[0] = obj;
|
|
let tmp12 = items7;
|
|
} else {
|
|
let tmp9 = items7;
|
|
let tmp10 = arg3;
|
|
let num = 0;
|
|
obj[0] = arg0;
|
|
let tmp11 = item10023;
|
|
obj[1] = tmp8.path;
|
|
items7[HermesBuiltin.arraySpread(arg3, 0)] = obj;
|
|
tmp12 = items7;
|
|
}
|
|
let tmp14 = item10023;
|
|
let num2 = 0;
|
|
let tmp15 = arg0;
|
|
let tmp16 = items6;
|
|
let tmp17 = tmp12;
|
|
let tmp18 = tmp5;
|
|
arr4 = items3.push(tmp78(arg0, items6, tmp12, tmp8.parse, tmp5));
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
}
|
|
if (tmp3.exact) {
|
|
arr2.length = 0;
|
|
}
|
|
obj1 = { screen: null, path: null };
|
|
obj1[0] = screen;
|
|
obj1[1] = tmp3.path;
|
|
arr2.push(obj1);
|
|
const items8 = [];
|
|
HermesBuiltin.arraySpread(arr4, 0);
|
|
const items9 = [];
|
|
HermesBuiltin.arraySpread(arr2, 0);
|
|
items.push(createConfigItem(screen, items8, items9, tmp3.parse, !tmp76));
|
|
const push = items.push;
|
|
const items10 = [];
|
|
HermesBuiltin.arraySpread(items3, 0);
|
|
HermesBuiltin.apply(items10, items);
|
|
}
|
|
if (typeof tmp3 !== "string") {
|
|
if (typeof tmp3.path !== "string") {
|
|
alias = tmp3.alias;
|
|
let length;
|
|
if (alias != null) {
|
|
length = alias.length;
|
|
}
|
|
if (length) {
|
|
const _Error = Error;
|
|
const _HermesInternal = HermesInternal;
|
|
const error1 = new Error("Screen '" + screen + "' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.");
|
|
throw error1;
|
|
}
|
|
}
|
|
}
|
|
if (screens) {
|
|
if (tmp3.initialRouteName) {
|
|
const obj2 = { initialRouteName: null, parentScreens: null };
|
|
obj2[0] = tmp3.initialRouteName;
|
|
obj2[1] = arr3;
|
|
arr.push(obj2);
|
|
}
|
|
const _Object = Object;
|
|
const keys = Object.keys(screens);
|
|
const item = keys.forEach((arg0) => {
|
|
items = [...closure_1];
|
|
const items1 = [...closure_2];
|
|
const items2 = [...closure_1_13(arg0, screens, closure_0, items, items1, closure_3)];
|
|
items.push.apply(items2);
|
|
});
|
|
}
|
|
}
|
|
arr4.pop();
|
|
return items;
|
|
}
|
|
function createConfigItem(screen, items1, items2, parse, arg4) {
|
|
let flag = arg4;
|
|
if (arg4 === undefined) {
|
|
flag = false;
|
|
}
|
|
let path;
|
|
let items = [];
|
|
function _loop2(screen) {
|
|
items = screen;
|
|
const patternParts = items(closure_1_3[4]).getPatternParts(path);
|
|
items = [
|
|
...patternParts.map((arg0) => {
|
|
const obj = {};
|
|
const merged = Object.assign(arg0);
|
|
obj.screen = closure_0;
|
|
return obj;
|
|
})
|
|
];
|
|
items.push.apply(items);
|
|
}
|
|
const iter = items2[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
path = nextResult.path;
|
|
let _loop2Result = _loop2(nextResult.screen);
|
|
continue;
|
|
}
|
|
let regExp;
|
|
if (items.length) {
|
|
const _RegExp = RegExp;
|
|
const mapped = items.map((param) => {
|
|
if (param.param) {
|
|
let str5 = "[^/]+";
|
|
if (param.regex) {
|
|
const _HermesInternal2 = HermesInternal;
|
|
str5 = "(?:" + param.regex + ")|(?=[^/]*%[0-9A-F]{2})[^/]+";
|
|
}
|
|
let str8 = "";
|
|
if (param.optional) {
|
|
str8 = "?";
|
|
}
|
|
const _HermesInternal3 = HermesInternal;
|
|
let str = "(((?<param_" + arg1 + ">" + str5 + ")\\/)" + str8 + ")";
|
|
} else {
|
|
str = ".*\\/";
|
|
if ("*" !== param.segment) {
|
|
if (typeof closure_6 !== "function") {
|
|
HermesBuiltin.throwTypeError();
|
|
}
|
|
const _Array = Array;
|
|
let _HermesInternal = HermesInternal;
|
|
str = "" + Array.from(param.segment, (str) => {
|
|
let encodeURIComponentResult = encodeURIComponent(str);
|
|
if (encodeURIComponentResult === str) {
|
|
str = str.charCodeAt(0);
|
|
str = str.toString(16);
|
|
const _HermesInternal = HermesInternal;
|
|
encodeURIComponentResult = "%" + str.padStart(2, "0").toUpperCase();
|
|
const str3 = str.padStart(2, "0");
|
|
}
|
|
return "(?:" + callback(1563)(str) + "|" + callback(1563)(encodeURIComponentResult) + ")";
|
|
}).join("") + "\\/";
|
|
const arr = Array.from(param.segment, (str) => {
|
|
let encodeURIComponentResult = encodeURIComponent(str);
|
|
if (encodeURIComponentResult === str) {
|
|
str = str.charCodeAt(0);
|
|
str = str.toString(16);
|
|
const _HermesInternal = HermesInternal;
|
|
encodeURIComponentResult = "%" + str.padStart(2, "0").toUpperCase();
|
|
const str3 = str.padStart(2, "0");
|
|
}
|
|
return "(?:" + callback(1563)(str) + "|" + callback(1563)(encodeURIComponentResult) + ")";
|
|
});
|
|
}
|
|
}
|
|
return str;
|
|
});
|
|
let _HermesInternal = HermesInternal;
|
|
regExp = new RegExp("^(" + mapped.join("") + ")$");
|
|
}
|
|
items1 = [];
|
|
const mapped1 = items.map((segment) => segment.segment);
|
|
const set = new Set();
|
|
const entries = items.entries();
|
|
while (tmp9 !== undefined) {
|
|
let tmp11 = callback;
|
|
let tmp12 = callback(tmp10, 2);
|
|
[tmp13, tmp14] = tmp12;
|
|
let tmp15 = tmp14;
|
|
if (tmp14.param) {
|
|
let obj = { index: null, screen: null, name: null, regex: null };
|
|
let tmp16 = tmp13;
|
|
obj[0] = tmp13;
|
|
let tmp17 = tmp14;
|
|
({ screen: obj3[1], param: obj3[2] } = tmp15);
|
|
let regExp1;
|
|
if (tmp15.regex) {
|
|
let _RegExp2 = RegExp;
|
|
let tmp19 = tmp14;
|
|
let _HermesInternal2 = HermesInternal;
|
|
let tmp20 = new.target;
|
|
let tmp21 = new.target;
|
|
regExp1 = new RegExp("^(?:" + tmp15.regex + ")$");
|
|
}
|
|
obj[3] = regExp1;
|
|
let arr = items1.push(obj);
|
|
let tmp23 = tmp14;
|
|
if (tmp15.screen === screen) {
|
|
let tmp24 = tmp14;
|
|
let addResult = set.add(tmp15.param);
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
obj = { screen, regex: regExp, segments: mapped1, params: items1, routeNames: items1, parse, explicitParamNames: getExplicitParamNames(parse), pathParamNames: set, hasNestedScreens: flag };
|
|
return obj;
|
|
}
|
|
function findInitialRoute(name, items, initialRoutes) {
|
|
const iter = initialRoutes[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
let tmp2 = nextResult;
|
|
if (items.length === nextResult.parentScreens.length) {
|
|
let flag = true;
|
|
let num = 0;
|
|
if (0 < items.length) {
|
|
let tmp3 = num;
|
|
let obj = items[num];
|
|
let tmp4 = nextResult;
|
|
while (0 === obj.localeCompare(tmp2.parentScreens[num])) {
|
|
let tmp5 = num;
|
|
let sum = num + 1;
|
|
num = sum;
|
|
}
|
|
flag = false;
|
|
}
|
|
let tmp7 = flag;
|
|
if (flag) {
|
|
let tmp8 = name;
|
|
let tmp9 = nextResult;
|
|
let initialRouteName;
|
|
if (name !== tmp2.initialRouteName) {
|
|
initialRouteName = nextResult.initialRouteName;
|
|
}
|
|
let tmp11 = iter;
|
|
iter.return();
|
|
return initialRouteName;
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
}
|
|
function createStateObject(arg0, arg1, arg2) {
|
|
|
|
}
|
|
function createNestedStateObject(str, items, initialRoutes, config) {
|
|
let arr = items.shift();
|
|
items = [];
|
|
let items1 = findInitialRoute(arr.name, items, initialRoutes);
|
|
arr = items.push(arr.name);
|
|
if (typeof createStateObject !== "function") {
|
|
HermesBuiltin.throwTypeError();
|
|
}
|
|
if (0 === items.length) {
|
|
if (items1) {
|
|
let obj = { index: 1, routes: null };
|
|
obj = { name: null };
|
|
obj[0] = items1;
|
|
items1 = [obj, arr];
|
|
obj[1] = items1;
|
|
obj1 = obj;
|
|
} else {
|
|
obj1 = { routes: null };
|
|
const items2 = [arr];
|
|
obj1[0] = items2;
|
|
}
|
|
} else {
|
|
if (items1) {
|
|
const obj2 = { index: 1, routes: null };
|
|
const obj3 = { name: null };
|
|
obj3[0] = items1;
|
|
const items3 = [obj3, ];
|
|
const obj4 = {};
|
|
const merged = Object.assign(arr);
|
|
const obj5 = { routes: null };
|
|
obj5[0] = [];
|
|
obj4.state = obj5;
|
|
items3[1] = obj4;
|
|
obj2[1] = items3;
|
|
obj = obj2;
|
|
} else {
|
|
obj = { routes: null };
|
|
const obj6 = {};
|
|
const merged1 = Object.assign(arr);
|
|
const obj7 = { routes: null };
|
|
obj7[0] = [];
|
|
obj6.state = obj7;
|
|
const items4 = [obj6];
|
|
obj[0] = items4;
|
|
}
|
|
if (items.length > 0) {
|
|
let arr1 = items.shift();
|
|
let tmp23 = obj;
|
|
if (arr1) {
|
|
while (true) {
|
|
let tmp10 = findInitialRoute;
|
|
let items7 = findInitialRoute(arr1.name, items, initialRoutes);
|
|
let index = tmp23.index;
|
|
let tmp11 = arr1;
|
|
let tmp12 = tmp23;
|
|
if (!index) {
|
|
index = tmp23.routes.length - 1;
|
|
}
|
|
let tmp13 = createStateObject;
|
|
if (typeof createStateObject !== "function") {
|
|
let str3 = "Trying to call a non-function";
|
|
let throwTypeErrorResult1 = HermesBuiltin.throwTypeError();
|
|
}
|
|
if (0 === items.length) {
|
|
break;
|
|
} else {
|
|
if (items7) {
|
|
let obj8 = { index: 1, routes: null };
|
|
let obj9 = { name: null };
|
|
obj9[0] = items7;
|
|
let items5 = [obj9, ];
|
|
let obj10 = {};
|
|
let tmp17 = obj10;
|
|
let tmp18 = arr1;
|
|
let merged2 = Object.assign(tmp11);
|
|
let obj11 = { routes: null };
|
|
obj11[0] = [];
|
|
obj10.state = obj11;
|
|
items5[1] = obj10;
|
|
obj8[1] = items5;
|
|
let obj12 = obj8;
|
|
} else {
|
|
obj12 = { routes: null };
|
|
let obj13 = {};
|
|
let tmp14 = obj13;
|
|
let tmp15 = arr1;
|
|
let merged3 = Object.assign(tmp11);
|
|
let obj14 = { routes: null };
|
|
obj14[0] = [];
|
|
obj13.state = obj14;
|
|
let items6 = [obj13];
|
|
obj12[0] = items6;
|
|
}
|
|
tmp23.routes[index].state = obj12;
|
|
let state = tmp23;
|
|
if (items.length > 0) {
|
|
state = tmp23.routes[index].state;
|
|
}
|
|
let arr2 = items.push(arr1.name);
|
|
arr1 = items.shift();
|
|
tmp23 = state;
|
|
}
|
|
}
|
|
if (items7) {
|
|
const obj15 = { index: 1, routes: null };
|
|
const obj16 = { name: null };
|
|
obj16[0] = items7;
|
|
items7 = [obj16, arr1];
|
|
obj15[1] = items7;
|
|
let obj17 = obj15;
|
|
} else {
|
|
obj17 = { routes: null };
|
|
const items8 = [arr1];
|
|
obj17[0] = items8;
|
|
}
|
|
}
|
|
}
|
|
const findFocusedRouteResult = findFocusedRoute.findFocusedRoute(obj);
|
|
findFocusedRouteResult.path = str.replace(/\/$/, "");
|
|
let parse;
|
|
if (config != null) {
|
|
parse = config.parse;
|
|
}
|
|
let pathParamNames;
|
|
if (config != null) {
|
|
pathParamNames = config.pathParamNames;
|
|
}
|
|
let explicitParamNames;
|
|
if (config != null) {
|
|
explicitParamNames = config.explicitParamNames;
|
|
}
|
|
let hasNestedScreens;
|
|
if (config != null) {
|
|
hasNestedScreens = config.hasNestedScreens;
|
|
}
|
|
const tmp29Result = parseQueryParams(str, parse, pathParamNames, explicitParamNames, hasNestedScreens, findFocusedRouteResult.params);
|
|
if (tmp29Result) {
|
|
const obj18 = {};
|
|
const merged4 = Object.assign(findFocusedRouteResult.params);
|
|
const merged5 = Object.assign(tmp29Result);
|
|
findFocusedRouteResult.params = obj18;
|
|
}
|
|
return obj;
|
|
}
|
|
}
|
|
function parseQueryParams(arr) {
|
|
closure_0 = arg1;
|
|
let set = arg2;
|
|
if (arg2 === undefined) {
|
|
const _Set = Set;
|
|
set = new Set();
|
|
}
|
|
let parsed;
|
|
const index = arr.indexOf("?");
|
|
let substr;
|
|
if (-1 !== index) {
|
|
substr = arr.slice(index + 1);
|
|
}
|
|
if (substr) {
|
|
parsed = validateArrayFormatSeparatorAll.parse(substr);
|
|
const obj2 = validateArrayFormatSeparatorAll;
|
|
} else {
|
|
parsed = {};
|
|
}
|
|
set[Symbol.iterator]();
|
|
}
|
|
|
|
export const getStateFromPath = function getStateFromPath(str, screens) {
|
|
({ initialRoutes, configs, configsByScreen, prefixRegex } = (function getConfigResources(screens) {
|
|
if (screens) {
|
|
const value = closure_8.get(screens);
|
|
if (value) {
|
|
return value;
|
|
} else {
|
|
const tmp4 = callback(screens);
|
|
const result = obj.set(screens, tmp4);
|
|
return tmp4;
|
|
}
|
|
obj = closure_8;
|
|
} else {
|
|
return callback();
|
|
}
|
|
})(screens));
|
|
screens = undefined;
|
|
if (screens != null) {
|
|
screens = screens.screens;
|
|
}
|
|
const tmp = (function getConfigResources(screens) {
|
|
if (screens) {
|
|
const value = closure_8.get(screens);
|
|
if (value) {
|
|
return value;
|
|
} else {
|
|
const tmp4 = callback(screens);
|
|
const result = obj.set(screens, tmp4);
|
|
return tmp4;
|
|
}
|
|
obj = closure_8;
|
|
} else {
|
|
return callback();
|
|
}
|
|
})(screens);
|
|
str = str.replace(/\/+/g, "/");
|
|
const str2 = str.replace(/\/+/g, "/").replace(/^\//, "");
|
|
const replaced = str.replace(/\/+/g, "/").replace(/^\//, "").replace(/\?.*$/, "").replace(/%[0-9a-f]{2}/gi, (str) => str.toUpperCase());
|
|
let str4 = replaced;
|
|
if (!replaced.endsWith("/")) {
|
|
const _HermesInternal = HermesInternal;
|
|
str4 = "" + replaced + "/";
|
|
}
|
|
let str5 = str4;
|
|
if (prefixRegex) {
|
|
const match = str4.match(prefixRegex);
|
|
if (null != match) {
|
|
str5 = str4.slice(match[0].length);
|
|
}
|
|
}
|
|
if (undefined === screens) {
|
|
const items = [];
|
|
const parts = str5.split("/");
|
|
const iter = parts[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
if (nextResult) {
|
|
let obj = { name: null };
|
|
let _decodeURIComponent2 = decodeURIComponent;
|
|
let tmp34 = nextResult;
|
|
obj[0] = decodeURIComponent(tmp33);
|
|
let arr = items.push(obj);
|
|
}
|
|
continue;
|
|
}
|
|
let tmp36;
|
|
if (items.length) {
|
|
tmp36 = createNestedStateObject(str, items, initialRoutes);
|
|
}
|
|
return tmp36;
|
|
} else if ("/" === str5) {
|
|
const found = configs.find((segments) => {
|
|
segments = segments.segments;
|
|
return "" === segments.join("/");
|
|
});
|
|
let tmp22;
|
|
if (found) {
|
|
const routeNames = found.routeNames;
|
|
tmp22 = createNestedStateObject(str, routeNames.map((name) => ({ name })), initialRoutes, found);
|
|
}
|
|
return tmp22;
|
|
} else {
|
|
const first = str5.split("/")[0];
|
|
try {
|
|
let decodeURIComponentResult;
|
|
if (null != first) {
|
|
const _decodeURIComponent = decodeURIComponent;
|
|
decodeURIComponentResult = decodeURIComponent(first);
|
|
}
|
|
({ routes, config } = matchAgainstConfigs(str5, decodeURIComponentResult, first, configs, configsByScreen));
|
|
if (undefined !== routes) {
|
|
if (undefined !== config) {
|
|
return createNestedStateObject(str, routes, initialRoutes, config);
|
|
}
|
|
}
|
|
} catch (err) {
|
|
}
|
|
}
|
|
};
|