SYMBOL INDEX (1194 symbols across 67 files) FILE: api/ask-openai.js function handler (line 10) | async function handler(req, res) { FILE: api/auth/patreon/login.js function handler (line 1) | function handler(req, res) { FILE: api/auth/patreon/logout.js function handler (line 3) | function handler(req, res) { FILE: api/auth/patreon/verify.js function handler (line 5) | async function handler(req, res) { FILE: api/check-cookie.js function handler (line 4) | function handler(req, res) { FILE: api/me.js function handler (line 4) | function handler(req, res) { FILE: api/usage-today.js function handler (line 5) | async function handler(req, res) { FILE: lib/accessControl.js constant TIER_ORDER (line 1) | const TIER_ORDER = { function normalizeName (line 8) | function normalizeName(name) { function parseEnvList (line 12) | function parseEnvList(value) { function maxTier (line 22) | function maxTier(a, b) { function getEffectiveTier (line 35) | function getEffectiveTier({ name, baseTier }) { FILE: lib/getUserTierServer.js function getUserTierServer (line 4) | function getUserTierServer(req) { FILE: lib/rateLimits.js function getDailyLimitForTier (line 1) | function getDailyLimitForTier(tier) { FILE: src/js/backend/UESaveTool/Gvas.js class Gvas (line 8) | class Gvas { method constructor (line 9) | constructor() { method Size (line 13) | get Size() { method deserialize (line 19) | deserialize(serial) { method serialize (line 28) | serialize() { method from (line 37) | static from(obj) { FILE: src/js/backend/UESaveTool/GvasHeader.js class GvasHeader (line 6) | class GvasHeader { method constructor (line 7) | constructor() { method Size (line 26) | get Size() { method deserialize (line 41) | deserialize(serial) { method serialize (line 70) | serialize() { method from (line 93) | static from(obj) { FILE: src/js/backend/UESaveTool/PropertyErrors.js class SerializationError (line 1) | class SerializationError extends Error { method constructor (line 2) | constructor(prop) { class DeserializationError (line 7) | class DeserializationError extends Error { method constructor (line 8) | constructor(type, offset) { class TypeNotImplementedError (line 13) | class TypeNotImplementedError extends Error { method constructor (line 14) | constructor(type) { FILE: src/js/backend/UESaveTool/Serializer.js class Serializer (line 3) | class Serializer { method constructor (line 4) | constructor(buf) { method Data (line 8) | get Data() { return this._data } method tell (line 9) | get tell() { return this._offset } method seek (line 10) | seek(count) { method read (line 15) | read(count) { method readInt32 (line 18) | readInt32() { method readUInt32 (line 23) | readUInt32() { method readInt64 (line 28) | readInt64() { method readInt16 (line 39) | readInt16() { method readUInt16 (line 44) | readUInt16() { method readInt8 (line 49) | readInt8() { method readUInt8 (line 54) | readUInt8() { method readFloat (line 59) | readFloat() { method readString (line 64) | readString() { method readUnicodeString (line 70) | readUnicodeString() { method write (line 82) | write(buf) { method writeInt64 (line 85) | writeInt64(num) { method writeUInt32 (line 93) | writeUInt32(num) { method writeInt32 (line 96) | writeInt32(num) { method writeUInt16 (line 99) | writeUInt16(num) { method writeInt16 (line 102) | writeInt16(num) { method writeUInt8 (line 105) | writeUInt8(byte) { method writeInt8 (line 108) | writeInt8(byte) { method writeFloat (line 111) | writeFloat(num) { method writeString (line 114) | writeString(str) { method writeUTF16String (line 119) | writeUTF16String(str) { method writeLatin1String (line 122) | writeLatin1String(str) { method append (line 125) | append(buf) { method alloc (line 129) | static alloc(size) { FILE: src/js/backend/UESaveTool/arrays/IntArray.js class IntArray (line 6) | class IntArray extends Property { method constructor (line 7) | constructor() { method Size (line 12) | get Size() { method Count (line 19) | get Count() { method deserialize (line 22) | deserialize(serial, count) { method serialize (line 34) | serialize() { method from (line 42) | static from(obj) { FILE: src/js/backend/UESaveTool/arrays/SoftObjectArray.js class SoftObjectArray (line 5) | class SoftObjectArray extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method Count (line 19) | get Count() { method deserialize (line 22) | deserialize(serial, count) { method serialize (line 29) | serialize() { method from (line 39) | static from(obj) { FILE: src/js/backend/UESaveTool/arrays/StructArray.js class StructArray (line 4) | class StructArray extends StructProperty { method deserialize (line 5) | deserialize(serial, count) { method from (line 25) | static from(obj) { FILE: src/js/backend/UESaveTool/factories.js class Factory (line 3) | class Factory { method constructor (line 4) | constructor() { method create (line 8) | create(obj) { method createArray (line 16) | createArray(obj) { FILE: src/js/backend/UESaveTool/properties/ArrayProperty.js class ArrayProperty (line 7) | class ArrayProperty extends Property { method constructor (line 8) | constructor() { method Size (line 13) | get Size() { method HeaderSize (line 23) | get HeaderSize() { method ArraySize (line 31) | get ArraySize() { method deserialize (line 37) | deserialize(serial) { method serialize (line 51) | serialize() { method from (line 66) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/BoolProperty.js class BoolProperty (line 5) | class BoolProperty extends Property { method constructor (line 6) | constructor() { method Size (line 10) | get Size() { method deserialize (line 15) | deserialize(serial) { method serialize (line 21) | serialize() { method from (line 32) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/EnumProperty.js class EnumProperty (line 5) | class EnumProperty extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method deserialize (line 18) | deserialize(serial) { method serialize (line 25) | serialize() { method from (line 38) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/FloatProperty.js class FloatProperty (line 5) | class FloatProperty extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 22) | serialize() { method from (line 34) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/Guid.js class Guid (line 6) | class Guid extends Property { method constructor (line 7) | constructor() { method Size (line 13) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 25) | serialize() { method from (line 38) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/Int16Property.js class Int16Property (line 5) | class Int16Property extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 22) | serialize() { method from (line 34) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/Int64Property.js class Int64Property (line 5) | class Int64Property extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 22) | serialize() { method from (line 34) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/Int8Property.js class Int8Property (line 5) | class Int8Property extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 22) | serialize() { method from (line 34) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/IntProperty.js class IntProperty (line 5) | class IntProperty extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 22) | serialize() { method from (line 34) | static from(obj) { class UInt32Property (line 47) | class UInt32Property extends Property { method constructor (line 48) | constructor() { method Size (line 53) | get Size() { method deserialize (line 58) | deserialize(serial) { method serialize (line 64) | serialize() { method from (line 76) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/ObjectProperty.js class ObjectProperty (line 5) | class ObjectProperty extends Property { method constructor (line 6) | constructor() { method Size (line 10) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 21) | serialize() { method from (line 32) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/Property.js class Property (line 2) | class Property { method constructor (line 3) | constructor() { method Size (line 11) | get Size() { method deserialize (line 20) | deserialize(serial, size) { method serialize (line 27) | serialize() { method from (line 34) | static from(json) { FILE: src/js/backend/UESaveTool/properties/SoftObjectProperty.js class SoftObjectProperty (line 5) | class SoftObjectProperty extends Property { method constructor (line 6) | constructor() { method Size (line 10) | get Size() { method deserialize (line 16) | deserialize(serial) { method serialize (line 22) | serialize() { method from (line 34) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/StrProperty.js class StrProperty (line 8) | class StrProperty extends Property { method constructor (line 9) | constructor() { method Encoding (line 14) | get Encoding() { method StringEncodedLength (line 18) | get StringEncodedLength() { method Size (line 22) | get Size() { method deserialize (line 26) | deserialize(serial) { method serialize (line 31) | serialize() { method from (line 52) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/StrProperty_.js class StrProperty (line 7) | class StrProperty extends Property { method constructor (line 8) | constructor() { method Encoding (line 14) | get Encoding() { method StringEncodedLength (line 18) | get StringEncodedLength() { method Size (line 22) | get Size() { method deserialize (line 26) | deserialize(serial) { method serialize (line 31) | serialize() { method from (line 52) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/StructProperty.js class StructProperty (line 5) | class StructProperty extends Property { method constructor (line 6) | constructor() { method Size (line 11) | get Size() { method HeaderSize (line 22) | get HeaderSize() { method Count (line 30) | get Count() { method deserialize (line 33) | deserialize(serial, size) { method serialize (line 51) | serialize() { method from (line 66) | static from(obj) { FILE: src/js/backend/UESaveTool/properties/Tuple.js class Tuple (line 6) | class Tuple extends Property { method constructor (line 7) | constructor() { method Size (line 12) | get Size() { method Count (line 20) | get Count() { method deserialize (line 23) | deserialize(serial) { method serialize (line 34) | serialize() { method from (line 44) | static from(obj) { FILE: src/js/backend/command.js class Command (line 7) | class Command { method constructor (line 12) | constructor(commandName, data) { method execute (line 18) | async execute() { method promiseExecute (line 43) | promiseExecute() { method updateTeamsFor24 (line 59) | async updateTeamsFor24(year) { method replaceTeam (line 76) | replaceTeam(originalTeam, newTeam) { method addTeam (line 80) | addTeam(originalTeam, newTeam) { FILE: src/js/backend/commandGlobals.js function setGlobals (line 20) | function setGlobals({dbPath, year, createTeam, date }) { function getGlobals (line 27) | function getGlobals() { FILE: src/js/backend/dbManager.js function setDatabase (line 4) | function setDatabase(database, meta) { function getDatabase (line 10) | function getDatabase() { function getMetadata (line 14) | function getMetadata() { function setMetaData (line 18) | function setMetaData(meta) { function queryDB (line 33) | function queryDB(query, params = [], type = 'allRows') { FILE: src/js/backend/scriptUtils/calendarUtils.js function fetchCalendar (line 12) | function fetchCalendar() { function editCalendar (line 51) | function editCalendar(year_iteration, racesData) { function arraysEqual (line 261) | function arraysEqual(a, b) { function randomInt (line 269) | function randomInt(min, max) { FILE: src/js/backend/scriptUtils/carAnalysisUtils.js function getBestParts (line 11) | function getBestParts(customTeam = false) { function getAllPartsFromTeam (line 28) | function getAllPartsFromTeam(teamId) { function getPartsFromTeam (line 118) | function getPartsFromTeam(teamId) { function getBestPartsUntil (line 155) | function getBestPartsUntil(day, customTeam = false) { function getCarStats (line 199) | function getCarStats(designDict) { function getTyreDegStats (line 229) | function getTyreDegStats(designDict) { function updateTyreDegStats (line 260) | function updateTyreDegStats(designDictTeamReceiver, designDictTeamGiver,... function applyExpertiseBoost (line 282) | function applyExpertiseBoost(boost, team) { function applyNextSeasonExpertiseBoost (line 291) | function applyNextSeasonExpertiseBoost(boost, team) { function applyBoostToCarStats (line 299) | function applyBoostToCarStats(designDict, boost, team) { function applyScaledBoostToStatValue (line 352) | function applyScaledBoostToStatValue(originalValue, statID, boost) { function getUnitValueFromParts (line 381) | function getUnitValueFromParts(designDict) { function getTeamExpertise (line 404) | function getTeamExpertise(teamId, yearIteration = null) { function updateTeamExpertise (line 453) | function updateTeamExpertise(teamId, expertiseUnitValues, yearIteration ... function getUnitValueFromOnePart (line 486) | function getUnitValueFromOnePart(designId) { function convertPercentageToValue (line 515) | function convertPercentageToValue(attribute, percentage, minMax) { function makeAttributesReadable (line 525) | function makeAttributesReadable(attributes) { function calculateOverallPerformance (line 543) | function calculateOverallPerformance(attributes) { function getContributorsDict (line 555) | function getContributorsDict() { function getPartStatsDict (line 585) | function getPartStatsDict(carDict) { function calculateCarAttributes (line 603) | function calculateCarAttributes(contributors, partsStats) { function getRacesDays (line 622) | function getRacesDays() { function getAllRaces (line 652) | function getAllRaces() { function buildEnginePowerProgressionContext (line 666) | function buildEnginePowerProgressionContext() { function getEnginePowerUnitValueForRace (line 713) | function getEnginePowerUnitValueForRace(engineId, raceId, ctx) { function getPerformanceAllTeams (line 743) | function getPerformanceAllTeams(day = null, previous = null, customTeam ... function getPerformanceAllCars (line 809) | function getPerformanceAllCars(customTeam = false) { function getAttributesAllCars (line 848) | function getAttributesAllCars(customTeam = false) { function getDriverNumberWithCar (line 876) | function getDriverNumberWithCar(teamId, carId) { function getFittedDesigns (line 903) | function getFittedDesigns(customTeam = false) { function fitLatestDesignsAllGrid (line 942) | function fitLatestDesignsAllGrid(customTeam = false) { function fitLatestDesignsOneTeam (line 966) | function fitLatestDesignsOneTeam(teamId, parts) { function updateItemsForDesignDict (line 1043) | function updateItemsForDesignDict(designDict, teamId) { function fitLoadoutsDict (line 1081) | function fitLoadoutsDict(loadoutsDict, teamId) { function createNewItem (line 1176) | function createNewItem(designId, part) { function deleteItem (line 1217) | function deleteItem(designId) { function addNewDesign (line 1239) | function addNewDesign(part, teamId, day, season, latestDesignPartFromTea... function copyFromTable (line 1309) | function copyFromTable(table, latestDesignId, newDesignId) { function add4Items (line 1332) | function add4Items(newDesignId, part, teamId) { function addPartToLoadout (line 1363) | function addPartToLoadout(designId, part, teamId, loadoutId, itemId) { function overwritePerformanceTeam (line 1379) | function overwritePerformanceTeam(teamId, performance, customTeam = null... function changeExpertiseBased (line 1501) | function changeExpertiseBased(part, stat, newValue, teamId, type = "exis... function getPerformanceAllTeamsSeason (line 1569) | function getPerformanceAllTeamsSeason(customTeam = false, options = {}) { function getAduoEngineUpgradeRaceIds (line 1597) | function getAduoEngineUpgradeRaceIds(seasonId = null) { function getFirstDaySeason (line 1621) | function getFirstDaySeason() { function getAttributesAllTeams (line 1642) | function getAttributesAllTeams(customTeam = false) { function getOneStatUnitValueFromTeam (line 1661) | function getOneStatUnitValueFromTeam(part, stat, teamId) { function getMaxDesign (line 1680) | function getMaxDesign() { function deleteCustomEngineAndReassign (line 1688) | function deleteCustomEngineAndReassign(engineIdRaw, fallbackEngineIdRaw) { FILE: src/js/backend/scriptUtils/createStaffUtils.js constant DRIVER_STAT_IDS (line 4) | const DRIVER_STAT_IDS = [2, 3, 4, 5, 6, 7, 8, 9, 10]; constant STAFF_STAT_IDS (line 5) | const STAFF_STAT_IDS = { constant STAFF_TYPE_NAMES (line 12) | const STAFF_TYPE_NAMES = { function fetchRandomStaffDraft (line 20) | function fetchRandomStaffDraft(typeStaffRaw, gameYear = "24") { function fetchRandomDraftForename (line 72) | function fetchRandomDraftForename(genderRaw, staffNameLocaleRaw) { function fetchCountryLocaleForCode (line 96) | function fetchCountryLocaleForCode(codeRaw) { function normalizeStaffType (line 116) | function normalizeStaffType(typeStaffRaw) { function buildAgeDetails (line 124) | function buildAgeDetails(typeStaff) { function buildRandomStats (line 148) | function buildRandomStats(typeStaff) { function pickRandomForename (line 162) | function pickRandomForename(gender, staffNameLocale = null) { function pickRandomSurname (line 178) | function pickRandomSurname(staffNameLocale = null) { function pickRandomNationality (line 193) | function pickRandomNationality(gameYear) { function fetchCountryCode (line 227) | function fetchCountryCode(nationalityName) { function pickAvailableDriverNumber (line 231) | function pickAvailableDriverNumber() { function buildDriverCode (line 243) | function buildDriverCode(firstName, lastName) { function extractNameToken (line 248) | function extractNameToken(value) { function removeTrailingDigits (line 268) | function removeTrailingDigits(value) { function randomInt (line 272) | function randomInt(min, max) { function clampInt (line 276) | function clampInt(n, min, max) { function pickBaseRating (line 280) | function pickBaseRating(typeStaff) { function statAroundBase (line 287) | function statAroundBase(base, spread, { min, max }) { FILE: src/js/backend/scriptUtils/dbUtils.js function argbToHex (line 13) | function argbToHex(argb) { function hexToArgb (line 18) | function hexToArgb(hex) { function hexToDbArgb (line 42) | function hexToDbArgb(hex, defaultAlpha = 255) { function clampByte (line 73) | function clampByte(n) { function getDate (line 79) | function getDate() { function checkYearSave (line 92) | function checkYearSave() { function fetchNationality (line 148) | function fetchNationality(driverID, gameYear) { function fetchForFutureContract (line 192) | function fetchForFutureContract(driverID) { function fetchJuniorContracts (line 213) | function fetchJuniorContracts(driverID) { function fetchEngines (line 234) | function fetchEngines() { function ensureCustomEngineProgressionTable (line 299) | function ensureCustomEngineProgressionTable() { function getNextSnapshotRaceIdForSeason (line 317) | function getNextSnapshotRaceIdForSeason(seasonId) { function snapshotEnginePowerProgression (line 341) | function snapshotEnginePowerProgression(engineIdsRaw, source, seasonIdRa... function fetchMentality (line 382) | function fetchMentality(staffID) { function checkDrivesForTeam32 (line 400) | function checkDrivesForTeam32(staffData) { function removeNumber (line 426) | function removeNumber(str) { function formatNamesAndFetchStats (line 433) | function formatNamesAndFetchStats(nameData, type) { function fetchDriverRetirement (line 532) | function fetchDriverRetirement(driverID) { function fetchDriverCode (line 561) | function fetchDriverCode(driverID) { function fetchYear (line 581) | function fetchYear() { function fetchDriverNumberDetails (line 595) | function fetchDriverNumberDetails(driverID) { function fetchRaceFormula (line 629) | function fetchRaceFormula(driverID) { function fetchMarketability (line 647) | function fetchMarketability(driverID) { function fetchSuperlicense (line 655) | function fetchSuperlicense(driverID) { function fetchDrivers (line 663) | function fetchDrivers(gameYear) { function fetchStaff (line 739) | function fetchStaff(gameYear) { function fetchDriversPerYear (line 814) | function fetchDriversPerYear(year) { function formatNamesSimple (line 843) | function formatNamesSimple(name) { function getSeasonRaceIds (line 897) | function getSeasonRaceIds(season) { function buildPerRaceTeamRankContext (line 906) | function buildPerRaceTeamRankContext(seasonResults, raceIds, season) { function buildPerRaceTeamRankContext_OLD (line 954) | function buildPerRaceTeamRankContext_OLD(seasonResults, raceIds, season) { function applyDoDFlagsToSeasonResults (line 976) | function applyDoDFlagsToSeasonResults(seasonResults, dodMap) { function getDotDWinnersMap (line 988) | function getDotDWinnersMap(season) { function computeSeasonDriverOfTheDay (line 1002) | function computeSeasonDriverOfTheDay(seasonResults, season) { function fetchSeasonResults (line 1056) | function fetchSeasonResults( function fetchQualiResults (line 1087) | function fetchQualiResults(yearSelected) { function fetchTeamsStandings (line 1106) | function fetchTeamsStandings(year, formula = 1) { function fetchTeamsStandingsWithPoints (line 1116) | function fetchTeamsStandingsWithPoints(year, formula = 1) { function fetchTeamSeasonCountsFromRaceResults (line 1126) | function fetchTeamSeasonCountsFromRaceResults(year, extraWhereSql) { function fetchTeamSeasonWinsTotals (line 1148) | function fetchTeamSeasonWinsTotals(year, formula = 1) { function fetchTeamSeasonPodiumsTotals (line 1153) | function fetchTeamSeasonPodiumsTotals(year, formula = 1) { function fetchTeamSeasonPolesTotals (line 1158) | function fetchTeamSeasonPolesTotals(year, formula = 1) { function fetchDriversStandings (line 1163) | function fetchDriversStandings(year, formula = 1) { function fetchTeamsStandingsWithPositionChange (line 1246) | function fetchTeamsStandingsWithPositionChange(year, formula = 1) { function fetchPointsRegulations (line 1256) | function fetchPointsRegulations() { function fetchOneTeamSeasonResults (line 1275) | function fetchOneTeamSeasonResults(team, year) { function fetchOneDriverSeasonResults (line 1296) | function fetchOneDriverSeasonResults(driver, year, isCurrentYear = true,... function computeDriverOfTheDayFromRows (line 1386) | function computeDriverOfTheDayFromRows(rows, raceId, opts = {}) { function computeDriverOfTheDayFromRows_fast (line 1394) | function computeDriverOfTheDayFromRows_fast(rows, raceId, opts = {}) { function computeDriverOfTheDayLeaderboardFromRows (line 1486) | function computeDriverOfTheDayLeaderboardFromRows(rows, raceId, opts = {... function softmaxToPercent (line 1582) | function softmaxToPercent(values, temperature = 1.0) { function softmaxToPercentBounded (line 1590) | function softmaxToPercentBounded(values, opts = {}) { function roundPercentsToTargetSum (line 1637) | function roundPercentsToTargetSum(values, opts = {}) { function upsertDoDRanking (line 1682) | function upsertDoDRanking(season, raceId, leaderboard, topN = 3) { function getDoDTopNForRace (line 1699) | function getDoDTopNForRace(season, raceId, topN = 3) { function ensureCustomDoDRankingTable (line 1717) | function ensureCustomDoDRankingTable() { function fetchDriverOfTheDayCounts (line 1733) | function fetchDriverOfTheDayCounts(season) { function fetchTeamMateQualiRaceHeadToHead (line 1774) | function fetchTeamMateQualiRaceHeadToHead(season) { function seededRandom (line 1893) | function seededRandom(seed) { function getNameByIdAndFormat (line 1902) | function getNameByIdAndFormat(driverID) { function fetchOneDriverQualiResults (line 1914) | function fetchOneDriverQualiResults(driver, year) { function fetchEventsDoneFrom (line 1950) | function fetchEventsDoneFrom(year) { function fetchEventsDoneBefore (line 1974) | function fetchEventsDoneBefore(year, day) { function fetchEventsFrom (line 1997) | function fetchEventsFrom(year, formula = 1) { function fetchLastCompletedRaceId (line 2015) | function fetchLastCompletedRaceId(year, formula = 1) { function fetchPracticeResultsRows (line 2034) | function fetchPracticeResultsRows(raceId, practiceSession = 1) { function fetchRaceResultsRows (line 2063) | function fetchRaceResultsRows(raceId) { function fetchSprintResultsRows (line 2087) | function fetchSprintResultsRows(raceId) { function fetchQualifyingResultsRows (line 2109) | function fetchQualifyingResultsRows(raceId, sprintShootout = 0) { function buildQualifyingGridPositionMap (line 2164) | function buildQualifyingGridPositionMap(rows) { function fetchSessionResults (line 2209) | function fetchSessionResults(raceId, sessionKey, gameYear = "24") { function formatDriverName (line 2393) | function formatDriverName(driverName) { function formatSeasonResultsF2F3 (line 2414) | function formatSeasonResultsF2F3( function formatSeasonResults (line 2537) | function formatSeasonResults( function calculateTimeToPole (line 2811) | function calculateTimeToPole(driverID, raceID) { function calculateTimeDifference (line 2846) | function calculateTimeDifference(driverID, raceID) { function fetchDriverNumbers (line 2893) | function fetchDriverNumbers() { function fetchDriverContracts (line 2901) | function fetchDriverContracts(id) { function formatStaffNameFromLocKeys (line 2942) | function formatStaffNameFromLocKeys(firstNameLocKey, lastNameLocKey) { function fetchJuniorTeamDriverNames (line 2969) | function fetchJuniorTeamDriverNames(teamId) { function checkCustomTables (line 3002) | function checkCustomTables(year) { function fixCustomEnginesStatsTable (line 3115) | function fixCustomEnginesStatsTable() { function wipeTableAndRefill (line 3156) | function wipeTableAndRefill(tableName, data){ function insertDefualtEnginesData (line 3165) | function insertDefualtEnginesData(list, stats, allocations, customSave, ... function updateCustomEngines (line 3294) | function updateCustomEngines(engineData) { function editEngines (line 3321) | function editEngines(engineData) { function check2025ModCompatibility (line 3346) | function check2025ModCompatibility(year_version) { function check2026ModCompatibility (line 3389) | function check2026ModCompatibility(year_version) { function ensureSeasonModTable (line 3470) | function ensureSeasonModTable(tableName, defaultKeys) { function updateTeamsSuppliedByEngine (line 3485) | function updateTeamsSuppliedByEngine(engineId, stats) { function updateCustomConfig (line 3510) | function updateCustomConfig(data) { function updateTeam (line 3660) | function updateTeam(teamID) { function fetchCustomConfig (line 3676) | function fetchCustomConfig() { function setCustomSaveConfig (line 3742) | function setCustomSaveConfig(key, value) { function fetchPlayerTeam (line 3749) | function fetchPlayerTeam() { function fetch2025ModData (line 3758) | function fetch2025ModData() { function fetch2026ModData (line 3774) | function fetch2026ModData() { function createEngineMigrationTrigger (line 3797) | function createEngineMigrationTrigger() { FILE: src/js/backend/scriptUtils/editTeamUtils.js function fetchTeamData (line 3) | function fetchTeamData(teamID){ function manageCostCap (line 94) | function manageCostCap(teamID, amount) { function editTeam (line 148) | function editTeam(info) { function manage_engine_change (line 226) | function manage_engine_change(teamID, engineId) { FILE: src/js/backend/scriptUtils/eidtStatsUtils.js function editStats (line 35) | function editStats(driverID, type, stats, retirement, driverNum, wants1) { function changeDriverNumber (line 212) | function changeDriverNumber(driverID, newNumber) { function editName (line 250) | function editName(driverID, newName) { function editCode (line 264) | function editCode(driverID, newCode) { function excelToDate (line 274) | function excelToDate(excelDate) { function dateToExcel (line 279) | function dateToExcel(date) { function excelFromYMD (line 285) | function excelFromYMD(year, month, day) { function changeYearsInExcelDate (line 290) | function changeYearsInExcelDate(excelDate, years) { function editAge (line 302) | function editAge(driverID, ageGap) { function editMentality (line 320) | function editMentality(driverID, mentalityStr) { function editRetirement (line 363) | function editRetirement(driverID, value) { function editSuperlicense (line 371) | function editSuperlicense(driverID, value) { function editMarketability (line 380) | function editMarketability(driverID, value) { function setAllDriversStatsTo85 (line 388) | function setAllDriversStatsTo85() { FILE: src/js/backend/scriptUtils/head2head.js function fetchHead2Head (line 19) | function fetchHead2Head(driver1ID, driver2ID, year, isCurrentYear = true) { function fetchHead2HeadTeam (line 417) | function fetchHead2HeadTeam(teamID1, teamID2, year, isCurrentYear = true) { FILE: src/js/backend/scriptUtils/modUtils.js function resetStaffIDChanges (line 18) | function resetStaffIDChanges() { function timeTravelWithData (line 23) | function timeTravelWithData(dayNumber, extend = false, mod = "2025") { function changeDriverLineUps (line 274) | function changeDriverLineUps() { function modFire (line 398) | function modFire(driverID, teamID, PosInTeam) { function changeStats (line 436) | function changeStats() { function changeDriverEngineerPairs (line 456) | function changeDriverEngineerPairs() { function change2024Standings (line 498) | function change2024Standings(mod = "2025") { function manageFeederSeries (line 531) | function manageFeederSeries() { function manageAffiliates (line 560) | function manageAffiliates() { function manageStandings (line 604) | function manageStandings() { function changeRaces (line 715) | function changeRaces(type) { function updateCalendar2026 (line 848) | function updateCalendar2026(type) { function insertStaff2025 (line 1001) | function insertStaff2025() { function changeBudgets (line 1024) | function changeBudgets(amount = 15000000) { function removeFastestLap (line 1029) | function removeFastestLap(mod = "2025") { function updateSeasonModTable (line 1036) | function updateSeasonModTable(edit, value, mod = "2025") { function updatePerofmrnace2025 (line 1041) | function updatePerofmrnace2025() { function fixes_mod (line 1066) | function fixes_mod() { function updateEditsWithModData (line 1092) | function updateEditsWithModData(data) { function updateRenaultToHonda (line 1112) | function updateRenaultToHonda(isHonda) { function addAudiCustomEngine (line 1118) | function addAudiCustomEngine(unitValue = 80) { function apply2026EnginePerformanceChanges (line 1155) | function apply2026EnginePerformanceChanges() { function insertStaff2026 (line 1198) | function insertStaff2026() { function changeStats2026 (line 1308) | function changeStats2026() { function changeLineUps2026 (line 1393) | function changeLineUps2026() { function changeDriverNumbers2026 (line 1497) | function changeDriverNumbers2026() { function updatePerofmrnace2026 (line 1515) | function updatePerofmrnace2026() { function fixStandings (line 1565) | function fixStandings(forSeason = "2025") { function changeAdditionalRegulations2026 (line 1578) | function changeAdditionalRegulations2026() { function change2025Standings (line 1593) | function change2025Standings(mod = "2026") { function fixesMod2026 (line 1637) | function fixesMod2026() { function updateRecordsTo2026 (line 1659) | function updateRecordsTo2026() { function updateFacilities2026 (line 1674) | function updateFacilities2026() { FILE: src/js/backend/scriptUtils/newsUtils.js constant USE_COMPRESSION (line 15) | const USE_COMPRESSION = false; function isTimeTravel2026Enabled (line 21) | function isTimeTravel2026Enabled() { function loadTurningPointsFrequencyConfig (line 40) | function loadTurningPointsFrequencyConfig() { function getTurningPointChance (line 57) | function getTurningPointChance(tpType, tpConfig) { function getTurningPointMax (line 65) | function getTurningPointMax(tpType, tpConfig) { function fetchSeasonResultsCached (line 76) | function fetchSeasonResultsCached(season) { function rebuildStandingsUntilCached (line 83) | function rebuildStandingsUntilCached(season, seasonResults, raceId, incl... function generate_news (line 91) | function generate_news(savednews, turningPointState) { function generateTurningResponse (line 190) | function generateTurningResponse(turningPointData, type, maxDate, outcom... function applyAduoEffect (line 347) | function applyAduoEffect(turningPointData) { function applyRaceSubstitution (line 409) | function applyRaceSubstitution(turningPointData) { function applyInvestmentEffect (line 416) | function applyInvestmentEffect(turningPointData) { function executeMidSeasonTransfer (line 460) | function executeMidSeasonTransfer(turningPointData) { function applyTechnicalDirectiveEffect (line 505) | function applyTechnicalDirectiveEffect(turningPointData) { function generateRaceSubstitutionTurningPointNews (line 536) | function generateRaceSubstitutionTurningPointNews(currentMonth, savednew... function generateInvestmentTurningPointNews (line 690) | function generateInvestmentTurningPointNews(currentMonth, savednews = {}... function generateDriverInjuryTurningPointNews (line 794) | function generateDriverInjuryTurningPointNews(currentMonth, savednews = ... function generateEnginesTurningPointNews (line 1101) | function generateEnginesTurningPointNews(currentMonth, savednews = {}, t... function generateAduoTurningPointsNews (line 1326) | function generateAduoTurningPointsNews(currentMonth, savednews = {}, tur... function generateYoungDriversTurningPointNews (line 1509) | function generateYoungDriversTurningPointNews(currentMonth, savednews = ... function applyYoungDriversBoost (line 1760) | function applyYoungDriversBoost(turningPointData) { function boostDriverStats (line 1771) | function boostDriverStats(driverId) { function boostDriverGrowth (line 1804) | function boostDriverGrowth(driverId) { function clampValue (line 1826) | function clampValue(value, min, max) { function randomIntBetween (line 1830) | function randomIntBetween(min, max) { function generateTechnicalDirectiveTurningPointNews (line 1837) | function generateTechnicalDirectiveTurningPointNews(currentMonth, savedn... function generateMidSeasonTransfersTurningPointNews (line 2025) | function generateMidSeasonTransfersTurningPointNews(monthsDone, currentM... function generateDSQTurningPointNews (line 2330) | function generateDSQTurningPointNews(racesDone, savednews = {}, turningP... function getMaxPointsForRace (line 2435) | function getMaxPointsForRace(raceId, pointsSchema, seasonId = null) { function championshipStatus (line 2463) | function championshipStatus( function generateChampionMilestones (line 2515) | function generateChampionMilestones(racesDone, savednews = {}) { function getCircuitInfo (line 2721) | function getCircuitInfo(raceId) { function getCustomNewsOptions (line 2728) | function getCustomNewsOptions() { function getOfficialF1DriverIdsForCustomNews (line 2810) | function getOfficialF1DriverIdsForCustomNews(teamId = null) { function assertOfficialF1DriverForCustomNews (line 2828) | function assertOfficialF1DriverForCustomNews(driverId, label = "Driver") { function isOfficialF1DriverForCustomNews (line 2845) | function isOfficialF1DriverForCustomNews(driverId) { function assertActiveDriverForCustomNews (line 2860) | function assertActiveDriverForCustomNews(driverId, label = "Driver") { function assertCompletedRaceForCustomNews (line 2878) | function assertCompletedRaceForCustomNews(raceId, label = "Race") { function getRaceDriversForCustomNews (line 2885) | function getRaceDriversForCustomNews(raceId) { function isoToExcelDay (line 2899) | function isoToExcelDay(iso) { function getDriverAndTeamForCustomNews (line 2907) | function getDriverAndTeamForCustomNews(driverId) { function renderNormalTitleTemplate (line 2927) | function renderNormalTitleTemplate(data, new_type, templateIndex) { function renderTurningPointTitleTemplate (line 2945) | function renderTurningPointTitleTemplate(data, new_type, turningPointTyp... function assertCustomTurningPointPayload (line 2959) | function assertCustomTurningPointPayload(type, data) { function createCustomNewsEntry (line 3053) | function createCustomNewsEntry(input = {}) { function randomRemovalOfNames (line 4173) | function randomRemovalOfNames(data) { function generateTurningPointTitle (line 4220) | function generateTurningPointTitle(data, new_type, turningPointType) { function generateTitle (line 4240) | function generateTitle(data, new_type) { function generateF2AndF3ReviewNews (line 4260) | function generateF2AndF3ReviewNews(currentMonth, savedNews) { function generateFakeTransferNews (line 4336) | function generateFakeTransferNews(monthsDone, savedNews, bigConfirmedTra... function generateBigConfirmedTransferNews (line 4594) | function generateBigConfirmedTransferNews(savedNews = {}, currentMonth) { function buildGridLineupsData (line 4730) | function buildGridLineupsData(season) { function getCurrentAndNextSeasonGridLineups (line 4844) | function getCurrentAndNextSeasonGridLineups() { function generateNextSeasonGridNews (line 4851) | function generateNextSeasonGridNews(savedNews = {}, currentMonth) { function generateContractRenewalsNews (line 4898) | function generateContractRenewalsNews(savedNews = {}, contractRenewals =... function getContractExtensions (line 4951) | function getContractExtensions() { function getTrueTransferRumors (line 5015) | function getTrueTransferRumors() { function getConfirmedTransfers (line 5129) | function getConfirmedTransfers(bestDrivers = false) { function generateTransferRumorsNews (line 5190) | function generateTransferRumorsNews(offers, savedNews) { function generateTeamsUpgradesNews (line 5296) | function generateTeamsUpgradesNews(events, savednews) { function generateComparisonNews (line 5340) | function generateComparisonNews(comparisonMonths, savedNews) { function generateRaceResultsNews (line 5479) | function generateRaceResultsNews(events, savednews) { function generateRaceReactionsNews (line 5554) | function generateRaceReactionsNews(events, savednews) { function generateQualifyingResultsNews (line 5664) | function generateQualifyingResultsNews(events, savednews) { function generateSeasonReviewNews (line 5740) | function generateSeasonReviewNews(savedNews) { function news_insert_space (line 5832) | function news_insert_space(str) { function getOneQualiDetails (line 5839) | function getOneQualiDetails(raceId) { function getOneRaceDetails (line 5902) | function getOneRaceDetails(raceId) { function getOneRaceResults (line 6025) | function getOneRaceResults(raceId, sprint = false) { function getOneQualifyingResults (line 6052) | function getOneQualifyingResults(raceId) { function rebuildStandingsUntil (line 6079) | function rebuildStandingsUntil(seasonResultsRaw, raceId, includeCurrentR... function getLatestChampions (line 6184) | function getLatestChampions(seasonId) { function getImagePath (line 6225) | function getImagePath(teamId, code, type) { function calculateTeamDropsByDate (line 6344) | function calculateTeamDropsByDate(season, date) { function getTransferDetails (line 6388) | function getTransferDetails(drivers, date = null) { function getTeamComparisonDetails (line 6442) | function getTeamComparisonDetails(teamId, season, date) { function getFullChampionSeasonDetails (line 6502) | function getFullChampionSeasonDetails(season) { function getFullFeederSeriesDetails (line 6544) | function getFullFeederSeriesDetails(season) { function buildFeederSeriesSeasonDetails (line 6551) | function buildFeederSeriesSeasonDetails(season, formula) { function getPreviouslyDrivenTeams (line 6649) | function getPreviouslyDrivenTeams(driverId) { function buildPointsTable (line 6668) | function buildPointsTable(positionAndPointsRows) { function getBasePointsForPos (line 6677) | function getBasePointsForPos(pos, pointsTable, doublePoints, isLastRace ... function getFastestLapHolderBySeconds (line 6683) | function getFastestLapHolderBySeconds(raceId, queryDB) { function checkDoublePointsBug (line 6694) | function checkDoublePointsBug(turningPointState){ function fixDoublePointsBug (line 6732) | function fixDoublePointsBug(raceId) { function disqualifyTeamInRace (line 6760) | function disqualifyTeamInRace({ function getRandomInt (line 6982) | function getRandomInt(min, max) { function ensureEditorStateTable (line 6997) | function ensureEditorStateTable() { function getEditorState (line 7006) | function getEditorState(key) { function setEditorState (line 7012) | function setEditorState(key, valueText) { function computeStableKey (line 7021) | function computeStableKey(n) { function loadNewsMapFromDB (line 7028) | function loadNewsMapFromDB(season = null) { function saveNewsToDBMap (line 7037) | function saveNewsToDBMap(map) { function deleteNews (line 7044) | function deleteNews() { function deleteTurningPoints (line 7051) | function deleteTurningPoints() { function upsertNews (line 7058) | function upsertNews(newsList = []) { function loadTPFromDB (line 7085) | function loadTPFromDB(season = null) { function saveTPToDBMap (line 7094) | function saveTPToDBMap(map) { function upsertTurningPoints (line 7101) | function upsertTurningPoints(tpPartial = {}) { function updateNewsFields (line 7114) | function updateNewsFields(stableKey, patch) { function deleteNewByKey (line 7130) | function deleteNewByKey(stableKey) { function isMigrationDone (line 7140) | function isMigrationDone() { function markMigrationDone (line 7143) | function markMigrationDone() { function safeParse (line 7148) | function safeParse(txt, fallback) { function mergeNewsMaps (line 7152) | function mergeNewsMaps(dbMap, lsMap) { function mergeTPMaps (line 7156) | function mergeTPMaps(dbMap, lsMap) { function migrateLegacyData (line 7167) | function migrateLegacyData(lsNewsTxt, lsTPTxt) { function ensureTurningPointsStructure (line 7188) | function ensureTurningPointsStructure() { function getNewsAndTpYearsAvailable (line 7221) | function getNewsAndTpYearsAvailable() { function getNewsFromSeason (line 7243) | function getNewsFromSeason(season) { function startInjurySwap (line 7250) | function startInjurySwap(injuredId, reserveData, endDay) { function applyDriverInjury (line 7271) | function applyDriverInjury(turningPointData) { FILE: src/js/backend/scriptUtils/recordUtils.js function idsToCsv (line 5) | function idsToCsv(ids) { function fetchHistoryMap (line 9) | function fetchHistoryMap(tableName, ids) { function fetchDriverHistoryRecords (line 46) | function fetchDriverHistoryRecords(historyTable, ids, season) { function validSeason (line 141) | function validSeason(x) { function enrichDriversWithHistory (line 145) | function enrichDriversWithHistory(drivers, season = null) { function getSelectedRecord (line 206) | function getSelectedRecord(type, year) { function fetchSeasonReviewData (line 382) | function fetchSeasonReviewData(year, formula = 1, isCurrentYear = true) { function getSelectedTeamRecord (line 418) | function getSelectedTeamRecord(type, year, formula = 1) { function fetchQualifyingStageCounts (line 567) | function fetchQualifyingStageCounts(year, formula = 1, isCurrentYear = t... function pickValueFromType (line 691) | function pickValueFromType(item, type) { function mapExternalItem (line 705) | function mapExternalItem(item, type) { function aggregateSeasonDriverRecords (line 734) | function aggregateSeasonDriverRecords(records) { function mergeWithExternalRecords (line 764) | function mergeWithExternalRecords(dbDrivers, externalJson, type, year) { function fetchRacePointsSnapshot (line 784) | function fetchRacePointsSnapshot(raceIdNum) { function fetchSprintPointsSnapshot (line 808) | function fetchSprintPointsSnapshot(raceIdNum) { function fetchSprintPosToPointsMap (line 833) | function fetchSprintPosToPointsMap(raceIdNum) { function fetchRaceDriverRecordsSnapshot (line 853) | function fetchRaceDriverRecordsSnapshot(raceIdNum) { function diffPointsMaps (line 882) | function diffPointsMaps(newMap, oldMap) { function diffDriverRecordMaps (line 894) | function diffDriverRecordMaps(newMap, oldMap) { function resortF1StandingsForSeason (line 913) | function resortF1StandingsForSeason(seasonId) { function editRaceResults (line 1059) | function editRaceResults(raceId, edits = [], opts = {}) { FILE: src/js/backend/scriptUtils/regulationsUtils.js function fetchRegulationsData (line 3) | function fetchRegulationsData() { function isRowPresent (line 56) | function isRowPresent(query, params) { function updateOneRegulationEnumChange (line 61) | function updateOneRegulationEnumChange(name, currentValue, minValue, max... function updateRegulations (line 72) | function updateRegulations(data) { FILE: src/js/backend/scriptUtils/transferUtils.js constant CONTRACT_PLACEHOLDERS_24 (line 59) | let CONTRACT_PLACEHOLDERS_24 = { function isBlankContractValue (line 70) | function isBlankContractValue(value) { function toContractInt (line 74) | function toContractInt(value, fallback) { function sanitizeContractPayload (line 80) | function sanitizeContractPayload(payload = {}) { function getCurrentMainContractSnapshot (line 119) | function getCurrentMainContractSnapshot(driverID) { function checkAndFixContract (line 140) | function checkAndFixContract(driverID, teamID) { function transferJuniorDriver (line 210) | function transferJuniorDriver(driverID,newTeamID, posInTeam, yearIterati... function hireDriver (line 267) | function hireDriver(type,driverID,teamID,position,salary = "",startingBo... function freeNumbersNotF1 (line 377) | function freeNumbersNotF1() { function fetchTypeStaff (line 395) | function fetchTypeStaff(driverID) { function getParamsAutoContract (line 399) | function getParamsAutoContract(driverID,teamID,position,yearIteration = ... function fireDriver (line 495) | function fireDriver(driverID,teamID) { function removeFutureContract (line 511) | function removeFutureContract(driverID) { function rearrangeDriverEngineerPairings (line 515) | function rearrangeDriverEngineerPairings(teamID) { function swapDrivers (line 558) | function swapDrivers(driver1ID,driver2ID) { function editContract (line 704) | function editContract(driverID,salary,endSeason,startingBonus,raceBonus,... function futureContract (line 728) | function futureContract(teamID,driverID,salary,endSeason,startingBonus,r... function getExcelDate (line 779) | function getExcelDate(year) { function unretire (line 786) | function unretire(driverID) { function getTier (line 791) | function getTier(driverID) { function getDriverOverall (line 829) | function getDriverOverall(driverID) { function getDriverId (line 854) | function getDriverId(name) { function fixDriverStandings (line 874) | function fixDriverStandings() { FILE: src/js/backend/scriptUtils/triggerUtils.js function manageDifficultyTriggers (line 59) | function manageDifficultyTriggers(triggerList) { function manageWeightTrigger (line 68) | function manageWeightTrigger(triggerLevel) { function manageDesignTimeTriggers (line 143) | function manageDesignTimeTriggers(triggerLevel) { function manageDesignBoostTriggers (line 151) | function manageDesignBoostTriggers(triggerLevel) { function manageInstantBuildTriggers (line 242) | function manageInstantBuildTriggers(triggerLevel) { function manageResearchTriggers (line 247) | function manageResearchTriggers(triggerLevel) { function upgradeFactories (line 281) | function upgradeFactories(triggerLevel) { function manageRefurbishTrigger (line 291) | function manageRefurbishTrigger(type) { function fetchExistingTriggers (line 309) | function fetchExistingTriggers() { function deleteProblematicTriggers (line 364) | function deleteProblematicTriggers() { function editFreezeMentality (line 380) | function editFreezeMentality(state) { function editFreezeDevelopment (line 432) | function editFreezeDevelopment(state) { FILE: src/js/backend/worker.js method juniorTransfer (line 547) | juniorTransfer(data, postMessage) { FILE: src/js/frontend/calendar.js function reubicate (line 17) | function reubicate(div0,div1,beforeAfter) { function addRace (line 35) | function addRace(race) { function updateVisualizers (line 254) | function updateVisualizers(){ function load_calendar (line 264) | function load_calendar(races){ function update_numbers (line 285) | function update_numbers(){ function updateNumberDisplay (line 291) | function updateNumberDisplay(race, index) { function clearDropPreview (line 313) | function clearDropPreview() { function transformWeather (line 322) | function transformWeather(state){ function changeFormat (line 350) | function changeFormat(div,format) { function load_addRaces (line 364) | function load_addRaces() { function listenerRaces (line 394) | function listenerRaces() { method start (line 447) | start(event) { method move (line 457) | move(event) { method end (line 491) | end(event) { FILE: src/js/frontend/config.js function getUpdatedName (line 72) | function getUpdatedName(teamId) { function getCombinedDict (line 76) | function getCombinedDict() { constant CUSTOM_NEWS_TYPE_META (line 388) | const CUSTOM_NEWS_TYPE_META = { constant CUSTOM_NEWS_INVESTMENT_COUNTRIES (line 417) | const CUSTOM_NEWS_INVESTMENT_COUNTRIES = [ constant CUSTOM_NEWS_DSQ_COMPONENTS (line 430) | const CUSTOM_NEWS_DSQ_COMPONENTS = [ constant CUSTOM_NEWS_ENGINE_CHANGE_AREAS (line 446) | const CUSTOM_NEWS_ENGINE_CHANGE_AREAS = [ constant CUSTOM_NEWS_ADUO_QUARTERS (line 463) | const CUSTOM_NEWS_ADUO_QUARTERS = [ constant CUSTOM_NEWS_IMAGE_FILES (line 469) | const CUSTOM_NEWS_IMAGE_FILES = ['1_gar.webp', '1_media.webp', '1_pad.we... function getParamMap (line 471) | function getParamMap(data) { FILE: src/js/frontend/devTools.js function createWindow (line 15) | function createWindow() { function openWindow (line 164) | function openWindow() { function closeWindow (line 170) | function closeWindow() { function toggleWindow (line 176) | function toggleWindow() { FILE: src/js/frontend/dragFile.js function processSaveFile (line 67) | async function processSaveFile(file) { function updateStatusUI (line 151) | async function updateStatusUI(type, textConfig) { FILE: src/js/frontend/head2head.js function formatSignedValue (line 45) | function formatSignedValue(value) { function getCompletedRaceIdsSet (line 52) | function getCompletedRaceIdsSet(data) { function renderTeamLogo (line 60) | function renderTeamLogo(container, teamId) { function setMidGrid (line 82) | function setMidGrid(value) { function setMaxRaces (line 86) | function setMaxRaces(value) { function setRelativeGrid (line 90) | function setRelativeGrid(value) { function init_colors_dict (line 100) | function init_colors_dict(theme = "default-theme") { function get_colors_dict (line 106) | function get_colors_dict() { function edit_colors_dict (line 110) | function edit_colors_dict(key, value) { function manage_h2h_bars (line 119) | function manage_h2h_bars(data) { function fill_bars (line 365) | function fill_bars(elem, d1_width, d2_width) { function toggle_sprints (line 387) | function toggle_sprints() { function toggle_racePace (line 430) | function toggle_racePace() { function toggle_qualiPace (line 517) | function toggle_qualiPace() { function sprintsListeners (line 601) | function sprintsListeners() { function racePaceListener (line 611) | function racePaceListener() { function qualiPaceListener (line 625) | function qualiPaceListener() { function increase_racePaceView (line 640) | function increase_racePaceView() { function decrease_racePaceView (line 649) | function decrease_racePaceView() { function increase_qualiPaceView (line 658) | function increase_qualiPaceView() { function decrease_qualiPaceView (line 667) | function decrease_qualiPaceView() { function change_sprintView (line 679) | function change_sprintView() { function hideComp (line 707) | function hideComp() { function queueAutoCompareDrivers (line 715) | function queueAutoCompareDrivers(driver1Id, driver2Id) { function applyQueuedAutoCompareDrivers (line 722) | function applyQueuedAutoCompareDrivers() { function load_drivers_h2h (line 754) | function load_drivers_h2h(drivers) { function buttonsListeners (line 923) | function buttonsListeners() { function resetH2H (line 997) | function resetH2H() { function nameTitleD1 (line 1087) | function nameTitleD1(aDriver1) { function nameTitleD2 (line 1115) | function nameTitleD2(aDriver2) { function H2HReady (line 1142) | function H2HReady() { function manageH2hState (line 1175) | function manageH2hState() { function load_labels_initialize_graphs (line 1204) | function load_labels_initialize_graphs(data) { function reload_h2h_graphs (line 1248) | function reload_h2h_graphs() { function load_teams_points_graph (line 1270) | function load_teams_points_graph(data) { function get_one_driver_points_format (line 1333) | function get_one_driver_points_format(driver, data) { function load_graphs_data (line 1371) | function load_graphs_data(drivers) { function findLastNonNaNIndex (line 1616) | function findLastNonNaNIndex(arr) { function updateMaxYAxis (line 1625) | function updateMaxYAxis(newMax) { function getNoEntryAnimationWithHoverTransition (line 1632) | function getNoEntryAnimationWithHoverTransition() { function createRaceChart (line 1652) | function createRaceChart(labelsArray, max) { function createQualiChart (line 1778) | function createQualiChart(labelsArray, max, q2_line) { function createPointsChart (line 1910) | function createPointsChart(labelsArray) { function createGapCharts (line 1990) | function createGapCharts(labelsArray, maxGapWinner, maxGapPole) { FILE: src/js/frontend/news.js function isPaidNewsMember (line 52) | function isPaidNewsMember() { function canUseGenAiForNews (line 56) | function canUseGenAiForNews(news) { function setAduoLockedHidden (line 63) | function setAduoLockedHidden(el, hidden) { function applyNewsModalGenAiLocks (line 74) | function applyNewsModalGenAiLocks(news) { constant DEFAULT_NEWS_LANGUAGE (line 89) | const DEFAULT_NEWS_LANGUAGE = "English"; constant NEWS_LANGUAGE_STORAGE_KEY (line 90) | const NEWS_LANGUAGE_STORAGE_KEY = "newsLanguage"; constant NEWS_LANGUAGE_OPTIONS (line 91) | const NEWS_LANGUAGE_OPTIONS = [ function finishGeneralLoader (line 124) | async function finishGeneralLoader() { function getNewsLanguage (line 156) | function getNewsLanguage() { function replaceLanguagePlaceholder (line 164) | function replaceLanguagePlaceholder(text, language) { function syncNewsLanguageDropdown (line 169) | function syncNewsLanguageDropdown(selectedLanguage) { function setNewsLanguage (line 188) | function setNewsLanguage(language) { function setupNewsLanguageDropdown (line 198) | function setupNewsLanguageDropdown() { function cleanupOpenedNewsItem (line 228) | async function cleanupOpenedNewsItem() { function exitArticleEditMode (line 259) | function exitArticleEditMode(opts = {}) { function hashStr (line 288) | function hashStr(str) { constant BUCKET_TURNING (line 297) | const BUCKET_TURNING = 5; constant BUCKET_NORMAL (line 298) | const BUCKET_NORMAL = 7; function openContextModal (line 300) | async function openContextModal(articleTitle = '') { function setOptionsContextOpen (line 353) | function setOptionsContextOpen(isOpen) { function openNewsModalFlow (line 368) | async function openNewsModalFlow(news, newsItem, newsList, opts = {}) { function addReadButtonListener (line 484) | function addReadButtonListener(readButton, newsItem, news, newsList) { function generateAndRenderArticle (line 490) | async function generateAndRenderArticle(news, newsList, label = "Generat... function manageTurningPointButtons (line 567) | function manageTurningPointButtons(news, newsList, maxDate, newsBody, re... function createNewsItemElement (line 775) | function createNewsItemElement(news, index, newsAvailable, newsList, max... function computeStableKey (line 932) | function computeStableKey(n) { function place_news (line 939) | async function place_news(newsAndTurningPoints, newsAvailable) { function place_turning_outcome (line 1003) | async function place_turning_outcome(turningPointResponse, newsList) { function imageExists (line 1074) | async function imageExists(url) { function prependAnimated (line 1083) | function prependAnimated(container, newEl, duration = 250, easing = 'eas... function getTurningPointEvents (line 1158) | async function getTurningPointEvents(date) { function buildContextData (line 1239) | function buildContextData(data, config = {}) { function buildContextualPrompt (line 1334) | function buildContextualPrompt(data, config = {}) { constant ADUO_ENGINE_STAT_LABELS (line 1465) | const ADUO_ENGINE_STAT_LABELS = { constant ADUO_ENGINE_STAT_ORDER (line 1473) | const ADUO_ENGINE_STAT_ORDER = [10, 6, 14, 18, 19]; function describeAduoChange (line 1475) | function describeAduoChange(pct) { function buildAduoTemplateArticle (line 1492) | function buildAduoTemplateArticle(newData) { function manageRead (line 1522) | async function manageRead(newData, newsList, barProgressDiv, interval, o... function cleanArticleOutput (line 1715) | function cleanArticleOutput(rawMd) { function safeJsonParse (line 1724) | function safeJsonParse(raw) { function tryParseJsonObject (line 1732) | function tryParseJsonObject(raw) { function removeLeading (line 1761) | function removeLeading(md) { function italicizeQuotes (line 1765) | function italicizeQuotes(md) { function contextualizeCustomNews (line 1776) | async function contextualizeCustomNews(newData) { function contextualizeTurningPointInjury (line 1813) | async function contextualizeTurningPointInjury(newData, turningPointType) { function contextualizeTurningPointRaceSubstitution (line 1888) | async function contextualizeTurningPointRaceSubstitution(newData, turnin... function contextualizeTurningPointInvestment (line 1925) | async function contextualizeTurningPointInvestment(newData, turningPoint... function contextualizeDSQ (line 1964) | async function contextualizeDSQ(newData, type) { function contextualizeTurningPointTechnicalDirective (line 2012) | async function contextualizeTurningPointTechnicalDirective(newData, turn... function contextualizeTurningPointEngineRegulation (line 2064) | async function contextualizeTurningPointEngineRegulation(newData, turnin... function contextualizeTurningPointAduo (line 2119) | async function contextualizeTurningPointAduo(newData, turningPointType) { function contextualizeTurningPointYoungDrivers (line 2227) | async function contextualizeTurningPointYoungDrivers(newData, turningPoi... function contextualizeTurningPointTransfer (line 2295) | async function contextualizeTurningPointTransfer(newData, turningPointTy... function contextualizeWorldChampion (line 2377) | async function contextualizeWorldChampion(newData) { function contextualizePotentialChampion (line 2424) | async function contextualizePotentialChampion(newData) { function contextualizeSillySeasonTransferNews (line 2517) | async function contextualizeSillySeasonTransferNews(newData) { function contextualizeFakeTransferNews (line 2546) | async function contextualizeFakeTransferNews(newData) { function contextualizeNextSeasonGrid (line 2593) | async function contextualizeNextSeasonGrid(newData) { function contextualizeBigTransferConfirm (line 2644) | async function contextualizeBigTransferConfirm(newData) { function contextualizeRenewalNews (line 2709) | async function contextualizeRenewalNews(newData) { function contextualizeTeamComparison (line 2753) | async function contextualizeTeamComparison(newData) { function contextualizeQualiResults (line 2820) | async function contextualizeQualiResults(newData) { function contextualizeRaceResults (line 2891) | async function contextualizeRaceResults(newData) { function contextualizeDriverComparison (line 2961) | async function contextualizeDriverComparison(newData) { function contextualizeRaceReaction (line 2992) | async function contextualizeRaceReaction(newData) { function contextualizeFeederSeriesReview (line 3063) | async function contextualizeFeederSeriesReview(newData) { function contextualizeSeasonReview (line 3106) | async function contextualizeSeasonReview(newData) { function askGenAI (line 3162) | async function askGenAI(messages, opts = {}) { function createEditFooterButtons (line 3230) | function createEditFooterButtons(articleEl) { function startArticleEditMode (line 3295) | function startArticleEditMode() { function buildEmergencyOverlay (line 3348) | function buildEmergencyOverlay() { function ensureEmergencyOverlay (line 3370) | function ensureEmergencyOverlay(imageContainer) { function manage_overlay (line 3376) | function manage_overlay(imageContainer, overlay, data, image) { function getOrdinalSuffix (line 3722) | function getOrdinalSuffix(n) { constant CUSTOM_NEWS_TYPE_DEFS (line 3767) | const CUSTOM_NEWS_TYPE_DEFS = Object.entries(CUSTOM_NEWS_TYPE_META).map(... function setCustomNewsError (line 3776) | function setCustomNewsError(msg) { function getCustomNewsTitlePlaceholder (line 3787) | function getCustomNewsTitlePlaceholder(type = getCustomNewsSelectedType(... function getCustomNewsImageSrc (line 3791) | function getCustomNewsImageSrc(imageFile) { function toIsoDate (line 3795) | function toIsoDate(date) { function setRedesignedDropdownOpen (line 3800) | function setRedesignedDropdownOpen(dropdown, isOpen) { function bindRedesignedDropdownToggle (line 3806) | function bindRedesignedDropdownToggle(dropdown) { function getDropdownLabelSpan (line 3824) | function getDropdownLabelSpan(buttonEl) { function setRedesignedDropdownSelection (line 3828) | function setRedesignedDropdownSelection(buttonEl, menuEl, value, label) { function getRedesignedDropdownValue (line 3843) | function getRedesignedDropdownValue(buttonEl) { function getCustomNewsSelectedType (line 3848) | function getCustomNewsSelectedType() { function populateCustomNewsTypeDropdown (line 3852) | function populateCustomNewsTypeDropdown({ function populateRedesignedDropdown (line 3918) | function populateRedesignedDropdown({ function resolveCustomNewsTitleType (line 4015) | function resolveCustomNewsTitleType(type = getCustomNewsSelectedType()) { function getCustomNewsTitleTemplates (line 4025) | function getCustomNewsTitleTemplates(type = getCustomNewsSelectedType()) { function refreshCustomNewsTitleTemplates (line 4039) | function refreshCustomNewsTitleTemplates() { function updateCustomNewsImagePreview (line 4074) | function updateCustomNewsImagePreview() { function bindCustomNewsLiveRefresh (line 4081) | function bindCustomNewsLiveRefresh() { function loadCustomNewsOptions (line 4099) | async function loadCustomNewsOptions() { function renderCustomNewsParams (line 4106) | function renderCustomNewsParams(type, options) { function openCustomNewsModal (line 5529) | async function openCustomNewsModal() { function submitCustomNews (line 5573) | async function submitCustomNews() { function updateNewsYearsButton (line 5795) | function updateNewsYearsButton(message) { function addTurningPointContexts (line 5826) | async function addTurningPointContexts(prompt, date) { FILE: src/js/frontend/performance.js function clampPercent (line 55) | function clampPercent(value) { function setBarWidth (line 63) | function setBarWidth(bar, value) { function normalizeData (line 68) | function normalizeData(data) { function readPartsStatsFromDom (line 87) | function readPartsStatsFromDom() { function applyPartsStatsToDom (line 104) | function applyPartsStatsToDom(data) { function updateExpertiseModeUi (line 118) | function updateExpertiseModeUi() { function setPerformanceDetailsMode (line 159) | function setPerformanceDetailsMode(mode) { function updatePerformanceExpertiseButton (line 182) | function updatePerformanceExpertiseButton() { function load_performance (line 202) | function load_performance(teams) { function load_cars (line 220) | function load_cars(data) { function load_attributes (line 259) | function load_attributes(teams) { function load_car_attributes (line 271) | function load_car_attributes(teams) { function order_by (line 284) | function order_by(criterion) { function updateTeamsCarsButton (line 322) | function updateTeamsCarsButton() { function gather_engines_data (line 389) | function gather_engines_data() { function update_max_design (line 407) | function update_max_design(data) { function manage_engineStats (line 415) | function manage_engineStats(engineData) { function removeSelected (line 442) | function removeSelected() { function load_parts_stats (line 495) | function load_parts_stats(data) { function load_team_expertise (line 506) | function load_team_expertise(data) { function gather_team_expertise_data (line 519) | function gather_team_expertise_data() { function load_parts_list (line 537) | function load_parts_list(data) { function add_new_part_button (line 628) | function add_new_part_button(list) { function add_n_parts_buttons (line 682) | function add_n_parts_buttons(loadoutContainer) { function load_one_part (line 728) | function load_one_part(data) { function add_partName_listener (line 743) | function add_partName_listener(div, subtitle, type = "old") { function loadout_listener (line 767) | function loadout_listener(icon, loadout_n, partTitle) { function buildHoldOptions (line 830) | function buildHoldOptions(input, extra = {}) { function setPerformanceView (line 941) | function setPerformanceView(view) { function createOverviewCard (line 983) | function createOverviewCard(attributeConfig) { function load_overview (line 1081) | function load_overview() { function resetBarsEngines (line 1148) | function resetBarsEngines(div) { function resetBars (line 1162) | function resetBars() { function add_custom_engine (line 1169) | function add_custom_engine(name, stats) { function wireEngineStatButtons (line 1258) | function wireEngineStatButtons(container) { function createCustomEngineCard (line 1281) | function createCustomEngineCard(engineId, name, stats) { function renderCustomEnginesInList (line 1400) | function renderCustomEnginesInList(engines) { function getNextCustomEngineId (line 1416) | function getNextCustomEngineId() { function gather_custom_engines_data (line 1441) | function gather_custom_engines_data() { function load_custom_engines (line 1462) | function load_custom_engines(data) { function manage_bar (line 1498) | function manage_bar(bar, progress) { function reload_performance_graph (line 1532) | function reload_performance_graph() { function load_performance_graph (line 1540) | function load_performance_graph(data) { function applyAduoUpgradeAnnotations (line 1597) | function applyAduoUpgradeAnnotations(raceIds, races, labelCount) { function createPerformanceChart (line 1640) | function createPerformanceChart(labelsArray) { FILE: src/js/frontend/recentsManager.js constant DB_NAME (line 3) | const DB_NAME = "SaveEditorDB"; constant STORE_NAME (line 4) | const STORE_NAME = "recentFileHandles"; constant DB_VERSION (line 5) | const DB_VERSION = 1; function openDB (line 7) | function openDB() { function saveHandleToRecents (line 22) | async function saveHandleToRecents(handle) { function getRecentHandles (line 36) | async function getRecentHandles() { function removeRecentHandle (line 40) | async function removeRecentHandle(name) { FILE: src/js/frontend/regulations.js function getEnumChange (line 27) | function getEnumChange(id) { function parseIntSafe (line 31) | function parseIntSafe(val, fallback = 0) { function formatMoney (line 36) | function formatMoney(val) { function getSchemeName (line 41) | function getSchemeName(id) { function getPackageName (line 49) | function getPackageName(id) { function getSelectedPointScheme (line 53) | function getSelectedPointScheme() { function getSelectedResourcePackage (line 59) | function getSelectedResourcePackage() { function setDropdownLabel (line 65) | function setDropdownLabel(btn, label) { function updateMenus (line 70) | function updateMenus() { function renderPointSchemeTable (line 135) | function renderPointSchemeTable() { function renderResourcePackageTable (line 169) | function renderResourcePackageTable() { function initHoldControlsOnce (line 218) | function initHoldControlsOnce() { function createNewPointScheme (line 259) | function createNewPointScheme() { function createNewResourcePackage (line 275) | function createNewResourcePackage() { function load_regulations (line 292) | function load_regulations(data) { function gather_regulations_data (line 333) | function gather_regulations_data() { FILE: src/js/frontend/renderer.js function updateTurningPointsFrequencyUI (line 127) | function updateTurningPointsFrequencyUI() { function setSaveName (line 237) | function setSaveName(name) { function getSaveName (line 241) | function getSaveName() { function setIsShowingNotification (line 245) | function setIsShowingNotification(value) { function getPatchNotes (line 254) | async function getPatchNotes() { function handleLogout (line 360) | async function handleLogout() { function getUserTier (line 380) | async function getUserTier() { function validateSession (line 403) | async function validateSession() { function maybeReloadForNightlyAccess (line 457) | function maybeReloadForNightlyAccess(tierInfo) { function updatePatreonUI (line 467) | function updatePatreonUI(tier) { function editModeHandler (line 522) | function editModeHandler() { function calendarModeHandler (line 627) | function calendarModeHandler() { function regulationsModeHandler (line 652) | function regulationsModeHandler() { function teamsModeHandler (line 662) | function teamsModeHandler() { function performanceModeHandler (line 691) | function performanceModeHandler() { function first_show_animation (line 763) | function first_show_animation() { function manageSaveButton (line 776) | function manageSaveButton(show, mode, customHandler) { function updateFront (line 816) | async function updateFront(data) { function new_update_notifications (line 836) | function new_update_notifications(message, type = "success") { function showNextNotification (line 841) | function showNextNotification(type) { function make_name_prettier (line 875) | function make_name_prettier(text) { function orderTeamTemplatesByStandings (line 887) | function orderTeamTemplatesByStandings(standingsRows) { function removeLegacyKeys (line 1123) | function removeLegacyKeys(base) { function migrateLegacyNewsOnce (line 1135) | async function migrateLegacyNewsOnce() { function generateNews (line 1252) | async function generateNews() { function startGeneralNewsProgress (line 1292) | function startGeneralNewsProgress(progressDiv) { function update_engine_allocations (line 1308) | function update_engine_allocations(message) { function resizeWindowToHeight (line 1334) | function resizeWindowToHeight(mode) { function manage_game_year (line 1369) | function manage_game_year(info) { function manage_custom_team (line 1413) | function manage_custom_team(nameColor) { function replace_custom_team_color (line 1464) | function replace_custom_team_color(primary, secondary) { function replace_custom_team_logo (line 1497) | function replace_custom_team_logo(path) { function manage_config (line 1524) | function manage_config(info, year_config = false) { function replace_all_teams (line 1530) | function replace_all_teams(info) { function manage_config_content (line 1559) | function manage_config_content(info, year_config = false) { function setRenaultEnginePresentation (line 1614) | function setRenaultEnginePresentation(engineMode) { function updateJenzerToDams (line 1656) | function updateJenzerToDams(mode = "dams") { function update_difficulty_info (line 1682) | function update_difficulty_info(triggerList) { function change_css_variables (line 1708) | function change_css_variables(oldVar, newVar) { function replace_modal_teams (line 1721) | function replace_modal_teams(version) { function applyConfigFromEditorUI (line 1748) | function applyConfigFromEditorUI(overrides = {}) { function askFixDoublePointsBug (line 1867) | async function askFixDoublePointsBug(message){ function setDownloadSaveProgress (line 1896) | function setDownloadSaveProgress(percent) { function clearDownloadSaveWorkerHandler (line 1902) | function clearDownloadSaveWorkerHandler() { function clearDownloadSaveProgressTimers (line 1908) | function clearDownloadSaveProgressTimers() { function resetDownloadSaveProgress (line 1919) | function resetDownloadSaveProgress() { function startDownloadSaveProgressSimulation (line 1928) | function startDownloadSaveProgressSimulation() { function finishDownloadSaveProgress (line 1961) | function finishDownloadSaveProgress() { function downloadExportedSave (line 1979) | function downloadExportedSave(command) { function check_selected (line 2038) | function check_selected() { function update_mentality_span (line 2164) | function update_mentality_span(value) { function update_refurbish_span (line 2180) | function update_refurbish_span(value) { function update_development_span (line 2196) | function update_development_span(value) { function manage_difficulty_warnings (line 2207) | function manage_difficulty_warnings(level, triggerList) { function load_difficulty_warnings (line 2235) | function load_difficulty_warnings(triggerList) { function manageScripts (line 2304) | function manageScripts(...divs) { function manageNewsStatus (line 2361) | function manageNewsStatus(patreonTier) { function checkGenerableNews (line 2376) | function checkGenerableNews(patreonTier) { function checkOpenSlideUp (line 2395) | async function checkOpenSlideUp() { function showPatreonModal (line 2412) | function showPatreonModal() { function canShowPatreonModal (line 2425) | function canShowPatreonModal(lastShown) { function animateTextLoop (line 2533) | async function animateTextLoop() { function updateRateLimitsDisplay (line 2572) | async function updateRateLimitsDisplay() { constant MS_PER_DAY (line 2623) | const MS_PER_DAY = 24 * 60 * 60 * 1000; function getRecentsTimeLabel (line 2625) | function getRecentsTimeLabel(openedDate, now = new Date()) { function populateRecentHandles (line 2640) | function populateRecentHandles(recents) { function verifyPermission (line 2704) | async function verifyPermission(fileHandle) { function createMarqueeItem (line 2718) | function createMarqueeItem(name, tier) { function updateToolbarThemeLogo (line 2725) | function updateToolbarThemeLogo() { function syncNightlyIndicator (line 2752) | function syncNightlyIndicator() { function syncNightlyThemeVisibility (line 2771) | function syncNightlyThemeVisibility() { function changeTheme (line 2799) | function changeTheme() { function loadTheme (line 2810) | function loadTheme() { function shouldShowPatchModal (line 2930) | function shouldShowPatchModal(storedVersion, versionNow) { function confirmModal (line 2951) | async function confirmModal({ function attachHold (line 3033) | function attachHold(btn, el, step = 1, opts = {}) { FILE: src/js/frontend/seasonMods.js function normalizeToggleEnabled (line 8) | function normalizeToggleEnabled(value) { function clearMods2026Illumination (line 12) | function clearMods2026Illumination() { function seasonModsIsVisible (line 22) | function seasonModsIsVisible() { function scheduleMods2026Illumination (line 28) | function scheduleMods2026Illumination() { function setAduoTpTogglesChecked (line 46) | function setAduoTpTogglesChecked(enabled) { function updateAduoTpEnabled (line 54) | function updateAduoTpEnabled(enabled) { function getCustomTeamName (line 61) | function getCustomTeamName() { function shouldAutoApplyCadillacLogo (line 66) | function shouldAutoApplyCadillacLogo() { function getCadillacLogoDataUrl (line 73) | function getCadillacLogoDataUrl() { function tryApplyCadillacCustomLogo (line 89) | function tryApplyCadillacCustomLogo() { function prefersReducedMotion (line 98) | function prefersReducedMotion() { function animatePointsValue (line 102) | function animatePointsValue(element, targetValue, durationMs = 1000) { function setModsSeason (line 134) | function setModsSeason(seasonYear) { function initModsSeasonPills (line 152) | function initModsSeasonPills() { function initMods2026Actions (line 174) | function initMods2026Actions(){ function initMods2025Actions (line 382) | function initMods2025Actions() { function initSeasonMods (line 495) | function initSeasonMods() { function syncAduoTpToggles (line 535) | function syncAduoTpToggles(enabledRaw) { function syncMods2026ApplyAllButtonState (line 541) | function syncMods2026ApplyAllButtonState() { function syncMods2025Dependencies (line 561) | function syncMods2025Dependencies() { function syncMods2026Dependencies (line 583) | function syncMods2026Dependencies() { function updateMod2026Blocking (line 605) | function updateMod2026Blocking(data) { function updateMod2025Blocking (line 648) | function updateMod2025Blocking(data) { FILE: src/js/frontend/seasonViewer.js function ensureDropdownCheckIcons (line 49) | function ensureDropdownCheckIcons(menuEl) { function syncDropdownCheckIcons (line 61) | function syncDropdownCheckIcons(menuEl, isSelected) { function syncTableTypeDropdownChecks (line 70) | function syncTableTypeDropdownChecks() { function syncSeriesTypeDropdownChecks (line 75) | function syncSeriesTypeDropdownChecks() { function syncRecordsTypeDropdownChecks (line 81) | function syncRecordsTypeDropdownChecks() { function syncYearDropdownChecks (line 87) | function syncYearDropdownChecks() { function applyStandingsDetailsState (line 93) | function applyStandingsDetailsState() { function setStandingsPositionChange (line 114) | function setStandingsPositionChange(changeDiv, lastPositionChange) { function setStandingsPointsGap (line 145) | function setStandingsPointsGap(gapDiv, gapToLeader) { function updateStandingsPointsGaps (line 151) | function updateStandingsPointsGaps(rows, leaderPoints) { function addEngineName (line 172) | function addEngineName(id, name) { function deleteEngineName (line 176) | function deleteEngineName(id) { function setEngineAllocations (line 180) | function setEngineAllocations(allocations) { function getEngineLogoSrc (line 184) | function getEngineLogoSrc(name) { function emojiToDataUri (line 201) | function emojiToDataUri(emoji) { function resetViewer (line 218) | function resetViewer() { function resetYearButtons (line 228) | function resetYearButtons() { function manageDriversTeamsModeChanged (line 252) | function manageDriversTeamsModeChanged() { function updateAllTimeVisibilityForTeamsRecords (line 266) | function updateAllTimeVisibilityForTeamsRecords() { function updateTopPanelControlsVisibility (line 275) | function updateTopPanelControlsVisibility() { function manage_show_tables (line 322) | function manage_show_tables() { function forceStandingsCurrentSeason (line 361) | function forceStandingsCurrentSeason() { function updateSeriesControls (line 384) | function updateSeriesControls() { function change_points_pos_drivers (line 417) | function change_points_pos_drivers() { function renderTeamCellList (line 428) | function renderTeamCellList(cell, values) { function change_points_pos_teams (line 445) | function change_points_pos_teams() { function getTeamAbbr (line 469) | function getTeamAbbr(teamId) { function buildTeamAbbrElement (line 474) | function buildTeamAbbrElement(teamId, sizeClass) { function createHeaderCell (line 496) | function createHeaderCell(trackId, labelSuffix = "", baseClass = "driver... function formatDriverCellValue (line 516) | function formatDriverCellValue(value, type) { function syncFormulaFromCalendar (line 523) | function syncFormulaFromCalendar(formula) { function new_drivers_table (line 536) | function new_drivers_table(data) { function new_teams_table (line 586) | function new_teams_table(data) { function checkscroll (line 634) | function checkscroll() { function new_color_drivers_table (line 645) | function new_color_drivers_table() { function manage_teams_table_logos (line 683) | function manage_teams_table_logos() { function manage_teams_table_names (line 845) | function manage_teams_table_names() { function new_color_teams_table (line 921) | function new_color_teams_table() { function order_teams_table (line 974) | function order_teams_table() { function new_load_drivers_table (line 989) | function new_load_drivers_table(data) { function checkIfDriverIsChampion (line 1029) | function checkIfDriverIsChampion(driver1, driver1Points, driver2Points, ... function new_order_drivers (line 1087) | function new_order_drivers(array) { function update_logo (line 1091) | function update_logo(team, logo, newTeam) { function reloadTables (line 1122) | function reloadTables() { function new_load_teams_table (line 1133) | function new_load_teams_table(data) { function checkIfTeamIsChamp (line 1247) | function checkIfTeamIsChamp(team1Points, team2Points, pointsInfo, teamRo... function new_addTeam (line 1316) | function new_addTeam(teamRaceMap, name, pos, id, lastPositionChange = 0) { function buildF1DriverLogoElement (line 1672) | function buildF1DriverLogoElement(teamId) { function buildDriverLogoDiv (line 1753) | function buildDriverLogoDiv(teamId, opts = {}) { function new_addDriver (line 1778) | function new_addDriver(driver, races_done, odd) { function manage_dataset_info_driver (line 1943) | function manage_dataset_info_driver(info, sprintInfo, type) { function manage_dataset_info_team (line 1994) | function manage_dataset_info_team(info, sprintInfo, type) { function manageText (line 2047) | function manageText(raceDiv) { function manageTeamsText (line 2108) | function manageTeamsText(raceDiv) { function generateYearsMenu (line 2191) | function generateYearsMenu(actualYear) { function manageRecordsSelected (line 2246) | function manageRecordsSelected(forcedYearEl = null) { function manageSeasonReview (line 2301) | function manageSeasonReview(){ function populateSeasonReview (line 2329) | function populateSeasonReview(data) { function updateRoundsCounterSeasonReview (line 2351) | function updateRoundsCounterSeasonReview(events) { function populateComparisonsSeasonReview (line 2363) | function populateComparisonsSeasonReview(comparisons, teamsStandings) { function populateDriversStandingsSeasonReview (line 2500) | function populateDriversStandingsSeasonReview(data, meta = {}) { function updateDriversStandingsMaxHeight (line 2589) | function updateDriversStandingsMaxHeight() { function ensureDriversStandingsHeightListener (line 2609) | function ensureDriversStandingsHeightListener() { function updateTeamsStandingsMaxHeight (line 2623) | function updateTeamsStandingsMaxHeight() { function ensureTeamsStandingsHeightListener (line 2643) | function ensureTeamsStandingsHeightListener() { function updateComparisonsMaxHeight (line 2657) | function updateComparisonsMaxHeight() { function ensureComparisonsHeightListener (line 2679) | function ensureComparisonsHeightListener() { function populateTeamsStandingsSeasonReview (line 2693) | function populateTeamsStandingsSeasonReview(data, meta = {}) { function populateQualifyingAnalysisSeasonReview (line 2783) | function populateQualifyingAnalysisSeasonReview(data) { function updateQualifyingListsMaxHeight (line 2857) | function updateQualifyingListsMaxHeight() { function ensureQualifyingListsHeightListener (line 2878) | function ensureQualifyingListsHeightListener() { function populateWinsDriversSeasonReview (line 2892) | function populateWinsDriversSeasonReview(data) { function updateWinsDriversListMaxHeight (line 2946) | function updateWinsDriversListMaxHeight() { function ensureWinsDriversListHeightListener (line 2964) | function ensureWinsDriversListHeightListener() { function formatTeamNameForDisplay (line 2978) | function formatTeamNameForDisplay(teamName, { upper = false } = {}) { function addSeasonReviewPhantomRows (line 2985) | function addSeasonReviewPhantomRows(container, targetCount = 4) { function populateTeamsAggregateSeasonReview (line 2995) | function populateTeamsAggregateSeasonReview(driverRecords, containerSele... function populateDriverOfTheDaySeasonReview (line 3052) | function populateDriverOfTheDaySeasonReview(data) { function computeTeamTotalsFromDriverRecords (line 3111) | function computeTeamTotalsFromDriverRecords(driverRecords) { function populateWinsTeamsSeasonReview (line 3127) | function populateWinsTeamsSeasonReview(winsRecords) { function populatePodiumsTeamsSeasonReview (line 3167) | function populatePodiumsTeamsSeasonReview(podiumsRecords) { function populatePodiumsDriversSeasonReview (line 3210) | function populatePodiumsDriversSeasonReview(podiumsRecords) { function manageShowRecords (line 3333) | function manageShowRecords() { function showSessionResultsTable (line 3349) | function showSessionResultsTable() { function getSessionResultsQualiGridPosition (line 3365) | function getSessionResultsQualiGridPosition(row) { function onSessionResultsFetched (line 3375) | function onSessionResultsFetched(data) { function getDragAfterSessionResultsRow (line 3929) | function getDragAfterSessionResultsRow(container, y) { function reindexRaceEditPositions (line 3941) | function reindexRaceEditPositions(container) { function parseSessionResultsTimeToSeconds (line 3955) | function parseSessionResultsTimeToSeconds(txt) { function saveSessionResultsRaceEdits (line 3975) | async function saveSessionResultsRaceEdits() { function ensureSessionResultsPointsInfo (line 4023) | async function ensureSessionResultsPointsInfo() { function updateRaceEditPoints (line 4041) | function updateRaceEditPoints() { function setupSessionResultsEditToggle (line 4118) | function setupSessionResultsEditToggle() { function setupSessionResultsCompactToggle (line 4135) | function setupSessionResultsCompactToggle() { function safeJsonDownload (line 4148) | function safeJsonDownload(filename, jsonObj) { function slugifyForFilename (line 4168) | function slugifyForFilename(txt) { function slugifyForUniqueName (line 4177) | function slugifyForUniqueName(txt) { function normalizeRltoolsDriverName (line 4182) | function normalizeRltoolsDriverName(name) { function getRltoolsTrackUniqueName (line 4186) | function getRltoolsTrackUniqueName(trackId, year) { function getQualifyingStageNumber (line 4194) | function getQualifyingStageNumber(qualifyingStage) { function getSessionPositionForExport (line 4198) | function getSessionPositionForExport(sessionKeyLower, weekendType, quali... function getRltoolsSessionType (line 4228) | function getRltoolsSessionType(sessionKeyLower) { function getRltoolsSessionFilenamePart (line 4235) | function getRltoolsSessionFilenamePart(sessionKeyLower) { function getRltoolsQualifyingStageConfigs (line 4246) | function getRltoolsQualifyingStageConfigs() { function secondsToIntMs (line 4254) | function secondsToIntMs(v) { function getShownSessionResultsRowsForExport (line 4260) | function getShownSessionResultsRowsForExport() { function buildRltoolsExportObject (line 4307) | function buildRltoolsExportObject(options = {}) { function exportShownSessionResultsToRltools (line 4450) | function exportShownSessionResultsToRltools() { function setupSessionResultsExportRltoolsButton (line 4498) | function setupSessionResultsExportRltoolsButton() { function formatLapTime (line 4527) | function formatLapTime(lapTimeMs) { function formatGapTime (line 4543) | function formatGapTime(lapTimeMs) { function getGpDisplayName (line 4561) | function getGpDisplayName(trackId) { function getSessionOptionsForWeekend (line 4566) | function getSessionOptionsForWeekend(weekendType) { function getLatestYearFromMenu (line 4586) | function getLatestYearFromMenu() { function openSessionResultsForRace (line 4597) | function openSessionResultsForRace(year, raceId, sessionKey) { function ensureSessionResultsMenuPopulated (line 4609) | async function ensureSessionResultsMenuPopulated() { function populateAndShowSessionResultsSessionMenu (line 4718) | function populateAndShowSessionResultsSessionMenu(opts = {}) { function setYearButton (line 4758) | function setYearButton(el) { function loadRecordsList (line 4765) | function loadRecordsList(data) { function loadTeamRecordsList (line 4967) | function loadTeamRecordsList(payload) { FILE: src/js/frontend/stats.js function setAttributesTitle (line 51) | function setAttributesTitle(typeStaff) { function initNationalityDropdown (line 59) | function initNationalityDropdown() { function setStatPanelShown (line 106) | function setStatPanelShown(value) { function setTypeOverall (line 110) | function setTypeOverall(value) { function setTypeEdit (line 114) | function setTypeEdit(value) { function removeStatsDrivers (line 121) | function removeStatsDrivers(staffOnly = false) { function place_drivers_editStats (line 136) | function place_drivers_editStats(driversArray) { function initStatsDrivers (line 250) | function initStatsDrivers() { function place_staff_editStats (line 264) | function place_staff_editStats(staffArray) { function getMentalityModifier (line 386) | function getMentalityModifier(mentality) { function recalculateOverall (line 397) | function recalculateOverall() { function getName (line 432) | function getName(html) { function calculateOverall (line 450) | function calculateOverall(stats, type) { function updateStat (line 476) | function updateStat(input, increment) { function listenersStaffGroups (line 716) | function listenersStaffGroups() { function setAddStaffType (line 776) | function setAddStaffType(typeStaff) { function resetStatsFilters (line 785) | function resetStatsFilters() { function applyStaffTypeSelection (line 804) | function applyStaffTypeSelection(typeStaff) { function getDraftContainer (line 808) | function getDraftContainer() { function getCurrentDraftElement (line 812) | function getCurrentDraftElement() { function removeCurrentDraftElement (line 816) | function removeCurrentDraftElement() { function createDraftElement (line 824) | function createDraftElement(profile) { function updateDraftControlVisibility (line 875) | function updateDraftControlVisibility(div) { function enterNameEditMode (line 891) | function enterNameEditMode() { function isDraftProfileSelected (line 898) | function isDraftProfileSelected() { function setEditorStaffType (line 902) | function setEditorStaffType(typeStaff) { function loadRandomStaffDraft (line 933) | function loadRandomStaffDraft(profile) { function applyDraftForenameUpdate (line 962) | function applyDraftForenameUpdate(payload) { function applyDraftCountryLocale (line 997) | function applyDraftCountryLocale(payload) { function manage_order (line 1007) | function manage_order(state) { function manage_stat_bar (line 1057) | function manage_stat_bar(element, value) { function load_stats (line 1069) | function load_stats(div) { function loadNumbers (line 1255) | function loadNumbers(nums) { function capitalizeFirstLetter (line 1339) | function capitalizeFirstLetter(str) { function manage_stats_title (line 1350) | function manage_stats_title(html) { function change_elegibles (line 1369) | function change_elegibles(divID) { function cssVar (line 1390) | function cssVar(name, fallback) { function ensureStatsGraphCanvas (line 1396) | function ensureStatsGraphCanvas() { function getThemeColor (line 1408) | function getThemeColor(fallback = '#4DA3FF') { function rgbaFromHex (line 1417) | function rgbaFromHex(hex, alpha) { function createStatsRadarChart (line 1427) | function createStatsRadarChart(labels) { function removeDatasetFromStatsRadarData (line 1521) | function removeDatasetFromStatsRadarData(index) { function updateStatsRadarData (line 1529) | function updateStatsRadarData(values, index = 0, color, name) { function addDatasetToStatsRadarData (line 1543) | function addDatasetToStatsRadarData(values, color, name) { function recalculateRadarScale (line 1559) | function recalculateRadarScale() { function toggleComparisonMode (line 1578) | function toggleComparisonMode() { function resetComparisonUI (line 1656) | function resetComparisonUI() { function updateComparisonUI (line 1736) | function updateComparisonUI() { FILE: src/js/frontend/teamReplacements.js function updateTeamMenuClass (line 38) | function updateTeamMenuClass(selector, info) { function updateTeamColors (line 49) | function updateTeamColors({ function replaceTeam (line 95) | function replaceTeam(config, info, deps) { function createTeamReplacers (line 119) | function createTeamReplacers(deps) { FILE: src/js/frontend/teams.js constant MAX_ARC_LENGTH (line 11) | const MAX_ARC_LENGTH = 212; function addContinuousListener (line 49) | function addContinuousListener(element, selector, incrementCallback, dec... function updateGaugeVisual (line 155) | function updateGaugeVisual(container, value) { function fillLevels (line 172) | function fillLevels(teamData) { function resetTeamEditing (line 251) | function resetTeamEditing() { function updatePitStat (line 258) | function updatePitStat(input, increment) { function manageConfidence (line 302) | function manageConfidence(data) { function gather_team_data (line 354) | function gather_team_data() { function gather_pit_crew (line 371) | function gather_pit_crew() { FILE: src/js/frontend/transfers.js function setCurrentSeason (line 58) | function setCurrentSeason(season) { function remove_drivers (line 70) | function remove_drivers(staffOnly = false) { function insert_space (line 86) | function insert_space(str) { function format_name (line 90) | function format_name(fullName, nameSplitted, spanName, spanLastName, onl... function place_drivers (line 127) | function place_drivers(driversArray) { function add_edit_container (line 172) | function add_edit_container(div) { function update_name (line 196) | function update_name(driverID, name) { function sortList (line 215) | function sortList(divID) { function place_staff (line 240) | function place_staff(staffArray) { function initFreeDriversElems (line 304) | function initFreeDriversElems() { function manage_staff_drivers (line 325) | function manage_staff_drivers(value) { function add_future_team_noti (line 348) | function add_future_team_noti(driverDiv, teamInfo) { function add_junior_formula_logo (line 355) | function add_junior_formula_logo(driverDiv, juniorInfo) { function getDirectAffiliateDrivers (line 374) | function getDirectAffiliateDrivers(affiliatesDiv) { function getAffiliateScrollStep (line 378) | function getAffiliateScrollStep(affiliatesDiv) { function clamp (line 393) | function clamp(number, min, max) { function updateAffiliateArrows (line 397) | function updateAffiliateArrows(wrapper) { function setupAffiliateScroller (line 437) | function setupAffiliateScroller(wrapper) { function updateColor (line 487) | function updateColor(div) { function manageColor (line 505) | function manageColor(div, lastName) { function addIcon (line 518) | function addIcon(div) { function iconListener (line 533) | function iconListener(icon) { function manage_modal_driver_staff (line 569) | function manage_modal_driver_staff(type) { function manage_modal (line 682) | function manage_modal(info) { function getJuniorMaxCars (line 815) | function getJuniorMaxCars(teamId) { function setJuniorPosInputLimits (line 823) | function setJuniorPosInputLimits(teamId) { function renderJuniorDriversList (line 835) | function renderJuniorDriversList() { function ensureJuniorTeamDropdownBuilt (line 884) | function ensureJuniorTeamDropdownBuilt() { function loadJuniorTeamDrivers (line 977) | function loadJuniorTeamDrivers(payload) { function formatNumber (line 1034) | function formatNumber(num) { function formatPosInTeamFutureLabel (line 1038) | function formatPosInTeamFutureLabel(pos) { function parsePosInTeamFutureValue (line 1045) | function parsePosInTeamFutureValue(raw) { function getPosInTeamFutureValue (line 1055) | function getPosInTeamFutureValue(input) { function setPosInTeamFutureValue (line 1063) | function setPosInTeamFutureValue(input, pos, opts = {}) { function attachHoldPosInTeamFuture (line 1081) | function attachHoldPosInTeamFuture(btn, input, delta) { function setupPosInTeamFutureControls (line 1116) | function setupPosInTeamFutureControls(input, plusBtn, minusBtn) { function attachHoldWithAttrClamp (line 1173) | function attachHoldWithAttrClamp(btn, input, step, opts = {}) { function setupContractModalButtons (line 1202) | function setupContractModalButtons() { function fetchContracts (line 1243) | function fetchContracts(elem) { function manageDrivers (line 1257) | function manageDrivers(...divs) { function clearModal (line 1309) | function clearModal() { function editContract (line 1321) | function editContract() { function manage_swap (line 1387) | function manage_swap() { function signDriver (line 1401) | function signDriver(type) { function setLineupsButtonState (line 1629) | function setLineupsButtonState(isOpen) { function getLineupsDisplaySeason (line 1644) | function getLineupsDisplaySeason() { function setLineupsSeasonPillActive (line 1650) | function setLineupsSeasonPillActive(seasonType) { function getLineupsTeamIds (line 1660) | function getLineupsTeamIds(payload) { function buildFallbackLogo (line 1680) | function buildFallbackLogo(teamId) { function getTeamTemplateById (line 1687) | function getTeamTemplateById(teamId) { function createTeamLogoNode (line 1692) | function createTeamLogoNode(teamId) { function getTeamNameForLineup (line 1708) | function getTeamNameForLineup(teamId, teamInfo) { function normalizeDriverNumber (line 1716) | function normalizeDriverNumber(value) { function getDriverSeatPriority (line 1721) | function getDriverSeatPriority(driver, seasonType) { function getLineupDriversBySeat (line 1731) | function getLineupDriversBySeat(teamInfo, seasonType) { function createLineupDriverRows (line 1763) | function createLineupDriverRows(teamInfo, seasonType) { function buildLineupCard (line 1815) | function buildLineupCard(teamId, teamInfo, seasonType) { function computeLineupPositions (line 1853) | function computeLineupPositions(teamIds, width, height) { function updateLineupPillLabels (line 1925) | function updateLineupPillLabels(season) { function renderLineupsCircle (line 1936) | function renderLineupsCircle() { function renderLineupsAfterLayout (line 1974) | function renderLineupsAfterLayout() { function refreshLineupsCircleAfterTeamReplace (line 1980) | function refreshLineupsCircleAfterTeamReplace() { function fetchLineupsData (line 1990) | async function fetchLineupsData() { function closeLineupsView (line 1997) | function closeLineupsView() { function openLineupsView (line 2005) | async function openLineupsView() { function hire_modal_standars (line 2050) | function hire_modal_standars() { method start (line 2067) | start(event) { method move (line 2089) | move(event) { method end (line 2101) | end(event) {