GE Lua Documentation

Press F to search!

use

Definition


-- @/lua/common/extensions.lua:1160

M.use = function(key)
  loadExt(key)
  --log("W", logTag, "use(extName) is deprecated. Please use the following syntax: core_extensions..doSomething()")
  return rawget(M, key)
end

Callers

@/lua/ge/extensions/flowgraph/baseStateNode.lua

function M.use(mgr, graph, forceId, derivedClass)
  local o = M.createBase(mgr, graph, forceId)
@/ui/lib/ext/angular-translate/angular-translate-beamng.js
    if (angular.isString(preferred)) {
      $translate.use(preferred);
      // $translate.use() will also remember the language.
      $translate.use(preferred);
      // $translate.use() will also remember the language.
      // So, we don't need to call storage.put() here.
    } else {
      storage.put(key, $translate.use());
    }
    } else {
      $translate.use(storage.get(key))['catch'](fallbackFromIncorrectStorageValue);
    }
  } else if (angular.isString($translate.preferredLanguage())) {
    $translate.use($translate.preferredLanguage());
  }
   * @param {object=} [interpolateParams={}] An object hash for dynamic values
   * @param {string=} [interpolationId=undefined] The id of the interpolation to use (use default unless set via useInterpolation())
   * @param {string=} [defaultTranslationText=undefined] the optional default translation text that is written as
        }
        $translate.use($translate.use());
      }
        }
        $translate.use($translate.use());
      }
     * @example
     * $translate.use("en_US").then(function(data){
       *   $scope.text = $translate("HELLO");
          if (!$uses && $fallbackLanguage && $fallbackLanguage.length > 0 && $fallbackLanguage[0] !== key) {
            return $translate.use($fallbackLanguage[0]).then(deferred.resolve, deferred.reject);
          } else {
     * @param {object=} [interpolateParams={}] Params
     * @param {string=} [interpolationId=undefined] The id of the interpolation to use (use default unless set via useInterpolation())
     * @param {string=} [forceLanguage=false] A language to be used instead of the current language
    $translate.getTranslationTable = function (langKey) {
      langKey = langKey || $translate.use();
      if (langKey && $translationTable[langKey]) {
      if (angular.equals($translationTable, {})) {
        if ($translate.use()) {
          $translate.use($translate.use());
        if ($translate.use()) {
          $translate.use($translate.use());
        }
        if ($translate.use()) {
          $translate.use($translate.use());
        }
    } else {
      $rootScope.$emit('$translateReady', {language : $translate.use()});
    }
        // Ensures the text will be refreshed after the current language was changed
        // w/ $translate.use(...)
        var unbind = $rootScope.$on('$translateChangeSuccess', updateTranslations);
      // Ensures the text will be refreshed after the current language was changed
      // w/ $translate.use(...)
      var unbind = $rootScope.$on('$translateChangeSuccess', updateTranslations);
@/ui/ui-vue/src/main.js
const pinia = createPinia()
  .use(() => ({ $game: bridge }))
  .use(customDisposePlugin)
  .use(() => ({ $game: bridge }))
  .use(customDisposePlugin)
const app = createApp(App)
  .use(router)
  .use(pinia)
  .use(router)
  .use(pinia)
  .use(registerApps, UiApps)
  .use(pinia)
  .use(registerApps, UiApps)
    app
      .use(i18n)
      .use(translationPlugin())
      .use(i18n)
      .use(translationPlugin())
@/lua/ge/extensions/flowgraph/baseModule.lua

function M.use(mgr, derivedClass)
  local o = M.createBase(mgr)
@/ui/lib/ext/angular-translate/angular-translate-loader-partial/angular-translate-loader-partial.min.js
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(){"use strict";function a(t,e,r){this.name=t,this.isActive=!0,this.tables={},this.priority=e||0,this.langPromises={},this.urlTemplate=r}a.prototype.parseUrl=function(t,e){return angular.isFunction(t)?t(this.name,e):t.replace(/\{part\}/g,this.name).replace(/\{lang\}/g,e)},a.prototype.getTable=function(e,t,r,a,n,i){var o=this,s=this.langPromises[e],l=t.defer(),u=function(t){o.tables[e]=t,l.resolve(t)},c=function(){l.reject(o.name)},p=function(){r(angular.extend({method:"GET",url:o.parseUrl(o.urlTemplate||n,e)},a)).then(function(t){u(t.data)},function(t){i?i(o.name,e,t).then(u,c):c()})};return this.tables[e]?l.resolve(this.tables[e]):(s?s.then(l.resolve,p):p(),this.langPromises[e]=l.promise),l.promise};var n={};function i(t){return Object.prototype.hasOwnProperty.call(n,t)}function f(t){return angular.isString(t)&&""!==t}function t(t){if(!f(t))throw new TypeError("Invalid type of a first argument, a non-empty string expected.");return i(t)&&n[t].isActive}function d(){var t=[];for(var e in n)n[e].isActive&&t.push(n[e]);return t.sort(function(t,e){return t.priority-e.priority}),t}this.addPart=function(t,e,r){if(!f(t))throw new TypeError("Couldn't add part, part name has to be a string!");return i(t)||(n[t]=new a(t,e,r)),n[t].isActive=!0,this},this.setPart=function(t,e,r){if(!f(t))throw new TypeError("Couldn't set part.`lang` parameter has to be a string!");if(!f(e))throw new TypeError("Couldn't set part.`part` parameter has to be a string!");if("object"!=typeof r||null===r)throw new TypeError("Couldn't set part. `table` parameter has to be an object!");return i(e)||(n[e]=new a(e),n[e].isActive=!1),n[e].tables[t]=r,this},this.deletePart=function(t){if(!f(t))throw new TypeError("Couldn't delete part, first arg has to be string.");return i(t)&&(n[t].isActive=!1),this},this.isPartAvailable=t,this.$get=["$rootScope","$injector","$q","$http","$log",function(o,s,l,u,c){var p=function(r){if(!f(r.key))throw new TypeError("Unable to load data, a key is not a non-empty string.");if(!f(r.urlTemplate)&&!angular.isFunction(r.urlTemplate))throw new TypeError("Unable to load data, a urlTemplate is not a non-empty string or not a function.");var e=r.loadFailureHandler;if(void 0!==e){if(!angular.isString(e))throw new Error("Unable to load data, a loadFailureHandler is not a string.");e=s.get(e)}var a=[],t=d();angular.forEach(t,function(t){a.push(t.getTable(r.key,l,u,r.$http,r.urlTemplate,e)),t.urlTemplate=t.urlTemplate||r.urlTemplate});var n=!1,i=o.$on("$translatePartialLoaderStructureChanged",function(){n=!0});return l.all(a).then(function(){if(i(),n){if(!r.__retries)return r.__retries=(r.__retries||0)+1,p(r);c.warn("The partial loader has detected a multiple structure change (with addPort/removePart) while loading translations. You should consider using promises of $translate.use(lang) and $translate.refresh(). Also parts should be added/removed right before an explicit refresh if possible.")}var e={};return t=d(),angular.forEach(t,function(t){!function t(e,r){for(var a in r)r[a]&&r[a].constructor&&r[a].constructor===Object?(e[a]=e[a]||{},t(e[a],r[a])):e[a]=r[a];return e}(e,t.tables[r.key])}),e},function(){return i(),l.reject(r.key)})};return p.addPart=function(t,e,r){if(!f(t))throw new TypeError("Couldn't add part, first arg has to be a string");return i(t)?n[t].isActive||(n[t].isActive=!0,o.$emit("$translatePartialLoaderStructureChanged",t)):(n[t]=new a(t,e,r),o.$emit("$translatePartialLoaderStructureChanged",t)),p},p.deletePart=function(r,t){if(!f(r))throw new TypeError("Couldn't delete part, first arg has to be string");if(void 0===t)t=!1;else if("boolean"!=typeof t)throw new TypeError("Invalid type of a second argument, a boolean expected.");if(i(r)){var e=n[r].isActive;if(t){var a=s.get("$translate").loaderCache();"string"==typeof a&&(a=s.get(a)),"object"==typeof a&&angular.forEach(n[r].tables,function(t,e){a.remove(n[r].parseUrl(n[r].urlTemplate,e))}),delete n[r]}else n[r].isActive=!1;e&&o.$emit("$translatePartialLoaderStructureChanged",r)}return p},p.isPartLoaded=function(t,e){return angular.isDefined(n[t])&&angular.isDefined(n[t].tables[e])},p.getRegisteredParts=function(){var e=[];return angular.forEach(n,function(t){t.isActive&&e.push(t.name)}),e},p.isPartAvailable=t,p}]}return angular.module("pascalprecht.translate").provider("$translatePartialLoader",t),t.displayName="$translatePartialLoader","pascalprecht.translate"});
@/ui/lib/ext/angular-translate/angular-translate.js
    if (angular.isString(preferred)) {
      $translate.use(preferred);
      // $translate.use() will also remember the language.
      $translate.use(preferred);
      // $translate.use() will also remember the language.
      // So, we don't need to call storage.put() here.
    } else {
      storage.put(key, $translate.use());
    }
    } else {
      $translate.use(storage.get(key))['catch'](fallbackFromIncorrectStorageValue);
    }
  } else if (angular.isString($translate.preferredLanguage())) {
    $translate.use($translate.preferredLanguage());
  }
   * @param {object=} [interpolateParams={}] An object hash for dynamic values
   * @param {string=} [interpolationId=undefined] The id of the interpolation to use (use default unless set via useInterpolation())
   * @param {string=} [defaultTranslationText=undefined] the optional default translation text that is written as
        }
        $translate.use($translate.use());
      }
        }
        $translate.use($translate.use());
      }
     * @example
     * $translate.use("en_US").then(function(data){
       *   $scope.text = $translate("HELLO");
          if (!$uses && $fallbackLanguage && $fallbackLanguage.length > 0 && $fallbackLanguage[0] !== key) {
            return $translate.use($fallbackLanguage[0]).then(deferred.resolve, deferred.reject);
          } else {
     * @param {object=} [interpolateParams={}] Params
     * @param {string=} [interpolationId=undefined] The id of the interpolation to use (use default unless set via useInterpolation())
     * @param {string=} [forceLanguage=false] A language to be used instead of the current language
    $translate.getTranslationTable = function (langKey) {
      langKey = langKey || $translate.use();
      if (langKey && $translationTable[langKey]) {
      if (angular.equals($translationTable, {})) {
        if ($translate.use()) {
          $translate.use($translate.use());
        if ($translate.use()) {
          $translate.use($translate.use());
        }
        if ($translate.use()) {
          $translate.use($translate.use());
        }
    } else {
      $rootScope.$emit('$translateReady', {language : $translate.use()});
    }
        // Ensures the text will be refreshed after the current language was changed
        // w/ $translate.use(...)
        var unbind = $rootScope.$on('$translateChangeSuccess', updateTranslations);
      // Ensures the text will be refreshed after the current language was changed
      // w/ $translate.use(...)
      var unbind = $rootScope.$on('$translateChangeSuccess', updateTranslations);
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/instanceSettings.lua
  {dir = 'in', type = 'number', name = 'stateIndex', description = 'Force sets the signal state, by controller state index (use 0 to reset).'},
  {dir = 'in', type = 'table', name = 'sequence', tableType = 'signalSequenceData', hidden = true, description = 'Changes the sequence to use (refreshes state if active).'},
  {dir = 'in', type = 'table', name = 'controller', tableType = 'signalControllerData', hidden = true, description = 'Changes the controller to use (refreshes state if active).'}
  {dir = 'in', type = 'table', name = 'sequence', tableType = 'signalSequenceData', hidden = true, description = 'Changes the sequence to use (refreshes state if active).'},
  {dir = 'in', type = 'table', name = 'controller', tableType = 'signalControllerData', hidden = true, description = 'Changes the controller to use (refreshes state if active).'}
}
@/ui/ui-vue/mockdata/inputBindings.js
                "title": "ui.inputActions.vehicle.set_cc_speed.title",
                "onDown": "extensions.use('cruiseControl').holdCurrentSpeed()",
                "order": 50,
                "title": "ui.inputActions.vehicle.reset_cc_speed.title",
                "onDown": "extensions.use('cruiseControl').setEnabled(true)",
                "order": 51,
                "title": "ui.inputActions.vehicle.increase_cc_speed.title",
                "onDown": "extensions.use('cruiseControl').changeSpeed( 1/3.6)",
                "order": 52,
                "title": "ui.inputActions.vehicle.decrease_cc_speed_large.title",
                "onDown": "extensions.use('cruiseControl').changeSpeed(-10/3.6)",
                "order": 53,
                "title": "ui.inputActions.vehicle.disable_cc.title",
                "onDown": "extensions.use('cruiseControl').setEnabled(false)",
                "order": 54,
                "title": "ui.inputActions.vehicle.decrease_cc_speed.title",
                "onDown": "extensions.use('cruiseControl').changeSpeed(-1/3.6)",
                "order": 53,
                "title": "ui.inputActions.vehicle.increase_cc_speed_large.title",
                "onDown": "extensions.use('cruiseControl').changeSpeed( 10/3.6)",
                "order": 52,
@/ui/lib/int/vueService.js
  let app = window.Vue.createApp({})
  if (window.vueI18n) app.use(window.vueI18n)
  if (!window.vueGlobalStore) {
@/lua/ge/extensions/gameplay/missions/missionTypes/flowMission.lua

-- common settings that any mission type may use (vehicles, traffic, environment, etc.)
function C:getCommonSettingsData()
@/lua/ge/extensions/core/flowgraphManager.lua
      node = C,
      create = function(mgr, graph, forceId) return require('/lua/ge/extensions/flowgraph/basenode').use(mgr, graph, forceId, C) end
    }
      node = C,
      create = function(mgr, graph, forceId) return require('/lua/ge/extensions/flowgraph/baseStateNode').use(mgr, graph, forceId, C) end
    }
      module = C,
      create = function(mgr) return require('/lua/ge/extensions/flowgraph/baseModule').use(mgr, C) end
    }
@/lua/ge/extensions/editor/flowgraph/basewindow.lua

function M.use(fgEditor, derivedClass)
  local o = M.createBase(fgEditor)
@/lua/ge/extensions/editor/flowgraphEditor.lua
      window = C,
      create = function(emgr) return require('/lua/ge/extensions/editor/flowgraph/basewindow').use(emgr, C) end
    }
@/lua/common/extensions.lua
  loadExt(key)
  --log("W", logTag, "use(extName) is deprecated. Please use the following syntax: core_extensions..doSomething()")
  return rawget(M, key)
@/ui/ui-vue/vite.config.js
  function register(server) {
    server.middlewares.use((req, res, next) => {
      let filePath = decodeURI(req.url)
@/gameplay/missionTypes/chase/editor.lua

  self:addNumeric("Lightbar Mode", "lightbarMode", 1, {tooltip = "The default police lightbar mode to use (0 = off, 1 = lights, 2 = sirens)"})
@/lua/ge/extensions/flowgraph/basenode.lua

function M.use(mgr, graph, forceId, derivedClass)
  local o = M.createBase(mgr, graph, forceId)
@/ui/lib/ext/angular-translate/angular-translate-loader-partial/angular-translate-loader-partial.js
                // the part structure has been changed while loading (the origin ones)
                // this can happen if an addPart/removePart has been invoked right after a $translate.use(lang)
                // TODO maybe we can optimize this with the actual list of missing parts
                $log.warn('The partial loader has detected a multiple structure change (with addPort/removePart) ' +
                  'while loading translations. You should consider using promises of $translate.use(lang) and ' +
                  '$translate.refresh(). Also parts should be added/removed right before an explicit refresh ' +
@/ui/ui-vue/src/tests/modules/refuel/refuelStore.spec.js
    beforeEach(() => {
        // const pinia = createPinia().use(({ store }) => {
        //     store.provide('$game', gameMock)
        // })
        // app.use(pinia)
        // setActivePinia(pinia)
        }
        const pinia = createPinia().use(() => ({ $game: $game}))

        app.use(pinia)
        setActivePinia(pinia)
@/ui/ui-vue/dist/index.js
var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__commonJSMin=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports),__export=all=>{let target={};for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0});return target},__copyProps=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(var keys=__getOwnPropNames(from),i=0,n=keys.length,key;ifrom[k]).bind(null,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM=(mod,isNodeMode,target)=>(target=mod==null?{}:__create(__getProtoOf(mod)),__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,`default`,{value:mod,enumerable:!0}):target,mod));(function(){let relList=document.createElement(`link`).relList;if(relList&&relList.supports&&relList.supports(`modulepreload`))return;for(let link of document.querySelectorAll(`link[rel="modulepreload"]`))processPreload(link);new MutationObserver(mutations=>{for(let mutation of mutations)if(mutation.type===`childList`)for(let node of mutation.addedNodes)node.tagName===`LINK`&&node.rel===`modulepreload`&&processPreload(node)}).observe(document,{childList:!0,subtree:!0});function getFetchOpts(link){let fetchOpts={};return link.integrity&&(fetchOpts.integrity=link.integrity),link.referrerPolicy&&(fetchOpts.referrerPolicy=link.referrerPolicy),link.crossOrigin===`use-credentials`?fetchOpts.credentials=`include`:link.crossOrigin===`anonymous`?fetchOpts.credentials=`omit`:fetchOpts.credentials=`same-origin`,fetchOpts}function processPreload(link){if(link.ep)return;link.ep=!0;let fetchOpts=getFetchOpts(link);fetch(link.href,fetchOpts)}})();function makeMap(str){let map=Object.create(null);for(let key of str.split(`,`))map[key]=1;return val=>val in map}var EMPTY_OBJ={},EMPTY_ARR=[],NOOP=()=>{},NO=()=>!1,isOn=key=>key.charCodeAt(0)===111&&key.charCodeAt(1)===110&&(key.charCodeAt(2)>122||key.charCodeAt(2)<97),isModelListener=key=>key.startsWith(`onUpdate:`),extend=Object.assign,remove$2=(arr,el)=>{let i=arr.indexOf(el);i>-1&&arr.splice(i,1)},hasOwnProperty$2=Object.prototype.hasOwnProperty,hasOwn$1=(val,key)=>hasOwnProperty$2.call(val,key),isArray$2=Array.isArray,isMap=val=>toTypeString$1(val)===`[object Map]`,isSet=val=>toTypeString$1(val)===`[object Set]`,isDate$1=val=>toTypeString$1(val)===`[object Date]`,isRegExp$1=val=>toTypeString$1(val)===`[object RegExp]`,isFunction$1=val=>typeof val==`function`,isString$1=val=>typeof val==`string`,isSymbol=val=>typeof val==`symbol`,isObject$1=val=>typeof val==`object`&&!!val,isPromise$1=val=>(isObject$1(val)||isFunction$1(val))&&isFunction$1(val.then)&&isFunction$1(val.catch),objectToString$1=Object.prototype.toString,toTypeString$1=value=>objectToString$1.call(value),toRawType=value=>toTypeString$1(value).slice(8,-1),isPlainObject$2=val=>toTypeString$1(val)===`[object Object]`,isIntegerKey=key=>isString$1(key)&&key!==`NaN`&&key[0]!==`-`&&``+parseInt(key,10)===key,isReservedProp=makeMap(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),isBuiltInDirective=makeMap(`bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo`),cacheStringFunction=fn=>{let cache$1=Object.create(null);return(str=>cache$1[str]||(cache$1[str]=fn(str)))},camelizeRE=/-\w/g,camelize=cacheStringFunction(str=>str.replace(camelizeRE,c=>c.slice(1).toUpperCase())),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(str=>str.replace(hyphenateRE,`-$1`).toLowerCase()),capitalize$1=cacheStringFunction(str=>str.charAt(0).toUpperCase()+str.slice(1)),toHandlerKey=cacheStringFunction(str=>str?`on${capitalize$1(str)}`:``),hasChanged=(value,oldValue)=>!Object.is(value,oldValue),invokeArrayFns=(fns,...arg)=>{for(let i=0;i{Object.defineProperty(obj,key,{configurable:!0,enumerable:!1,writable,value})},looseToNumber=val=>{let n=parseFloat(val);return isNaN(n)?val:n},toNumber=val=>{let n=isString$1(val)?Number(val):NaN;return isNaN(n)?val:n},_globalThis$1,getGlobalThis$1=()=>_globalThis$1||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function genCacheKey(source,options){return source+JSON.stringify(options,(_,val)=>typeof val==`function`?val.toString():val)}var isGloballyAllowed=makeMap(`Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol`);function normalizeStyle(value){if(isArray$2(value)){let res={};for(let i=0;i{if(item){let tmp=item.split(propertyDelimiterRE);tmp.length>1&&(ret[tmp[0].trim()]=tmp[1].trim())}}),ret}function normalizeClass(value){let res=``;if(isString$1(value))res=value;else if(isArray$2(value))for(let i=0;ilooseEqual(item,val))}var isRef$2=val=>!!(val&&val.__v_isRef===!0),toDisplayString=val=>isString$1(val)?val:val==null?``:isArray$2(val)||isObject$1(val)&&(val.toString===objectToString$1||!isFunction$1(val.toString))?isRef$2(val)?toDisplayString(val.value):JSON.stringify(val,replacer,2):String(val),replacer=(_key,val)=>isRef$2(val)?replacer(_key,val.value):isMap(val)?{[`Map(${val.size})`]:[...val.entries()].reduce((entries,[key,val2],i)=>(entries[stringifySymbol(key,i)+` =>`]=val2,entries),{})}:isSet(val)?{[`Set(${val.size})`]:[...val.values()].map(v=>stringifySymbol(v))}:isSymbol(val)?stringifySymbol(val):isObject$1(val)&&!isArray$2(val)&&!isPlainObject$2(val)?String(val):val,stringifySymbol=(v,i=``)=>{var _a;return isSymbol(v)?`Symbol(${v.description??i})`:v};function normalizeCssVarValue(value){return value==null?`initial`:typeof value==`string`?value===``?` `:value:String(value)}var activeEffectScope,EffectScope=class{constructor(detached=!1){this.detached=detached,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!detached&&activeEffectScope&&(this.index=(activeEffectScope.scopes||=[]).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let i,l;if(this.scopes)for(i=0,l=this.scopes.length;i0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(fromParent){if(this._active){this._active=!1;let i,l;for(i=0,l=this.effects.length;i0)return;if(batchedComputed){let e=batchedComputed;for(batchedComputed=void 0;e;){let next=e.next;e.next=void 0,e.flags&=-9,e=next}}let error;for(;batchedSub;){let e=batchedSub;for(batchedSub=void 0;e;){let next=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(err){error||=err}e=next}}if(error)throw error}function prepareDeps(sub){for(let link=sub.deps;link;link=link.nextDep)link.version=-1,link.prevActiveLink=link.dep.activeLink,link.dep.activeLink=link}function cleanupDeps(sub){let head,tail=sub.depsTail,link=tail;for(;link;){let prev=link.prevDep;link.version===-1?(link===tail&&(tail=prev),removeSub(link),removeDep(link)):head=link,link.dep.activeLink=link.prevActiveLink,link.prevActiveLink=void 0,link=prev}sub.deps=head,sub.depsTail=tail}function isDirty(sub){for(let link=sub.deps;link;link=link.nextDep)if(link.dep.version!==link.version||link.dep.computed&&(refreshComputed(link.dep.computed)||link.dep.version!==link.version))return!0;return!!sub._dirty}function refreshComputed(computed$2){if(computed$2.flags&4&&!(computed$2.flags&16)||(computed$2.flags&=-17,computed$2.globalVersion===globalVersion)||(computed$2.globalVersion=globalVersion,!computed$2.isSSR&&computed$2.flags&128&&(!computed$2.deps&&!computed$2._dirty||!isDirty(computed$2))))return;computed$2.flags|=2;let dep=computed$2.dep,prevSub=activeSub,prevShouldTrack=shouldTrack;activeSub=computed$2,shouldTrack=!0;try{prepareDeps(computed$2);let value=computed$2.fn(computed$2._value);(dep.version===0||hasChanged(value,computed$2._value))&&(computed$2.flags|=128,computed$2._value=value,dep.version++)}catch(err){throw dep.version++,err}finally{activeSub=prevSub,shouldTrack=prevShouldTrack,cleanupDeps(computed$2),computed$2.flags&=-3}}function removeSub(link,soft=!1){let{dep,prevSub,nextSub}=link;if(prevSub&&(prevSub.nextSub=nextSub,link.prevSub=void 0),nextSub&&(nextSub.prevSub=prevSub,link.nextSub=void 0),dep.subs===link&&(dep.subs=prevSub,!prevSub&&dep.computed)){dep.computed.flags&=-5;for(let l=dep.computed.deps;l;l=l.nextDep)removeSub(l,!0)}!soft&&!--dep.sc&&dep.map&&dep.map.delete(dep.key)}function removeDep(link){let{prevDep,nextDep}=link;prevDep&&(prevDep.nextDep=nextDep,link.prevDep=void 0),nextDep&&(nextDep.prevDep=prevDep,link.nextDep=void 0)}function effect(fn,options){fn.effect instanceof ReactiveEffect&&(fn=fn.effect.fn);let e=new ReactiveEffect(fn);options&&extend(e,options);try{e.run()}catch(err){throw e.stop(),err}let runner=e.run.bind(e);return runner.effect=e,runner}function stop(runner){runner.effect.stop()}var shouldTrack=!0,trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){let last=trackStack.pop();shouldTrack=last===void 0?!0:last}function cleanupEffect(e){let{cleanup}=e;if(e.cleanup=void 0,cleanup){let prevSub=activeSub;activeSub=void 0;try{cleanup()}finally{activeSub=prevSub}}}var globalVersion=0,Link=class{constructor(sub,dep){this.sub=sub,this.dep=dep,this.version=dep.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Dep=class{constructor(computed$2){this.computed=computed$2,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(debugInfo){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let link=this.activeLink;if(link===void 0||link.sub!==activeSub)link=this.activeLink=new Link(activeSub,this),activeSub.deps?(link.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=link,activeSub.depsTail=link):activeSub.deps=activeSub.depsTail=link,addSub(link);else if(link.version===-1&&(link.version=this.version,link.nextDep)){let next=link.nextDep;next.prevDep=link.prevDep,link.prevDep&&(link.prevDep.nextDep=next),link.prevDep=activeSub.depsTail,link.nextDep=void 0,activeSub.depsTail.nextDep=link,activeSub.depsTail=link,activeSub.deps===link&&(activeSub.deps=next)}return link}trigger(debugInfo){this.version++,globalVersion++,this.notify(debugInfo)}notify(debugInfo){startBatch();try{for(let link=this.subs;link;link=link.prevSub)link.sub.notify()&&link.sub.dep.notify()}finally{endBatch()}}};function addSub(link){if(link.dep.sc++,link.sub.flags&4){let computed$2=link.dep.computed;if(computed$2&&!link.dep.subs){computed$2.flags|=20;for(let l=computed$2.deps;l;l=l.nextDep)addSub(l)}let currentTail=link.dep.subs;currentTail!==link&&(link.prevSub=currentTail,currentTail&&(currentTail.nextSub=link)),link.dep.subs=link}}var targetMap=new WeakMap,ITERATE_KEY=Symbol(``),MAP_KEY_ITERATE_KEY=Symbol(``),ARRAY_ITERATE_KEY=Symbol(``);function track(target,type,key){if(shouldTrack&&activeSub){let depsMap=targetMap.get(target);depsMap||targetMap.set(target,depsMap=new Map);let dep=depsMap.get(key);dep||(depsMap.set(key,dep=new Dep),dep.map=depsMap,dep.key=key),dep.track()}}function trigger$1(target,type,key,newValue,oldValue,oldTarget){let depsMap=targetMap.get(target);if(!depsMap){globalVersion++;return}let run$1=dep=>{dep&&dep.trigger()};if(startBatch(),type===`clear`)depsMap.forEach(run$1);else{let targetIsArray=isArray$2(target),isArrayIndex=targetIsArray&&isIntegerKey(key);if(targetIsArray&&key===`length`){let newLength=Number(newValue);depsMap.forEach((dep,key2)=>{(key2===`length`||key2===ARRAY_ITERATE_KEY||!isSymbol(key2)&&key2>=newLength)&&run$1(dep)})}else switch((key!==void 0||depsMap.has(void 0))&&run$1(depsMap.get(key)),isArrayIndex&&run$1(depsMap.get(ARRAY_ITERATE_KEY)),type){case`add`:targetIsArray?isArrayIndex&&run$1(depsMap.get(`length`)):(run$1(depsMap.get(ITERATE_KEY)),isMap(target)&&run$1(depsMap.get(MAP_KEY_ITERATE_KEY)));break;case`delete`:targetIsArray||(run$1(depsMap.get(ITERATE_KEY)),isMap(target)&&run$1(depsMap.get(MAP_KEY_ITERATE_KEY)));break;case`set`:isMap(target)&&run$1(depsMap.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(object,key){let depMap=targetMap.get(object);return depMap&&depMap.get(key)}function reactiveReadArray(array){let raw=toRaw(array);return raw===array?raw:(track(raw,`iterate`,ARRAY_ITERATE_KEY),isShallow(array)?raw:raw.map(toReactive))}function shallowReadArray(arr){return track(arr=toRaw(arr),`iterate`,ARRAY_ITERATE_KEY),arr}var arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,toReactive)},concat(...args){return reactiveReadArray(this).concat(...args.map(x=>isArray$2(x)?reactiveReadArray(x):x))},entries(){return iterator(this,`entries`,value=>(value[1]=toReactive(value[1]),value))},every(fn,thisArg){return apply(this,`every`,fn,thisArg,void 0,arguments)},filter(fn,thisArg){return apply(this,`filter`,fn,thisArg,v=>v.map(toReactive),arguments)},find(fn,thisArg){return apply(this,`find`,fn,thisArg,toReactive,arguments)},findIndex(fn,thisArg){return apply(this,`findIndex`,fn,thisArg,void 0,arguments)},findLast(fn,thisArg){return apply(this,`findLast`,fn,thisArg,toReactive,arguments)},findLastIndex(fn,thisArg){return apply(this,`findLastIndex`,fn,thisArg,void 0,arguments)},forEach(fn,thisArg){return apply(this,`forEach`,fn,thisArg,void 0,arguments)},includes(...args){return searchProxy(this,`includes`,args)},indexOf(...args){return searchProxy(this,`indexOf`,args)},join(separator){return reactiveReadArray(this).join(separator)},lastIndexOf(...args){return searchProxy(this,`lastIndexOf`,args)},map(fn,thisArg){return apply(this,`map`,fn,thisArg,void 0,arguments)},pop(){return noTracking(this,`pop`)},push(...args){return noTracking(this,`push`,args)},reduce(fn,...args){return reduce(this,`reduce`,fn,args)},reduceRight(fn,...args){return reduce(this,`reduceRight`,fn,args)},shift(){return noTracking(this,`shift`)},some(fn,thisArg){return apply(this,`some`,fn,thisArg,void 0,arguments)},splice(...args){return noTracking(this,`splice`,args)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(comparer){return reactiveReadArray(this).toSorted(comparer)},toSpliced(...args){return reactiveReadArray(this).toSpliced(...args)},unshift(...args){return noTracking(this,`unshift`,args)},values(){return iterator(this,`values`,toReactive)}};function iterator(self$1,method,wrapValue){let arr=shallowReadArray(self$1),iter=arr[method]();return arr!==self$1&&!isShallow(self$1)&&(iter._next=iter.next,iter.next=()=>{let result=iter._next();return result.done||(result.value=wrapValue(result.value)),result}),iter}var arrayProto=Array.prototype;function apply(self$1,method,fn,thisArg,wrappedRetFn,args){let arr=shallowReadArray(self$1),needsWrap=arr!==self$1&&!isShallow(self$1),methodFn=arr[method];if(methodFn!==arrayProto[method]){let result2=methodFn.apply(self$1,args);return needsWrap?toReactive(result2):result2}let wrappedFn=fn;arr!==self$1&&(needsWrap?wrappedFn=function(item,index){return fn.call(this,toReactive(item),index,self$1)}:fn.length>2&&(wrappedFn=function(item,index){return fn.call(this,item,index,self$1)}));let result=methodFn.call(arr,wrappedFn,thisArg);return needsWrap&&wrappedRetFn?wrappedRetFn(result):result}function reduce(self$1,method,fn,args){let arr=shallowReadArray(self$1),wrappedFn=fn;return arr!==self$1&&(isShallow(self$1)?fn.length>3&&(wrappedFn=function(acc,item,index){return fn.call(this,acc,item,index,self$1)}):wrappedFn=function(acc,item,index){return fn.call(this,acc,toReactive(item),index,self$1)}),arr[method](wrappedFn,...args)}function searchProxy(self$1,method,args){let arr=toRaw(self$1);track(arr,`iterate`,ARRAY_ITERATE_KEY);let res=arr[method](...args);return(res===-1||res===!1)&&isProxy(args[0])?(args[0]=toRaw(args[0]),arr[method](...args)):res}function noTracking(self$1,method,args=[]){pauseTracking(),startBatch();let res=toRaw(self$1)[method].apply(self$1,args);return endBatch(),resetTracking(),res}var isNonTrackableKeys=makeMap(`__proto__,__v_isRef,__isVue`),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(key=>key!==`arguments`&&key!==`caller`).map(key=>Symbol[key]).filter(isSymbol));function hasOwnProperty$1(key){isSymbol(key)||(key=String(key));let obj=toRaw(this);return track(obj,`has`,key),obj.hasOwnProperty(key)}var BaseReactiveHandler=class{constructor(_isReadonly=!1,_isShallow=!1){this._isReadonly=_isReadonly,this._isShallow=_isShallow}get(target,key,receiver){if(key===`__v_skip`)return target.__v_skip;let isReadonly2=this._isReadonly,isShallow2=this._isShallow;if(key===`__v_isReactive`)return!isReadonly2;if(key===`__v_isReadonly`)return isReadonly2;if(key===`__v_isShallow`)return isShallow2;if(key===`__v_raw`)return receiver===(isReadonly2?isShallow2?shallowReadonlyMap:readonlyMap:isShallow2?shallowReactiveMap:reactiveMap).get(target)||Object.getPrototypeOf(target)===Object.getPrototypeOf(receiver)?target:void 0;let targetIsArray=isArray$2(target);if(!isReadonly2){let fn;if(targetIsArray&&(fn=arrayInstrumentations[key]))return fn;if(key===`hasOwnProperty`)return hasOwnProperty$1}let res=Reflect.get(target,key,isRef(target)?target:receiver);if((isSymbol(key)?builtInSymbols.has(key):isNonTrackableKeys(key))||(isReadonly2||track(target,`get`,key),isShallow2))return res;if(isRef(res)){let value=targetIsArray&&isIntegerKey(key)?res:res.value;return isReadonly2&&isObject$1(value)?readonly(value):value}return isObject$1(res)?isReadonly2?readonly(res):reactive(res):res}},MutableReactiveHandler=class extends BaseReactiveHandler{constructor(isShallow2=!1){super(!1,isShallow2)}set(target,key,value,receiver){let oldValue=target[key];if(!this._isShallow){let isOldValueReadonly=isReadonly(oldValue);if(!isShallow(value)&&!isReadonly(value)&&(oldValue=toRaw(oldValue),value=toRaw(value)),!isArray$2(target)&&isRef(oldValue)&&!isRef(value))return isOldValueReadonly||(oldValue.value=value),!0}let hadKey=isArray$2(target)&&isIntegerKey(key)?Number(key)value,getProto=v=>Reflect.getPrototypeOf(v);function createIterableMethod(method,isReadonly2,isShallow2){return function(...args){let target=this.__v_raw,rawTarget=toRaw(target),targetIsMap=isMap(rawTarget),isPair=method===`entries`||method===Symbol.iterator&&targetIsMap,isKeyOnly=method===`keys`&&targetIsMap,innerIterator=target[method](...args),wrap=isShallow2?toShallow:isReadonly2?toReadonly:toReactive;return!isReadonly2&&track(rawTarget,`iterate`,isKeyOnly?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){let{value,done}=innerIterator.next();return done?{value,done}:{value:isPair?[wrap(value[0]),wrap(value[1])]:wrap(value),done}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(type){return function(...args){return type===`delete`?!1:type===`clear`?void 0:this}}function createInstrumentations(readonly$1,shallow){let instrumentations={get(key){let target=this.__v_raw,rawTarget=toRaw(target),rawKey=toRaw(key);readonly$1||(hasChanged(key,rawKey)&&track(rawTarget,`get`,key),track(rawTarget,`get`,rawKey));let{has:has$1}=getProto(rawTarget),wrap=shallow?toShallow:readonly$1?toReadonly:toReactive;if(has$1.call(rawTarget,key))return wrap(target.get(key));if(has$1.call(rawTarget,rawKey))return wrap(target.get(rawKey));target!==rawTarget&&target.get(key)},get size(){let target=this.__v_raw;return!readonly$1&&track(toRaw(target),`iterate`,ITERATE_KEY),target.size},has(key){let target=this.__v_raw,rawTarget=toRaw(target),rawKey=toRaw(key);return readonly$1||(hasChanged(key,rawKey)&&track(rawTarget,`has`,key),track(rawTarget,`has`,rawKey)),key===rawKey?target.has(key):target.has(key)||target.has(rawKey)},forEach(callback,thisArg){let observed$2=this,target=observed$2.__v_raw,rawTarget=toRaw(target),wrap=shallow?toShallow:readonly$1?toReadonly:toReactive;return!readonly$1&&track(rawTarget,`iterate`,ITERATE_KEY),target.forEach((value,key)=>callback.call(thisArg,wrap(value),wrap(key),observed$2))}};return extend(instrumentations,readonly$1?{add:createReadonlyMethod(`add`),set:createReadonlyMethod(`set`),delete:createReadonlyMethod(`delete`),clear:createReadonlyMethod(`clear`)}:{add(value){!shallow&&!isShallow(value)&&!isReadonly(value)&&(value=toRaw(value));let target=toRaw(this);return getProto(target).has.call(target,value)||(target.add(value),trigger$1(target,`add`,value,value)),this},set(key,value){!shallow&&!isShallow(value)&&!isReadonly(value)&&(value=toRaw(value));let target=toRaw(this),{has:has$1,get}=getProto(target),hadKey=has$1.call(target,key);hadKey||=(key=toRaw(key),has$1.call(target,key));let oldValue=get.call(target,key);return target.set(key,value),hadKey?hasChanged(value,oldValue)&&trigger$1(target,`set`,key,value,oldValue):trigger$1(target,`add`,key,value),this},delete(key){let target=toRaw(this),{has:has$1,get}=getProto(target),hadKey=has$1.call(target,key);hadKey||=(key=toRaw(key),has$1.call(target,key));let oldValue=get?get.call(target,key):void 0,result=target.delete(key);return hadKey&&trigger$1(target,`delete`,key,void 0,oldValue),result},clear(){let target=toRaw(this),hadItems=target.size!==0,oldTarget,result=target.clear();return hadItems&&trigger$1(target,`clear`,void 0,void 0,void 0),result}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(method=>{instrumentations[method]=createIterableMethod(method,readonly$1,shallow)}),instrumentations}function createInstrumentationGetter(isReadonly2,shallow){let instrumentations=createInstrumentations(isReadonly2,shallow);return(target,key,receiver)=>key===`__v_isReactive`?!isReadonly2:key===`__v_isReadonly`?isReadonly2:key===`__v_raw`?target:Reflect.get(hasOwn$1(instrumentations,key)&&key in target?instrumentations:target,key,receiver)}var mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(rawType){switch(rawType){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function getTargetType(value){return value.__v_skip||!Object.isExtensible(value)?0:targetTypeMap(toRawType(value))}function reactive(target){return isReadonly(target)?target:createReactiveObject(target,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(target){return createReactiveObject(target,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(target){return createReactiveObject(target,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(target){return createReactiveObject(target,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(target,isReadonly2,baseHandlers,collectionHandlers,proxyMap){if(!isObject$1(target)||target.__v_raw&&!(isReadonly2&&target.__v_isReactive))return target;let targetType=getTargetType(target);if(targetType===0)return target;let existingProxy=proxyMap.get(target);if(existingProxy)return existingProxy;let proxy=new Proxy(target,targetType===2?collectionHandlers:baseHandlers);return proxyMap.set(target,proxy),proxy}function isReactive(value){return isReadonly(value)?isReactive(value.__v_raw):!!(value&&value.__v_isReactive)}function isReadonly(value){return!!(value&&value.__v_isReadonly)}function isShallow(value){return!!(value&&value.__v_isShallow)}function isProxy(value){return value?!!value.__v_raw:!1}function toRaw(observed$2){let raw=observed$2&&observed$2.__v_raw;return raw?toRaw(raw):observed$2}function markRaw(value){return!hasOwn$1(value,`__v_skip`)&&Object.isExtensible(value)&&def(value,`__v_skip`,!0),value}var toReactive=value=>isObject$1(value)?reactive(value):value,toReadonly=value=>isObject$1(value)?readonly(value):value;function isRef(r){return r?r.__v_isRef===!0:!1}function ref(value){return createRef(value,!1)}function shallowRef(value){return createRef(value,!0)}function createRef(rawValue,shallow){return isRef(rawValue)?rawValue:new RefImpl(rawValue,shallow)}var RefImpl=class{constructor(value,isShallow2){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=isShallow2?value:toRaw(value),this._value=isShallow2?value:toReactive(value),this.__v_isShallow=isShallow2}get value(){return this.dep.track(),this._value}set value(newValue){let oldValue=this._rawValue,useDirectValue=this.__v_isShallow||isShallow(newValue)||isReadonly(newValue);newValue=useDirectValue?newValue:toRaw(newValue),hasChanged(newValue,oldValue)&&(this._rawValue=newValue,this._value=useDirectValue?newValue:toReactive(newValue),this.dep.trigger())}};function triggerRef(ref2){ref2.dep&&ref2.dep.trigger()}function unref(ref2){return isRef(ref2)?ref2.value:ref2}function toValue$1(source){return isFunction$1(source)?source():unref(source)}var shallowUnwrapHandlers={get:(target,key,receiver)=>key===`__v_raw`?target:unref(Reflect.get(target,key,receiver)),set:(target,key,value,receiver)=>{let oldValue=target[key];return isRef(oldValue)&&!isRef(value)?(oldValue.value=value,!0):Reflect.set(target,key,value,receiver)}};function proxyRefs(objectWithRefs){return isReactive(objectWithRefs)?objectWithRefs:new Proxy(objectWithRefs,shallowUnwrapHandlers)}var CustomRefImpl=class{constructor(factory){this.__v_isRef=!0,this._value=void 0;let dep=this.dep=new Dep,{get,set}=factory(dep.track.bind(dep),dep.trigger.bind(dep));this._get=get,this._set=set}get value(){return this._value=this._get()}set value(newVal){this._set(newVal)}};function customRef(factory){return new CustomRefImpl(factory)}function toRefs(object){let ret=isArray$2(object)?Array(object.length):{};for(let key in object)ret[key]=propertyToRef(object,key);return ret}var ObjectRefImpl=class{constructor(_object,_key,_defaultValue){this._object=_object,this._key=_key,this._defaultValue=_defaultValue,this.__v_isRef=!0,this._value=void 0}get value(){let val=this._object[this._key];return this._value=val===void 0?this._defaultValue:val}set value(newVal){this._object[this._key]=newVal}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}},GetterRefImpl=class{constructor(_getter){this._getter=_getter,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function toRef(source,key,defaultValue){return isRef(source)?source:isFunction$1(source)?new GetterRefImpl(source):isObject$1(source)&&arguments.length>1?propertyToRef(source,key,defaultValue):ref(source)}function propertyToRef(source,key,defaultValue){let val=source[key];return isRef(val)?val:new ObjectRefImpl(source,key,defaultValue)}var ComputedRefImpl=class{constructor(fn,setter,isSSR){this.fn=fn,this.setter=setter,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!setter,this.isSSR=isSSR}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){let link=this.dep.track();return refreshComputed(this),link&&(link.version=this.dep.version),this._value}set value(newValue){this.setter&&this.setter(newValue)}};function computed$1(getterOrOptions,debugOptions,isSSR=!1){let getter,setter;return isFunction$1(getterOrOptions)?getter=getterOrOptions:(getter=getterOrOptions.get,setter=getterOrOptions.set),new ComputedRefImpl(getter,setter,isSSR)}var TrackOpTypes={GET:`get`,HAS:`has`,ITERATE:`iterate`},TriggerOpTypes={SET:`set`,ADD:`add`,DELETE:`delete`,CLEAR:`clear`},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap,activeWatcher=void 0;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(cleanupFn,failSilently=!1,owner=activeWatcher){if(owner){let cleanups=cleanupMap.get(owner);cleanups||cleanupMap.set(owner,cleanups=[]),cleanups.push(cleanupFn)}}function watch$1(source,cb,options=EMPTY_OBJ){let{immediate,deep,once,scheduler,augmentJob,call}=options,reactiveGetter=source2=>deep?source2:isShallow(source2)||deep===!1||deep===0?traverse(source2,1):traverse(source2),effect$1,getter,cleanup,boundCleanup,forceTrigger=!1,isMultiSource=!1;if(isRef(source)?(getter=()=>source.value,forceTrigger=isShallow(source)):isReactive(source)?(getter=()=>reactiveGetter(source),forceTrigger=!0):isArray$2(source)?(isMultiSource=!0,forceTrigger=source.some(s=>isReactive(s)||isShallow(s)),getter=()=>source.map(s=>{if(isRef(s))return s.value;if(isReactive(s))return reactiveGetter(s);if(isFunction$1(s))return call?call(s,2):s()})):getter=isFunction$1(source)?cb?call?()=>call(source,2):source:()=>{if(cleanup){pauseTracking();try{cleanup()}finally{resetTracking()}}let currentEffect=activeWatcher;activeWatcher=effect$1;try{return call?call(source,3,[boundCleanup]):source(boundCleanup)}finally{activeWatcher=currentEffect}}:NOOP,cb&&deep){let baseGetter=getter,depth=deep===!0?1/0:deep;getter=()=>traverse(baseGetter(),depth)}let scope$1=getCurrentScope(),watchHandle=()=>{effect$1.stop(),scope$1&&scope$1.active&&remove$2(scope$1.effects,effect$1)};if(once&&cb){let _cb=cb;cb=(...args)=>{_cb(...args),watchHandle()}}let oldValue=isMultiSource?Array(source.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE,job=immediateFirstRun=>{if(!(!(effect$1.flags&1)||!effect$1.dirty&&!immediateFirstRun))if(cb){let newValue=effect$1.run();if(deep||forceTrigger||(isMultiSource?newValue.some((v,i)=>hasChanged(v,oldValue[i])):hasChanged(newValue,oldValue))){cleanup&&cleanup();let currentWatcher=activeWatcher;activeWatcher=effect$1;try{let args=[newValue,oldValue===INITIAL_WATCHER_VALUE?void 0:isMultiSource&&oldValue[0]===INITIAL_WATCHER_VALUE?[]:oldValue,boundCleanup];oldValue=newValue,call?call(cb,3,args):cb(...args)}finally{activeWatcher=currentWatcher}}}else effect$1.run()};return augmentJob&&augmentJob(job),effect$1=new ReactiveEffect(getter),effect$1.scheduler=scheduler?()=>scheduler(job,!1):job,boundCleanup=fn=>onWatcherCleanup(fn,!1,effect$1),cleanup=effect$1.onStop=()=>{let cleanups=cleanupMap.get(effect$1);if(cleanups){if(call)call(cleanups,4);else for(let cleanup2 of cleanups)cleanup2();cleanupMap.delete(effect$1)}},cb?immediate?job(!0):oldValue=effect$1.run():scheduler?scheduler(job.bind(null,!0),!0):effect$1.run(),watchHandle.pause=effect$1.pause.bind(effect$1),watchHandle.resume=effect$1.resume.bind(effect$1),watchHandle.stop=watchHandle,watchHandle}function traverse(value,depth=1/0,seen$3){if(depth<=0||!isObject$1(value)||value.__v_skip||(seen$3||=new Map,(seen$3.get(value)||0)>=depth))return value;if(seen$3.set(value,depth),depth--,isRef(value))traverse(value.value,depth,seen$3);else if(isArray$2(value))for(let i=0;i{traverse(v,depth,seen$3)});else if(isPlainObject$2(value)){for(let key in value)traverse(value[key],depth,seen$3);for(let key of Object.getOwnPropertySymbols(value))Object.prototype.propertyIsEnumerable.call(value,key)&&traverse(value[key],depth,seen$3)}return value}var stack$1=[];function pushWarningContext(vnode){stack$1.push(vnode)}function popWarningContext(){stack$1.pop()}function assertNumber(val,type){}var ErrorCodes={SETUP_FUNCTION:0,0:`SETUP_FUNCTION`,RENDER_FUNCTION:1,1:`RENDER_FUNCTION`,NATIVE_EVENT_HANDLER:5,5:`NATIVE_EVENT_HANDLER`,COMPONENT_EVENT_HANDLER:6,6:`COMPONENT_EVENT_HANDLER`,VNODE_HOOK:7,7:`VNODE_HOOK`,DIRECTIVE_HOOK:8,8:`DIRECTIVE_HOOK`,TRANSITION_HOOK:9,9:`TRANSITION_HOOK`,APP_ERROR_HANDLER:10,10:`APP_ERROR_HANDLER`,APP_WARN_HANDLER:11,11:`APP_WARN_HANDLER`,FUNCTION_REF:12,12:`FUNCTION_REF`,ASYNC_COMPONENT_LOADER:13,13:`ASYNC_COMPONENT_LOADER`,SCHEDULER:14,14:`SCHEDULER`,COMPONENT_UPDATE:15,15:`COMPONENT_UPDATE`,APP_UNMOUNT_CLEANUP:16,16:`APP_UNMOUNT_CLEANUP`},ErrorTypeStrings$1={sp:`serverPrefetch hook`,bc:`beforeCreate hook`,c:`created hook`,bm:`beforeMount hook`,m:`mounted hook`,bu:`beforeUpdate hook`,u:`updated`,bum:`beforeUnmount hook`,um:`unmounted hook`,a:`activated hook`,da:`deactivated hook`,ec:`errorCaptured hook`,rtc:`renderTracked hook`,rtg:`renderTriggered hook`,0:`setup function`,1:`render function`,2:`watcher getter`,3:`watcher callback`,4:`watcher cleanup function`,5:`native event handler`,6:`component event handler`,7:`vnode hook`,8:`directive hook`,9:`transition hook`,10:`app errorHandler`,11:`app warnHandler`,12:`ref function`,13:`async component loader`,14:`scheduler flush`,15:`component update`,16:`app unmount cleanup function`};function callWithErrorHandling(fn,instance$1,type,args){try{return args?fn(...args):fn()}catch(err){handleError(err,instance$1,type)}}function callWithAsyncErrorHandling(fn,instance$1,type,args){if(isFunction$1(fn)){let res=callWithErrorHandling(fn,instance$1,type,args);return res&&isPromise$1(res)&&res.catch(err=>{handleError(err,instance$1,type)}),res}if(isArray$2(fn)){let values=[];for(let i=0;i>>1,middleJob=queue$1[middle],middleJobId=getId(middleJob);middleJobId=getId(lastJob)?queue$1.push(job):queue$1.splice(findInsertionIndex$1(jobId),0,job),job.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||=resolvedPromise.then(flushJobs)}function queuePostFlushCb(cb){isArray$2(cb)?pendingPostFlushCbs.push(...cb):activePostFlushCbs&&cb.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,cb):cb.flags&1||(pendingPostFlushCbs.push(cb),cb.flags|=1),queueFlush()}function flushPreFlushCbs(instance$1,seen$3,i=flushIndex+1){for(;igetId(a$1)-getId(b));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...deduped);return}for(activePostFlushCbs=deduped,postFlushIndex=0;postFlushIndexjob.id==null?job.flags&2?-1:1/0:job.id;function flushJobs(seen$3){try{for(flushIndex=0;flushIndexdevtools$1.emit(event,...args)),buffer=[]):typeof window<`u`&&window.HTMLElement&&!(window.navigator?.userAgent)?.includes(`jsdom`)?((target.__VUE_DEVTOOLS_HOOK_REPLAY__=target.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(newHook=>{setDevtoolsHook$1(newHook,target)}),setTimeout(()=>{devtools$1||(target.__VUE_DEVTOOLS_HOOK_REPLAY__=null,buffer=[])},3e3)):buffer=[]}var currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(instance$1){let prev=currentRenderingInstance;return currentRenderingInstance=instance$1,currentScopeId=instance$1&&instance$1.type.__scopeId||null,prev}function pushScopeId(id){currentScopeId=id}function popScopeId(){currentScopeId=null}var withScopeId=_id=>withCtx;function withCtx(fn,ctx=currentRenderingInstance,isNonScopedSlot){if(!ctx||fn._n)return fn;let renderFnWithContext=(...args)=>{renderFnWithContext._d&&setBlockTracking(-1);let prevInstance=setCurrentRenderingInstance(ctx),res;try{res=fn(...args)}finally{setCurrentRenderingInstance(prevInstance),renderFnWithContext._d&&setBlockTracking(1)}return res};return renderFnWithContext._n=!0,renderFnWithContext._c=!0,renderFnWithContext._d=!0,renderFnWithContext}function withDirectives(vnode,directives){if(currentRenderingInstance===null)return vnode;let instance$1=getComponentPublicInstance(currentRenderingInstance),bindings=vnode.dirs||=[];for(let i=0;itype.__isTeleport,isTeleportDisabled=props=>props&&(props.disabled||props.disabled===``),isTeleportDeferred=props=>props&&(props.defer||props.defer===``),isTargetSVG=target=>typeof SVGElement<`u`&&target instanceof SVGElement,isTargetMathML=target=>typeof MathMLElement==`function`&&target instanceof MathMLElement,resolveTarget=(props,select)=>{let targetSelector=props&&props.to;return isString$1(targetSelector)?select?select(targetSelector):null:targetSelector},TeleportImpl={name:`Teleport`,__isTeleport:!0,process(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,internals){let{mc:mountChildren,pc:patchChildren,pbc:patchBlockChildren,o:{insert,querySelector,createText,createComment}}=internals,disabled=isTeleportDisabled(n2.props),{shapeFlag,children,dynamicChildren}=n2;if(n1==null){let placeholder=n2.el=createText(``),mainAnchor=n2.anchor=createText(``);insert(placeholder,container,anchor),insert(mainAnchor,container,anchor);let mount=(container2,anchor2)=>{shapeFlag&16&&mountChildren(children,container2,anchor2,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)},mountToTarget=()=>{let target=n2.target=resolveTarget(n2.props,querySelector),targetAnchor=prepareAnchor(target,n2,createText,insert);target&&(namespace!==`svg`&&isTargetSVG(target)?namespace=`svg`:namespace!==`mathml`&&isTargetMathML(target)&&(namespace=`mathml`),parentComponent&&parentComponent.isCE&&(parentComponent.ce._teleportTargets||(parentComponent.ce._teleportTargets=new Set)).add(target),disabled||(mount(target,targetAnchor),updateCssVars(n2,!1)))};disabled&&(mount(container,mainAnchor),updateCssVars(n2,!0)),isTeleportDeferred(n2.props)?(n2.el.__isMounted=!1,queuePostRenderEffect(()=>{mountToTarget(),delete n2.el.__isMounted},parentSuspense)):mountToTarget()}else{if(isTeleportDeferred(n2.props)&&n1.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,internals)},parentSuspense);return}n2.el=n1.el,n2.targetStart=n1.targetStart;let mainAnchor=n2.anchor=n1.anchor,target=n2.target=n1.target,targetAnchor=n2.targetAnchor=n1.targetAnchor,wasDisabled=isTeleportDisabled(n1.props),currentContainer=wasDisabled?container:target,currentAnchor=wasDisabled?mainAnchor:targetAnchor;if(namespace===`svg`||isTargetSVG(target)?namespace=`svg`:(namespace===`mathml`||isTargetMathML(target))&&(namespace=`mathml`),dynamicChildren?(patchBlockChildren(n1.dynamicChildren,dynamicChildren,currentContainer,parentComponent,parentSuspense,namespace,slotScopeIds),traverseStaticChildren(n1,n2,!0)):optimized||patchChildren(n1,n2,currentContainer,currentAnchor,parentComponent,parentSuspense,namespace,slotScopeIds,!1),disabled)wasDisabled?n2.props&&n1.props&&n2.props.to!==n1.props.to&&(n2.props.to=n1.props.to):moveTeleport(n2,container,mainAnchor,internals,1);else if((n2.props&&n2.props.to)!==(n1.props&&n1.props.to)){let nextTarget=n2.target=resolveTarget(n2.props,querySelector);nextTarget&&moveTeleport(n2,nextTarget,null,internals,0)}else wasDisabled&&moveTeleport(n2,target,targetAnchor,internals,1);updateCssVars(n2,disabled)}},remove(vnode,parentComponent,parentSuspense,{um:unmount,o:{remove:hostRemove}},doRemove){let{shapeFlag,children,anchor,targetStart,targetAnchor,target,props}=vnode;if(target&&(hostRemove(targetStart),hostRemove(targetAnchor)),doRemove&&hostRemove(anchor),shapeFlag&16){let shouldRemove=doRemove||!isTeleportDisabled(props);for(let i=0;i{state.isMounted=!0}),onBeforeUnmount(()=>{state.isUnmounting=!0}),state}var TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=instance$1=>{let subTree=instance$1.subTree;return subTree.component?recursiveGetSubtree(subTree.component):subTree},BaseTransitionImpl={name:`BaseTransition`,props:BaseTransitionPropsValidators,setup(props,{slots}){let instance$1=getCurrentInstance(),state=useTransitionState();return()=>{let children=slots.default&&getTransitionRawChildren(slots.default(),!0);if(!children||!children.length)return;let child=findNonCommentChild(children),rawProps=toRaw(props),{mode}=rawProps;if(state.isLeaving)return emptyPlaceholder(child);let innerChild=getInnerChild$1(child);if(!innerChild)return emptyPlaceholder(child);let enterHooks=resolveTransitionHooks(innerChild,rawProps,state,instance$1,hooks=>enterHooks=hooks);innerChild.type!==Comment&&setTransitionHooks(innerChild,enterHooks);let oldInnerChild=instance$1.subTree&&getInnerChild$1(instance$1.subTree);if(oldInnerChild&&oldInnerChild.type!==Comment&&!isSameVNodeType(oldInnerChild,innerChild)&&recursiveGetSubtree(instance$1).type!==Comment){let leavingHooks=resolveTransitionHooks(oldInnerChild,rawProps,state,instance$1);if(setTransitionHooks(oldInnerChild,leavingHooks),mode===`out-in`&&innerChild.type!==Comment)return state.isLeaving=!0,leavingHooks.afterLeave=()=>{state.isLeaving=!1,instance$1.job.flags&8||instance$1.update(),delete leavingHooks.afterLeave,oldInnerChild=void 0},emptyPlaceholder(child);mode===`in-out`&&innerChild.type!==Comment?leavingHooks.delayLeave=(el,earlyRemove,delayedLeave)=>{let leavingVNodesCache=getLeavingNodesForType(state,oldInnerChild);leavingVNodesCache[String(oldInnerChild.key)]=oldInnerChild,el[leaveCbKey]=()=>{earlyRemove(),el[leaveCbKey]=void 0,delete enterHooks.delayedLeave,oldInnerChild=void 0},enterHooks.delayedLeave=()=>{delayedLeave(),delete enterHooks.delayedLeave,oldInnerChild=void 0}}:oldInnerChild=void 0}else oldInnerChild&&=void 0;return child}}};function findNonCommentChild(children){let child=children[0];if(children.length>1){for(let c of children)if(c.type!==Comment){child=c;break}}return child}var BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(state,vnode){let{leavingVNodes}=state,leavingVNodesCache=leavingVNodes.get(vnode.type);return leavingVNodesCache||(leavingVNodesCache=Object.create(null),leavingVNodes.set(vnode.type,leavingVNodesCache)),leavingVNodesCache}function resolveTransitionHooks(vnode,props,state,instance$1,postClone){let{appear,mode,persisted=!1,onBeforeEnter,onEnter,onAfterEnter,onEnterCancelled,onBeforeLeave,onLeave,onAfterLeave,onLeaveCancelled,onBeforeAppear,onAppear,onAfterAppear,onAppearCancelled}=props,key=String(vnode.key),leavingVNodesCache=getLeavingNodesForType(state,vnode),callHook$2=(hook,args)=>{hook&&callWithAsyncErrorHandling(hook,instance$1,9,args)},callAsyncHook=(hook,args)=>{let done=args[1];callHook$2(hook,args),isArray$2(hook)?hook.every(hook2=>hook2.length<=1)&&done():hook.length<=1&&done()},hooks={mode,persisted,beforeEnter(el){let hook=onBeforeEnter;if(!state.isMounted)if(appear)hook=onBeforeAppear||onBeforeEnter;else return;el[leaveCbKey]&&el[leaveCbKey](!0);let leavingVNode=leavingVNodesCache[key];leavingVNode&&isSameVNodeType(vnode,leavingVNode)&&leavingVNode.el[leaveCbKey]&&leavingVNode.el[leaveCbKey](),callHook$2(hook,[el])},enter(el){let hook=onEnter,afterHook=onAfterEnter,cancelHook=onEnterCancelled;if(!state.isMounted)if(appear)hook=onAppear||onEnter,afterHook=onAfterAppear||onAfterEnter,cancelHook=onAppearCancelled||onEnterCancelled;else return;let called=!1,done=el[enterCbKey$1]=cancelled=>{called||(called=!0,callHook$2(cancelled?cancelHook:afterHook,[el]),hooks.delayedLeave&&hooks.delayedLeave(),el[enterCbKey$1]=void 0)};hook?callAsyncHook(hook,[el,done]):done()},leave(el,remove$3){let key2=String(vnode.key);if(el[enterCbKey$1]&&el[enterCbKey$1](!0),state.isUnmounting)return remove$3();callHook$2(onBeforeLeave,[el]);let called=!1,done=el[leaveCbKey]=cancelled=>{called||(called=!0,remove$3(),callHook$2(cancelled?onLeaveCancelled:onAfterLeave,[el]),el[leaveCbKey]=void 0,leavingVNodesCache[key2]===vnode&&delete leavingVNodesCache[key2])};leavingVNodesCache[key2]=vnode,onLeave?callAsyncHook(onLeave,[el,done]):done()},clone(vnode2){let hooks2=resolveTransitionHooks(vnode2,props,state,instance$1,postClone);return postClone&&postClone(hooks2),hooks2}};return hooks}function emptyPlaceholder(vnode){if(isKeepAlive(vnode))return vnode=cloneVNode(vnode),vnode.children=null,vnode}function getInnerChild$1(vnode){if(!isKeepAlive(vnode))return isTeleport(vnode.type)&&vnode.children?findNonCommentChild(vnode.children):vnode;if(vnode.component)return vnode.component.subTree;let{shapeFlag,children}=vnode;if(children){if(shapeFlag&16)return children[0];if(shapeFlag&32&&isFunction$1(children.default))return children.default()}}function setTransitionHooks(vnode,hooks){vnode.shapeFlag&6&&vnode.component?(vnode.transition=hooks,setTransitionHooks(vnode.component.subTree,hooks)):vnode.shapeFlag&128?(vnode.ssContent.transition=hooks.clone(vnode.ssContent),vnode.ssFallback.transition=hooks.clone(vnode.ssFallback)):vnode.transition=hooks}function getTransitionRawChildren(children,keepComment=!1,parentKey){let ret=[],keyedFragmentCount=0;for(let i=0;i1)for(let i=0;iextend({name:options.name},extraOptions,{setup:options}))():options}function useId(){let i=getCurrentInstance();return i?(i.appContext.config.idPrefix||`v`)+`-`+i.ids[0]+ i.ids[1]++:``}function markAsyncBoundary(instance$1){instance$1.ids=[instance$1.ids[0]+ instance$1.ids[2]+++`-`,0,0]}function useTemplateRef(key){let i=getCurrentInstance(),r=shallowRef(null);if(i){let refs=i.refs===EMPTY_OBJ?i.refs={}:i.refs;Object.defineProperty(refs,key,{enumerable:!0,get:()=>r.value,set:val=>r.value=val})}return r}var pendingSetRefMap=new WeakMap;function setRef(rawRef,oldRawRef,parentSuspense,vnode,isUnmount=!1){if(isArray$2(rawRef)){rawRef.forEach((r,i)=>setRef(r,oldRawRef&&(isArray$2(oldRawRef)?oldRawRef[i]:oldRawRef),parentSuspense,vnode,isUnmount));return}if(isAsyncWrapper(vnode)&&!isUnmount){vnode.shapeFlag&512&&vnode.type.__asyncResolved&&vnode.component.subTree.component&&setRef(rawRef,oldRawRef,parentSuspense,vnode.component.subTree);return}let refValue=vnode.shapeFlag&4?getComponentPublicInstance(vnode.component):vnode.el,value=isUnmount?null:refValue,{i:owner,r:ref$1}=rawRef,oldRef=oldRawRef&&oldRawRef.r,refs=owner.refs===EMPTY_OBJ?owner.refs={}:owner.refs,setupState=owner.setupState,rawSetupState=toRaw(setupState),canSetSetupRef=setupState===EMPTY_OBJ?NO:key=>hasOwn$1(rawSetupState,key),canSetRef=ref2=>!0;if(oldRef!=null&&oldRef!==ref$1){if(invalidatePendingSetRef(oldRawRef),isString$1(oldRef))refs[oldRef]=null,canSetSetupRef(oldRef)&&(setupState[oldRef]=null);else if(isRef(oldRef)){canSetRef(oldRef)&&(oldRef.value=null);let oldRawRefAtom=oldRawRef;oldRawRefAtom.k&&(refs[oldRawRefAtom.k]=null)}}if(isFunction$1(ref$1))callWithErrorHandling(ref$1,owner,12,[value,refs]);else{let _isString=isString$1(ref$1),_isRef=isRef(ref$1);if(_isString||_isRef){let doSet=()=>{if(rawRef.f){let existing=_isString?canSetSetupRef(ref$1)?setupState[ref$1]:refs[ref$1]:canSetRef(ref$1)||!rawRef.k?ref$1.value:refs[rawRef.k];if(isUnmount)isArray$2(existing)&&remove$2(existing,refValue);else if(isArray$2(existing))existing.includes(refValue)||existing.push(refValue);else if(_isString)refs[ref$1]=[refValue],canSetSetupRef(ref$1)&&(setupState[ref$1]=refs[ref$1]);else{let newVal=[refValue];canSetRef(ref$1)&&(ref$1.value=newVal),rawRef.k&&(refs[rawRef.k]=newVal)}}else _isString?(refs[ref$1]=value,canSetSetupRef(ref$1)&&(setupState[ref$1]=value)):_isRef&&(canSetRef(ref$1)&&(ref$1.value=value),rawRef.k&&(refs[rawRef.k]=value))};if(value){let job=()=>{doSet(),pendingSetRefMap.delete(rawRef)};job.id=-1,pendingSetRefMap.set(rawRef,job),queuePostRenderEffect(job,parentSuspense)}else invalidatePendingSetRef(rawRef),doSet()}}}function invalidatePendingSetRef(rawRef){let pendingSetRef=pendingSetRefMap.get(rawRef);pendingSetRef&&(pendingSetRef.flags|=8,pendingSetRefMap.delete(rawRef))}var hasLoggedMismatchError=!1,logMismatchError=()=>{hasLoggedMismatchError||=(console.error(`Hydration completed but contains mismatches.`),!0)},isSVGContainer=container=>container.namespaceURI.includes(`svg`)&&container.tagName!==`foreignObject`,isMathMLContainer=container=>container.namespaceURI.includes(`MathML`),getContainerType=container=>{if(container.nodeType===1){if(isSVGContainer(container))return`svg`;if(isMathMLContainer(container))return`mathml`}},isComment=node=>node.nodeType===8;function createHydrationFunctions(rendererInternals){let{mt:mountComponent,p:patch,o:{patchProp:patchProp$1,createText,nextSibling,parentNode,remove:remove$3,insert,createComment}}=rendererInternals,hydrate$1=(vnode,container)=>{if(!container.hasChildNodes()){patch(null,vnode,container),flushPostFlushCbs(),container._vnode=vnode;return}hydrateNode(container.firstChild,vnode,null,null,null),flushPostFlushCbs(),container._vnode=vnode},hydrateNode=(node,vnode,parentComponent,parentSuspense,slotScopeIds,optimized=!1)=>{optimized||=!!vnode.dynamicChildren;let isFragmentStart=isComment(node)&&node.data===`[`,onMismatch=()=>handleMismatch(node,vnode,parentComponent,parentSuspense,slotScopeIds,isFragmentStart),{type,ref:ref$1,shapeFlag,patchFlag}=vnode,domType=node.nodeType;vnode.el=node,patchFlag===-2&&(optimized=!1,vnode.dynamicChildren=null);let nextNode=null;switch(type){case Text:domType===3?(node.data!==vnode.children&&(logMismatchError(),node.data=vnode.children),nextNode=nextSibling(node)):vnode.children===``?(insert(vnode.el=createText(``),parentNode(node),node),nextNode=node):nextNode=onMismatch();break;case Comment:isTemplateNode$1(node)?(nextNode=nextSibling(node),replaceNode(vnode.el=node.content.firstChild,node,parentComponent)):nextNode=domType!==8||isFragmentStart?onMismatch():nextSibling(node);break;case Static:if(isFragmentStart&&(node=nextSibling(node),domType=node.nodeType),domType===1||domType===3){nextNode=node;let needToAdoptContent=!vnode.children.length;for(let i=0;i{optimized||=!!vnode.dynamicChildren;let{type,props,patchFlag,shapeFlag,dirs,transition}=vnode,forcePatch=type===`input`||type===`option`;if(forcePatch||patchFlag!==-1){dirs&&invokeDirectiveHook(vnode,null,parentComponent,`created`);let needCallTransitionHooks=!1;if(isTemplateNode$1(el)){needCallTransitionHooks=needTransition(null,transition)&&parentComponent&&parentComponent.vnode.props&&parentComponent.vnode.props.appear;let content=el.content.firstChild;if(needCallTransitionHooks){let cls=content.getAttribute(`class`);cls&&(content.$cls=cls),transition.beforeEnter(content)}replaceNode(content,el,parentComponent),vnode.el=el=content}if(shapeFlag&16&&!(props&&(props.innerHTML||props.textContent))){let next=hydrateChildren(el.firstChild,vnode,el,parentComponent,parentSuspense,slotScopeIds,optimized);for(;next;){isMismatchAllowed(el,1)||logMismatchError();let cur=next;next=next.nextSibling,remove$3(cur)}}else if(shapeFlag&8){let clientText=vnode.children;clientText[0]===`
`&&(el.tagName===`PRE`||el.tagName===`TEXTAREA`)&&(clientText=clientText.slice(1)),el.textContent!==clientText&&(isMismatchAllowed(el,0)||logMismatchError(),el.textContent=vnode.children)}if(props){if(forcePatch||!optimized||patchFlag&48){let isCustomElement=el.tagName.includes(`-`);for(let key in props)(forcePatch&&(key.endsWith(`value`)||key===`indeterminate`)||isOn(key)&&!isReservedProp(key)||key[0]===`.`||isCustomElement)&&patchProp$1(el,key,null,props[key],void 0,parentComponent)}else if(props.onClick)patchProp$1(el,`onClick`,null,props.onClick,void 0,parentComponent);else if(patchFlag&4&&isReactive(props.style))for(let key in props.style)props.style[key]}let vnodeHooks;(vnodeHooks=props&&props.onVnodeBeforeMount)&&invokeVNodeHook(vnodeHooks,parentComponent,vnode),dirs&&invokeDirectiveHook(vnode,null,parentComponent,`beforeMount`),((vnodeHooks=props&&props.onVnodeMounted)||dirs||needCallTransitionHooks)&&queueEffectWithSuspense(()=>{vnodeHooks&&invokeVNodeHook(vnodeHooks,parentComponent,vnode),needCallTransitionHooks&&transition.enter(el),dirs&&invokeDirectiveHook(vnode,null,parentComponent,`mounted`)},parentSuspense)}return el.nextSibling},hydrateChildren=(node,parentVNode,container,parentComponent,parentSuspense,slotScopeIds,optimized)=>{optimized||=!!parentVNode.dynamicChildren;let children=parentVNode.children,l=children.length;for(let i=0;i{let{slotScopeIds:fragmentSlotScopeIds}=vnode;fragmentSlotScopeIds&&(slotScopeIds=slotScopeIds?slotScopeIds.concat(fragmentSlotScopeIds):fragmentSlotScopeIds);let container=parentNode(node),next=hydrateChildren(nextSibling(node),vnode,container,parentComponent,parentSuspense,slotScopeIds,optimized);return next&&isComment(next)&&next.data===`]`?nextSibling(vnode.anchor=next):(logMismatchError(),insert(vnode.anchor=createComment(`]`),container,next),next)},handleMismatch=(node,vnode,parentComponent,parentSuspense,slotScopeIds,isFragment)=>{if(isMismatchAllowed(node.parentElement,1)||logMismatchError(),vnode.el=null,isFragment){let end=locateClosingAnchor(node);for(;;){let next2=nextSibling(node);if(next2&&next2!==end)remove$3(next2);else break}}let next=nextSibling(node),container=parentNode(node);return remove$3(node),patch(null,vnode,container,next,parentComponent,parentSuspense,getContainerType(container),slotScopeIds),parentComponent&&(parentComponent.vnode.el=vnode.el,updateHOCHostEl(parentComponent,vnode.el)),next},locateClosingAnchor=(node,open$1=`[`,close=`]`)=>{let match=0;for(;node;)if(node=nextSibling(node),node&&isComment(node)&&(node.data===open$1&&match++,node.data===close)){if(match===0)return nextSibling(node);match--}return node},replaceNode=(newNode,oldNode,parentComponent)=>{let parentNode2=oldNode.parentNode;parentNode2&&parentNode2.replaceChild(newNode,oldNode);let parent=parentComponent;for(;parent;)parent.vnode.el===oldNode&&(parent.vnode.el=parent.subTree.el=newNode),parent=parent.parent},isTemplateNode$1=node=>node.nodeType===1&&node.tagName===`TEMPLATE`;return[hydrate$1,hydrateNode]}var allowMismatchAttr=`data-allow-mismatch`,MismatchTypeString={0:`text`,1:`children`,2:`class`,3:`style`,4:`attribute`};function isMismatchAllowed(el,allowedType){if(allowedType===0||allowedType===1)for(;el&&!el.hasAttribute(allowMismatchAttr);)el=el.parentElement;let allowedAttr=el&&el.getAttribute(allowMismatchAttr);if(allowedAttr==null)return!1;if(allowedAttr===``)return!0;{let list=allowedAttr.split(`,`);return allowedType===0&&list.includes(`children`)?!0:list.includes(MismatchTypeString[allowedType])}}var requestIdleCallback=getGlobalThis$1().requestIdleCallback||(cb=>setTimeout(cb,1)),cancelIdleCallback=getGlobalThis$1().cancelIdleCallback||(id=>clearTimeout(id)),hydrateOnIdle=(timeout=1e4)=>hydrate$1=>{let id=requestIdleCallback(hydrate$1,{timeout});return()=>cancelIdleCallback(id)};function elementIsVisibleInViewport(el){let{top,left,bottom,right}=el.getBoundingClientRect(),{innerHeight,innerWidth}=window;return(top>0&&top0&&bottom0&&left0&&right(hydrate$1,forEach)=>{let ob=new IntersectionObserver(entries=>{for(let e of entries)if(e.isIntersecting){ob.disconnect(),hydrate$1();break}},opts);return forEach(el=>{if(el instanceof Element){if(elementIsVisibleInViewport(el))return hydrate$1(),ob.disconnect(),!1;ob.observe(el)}}),()=>ob.disconnect()},hydrateOnMediaQuery=query=>hydrate$1=>{if(query){let mql=matchMedia(query);if(mql.matches)hydrate$1();else return mql.addEventListener(`change`,hydrate$1,{once:!0}),()=>mql.removeEventListener(`change`,hydrate$1)}},hydrateOnInteraction=(interactions=[])=>(hydrate$1,forEach)=>{isString$1(interactions)&&(interactions=[interactions]);let hasHydrated=!1,doHydrate=e=>{hasHydrated||(hasHydrated=!0,teardown(),hydrate$1(),e.target.dispatchEvent(new e.constructor(e.type,e)))},teardown=()=>{forEach(el=>{for(let i of interactions)el.removeEventListener(i,doHydrate)})};return forEach(el=>{for(let i of interactions)el.addEventListener(i,doHydrate,{once:!0})}),teardown};function forEachElement(node,cb){if(isComment(node)&&node.data===`[`){let depth=1,next=node.nextSibling;for(;next;){if(next.nodeType===1){if(cb(next)===!1)break}else if(isComment(next))if(next.data===`]`){if(--depth===0)break}else next.data===`[`&&depth++;next=next.nextSibling}}else cb(node)}var isAsyncWrapper=i=>!!i.type.__asyncLoader;function defineAsyncComponent(source){isFunction$1(source)&&(source={loader:source});let{loader,loadingComponent,errorComponent,delay=200,hydrate:hydrateStrategy,timeout,suspensible=!0,onError:userOnError}=source,pendingRequest=null,resolvedComp,retries=0,retry=()=>(retries++,pendingRequest=null,load()),load=()=>{let thisRequest;return pendingRequest||(thisRequest=pendingRequest=loader().catch(err=>{if(err=err instanceof Error?err:Error(String(err)),userOnError)return new Promise((resolve$1,reject)=>{userOnError(err,()=>resolve$1(retry()),()=>reject(err),retries+1)});throw err}).then(comp=>thisRequest!==pendingRequest&&pendingRequest?pendingRequest:(comp&&(comp.__esModule||comp[Symbol.toStringTag]===`Module`)&&(comp=comp.default),resolvedComp=comp,comp)))};return defineComponent({name:`AsyncComponentWrapper`,__asyncLoader:load,__asyncHydrate(el,instance$1,hydrate$1){let patched=!1;(instance$1.bu||=[]).push(()=>patched=!0);let performHydrate=()=>{patched||hydrate$1()},doHydrate=hydrateStrategy?()=>{let teardown=hydrateStrategy(performHydrate,cb=>forEachElement(el,cb));teardown&&(instance$1.bum||=[]).push(teardown)}:performHydrate;resolvedComp?doHydrate():load().then(()=>!instance$1.isUnmounted&&doHydrate())},get __asyncResolved(){return resolvedComp},setup(){let instance$1=currentInstance;if(markAsyncBoundary(instance$1),resolvedComp)return()=>createInnerComp(resolvedComp,instance$1);let onError=err=>{pendingRequest=null,handleError(err,instance$1,13,!errorComponent)};if(suspensible&&instance$1.suspense||isInSSRComponentSetup)return load().then(comp=>()=>createInnerComp(comp,instance$1)).catch(err=>(onError(err),()=>errorComponent?createVNode(errorComponent,{error:err}):null));let loaded=ref(!1),error=ref(),delayed=ref(!!delay);return delay&&setTimeout(()=>{delayed.value=!1},delay),timeout!=null&&setTimeout(()=>{if(!loaded.value&&!error.value){let err=Error(`Async component timed out after ${timeout}ms.`);onError(err),error.value=err}},timeout),load().then(()=>{loaded.value=!0,instance$1.parent&&isKeepAlive(instance$1.parent.vnode)&&instance$1.parent.update()}).catch(err=>{onError(err),error.value=err}),()=>{if(loaded.value&&resolvedComp)return createInnerComp(resolvedComp,instance$1);if(error.value&&errorComponent)return createVNode(errorComponent,{error:error.value});if(loadingComponent&&!delayed.value)return createVNode(loadingComponent)}}})}function createInnerComp(comp,parent){let{ref:ref2,props,children,ce}=parent.vnode,vnode=createVNode(comp,props,children);return vnode.ref=ref2,vnode.ce=ce,delete parent.vnode.ce,vnode}var isKeepAlive=vnode=>vnode.type.__isKeepAlive,KeepAlive={name:`KeepAlive`,__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(props,{slots}){let instance$1=getCurrentInstance(),sharedContext$1=instance$1.ctx;if(!sharedContext$1.renderer)return()=>{let children=slots.default&&slots.default();return children&&children.length===1?children[0]:children};let cache$1=new Map,keys=new Set,current=null,parentSuspense=instance$1.suspense,{renderer:{p:patch,m:move,um:_unmount,o:{createElement}}}=sharedContext$1,storageContainer=createElement(`div`);sharedContext$1.activate=(vnode,container,anchor,namespace,optimized)=>{let instance2=vnode.component;move(vnode,container,anchor,0,parentSuspense),patch(instance2.vnode,vnode,container,anchor,instance2,parentSuspense,namespace,vnode.slotScopeIds,optimized),queuePostRenderEffect(()=>{instance2.isDeactivated=!1,instance2.a&&invokeArrayFns(instance2.a);let vnodeHook=vnode.props&&vnode.props.onVnodeMounted;vnodeHook&&invokeVNodeHook(vnodeHook,instance2.parent,vnode)},parentSuspense)},sharedContext$1.deactivate=vnode=>{let instance2=vnode.component;invalidateMount(instance2.m),invalidateMount(instance2.a),move(vnode,storageContainer,null,1,parentSuspense),queuePostRenderEffect(()=>{instance2.da&&invokeArrayFns(instance2.da);let vnodeHook=vnode.props&&vnode.props.onVnodeUnmounted;vnodeHook&&invokeVNodeHook(vnodeHook,instance2.parent,vnode),instance2.isDeactivated=!0},parentSuspense)};function unmount(vnode){resetShapeFlag(vnode),_unmount(vnode,instance$1,parentSuspense,!0)}function pruneCache(filter){cache$1.forEach((vnode,key)=>{let name=getComponentName(vnode.type);name&&!filter(name)&&pruneCacheEntry(key)})}function pruneCacheEntry(key){let cached=cache$1.get(key);cached&&(!current||!isSameVNodeType(cached,current))?unmount(cached):current&&resetShapeFlag(current),cache$1.delete(key),keys.delete(key)}watch(()=>[props.include,props.exclude],([include,exclude])=>{include&&pruneCache(name=>matches(include,name)),exclude&&pruneCache(name=>!matches(exclude,name))},{flush:`post`,deep:!0});let pendingCacheKey=null,cacheSubtree=()=>{pendingCacheKey!=null&&(isSuspense(instance$1.subTree.type)?queuePostRenderEffect(()=>{cache$1.set(pendingCacheKey,getInnerChild(instance$1.subTree))},instance$1.subTree.suspense):cache$1.set(pendingCacheKey,getInnerChild(instance$1.subTree)))};return onMounted(cacheSubtree),onUpdated(cacheSubtree),onBeforeUnmount(()=>{cache$1.forEach(cached=>{let{subTree,suspense}=instance$1,vnode=getInnerChild(subTree);if(cached.type===vnode.type&&cached.key===vnode.key){resetShapeFlag(vnode);let da=vnode.component.da;da&&queuePostRenderEffect(da,suspense);return}unmount(cached)})}),()=>{if(pendingCacheKey=null,!slots.default)return current=null;let children=slots.default(),rawVNode=children[0];if(children.length>1)return current=null,children;if(!isVNode(rawVNode)||!(rawVNode.shapeFlag&4)&&!(rawVNode.shapeFlag&128))return current=null,rawVNode;let vnode=getInnerChild(rawVNode);if(vnode.type===Comment)return current=null,vnode;let comp=vnode.type,name=getComponentName(isAsyncWrapper(vnode)?vnode.type.__asyncResolved||{}:comp),{include,exclude,max:max$1}=props;if(include&&(!name||!matches(include,name))||exclude&&name&&matches(exclude,name))return vnode.shapeFlag&=-257,current=vnode,rawVNode;let key=vnode.key==null?comp:vnode.key,cachedVNode=cache$1.get(key);return vnode.el&&(vnode=cloneVNode(vnode),rawVNode.shapeFlag&128&&(rawVNode.ssContent=vnode)),pendingCacheKey=key,cachedVNode?(vnode.el=cachedVNode.el,vnode.component=cachedVNode.component,vnode.transition&&setTransitionHooks(vnode,vnode.transition),vnode.shapeFlag|=512,keys.delete(key),keys.add(key)):(keys.add(key),max$1&&keys.size>parseInt(max$1,10)&&pruneCacheEntry(keys.values().next().value)),vnode.shapeFlag|=256,current=vnode,isSuspense(rawVNode.type)?rawVNode:vnode}}};function matches(pattern,name){return isArray$2(pattern)?pattern.some(p$1=>matches(p$1,name)):isString$1(pattern)?pattern.split(`,`).includes(name):isRegExp$1(pattern)?(pattern.lastIndex=0,pattern.test(name)):!1}function onActivated(hook,target){registerKeepAliveHook(hook,`a`,target)}function onDeactivated(hook,target){registerKeepAliveHook(hook,`da`,target)}function registerKeepAliveHook(hook,type,target=currentInstance){let wrappedHook=hook.__wdc||=()=>{let current=target;for(;current;){if(current.isDeactivated)return;current=current.parent}return hook()};if(injectHook(type,wrappedHook,target),target){let current=target.parent;for(;current&¤t.parent;)isKeepAlive(current.parent.vnode)&&injectToKeepAliveRoot(wrappedHook,type,target,current),current=current.parent}}function injectToKeepAliveRoot(hook,type,target,keepAliveRoot){let injected=injectHook(type,hook,keepAliveRoot,!0);onUnmounted(()=>{remove$2(keepAliveRoot[type],injected)},target)}function resetShapeFlag(vnode){vnode.shapeFlag&=-257,vnode.shapeFlag&=-513}function getInnerChild(vnode){return vnode.shapeFlag&128?vnode.ssContent:vnode}function injectHook(type,hook,target=currentInstance,prepend=!1){if(target){let hooks=target[type]||(target[type]=[]),wrappedHook=hook.__weh||=(...args)=>{pauseTracking();let reset$1=setCurrentInstance(target),res=callWithAsyncErrorHandling(hook,target,type,args);return reset$1(),resetTracking(),res};return prepend?hooks.unshift(wrappedHook):hooks.push(wrappedHook),wrappedHook}}var createHook=lifecycle=>(hook,target=currentInstance)=>{(!isInSSRComponentSetup||lifecycle===`sp`)&&injectHook(lifecycle,(...args)=>hook(...args),target)},onBeforeMount=createHook(`bm`),onMounted=createHook(`m`),onBeforeUpdate=createHook(`bu`),onUpdated=createHook(`u`),onBeforeUnmount=createHook(`bum`),onUnmounted=createHook(`um`),onServerPrefetch=createHook(`sp`),onRenderTriggered=createHook(`rtg`),onRenderTracked=createHook(`rtc`);function onErrorCaptured(hook,target=currentInstance){injectHook(`ec`,hook,target)}var COMPONENTS=`components`,DIRECTIVES=`directives`;function resolveComponent(name,maybeSelfReference){return resolveAsset(COMPONENTS,name,!0,maybeSelfReference)||name}var NULL_DYNAMIC_COMPONENT=Symbol.for(`v-ndc`);function resolveDynamicComponent(component){return isString$1(component)?resolveAsset(COMPONENTS,component,!1)||component:component||NULL_DYNAMIC_COMPONENT}function resolveDirective(name){return resolveAsset(DIRECTIVES,name)}function resolveAsset(type,name,warnMissing=!0,maybeSelfReference=!1){let instance$1=currentRenderingInstance||currentInstance;if(instance$1){let Component=instance$1.type;if(type===COMPONENTS){let selfName=getComponentName(Component,!1);if(selfName&&(selfName===name||selfName===camelize(name)||selfName===capitalize$1(camelize(name))))return Component}let res=resolve(instance$1[type]||Component[type],name)||resolve(instance$1.appContext[type],name);return!res&&maybeSelfReference?Component:res}}function resolve(registry$1,name){return registry$1&&(registry$1[name]||registry$1[camelize(name)]||registry$1[capitalize$1(camelize(name))])}function renderList(source,renderItem,cache$1,index){let ret,cached=cache$1&&cache$1[index],sourceIsArray=isArray$2(source);if(sourceIsArray||isString$1(source)){let sourceIsReactiveArray=sourceIsArray&&isReactive(source),needsWrap=!1,isReadonlySource=!1;sourceIsReactiveArray&&(needsWrap=!isShallow(source),isReadonlySource=isReadonly(source),source=shallowReadArray(source)),ret=Array(source.length);for(let i=0,l=source.length;irenderItem(item,i,void 0,cached&&cached[i]));else{let keys=Object.keys(source);ret=Array(keys.length);for(let i=0,l=keys.length;i{let res=slot.fn(...args);return res&&(res.key=slot.key),res}:slot.fn)}return slots}function renderSlot(slots,name,props={},fallback,noSlotted){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&¤tRenderingInstance.parent.ce){let hasProps=Object.keys(props).length>0;return name!==`default`&&(props.name=name),openBlock(),createBlock(Fragment,null,[createVNode(`slot`,props,fallback&&fallback())],hasProps?-2:64)}let slot=slots[name];slot&&slot._c&&(slot._d=!1),openBlock();let validSlotContent=slot&&ensureValidVNode(slot(props)),slotKey=props.key||validSlotContent&&validSlotContent.key,rendered=createBlock(Fragment,{key:(slotKey&&!isSymbol(slotKey)?slotKey:`_${name}`)+(!validSlotContent&&fallback?`_fb`:``)},validSlotContent||(fallback?fallback():[]),validSlotContent&&slots._===1?64:-2);return!noSlotted&&rendered.scopeId&&(rendered.slotScopeIds=[rendered.scopeId+`-s`]),slot&&slot._c&&(slot._d=!0),rendered}function ensureValidVNode(vnodes){return vnodes.some(child=>isVNode(child)?!(child.type===Comment||child.type===Fragment&&!ensureValidVNode(child.children)):!0)?vnodes:null}function toHandlers(obj,preserveCaseIfNecessary){let ret={};for(let key in obj)ret[preserveCaseIfNecessary&&/[A-Z]/.test(key)?`on:${key}`:toHandlerKey(key)]=obj[key];return ret}var getPublicInstance=i=>i?isStatefulComponent(i)?getComponentPublicInstance(i):getPublicInstance(i.parent):null,publicPropertiesMap=extend(Object.create(null),{$:i=>i,$el:i=>i.vnode.el,$data:i=>i.data,$props:i=>i.props,$attrs:i=>i.attrs,$slots:i=>i.slots,$refs:i=>i.refs,$parent:i=>getPublicInstance(i.parent),$root:i=>getPublicInstance(i.root),$host:i=>i.ce,$emit:i=>i.emit,$options:i=>resolveMergedOptions(i),$forceUpdate:i=>i.f||=()=>{queueJob(i.update)},$nextTick:i=>i.n||=nextTick.bind(i.proxy),$watch:i=>instanceWatch.bind(i)}),hasSetupBinding=(state,key)=>state!==EMPTY_OBJ&&!state.__isScriptSetup&&hasOwn$1(state,key),PublicInstanceProxyHandlers={get({_:instance$1},key){if(key===`__v_skip`)return!0;let{ctx,setupState,data,props,accessCache,type,appContext}=instance$1,normalizedProps;if(key[0]!==`$`){let n=accessCache[key];if(n!==void 0)switch(n){case 1:return setupState[key];case 2:return data[key];case 4:return ctx[key];case 3:return props[key]}else if(hasSetupBinding(setupState,key))return accessCache[key]=1,setupState[key];else if(data!==EMPTY_OBJ&&hasOwn$1(data,key))return accessCache[key]=2,data[key];else if((normalizedProps=instance$1.propsOptions[0])&&hasOwn$1(normalizedProps,key))return accessCache[key]=3,props[key];else if(ctx!==EMPTY_OBJ&&hasOwn$1(ctx,key))return accessCache[key]=4,ctx[key];else shouldCacheAccess&&(accessCache[key]=0)}let publicGetter=publicPropertiesMap[key],cssModule,globalProperties;if(publicGetter)return key===`$attrs`&&track(instance$1.attrs,`get`,``),publicGetter(instance$1);if((cssModule=type.__cssModules)&&(cssModule=cssModule[key]))return cssModule;if(ctx!==EMPTY_OBJ&&hasOwn$1(ctx,key))return accessCache[key]=4,ctx[key];if(globalProperties=appContext.config.globalProperties,hasOwn$1(globalProperties,key))return globalProperties[key]},set({_:instance$1},key,value){let{data,setupState,ctx}=instance$1;return hasSetupBinding(setupState,key)?(setupState[key]=value,!0):data!==EMPTY_OBJ&&hasOwn$1(data,key)?(data[key]=value,!0):hasOwn$1(instance$1.props,key)||key[0]===`$`&&key.slice(1)in instance$1?!1:(ctx[key]=value,!0)},has({_:{data,setupState,accessCache,ctx,appContext,propsOptions,type}},key){let normalizedProps,cssModules;return!!(accessCache[key]||data!==EMPTY_OBJ&&key[0]!==`$`&&hasOwn$1(data,key)||hasSetupBinding(setupState,key)||(normalizedProps=propsOptions[0])&&hasOwn$1(normalizedProps,key)||hasOwn$1(ctx,key)||hasOwn$1(publicPropertiesMap,key)||hasOwn$1(appContext.config.globalProperties,key)||(cssModules=type.__cssModules)&&cssModules[key])},defineProperty(target,key,descriptor){return descriptor.get==null?hasOwn$1(descriptor,`value`)&&this.set(target,key,descriptor.value,null):target._.accessCache[key]=0,Reflect.defineProperty(target,key,descriptor)}},RuntimeCompiledPublicInstanceProxyHandlers=extend({},PublicInstanceProxyHandlers,{get(target,key){if(key!==Symbol.unscopables)return PublicInstanceProxyHandlers.get(target,key,target)},has(_,key){return key[0]!==`_`&&!isGloballyAllowed(key)}});function defineProps(){return null}function defineEmits(){return null}function defineExpose(exposed){}function defineOptions(options){}function defineSlots(){return null}function defineModel(){}function withDefaults(props,defaults){return null}function useSlots(){return getContext(`useSlots`).slots}function useAttrs(){return getContext(`useAttrs`).attrs}function getContext(calledFunctionName){let i=getCurrentInstance();return i.setupContext||=createSetupContext(i)}function normalizePropsOrEmits(props){return isArray$2(props)?props.reduce((normalized,p$1)=>(normalized[p$1]=null,normalized),{}):props}function mergeDefaults(raw,defaults){let props=normalizePropsOrEmits(raw);for(let key in defaults){if(key.startsWith(`__skip`))continue;let opt=props[key];opt?isArray$2(opt)||isFunction$1(opt)?opt=props[key]={type:opt,default:defaults[key]}:opt.default=defaults[key]:opt===null&&(opt=props[key]={default:defaults[key]}),opt&&defaults[`__skip_${key}`]&&(opt.skipFactory=!0)}return props}function mergeModels(a$1,b){return!a$1||!b?a$1||b:isArray$2(a$1)&&isArray$2(b)?a$1.concat(b):extend({},normalizePropsOrEmits(a$1),normalizePropsOrEmits(b))}function createPropsRestProxy(props,excludedKeys){let ret={};for(let key in props)excludedKeys.includes(key)||Object.defineProperty(ret,key,{enumerable:!0,get:()=>props[key]});return ret}function withAsyncContext(getAwaitable){let ctx=getCurrentInstance(),awaitable=getAwaitable();return unsetCurrentInstance(),isPromise$1(awaitable)&&(awaitable=awaitable.catch(e=>{throw setCurrentInstance(ctx),e})),[awaitable,()=>setCurrentInstance(ctx)]}var shouldCacheAccess=!0;function applyOptions$1(instance$1){let options=resolveMergedOptions(instance$1),publicThis=instance$1.proxy,ctx=instance$1.ctx;shouldCacheAccess=!1,options.beforeCreate&&callHook$1(options.beforeCreate,instance$1,`bc`);let{data:dataOptions,computed:computedOptions,methods,watch:watchOptions,provide:provideOptions,inject:injectOptions,created,beforeMount:beforeMount$1,mounted:mounted$2,beforeUpdate,updated:updated$2,activated,deactivated,beforeDestroy,beforeUnmount:beforeUnmount$1,destroyed,unmounted:unmounted$1,render:render$1,renderTracked,renderTriggered,errorCaptured,serverPrefetch,expose,inheritAttrs,components,directives,filters}=options,checkDuplicateProperties=null;if(injectOptions&&resolveInjections(injectOptions,ctx,null),methods)for(let key in methods){let methodHandler=methods[key];isFunction$1(methodHandler)&&(ctx[key]=methodHandler.bind(publicThis))}if(dataOptions){let data=dataOptions.call(publicThis,publicThis);isObject$1(data)&&(instance$1.data=reactive(data))}if(shouldCacheAccess=!0,computedOptions)for(let key in computedOptions){let opt=computedOptions[key],c=computed({get:isFunction$1(opt)?opt.bind(publicThis,publicThis):isFunction$1(opt.get)?opt.get.bind(publicThis,publicThis):NOOP,set:!isFunction$1(opt)&&isFunction$1(opt.set)?opt.set.bind(publicThis):NOOP});Object.defineProperty(ctx,key,{enumerable:!0,configurable:!0,get:()=>c.value,set:v=>c.value=v})}if(watchOptions)for(let key in watchOptions)createWatcher(watchOptions[key],ctx,publicThis,key);if(provideOptions){let provides=isFunction$1(provideOptions)?provideOptions.call(publicThis):provideOptions;Reflect.ownKeys(provides).forEach(key=>{provide(key,provides[key])})}created&&callHook$1(created,instance$1,`c`);function registerLifecycleHook(register,hook){isArray$2(hook)?hook.forEach(_hook=>register(_hook.bind(publicThis))):hook&®ister(hook.bind(publicThis))}if(registerLifecycleHook(onBeforeMount,beforeMount$1),registerLifecycleHook(onMounted,mounted$2),registerLifecycleHook(onBeforeUpdate,beforeUpdate),registerLifecycleHook(onUpdated,updated$2),registerLifecycleHook(onActivated,activated),registerLifecycleHook(onDeactivated,deactivated),registerLifecycleHook(onErrorCaptured,errorCaptured),registerLifecycleHook(onRenderTracked,renderTracked),registerLifecycleHook(onRenderTriggered,renderTriggered),registerLifecycleHook(onBeforeUnmount,beforeUnmount$1),registerLifecycleHook(onUnmounted,unmounted$1),registerLifecycleHook(onServerPrefetch,serverPrefetch),isArray$2(expose))if(expose.length){let exposed=instance$1.exposed||={};expose.forEach(key=>{Object.defineProperty(exposed,key,{get:()=>publicThis[key],set:val=>publicThis[key]=val,enumerable:!0})})}else instance$1.exposed||={};render$1&&instance$1.render===NOOP&&(instance$1.render=render$1),inheritAttrs!=null&&(instance$1.inheritAttrs=inheritAttrs),components&&(instance$1.components=components),directives&&(instance$1.directives=directives),serverPrefetch&&markAsyncBoundary(instance$1)}function resolveInjections(injectOptions,ctx,checkDuplicateProperties=NOOP){for(let key in isArray$2(injectOptions)&&(injectOptions=normalizeInject(injectOptions)),injectOptions){let opt=injectOptions[key],injected;injected=isObject$1(opt)?`default`in opt?inject(opt.from||key,opt.default,!0):inject(opt.from||key):inject(opt),isRef(injected)?Object.defineProperty(ctx,key,{enumerable:!0,configurable:!0,get:()=>injected.value,set:v=>injected.value=v}):ctx[key]=injected}}function callHook$1(hook,instance$1,type){callWithAsyncErrorHandling(isArray$2(hook)?hook.map(h$1=>h$1.bind(instance$1.proxy)):hook.bind(instance$1.proxy),instance$1,type)}function createWatcher(raw,ctx,publicThis,key){let getter=key.includes(`.`)?createPathGetter(publicThis,key):()=>publicThis[key];if(isString$1(raw)){let handler$1=ctx[raw];isFunction$1(handler$1)&&watch(getter,handler$1)}else if(isFunction$1(raw))watch(getter,raw.bind(publicThis));else if(isObject$1(raw))if(isArray$2(raw))raw.forEach(r=>createWatcher(r,ctx,publicThis,key));else{let handler$1=isFunction$1(raw.handler)?raw.handler.bind(publicThis):ctx[raw.handler];isFunction$1(handler$1)&&watch(getter,handler$1,raw)}}function resolveMergedOptions(instance$1){let base=instance$1.type,{mixins,extends:extendsOptions}=base,{mixins:globalMixins,optionsCache:cache$1,config:{optionMergeStrategies}}=instance$1.appContext,cached=cache$1.get(base),resolved;return cached?resolved=cached:!globalMixins.length&&!mixins&&!extendsOptions?resolved=base:(resolved={},globalMixins.length&&globalMixins.forEach(m=>mergeOptions$1(resolved,m,optionMergeStrategies,!0)),mergeOptions$1(resolved,base,optionMergeStrategies)),isObject$1(base)&&cache$1.set(base,resolved),resolved}function mergeOptions$1(to,from,strats,asMixin=!1){let{mixins,extends:extendsOptions}=from;for(let key in extendsOptions&&mergeOptions$1(to,extendsOptions,strats,!0),mixins&&mixins.forEach(m=>mergeOptions$1(to,m,strats,!0)),from)if(!(asMixin&&key===`expose`)){let strat=internalOptionMergeStrats[key]||strats&&strats[key];to[key]=strat?strat(to[key],from[key]):from[key]}return to}var internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray$1,created:mergeAsArray$1,beforeMount:mergeAsArray$1,mounted:mergeAsArray$1,beforeUpdate:mergeAsArray$1,updated:mergeAsArray$1,beforeDestroy:mergeAsArray$1,beforeUnmount:mergeAsArray$1,destroyed:mergeAsArray$1,unmounted:mergeAsArray$1,activated:mergeAsArray$1,deactivated:mergeAsArray$1,errorCaptured:mergeAsArray$1,serverPrefetch:mergeAsArray$1,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(to,from){return from?to?function(){return extend(isFunction$1(to)?to.call(this,this):to,isFunction$1(from)?from.call(this,this):from)}:from:to}function mergeInject(to,from){return mergeObjectOptions(normalizeInject(to),normalizeInject(from))}function normalizeInject(raw){if(isArray$2(raw)){let res={};for(let i=0;i1)return treatDefaultAsFactory&&isFunction$1(defaultValue)?defaultValue.call(instance$1&&instance$1.proxy):defaultValue}}function hasInjectionContext(){return!!(getCurrentInstance()||currentApp)}var internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=obj=>Object.getPrototypeOf(obj)===internalObjectProto;function initProps(instance$1,rawProps,isStateful,isSSR=!1){let props={},attrs=createInternalObject();for(let key in instance$1.propsDefaults=Object.create(null),setFullProps(instance$1,rawProps,props,attrs),instance$1.propsOptions[0])key in props||(props[key]=void 0);isStateful?instance$1.props=isSSR?props:shallowReactive(props):instance$1.type.props?instance$1.props=props:instance$1.props=attrs,instance$1.attrs=attrs}function updateProps(instance$1,rawProps,rawPrevProps,optimized){let{props,attrs,vnode:{patchFlag}}=instance$1,rawCurrentProps=toRaw(props),[options]=instance$1.propsOptions,hasAttrsChanged=!1;if((optimized||patchFlag>0)&&!(patchFlag&16)){if(patchFlag&8){let propsToUpdate=instance$1.vnode.dynamicProps;for(let i=0;i{hasExtends=!0;let[props,keys]=normalizePropsOptions(raw2,appContext,!0);extend(normalized,props),keys&&needCastKeys.push(...keys)};!asMixin&&appContext.mixins.length&&appContext.mixins.forEach(extendProps),comp.extends&&extendProps(comp.extends),comp.mixins&&comp.mixins.forEach(extendProps)}if(!raw&&!hasExtends)return isObject$1(comp)&&cache$1.set(comp,EMPTY_ARR),EMPTY_ARR;if(isArray$2(raw))for(let i=0;ikey===`_`||key===`_ctx`||key===`$stable`,normalizeSlotValue=value=>isArray$2(value)?value.map(normalizeVNode):[normalizeVNode(value)],normalizeSlot$1=(key,rawSlot,ctx)=>{if(rawSlot._n)return rawSlot;let normalized=withCtx((...args)=>normalizeSlotValue(rawSlot(...args)),ctx);return normalized._c=!1,normalized},normalizeObjectSlots=(rawSlots,slots,instance$1)=>{let ctx=rawSlots._ctx;for(let key in rawSlots){if(isInternalKey(key))continue;let value=rawSlots[key];if(isFunction$1(value))slots[key]=normalizeSlot$1(key,value,ctx);else if(value!=null){let normalized=normalizeSlotValue(value);slots[key]=()=>normalized}}},normalizeVNodeSlots=(instance$1,children)=>{let normalized=normalizeSlotValue(children);instance$1.slots.default=()=>normalized},assignSlots=(slots,children,optimized)=>{for(let key in children)(optimized||!isInternalKey(key))&&(slots[key]=children[key])},initSlots=(instance$1,children,optimized)=>{let slots=instance$1.slots=createInternalObject();if(instance$1.vnode.shapeFlag&32){let type=children._;type?(assignSlots(slots,children,optimized),optimized&&def(slots,`_`,type,!0)):normalizeObjectSlots(children,slots)}else children&&normalizeVNodeSlots(instance$1,children)},updateSlots=(instance$1,children,optimized)=>{let{vnode,slots}=instance$1,needDeletionCheck=!0,deletionComparisonTarget=EMPTY_OBJ;if(vnode.shapeFlag&32){let type=children._;type?optimized&&type===1?needDeletionCheck=!1:assignSlots(slots,children,optimized):(needDeletionCheck=!children.$stable,normalizeObjectSlots(children,slots)),deletionComparisonTarget=children}else children&&(normalizeVNodeSlots(instance$1,children),deletionComparisonTarget={default:1});if(needDeletionCheck)for(let key in slots)!isInternalKey(key)&&deletionComparisonTarget[key]==null&&delete slots[key]};function initFeatureFlags$2(){}var queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(options){return baseCreateRenderer(options)}function createHydrationRenderer(options){return baseCreateRenderer(options,createHydrationFunctions)}function baseCreateRenderer(options,createHydrationFns){let target=getGlobalThis$1();target.__VUE__=!0;let{insert:hostInsert,remove:hostRemove,patchProp:hostPatchProp,createElement:hostCreateElement,createText:hostCreateText,createComment:hostCreateComment,setText:hostSetText,setElementText:hostSetElementText,parentNode:hostParentNode,nextSibling:hostNextSibling,setScopeId:hostSetScopeId=NOOP,insertStaticContent:hostInsertStaticContent}=options,patch=(n1,n2,container,anchor=null,parentComponent=null,parentSuspense=null,namespace=void 0,slotScopeIds=null,optimized=!!n2.dynamicChildren)=>{if(n1===n2)return;n1&&!isSameVNodeType(n1,n2)&&(anchor=getNextHostNode(n1),unmount(n1,parentComponent,parentSuspense,!0),n1=null),n2.patchFlag===-2&&(optimized=!1,n2.dynamicChildren=null);let{type,ref:ref$1,shapeFlag}=n2;switch(type){case Text:processText(n1,n2,container,anchor);break;case Comment:processCommentNode(n1,n2,container,anchor);break;case Static:n1??mountStaticNode(n2,container,anchor,namespace);break;case Fragment:processFragment(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized);break;default:shapeFlag&1?processElement(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized):shapeFlag&6?processComponent(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized):(shapeFlag&64||shapeFlag&128)&&type.process(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,internals)}ref$1!=null&&parentComponent?setRef(ref$1,n1&&n1.ref,parentSuspense,n2||n1,!n2):ref$1==null&&n1&&n1.ref!=null&&setRef(n1.ref,null,parentSuspense,n1,!0)},processText=(n1,n2,container,anchor)=>{if(n1==null)hostInsert(n2.el=hostCreateText(n2.children),container,anchor);else{let el=n2.el=n1.el;n2.children!==n1.children&&hostSetText(el,n2.children)}},processCommentNode=(n1,n2,container,anchor)=>{n1==null?hostInsert(n2.el=hostCreateComment(n2.children||``),container,anchor):n2.el=n1.el},mountStaticNode=(n2,container,anchor,namespace)=>{[n2.el,n2.anchor]=hostInsertStaticContent(n2.children,container,anchor,namespace,n2.el,n2.anchor)},moveStaticNode=({el,anchor},container,nextSibling)=>{let next;for(;el&&el!==anchor;)next=hostNextSibling(el),hostInsert(el,container,nextSibling),el=next;hostInsert(anchor,container,nextSibling)},removeStaticNode=({el,anchor})=>{let next;for(;el&&el!==anchor;)next=hostNextSibling(el),hostRemove(el),el=next;hostRemove(anchor)},processElement=(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)=>{n2.type===`svg`?namespace=`svg`:n2.type===`math`&&(namespace=`mathml`),n1==null?mountElement(n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized):patchElement(n1,n2,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)},mountElement=(vnode,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)=>{let el,vnodeHook,{props,shapeFlag,transition,dirs}=vnode;if(el=vnode.el=hostCreateElement(vnode.type,namespace,props&&props.is,props),shapeFlag&8?hostSetElementText(el,vnode.children):shapeFlag&16&&mountChildren(vnode.children,el,null,parentComponent,parentSuspense,resolveChildrenNamespace(vnode,namespace),slotScopeIds,optimized),dirs&&invokeDirectiveHook(vnode,null,parentComponent,`created`),setScopeId(el,vnode,vnode.scopeId,slotScopeIds,parentComponent),props){for(let key in props)key!==`value`&&!isReservedProp(key)&&hostPatchProp(el,key,null,props[key],namespace,parentComponent);`value`in props&&hostPatchProp(el,`value`,null,props.value,namespace),(vnodeHook=props.onVnodeBeforeMount)&&invokeVNodeHook(vnodeHook,parentComponent,vnode)}dirs&&invokeDirectiveHook(vnode,null,parentComponent,`beforeMount`);let needCallTransitionHooks=needTransition(parentSuspense,transition);needCallTransitionHooks&&transition.beforeEnter(el),hostInsert(el,container,anchor),((vnodeHook=props&&props.onVnodeMounted)||needCallTransitionHooks||dirs)&&queuePostRenderEffect(()=>{vnodeHook&&invokeVNodeHook(vnodeHook,parentComponent,vnode),needCallTransitionHooks&&transition.enter(el),dirs&&invokeDirectiveHook(vnode,null,parentComponent,`mounted`)},parentSuspense)},setScopeId=(el,vnode,scopeId,slotScopeIds,parentComponent)=>{if(scopeId&&hostSetScopeId(el,scopeId),slotScopeIds)for(let i=0;i{for(let i=start;i{let el=n2.el=n1.el,{patchFlag,dynamicChildren,dirs}=n2;patchFlag|=n1.patchFlag&16;let oldProps=n1.props||EMPTY_OBJ,newProps=n2.props||EMPTY_OBJ,vnodeHook;if(parentComponent&&toggleRecurse(parentComponent,!1),(vnodeHook=newProps.onVnodeBeforeUpdate)&&invokeVNodeHook(vnodeHook,parentComponent,n2,n1),dirs&&invokeDirectiveHook(n2,n1,parentComponent,`beforeUpdate`),parentComponent&&toggleRecurse(parentComponent,!0),(oldProps.innerHTML&&newProps.innerHTML==null||oldProps.textContent&&newProps.textContent==null)&&hostSetElementText(el,``),dynamicChildren?patchBlockChildren(n1.dynamicChildren,dynamicChildren,el,parentComponent,parentSuspense,resolveChildrenNamespace(n2,namespace),slotScopeIds):optimized||patchChildren(n1,n2,el,null,parentComponent,parentSuspense,resolveChildrenNamespace(n2,namespace),slotScopeIds,!1),patchFlag>0){if(patchFlag&16)patchProps(el,oldProps,newProps,parentComponent,namespace);else if(patchFlag&2&&oldProps.class!==newProps.class&&hostPatchProp(el,`class`,null,newProps.class,namespace),patchFlag&4&&hostPatchProp(el,`style`,oldProps.style,newProps.style,namespace),patchFlag&8){let propsToUpdate=n2.dynamicProps;for(let i=0;i{vnodeHook&&invokeVNodeHook(vnodeHook,parentComponent,n2,n1),dirs&&invokeDirectiveHook(n2,n1,parentComponent,`updated`)},parentSuspense)},patchBlockChildren=(oldChildren,newChildren,fallbackContainer,parentComponent,parentSuspense,namespace,slotScopeIds)=>{for(let i=0;i{if(oldProps!==newProps){if(oldProps!==EMPTY_OBJ)for(let key in oldProps)!isReservedProp(key)&&!(key in newProps)&&hostPatchProp(el,key,oldProps[key],null,namespace,parentComponent);for(let key in newProps){if(isReservedProp(key))continue;let next=newProps[key],prev=oldProps[key];next!==prev&&key!==`value`&&hostPatchProp(el,key,prev,next,namespace,parentComponent)}`value`in newProps&&hostPatchProp(el,`value`,oldProps.value,newProps.value,namespace)}},processFragment=(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)=>{let fragmentStartAnchor=n2.el=n1?n1.el:hostCreateText(``),fragmentEndAnchor=n2.anchor=n1?n1.anchor:hostCreateText(``),{patchFlag,dynamicChildren,slotScopeIds:fragmentSlotScopeIds}=n2;fragmentSlotScopeIds&&(slotScopeIds=slotScopeIds?slotScopeIds.concat(fragmentSlotScopeIds):fragmentSlotScopeIds),n1==null?(hostInsert(fragmentStartAnchor,container,anchor),hostInsert(fragmentEndAnchor,container,anchor),mountChildren(n2.children||[],container,fragmentEndAnchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)):patchFlag>0&&patchFlag&64&&dynamicChildren&&n1.dynamicChildren?(patchBlockChildren(n1.dynamicChildren,dynamicChildren,container,parentComponent,parentSuspense,namespace,slotScopeIds),(n2.key!=null||parentComponent&&n2===parentComponent.subTree)&&traverseStaticChildren(n1,n2,!0)):patchChildren(n1,n2,container,fragmentEndAnchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)},processComponent=(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)=>{n2.slotScopeIds=slotScopeIds,n1==null?n2.shapeFlag&512?parentComponent.ctx.activate(n2,container,anchor,namespace,optimized):mountComponent(n2,container,anchor,parentComponent,parentSuspense,namespace,optimized):updateComponent(n1,n2,optimized)},mountComponent=(initialVNode,container,anchor,parentComponent,parentSuspense,namespace,optimized)=>{let instance$1=initialVNode.component=createComponentInstance(initialVNode,parentComponent,parentSuspense);if(isKeepAlive(initialVNode)&&(instance$1.ctx.renderer=internals),setupComponent(instance$1,!1,optimized),instance$1.asyncDep){if(parentSuspense&&parentSuspense.registerDep(instance$1,setupRenderEffect,optimized),!initialVNode.el){let placeholder=instance$1.subTree=createVNode(Comment);processCommentNode(null,placeholder,container,anchor),initialVNode.placeholder=placeholder.el}}else setupRenderEffect(instance$1,initialVNode,container,anchor,parentSuspense,namespace,optimized)},updateComponent=(n1,n2,optimized)=>{let instance$1=n2.component=n1.component;if(shouldUpdateComponent(n1,n2,optimized))if(instance$1.asyncDep&&!instance$1.asyncResolved){updateComponentPreRender(instance$1,n2,optimized);return}else instance$1.next=n2,instance$1.update();else n2.el=n1.el,instance$1.vnode=n2},setupRenderEffect=(instance$1,initialVNode,container,anchor,parentSuspense,namespace,optimized)=>{let componentUpdateFn=()=>{if(instance$1.isMounted){let{next,bu,u,parent,vnode}=instance$1;{let nonHydratedAsyncRoot=locateNonHydratedAsyncRoot(instance$1);if(nonHydratedAsyncRoot){next&&(next.el=vnode.el,updateComponentPreRender(instance$1,next,optimized)),nonHydratedAsyncRoot.asyncDep.then(()=>{instance$1.isUnmounted||componentUpdateFn()});return}}let originNext=next,vnodeHook;toggleRecurse(instance$1,!1),next?(next.el=vnode.el,updateComponentPreRender(instance$1,next,optimized)):next=vnode,bu&&invokeArrayFns(bu),(vnodeHook=next.props&&next.props.onVnodeBeforeUpdate)&&invokeVNodeHook(vnodeHook,parent,next,vnode),toggleRecurse(instance$1,!0);let nextTree=renderComponentRoot(instance$1),prevTree=instance$1.subTree;instance$1.subTree=nextTree,patch(prevTree,nextTree,hostParentNode(prevTree.el),getNextHostNode(prevTree),instance$1,parentSuspense,namespace),next.el=nextTree.el,originNext===null&&updateHOCHostEl(instance$1,nextTree.el),u&&queuePostRenderEffect(u,parentSuspense),(vnodeHook=next.props&&next.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(vnodeHook,parent,next,vnode),parentSuspense)}else{let vnodeHook,{el,props}=initialVNode,{bm,m,parent,root,type}=instance$1,isAsyncWrapperVNode=isAsyncWrapper(initialVNode);if(toggleRecurse(instance$1,!1),bm&&invokeArrayFns(bm),!isAsyncWrapperVNode&&(vnodeHook=props&&props.onVnodeBeforeMount)&&invokeVNodeHook(vnodeHook,parent,initialVNode),toggleRecurse(instance$1,!0),el&&hydrateNode){let hydrateSubTree=()=>{instance$1.subTree=renderComponentRoot(instance$1),hydrateNode(el,instance$1.subTree,instance$1,parentSuspense,null)};isAsyncWrapperVNode&&type.__asyncHydrate?type.__asyncHydrate(el,instance$1,hydrateSubTree):hydrateSubTree()}else{root.ce&&root.ce._def.shadowRoot!==!1&&root.ce._injectChildStyle(type);let subTree=instance$1.subTree=renderComponentRoot(instance$1);patch(null,subTree,container,anchor,instance$1,parentSuspense,namespace),initialVNode.el=subTree.el}if(m&&queuePostRenderEffect(m,parentSuspense),!isAsyncWrapperVNode&&(vnodeHook=props&&props.onVnodeMounted)){let scopedInitialVNode=initialVNode;queuePostRenderEffect(()=>invokeVNodeHook(vnodeHook,parent,scopedInitialVNode),parentSuspense)}(initialVNode.shapeFlag&256||parent&&isAsyncWrapper(parent.vnode)&&parent.vnode.shapeFlag&256)&&instance$1.a&&queuePostRenderEffect(instance$1.a,parentSuspense),instance$1.isMounted=!0,initialVNode=container=anchor=null}};instance$1.scope.on();let effect$1=instance$1.effect=new ReactiveEffect(componentUpdateFn);instance$1.scope.off();let update$6=instance$1.update=effect$1.run.bind(effect$1),job=instance$1.job=effect$1.runIfDirty.bind(effect$1);job.i=instance$1,job.id=instance$1.uid,effect$1.scheduler=()=>queueJob(job),toggleRecurse(instance$1,!0),update$6()},updateComponentPreRender=(instance$1,nextVNode,optimized)=>{nextVNode.component=instance$1;let prevProps=instance$1.vnode.props;instance$1.vnode=nextVNode,instance$1.next=null,updateProps(instance$1,nextVNode.props,prevProps,optimized),updateSlots(instance$1,nextVNode.children,optimized),pauseTracking(),flushPreFlushCbs(instance$1),resetTracking()},patchChildren=(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized=!1)=>{let c1=n1&&n1.children,prevShapeFlag=n1?n1.shapeFlag:0,c2=n2.children,{patchFlag,shapeFlag}=n2;if(patchFlag>0){if(patchFlag&128){patchKeyedChildren(c1,c2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized);return}else if(patchFlag&256){patchUnkeyedChildren(c1,c2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized);return}}shapeFlag&8?(prevShapeFlag&16&&unmountChildren(c1,parentComponent,parentSuspense),c2!==c1&&hostSetElementText(container,c2)):prevShapeFlag&16?shapeFlag&16?patchKeyedChildren(c1,c2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized):unmountChildren(c1,parentComponent,parentSuspense,!0):(prevShapeFlag&8&&hostSetElementText(container,``),shapeFlag&16&&mountChildren(c2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized))},patchUnkeyedChildren=(c1,c2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)=>{c1||=EMPTY_ARR,c2||=EMPTY_ARR;let oldLength=c1.length,newLength=c2.length,commonLength=Math.min(oldLength,newLength),i;for(i=0;inewLength?unmountChildren(c1,parentComponent,parentSuspense,!0,!1,commonLength):mountChildren(c2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,commonLength)},patchKeyedChildren=(c1,c2,container,parentAnchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized)=>{let i=0,l2=c2.length,e1=c1.length-1,e2=l2-1;for(;i<=e1&&i<=e2;){let n1=c1[i],n2=c2[i]=optimized?cloneIfMounted(c2[i]):normalizeVNode(c2[i]);if(isSameVNodeType(n1,n2))patch(n1,n2,container,null,parentComponent,parentSuspense,namespace,slotScopeIds,optimized);else break;i++}for(;i<=e1&&i<=e2;){let n1=c1[e1],n2=c2[e2]=optimized?cloneIfMounted(c2[e2]):normalizeVNode(c2[e2]);if(isSameVNodeType(n1,n2))patch(n1,n2,container,null,parentComponent,parentSuspense,namespace,slotScopeIds,optimized);else break;e1--,e2--}if(i>e1){if(i<=e2){let nextPos=e2+1,anchor=nextPose2)for(;i<=e1;)unmount(c1[i],parentComponent,parentSuspense,!0),i++;else{let s1=i,s2=i,keyToNewIndexMap=new Map;for(i=s2;i<=e2;i++){let nextChild=c2[i]=optimized?cloneIfMounted(c2[i]):normalizeVNode(c2[i]);nextChild.key!=null&&keyToNewIndexMap.set(nextChild.key,i)}let j,patched=0,toBePatched=e2-s2+1,moved=!1,maxNewIndexSoFar=0,newIndexToOldIndexMap=Array(toBePatched);for(i=0;i=toBePatched){unmount(prevChild,parentComponent,parentSuspense,!0);continue}let newIndex;if(prevChild.key!=null)newIndex=keyToNewIndexMap.get(prevChild.key);else for(j=s2;j<=e2;j++)if(newIndexToOldIndexMap[j-s2]===0&&isSameVNodeType(prevChild,c2[j])){newIndex=j;break}newIndex===void 0?unmount(prevChild,parentComponent,parentSuspense,!0):(newIndexToOldIndexMap[newIndex-s2]=i+1,newIndex>=maxNewIndexSoFar?maxNewIndexSoFar=newIndex:moved=!0,patch(prevChild,c2[newIndex],container,null,parentComponent,parentSuspense,namespace,slotScopeIds,optimized),patched++)}let increasingNewIndexSequence=moved?getSequence(newIndexToOldIndexMap):EMPTY_ARR;for(j=increasingNewIndexSequence.length-1,i=toBePatched-1;i>=0;i--){let nextIndex=s2+i,nextChild=c2[nextIndex],anchorVNode=c2[nextIndex+1],anchor=nextIndex+1{let{el,type,transition,children,shapeFlag}=vnode;if(shapeFlag&6){move(vnode.component.subTree,container,anchor,moveType);return}if(shapeFlag&128){vnode.suspense.move(container,anchor,moveType);return}if(shapeFlag&64){type.move(vnode,container,anchor,internals);return}if(type===Fragment){hostInsert(el,container,anchor);for(let i=0;itransition.enter(el),parentSuspense);else{let{leave,delayLeave,afterLeave}=transition,remove2=()=>{vnode.ctx.isUnmounted?hostRemove(el):hostInsert(el,container,anchor)},performLeave=()=>{el._isLeaving&&el[leaveCbKey](!0),leave(el,()=>{remove2(),afterLeave&&afterLeave()})};delayLeave?delayLeave(el,remove2,performLeave):performLeave()}else hostInsert(el,container,anchor)},unmount=(vnode,parentComponent,parentSuspense,doRemove=!1,optimized=!1)=>{let{type,props,ref:ref$1,children,dynamicChildren,shapeFlag,patchFlag,dirs,cacheIndex}=vnode;if(patchFlag===-2&&(optimized=!1),ref$1!=null&&(pauseTracking(),setRef(ref$1,null,parentSuspense,vnode,!0),resetTracking()),cacheIndex!=null&&(parentComponent.renderCache[cacheIndex]=void 0),shapeFlag&256){parentComponent.ctx.deactivate(vnode);return}let shouldInvokeDirs=shapeFlag&1&&dirs,shouldInvokeVnodeHook=!isAsyncWrapper(vnode),vnodeHook;if(shouldInvokeVnodeHook&&(vnodeHook=props&&props.onVnodeBeforeUnmount)&&invokeVNodeHook(vnodeHook,parentComponent,vnode),shapeFlag&6)unmountComponent(vnode.component,parentSuspense,doRemove);else{if(shapeFlag&128){vnode.suspense.unmount(parentSuspense,doRemove);return}shouldInvokeDirs&&invokeDirectiveHook(vnode,null,parentComponent,`beforeUnmount`),shapeFlag&64?vnode.type.remove(vnode,parentComponent,parentSuspense,internals,doRemove):dynamicChildren&&!dynamicChildren.hasOnce&&(type!==Fragment||patchFlag>0&&patchFlag&64)?unmountChildren(dynamicChildren,parentComponent,parentSuspense,!1,!0):(type===Fragment&&patchFlag&384||!optimized&&shapeFlag&16)&&unmountChildren(children,parentComponent,parentSuspense),doRemove&&remove$3(vnode)}(shouldInvokeVnodeHook&&(vnodeHook=props&&props.onVnodeUnmounted)||shouldInvokeDirs)&&queuePostRenderEffect(()=>{vnodeHook&&invokeVNodeHook(vnodeHook,parentComponent,vnode),shouldInvokeDirs&&invokeDirectiveHook(vnode,null,parentComponent,`unmounted`)},parentSuspense)},remove$3=vnode=>{let{type,el,anchor,transition}=vnode;if(type===Fragment){removeFragment(el,anchor);return}if(type===Static){removeStaticNode(vnode);return}let performRemove=()=>{hostRemove(el),transition&&!transition.persisted&&transition.afterLeave&&transition.afterLeave()};if(vnode.shapeFlag&1&&transition&&!transition.persisted){let{leave,delayLeave}=transition,performLeave=()=>leave(el,performRemove);delayLeave?delayLeave(vnode.el,performRemove,performLeave):performLeave()}else performRemove()},removeFragment=(cur,end)=>{let next;for(;cur!==end;)next=hostNextSibling(cur),hostRemove(cur),cur=next;hostRemove(end)},unmountComponent=(instance$1,parentSuspense,doRemove)=>{let{bum,scope:scope$1,job,subTree,um,m,a:a$1}=instance$1;invalidateMount(m),invalidateMount(a$1),bum&&invokeArrayFns(bum),scope$1.stop(),job&&(job.flags|=8,unmount(subTree,instance$1,parentSuspense,doRemove)),um&&queuePostRenderEffect(um,parentSuspense),queuePostRenderEffect(()=>{instance$1.isUnmounted=!0},parentSuspense)},unmountChildren=(children,parentComponent,parentSuspense,doRemove=!1,optimized=!1,start=0)=>{for(let i=start;i{if(vnode.shapeFlag&6)return getNextHostNode(vnode.component.subTree);if(vnode.shapeFlag&128)return vnode.suspense.next();let el=hostNextSibling(vnode.anchor||vnode.el),teleportEnd=el&&el[TeleportEndKey];return teleportEnd?hostNextSibling(teleportEnd):el},isFlushing=!1,render$1=(vnode,container,namespace)=>{vnode==null?container._vnode&&unmount(container._vnode,null,null,!0):patch(container._vnode||null,vnode,container,null,null,null,namespace),container._vnode=vnode,isFlushing||=(isFlushing=!0,flushPreFlushCbs(),flushPostFlushCbs(),!1)},internals={p:patch,um:unmount,m:move,r:remove$3,mt:mountComponent,mc:mountChildren,pc:patchChildren,pbc:patchBlockChildren,n:getNextHostNode,o:options},hydrate$1,hydrateNode;return createHydrationFns&&([hydrate$1,hydrateNode]=createHydrationFns(internals)),{render:render$1,hydrate:hydrate$1,createApp:createAppAPI(render$1,hydrate$1)}}function resolveChildrenNamespace({type,props},currentNamespace){return currentNamespace===`svg`&&type===`foreignObject`||currentNamespace===`mathml`&&type===`annotation-xml`&&props&&props.encoding&&props.encoding.includes(`html`)?void 0:currentNamespace}function toggleRecurse({effect:effect$1,job},allowed){allowed?(effect$1.flags|=32,job.flags|=4):(effect$1.flags&=-33,job.flags&=-5)}function needTransition(parentSuspense,transition){return(!parentSuspense||parentSuspense&&!parentSuspense.pendingBranch)&&transition&&!transition.persisted}function traverseStaticChildren(n1,n2,shallow=!1){let ch1=n1.children,ch2=n2.children;if(isArray$2(ch1)&&isArray$2(ch2))for(let i=0;i>1,arr[result[c]]0&&(p$1[i]=result[u-1]),result[u]=i)}}for(u=result.length,v=result[u-1];u-- >0;)result[u]=v,v=p$1[v];return result}function locateNonHydratedAsyncRoot(instance$1){let subComponent=instance$1.subTree.component;if(subComponent)return subComponent.asyncDep&&!subComponent.asyncResolved?subComponent:locateNonHydratedAsyncRoot(subComponent)}function invalidateMount(hooks){if(hooks)for(let i=0;iinject(ssrContextKey);function watchEffect(effect$1,options){return doWatch(effect$1,null,options)}function watchPostEffect(effect$1,options){return doWatch(effect$1,null,{flush:`post`})}function watchSyncEffect(effect$1,options){return doWatch(effect$1,null,{flush:`sync`})}function watch(source,cb,options){return doWatch(source,cb,options)}function doWatch(source,cb,options=EMPTY_OBJ){let{immediate,deep,flush,once}=options,baseWatchOptions=extend({},options),runsImmediately=cb&&immediate||!cb&&flush!==`post`,ssrCleanup;if(isInSSRComponentSetup){if(flush===`sync`){let ctx=useSSRContext();ssrCleanup=ctx.__watcherHandles||=[]}else if(!runsImmediately){let watchStopHandle=()=>{};return watchStopHandle.stop=NOOP,watchStopHandle.resume=NOOP,watchStopHandle.pause=NOOP,watchStopHandle}}let instance$1=currentInstance;baseWatchOptions.call=(fn,type,args)=>callWithAsyncErrorHandling(fn,instance$1,type,args);let isPre=!1;flush===`post`?baseWatchOptions.scheduler=job=>{queuePostRenderEffect(job,instance$1&&instance$1.suspense)}:flush!==`sync`&&(isPre=!0,baseWatchOptions.scheduler=(job,isFirstRun)=>{isFirstRun?job():queueJob(job)}),baseWatchOptions.augmentJob=job=>{cb&&(job.flags|=4),isPre&&(job.flags|=2,instance$1&&(job.id=instance$1.uid,job.i=instance$1))};let watchHandle=watch$1(source,cb,baseWatchOptions);return isInSSRComponentSetup&&(ssrCleanup?ssrCleanup.push(watchHandle):runsImmediately&&watchHandle()),watchHandle}function instanceWatch(source,value,options){let publicThis=this.proxy,getter=isString$1(source)?source.includes(`.`)?createPathGetter(publicThis,source):()=>publicThis[source]:source.bind(publicThis,publicThis),cb;isFunction$1(value)?cb=value:(cb=value.handler,options=value);let reset$1=setCurrentInstance(this),res=doWatch(getter,cb.bind(publicThis),options);return reset$1(),res}function createPathGetter(ctx,path){let segments=path.split(`.`);return()=>{let cur=ctx;for(let i=0;i{let localValue,prevSetValue=EMPTY_OBJ,prevEmittedValue;return watchSyncEffect(()=>{let propValue=props[camelizedName];hasChanged(localValue,propValue)&&(localValue=propValue,trigger$2())}),{get(){return track$1(),options.get?options.get(localValue):localValue},set(value){let emittedValue=options.set?options.set(value):value;if(!hasChanged(emittedValue,localValue)&&!(prevSetValue!==EMPTY_OBJ&&hasChanged(value,prevSetValue)))return;let rawProps=i.vnode.props;rawProps&&(name in rawProps||camelizedName in rawProps||hyphenatedName in rawProps)&&(`onUpdate:${name}`in rawProps||`onUpdate:${camelizedName}`in rawProps||`onUpdate:${hyphenatedName}`in rawProps)||(localValue=value,trigger$2()),i.emit(`update:${name}`,emittedValue),hasChanged(value,emittedValue)&&hasChanged(value,prevSetValue)&&!hasChanged(emittedValue,prevEmittedValue)&&trigger$2(),prevSetValue=value,prevEmittedValue=emittedValue}}});return res[Symbol.iterator]=()=>{let i2=0;return{next(){return i2<2?{value:i2++?modifiers||EMPTY_OBJ:res,done:!1}:{done:!0}}}},res}var getModelModifiers=(props,modelName)=>modelName===`modelValue`||modelName===`model-value`?props.modelModifiers:props[`${modelName}Modifiers`]||props[`${camelize(modelName)}Modifiers`]||props[`${hyphenate(modelName)}Modifiers`];function emit(instance$1,event,...rawArgs){if(instance$1.isUnmounted)return;let props=instance$1.vnode.props||EMPTY_OBJ,args=rawArgs,isModelListener$1=event.startsWith(`update:`),modifiers=isModelListener$1&&getModelModifiers(props,event.slice(7));modifiers&&(modifiers.trim&&(args=rawArgs.map(a$1=>isString$1(a$1)?a$1.trim():a$1)),modifiers.number&&(args=rawArgs.map(looseToNumber)));let handlerName,handler$1=props[handlerName=toHandlerKey(event)]||props[handlerName=toHandlerKey(camelize(event))];!handler$1&&isModelListener$1&&(handler$1=props[handlerName=toHandlerKey(hyphenate(event))]),handler$1&&callWithAsyncErrorHandling(handler$1,instance$1,6,args);let onceHandler=props[handlerName+`Once`];if(onceHandler){if(!instance$1.emitted)instance$1.emitted={};else if(instance$1.emitted[handlerName])return;instance$1.emitted[handlerName]=!0,callWithAsyncErrorHandling(onceHandler,instance$1,6,args)}}var mixinEmitsCache=new WeakMap;function normalizeEmitsOptions(comp,appContext,asMixin=!1){let cache$1=asMixin?mixinEmitsCache:appContext.emitsCache,cached=cache$1.get(comp);if(cached!==void 0)return cached;let raw=comp.emits,normalized={},hasExtends=!1;if(!isFunction$1(comp)){let extendEmits=raw2=>{let normalizedFromExtend=normalizeEmitsOptions(raw2,appContext,!0);normalizedFromExtend&&(hasExtends=!0,extend(normalized,normalizedFromExtend))};!asMixin&&appContext.mixins.length&&appContext.mixins.forEach(extendEmits),comp.extends&&extendEmits(comp.extends),comp.mixins&&comp.mixins.forEach(extendEmits)}return!raw&&!hasExtends?(isObject$1(comp)&&cache$1.set(comp,null),null):(isArray$2(raw)?raw.forEach(key=>normalized[key]=null):extend(normalized,raw),isObject$1(comp)&&cache$1.set(comp,normalized),normalized)}function isEmitListener(options,key){return!options||!isOn(key)?!1:(key=key.slice(2).replace(/Once$/,``),hasOwn$1(options,key[0].toLowerCase()+key.slice(1))||hasOwn$1(options,hyphenate(key))||hasOwn$1(options,key))}function renderComponentRoot(instance$1){let{type:Component,vnode,proxy,withProxy,propsOptions:[propsOptions],slots,attrs,emit:emit$1,render:render$1,renderCache,props,data,setupState,ctx,inheritAttrs}=instance$1,prev=setCurrentRenderingInstance(instance$1),result,fallthroughAttrs;try{if(vnode.shapeFlag&4){let proxyToUse=withProxy||proxy,thisProxy=proxyToUse;result=normalizeVNode(render$1.call(thisProxy,proxyToUse,renderCache,props,setupState,data,ctx)),fallthroughAttrs=attrs}else{let render2=Component;result=normalizeVNode(render2.length>1?render2(props,{attrs,slots,emit:emit$1}):render2(props,null)),fallthroughAttrs=Component.props?attrs:getFunctionalFallthrough(attrs)}}catch(err){blockStack.length=0,handleError(err,instance$1,1),result=createVNode(Comment)}let root=result;if(fallthroughAttrs&&inheritAttrs!==!1){let keys=Object.keys(fallthroughAttrs),{shapeFlag}=root;keys.length&&shapeFlag&7&&(propsOptions&&keys.some(isModelListener)&&(fallthroughAttrs=filterModelListeners(fallthroughAttrs,propsOptions)),root=cloneVNode(root,fallthroughAttrs,!1,!0))}return vnode.dirs&&(root=cloneVNode(root,null,!1,!0),root.dirs=root.dirs?root.dirs.concat(vnode.dirs):vnode.dirs),vnode.transition&&setTransitionHooks(root,vnode.transition),result=root,setCurrentRenderingInstance(prev),result}function filterSingleRoot(children,recurse=!0){let singleRoot;for(let i=0;i{let res;for(let key in attrs)(key===`class`||key===`style`||isOn(key))&&((res||={})[key]=attrs[key]);return res},filterModelListeners=(attrs,props)=>{let res={};for(let key in attrs)(!isModelListener(key)||!(key.slice(9)in props))&&(res[key]=attrs[key]);return res};function shouldUpdateComponent(prevVNode,nextVNode,optimized){let{props:prevProps,children:prevChildren,component}=prevVNode,{props:nextProps,children:nextChildren,patchFlag}=nextVNode,emits=component.emitsOptions;if(nextVNode.dirs||nextVNode.transition)return!0;if(optimized&&patchFlag>=0){if(patchFlag&1024)return!0;if(patchFlag&16)return prevProps?hasPropsChanged(prevProps,nextProps,emits):!!nextProps;if(patchFlag&8){let dynamicProps=nextVNode.dynamicProps;for(let i=0;itype.__isSuspense,suspenseId=0,Suspense={name:`Suspense`,__isSuspense:!0,process(n1,n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,rendererInternals){if(n1==null)mountSuspense(n2,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,rendererInternals);else{if(parentSuspense&&parentSuspense.deps>0&&!n1.suspense.isInFallback){n2.suspense=n1.suspense,n2.suspense.vnode=n2,n2.el=n1.el;return}patchSuspense(n1,n2,container,anchor,parentComponent,namespace,slotScopeIds,optimized,rendererInternals)}},hydrate:hydrateSuspense,normalize:normalizeSuspenseChildren};function triggerEvent(vnode,name){let eventListener=vnode.props&&vnode.props[name];isFunction$1(eventListener)&&eventListener()}function mountSuspense(vnode,container,anchor,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,rendererInternals){let{p:patch,o:{createElement}}=rendererInternals,hiddenContainer=createElement(`div`),suspense=vnode.suspense=createSuspenseBoundary(vnode,parentSuspense,parentComponent,container,hiddenContainer,anchor,namespace,slotScopeIds,optimized,rendererInternals);patch(null,suspense.pendingBranch=vnode.ssContent,hiddenContainer,null,parentComponent,suspense,namespace,slotScopeIds),suspense.deps>0?(triggerEvent(vnode,`onPending`),triggerEvent(vnode,`onFallback`),patch(null,vnode.ssFallback,container,anchor,parentComponent,null,namespace,slotScopeIds),setActiveBranch(suspense,vnode.ssFallback)):suspense.resolve(!1,!0)}function patchSuspense(n1,n2,container,anchor,parentComponent,namespace,slotScopeIds,optimized,{p:patch,um:unmount,o:{createElement}}){let suspense=n2.suspense=n1.suspense;suspense.vnode=n2,n2.el=n1.el;let newBranch=n2.ssContent,newFallback=n2.ssFallback,{activeBranch,pendingBranch,isInFallback,isHydrating}=suspense;if(pendingBranch)suspense.pendingBranch=newBranch,isSameVNodeType(pendingBranch,newBranch)?(patch(pendingBranch,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,namespace,slotScopeIds,optimized),suspense.deps<=0?suspense.resolve():isInFallback&&(isHydrating||(patch(activeBranch,newFallback,container,anchor,parentComponent,null,namespace,slotScopeIds,optimized),setActiveBranch(suspense,newFallback)))):(suspense.pendingId=suspenseId++,isHydrating?(suspense.isHydrating=!1,suspense.activeBranch=pendingBranch):unmount(pendingBranch,parentComponent,suspense),suspense.deps=0,suspense.effects.length=0,suspense.hiddenContainer=createElement(`div`),isInFallback?(patch(null,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,namespace,slotScopeIds,optimized),suspense.deps<=0?suspense.resolve():(patch(activeBranch,newFallback,container,anchor,parentComponent,null,namespace,slotScopeIds,optimized),setActiveBranch(suspense,newFallback))):activeBranch&&isSameVNodeType(activeBranch,newBranch)?(patch(activeBranch,newBranch,container,anchor,parentComponent,suspense,namespace,slotScopeIds,optimized),suspense.resolve(!0)):(patch(null,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,namespace,slotScopeIds,optimized),suspense.deps<=0&&suspense.resolve()));else if(activeBranch&&isSameVNodeType(activeBranch,newBranch))patch(activeBranch,newBranch,container,anchor,parentComponent,suspense,namespace,slotScopeIds,optimized),setActiveBranch(suspense,newBranch);else if(triggerEvent(n2,`onPending`),suspense.pendingBranch=newBranch,newBranch.shapeFlag&512?suspense.pendingId=newBranch.component.suspenseId:suspense.pendingId=suspenseId++,patch(null,newBranch,suspense.hiddenContainer,null,parentComponent,suspense,namespace,slotScopeIds,optimized),suspense.deps<=0)suspense.resolve();else{let{timeout,pendingId}=suspense;timeout>0?setTimeout(()=>{suspense.pendingId===pendingId&&suspense.fallback(newFallback)},timeout):timeout===0&&suspense.fallback(newFallback)}}function createSuspenseBoundary(vnode,parentSuspense,parentComponent,container,hiddenContainer,anchor,namespace,slotScopeIds,optimized,rendererInternals,isHydrating=!1){let{p:patch,m:move,um:unmount,n:next,o:{parentNode,remove:remove$3}}=rendererInternals,parentSuspenseId,isSuspensible=isVNodeSuspensible(vnode);isSuspensible&&parentSuspense&&parentSuspense.pendingBranch&&(parentSuspenseId=parentSuspense.pendingId,parentSuspense.deps++);let timeout=vnode.props?toNumber(vnode.props.timeout):void 0,initialAnchor=anchor,suspense={vnode,parent:parentSuspense,parentComponent,namespace,container,hiddenContainer,deps:0,pendingId:suspenseId++,timeout:typeof timeout==`number`?timeout:-1,activeBranch:null,pendingBranch:null,isInFallback:!isHydrating,isHydrating,isUnmounted:!1,effects:[],resolve(resume=!1,sync=!1){let{vnode:vnode2,activeBranch,pendingBranch,pendingId,effects,parentComponent:parentComponent2,container:container2}=suspense,delayEnter=!1;suspense.isHydrating?suspense.isHydrating=!1:resume||(delayEnter=activeBranch&&pendingBranch.transition&&pendingBranch.transition.mode===`out-in`,delayEnter&&(activeBranch.transition.afterLeave=()=>{pendingId===suspense.pendingId&&(move(pendingBranch,container2,anchor===initialAnchor?next(activeBranch):anchor,0),queuePostFlushCb(effects))}),activeBranch&&(parentNode(activeBranch.el)===container2&&(anchor=next(activeBranch)),unmount(activeBranch,parentComponent2,suspense,!0)),delayEnter||move(pendingBranch,container2,anchor,0)),setActiveBranch(suspense,pendingBranch),suspense.pendingBranch=null,suspense.isInFallback=!1;let parent=suspense.parent,hasUnresolvedAncestor=!1;for(;parent;){if(parent.pendingBranch){parent.effects.push(...effects),hasUnresolvedAncestor=!0;break}parent=parent.parent}!hasUnresolvedAncestor&&!delayEnter&&queuePostFlushCb(effects),suspense.effects=[],isSuspensible&&parentSuspense&&parentSuspense.pendingBranch&&parentSuspenseId===parentSuspense.pendingId&&(parentSuspense.deps--,parentSuspense.deps===0&&!sync&&parentSuspense.resolve()),triggerEvent(vnode2,`onResolve`)},fallback(fallbackVNode){if(!suspense.pendingBranch)return;let{vnode:vnode2,activeBranch,parentComponent:parentComponent2,container:container2,namespace:namespace2}=suspense;triggerEvent(vnode2,`onFallback`);let anchor2=next(activeBranch),mountFallback=()=>{suspense.isInFallback&&(patch(null,fallbackVNode,container2,anchor2,parentComponent2,null,namespace2,slotScopeIds,optimized),setActiveBranch(suspense,fallbackVNode))},delayEnter=fallbackVNode.transition&&fallbackVNode.transition.mode===`out-in`;delayEnter&&(activeBranch.transition.afterLeave=mountFallback),suspense.isInFallback=!0,unmount(activeBranch,parentComponent2,null,!0),delayEnter||mountFallback()},move(container2,anchor2,type){suspense.activeBranch&&move(suspense.activeBranch,container2,anchor2,type),suspense.container=container2},next(){return suspense.activeBranch&&next(suspense.activeBranch)},registerDep(instance$1,setupRenderEffect,optimized2){let isInPendingSuspense=!!suspense.pendingBranch;isInPendingSuspense&&suspense.deps++;let hydratedEl=instance$1.vnode.el;instance$1.asyncDep.catch(err=>{handleError(err,instance$1,0)}).then(asyncSetupResult=>{if(instance$1.isUnmounted||suspense.isUnmounted||suspense.pendingId!==instance$1.suspenseId)return;instance$1.asyncResolved=!0;let{vnode:vnode2}=instance$1;handleSetupResult(instance$1,asyncSetupResult,!1),hydratedEl&&(vnode2.el=hydratedEl);let placeholder=!hydratedEl&&instance$1.subTree.el;setupRenderEffect(instance$1,vnode2,parentNode(hydratedEl||instance$1.subTree.el),hydratedEl?null:next(instance$1.subTree),suspense,namespace,optimized2),placeholder&&remove$3(placeholder),updateHOCHostEl(instance$1,vnode2.el),isInPendingSuspense&&--suspense.deps===0&&suspense.resolve()})},unmount(parentSuspense2,doRemove){suspense.isUnmounted=!0,suspense.activeBranch&&unmount(suspense.activeBranch,parentComponent,parentSuspense2,doRemove),suspense.pendingBranch&&unmount(suspense.pendingBranch,parentComponent,parentSuspense2,doRemove)}};return suspense}function hydrateSuspense(node,vnode,parentComponent,parentSuspense,namespace,slotScopeIds,optimized,rendererInternals,hydrateNode){let suspense=vnode.suspense=createSuspenseBoundary(vnode,parentSuspense,parentComponent,node.parentNode,document.createElement(`div`),null,namespace,slotScopeIds,optimized,rendererInternals,!0),result=hydrateNode(node,suspense.pendingBranch=vnode.ssContent,parentComponent,suspense,slotScopeIds,optimized);return suspense.deps===0&&suspense.resolve(!1,!0),result}function normalizeSuspenseChildren(vnode){let{shapeFlag,children}=vnode,isSlotChildren=shapeFlag&32;vnode.ssContent=normalizeSuspenseSlot(isSlotChildren?children.default:children),vnode.ssFallback=isSlotChildren?normalizeSuspenseSlot(children.fallback):createVNode(Comment)}function normalizeSuspenseSlot(s){let block;if(isFunction$1(s)){let trackBlock=isBlockTreeEnabled&&s._c;trackBlock&&(s._d=!1,openBlock()),s=s(),trackBlock&&(s._d=!0,block=currentBlock,closeBlock())}return isArray$2(s)&&(s=filterSingleRoot(s)),s=normalizeVNode(s),block&&!s.dynamicChildren&&(s.dynamicChildren=block.filter(c=>c!==s)),s}function queueEffectWithSuspense(fn,suspense){suspense&&suspense.pendingBranch?isArray$2(fn)?suspense.effects.push(...fn):suspense.effects.push(fn):queuePostFlushCb(fn)}function setActiveBranch(suspense,branch){suspense.activeBranch=branch;let{vnode,parentComponent}=suspense,el=branch.el;for(;!el&&branch.component;)branch=branch.component.subTree,el=branch.el;vnode.el=el,parentComponent&&parentComponent.subTree===vnode&&(parentComponent.vnode.el=el,updateHOCHostEl(parentComponent,el))}function isVNodeSuspensible(vnode){let suspensible=vnode.props&&vnode.props.suspensible;return suspensible!=null&&suspensible!==!1}var Fragment=Symbol.for(`v-fgt`),Text=Symbol.for(`v-txt`),Comment=Symbol.for(`v-cmt`),Static=Symbol.for(`v-stc`),blockStack=[],currentBlock=null;function openBlock(disableTracking=!1){blockStack.push(currentBlock=disableTracking?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}var isBlockTreeEnabled=1;function setBlockTracking(value,inVOnce=!1){isBlockTreeEnabled+=value,value<0&¤tBlock&&inVOnce&&(currentBlock.hasOnce=!0)}function setupBlock(vnode){return vnode.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(vnode),vnode}function createElementBlock(type,props,children,patchFlag,dynamicProps,shapeFlag){return setupBlock(createBaseVNode(type,props,children,patchFlag,dynamicProps,shapeFlag,!0))}function createBlock(type,props,children,patchFlag,dynamicProps){return setupBlock(createVNode(type,props,children,patchFlag,dynamicProps,!0))}function isVNode(value){return value?value.__v_isVNode===!0:!1}function isSameVNodeType(n1,n2){return n1.type===n2.type&&n1.key===n2.key}function transformVNodeArgs(transformer){}var normalizeKey=({key})=>key??null,normalizeRef=({ref:ref$1,ref_key,ref_for})=>(typeof ref$1==`number`&&(ref$1=``+ref$1),ref$1==null?null:isString$1(ref$1)||isRef(ref$1)||isFunction$1(ref$1)?{i:currentRenderingInstance,r:ref$1,k:ref_key,f:!!ref_for}:ref$1);function createBaseVNode(type,props=null,children=null,patchFlag=0,dynamicProps=null,shapeFlag=type===Fragment?0:1,isBlockNode=!1,needFullChildrenNormalization=!1){let vnode={__v_isVNode:!0,__v_skip:!0,type,props,key:props&&normalizeKey(props),ref:props&&normalizeRef(props),scopeId:currentScopeId,slotScopeIds:null,children,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag,patchFlag,dynamicProps,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return needFullChildrenNormalization?(normalizeChildren(vnode,children),shapeFlag&128&&type.normalize(vnode)):children&&(vnode.shapeFlag|=isString$1(children)?8:16),isBlockTreeEnabled>0&&!isBlockNode&¤tBlock&&(vnode.patchFlag>0||shapeFlag&6)&&vnode.patchFlag!==32&¤tBlock.push(vnode),vnode}var createVNode=_createVNode;function _createVNode(type,props=null,children=null,patchFlag=0,dynamicProps=null,isBlockNode=!1){if((!type||type===NULL_DYNAMIC_COMPONENT)&&(type=Comment),isVNode(type)){let cloned=cloneVNode(type,props,!0);return children&&normalizeChildren(cloned,children),isBlockTreeEnabled>0&&!isBlockNode&¤tBlock&&(cloned.shapeFlag&6?currentBlock[currentBlock.indexOf(type)]=cloned:currentBlock.push(cloned)),cloned.patchFlag=-2,cloned}if(isClassComponent(type)&&(type=type.__vccOpts),props){props=guardReactiveProps(props);let{class:klass,style}=props;klass&&!isString$1(klass)&&(props.class=normalizeClass(klass)),isObject$1(style)&&(isProxy(style)&&!isArray$2(style)&&(style=extend({},style)),props.style=normalizeStyle(style))}let shapeFlag=isString$1(type)?1:isSuspense(type)?128:isTeleport(type)?64:isObject$1(type)?4:isFunction$1(type)?2:0;return createBaseVNode(type,props,children,patchFlag,dynamicProps,shapeFlag,isBlockNode,!0)}function guardReactiveProps(props){return props?isProxy(props)||isInternalObject(props)?extend({},props):props:null}function cloneVNode(vnode,extraProps,mergeRef=!1,cloneTransition=!1){let{props,ref:ref$1,patchFlag,children,transition}=vnode,mergedProps=extraProps?mergeProps(props||{},extraProps):props,cloned={__v_isVNode:!0,__v_skip:!0,type:vnode.type,props:mergedProps,key:mergedProps&&normalizeKey(mergedProps),ref:extraProps&&extraProps.ref?mergeRef&&ref$1?isArray$2(ref$1)?ref$1.concat(normalizeRef(extraProps)):[ref$1,normalizeRef(extraProps)]:normalizeRef(extraProps):ref$1,scopeId:vnode.scopeId,slotScopeIds:vnode.slotScopeIds,children,target:vnode.target,targetStart:vnode.targetStart,targetAnchor:vnode.targetAnchor,staticCount:vnode.staticCount,shapeFlag:vnode.shapeFlag,patchFlag:extraProps&&vnode.type!==Fragment?patchFlag===-1?16:patchFlag|16:patchFlag,dynamicProps:vnode.dynamicProps,dynamicChildren:vnode.dynamicChildren,appContext:vnode.appContext,dirs:vnode.dirs,transition,component:vnode.component,suspense:vnode.suspense,ssContent:vnode.ssContent&&cloneVNode(vnode.ssContent),ssFallback:vnode.ssFallback&&cloneVNode(vnode.ssFallback),placeholder:vnode.placeholder,el:vnode.el,anchor:vnode.anchor,ctx:vnode.ctx,ce:vnode.ce};return transition&&cloneTransition&&setTransitionHooks(cloned,transition.clone(cloned)),cloned}function createTextVNode(text=` `,flag=0){return createVNode(Text,null,text,flag)}function createStaticVNode(content,numberOfNodes){let vnode=createVNode(Static,null,content);return vnode.staticCount=numberOfNodes,vnode}function createCommentVNode(text=``,asBlock=!1){return asBlock?(openBlock(),createBlock(Comment,null,text)):createVNode(Comment,null,text)}function normalizeVNode(child){return child==null||typeof child==`boolean`?createVNode(Comment):isArray$2(child)?createVNode(Fragment,null,child.slice()):isVNode(child)?cloneIfMounted(child):createVNode(Text,null,String(child))}function cloneIfMounted(child){return child.el===null&&child.patchFlag!==-1||child.memo?child:cloneVNode(child)}function normalizeChildren(vnode,children){let type=0,{shapeFlag}=vnode;if(children==null)children=null;else if(isArray$2(children))type=16;else if(typeof children==`object`)if(shapeFlag&65){let slot=children.default;slot&&(slot._c&&(slot._d=!1),normalizeChildren(vnode,slot()),slot._c&&(slot._d=!0));return}else{type=32;let slotFlag=children._;!slotFlag&&!isInternalObject(children)?children._ctx=currentRenderingInstance:slotFlag===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?children._=1:(children._=2,vnode.patchFlag|=1024))}else isFunction$1(children)?(children={default:children,_ctx:currentRenderingInstance},type=32):(children=String(children),shapeFlag&64?(type=16,children=[createTextVNode(children)]):type=8);vnode.children=children,vnode.shapeFlag|=type}function mergeProps(...args){let ret={};for(let i=0;icurrentInstance||currentRenderingInstance,internalSetCurrentInstance,setInSSRSetupState;{let g=getGlobalThis$1(),registerGlobalSetter=(key,setter)=>{let setters;return(setters=g[key])||(setters=g[key]=[]),setters.push(setter),v=>{setters.length>1?setters.forEach(set=>set(v)):setters[0](v)}};internalSetCurrentInstance=registerGlobalSetter(`__VUE_INSTANCE_SETTERS__`,v=>currentInstance=v),setInSSRSetupState=registerGlobalSetter(`__VUE_SSR_SETTERS__`,v=>isInSSRComponentSetup=v)}var setCurrentInstance=instance$1=>{let prev=currentInstance;return internalSetCurrentInstance(instance$1),instance$1.scope.on(),()=>{instance$1.scope.off(),internalSetCurrentInstance(prev)}},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),internalSetCurrentInstance(null)};function isStatefulComponent(instance$1){return instance$1.vnode.shapeFlag&4}var isInSSRComponentSetup=!1;function setupComponent(instance$1,isSSR=!1,optimized=!1){isSSR&&setInSSRSetupState(isSSR);let{props,children}=instance$1.vnode,isStateful=isStatefulComponent(instance$1);initProps(instance$1,props,isStateful,isSSR),initSlots(instance$1,children,optimized||isSSR);let setupResult=isStateful?setupStatefulComponent(instance$1,isSSR):void 0;return isSSR&&setInSSRSetupState(!1),setupResult}function setupStatefulComponent(instance$1,isSSR){let Component=instance$1.type;instance$1.accessCache=Object.create(null),instance$1.proxy=new Proxy(instance$1.ctx,PublicInstanceProxyHandlers);let{setup:setup$3}=Component;if(setup$3){pauseTracking();let setupContext=instance$1.setupContext=setup$3.length>1?createSetupContext(instance$1):null,reset$1=setCurrentInstance(instance$1),setupResult=callWithErrorHandling(setup$3,instance$1,0,[instance$1.props,setupContext]),isAsyncSetup=isPromise$1(setupResult);if(resetTracking(),reset$1(),(isAsyncSetup||instance$1.sp)&&!isAsyncWrapper(instance$1)&&markAsyncBoundary(instance$1),isAsyncSetup){if(setupResult.then(unsetCurrentInstance,unsetCurrentInstance),isSSR)return setupResult.then(resolvedResult=>{handleSetupResult(instance$1,resolvedResult,isSSR)}).catch(e=>{handleError(e,instance$1,0)});instance$1.asyncDep=setupResult}else handleSetupResult(instance$1,setupResult,isSSR)}else finishComponentSetup(instance$1,isSSR)}function handleSetupResult(instance$1,setupResult,isSSR){isFunction$1(setupResult)?instance$1.type.__ssrInlineRender?instance$1.ssrRender=setupResult:instance$1.render=setupResult:isObject$1(setupResult)&&(instance$1.setupState=proxyRefs(setupResult)),finishComponentSetup(instance$1,isSSR)}var compile$2,installWithProxy;function registerRuntimeCompiler(_compile){compile$2=_compile,installWithProxy=i=>{i.render._rc&&(i.withProxy=new Proxy(i.ctx,RuntimeCompiledPublicInstanceProxyHandlers))}}var isRuntimeOnly=()=>!compile$2;function finishComponentSetup(instance$1,isSSR,skipOptions){let Component=instance$1.type;if(!instance$1.render){if(!isSSR&&compile$2&&!Component.render){let template=Component.template||resolveMergedOptions(instance$1).template;if(template){let{isCustomElement,compilerOptions}=instance$1.appContext.config,{delimiters,compilerOptions:componentCompilerOptions}=Component,finalCompilerOptions=extend(extend({isCustomElement,delimiters},compilerOptions),componentCompilerOptions);Component.render=compile$2(template,finalCompilerOptions)}}instance$1.render=Component.render||NOOP,installWithProxy&&installWithProxy(instance$1)}{let reset$1=setCurrentInstance(instance$1);pauseTracking();try{applyOptions$1(instance$1)}finally{resetTracking(),reset$1()}}}var attrsProxyHandlers={get(target,key){return track(target,`get`,``),target[key]}};function createSetupContext(instance$1){return{attrs:new Proxy(instance$1.attrs,attrsProxyHandlers),slots:instance$1.slots,emit:instance$1.emit,expose:exposed=>{instance$1.exposed=exposed||{}}}}function getComponentPublicInstance(instance$1){return instance$1.exposed?instance$1.exposeProxy||=new Proxy(proxyRefs(markRaw(instance$1.exposed)),{get(target,key){if(key in target)return target[key];if(key in publicPropertiesMap)return publicPropertiesMap[key](instance$1)},has(target,key){return key in target||key in publicPropertiesMap}}):instance$1.proxy}function getComponentName(Component,includeInferred=!0){return isFunction$1(Component)?Component.displayName||Component.name:Component.name||includeInferred&&Component.__name}function isClassComponent(value){return isFunction$1(value)&&`__vccOpts`in value}var computed=(getterOrOptions,debugOptions)=>computed$1(getterOrOptions,debugOptions,isInSSRComponentSetup);function h(type,propsOrChildren,children){try{setBlockTracking(-1);let l=arguments.length;return l===2?isObject$1(propsOrChildren)&&!isArray$2(propsOrChildren)?isVNode(propsOrChildren)?createVNode(type,null,[propsOrChildren]):createVNode(type,propsOrChildren):createVNode(type,null,propsOrChildren):(l>3?children=Array.prototype.slice.call(arguments,2):l===3&&isVNode(children)&&(children=[children]),createVNode(type,propsOrChildren,children))}finally{setBlockTracking(1)}}function initCustomFormatter(){return;function isKeyOfType(Comp,key,type){let opts=Comp[type];if(isArray$2(opts)&&opts.includes(key)||isObject$1(opts)&&key in opts||Comp.extends&&isKeyOfType(Comp.extends,key,type)||Comp.mixins&&Comp.mixins.some(m=>isKeyOfType(m,key,type)))return!0}}function withMemo(memo,render$1,cache$1,index){let cached=cache$1[index];if(cached&&isMemoSame(cached,memo))return cached;let ret=render$1();return ret.memo=memo.slice(),ret.cacheIndex=index,cache$1[index]=ret}function isMemoSame(cached,memo){let prev=cached.memo;if(prev.length!=memo.length)return!1;for(let i=0;i0&¤tBlock&¤tBlock.push(cached),!0}var version$1=`3.5.22`,warn$2=NOOP,ErrorTypeStrings=ErrorTypeStrings$1,devtools$2=devtools$1,setDevtoolsHook=setDevtoolsHook$1,ssrUtils={createComponentInstance,setupComponent,renderComponentRoot,setCurrentRenderingInstance,isVNode,normalizeVNode,getComponentPublicInstance,ensureValidVNode,pushWarningContext,popWarningContext},resolveFilter=null,compatUtils=null,DeprecationTypes=null,runtime_dom_esm_bundler_exports=__export({BaseTransition:()=>BaseTransition,BaseTransitionPropsValidators:()=>BaseTransitionPropsValidators,Comment:()=>Comment,DeprecationTypes:()=>null,EffectScope:()=>EffectScope,ErrorCodes:()=>ErrorCodes,ErrorTypeStrings:()=>ErrorTypeStrings,Fragment:()=>Fragment,KeepAlive:()=>KeepAlive,ReactiveEffect:()=>ReactiveEffect,Static:()=>Static,Suspense:()=>Suspense,Teleport:()=>Teleport,Text:()=>Text,TrackOpTypes:()=>TrackOpTypes,Transition:()=>Transition,TransitionGroup:()=>TransitionGroup,TriggerOpTypes:()=>TriggerOpTypes,VueElement:()=>VueElement,assertNumber:()=>assertNumber,callWithAsyncErrorHandling:()=>callWithAsyncErrorHandling,callWithErrorHandling:()=>callWithErrorHandling,camelize:()=>camelize,capitalize:()=>capitalize$1,cloneVNode:()=>cloneVNode,compatUtils:()=>null,computed:()=>computed,createApp:()=>createApp,createBlock:()=>createBlock,createCommentVNode:()=>createCommentVNode,createElementBlock:()=>createElementBlock,createElementVNode:()=>createBaseVNode,createHydrationRenderer:()=>createHydrationRenderer,createPropsRestProxy:()=>createPropsRestProxy,createRenderer:()=>createRenderer,createSSRApp:()=>createSSRApp,createSlots:()=>createSlots,createStaticVNode:()=>createStaticVNode,createTextVNode:()=>createTextVNode,createVNode:()=>createVNode,customRef:()=>customRef,defineAsyncComponent:()=>defineAsyncComponent,defineComponent:()=>defineComponent,defineCustomElement:()=>defineCustomElement,defineEmits:()=>defineEmits,defineExpose:()=>defineExpose,defineModel:()=>defineModel,defineOptions:()=>defineOptions,defineProps:()=>defineProps,defineSSRCustomElement:()=>defineSSRCustomElement,defineSlots:()=>defineSlots,devtools:()=>devtools$2,effect:()=>effect,effectScope:()=>effectScope,getCurrentInstance:()=>getCurrentInstance,getCurrentScope:()=>getCurrentScope,getCurrentWatcher:()=>getCurrentWatcher,getTransitionRawChildren:()=>getTransitionRawChildren,guardReactiveProps:()=>guardReactiveProps,h:()=>h,handleError:()=>handleError,hasInjectionContext:()=>hasInjectionContext,hydrate:()=>hydrate,hydrateOnIdle:()=>hydrateOnIdle,hydrateOnInteraction:()=>hydrateOnInteraction,hydrateOnMediaQuery:()=>hydrateOnMediaQuery,hydrateOnVisible:()=>hydrateOnVisible,initCustomFormatter:()=>initCustomFormatter,initDirectivesForSSR:()=>initDirectivesForSSR,inject:()=>inject,isMemoSame:()=>isMemoSame,isProxy:()=>isProxy,isReactive:()=>isReactive,isReadonly:()=>isReadonly,isRef:()=>isRef,isRuntimeOnly:()=>isRuntimeOnly,isShallow:()=>isShallow,isVNode:()=>isVNode,markRaw:()=>markRaw,mergeDefaults:()=>mergeDefaults,mergeModels:()=>mergeModels,mergeProps:()=>mergeProps,nextTick:()=>nextTick,normalizeClass:()=>normalizeClass,normalizeProps:()=>normalizeProps,normalizeStyle:()=>normalizeStyle,onActivated:()=>onActivated,onBeforeMount:()=>onBeforeMount,onBeforeUnmount:()=>onBeforeUnmount,onBeforeUpdate:()=>onBeforeUpdate,onDeactivated:()=>onDeactivated,onErrorCaptured:()=>onErrorCaptured,onMounted:()=>onMounted,onRenderTracked:()=>onRenderTracked,onRenderTriggered:()=>onRenderTriggered,onScopeDispose:()=>onScopeDispose,onServerPrefetch:()=>onServerPrefetch,onUnmounted:()=>onUnmounted,onUpdated:()=>onUpdated,onWatcherCleanup:()=>onWatcherCleanup,openBlock:()=>openBlock,popScopeId:()=>popScopeId,provide:()=>provide,proxyRefs:()=>proxyRefs,pushScopeId:()=>pushScopeId,queuePostFlushCb:()=>queuePostFlushCb,reactive:()=>reactive,readonly:()=>readonly,ref:()=>ref,registerRuntimeCompiler:()=>registerRuntimeCompiler,render:()=>render,renderList:()=>renderList,renderSlot:()=>renderSlot,resolveComponent:()=>resolveComponent,resolveDirective:()=>resolveDirective,resolveDynamicComponent:()=>resolveDynamicComponent,resolveFilter:()=>null,resolveTransitionHooks:()=>resolveTransitionHooks,setBlockTracking:()=>setBlockTracking,setDevtoolsHook:()=>setDevtoolsHook,setTransitionHooks:()=>setTransitionHooks,shallowReactive:()=>shallowReactive,shallowReadonly:()=>shallowReadonly,shallowRef:()=>shallowRef,ssrContextKey:()=>ssrContextKey,ssrUtils:()=>ssrUtils,stop:()=>stop,toDisplayString:()=>toDisplayString,toHandlerKey:()=>toHandlerKey,toHandlers:()=>toHandlers,toRaw:()=>toRaw,toRef:()=>toRef,toRefs:()=>toRefs,toValue:()=>toValue$1,transformVNodeArgs:()=>transformVNodeArgs,triggerRef:()=>triggerRef,unref:()=>unref,useAttrs:()=>useAttrs,useCssModule:()=>useCssModule,useCssVars:()=>useCssVars,useHost:()=>useHost,useId:()=>useId,useModel:()=>useModel,useSSRContext:()=>useSSRContext,useShadowRoot:()=>useShadowRoot,useSlots:()=>useSlots,useTemplateRef:()=>useTemplateRef,useTransitionState:()=>useTransitionState,vModelCheckbox:()=>vModelCheckbox,vModelDynamic:()=>vModelDynamic,vModelRadio:()=>vModelRadio,vModelSelect:()=>vModelSelect,vModelText:()=>vModelText,vShow:()=>vShow,version:()=>version$1,warn:()=>warn$2,watch:()=>watch,watchEffect:()=>watchEffect,watchPostEffect:()=>watchPostEffect,watchSyncEffect:()=>watchSyncEffect,withAsyncContext:()=>withAsyncContext,withCtx:()=>withCtx,withDefaults:()=>withDefaults,withDirectives:()=>withDirectives,withKeys:()=>withKeys,withMemo:()=>withMemo,withModifiers:()=>withModifiers,withScopeId:()=>withScopeId}),policy=void 0,tt=typeof window<`u`&&window.trustedTypes;if(tt)try{policy=tt.createPolicy(`vue`,{createHTML:val=>val})}catch{}var unsafeToTrustedHTML=policy?val=>policy.createHTML(val):val=>val,svgNS=`http://www.w3.org/2000/svg`,mathmlNS=`http://www.w3.org/1998/Math/MathML`,doc=typeof document<`u`?document:null,templateContainer=doc&&doc.createElement(`template`),nodeOps={insert:(child,parent,anchor)=>{parent.insertBefore(child,anchor||null)},remove:child=>{let parent=child.parentNode;parent&&parent.removeChild(child)},createElement:(tag,namespace,is,props)=>{let el=namespace===`svg`?doc.createElementNS(svgNS,tag):namespace===`mathml`?doc.createElementNS(mathmlNS,tag):is?doc.createElement(tag,{is}):doc.createElement(tag);return tag===`select`&&props&&props.multiple!=null&&el.setAttribute(`multiple`,props.multiple),el},createText:text=>doc.createTextNode(text),createComment:text=>doc.createComment(text),setText:(node,text)=>{node.nodeValue=text},setElementText:(el,text)=>{el.textContent=text},parentNode:node=>node.parentNode,nextSibling:node=>node.nextSibling,querySelector:selector=>doc.querySelector(selector),setScopeId(el,id){el.setAttribute(id,``)},insertStaticContent(content,parent,anchor,namespace,start,end){let before=anchor?anchor.previousSibling:parent.lastChild;if(start&&(start===end||start.nextSibling))for(;parent.insertBefore(start.cloneNode(!0),anchor),!(start===end||!(start=start.nextSibling)););else{templateContainer.innerHTML=unsafeToTrustedHTML(namespace===`svg`?`${content}`:namespace===`mathml`?`${content}`:content);let template=templateContainer.content;if(namespace===`svg`||namespace===`mathml`){let wrapper=template.firstChild;for(;wrapper.firstChild;)template.appendChild(wrapper.firstChild);template.removeChild(wrapper)}parent.insertBefore(template,anchor)}return[before?before.nextSibling:parent.firstChild,anchor?anchor.previousSibling:parent.lastChild]}},TRANSITION$1=`transition`,ANIMATION=`animation`,vtcKey=Symbol(`_vtc`),DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=extend({},BaseTransitionPropsValidators,DOMTransitionPropsValidators),decorate$1=t=>(t.displayName=`Transition`,t.props=TransitionPropsValidators,t),Transition=decorate$1((props,{slots})=>h(BaseTransition,resolveTransitionProps(props),slots)),callHook=(hook,args=[])=>{isArray$2(hook)?hook.forEach(h2=>h2(...args)):hook&&hook(...args)},hasExplicitCallback=hook=>hook?isArray$2(hook)?hook.some(h2=>h2.length>1):hook.length>1:!1;function resolveTransitionProps(rawProps){let baseProps={};for(let key in rawProps)key in DOMTransitionPropsValidators||(baseProps[key]=rawProps[key]);if(rawProps.css===!1)return baseProps;let{name=`v`,type,duration,enterFromClass=`${name}-enter-from`,enterActiveClass=`${name}-enter-active`,enterToClass=`${name}-enter-to`,appearFromClass=enterFromClass,appearActiveClass=enterActiveClass,appearToClass=enterToClass,leaveFromClass=`${name}-leave-from`,leaveActiveClass=`${name}-leave-active`,leaveToClass=`${name}-leave-to`}=rawProps,durations=normalizeDuration(duration),enterDuration=durations&&durations[0],leaveDuration=durations&&durations[1],{onBeforeEnter,onEnter,onEnterCancelled,onLeave,onLeaveCancelled,onBeforeAppear=onBeforeEnter,onAppear=onEnter,onAppearCancelled=onEnterCancelled}=baseProps,finishEnter=(el,isAppear,done,isCancelled)=>{el._enterCancelled=isCancelled,removeTransitionClass(el,isAppear?appearToClass:enterToClass),removeTransitionClass(el,isAppear?appearActiveClass:enterActiveClass),done&&done()},finishLeave=(el,done)=>{el._isLeaving=!1,removeTransitionClass(el,leaveFromClass),removeTransitionClass(el,leaveToClass),removeTransitionClass(el,leaveActiveClass),done&&done()},makeEnterHook=isAppear=>(el,done)=>{let hook=isAppear?onAppear:onEnter,resolve$1=()=>finishEnter(el,isAppear,done);callHook(hook,[el,resolve$1]),nextFrame(()=>{removeTransitionClass(el,isAppear?appearFromClass:enterFromClass),addTransitionClass(el,isAppear?appearToClass:enterToClass),hasExplicitCallback(hook)||whenTransitionEnds(el,type,enterDuration,resolve$1)})};return extend(baseProps,{onBeforeEnter(el){callHook(onBeforeEnter,[el]),addTransitionClass(el,enterFromClass),addTransitionClass(el,enterActiveClass)},onBeforeAppear(el){callHook(onBeforeAppear,[el]),addTransitionClass(el,appearFromClass),addTransitionClass(el,appearActiveClass)},onEnter:makeEnterHook(!1),onAppear:makeEnterHook(!0),onLeave(el,done){el._isLeaving=!0;let resolve$1=()=>finishLeave(el,done);addTransitionClass(el,leaveFromClass),el._enterCancelled?(addTransitionClass(el,leaveActiveClass),forceReflow(el)):(forceReflow(el),addTransitionClass(el,leaveActiveClass)),nextFrame(()=>{el._isLeaving&&(removeTransitionClass(el,leaveFromClass),addTransitionClass(el,leaveToClass),hasExplicitCallback(onLeave)||whenTransitionEnds(el,type,leaveDuration,resolve$1))}),callHook(onLeave,[el,resolve$1])},onEnterCancelled(el){finishEnter(el,!1,void 0,!0),callHook(onEnterCancelled,[el])},onAppearCancelled(el){finishEnter(el,!0,void 0,!0),callHook(onAppearCancelled,[el])},onLeaveCancelled(el){finishLeave(el),callHook(onLeaveCancelled,[el])}})}function normalizeDuration(duration){if(duration==null)return null;if(isObject$1(duration))return[NumberOf(duration.enter),NumberOf(duration.leave)];{let n=NumberOf(duration);return[n,n]}}function NumberOf(val){return toNumber(val)}function addTransitionClass(el,cls){cls.split(/\s+/).forEach(c=>c&&el.classList.add(c)),(el[vtcKey]||(el[vtcKey]=new Set)).add(cls)}function removeTransitionClass(el,cls){cls.split(/\s+/).forEach(c=>c&&el.classList.remove(c));let _vtc=el[vtcKey];_vtc&&(_vtc.delete(cls),_vtc.size||(el[vtcKey]=void 0))}function nextFrame(cb){requestAnimationFrame(()=>{requestAnimationFrame(cb)})}var endId=0;function whenTransitionEnds(el,expectedType,explicitTimeout,resolve$1){let id=el._endId=++endId,resolveIfNotStale=()=>{id===el._endId&&resolve$1()};if(explicitTimeout!=null)return setTimeout(resolveIfNotStale,explicitTimeout);let{type,timeout,propCount}=getTransitionInfo(el,expectedType);if(!type)return resolve$1();let endEvent=type+`end`,ended=0,end=()=>{el.removeEventListener(endEvent,onEnd),resolveIfNotStale()},onEnd=e=>{e.target===el&&++ended>=propCount&&end()};setTimeout(()=>{ended(styles[key]||``).split(`, `),transitionDelays=getStyleProperties(`${TRANSITION$1}Delay`),transitionDurations=getStyleProperties(`${TRANSITION$1}Duration`),transitionTimeout=getTimeout(transitionDelays,transitionDurations),animationDelays=getStyleProperties(`${ANIMATION}Delay`),animationDurations=getStyleProperties(`${ANIMATION}Duration`),animationTimeout=getTimeout(animationDelays,animationDurations),type=null,timeout=0,propCount=0;expectedType===TRANSITION$1?transitionTimeout>0&&(type=TRANSITION$1,timeout=transitionTimeout,propCount=transitionDurations.length):expectedType===ANIMATION?animationTimeout>0&&(type=ANIMATION,timeout=animationTimeout,propCount=animationDurations.length):(timeout=Math.max(transitionTimeout,animationTimeout),type=timeout>0?transitionTimeout>animationTimeout?TRANSITION$1:ANIMATION:null,propCount=type?type===TRANSITION$1?transitionDurations.length:animationDurations.length:0);let hasTransform=type===TRANSITION$1&&/\b(?:transform|all)(?:,|$)/.test(getStyleProperties(`${TRANSITION$1}Property`).toString());return{type,timeout,propCount,hasTransform}}function getTimeout(delays,durations){for(;delays.lengthtoMs(d)+toMs(delays[i])))}function toMs(s){return s===`auto`?0:Number(s.slice(0,-1).replace(`,`,`.`))*1e3}function forceReflow(el){return(el?el.ownerDocument:document).body.offsetHeight}function patchClass(el,value,isSVG){let transitionClasses=el[vtcKey];transitionClasses&&(value=(value?[value,...transitionClasses]:[...transitionClasses]).join(` `)),value==null?el.removeAttribute(`class`):isSVG?el.setAttribute(`class`,value):el.className=value}var vShowOriginalDisplay=Symbol(`_vod`),vShowHidden=Symbol(`_vsh`),vShow={name:`show`,beforeMount(el,{value},{transition}){el[vShowOriginalDisplay]=el.style.display===`none`?``:el.style.display,transition&&value?transition.beforeEnter(el):setDisplay(el,value)},mounted(el,{value},{transition}){transition&&value&&transition.enter(el)},updated(el,{value,oldValue},{transition}){!value!=!oldValue&&(transition?value?(transition.beforeEnter(el),setDisplay(el,!0),transition.enter(el)):transition.leave(el,()=>{setDisplay(el,!1)}):setDisplay(el,value))},beforeUnmount(el,{value}){setDisplay(el,value)}};function setDisplay(el,value){el.style.display=value?el[vShowOriginalDisplay]:`none`,el[vShowHidden]=!value}function initVShowForSSR(){vShow.getSSRProps=({value})=>{if(!value)return{style:{display:`none`}}}}var CSS_VAR_TEXT=Symbol(``);function useCssVars(getter){let instance$1=getCurrentInstance();if(!instance$1)return;let updateTeleports=instance$1.ut=(vars=getter(instance$1.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${instance$1.uid}"]`)).forEach(node=>setVarsOnNode(node,vars))},setVars=()=>{let vars=getter(instance$1.proxy);instance$1.ce?setVarsOnNode(instance$1.ce,vars):setVarsOnVNode(instance$1.subTree,vars),updateTeleports(vars)};onBeforeUpdate(()=>{queuePostFlushCb(setVars)}),onMounted(()=>{watch(setVars,NOOP,{flush:`post`});let ob=new MutationObserver(setVars);ob.observe(instance$1.subTree.el.parentNode,{childList:!0}),onUnmounted(()=>ob.disconnect())})}function setVarsOnVNode(vnode,vars){if(vnode.shapeFlag&128){let suspense=vnode.suspense;vnode=suspense.activeBranch,suspense.pendingBranch&&!suspense.isHydrating&&suspense.effects.push(()=>{setVarsOnVNode(suspense.activeBranch,vars)})}for(;vnode.component;)vnode=vnode.component.subTree;if(vnode.shapeFlag&1&&vnode.el)setVarsOnNode(vnode.el,vars);else if(vnode.type===Fragment)vnode.children.forEach(c=>setVarsOnVNode(c,vars));else if(vnode.type===Static){let{el,anchor}=vnode;for(;el&&(setVarsOnNode(el,vars),el!==anchor);)el=el.nextSibling}}function setVarsOnNode(el,vars){if(el.nodeType===1){let style=el.style,cssText=``;for(let key in vars){let value=normalizeCssVarValue(vars[key]);style.setProperty(`--${key}`,value),cssText+=`--${key}: ${value};`}style[CSS_VAR_TEXT]=cssText}}var displayRE=/(?:^|;)\s*display\s*:/;function patchStyle(el,prev,next){let style=el.style,isCssString=isString$1(next),hasControlledDisplay=!1;if(next&&!isCssString){if(prev)if(isString$1(prev))for(let prevStyle of prev.split(`;`)){let key=prevStyle.slice(0,prevStyle.indexOf(`:`)).trim();next[key]??setStyle(style,key,``)}else for(let key in prev)next[key]??setStyle(style,key,``);for(let key in next)key===`display`&&(hasControlledDisplay=!0),setStyle(style,key,next[key])}else if(isCssString){if(prev!==next){let cssVarText=style[CSS_VAR_TEXT];cssVarText&&(next+=`;`+cssVarText),style.cssText=next,hasControlledDisplay=displayRE.test(next)}}else prev&&el.removeAttribute(`style`);vShowOriginalDisplay in el&&(el[vShowOriginalDisplay]=hasControlledDisplay?style.display:``,el[vShowHidden]&&(style.display=`none`))}var importantRE=/\s*!important$/;function setStyle(style,name,val){if(isArray$2(val))val.forEach(v=>setStyle(style,name,v));else if(val??=``,name.startsWith(`--`))style.setProperty(name,val);else{let prefixed=autoPrefix(style,name);importantRE.test(val)?style.setProperty(hyphenate(prefixed),val.replace(importantRE,``),`important`):style[prefixed]=val}}var prefixes=[`Webkit`,`Moz`,`ms`],prefixCache={};function autoPrefix(style,rawName){let cached=prefixCache[rawName];if(cached)return cached;let name=camelize(rawName);if(name!==`filter`&&name in style)return prefixCache[rawName]=name;name=capitalize$1(name);for(let i=0;icachedNow||=(p.then(()=>cachedNow=0),Date.now());function createInvoker(initialValue,instance$1){let invoker=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=invoker.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(e,invoker.value),instance$1,5,[e])};return invoker.value=initialValue,invoker.attached=getNow(),invoker}function patchStopImmediatePropagation(e,value){if(isArray$2(value)){let originalStop=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{originalStop.call(e),e._stopped=!0},value.map(fn=>e2=>!e2._stopped&&fn&&fn(e2))}else return value}var isNativeOn=key=>key.charCodeAt(0)===111&&key.charCodeAt(1)===110&&key.charCodeAt(2)>96&&key.charCodeAt(2)<123,patchProp=(el,key,prevValue,nextValue,namespace,parentComponent)=>{let isSVG=namespace===`svg`;key===`class`?patchClass(el,nextValue,isSVG):key===`style`?patchStyle(el,prevValue,nextValue):isOn(key)?isModelListener(key)||patchEvent(el,key,prevValue,nextValue,parentComponent):(key[0]===`.`?(key=key.slice(1),!0):key[0]===`^`?(key=key.slice(1),!1):shouldSetAsProp(el,key,nextValue,isSVG))?(patchDOMProp(el,key,nextValue),!el.tagName.includes(`-`)&&(key===`value`||key===`checked`||key===`selected`)&&patchAttr(el,key,nextValue,isSVG,parentComponent,key!==`value`)):el._isVueCE&&(/[A-Z]/.test(key)||!isString$1(nextValue))?patchDOMProp(el,camelize(key),nextValue,parentComponent,key):(key===`true-value`?el._trueValue=nextValue:key===`false-value`&&(el._falseValue=nextValue),patchAttr(el,key,nextValue,isSVG))};function shouldSetAsProp(el,key,value,isSVG){if(isSVG)return!!(key===`innerHTML`||key===`textContent`||key in el&&isNativeOn(key)&&isFunction$1(value));if(key===`spellcheck`||key===`draggable`||key===`translate`||key===`autocorrect`||key===`form`||key===`list`&&el.tagName===`INPUT`||key===`type`&&el.tagName===`TEXTAREA`)return!1;if(key===`width`||key===`height`){let tag=el.tagName;if(tag===`IMG`||tag===`VIDEO`||tag===`CANVAS`||tag===`SOURCE`)return!1}return isNativeOn(key)&&isString$1(value)?!1:key in el}var REMOVAL={};function defineCustomElement(options,extraOptions,_createApp){let Comp=defineComponent(options,extraOptions);isPlainObject$2(Comp)&&(Comp=extend({},Comp,extraOptions));class VueCustomElement extends VueElement{constructor(initialProps){super(Comp,initialProps,_createApp)}}return VueCustomElement.def=Comp,VueCustomElement}var defineSSRCustomElement=((options,extraOptions)=>defineCustomElement(options,extraOptions,createSSRApp)),BaseClass=typeof HTMLElement<`u`?HTMLElement:class{},VueElement=class VueElement extends BaseClass{constructor(_def,_props={},_createApp=createApp){super(),this._def=_def,this._props=_props,this._createApp=_createApp,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&_createApp!==createApp?this._root=this.shadowRoot:_def.shadowRoot===!1?this._root=this:(this.attachShadow(extend({},_def.shadowRootOptions,{mode:`open`})),this._root=this.shadowRoot)}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let parent=this;for(;parent&&=parent.parentNode||parent.host;)if(parent instanceof VueElement){this._parent=parent;break}this._instance||(this._resolved?this._mount(this._def):parent&&parent._pendingResolve?this._pendingResolve=parent._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(parent=this._parent){parent&&(this._instance.parent=parent._instance,this._inheritParentContext(parent))}_inheritParentContext(parent=this._parent){parent&&this._app&&Object.setPrototypeOf(this._app._context.provides,parent._instance.provides)}disconnectedCallback(){this._connected=!1,nextTick(()=>{this._connected||(this._ob&&=(this._ob.disconnect(),null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&=(this._teleportTargets.clear(),void 0))})}_processMutations(mutations){for(let m of mutations)this._setAttr(m.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let i=0;i{this._resolved=!0,this._pendingResolve=void 0;let{props,styles}=def$1,numberProps;if(props&&!isArray$2(props))for(let key in props){let opt=props[key];(opt===Number||opt&&opt.type===Number)&&(key in this._props&&(this._props[key]=toNumber(this._props[key])),(numberProps||=Object.create(null))[camelize(key)]=!0)}this._numberProps=numberProps,this._resolveProps(def$1),this.shadowRoot&&this._applyStyles(styles),this._mount(def$1)},asyncDef=this._def.__asyncLoader;asyncDef?this._pendingResolve=asyncDef().then(def$1=>{def$1.configureApp=this._def.configureApp,resolve$1(this._def=def$1,!0)}):resolve$1(this._def)}_mount(def$1){this._app=this._createApp(def$1),this._inheritParentContext(),def$1.configureApp&&def$1.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let exposed=this._instance&&this._instance.exposed;if(exposed)for(let key in exposed)hasOwn$1(this,key)||Object.defineProperty(this,key,{get:()=>unref(exposed[key])})}_resolveProps(def$1){let{props}=def$1,declaredPropKeys=isArray$2(props)?props:Object.keys(props||{});for(let key of Object.keys(this))key[0]!==`_`&&declaredPropKeys.includes(key)&&this._setProp(key,this[key]);for(let key of declaredPropKeys.map(camelize))Object.defineProperty(this,key,{get(){return this._getProp(key)},set(val){this._setProp(key,val,!0,!0)}})}_setAttr(key){if(key.startsWith(`data-v-`))return;let has$1=this.hasAttribute(key),value=has$1?this.getAttribute(key):REMOVAL,camelKey=camelize(key);has$1&&this._numberProps&&this._numberProps[camelKey]&&(value=toNumber(value)),this._setProp(camelKey,value,!1,!0)}_getProp(key){return this._props[key]}_setProp(key,val,shouldReflect=!0,shouldUpdate=!1){if(val!==this._props[key]&&(val===REMOVAL?delete this._props[key]:(this._props[key]=val,key===`key`&&this._app&&(this._app._ceVNode.key=val)),shouldUpdate&&this._instance&&this._update(),shouldReflect)){let ob=this._ob;ob&&(this._processMutations(ob.takeRecords()),ob.disconnect()),val===!0?this.setAttribute(hyphenate(key),``):typeof val==`string`||typeof val==`number`?this.setAttribute(hyphenate(key),val+``):val||this.removeAttribute(hyphenate(key)),ob&&ob.observe(this,{attributes:!0})}}_update(){let vnode=this._createVNode();this._app&&(vnode.appContext=this._app._context),render(vnode,this._root)}_createVNode(){let baseProps={};this.shadowRoot||(baseProps.onVnodeMounted=baseProps.onVnodeUpdated=this._renderSlots.bind(this));let vnode=createVNode(this._def,extend(baseProps,this._props));return this._instance||(vnode.ce=instance$1=>{this._instance=instance$1,instance$1.ce=this,instance$1.isCE=!0;let dispatch=(event,args)=>{this.dispatchEvent(new CustomEvent(event,isPlainObject$2(args[0])?extend({detail:args},args[0]):{detail:args}))};instance$1.emit=(event,...args)=>{dispatch(event,args),hyphenate(event)!==event&&dispatch(hyphenate(event),args)},this._setParent()}),vnode}_applyStyles(styles,owner){if(!styles)return;if(owner){if(owner===this._def||this._styleChildren.has(owner))return;this._styleChildren.add(owner)}let nonce=this._nonce;for(let i=styles.length-1;i>=0;i--){let s=document.createElement(`style`);nonce&&s.setAttribute(`nonce`,nonce),s.textContent=styles[i],this.shadowRoot.prepend(s)}}_parseSlots(){let slots=this._slots={},n;for(;n=this.firstChild;){let slotName=n.nodeType===1&&n.getAttribute(`slot`)||`default`;(slots[slotName]||(slots[slotName]=[])).push(n),this.removeChild(n)}}_renderSlots(){let outlets=this._getSlots(),scopeId=this._instance.type.__scopeId;for(let i=0;i(res.push(...Array.from(i.querySelectorAll(`slot`))),res),[])}_injectChildStyle(comp){this._applyStyles(comp.styles,comp)}_removeChildStyle(comp){}};function useHost(caller){let instance$1=getCurrentInstance();return instance$1&&instance$1.ce||null}function useShadowRoot(){let el=useHost();return el&&el.shadowRoot}function useCssModule(name=`$style`){{let instance$1=getCurrentInstance();if(!instance$1)return EMPTY_OBJ;let modules=instance$1.type.__cssModules;return modules&&modules[name]||EMPTY_OBJ}}var positionMap=new WeakMap,newPositionMap=new WeakMap,moveCbKey=Symbol(`_moveCb`),enterCbKey=Symbol(`_enterCb`),decorate=t=>(delete t.props.mode,t),TransitionGroup=decorate({name:`TransitionGroup`,props:extend({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(props,{slots}){let instance$1=getCurrentInstance(),state=useTransitionState(),prevChildren,children;return onUpdated(()=>{if(!prevChildren.length)return;let moveClass=props.moveClass||`${props.name||`v`}-move`;if(!hasCSSTransform(prevChildren[0].el,instance$1.vnode.el,moveClass)){prevChildren=[];return}prevChildren.forEach(callPendingCbs),prevChildren.forEach(recordPosition);let movedChildren=prevChildren.filter(applyTranslation);forceReflow(instance$1.vnode.el),movedChildren.forEach(c=>{let el=c.el,style=el.style;addTransitionClass(el,moveClass),style.transform=style.webkitTransform=style.transitionDuration=``;let cb=el[moveCbKey]=e=>{e&&e.target!==el||(!e||e.propertyName.endsWith(`transform`))&&(el.removeEventListener(`transitionend`,cb),el[moveCbKey]=null,removeTransitionClass(el,moveClass))};el.addEventListener(`transitionend`,cb)}),prevChildren=[]}),()=>{let rawProps=toRaw(props),cssTransitionProps=resolveTransitionProps(rawProps),tag=rawProps.tag||Fragment;if(prevChildren=[],children)for(let i=0;i{cls.split(/\s+/).forEach(c=>c&&clone.classList.remove(c))}),moveClass.split(/\s+/).forEach(c=>c&&clone.classList.add(c)),clone.style.display=`none`;let container=root.nodeType===1?root:root.parentNode;container.appendChild(clone);let{hasTransform}=getTransitionInfo(clone);return container.removeChild(clone),hasTransform}var getModelAssigner=vnode=>{let fn=vnode.props[`onUpdate:modelValue`]||!1;return isArray$2(fn)?value=>invokeArrayFns(fn,value):fn};function onCompositionStart(e){e.target.composing=!0}function onCompositionEnd(e){let target=e.target;target.composing&&(target.composing=!1,target.dispatchEvent(new Event(`input`)))}var assignKey=Symbol(`_assign`),vModelText={created(el,{modifiers:{lazy,trim,number}},vnode){el[assignKey]=getModelAssigner(vnode);let castToNumber=number||vnode.props&&vnode.props.type===`number`;addEventListener$1(el,lazy?`change`:`input`,e=>{if(e.target.composing)return;let domValue=el.value;trim&&(domValue=domValue.trim()),castToNumber&&(domValue=looseToNumber(domValue)),el[assignKey](domValue)}),trim&&addEventListener$1(el,`change`,()=>{el.value=el.value.trim()}),lazy||(addEventListener$1(el,`compositionstart`,onCompositionStart),addEventListener$1(el,`compositionend`,onCompositionEnd),addEventListener$1(el,`change`,onCompositionEnd))},mounted(el,{value}){el.value=value??``},beforeUpdate(el,{value,oldValue,modifiers:{lazy,trim,number}},vnode){if(el[assignKey]=getModelAssigner(vnode),el.composing)return;let elValue=(number||el.type===`number`)&&!/^0\d/.test(el.value)?looseToNumber(el.value):el.value,newValue=value??``;elValue!==newValue&&(document.activeElement===el&&el.type!==`range`&&(lazy&&value===oldValue||trim&&el.value.trim()===newValue)||(el.value=newValue))}},vModelCheckbox={deep:!0,created(el,_,vnode){el[assignKey]=getModelAssigner(vnode),addEventListener$1(el,`change`,()=>{let modelValue=el._modelValue,elementValue=getValue(el),checked=el.checked,assign$3=el[assignKey];if(isArray$2(modelValue)){let index=looseIndexOf(modelValue,elementValue),found=index!==-1;if(checked&&!found)assign$3(modelValue.concat(elementValue));else if(!checked&&found){let filtered=[...modelValue];filtered.splice(index,1),assign$3(filtered)}}else if(isSet(modelValue)){let cloned=new Set(modelValue);checked?cloned.add(elementValue):cloned.delete(elementValue),assign$3(cloned)}else assign$3(getCheckboxValue(el,checked))})},mounted:setChecked,beforeUpdate(el,binding,vnode){el[assignKey]=getModelAssigner(vnode),setChecked(el,binding,vnode)}};function setChecked(el,{value,oldValue},vnode){el._modelValue=value;let checked;if(isArray$2(value))checked=looseIndexOf(value,vnode.props.value)>-1;else if(isSet(value))checked=value.has(vnode.props.value);else{if(value===oldValue)return;checked=looseEqual(value,getCheckboxValue(el,!0))}el.checked!==checked&&(el.checked=checked)}var vModelRadio={created(el,{value},vnode){el.checked=looseEqual(value,vnode.props.value),el[assignKey]=getModelAssigner(vnode),addEventListener$1(el,`change`,()=>{el[assignKey](getValue(el))})},beforeUpdate(el,{value,oldValue},vnode){el[assignKey]=getModelAssigner(vnode),value!==oldValue&&(el.checked=looseEqual(value,vnode.props.value))}},vModelSelect={deep:!0,created(el,{value,modifiers:{number}},vnode){let isSetModel=isSet(value);addEventListener$1(el,`change`,()=>{let selectedVal=Array.prototype.filter.call(el.options,o=>o.selected).map(o=>number?looseToNumber(getValue(o)):getValue(o));el[assignKey](el.multiple?isSetModel?new Set(selectedVal):selectedVal:selectedVal[0]),el._assigning=!0,nextTick(()=>{el._assigning=!1})}),el[assignKey]=getModelAssigner(vnode)},mounted(el,{value}){setSelected(el,value)},beforeUpdate(el,_binding,vnode){el[assignKey]=getModelAssigner(vnode)},updated(el,{value}){el._assigning||setSelected(el,value)}};function setSelected(el,value){let isMultiple=el.multiple,isArrayValue=isArray$2(value);if(!(isMultiple&&!isArrayValue&&!isSet(value))){for(let i=0,l=el.options.length;iString(v)===String(optionValue)):option.selected=looseIndexOf(value,optionValue)>-1}else option.selected=value.has(optionValue);else if(looseEqual(getValue(option),value)){el.selectedIndex!==i&&(el.selectedIndex=i);return}}!isMultiple&&el.selectedIndex!==-1&&(el.selectedIndex=-1)}}function getValue(el){return`_value`in el?el._value:el.value}function getCheckboxValue(el,checked){let key=checked?`_trueValue`:`_falseValue`;return key in el?el[key]:checked}var vModelDynamic={created(el,binding,vnode){callModelHook(el,binding,vnode,null,`created`)},mounted(el,binding,vnode){callModelHook(el,binding,vnode,null,`mounted`)},beforeUpdate(el,binding,vnode,prevVNode){callModelHook(el,binding,vnode,prevVNode,`beforeUpdate`)},updated(el,binding,vnode,prevVNode){callModelHook(el,binding,vnode,prevVNode,`updated`)}};function resolveDynamicModel(tagName,type){switch(tagName){case`SELECT`:return vModelSelect;case`TEXTAREA`:return vModelText;default:switch(type){case`checkbox`:return vModelCheckbox;case`radio`:return vModelRadio;default:return vModelText}}}function callModelHook(el,binding,vnode,prevVNode,hook){let fn=resolveDynamicModel(el.tagName,vnode.props&&vnode.props.type)[hook];fn&&fn(el,binding,vnode,prevVNode)}function initVModelForSSR(){vModelText.getSSRProps=({value})=>({value}),vModelRadio.getSSRProps=({value},vnode)=>{if(vnode.props&&looseEqual(vnode.props.value,value))return{checked:!0}},vModelCheckbox.getSSRProps=({value},vnode)=>{if(isArray$2(value)){if(vnode.props&&looseIndexOf(value,vnode.props.value)>-1)return{checked:!0}}else if(isSet(value)){if(vnode.props&&value.has(vnode.props.value))return{checked:!0}}else if(value)return{checked:!0}},vModelDynamic.getSSRProps=(binding,vnode)=>{if(typeof vnode.type!=`string`)return;let modelToUse=resolveDynamicModel(vnode.type.toUpperCase(),vnode.props&&vnode.props.type);if(modelToUse.getSSRProps)return modelToUse.getSSRProps(binding,vnode)}}var systemModifiers=[`ctrl`,`shift`,`alt`,`meta`],modifierGuards={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,modifiers)=>systemModifiers.some(m=>e[`${m}Key`]&&!modifiers.includes(m))},withModifiers=(fn,modifiers)=>{let cache$1=fn._withMods||={},cacheKey=modifiers.join(`.`);return cache$1[cacheKey]||(cache$1[cacheKey]=((event,...args)=>{for(let i=0;i{let cache$1=fn._withKeys||={},cacheKey=modifiers.join(`.`);return cache$1[cacheKey]||(cache$1[cacheKey]=(event=>{if(!(`key`in event))return;let eventKey=hyphenate(event.key);if(modifiers.some(k=>k===eventKey||keyNames[k]===eventKey))return fn(event)}))},rendererOptions=extend({patchProp},nodeOps),renderer,enabledHydration=!1;function ensureRenderer(){return renderer||=createRenderer(rendererOptions)}function ensureHydrationRenderer(){return renderer=enabledHydration?renderer:createHydrationRenderer(rendererOptions),enabledHydration=!0,renderer}var render=((...args)=>{ensureRenderer().render(...args)}),hydrate=((...args)=>{ensureHydrationRenderer().hydrate(...args)}),createApp=((...args)=>{let app$1=ensureRenderer().createApp(...args),{mount}=app$1;return app$1.mount=containerOrSelector=>{let container=normalizeContainer(containerOrSelector);if(!container)return;let component=app$1._component;!isFunction$1(component)&&!component.render&&!component.template&&(component.template=container.innerHTML),container.nodeType===1&&(container.textContent=``);let proxy=mount(container,!1,resolveRootNamespace(container));return container instanceof Element&&(container.removeAttribute(`v-cloak`),container.setAttribute(`data-v-app`,``)),proxy},app$1}),createSSRApp=((...args)=>{let app$1=ensureHydrationRenderer().createApp(...args),{mount}=app$1;return app$1.mount=containerOrSelector=>{let container=normalizeContainer(containerOrSelector);if(container)return mount(container,!0,resolveRootNamespace(container))},app$1});function resolveRootNamespace(container){if(container instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&container instanceof MathMLElement)return`mathml`}function normalizeContainer(container){return isString$1(container)?document.querySelector(container):container}var ssrDirectiveInitialized=!1,initDirectivesForSSR=()=>{ssrDirectiveInitialized||(ssrDirectiveInitialized=!0,initVModelForSSR(),initVShowForSSR())},FRAGMENT=Symbol(``),TELEPORT=Symbol(``),SUSPENSE=Symbol(``),KEEP_ALIVE=Symbol(``),BASE_TRANSITION=Symbol(``),OPEN_BLOCK=Symbol(``),CREATE_BLOCK=Symbol(``),CREATE_ELEMENT_BLOCK=Symbol(``),CREATE_VNODE=Symbol(``),CREATE_ELEMENT_VNODE=Symbol(``),CREATE_COMMENT=Symbol(``),CREATE_TEXT=Symbol(``),CREATE_STATIC=Symbol(``),RESOLVE_COMPONENT=Symbol(``),RESOLVE_DYNAMIC_COMPONENT=Symbol(``),RESOLVE_DIRECTIVE=Symbol(``),RESOLVE_FILTER=Symbol(``),WITH_DIRECTIVES=Symbol(``),RENDER_LIST=Symbol(``),RENDER_SLOT=Symbol(``),CREATE_SLOTS=Symbol(``),TO_DISPLAY_STRING=Symbol(``),MERGE_PROPS=Symbol(``),NORMALIZE_CLASS=Symbol(``),NORMALIZE_STYLE=Symbol(``),NORMALIZE_PROPS=Symbol(``),GUARD_REACTIVE_PROPS=Symbol(``),TO_HANDLERS=Symbol(``),CAMELIZE=Symbol(``),CAPITALIZE=Symbol(``),TO_HANDLER_KEY=Symbol(``),SET_BLOCK_TRACKING=Symbol(``),PUSH_SCOPE_ID=Symbol(``),POP_SCOPE_ID=Symbol(``),WITH_CTX=Symbol(``),UNREF=Symbol(``),IS_REF=Symbol(``),WITH_MEMO=Symbol(``),IS_MEMO_SAME=Symbol(``),helperNameMap={[FRAGMENT]:`Fragment`,[TELEPORT]:`Teleport`,[SUSPENSE]:`Suspense`,[KEEP_ALIVE]:`KeepAlive`,[BASE_TRANSITION]:`BaseTransition`,[OPEN_BLOCK]:`openBlock`,[CREATE_BLOCK]:`createBlock`,[CREATE_ELEMENT_BLOCK]:`createElementBlock`,[CREATE_VNODE]:`createVNode`,[CREATE_ELEMENT_VNODE]:`createElementVNode`,[CREATE_COMMENT]:`createCommentVNode`,[CREATE_TEXT]:`createTextVNode`,[CREATE_STATIC]:`createStaticVNode`,[RESOLVE_COMPONENT]:`resolveComponent`,[RESOLVE_DYNAMIC_COMPONENT]:`resolveDynamicComponent`,[RESOLVE_DIRECTIVE]:`resolveDirective`,[RESOLVE_FILTER]:`resolveFilter`,[WITH_DIRECTIVES]:`withDirectives`,[RENDER_LIST]:`renderList`,[RENDER_SLOT]:`renderSlot`,[CREATE_SLOTS]:`createSlots`,[TO_DISPLAY_STRING]:`toDisplayString`,[MERGE_PROPS]:`mergeProps`,[NORMALIZE_CLASS]:`normalizeClass`,[NORMALIZE_STYLE]:`normalizeStyle`,[NORMALIZE_PROPS]:`normalizeProps`,[GUARD_REACTIVE_PROPS]:`guardReactiveProps`,[TO_HANDLERS]:`toHandlers`,[CAMELIZE]:`camelize`,[CAPITALIZE]:`capitalize`,[TO_HANDLER_KEY]:`toHandlerKey`,[SET_BLOCK_TRACKING]:`setBlockTracking`,[PUSH_SCOPE_ID]:`pushScopeId`,[POP_SCOPE_ID]:`popScopeId`,[WITH_CTX]:`withCtx`,[UNREF]:`unref`,[IS_REF]:`isRef`,[WITH_MEMO]:`withMemo`,[IS_MEMO_SAME]:`isMemoSame`};function registerRuntimeHelpers(helpers){Object.getOwnPropertySymbols(helpers).forEach(s=>{helperNameMap[s]=helpers[s]})}var locStub={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:``};function createRoot(children,source=``){return{type:0,source,children,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:locStub}}function createVNodeCall(context,tag,props,children,patchFlag,dynamicProps,directives,isBlock=!1,disableTracking=!1,isComponent$1=!1,loc=locStub){return context&&(isBlock?(context.helper(OPEN_BLOCK),context.helper(getVNodeBlockHelper(context.inSSR,isComponent$1))):context.helper(getVNodeHelper(context.inSSR,isComponent$1)),directives&&context.helper(WITH_DIRECTIVES)),{type:13,tag,props,children,patchFlag,dynamicProps,directives,isBlock,disableTracking,isComponent:isComponent$1,loc}}function createArrayExpression(elements,loc=locStub){return{type:17,loc,elements}}function createObjectExpression(properties,loc=locStub){return{type:15,loc,properties}}function createObjectProperty(key,value){return{type:16,loc:locStub,key:isString$1(key)?createSimpleExpression(key,!0):key,value}}function createSimpleExpression(content,isStatic=!1,loc=locStub,constType=0){return{type:4,loc,content,isStatic,constType:isStatic?3:constType}}function createCompoundExpression(children,loc=locStub){return{type:8,loc,children}}function createCallExpression(callee,args=[],loc=locStub){return{type:14,loc,callee,arguments:args}}function createFunctionExpression(params,returns=void 0,newline=!1,isSlot=!1,loc=locStub){return{type:18,params,returns,newline,isSlot,loc}}function createConditionalExpression(test,consequent,alternate,newline=!0){return{type:19,test,consequent,alternate,newline,loc:locStub}}function createCacheExpression(index,value,needPauseTracking=!1,inVOnce=!1){return{type:20,index,value,needPauseTracking,inVOnce,needArraySpread:!1,loc:locStub}}function createBlockStatement(body){return{type:21,body,loc:locStub}}function getVNodeHelper(ssr,isComponent$1){return ssr||isComponent$1?CREATE_VNODE:CREATE_ELEMENT_VNODE}function getVNodeBlockHelper(ssr,isComponent$1){return ssr||isComponent$1?CREATE_BLOCK:CREATE_ELEMENT_BLOCK}function convertToBlock(node,{helper,removeHelper,inSSR}){node.isBlock||(node.isBlock=!0,removeHelper(getVNodeHelper(inSSR,node.isComponent)),helper(OPEN_BLOCK),helper(getVNodeBlockHelper(inSSR,node.isComponent)))}var defaultDelimitersOpen=new Uint8Array([123,123]),defaultDelimitersClose=new Uint8Array([125,125]);function isTagStartChar(c){return c>=97&&c<=122||c>=65&&c<=90}function isWhitespace(c){return c===32||c===10||c===9||c===12||c===13}function isEndOfTagSection(c){return c===47||c===62||isWhitespace(c)}function toCharCodes(str){let ret=new Uint8Array(str.length);for(let i=0;i=0;i--){let newlineIndex=this.newlines[i];if(index>newlineIndex){line=i+2,column=index-newlineIndex;break}}return{column,line,offset:index}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(c){c===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):!this.inVPre&&c===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(c))}stateInterpolationOpen(c){if(c===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let start=this.index+1-this.delimiterOpen.length;start>this.sectionStart&&this.cbs.ontext(this.sectionStart,start),this.state=3,this.sectionStart=start}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(c)):(this.state=1,this.stateText(c))}stateInterpolation(c){c===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(c))}stateInterpolationClose(c){c===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(c))}stateSpecialStartSequence(c){let isEnd=this.sequenceIndex===this.currentSequence.length;if(!(isEnd?isEndOfTagSection(c):(c|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!isEnd){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(c)}stateInRCDATA(c){if(this.sequenceIndex===this.currentSequence.length){if(c===62||isWhitespace(c)){let endOfText=this.index-this.currentSequence.length;if(this.sectionStart=endIndex||(this.state===28?this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,endIndex):this.cbs.oncomment(this.sectionStart,endIndex):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,endIndex))}emitCodePoint(cp,consumed){}};function getCompatValue(key,{compatConfig}){let value=compatConfig&&compatConfig[key];return key===`MODE`?value||3:value}function isCompatEnabled(key,context){let mode=getCompatValue(`MODE`,context),value=getCompatValue(key,context);return mode===3?value===!0:value!==!1}function checkCompatEnabled(key,context,loc,...args){return isCompatEnabled(key,context)}function defaultOnError$1(error){throw error}function defaultOnWarn(msg){}function createCompilerError(code,loc,messages,additionalMessage){let msg=`https://vuejs.org/error-reference/#compiler-${code}`,error=SyntaxError(String(msg));return error.code=code,error.loc=loc,error}var isStaticExp=p$1=>p$1.type===4&&p$1.isStatic;function isCoreComponent(tag){switch(tag){case`Teleport`:case`teleport`:return TELEPORT;case`Suspense`:case`suspense`:return SUSPENSE;case`KeepAlive`:case`keep-alive`:return KEEP_ALIVE;case`BaseTransition`:case`base-transition`:return BASE_TRANSITION}}var nonIdentifierRE=/^$|^\d|[^\$\w\xA0-\uFFFF]/,isSimpleIdentifier=name=>!nonIdentifierRE.test(name),validFirstIdentCharRE=/[A-Za-z_$\xA0-\uFFFF]/,validIdentCharRE=/[\.\?\w$\xA0-\uFFFF]/,whitespaceRE=/\s+[.[]\s*|\s*[.[]\s+/g,getExpSource=exp=>exp.type===4?exp.content:exp.loc.source,isMemberExpressionBrowser=exp=>{let path=getExpSource(exp).trim().replace(whitespaceRE,s=>s.trim()),state=0,stateStack$1=[],currentOpenBracketCount=0,currentOpenParensCount=0,currentStringType=null;for(let i=0;i|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/,isFnExpressionBrowser=exp=>fnExpRE.test(getExpSource(exp)),isFnExpression=isFnExpressionBrowser;function findDir(node,name,allowEmpty=!1){for(let i=0;ip$1.type===7&&p$1.name===`bind`&&(!p$1.arg||p$1.arg.type!==4||!p$1.arg.isStatic))}function isText$1(node){return node.type===5||node.type===2}function isVPre(p$1){return p$1.type===7&&p$1.name===`pre`}function isVSlot(p$1){return p$1.type===7&&p$1.name===`slot`}function isTemplateNode(node){return node.type===1&&node.tagType===3}function isSlotOutlet(node){return node.type===1&&node.tagType===2}var propsHelperSet=new Set([NORMALIZE_PROPS,GUARD_REACTIVE_PROPS]);function getUnnormalizedProps(props,callPath=[]){if(props&&!isString$1(props)&&props.type===14){let callee=props.callee;if(!isString$1(callee)&&propsHelperSet.has(callee))return getUnnormalizedProps(props.arguments[0],callPath.concat(props))}return[props,callPath]}function injectProp(node,prop,context){let propsWithInjection,props=node.type===13?node.props:node.arguments[2],callPath=[],parentCall;if(props&&!isString$1(props)&&props.type===14){let ret=getUnnormalizedProps(props);props=ret[0],callPath=ret[1],parentCall=callPath[callPath.length-1]}if(props==null||isString$1(props))propsWithInjection=createObjectExpression([prop]);else if(props.type===14){let first=props.arguments[0];!isString$1(first)&&first.type===15?hasProp(prop,first)||first.properties.unshift(prop):props.callee===TO_HANDLERS?propsWithInjection=createCallExpression(context.helper(MERGE_PROPS),[createObjectExpression([prop]),props]):props.arguments.unshift(createObjectExpression([prop])),!propsWithInjection&&(propsWithInjection=props)}else props.type===15?(hasProp(prop,props)||props.properties.unshift(prop),propsWithInjection=props):(propsWithInjection=createCallExpression(context.helper(MERGE_PROPS),[createObjectExpression([prop]),props]),parentCall&&parentCall.callee===GUARD_REACTIVE_PROPS&&(parentCall=callPath[callPath.length-2]));node.type===13?parentCall?parentCall.arguments[0]=propsWithInjection:node.props=propsWithInjection:parentCall?parentCall.arguments[0]=propsWithInjection:node.arguments[2]=propsWithInjection}function hasProp(prop,props){let result=!1;if(prop.key.type===4){let propKeyName=prop.key.content;result=props.properties.some(p$1=>p$1.key.type===4&&p$1.key.content===propKeyName)}return result}function toValidAssetId(name,type){return`_${type}_${name.replace(/[^\w]/g,(searchValue,replaceValue)=>searchValue===`-`?`_`:name.charCodeAt(replaceValue).toString())}`}function getMemoedVNodeCall(node){return node.type===14&&node.callee===WITH_MEMO?node.arguments[1].returns:node}var forAliasRE=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,defaultParserOptions={parseMode:`base`,ns:0,delimiters:[`{{`,`}}`],getNamespace:()=>0,isVoidTag:NO,isPreTag:NO,isIgnoreNewlineTag:NO,isCustomElement:NO,onError:defaultOnError$1,onWarn:defaultOnWarn,comments:!1,prefixIdentifiers:!1},currentOptions=defaultParserOptions,currentRoot=null,currentInput=``,currentOpenTag=null,currentProp=null,currentAttrValue=``,currentAttrStartIndex=-1,currentAttrEndIndex=-1,inPre=0,inVPre=!1,currentVPreBoundary=null,stack=[],tokenizer=new Tokenizer(stack,{onerr:emitError,ontext(start,end){onText(getSlice(start,end),start,end)},ontextentity(char,start,end){onText(char,start,end)},oninterpolation(start,end){if(inVPre)return onText(getSlice(start,end),start,end);let innerStart=start+tokenizer.delimiterOpen.length,innerEnd=end-tokenizer.delimiterClose.length;for(;isWhitespace(currentInput.charCodeAt(innerStart));)innerStart++;for(;isWhitespace(currentInput.charCodeAt(innerEnd-1));)innerEnd--;let exp=getSlice(innerStart,innerEnd);exp.includes(`&`)&&(exp=currentOptions.decodeEntities(exp,!1)),addNode({type:5,content:createExp(exp,!1,getLoc(innerStart,innerEnd)),loc:getLoc(start,end)})},onopentagname(start,end){let name=getSlice(start,end);currentOpenTag={type:1,tag:name,ns:currentOptions.getNamespace(name,stack[0],currentOptions.ns),tagType:0,props:[],children:[],loc:getLoc(start-1,end),codegenNode:void 0}},onopentagend(end){endOpenTag(end)},onclosetag(start,end){let name=getSlice(start,end);if(!currentOptions.isVoidTag(name)){let found=!1;for(let i=0;i0&&emitError(24,stack[0].loc.start.offset);for(let j=0;j<=i;j++)onCloseTag(stack.shift(),end,j(p$1.type===7?p$1.rawName:p$1.name)===name)&&emitError(2,start)},onattribend(quote,end){if(currentOpenTag&¤tProp){if(setLocEnd(currentProp.loc,end),quote!==0)if(currentAttrValue.includes(`&`)&&(currentAttrValue=currentOptions.decodeEntities(currentAttrValue,!0)),currentProp.type===6)currentProp.name===`class`&&(currentAttrValue=condense(currentAttrValue).trim()),quote===1&&!currentAttrValue&&emitError(13,end),currentProp.value={type:2,content:currentAttrValue,loc:quote===1?getLoc(currentAttrStartIndex,currentAttrEndIndex):getLoc(currentAttrStartIndex-1,currentAttrEndIndex+1)},tokenizer.inSFCRoot&¤tOpenTag.tag===`template`&¤tProp.name===`lang`&¤tAttrValue&¤tAttrValue!==`html`&&tokenizer.enterRCDATA(toCharCodes(`mod.content===`sync`))>-1&&checkCompatEnabled(`COMPILER_V_BIND_SYNC`,currentOptions,currentProp.loc,currentProp.arg.loc.source)&&(currentProp.name=`model`,currentProp.modifiers.splice(syncIndex,1))}(currentProp.type!==7||currentProp.name!==`pre`)&¤tOpenTag.props.push(currentProp)}currentAttrValue=``,currentAttrStartIndex=currentAttrEndIndex=-1},oncomment(start,end){currentOptions.comments&&addNode({type:3,content:getSlice(start,end),loc:getLoc(start-4,end+3)})},onend(){let end=currentInput.length;for(let index=0;index{let start=loc.start.offset+offset$2;return createExp(content,!1,getLoc(start,start+content.length),0,asParam?1:0)},result={source:createAliasExpression(RHS.trim(),exp.indexOf(RHS,LHS.length)),value:void 0,key:void 0,index:void 0,finalized:!1},valueContent=LHS.trim().replace(stripParensRE,``).trim(),trimmedOffset=LHS.indexOf(valueContent),iteratorMatch=valueContent.match(forIteratorRE);if(iteratorMatch){valueContent=valueContent.replace(forIteratorRE,``).trim();let keyContent=iteratorMatch[1].trim(),keyOffset;if(keyContent&&(keyOffset=exp.indexOf(keyContent,trimmedOffset+valueContent.length),result.key=createAliasExpression(keyContent,keyOffset,!0)),iteratorMatch[2]){let indexContent=iteratorMatch[2].trim();indexContent&&(result.index=createAliasExpression(indexContent,exp.indexOf(indexContent,result.key?keyOffset+keyContent.length:trimmedOffset+valueContent.length),!0))}}return valueContent&&(result.value=createAliasExpression(valueContent,trimmedOffset,!0)),result}function getSlice(start,end){return currentInput.slice(start,end)}function endOpenTag(end){tokenizer.inSFCRoot&&(currentOpenTag.innerLoc=getLoc(end+1,end+1)),addNode(currentOpenTag);let{tag,ns}=currentOpenTag;ns===0&¤tOptions.isPreTag(tag)&&inPre++,currentOptions.isVoidTag(tag)?onCloseTag(currentOpenTag,end):(stack.unshift(currentOpenTag),(ns===1||ns===2)&&(tokenizer.inXML=!0)),currentOpenTag=null}function onText(content,start,end){{let tag=stack[0]&&stack[0].tag;tag!==`script`&&tag!==`style`&&content.includes(`&`)&&(content=currentOptions.decodeEntities(content,!1))}let parent=stack[0]||currentRoot,lastNode=parent.children[parent.children.length-1];lastNode&&lastNode.type===2?(lastNode.content+=content,setLocEnd(lastNode.loc,end)):parent.children.push({type:2,content,loc:getLoc(start,end)})}function onCloseTag(el,end,isImplied=!1){isImplied?setLocEnd(el.loc,backTrack(end,60)):setLocEnd(el.loc,lookAhead(end,62)+1),tokenizer.inSFCRoot&&(el.children.length?el.innerLoc.end=extend({},el.children[el.children.length-1].loc.end):el.innerLoc.end=extend({},el.innerLoc.start),el.innerLoc.source=getSlice(el.innerLoc.start.offset,el.innerLoc.end.offset));let{tag,ns,children}=el;if(inVPre||(tag===`slot`?el.tagType=2:isFragmentTemplate(el)?el.tagType=3:isComponent(el)&&(el.tagType=1)),tokenizer.inRCDATA||(el.children=condenseWhitespace(children)),ns===0&¤tOptions.isIgnoreNewlineTag(tag)){let first=children[0];first&&first.type===2&&(first.content=first.content.replace(/^\r?\n/,``))}ns===0&¤tOptions.isPreTag(tag)&&inPre--,currentVPreBoundary===el&&(inVPre=tokenizer.inVPre=!1,currentVPreBoundary=null),tokenizer.inXML&&(stack[0]?stack[0].ns:currentOptions.ns)===0&&(tokenizer.inXML=!1);{let props=el.props;if(!tokenizer.inSFCRoot&&isCompatEnabled(`COMPILER_NATIVE_TEMPLATE`,currentOptions)&&el.tag===`template`&&!isFragmentTemplate(el)){let parent=stack[0]||currentRoot,index=parent.children.indexOf(el);parent.children.splice(index,1,...el.children)}let inlineTemplateProp=props.find(p$1=>p$1.type===6&&p$1.name===`inline-template`);inlineTemplateProp&&checkCompatEnabled(`COMPILER_INLINE_TEMPLATE`,currentOptions,inlineTemplateProp.loc)&&el.children.length&&(inlineTemplateProp.value={type:2,content:getSlice(el.children[0].loc.start.offset,el.children[el.children.length-1].loc.end.offset),loc:inlineTemplateProp.loc})}}function lookAhead(index,c){let i=index;for(;currentInput.charCodeAt(i)!==c&&i=0;)i--;return i}var specialTemplateDir=new Set([`if`,`else`,`else-if`,`for`,`slot`]);function isFragmentTemplate({tag,props}){if(tag===`template`){for(let i=0;i64&&c<91}var windowsNewlineRE=/\r\n/g;function condenseWhitespace(nodes){let shouldCondense=currentOptions.whitespace!==`preserve`,removedWhitespace=!1;for(let i=0;ix.type!==3);return children.length===1&&children[0].type===1&&!isSlotOutlet(children[0])?children[0]:null}function walk(node,parent,context,doNotHoistNode=!1,inFor=!1){let{children}=node,toCache=[];for(let i=0;i0){if(constantType>=2){child.codegenNode.patchFlag=-1,toCache.push(child);continue}}else{let codegenNode=child.codegenNode;if(codegenNode.type===13){let flag=codegenNode.patchFlag;if((flag===void 0||flag===512||flag===1)&&getGeneratedPropsConstantType(child,context)>=2){let props=getNodeProps(child);props&&(codegenNode.props=context.hoist(props))}codegenNode.dynamicProps&&=context.hoist(codegenNode.dynamicProps)}}}else if(child.type===12&&(doNotHoistNode?0:getConstantType(child,context))>=2){child.codegenNode.type===14&&child.codegenNode.arguments.length>0&&child.codegenNode.arguments.push(`-1`),toCache.push(child);continue}if(child.type===1){let isComponent$1=child.tagType===1;isComponent$1&&context.scopes.vSlot++,walk(child,node,context,!1,inFor),isComponent$1&&context.scopes.vSlot--}else if(child.type===11)walk(child,node,context,child.children.length===1,!0);else if(child.type===9)for(let i2=0;i2p$1.key===name||p$1.key.content===name);return slot&&slot.value}}toCache.length&&context.transformHoist&&context.transformHoist(children,context,node)}function getConstantType(node,context){let{constantCache}=context;switch(node.type){case 1:if(node.tagType!==0)return 0;let cached=constantCache.get(node);if(cached!==void 0)return cached;let codegenNode=node.codegenNode;if(codegenNode.type!==13||codegenNode.isBlock&&node.tag!==`svg`&&node.tag!==`foreignObject`&&node.tag!==`math`)return 0;if(codegenNode.patchFlag===void 0){let returnType2=3,generatedPropsType=getGeneratedPropsConstantType(node,context);if(generatedPropsType===0)return constantCache.set(node,0),0;generatedPropsType1)for(let i=0;iremovalIndex&&(context.childIndex--,context.onNodeRemoved()),context.parent.children.splice(removalIndex,1)},onNodeRemoved:NOOP,addIdentifiers(exp){},removeIdentifiers(exp){},hoist(exp){isString$1(exp)&&(exp=createSimpleExpression(exp)),context.hoists.push(exp);let identifier=createSimpleExpression(`_hoisted_${context.hoists.length}`,!1,exp.loc,2);return identifier.hoisted=exp,identifier},cache(exp,isVNode$1=!1,inVOnce=!1){let cacheExp=createCacheExpression(context.cached.length,exp,isVNode$1,inVOnce);return context.cached.push(cacheExp),cacheExp}};return context.filters=new Set,context}function transform$1(root,options){let context=createTransformContext(root,options);traverseNode$1(root,context),options.hoistStatic&&cacheStatic(root,context),options.ssr||createRootCodegen(root,context),root.helpers=new Set([...context.helpers.keys()]),root.components=[...context.components],root.directives=[...context.directives],root.imports=context.imports,root.hoists=context.hoists,root.temps=context.temps,root.cached=context.cached,root.transformed=!0,root.filters=[...context.filters]}function createRootCodegen(root,context){let{helper}=context,{children}=root;if(children.length===1){let singleElementRootChild=getSingleElementRoot(root);if(singleElementRootChild&&singleElementRootChild.codegenNode){let codegenNode=singleElementRootChild.codegenNode;codegenNode.type===13&&convertToBlock(codegenNode,context),root.codegenNode=codegenNode}else root.codegenNode=children[0]}else children.length>1&&(root.codegenNode=createVNodeCall(context,helper(FRAGMENT),void 0,root.children,64,void 0,void 0,!0,void 0,!1))}function traverseChildren(parent,context){let i=0,nodeRemoved=()=>{i--};for(;in===name:n=>name.test(n);return(node,context)=>{if(node.type===1){let{props}=node;if(node.tagType===3&&props.some(isVSlot))return;let exitFns=[];for(let i=0;i`${helperNameMap[s]}: _${helperNameMap[s]}`;function createCodegenContext(ast,{mode=`function`,prefixIdentifiers=mode===`module`,sourceMap=!1,filename=`template.vue.html`,scopeId=null,optimizeImports=!1,runtimeGlobalName=`Vue`,runtimeModuleName=`vue`,ssrRuntimeModuleName=`vue/server-renderer`,ssr=!1,isTS=!1,inSSR=!1}){let context={mode,prefixIdentifiers,sourceMap,filename,scopeId,optimizeImports,runtimeGlobalName,runtimeModuleName,ssrRuntimeModuleName,ssr,isTS,inSSR,source:ast.source,code:``,column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(key){return`_${helperNameMap[key]}`},push(code,newlineIndex=-2,node){context.code+=code},indent(){newline(++context.indentLevel)},deindent(withoutNewLine=!1){withoutNewLine?--context.indentLevel:newline(--context.indentLevel)},newline(){newline(context.indentLevel)}};function newline(n){context.push(`
`,-1),ast.hoists.length&&push(`const { ${[CREATE_VNODE,CREATE_ELEMENT_VNODE,CREATE_COMMENT,CREATE_TEXT,CREATE_STATIC].filter(helper=>helpers.includes(helper)).map(aliasHelper).join(`, `)} } = _Vue
`,-1)),genHoists(ast.hoists,context),newline(),push(`return `)}function genAssets(assets,type,{helper,push,newline,isTS}){let resolver=helper(type===`filter`?RESOLVE_FILTER:type===`component`?RESOLVE_COMPONENT:RESOLVE_DIRECTIVE);for(let i=0;i3||!1;context.push(`[`),multilines&&context.indent(),genNodeList(nodes,context,multilines),multilines&&context.deindent(),context.push(`]`)}function genNodeList(nodes,context,multilines=!1,comma=!0){let{push,newline}=context;for(let i=0;iarg||`null`)}function genCallExpression(node,context){let{push,helper,pure}=context,callee=isString$1(node.callee)?node.callee:helper(node.callee);pure&&push(PURE_ANNOTATION),push(callee+`(`,-2,node),genNodeList(node.arguments,context),push(`)`)}function genObjectExpression(node,context){let{push,indent,deindent,newline}=context,{properties}=node;if(!properties.length){push(`{}`,-2,node);return}let multilines=properties.length>1||!1;push(multilines?`{`:`{ `),multilines&&indent();for(let i=0;i `),(newline||body)&&(push(`{`),indent()),returns?(newline&&push(`return `),isArray$2(returns)?genNodeListAsArray(returns,context):genNode(returns,context)):body&&genNode(body,context),(newline||body)&&(deindent(),push(`}`)),isSlot&&(node.isNonScopedSlot&&push(`, undefined, true`),push(`)`))}function genConditionalExpression(node,context){let{test,consequent,alternate,newline:needNewline}=node,{push,indent,deindent,newline}=context;if(test.type===4){let needsParens=!isSimpleIdentifier(test.content);needsParens&&push(`(`),genExpression(test,context),needsParens&&push(`)`)}else push(`(`),genNode(test,context),push(`)`);needNewline&&indent(),context.indentLevel++,needNewline||push(` `),push(`? `),genNode(consequent,context),context.indentLevel--,needNewline&&newline(),needNewline||push(` `),push(`: `);let isNested=alternate.type===19;isNested||context.indentLevel++,genNode(alternate,context),isNested||context.indentLevel--,needNewline&&deindent(!0)}function genCacheExpression(node,context){let{push,helper,indent,deindent,newline}=context,{needPauseTracking,needArraySpread}=node;needArraySpread&&push(`[...(`),push(`_cache[${node.index}] || (`),needPauseTracking&&(indent(),push(`${helper(SET_BLOCK_TRACKING)}(-1`),node.inVOnce&&push(`, true`),push(`),`),newline(),push(`(`)),push(`_cache[${node.index}] = `),genNode(node.value,context),needPauseTracking&&(push(`).cacheIndex = ${node.index},`),newline(),push(`${helper(SET_BLOCK_TRACKING)}(1),`),newline(),push(`_cache[${node.index}]`),deindent()),push(`)`),needArraySpread&&push(`)]`)}``+`arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield`.split(`,`).join(`\\b|\\b`);var transformIf=createStructuralDirectiveTransform(/^(?:if|else|else-if)$/,(node,dir,context)=>processIf(node,dir,context,(ifNode,branch,isRoot)=>{let siblings=context.parent.children,i=siblings.indexOf(ifNode),key=0;for(;i-->=0;){let sibling=siblings[i];sibling&&sibling.type===9&&(key+=sibling.branches.length)}return()=>{if(isRoot)ifNode.codegenNode=createCodegenNodeForBranch(branch,key,context);else{let parentCondition=getParentCondition(ifNode.codegenNode);parentCondition.alternate=createCodegenNodeForBranch(branch,key+ifNode.branches.length-1,context)}}}));function processIf(node,dir,context,processCodegen){if(dir.name!==`else`&&(!dir.exp||!dir.exp.content.trim())){let loc=dir.exp?dir.exp.loc:node.loc;context.onError(createCompilerError(28,dir.loc)),dir.exp=createSimpleExpression(`true`,!1,loc)}if(dir.name===`if`){let branch=createIfBranch(node,dir),ifNode={type:9,loc:cloneLoc(node.loc),branches:[branch]};if(context.replaceNode(ifNode),processCodegen)return processCodegen(ifNode,branch,!0)}else{let siblings=context.parent.children,i=siblings.indexOf(node);for(;i-->=-1;){let sibling=siblings[i];if(sibling&&sibling.type===3){context.removeNode(sibling);continue}if(sibling&&sibling.type===2&&!sibling.content.trim().length){context.removeNode(sibling);continue}if(sibling&&sibling.type===9){(dir.name===`else-if`||dir.name===`else`)&&sibling.branches[sibling.branches.length-1].condition===void 0&&context.onError(createCompilerError(30,node.loc)),context.removeNode();let branch=createIfBranch(node,dir);sibling.branches.push(branch);let onExit=processCodegen&&processCodegen(sibling,branch,!1);traverseNode$1(branch,context),onExit&&onExit(),context.currentNode=null}else context.onError(createCompilerError(30,node.loc));break}}}function createIfBranch(node,dir){let isTemplateIf=node.tagType===3;return{type:10,loc:node.loc,condition:dir.name===`else`?void 0:dir.exp,children:isTemplateIf&&!findDir(node,`for`)?node.children:[node],userKey:findProp(node,`key`),isTemplateIf}}function createCodegenNodeForBranch(branch,keyIndex,context){return branch.condition?createConditionalExpression(branch.condition,createChildrenCodegenNode(branch,keyIndex,context),createCallExpression(context.helper(CREATE_COMMENT),[`""`,`true`])):createChildrenCodegenNode(branch,keyIndex,context)}function createChildrenCodegenNode(branch,keyIndex,context){let{helper}=context,keyProperty=createObjectProperty(`key`,createSimpleExpression(`${keyIndex}`,!1,locStub,2)),{children}=branch,firstChild=children[0];if(children.length!==1||firstChild.type!==1)if(children.length===1&&firstChild.type===11){let vnodeCall=firstChild.codegenNode;return injectProp(vnodeCall,keyProperty,context),vnodeCall}else return createVNodeCall(context,helper(FRAGMENT),createObjectExpression([keyProperty]),children,64,void 0,void 0,!0,!1,!1,branch.loc);else{let ret=firstChild.codegenNode,vnodeCall=getMemoedVNodeCall(ret);return vnodeCall.type===13&&convertToBlock(vnodeCall,context),injectProp(vnodeCall,keyProperty,context),ret}}function getParentCondition(node){for(;;)if(node.type===19)if(node.alternate.type===19)node=node.alternate;else return node;else node.type===20&&(node=node.value)}var transformFor=createStructuralDirectiveTransform(`for`,(node,dir,context)=>{let{helper,removeHelper}=context;return processFor(node,dir,context,forNode=>{let renderExp=createCallExpression(helper(RENDER_LIST),[forNode.source]),isTemplate=isTemplateNode(node),memo=findDir(node,`memo`),keyProp=findProp(node,`key`,!1,!0);keyProp&&keyProp.type;let keyExp=keyProp&&(keyProp.type===6?keyProp.value?createSimpleExpression(keyProp.value.content,!0):void 0:keyProp.exp),keyProperty=keyProp&&keyExp?createObjectProperty(`key`,keyExp):null,isStableFragment=forNode.source.type===4&&forNode.source.constType>0,fragmentFlag=isStableFragment?64:keyProp?128:256;return forNode.codegenNode=createVNodeCall(context,helper(FRAGMENT),void 0,renderExp,fragmentFlag,void 0,void 0,!0,!isStableFragment,!1,node.loc),()=>{let childBlock,{children}=forNode,needFragmentWrapper=children.length!==1||children[0].type!==1,slotOutlet=isSlotOutlet(node)?node:isTemplate&&node.children.length===1&&isSlotOutlet(node.children[0])?node.children[0]:null;if(slotOutlet?(childBlock=slotOutlet.codegenNode,isTemplate&&keyProperty&&injectProp(childBlock,keyProperty,context)):needFragmentWrapper?childBlock=createVNodeCall(context,helper(FRAGMENT),keyProperty?createObjectExpression([keyProperty]):void 0,node.children,64,void 0,void 0,!0,void 0,!1):(childBlock=children[0].codegenNode,isTemplate&&keyProperty&&injectProp(childBlock,keyProperty,context),childBlock.isBlock!==!isStableFragment&&(childBlock.isBlock?(removeHelper(OPEN_BLOCK),removeHelper(getVNodeBlockHelper(context.inSSR,childBlock.isComponent))):removeHelper(getVNodeHelper(context.inSSR,childBlock.isComponent))),childBlock.isBlock=!isStableFragment,childBlock.isBlock?(helper(OPEN_BLOCK),helper(getVNodeBlockHelper(context.inSSR,childBlock.isComponent))):helper(getVNodeHelper(context.inSSR,childBlock.isComponent))),memo){let loop=createFunctionExpression(createForLoopParams(forNode.parseResult,[createSimpleExpression(`_cached`)]));loop.body=createBlockStatement([createCompoundExpression([`const _memo = (`,memo.exp,`)`]),createCompoundExpression([`if (_cached`,...keyExp?[` && _cached.key === `,keyExp]:[],` && ${context.helperString(IS_MEMO_SAME)}(_cached, _memo)) return _cached`]),createCompoundExpression([`const _item = `,childBlock]),createSimpleExpression(`_item.memo = _memo`),createSimpleExpression(`return _item`)]),renderExp.arguments.push(loop,createSimpleExpression(`_cache`),createSimpleExpression(String(context.cached.length))),context.cached.push(null)}else renderExp.arguments.push(createFunctionExpression(createForLoopParams(forNode.parseResult),childBlock,!0))}})});function processFor(node,dir,context,processCodegen){if(!dir.exp){context.onError(createCompilerError(31,dir.loc));return}let parseResult=dir.forParseResult;if(!parseResult){context.onError(createCompilerError(32,dir.loc));return}finalizeForParseResult(parseResult,context);let{addIdentifiers,removeIdentifiers,scopes}=context,{source,value,key,index}=parseResult,forNode={type:11,loc:dir.loc,source,valueAlias:value,keyAlias:key,objectIndexAlias:index,parseResult,children:isTemplateNode(node)?node.children:[node]};context.replaceNode(forNode),scopes.vFor++;let onExit=processCodegen&&processCodegen(forNode);return()=>{scopes.vFor--,onExit&&onExit()}}function finalizeForParseResult(result,context){result.finalized||=!0}function createForLoopParams({value,key,index},memoArgs=[]){return createParamsList([value,key,index,...memoArgs])}function createParamsList(args){let i=args.length;for(;i--&&!args[i];);return args.slice(0,i+1).map((arg,i2)=>arg||createSimpleExpression(`_`.repeat(i2+1),!1))}var defaultFallback=createSimpleExpression(`undefined`,!1),trackSlotScopes=(node,context)=>{if(node.type===1&&(node.tagType===1||node.tagType===3)){let vSlot=findDir(node,`slot`);if(vSlot)return vSlot.exp,context.scopes.vSlot++,()=>{context.scopes.vSlot--}}},buildClientSlotFn=(props,_vForExp,children,loc)=>createFunctionExpression(props,children,!1,!0,children.length?children[0].loc:loc);function buildSlots(node,context,buildSlotFn=buildClientSlotFn){context.helper(WITH_CTX);let{children,loc}=node,slotsProperties=[],dynamicSlots=[],hasDynamicSlots=context.scopes.vSlot>0||context.scopes.vFor>0,onComponentSlot=findDir(node,`slot`,!0);if(onComponentSlot){let{arg,exp}=onComponentSlot;arg&&!isStaticExp(arg)&&(hasDynamicSlots=!0),slotsProperties.push(createObjectProperty(arg||createSimpleExpression(`default`,!0),buildSlotFn(exp,void 0,children,loc)))}let hasTemplateSlots=!1,hasNamedDefaultSlot=!1,implicitDefaultChildren=[],seenSlotNames=new Set,conditionalBranchIndex=0;for(let i=0;i{let fn=buildSlotFn(props,void 0,children2,loc);return context.compatConfig&&(fn.isNonScopedSlot=!0),createObjectProperty(`default`,fn)};hasTemplateSlots?implicitDefaultChildren.length&&implicitDefaultChildren.some(node2=>isNonWhitespaceContent(node2))&&(hasNamedDefaultSlot?context.onError(createCompilerError(39,implicitDefaultChildren[0].loc)):slotsProperties.push(buildDefaultSlotProperty(void 0,implicitDefaultChildren))):slotsProperties.push(buildDefaultSlotProperty(void 0,children))}let slotFlag=hasDynamicSlots?2:hasForwardedSlots(node.children)?3:1,slots=createObjectExpression(slotsProperties.concat(createObjectProperty(`_`,createSimpleExpression(slotFlag+``,!1))),loc);return dynamicSlots.length&&(slots=createCallExpression(context.helper(CREATE_SLOTS),[slots,createArrayExpression(dynamicSlots)])),{slots,hasDynamicSlots}}function buildDynamicSlot(name,fn,index){let props=[createObjectProperty(`name`,name),createObjectProperty(`fn`,fn)];return index!=null&&props.push(createObjectProperty(`key`,createSimpleExpression(String(index),!0))),createObjectExpression(props)}function hasForwardedSlots(children){for(let i=0;ifunction(){if(node=context.currentNode,!(node.type===1&&(node.tagType===0||node.tagType===1)))return;let{tag,props}=node,isComponent$1=node.tagType===1,vnodeTag=isComponent$1?resolveComponentType(node,context):`"${tag}"`,isDynamicComponent=isObject$1(vnodeTag)&&vnodeTag.callee===RESOLVE_DYNAMIC_COMPONENT,vnodeProps,vnodeChildren,patchFlag=0,vnodeDynamicProps,dynamicPropNames,vnodeDirectives,shouldUseBlock=isDynamicComponent||vnodeTag===TELEPORT||vnodeTag===SUSPENSE||!isComponent$1&&(tag===`svg`||tag===`foreignObject`||tag===`math`);if(props.length>0){let propsBuildResult=buildProps(node,context,void 0,isComponent$1,isDynamicComponent);vnodeProps=propsBuildResult.props,patchFlag=propsBuildResult.patchFlag,dynamicPropNames=propsBuildResult.dynamicPropNames;let directives=propsBuildResult.directives;vnodeDirectives=directives&&directives.length?createArrayExpression(directives.map(dir=>buildDirectiveArgs(dir,context))):void 0,propsBuildResult.shouldUseBlock&&(shouldUseBlock=!0)}if(node.children.length>0)if(vnodeTag===KEEP_ALIVE&&(shouldUseBlock=!0,patchFlag|=1024),isComponent$1&&vnodeTag!==TELEPORT&&vnodeTag!==KEEP_ALIVE){let{slots,hasDynamicSlots}=buildSlots(node,context);vnodeChildren=slots,hasDynamicSlots&&(patchFlag|=1024)}else if(node.children.length===1&&vnodeTag!==TELEPORT){let child=node.children[0],type=child.type,hasDynamicTextChild=type===5||type===8;hasDynamicTextChild&&getConstantType(child,context)===0&&(patchFlag|=1),vnodeChildren=hasDynamicTextChild||type===2?child:node.children}else vnodeChildren=node.children;dynamicPropNames&&dynamicPropNames.length&&(vnodeDynamicProps=stringifyDynamicPropNames(dynamicPropNames)),node.codegenNode=createVNodeCall(context,vnodeTag,vnodeProps,vnodeChildren,patchFlag===0?void 0:patchFlag,vnodeDynamicProps,vnodeDirectives,!!shouldUseBlock,!1,isComponent$1,node.loc)};function resolveComponentType(node,context,ssr=!1){let{tag}=node,isExplicitDynamic=isComponentTag(tag),isProp=findProp(node,`is`,!1,!0);if(isProp)if(isExplicitDynamic||isCompatEnabled(`COMPILER_IS_ON_ELEMENT`,context)){let exp;if(isProp.type===6?exp=isProp.value&&createSimpleExpression(isProp.value.content,!0):(exp=isProp.exp,exp||=createSimpleExpression(`is`,!1,isProp.arg.loc)),exp)return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT),[exp])}else isProp.type===6&&isProp.value.content.startsWith(`vue:`)&&(tag=isProp.value.content.slice(4));let builtIn=isCoreComponent(tag)||context.isBuiltInComponent(tag);return builtIn?(ssr||context.helper(builtIn),builtIn):(context.helper(RESOLVE_COMPONENT),context.components.add(tag),toValidAssetId(tag,`component`))}function buildProps(node,context,props=node.props,isComponent$1,isDynamicComponent,ssr=!1){let{tag,loc:elementLoc,children}=node,properties=[],mergeArgs=[],runtimeDirectives=[],hasChildren=children.length>0,shouldUseBlock=!1,patchFlag=0,hasRef=!1,hasClassBinding=!1,hasStyleBinding=!1,hasHydrationEventBinding=!1,hasDynamicKeys=!1,hasVnodeHook=!1,dynamicPropNames=[],pushMergeArg=arg=>{properties.length&&(mergeArgs.push(createObjectExpression(dedupeProperties(properties),elementLoc)),properties=[]),arg&&mergeArgs.push(arg)},pushRefVForMarker=()=>{context.scopes.vFor>0&&properties.push(createObjectProperty(createSimpleExpression(`ref_for`,!0),createSimpleExpression(`true`)))},analyzePatchFlag=({key,value})=>{if(isStaticExp(key)){let name=key.content,isEventHandler=isOn(name);if(isEventHandler&&(!isComponent$1||isDynamicComponent)&&name.toLowerCase()!==`onclick`&&name!==`onUpdate:modelValue`&&!isReservedProp(name)&&(hasHydrationEventBinding=!0),isEventHandler&&isReservedProp(name)&&(hasVnodeHook=!0),isEventHandler&&value.type===14&&(value=value.arguments[0]),value.type===20||(value.type===4||value.type===8)&&getConstantType(value,context)>0)return;name===`ref`?hasRef=!0:name===`class`?hasClassBinding=!0:name===`style`?hasStyleBinding=!0:name!==`key`&&!dynamicPropNames.includes(name)&&dynamicPropNames.push(name),isComponent$1&&(name===`class`||name===`style`)&&!dynamicPropNames.includes(name)&&dynamicPropNames.push(name)}else hasDynamicKeys=!0};for(let i=0;imod.content===`prop`)&&(patchFlag|=32);let directiveTransform=context.directiveTransforms[name];if(directiveTransform){let{props:props2,needRuntime}=directiveTransform(prop,node,context);!ssr&&props2.forEach(analyzePatchFlag),isVOn&&arg&&!isStaticExp(arg)?pushMergeArg(createObjectExpression(props2,elementLoc)):properties.push(...props2),needRuntime&&(runtimeDirectives.push(prop),isSymbol(needRuntime)&&directiveImportMap.set(prop,needRuntime))}else isBuiltInDirective(name)||(runtimeDirectives.push(prop),hasChildren&&(shouldUseBlock=!0))}}let propsExpression;if(mergeArgs.length?(pushMergeArg(),propsExpression=mergeArgs.length>1?createCallExpression(context.helper(MERGE_PROPS),mergeArgs,elementLoc):mergeArgs[0]):properties.length&&(propsExpression=createObjectExpression(dedupeProperties(properties),elementLoc)),hasDynamicKeys?patchFlag|=16:(hasClassBinding&&!isComponent$1&&(patchFlag|=2),hasStyleBinding&&!isComponent$1&&(patchFlag|=4),dynamicPropNames.length&&(patchFlag|=8),hasHydrationEventBinding&&(patchFlag|=32)),!shouldUseBlock&&(patchFlag===0||patchFlag===32)&&(hasRef||hasVnodeHook||runtimeDirectives.length>0)&&(patchFlag|=512),!context.inSSR&&propsExpression)switch(propsExpression.type){case 15:let classKeyIndex=-1,styleKeyIndex=-1,hasDynamicKey=!1;for(let i=0;icreateObjectProperty(modifier,trueExpression)),loc))}return createArrayExpression(dirArgs,dir.loc)}function stringifyDynamicPropNames(props){let propsNamesString=`[`;for(let i=0,l=props.length;i{if(isSlotOutlet(node)){let{children,loc}=node,{slotName,slotProps}=processSlotOutlet(node,context),slotArgs=[context.prefixIdentifiers?`_ctx.$slots`:`$slots`,slotName,`{}`,`undefined`,`true`],expectedLen=2;slotProps&&(slotArgs[2]=slotProps,expectedLen=3),children.length&&(slotArgs[3]=createFunctionExpression([],children,!1,!1,loc),expectedLen=4),context.scopeId&&!context.slotted&&(expectedLen=5),slotArgs.splice(expectedLen),node.codegenNode=createCallExpression(context.helper(RENDER_SLOT),slotArgs,loc)}};function processSlotOutlet(node,context){let slotName=`"default"`,slotProps,nonNameProps=[];for(let i=0;i0){let{props,directives}=buildProps(node,context,nonNameProps,!1,!1);slotProps=props,directives.length&&context.onError(createCompilerError(36,directives[0].loc))}return{slotName,slotProps}}var transformOn=(dir,node,context,augmentor)=>{let{loc,modifiers,arg}=dir;!dir.exp&&!modifiers.length&&context.onError(createCompilerError(35,loc));let eventName;if(arg.type===4)if(arg.isStatic){let rawName=arg.content;rawName.startsWith(`vue:`)&&(rawName=`vnode-${rawName.slice(4)}`),eventName=createSimpleExpression(node.tagType!==0||rawName.startsWith(`vnode`)||!/[A-Z]/.test(rawName)?toHandlerKey(camelize(rawName)):`on:${rawName}`,!0,arg.loc)}else eventName=createCompoundExpression([`${context.helperString(TO_HANDLER_KEY)}(`,arg,`)`]);else eventName=arg,eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`),eventName.children.push(`)`);let exp=dir.exp;exp&&!exp.content.trim()&&(exp=void 0);let shouldCache=context.cacheHandlers&&!exp&&!context.inVOnce;if(exp){let isMemberExp=isMemberExpression(exp),isInlineStatement=!(isMemberExp||isFnExpression(exp)),hasMultipleStatements=exp.content.includes(`;`);(isInlineStatement||shouldCache&&isMemberExp)&&(exp=createCompoundExpression([`${isInlineStatement?`$event`:`(...args)`} => ${hasMultipleStatements?`{`:`(`}`,exp,hasMultipleStatements?`}`:`)`]))}let ret={props:[createObjectProperty(eventName,exp||createSimpleExpression(`() => {}`,!1,loc))]};return augmentor&&(ret=augmentor(ret)),shouldCache&&(ret.props[0].value=context.cache(ret.props[0].value)),ret.props.forEach(p$1=>p$1.key.isHandlerKey=!0),ret},transformBind=(dir,_node,context)=>{let{modifiers,loc}=dir,arg=dir.arg,{exp}=dir;return exp&&exp.type===4&&!exp.content.trim()&&(exp=void 0),arg.type===4?arg.isStatic||(arg.content=arg.content?`${arg.content} || ""`:`""`):(arg.children.unshift(`(`),arg.children.push(`) || ""`)),modifiers.some(mod=>mod.content===`camel`)&&(arg.type===4?arg.isStatic?arg.content=camelize(arg.content):arg.content=`${context.helperString(CAMELIZE)}(${arg.content})`:(arg.children.unshift(`${context.helperString(CAMELIZE)}(`),arg.children.push(`)`))),context.inSSR||(modifiers.some(mod=>mod.content===`prop`)&&injectPrefix(arg,`.`),modifiers.some(mod=>mod.content===`attr`)&&injectPrefix(arg,`^`)),{props:[createObjectProperty(arg,exp)]}},injectPrefix=(arg,prefix$1)=>{arg.type===4?arg.isStatic?arg.content=prefix$1+arg.content:arg.content=`\`${prefix$1}\${${arg.content}}\``:(arg.children.unshift(`'${prefix$1}' + (`),arg.children.push(`)`))},transformText=(node,context)=>{if(node.type===0||node.type===1||node.type===11||node.type===10)return()=>{let children=node.children,currentContainer,hasText=!1;for(let i=0;ip$1.type===7&&!context.directiveTransforms[p$1.name])&&node.tag!==`template`)))for(let i=0;i{if(node.type===1&&findDir(node,`once`,!0))return seen$1.has(node)||context.inVOnce||context.inSSR?void 0:(seen$1.add(node),context.inVOnce=!0,context.helper(SET_BLOCK_TRACKING),()=>{context.inVOnce=!1;let cur=context.currentNode;cur.codegenNode&&=context.cache(cur.codegenNode,!0,!0)})},transformModel=(dir,node,context)=>{let{exp,arg}=dir;if(!exp)return context.onError(createCompilerError(41,dir.loc)),createTransformProps();let rawExp=exp.loc.source.trim(),expString=exp.type===4?exp.content:rawExp,bindingType=context.bindingMetadata[rawExp];if(bindingType===`props`||bindingType===`props-aliased`)return context.onError(createCompilerError(44,exp.loc)),createTransformProps();if(!expString.trim()||!isMemberExpression(exp))return context.onError(createCompilerError(42,exp.loc)),createTransformProps();let propName=arg||createSimpleExpression(`modelValue`,!0),eventName=arg?isStaticExp(arg)?`onUpdate:${camelize(arg.content)}`:createCompoundExpression([`"onUpdate:" + `,arg]):`onUpdate:modelValue`,assignmentExp;assignmentExp=createCompoundExpression([`${context.isTS?`($event: any)`:`$event`} => ((`,exp,`) = $event)`]);let props=[createObjectProperty(propName,dir.exp),createObjectProperty(eventName,assignmentExp)];if(dir.modifiers.length&&node.tagType===1){let modifiers=dir.modifiers.map(m=>m.content).map(m=>(isSimpleIdentifier(m)?m:JSON.stringify(m))+`: true`).join(`, `),modifiersKey=arg?isStaticExp(arg)?`${arg.content}Modifiers`:createCompoundExpression([arg,` + "Modifiers"`]):`modelModifiers`;props.push(createObjectProperty(modifiersKey,createSimpleExpression(`{ ${modifiers} }`,!1,dir.loc,2)))}return createTransformProps(props)};function createTransformProps(props=[]){return{props}}var validDivisionCharRE=/[\w).+\-_$\]]/,transformFilter=(node,context)=>{isCompatEnabled(`COMPILER_FILTERS`,context)&&(node.type===5?rewriteFilter(node.content,context):node.type===1&&node.props.forEach(prop=>{prop.type===7&&prop.name!==`for`&&prop.exp&&rewriteFilter(prop.exp,context)}))};function rewriteFilter(node,context){if(node.type===4)parseFilter(node,context);else for(let i=0;i=0&&(p$1=exp.charAt(j),p$1===` `);j--);(!p$1||!validDivisionCharRE.test(p$1))&&(inRegex=!0)}}expression===void 0?expression=exp.slice(0,i).trim():lastFilterIndex!==0&&pushFilter();function pushFilter(){filters.push(exp.slice(lastFilterIndex,i).trim()),lastFilterIndex=i+1}if(filters.length){for(i=0;i{if(node.type===1){let dir=findDir(node,`memo`);return!dir||seen$2.has(node)||context.inSSR?void 0:(seen$2.add(node),()=>{let codegenNode=node.codegenNode||context.currentNode.codegenNode;codegenNode&&codegenNode.type===13&&(node.tagType!==1&&convertToBlock(codegenNode,context),node.codegenNode=createCallExpression(context.helper(WITH_MEMO),[dir.exp,createFunctionExpression(void 0,codegenNode),`_cache`,String(context.cached.length)]),context.cached.push(null))})}},transformVBindShorthand=(node,context)=>{if(node.type===1){for(let prop of node.props)if(prop.type===7&&prop.name===`bind`&&!prop.exp){let arg=prop.arg;if(arg.type!==4||!arg.isStatic)context.onError(createCompilerError(52,arg.loc)),prop.exp=createSimpleExpression(``,!0,arg.loc);else{let propName=camelize(arg.content);(validFirstIdentCharRE.test(propName[0])||propName[0]===`-`)&&(prop.exp=createSimpleExpression(propName,!1,arg.loc))}}}};function getBaseTransformPreset(prefixIdentifiers){return[[transformVBindShorthand,transformOnce,transformIf,transformMemo,transformFor,...[transformFilter],...[],transformSlotOutlet,transformElement,trackSlotScopes,transformText],{on:transformOn,bind:transformBind,model:transformModel}]}function baseCompile$2(source,options={}){let onError=options.onError||defaultOnError$1,isModuleMode=options.mode===`module`;options.prefixIdentifiers===!0?onError(createCompilerError(47)):isModuleMode&&onError(createCompilerError(48));let prefixIdentifiers=!1;options.cacheHandlers&&onError(createCompilerError(49)),options.scopeId&&!isModuleMode&&onError(createCompilerError(50));let resolvedOptions=extend({},options,{prefixIdentifiers:!1}),ast=isString$1(source)?baseParse(source,resolvedOptions):source,[nodeTransforms,directiveTransforms]=getBaseTransformPreset();return transform$1(ast,extend({},resolvedOptions,{nodeTransforms:[...nodeTransforms,...options.nodeTransforms||[]],directiveTransforms:extend({},directiveTransforms,options.directiveTransforms||{})})),generate$1(ast,resolvedOptions)}var noopDirectiveTransform=()=>({props:[]}),V_MODEL_RADIO=Symbol(``),V_MODEL_CHECKBOX=Symbol(``),V_MODEL_TEXT=Symbol(``),V_MODEL_SELECT=Symbol(``),V_MODEL_DYNAMIC=Symbol(``),V_ON_WITH_MODIFIERS=Symbol(``),V_ON_WITH_KEYS=Symbol(``),V_SHOW=Symbol(``),TRANSITION=Symbol(``),TRANSITION_GROUP=Symbol(``);registerRuntimeHelpers({[V_MODEL_RADIO]:`vModelRadio`,[V_MODEL_CHECKBOX]:`vModelCheckbox`,[V_MODEL_TEXT]:`vModelText`,[V_MODEL_SELECT]:`vModelSelect`,[V_MODEL_DYNAMIC]:`vModelDynamic`,[V_ON_WITH_MODIFIERS]:`withModifiers`,[V_ON_WITH_KEYS]:`withKeys`,[V_SHOW]:`vShow`,[TRANSITION]:`Transition`,[TRANSITION_GROUP]:`TransitionGroup`});var decoder;function decodeHtmlBrowser(raw,asAttr=!1){return decoder||=document.createElement(`div`),asAttr?(decoder.innerHTML=`
`,decoder.children[0].getAttribute(`foo`)):(decoder.innerHTML=raw,decoder.textContent)}var parserOptions={parseMode:`html`,isVoidTag,isNativeTag:tag=>isHTMLTag(tag)||isSVGTag(tag)||isMathMLTag(tag),isPreTag:tag=>tag===`pre`,isIgnoreNewlineTag:tag=>tag===`pre`||tag===`textarea`,decodeEntities:decodeHtmlBrowser,isBuiltInComponent:tag=>{if(tag===`Transition`||tag===`transition`)return TRANSITION;if(tag===`TransitionGroup`||tag===`transition-group`)return TRANSITION_GROUP},getNamespace(tag,parent,rootNamespace){let ns=parent?parent.ns:rootNamespace;if(parent&&ns===2)if(parent.tag===`annotation-xml`){if(tag===`svg`)return 1;parent.props.some(a$1=>a$1.type===6&&a$1.name===`encoding`&&a$1.value!=null&&(a$1.value.content===`text/html`||a$1.value.content===`application/xhtml+xml`))&&(ns=0)}else /^m(?:[ions]|text)$/.test(parent.tag)&&tag!==`mglyph`&&tag!==`malignmark`&&(ns=0);else parent&&ns===1&&(parent.tag===`foreignObject`||parent.tag===`desc`||parent.tag===`title`)&&(ns=0);if(ns===0){if(tag===`svg`)return 1;if(tag===`math`)return 2}return ns}},transformStyle=node=>{node.type===1&&node.props.forEach((p$1,i)=>{p$1.type===6&&p$1.name===`style`&&p$1.value&&(node.props[i]={type:7,name:`bind`,arg:createSimpleExpression(`style`,!0,p$1.loc),exp:parseInlineCSS(p$1.value.content,p$1.loc),modifiers:[],loc:p$1.loc})})},parseInlineCSS=(cssText,loc)=>{let normalized=parseStringStyle(cssText);return createSimpleExpression(JSON.stringify(normalized),!1,loc,3)};function createDOMCompilerError(code,loc){return createCompilerError(code,loc,void 0)}var transformVHtml=(dir,node,context)=>{let{exp,loc}=dir;return exp||context.onError(createDOMCompilerError(53,loc)),node.children.length&&(context.onError(createDOMCompilerError(54,loc)),node.children.length=0),{props:[createObjectProperty(createSimpleExpression(`innerHTML`,!0,loc),exp||createSimpleExpression(``,!0))]}},transformVText=(dir,node,context)=>{let{exp,loc}=dir;return exp||context.onError(createDOMCompilerError(55,loc)),node.children.length&&(context.onError(createDOMCompilerError(56,loc)),node.children.length=0),{props:[createObjectProperty(createSimpleExpression(`textContent`,!0),exp?getConstantType(exp,context)>0?exp:createCallExpression(context.helperString(TO_DISPLAY_STRING),[exp],loc):createSimpleExpression(``,!0))]}},transformModel$1=(dir,node,context)=>{let baseResult=transformModel(dir,node,context);if(!baseResult.props.length||node.tagType===1)return baseResult;dir.arg&&context.onError(createDOMCompilerError(58,dir.arg.loc));let{tag}=node,isCustomElement=context.isCustomElement(tag);if(tag===`input`||tag===`textarea`||tag===`select`||isCustomElement){let directiveToUse=V_MODEL_TEXT,isInvalidType=!1;if(tag===`input`||isCustomElement){let type=findProp(node,`type`);if(type){if(type.type===7)directiveToUse=V_MODEL_DYNAMIC;else if(type.value)switch(type.value.content){case`radio`:directiveToUse=V_MODEL_RADIO;break;case`checkbox`:directiveToUse=V_MODEL_CHECKBOX;break;case`file`:isInvalidType=!0,context.onError(createDOMCompilerError(59,dir.loc));break;default:break}}else hasDynamicKeyVBind(node)&&(directiveToUse=V_MODEL_DYNAMIC)}else tag===`select`&&(directiveToUse=V_MODEL_SELECT);isInvalidType||(baseResult.needRuntime=context.helper(directiveToUse))}else context.onError(createDOMCompilerError(57,dir.loc));return baseResult.props=baseResult.props.filter(p$1=>!(p$1.key.type===4&&p$1.key.content===`modelValue`)),baseResult},isEventOptionModifier=makeMap(`passive,once,capture`),isNonKeyModifier=makeMap(`stop,prevent,self,ctrl,shift,alt,meta,exact,middle`),maybeKeyModifier=makeMap(`left,right`),isKeyboardEvent=makeMap(`onkeyup,onkeydown,onkeypress`),resolveModifiers=(key,modifiers,context,loc)=>{let keyModifiers=[],nonKeyModifiers=[],eventOptionModifiers=[];for(let i=0;iisStaticExp(key)&&key.content.toLowerCase()===`onclick`?createSimpleExpression(event,!0):key.type===4?key:createCompoundExpression([`(`,key,`) === "onClick" ? "${event}" : (`,key,`)`]),transformOn$1=(dir,node,context)=>transformOn(dir,node,context,baseResult=>{let{modifiers}=dir;if(!modifiers.length)return baseResult;let{key,value:handlerExp}=baseResult.props[0],{keyModifiers,nonKeyModifiers,eventOptionModifiers}=resolveModifiers(key,modifiers,context,dir.loc);if(nonKeyModifiers.includes(`right`)&&(key=transformClick(key,`onContextmenu`)),nonKeyModifiers.includes(`middle`)&&(key=transformClick(key,`onMouseup`)),nonKeyModifiers.length&&(handlerExp=createCallExpression(context.helper(V_ON_WITH_MODIFIERS),[handlerExp,JSON.stringify(nonKeyModifiers)])),keyModifiers.length&&(!isStaticExp(key)||isKeyboardEvent(key.content.toLowerCase()))&&(handlerExp=createCallExpression(context.helper(V_ON_WITH_KEYS),[handlerExp,JSON.stringify(keyModifiers)])),eventOptionModifiers.length){let modifierPostfix=eventOptionModifiers.map(capitalize$1).join(``);key=isStaticExp(key)?createSimpleExpression(`${key.content}${modifierPostfix}`,!0):createCompoundExpression([`(`,key,`) + "${modifierPostfix}"`])}return{props:[createObjectProperty(key,handlerExp)]}}),transformShow=(dir,node,context)=>{let{exp,loc}=dir;return exp||context.onError(createDOMCompilerError(61,loc)),{props:[],needRuntime:context.helper(V_SHOW)}},ignoreSideEffectTags=(node,context)=>{node.type===1&&node.tagType===0&&(node.tag===`script`||node.tag===`style`)&&context.removeNode()},DOMNodeTransforms=[transformStyle,...[]],DOMDirectiveTransforms={cloak:noopDirectiveTransform,html:transformVHtml,text:transformVText,model:transformModel$1,on:transformOn$1,show:transformShow};function compile$1(src,options={}){return baseCompile$2(src,extend({},parserOptions,options,{nodeTransforms:[ignoreSideEffectTags,...DOMNodeTransforms,...options.nodeTransforms||[]],directiveTransforms:extend({},DOMDirectiveTransforms,options.directiveTransforms||{}),transformHoist:null}))}var vue_esm_bundler_exports=__export({BaseTransition:()=>BaseTransition,BaseTransitionPropsValidators:()=>BaseTransitionPropsValidators,Comment:()=>Comment,DeprecationTypes:()=>null,EffectScope:()=>EffectScope,ErrorCodes:()=>ErrorCodes,ErrorTypeStrings:()=>ErrorTypeStrings,Fragment:()=>Fragment,KeepAlive:()=>KeepAlive,ReactiveEffect:()=>ReactiveEffect,Static:()=>Static,Suspense:()=>Suspense,Teleport:()=>Teleport,Text:()=>Text,TrackOpTypes:()=>TrackOpTypes,Transition:()=>Transition,TransitionGroup:()=>TransitionGroup,TriggerOpTypes:()=>TriggerOpTypes,VueElement:()=>VueElement,assertNumber:()=>assertNumber,callWithAsyncErrorHandling:()=>callWithAsyncErrorHandling,callWithErrorHandling:()=>callWithErrorHandling,camelize:()=>camelize,capitalize:()=>capitalize$1,cloneVNode:()=>cloneVNode,compatUtils:()=>null,compile:()=>compileToFunction,computed:()=>computed,createApp:()=>createApp,createBlock:()=>createBlock,createCommentVNode:()=>createCommentVNode,createElementBlock:()=>createElementBlock,createElementVNode:()=>createBaseVNode,createHydrationRenderer:()=>createHydrationRenderer,createPropsRestProxy:()=>createPropsRestProxy,createRenderer:()=>createRenderer,createSSRApp:()=>createSSRApp,createSlots:()=>createSlots,createStaticVNode:()=>createStaticVNode,createTextVNode:()=>createTextVNode,createVNode:()=>createVNode,customRef:()=>customRef,defineAsyncComponent:()=>defineAsyncComponent,defineComponent:()=>defineComponent,defineCustomElement:()=>defineCustomElement,defineEmits:()=>defineEmits,defineExpose:()=>defineExpose,defineModel:()=>defineModel,defineOptions:()=>defineOptions,defineProps:()=>defineProps,defineSSRCustomElement:()=>defineSSRCustomElement,defineSlots:()=>defineSlots,devtools:()=>devtools$2,effect:()=>effect,effectScope:()=>effectScope,getCurrentInstance:()=>getCurrentInstance,getCurrentScope:()=>getCurrentScope,getCurrentWatcher:()=>getCurrentWatcher,getTransitionRawChildren:()=>getTransitionRawChildren,guardReactiveProps:()=>guardReactiveProps,h:()=>h,handleError:()=>handleError,hasInjectionContext:()=>hasInjectionContext,hydrate:()=>hydrate,hydrateOnIdle:()=>hydrateOnIdle,hydrateOnInteraction:()=>hydrateOnInteraction,hydrateOnMediaQuery:()=>hydrateOnMediaQuery,hydrateOnVisible:()=>hydrateOnVisible,initCustomFormatter:()=>initCustomFormatter,initDirectivesForSSR:()=>initDirectivesForSSR,inject:()=>inject,isMemoSame:()=>isMemoSame,isProxy:()=>isProxy,isReactive:()=>isReactive,isReadonly:()=>isReadonly,isRef:()=>isRef,isRuntimeOnly:()=>isRuntimeOnly,isShallow:()=>isShallow,isVNode:()=>isVNode,markRaw:()=>markRaw,mergeDefaults:()=>mergeDefaults,mergeModels:()=>mergeModels,mergeProps:()=>mergeProps,nextTick:()=>nextTick,normalizeClass:()=>normalizeClass,normalizeProps:()=>normalizeProps,normalizeStyle:()=>normalizeStyle,onActivated:()=>onActivated,onBeforeMount:()=>onBeforeMount,onBeforeUnmount:()=>onBeforeUnmount,onBeforeUpdate:()=>onBeforeUpdate,onDeactivated:()=>onDeactivated,onErrorCaptured:()=>onErrorCaptured,onMounted:()=>onMounted,onRenderTracked:()=>onRenderTracked,onRenderTriggered:()=>onRenderTriggered,onScopeDispose:()=>onScopeDispose,onServerPrefetch:()=>onServerPrefetch,onUnmounted:()=>onUnmounted,onUpdated:()=>onUpdated,onWatcherCleanup:()=>onWatcherCleanup,openBlock:()=>openBlock,popScopeId:()=>popScopeId,provide:()=>provide,proxyRefs:()=>proxyRefs,pushScopeId:()=>pushScopeId,queuePostFlushCb:()=>queuePostFlushCb,reactive:()=>reactive,readonly:()=>readonly,ref:()=>ref,registerRuntimeCompiler:()=>registerRuntimeCompiler,render:()=>render,renderList:()=>renderList,renderSlot:()=>renderSlot,resolveComponent:()=>resolveComponent,resolveDirective:()=>resolveDirective,resolveDynamicComponent:()=>resolveDynamicComponent,resolveFilter:()=>null,resolveTransitionHooks:()=>resolveTransitionHooks,setBlockTracking:()=>setBlockTracking,setDevtoolsHook:()=>setDevtoolsHook,setTransitionHooks:()=>setTransitionHooks,shallowReactive:()=>shallowReactive,shallowReadonly:()=>shallowReadonly,shallowRef:()=>shallowRef,ssrContextKey:()=>ssrContextKey,ssrUtils:()=>ssrUtils,stop:()=>stop,toDisplayString:()=>toDisplayString,toHandlerKey:()=>toHandlerKey,toHandlers:()=>toHandlers,toRaw:()=>toRaw,toRef:()=>toRef,toRefs:()=>toRefs,toValue:()=>toValue$1,transformVNodeArgs:()=>transformVNodeArgs,triggerRef:()=>triggerRef,unref:()=>unref,useAttrs:()=>useAttrs,useCssModule:()=>useCssModule,useCssVars:()=>useCssVars,useHost:()=>useHost,useId:()=>useId,useModel:()=>useModel,useSSRContext:()=>useSSRContext,useShadowRoot:()=>useShadowRoot,useSlots:()=>useSlots,useTemplateRef:()=>useTemplateRef,useTransitionState:()=>useTransitionState,vModelCheckbox:()=>vModelCheckbox,vModelDynamic:()=>vModelDynamic,vModelRadio:()=>vModelRadio,vModelSelect:()=>vModelSelect,vModelText:()=>vModelText,vShow:()=>vShow,version:()=>version$1,warn:()=>warn$2,watch:()=>watch,watchEffect:()=>watchEffect,watchPostEffect:()=>watchPostEffect,watchSyncEffect:()=>watchSyncEffect,withAsyncContext:()=>withAsyncContext,withCtx:()=>withCtx,withDefaults:()=>withDefaults,withDirectives:()=>withDirectives,withKeys:()=>withKeys,withMemo:()=>withMemo,withModifiers:()=>withModifiers,withScopeId:()=>withScopeId}),compileCache$1=Object.create(null);function compileToFunction(template,options){if(!isString$1(template))if(template.nodeType)template=template.innerHTML;else return NOOP;let key=genCacheKey(template,options),cached=compileCache$1[key];if(cached)return cached;if(template[0]===`#`){let el=document.querySelector(template);template=el?el.innerHTML:``}let opts=extend({hoistStatic:!0,onError:void 0,onWarn:NOOP},options);!opts.isCustomElement&&typeof customElements<`u`&&(opts.isCustomElement=tag=>!!customElements.get(tag));let{code}=compile$1(template,opts),render$1=Function(`Vue`,code)(runtime_dom_esm_bundler_exports);return render$1._rc=!0,compileCache$1[key]=render$1}registerRuntimeCompiler(compileToFunction);var activePinia,setActivePinia=pinia$1=>activePinia=pinia$1,piniaSymbol=Symbol();function isPlainObject$1(o){return o&&typeof o==`object`&&Object.prototype.toString.call(o)===`[object Object]`&&typeof o.toJSON!=`function`}var MutationType;(function(MutationType$1){MutationType$1.direct=`direct`,MutationType$1.patchObject=`patch object`,MutationType$1.patchFunction=`patch function`})(MutationType||={});var IS_CLIENT=typeof window<`u`,_global=(()=>typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null})();function bom(blob,{autoBom=!1}={}){return autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)?new Blob([``,blob],{type:blob.type}):blob}function download(url,name,opts){let xhr=new XMLHttpRequest;xhr.open(`GET`,url),xhr.responseType=`blob`,xhr.onload=function(){saveAs(xhr.response,name,opts)},xhr.onerror=function(){console.error(`could not download file`)},xhr.send()}function corsEnabled(url){let xhr=new XMLHttpRequest;xhr.open(`HEAD`,url,!1);try{xhr.send()}catch{}return xhr.status>=200&&xhr.status<=299}function click(node){try{node.dispatchEvent(new MouseEvent(`click`))}catch{let evt=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});node.dispatchEvent(evt)}}var _navigator=typeof navigator==`object`?navigator:{userAgent:``},isMacOSWebView=(()=>/Macintosh/.test(_navigator.userAgent)&&/AppleWebKit/.test(_navigator.userAgent)&&!/Safari/.test(_navigator.userAgent))(),saveAs=IS_CLIENT?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!isMacOSWebView?downloadSaveAs:`msSaveOrOpenBlob`in _navigator?msSaveAs:fileSaverSaveAs:()=>{};function downloadSaveAs(blob,name=`download`,opts){let a$1=document.createElement(`a`);a$1.download=name,a$1.rel=`noopener`,typeof blob==`string`?(a$1.href=blob,a$1.origin===location.origin?click(a$1):corsEnabled(a$1.href)?download(blob,name,opts):(a$1.target=`_blank`,click(a$1))):(a$1.href=URL.createObjectURL(blob),setTimeout(function(){URL.revokeObjectURL(a$1.href)},4e4),setTimeout(function(){click(a$1)},0))}function msSaveAs(blob,name=`download`,opts){if(typeof blob==`string`)if(corsEnabled(blob))download(blob,name,opts);else{let a$1=document.createElement(`a`);a$1.href=blob,a$1.target=`_blank`,setTimeout(function(){click(a$1)})}else navigator.msSaveOrOpenBlob(bom(blob,opts),name)}function fileSaverSaveAs(blob,name,opts,popup){if(popup||=open(``,`_blank`),popup&&(popup.document.title=popup.document.body.innerText=`downloading...`),typeof blob==`string`)return download(blob,name,opts);let force=blob.type===`application/octet-stream`,isSafari=/constructor/i.test(String(_global.HTMLElement))||`safari`in _global,isChromeIOS=/CriOS\/[\d]+/.test(navigator.userAgent);if((isChromeIOS||force&&isSafari||isMacOSWebView)&&typeof FileReader<`u`){let reader=new FileReader;reader.onloadend=function(){let url=reader.result;if(typeof url!=`string`)throw popup=null,Error(`Wrong reader.result type`);url=isChromeIOS?url:url.replace(/^data:[^;]*;/,`data:attachment/file;`),popup?popup.location.href=url:location.assign(url),popup=null},reader.readAsDataURL(blob)}else{let url=URL.createObjectURL(blob);popup?popup.location.assign(url):location.href=url,popup=null,setTimeout(function(){URL.revokeObjectURL(url)},4e4)}}var{assign:assign$1$1}=Object;function createPinia(){let scope$1=effectScope(!0),state=scope$1.run(()=>ref({})),_p=[],toBeInstalled=[],pinia$1=markRaw({install(app$1){setActivePinia(pinia$1),pinia$1._a=app$1,app$1.provide(piniaSymbol,pinia$1),app$1.config.globalProperties.$pinia=pinia$1,toBeInstalled.forEach(plugin=>_p.push(plugin)),toBeInstalled=[]},use(plugin){return this._a?_p.push(plugin):toBeInstalled.push(plugin),this},_p,_a:null,_e:scope$1,_s:new Map,state});return pinia$1}var noop$2=()=>{};function addSubscription(subscriptions,callback,detached,onCleanup=noop$2){subscriptions.push(callback);let removeSubscription=()=>{let idx=subscriptions.indexOf(callback);idx>-1&&(subscriptions.splice(idx,1),onCleanup())};return!detached&&getCurrentScope()&&onScopeDispose(removeSubscription),removeSubscription}function triggerSubscriptions(subscriptions,...args){subscriptions.slice().forEach(callback=>{callback(...args)})}var fallbackRunWithContext=fn=>fn(),ACTION_MARKER=Symbol(),ACTION_NAME=Symbol();function mergeReactiveObjects(target,patchToApply){for(let key in target instanceof Map&&patchToApply instanceof Map?patchToApply.forEach((value,key)=>target.set(key,value)):target instanceof Set&&patchToApply instanceof Set&&patchToApply.forEach(target.add,target),patchToApply){if(!patchToApply.hasOwnProperty(key))continue;let subPatch=patchToApply[key],targetValue=target[key];isPlainObject$1(targetValue)&&isPlainObject$1(subPatch)&&target.hasOwnProperty(key)&&!isRef(subPatch)&&!isReactive(subPatch)?target[key]=mergeReactiveObjects(targetValue,subPatch):target[key]=subPatch}return target}var skipHydrateSymbol=Symbol();function shouldHydrate(obj){return!isPlainObject$1(obj)||!Object.prototype.hasOwnProperty.call(obj,skipHydrateSymbol)}var{assign:assign$2}=Object;function isComputed(o){return!!(isRef(o)&&o.effect)}function createOptionsStore(id,options,pinia$1,hot){let{state,actions,getters}=options,initialState=pinia$1.state.value[id],store$1;function setup$3(){return initialState||(pinia$1.state.value[id]=state?state():{}),assign$2(toRefs(pinia$1.state.value[id]),actions,Object.keys(getters||{}).reduce((computedGetters,name)=>(computedGetters[name]=markRaw(computed(()=>{setActivePinia(pinia$1);let store$2=pinia$1._s.get(id);return getters[name].call(store$2,store$2)})),computedGetters),{}))}return store$1=createSetupStore(id,setup$3,options,pinia$1,hot,!0),store$1}function createSetupStore($id,setup$3,options={},pinia$1,hot,isOptionsStore){let scope$1,optionsForPlugin=assign$2({actions:{}},options),$subscribeOptions={deep:!0},isListening,isSyncListening,subscriptions=[],actionSubscriptions=[],debuggerEvents,initialState=pinia$1.state.value[$id];!isOptionsStore&&!initialState&&(pinia$1.state.value[$id]={}),ref({});let activeListener;function $patch(partialStateOrMutator){let subscriptionMutation;isListening=isSyncListening=!1,typeof partialStateOrMutator==`function`?(partialStateOrMutator(pinia$1.state.value[$id]),subscriptionMutation={type:MutationType.patchFunction,storeId:$id,events:void 0}):(mergeReactiveObjects(pinia$1.state.value[$id],partialStateOrMutator),subscriptionMutation={type:MutationType.patchObject,payload:partialStateOrMutator,storeId:$id,events:void 0});let myListenerId=activeListener=Symbol();nextTick().then(()=>{activeListener===myListenerId&&(isListening=!0)}),isSyncListening=!0,triggerSubscriptions(subscriptions,subscriptionMutation,pinia$1.state.value[$id])}let $reset=isOptionsStore?function(){let{state}=options,newState=state?state():{};this.$patch($state=>{assign$2($state,newState)})}:noop$2;function $dispose(){scope$1.stop(),subscriptions=[],actionSubscriptions=[],pinia$1._s.delete($id)}let action=(fn,name=``)=>{if(ACTION_MARKER in fn)return fn[ACTION_NAME]=name,fn;let wrappedAction=function(){setActivePinia(pinia$1);let args=Array.from(arguments),afterCallbackList=[],onErrorCallbackList=[];function after(callback){afterCallbackList.push(callback)}function onError(callback){onErrorCallbackList.push(callback)}triggerSubscriptions(actionSubscriptions,{args,name:wrappedAction[ACTION_NAME],store:store$1,after,onError});let ret;try{ret=fn.apply(this&&this.$id===$id?this:store$1,args)}catch(error){throw triggerSubscriptions(onErrorCallbackList,error),error}return ret instanceof Promise?ret.then(value=>(triggerSubscriptions(afterCallbackList,value),value)).catch(error=>(triggerSubscriptions(onErrorCallbackList,error),Promise.reject(error))):(triggerSubscriptions(afterCallbackList,ret),ret)};return wrappedAction[ACTION_MARKER]=!0,wrappedAction[ACTION_NAME]=name,wrappedAction},store$1=reactive({_p:pinia$1,$id,$onAction:addSubscription.bind(null,actionSubscriptions),$patch,$reset,$subscribe(callback,options$1={}){let removeSubscription=addSubscription(subscriptions,callback,options$1.detached,()=>stopWatcher()),stopWatcher=scope$1.run(()=>watch(()=>pinia$1.state.value[$id],state=>{(options$1.flush===`sync`?isSyncListening:isListening)&&callback({storeId:$id,type:MutationType.direct,events:void 0},state)},assign$2({},$subscribeOptions,options$1)));return removeSubscription},$dispose});pinia$1._s.set($id,store$1);let setupStore=(pinia$1._a&&pinia$1._a.runWithContext||fallbackRunWithContext)(()=>pinia$1._e.run(()=>(scope$1=effectScope()).run(()=>setup$3({action}))));for(let key in setupStore){let prop=setupStore[key];isRef(prop)&&!isComputed(prop)||isReactive(prop)?isOptionsStore||(initialState&&shouldHydrate(prop)&&(isRef(prop)?prop.value=initialState[key]:mergeReactiveObjects(prop,initialState[key])),pinia$1.state.value[$id][key]=prop):typeof prop==`function`&&(setupStore[key]=action(prop,key),optionsForPlugin.actions[key]=prop)}return assign$2(store$1,setupStore),assign$2(toRaw(store$1),setupStore),Object.defineProperty(store$1,`$state`,{get:()=>pinia$1.state.value[$id],set:state=>{$patch($state=>{assign$2($state,state)})}}),pinia$1._p.forEach(extender=>{assign$2(store$1,scope$1.run(()=>extender({store:store$1,app:pinia$1._a,pinia:pinia$1,options:optionsForPlugin})))}),initialState&&isOptionsStore&&options.hydrate&&options.hydrate(store$1.$state,initialState),isListening=!0,isSyncListening=!0,store$1}function defineStore(id,setup$3,setupOptions){let options,isSetupStore=typeof setup$3==`function`;options=isSetupStore?setupOptions:setup$3;function useStore$1(pinia$1,hot){let hasContext=hasInjectionContext();return pinia$1||=hasContext?inject(piniaSymbol,null):null,pinia$1&&setActivePinia(pinia$1),pinia$1=activePinia,pinia$1._s.has(id)||(isSetupStore?createSetupStore(id,setup$3,options,pinia$1):createOptionsStore(id,options,pinia$1)),pinia$1._s.get(id)}return useStore$1.$id=id,useStore$1}function storeToRefs(store$1){let rawStore=toRaw(store$1),refs={};for(let key in rawStore){let value=rawStore[key];value.effect?refs[key]=computed({get:()=>store$1[key],set(value$1){store$1[key]=value$1}}):(isRef(value)||isReactive(value))&&(refs[key]=toRef(store$1,key))}return refs}var require_eventemitter3=__commonJSMin(((exports,module)=>{var has=Object.prototype.hasOwnProperty,prefix=`~`;function Events(){}Object.create&&(Events.prototype=Object.create(null),new Events().__proto__||(prefix=!1));function EE(fn,context,once){this.fn=fn,this.context=context,this.once=once||!1}function addListener(emitter,event,fn,context,once){if(typeof fn!=`function`)throw TypeError(`The listener must be a function`);var listener=new EE(fn,context||emitter,once),evt=prefix?prefix+event:event;return emitter._events[evt]?emitter._events[evt].fn?emitter._events[evt]=[emitter._events[evt],listener]:emitter._events[evt].push(listener):(emitter._events[evt]=listener,emitter._eventsCount++),emitter}function clearEvent(emitter,evt){--emitter._eventsCount===0?emitter._events=new Events:delete emitter._events[evt]}function EventEmitter$1(){this._events=new Events,this._eventsCount=0}EventEmitter$1.prototype.eventNames=function(){var names=[],events$3,name;if(this._eventsCount===0)return names;for(name in events$3=this._events)has.call(events$3,name)&&names.push(prefix?name.slice(1):name);return Object.getOwnPropertySymbols?names.concat(Object.getOwnPropertySymbols(events$3)):names},EventEmitter$1.prototype.listeners=function(event){var evt=prefix?prefix+event:event,handlers$1=this._events[evt];if(!handlers$1)return[];if(handlers$1.fn)return[handlers$1.fn];for(var i=0,l=handlers$1.length,ee=Array(l);ithis.onBNGAPICallback(idx,result))}onBNGAPICallback(idx,result){idx in this.apiCallbacks&&(this.apiCallbacks[idx](result),delete this.apiCallbacks[idx])}engineScript(cmd,callback){if(!callback){beamNG$1.sendGameEngine(cmd);return}this.apiCallbacks[++this.callbackId]=callback,cmd.charAt(cmd.length-1)==`;`&&(cmd=cmd.substr(0,cmd.length-1)),beamNG$1.sendGameEngine(`queueHookJS("onBNGAPICallback","["@`+this.callbackId+`@","@strreplace(`+cmd+`,"\\"","\\\\\\"")@"]");`)}activeObjectLua(cmd,callback){if(!callback){beamNG$1.sendActiveObjectLua(cmd);return}if(!cmd){console.error(`activeObjectLua cmd null`,arguments);return}this.apiCallbacks[++this.callbackId]=callback,beamNG$1.sendActiveObjectLua(`guihooks.trigger("onBNGAPICallback",`+this.callbackId+`,`+cmd+`)`)}subscribeToEvents(data){beamNG$1.subscribeToEvents(data)}engineLua(cmd,callback){if(beamNG$1){if(!callback){beamNG$1.sendEngineLua(cmd);return}cmd||=`nop`,this.apiCallbacks[++this.callbackId]=callback,beamNG$1.sendEngineLua(`guihooks.trigger("onBNGAPICallback",`+this.callbackId+`,`+cmd+`)`)}}queueAllObjectLua(cmd){beamNG$1.queueAllObjectLua(cmd)}serializeToLuaCheck(text){let encoded=encodeURIComponent(text);this.engineLua(` nop([[
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
    if core_camera then core_camera.requestConfig() end    -- cameraConfig
  `);async function init$3(){for(let key in active=!0,(window.beamng&&!window.beamng.shipping||editor)&&(watchers$1.push(watch(()=>settingsValues.value,updateSettingsList)),watchers$1.push(watch(()=>layout.value,async()=>{await settings$1.waitForData(),updateSettingsList()}))),events$3.on(`SettingsChanged`,()=>settingsTimestamp.value=Date.now()),watchers$1.push(watch(customValues,()=>settingsTimestamp.value=Date.now(),{deep:!0})),events$3.on(`externalUIURL`,data=>customValues.externalUIURL=data||``),events$3.on(`OpenXRStateChanged`,data=>customValues.openXRstate=data),events$3.on(`CameraConfigChanged`,data=>{customValues.cameraConfigList=Array.isArray(data.cameraConfig)?data.cameraConfig:[],customValues.cameraConfigFocused=data.focusedCamName}),updateCustom(),await settings$1.waitForData(),settings$1.values)initialValues[key]=settings$1.values[key];settingsTimestamp.value=Date.now(),setupSearch(layout,settingsValues,settingsOptions,settingsTimestamp,conditions)}let settingsValues=computed(()=>{if(!active||!settings$1.values)return{};let res={...settings$1.values};for(let key in valueFormatters)res[key]=valueFormatters[key](res[key],settings$1.values,customValues);for(let key in valueExtensions)res[key]=valueExtensions[key](settings$1.values,customValues);return res}),settingsOptions=computed(()=>{let res={};if(!active||!settings$1.options||!settings$1.values)return res;for(let key in settings$1.options)key in optionFormatters?res[key]=optionFormatters[key](settings$1.options[key],settings$1.options,settings$1.values):res[key]=guessOptionFormat(settings$1.options[key]);for(let key in optionExtensions)res[key]=optionExtensions[key](settings$1.options,settings$1.values);return res}),editor=null,layout=ref(layout_default);function updateSettingsList(){if(!active)return;settingsList.value=Object.keys(settingsValues.value).reduce((res,name)=>({...res,[name]:{assigned:!1,assignedIn:[],value:settingsValues.value[name],options:settingsOptions.value[name],elementId:name.split(`.`)}}),{});function dive(items$2,cat,catIndex,level$1=0,parentId=``){for(let i=0;i{let values=name in applyValueFormatters?applyValueFormatters[name](value):{[name]:value};for(let key in name.startsWith(`debug_`)&&(customValues.debug[name.substring(6)]=value,name===`debug_visualization`&&(customValues.debug.visualization_prev&&api$1.engineLua(customValues.debug.visualization_prev),customValues.debug.visualization_prev=value,api$1.engineLua(value))),values)key in settings$1.values||delete values[key];Object.keys(values).length>0&&(logger_default.debug(`Applying:`,JSON.stringify(values)),settings$1.apply(values),updateCustom())};function dispose$2(){active=!1,settingsList.value={};for(let unwatch of watchers$1)unwatch();watchers$1.splice(0),settingsTimestamp.value=0,disposeSearch(),null?.dispose()}return provide(`settingsValues`,settingsValues),provide(`settingsOptions`,settingsOptions),provide(`settingsTimestamp`,settingsTimestamp),provide(`settingsList`,settingsList),provide(`conditions`,conditions),provide(`buildItemId`,buildItemId),{init:init$3,dispose:dispose$2,versions:VERSIONS,version:VERSIONS[0],settings:settings$1,settingsList,settingsValues,settingsOptions,settingsTimestamp,applySetting,buildItemId,layout,conditions,editable:!1,editor:null,searchText,searchResults,searchTemplates:{message:(...args)=>searchTemplates.message(layout,...args),headers:(...args)=>searchTemplates.headers(layout,...args),group:(...args)=>searchTemplates.group(layout,...args)}}}var _hoisted_1$19={class:`options-wrapper`,"bng-ui-scope":`options`},_hoisted_2$13={class:`options-heading`},_hoisted_3$12={key:0,class:`options-container`},_hoisted_4$9={class:`background`},_hoisted_5$8={class:`options-content-wrapper`},_hoisted_6$5={class:`options-message`},_hoisted_7$5={class:`message-content`},_hoisted_8$3={key:1,class:`options-categories`},_hoisted_9$2={key:0,class:`categories-divider`},_hoisted_10$1={key:2,class:`options-container`},_hoisted_11$1={class:`options-subcategories`},_hoisted_12$1={class:`background`},_hoisted_13$1={key:0,class:`categories-divider`},_hoisted_14$1={key:1,class:`categories-spacer`},_hoisted_15$1={key:0,class:`categories-spacer`},_hoisted_16$1={key:1,class:`categories-divider`},_hoisted_17$1={class:`options-content-wrapper`},_hoisted_18$1={key:0,class:`options-add-item`},_hoisted_19$1={key:1,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_20$1={key:2,class:`options-content`,"bng-ui-scope":`options-content`},_hoisted_21$1={class:`background`},_hoisted_22$1=[`innerHTML`],_hoisted_23$1={key:0,class:`options-info-fps`},_sfc_main$23={__name:`OptionsView`,props:{category:String},setup(__props){useUINavScope(`options`);let router$1=useRouter(),route=useRoute(),{api:api$1}=useBridge(),options=useOptions(),loaded=ref(!1),itemsContainer=ref(null),activeScope=ref(``),props=__props;provide(`version`,options.version);let EditUI=ref(null),itemEdit=(...args)=>EditUI.value?.functions.itemEdit?.(...args),categoryEdit=(...args)=>EditUI.value?.functions.categoryEdit?.(...args),catItemsPaste=(...args)=>EditUI.value?.functions.catItemsPaste?.(...args);provide(`EditUI`,EditUI);let editable=ref(!1);provide(`editable`,editable);let categories=computed(()=>options.layout.value.items||[]),categoryIds=computed(()=>categories.value.map(cat=>cat.categoryId)),categoryIndex=ref(-1);provide(`categoryIndex`,categoryIndex);let allCategories=computed(()=>{let cats=[...categories.value].map(cat=>({...cat})),startIndex=0;for(let i=0;istartIndex&&(cats[ri].subcategoryMode=hadSpacer?`none`:ri===i?`last`:ri===startIndex+1?`first`:`middle`)}}else startIndex=i,cat.indexRange=[i,i]}let hidden=[];for(let cat of cats)if(!(!cat.condition_visible||cat.condition_visible in options.conditions&&options.conditions[cat.condition_visible](options.settingsValues.value)))if(cat.subcategory)hidden.push(cat.categoryIndex);else for(let i=cat.indexRange[0];i<=cat.indexRange[1];i++)hidden.push(i);return options.editable?cats.map(cat=>(cat.hiddenByCondition=hidden.includes(cat.categoryIndex),cat.debugSettings=cat.condition_visible===`__notForShipping`,cat)):hidden.length>0?cats.filter(cat=>!hidden.includes(cat.categoryIndex)):cats}),categoriesView=computed(()=>allCategories.value.filter(cat=>!cat.subcategory&&!cat.persistent&&!cat.spacer)),categoryRange=computed(()=>categoriesView.value.find(cat=>categoryIndex.value>=cat.indexRange[0]&&categoryIndex.value<=cat.indexRange[1])?.indexRange||[categoryIndex.value,categoryIndex.value]),subcategoriesView=computed(()=>{let res=categoryIndex.value===-1?[]:allCategories.value.filter(cat=>!cat.persistent&&cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1]);return res.length>0&&(res[0]={...res[0],label:`ui.options.general`}),res}),persistentView=computed(()=>allCategories.value.filter(cat=>cat.persistent)),itemsNew=ref([]),itemsNewShow=ref(!1),itemsNewView=computed(()=>itemsNewShow.value?itemsNew.value:[]);options.editor&&watch(options.layout,()=>itemsNew.value.splice(0));function renderNewOptions(doRender=!0){if(itemsNewShow.value=doRender,!doRender||itemsNew.value.length>0)return;function dive(parent){if(parent.version!==options.version)for(let i=parent.items.length-1;i>=0;i--){let item=parent.items[i];item.items&&(item.items.length>0&&dive(item),item.items.length>0)||item.version!==options.version&&parent.items.splice(i,1)}}let layout=JSON.parse(JSON.stringify(options.layout.value.items));for(let i=layout.length-1;i>=0;i--){let cat=layout[i];dive(cat),cat.items.length>0&&itemsNew.value.push(options.searchTemplates.group(cat.label,cat.icon,cat.items))}}provide(`renderNewOptions`,renderNewOptions);let itemsView=computed(()=>[...categoryIndex.value>-1&&categoryIndex.value{renderNewOptions(!1),categoryIndex.value>-1&&(special.value=null,searchActive.value=!1,options.searchText.value=``),itemsContainer.value&&itemsContainer.value.scrollTo({top:0,behavior:`instant`})}),watch(special,()=>{special.value&&(categoryIndex.value=-1,searchActive.value=!1,options.searchText.value=``)});let searchActive=ref(!1),searchFocused=ref(!1);watch(searchFocused,focused$1=>{focused$1?(searchActive.value=!0,categoryIndex.value=-1,special.value=null):options.searchText.value.length===0&&(searchActive.value=!1,categoryIndex.value=0)});let elCategories=ref(null),elSearch=ref(null),elSearchBinding=ref(null);watch(()=>elSearch.value?.scopeActivated,active=>{activeScope.value=active?``:`content`});function toSearchAndBack(){elSearch.value&&(elSearch.value.scopeActivated=!elSearch.value.scopeActivated)}function fromContent(){searchActive.value?elSearch.value.scopeActivated=!0:activeScope.value=`subcategories`}function mainCatNav(evt){!elCategories.value||!evt.detail||(options.searchText.value=``,elSearch.value.scopeActivated=!1,searchActive.value=!1,activeScope.value=`subcategories`,evt.detail.name===`tab_l`?elCategories.value.activatePrev():evt.detail.name===`tab_r`&&elCategories.value.activateNext(),evt.stopPropagation())}function catNavigate(cat){cat.reroute?window.bngVue.gotoAngularState(cat.reroute):categoryIndex.value!==cat.categoryIndex&&(categoryIndex.value=cat.categoryIndex)}provide(`goToSetting`,(catIndex,itemId)=>{categoryIndex.value=catIndex,nextTick(()=>{let elm=document.getElementById(itemId);elm?(elm.scrollIntoView({behavior:`smooth`,block:`center`}),elm.classList.add(`options-setting-highlight`),setTimeout(()=>elm?.classList.remove(`options-setting-highlight`),5e3)):logger_default.warn(`Setting item not found: ${itemId}`)})});function onChange(data,value){options.applySetting(data.setting,value);let lua;switch(data.itemType){case`checkbox`:value===!0||value===`enable`?lua=data.lua:(value===!1||value===`disable`)&&(lua=data.luaOff);break;default:lua=data.lua}lua&&runLua(lua,value)}function onClick(data){data.lua&&runLua(data.lua)}function runLua(code,value=void 0){code.toLowerCase().includes(`%value%`)&&value!==void 0&&(code=code.replace(/%value%/gi,api$1.serializeToLua(value))),code.toLowerCase().includes(`%values%`)&&(code=code.replace(/%values%/gi,api$1.serializeToLua(options.settings.values)));let isLua=!code.startsWith(`$`);logger_default.log(`Running ${isLua?`lua`:`script`}: ${code}`),isLua?api$1.engineLua(code):api$1.engineScript(code)}function updateRoute(){if(!loaded.value||route.path!==`/options`&&!route.path.startsWith(`/options/`))return;let newRoute={name:`options`};categoryIndex.value>-1&&categoryIndex.valuecategoryIndex.value,(index,oldIndex)=>{index>-1?(special.value=null,updateRoute(),options.editor?.clearSelection(),showCategoryInfo(index,categories.value[index]?.categoryInfo),showCategoryInfo(oldIndex)):showCategoryInfo(oldIndex)}),watch(()=>special.value,val=>{val&&(categoryIndex.value=-1,updateRoute())});function selectDefaultCategory(){if(categories.value.length===0)return!1;if(props.category){let catIndex=categoryIds.value.indexOf(props.category);catIndex>-1?categoryIndex.value=catIndex:special.value=props.category}else categoryIndex.value=0;return!0}let elInfo=ref(),infos=new Map,infoHidden=ref(!1),infoView=ref([]);function showInfo(id,text=void 0){if(infos.has(id))if(text){if(infos.get(id)===text)return}else infos.delete(id);else if(!text)return;text&&infos.set(id,text),infos.size===0?infoView.value=[]:infoView.value=Array.from(infos.entries()).sort((a$1,b)=>a$1[0]-b[0]).map(tip=>({id:tip[0],text:tip[1]}))}function onResize(){elInfo.value&&(infoHidden.value=window.getComputedStyle(elInfo.value).display===`none`)}let unwatchResize=watch(elInfo,()=>{elInfo.value&&(unwatchResize(),onResize())});provide(`showInfo`,showInfo),provide(`infoHidden`,infoHidden);let fps=ref(`?`),fpsShown=ref(!1),fpsTimer;function showFps(show=!0){if(fpsShown.value=show,fpsTimer)show||(clearInterval(fpsTimer),fps.value=`?`,fpsTimer=null);else if(show){let fpsUpdate=()=>{infoHidden.value||api$1.engineLua(`getConsoleVariable("fps::avg")`,val=>fps.value=val?Number(val).toFixed(1):`?`)};fpsTimer=setInterval(fpsUpdate,500),fpsUpdate()}}let catInfoFuncs={fps:showFps},catInfoStack=new Map;function showCategoryInfo(id,info=void 0){if(!id)return;catInfoStack.has(id)&&!info?catInfoStack.delete(id):info&&catInfoStack.set(id,info);let infos$1=Array.from(catInfoStack.values()).reduce((res,name)=>res.includes(name)?res:[...res,name],[]);for(let[name,func]of Object.entries(catInfoFuncs))func(infos$1.includes(name))}function disposeCategoryInfo(){for(let func of Object.values(catInfoFuncs))func(!1)}function back(){editable.value?editable.value=!1:window.bngVue.gotoAngularState(`menu.mainmenu`)}return onBeforeMount(async()=>{api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.pushPauseRequest('options') end`)}),onMounted(()=>{if(options.init().then(()=>{loaded.value=!0,nextTick(()=>activeScope.value=`subcategories`)}),!selectDefaultCategory()){let unwatchCats=watch(categories,()=>selectDefaultCategory()&&unwatchCats())}window.addEventListener(`resize`,onResize)}),onUnmounted(()=>{options.searchText.value=``,window.removeEventListener(`resize`,onResize),disposeCategoryInfo(),options.dispose(),api$1.engineLua(`if getCurrentLevelIdentifier() then simTimeAuthority.popPauseRequest('options') end`)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$19,[createBaseVNode(`div`,_hoisted_2$13,[createVNode(unref(bngScreenHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.options.options`)),1)]),_:1}),unref(options).editor&&EditUI.value?(openBlock(),createBlock(resolveDynamicComponent(EditUI.value.default),{key:0,options:unref(options),categories:categories.value,"category-index":categoryIndex.value,"onUpdate:categoryIndex":_cache[0]||=$event=>categoryIndex.value=$event,special:special.value,"onUpdate:special":_cache[1]||=$event=>special.value=$event,editable:editable.value,"onUpdate:editable":_cache[2]||=$event=>editable.value=$event},null,40,[`options`,`categories`,`category-index`,`special`,`editable`])):createCommentVNode(``,!0)]),loaded.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_3$12,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_4$9,null,512),[[unref(BngBlur_default)]]),createBaseVNode(`div`,_hoisted_5$8,[createBaseVNode(`div`,_hoisted_6$5,[createBaseVNode(`div`,_hoisted_7$5,toDisplayString(_ctx.$t(`ui.repository.loading`)),1)])])])),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_8$3,[createVNode(unref(bngOverflowContainer_default),{ref_key:`elCategories`,ref:elCategories,class:`categories-container`,"initial-index":0,"use-bindings-only":``},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(categoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_9$2)):(openBlock(),createBlock(CategoryTop_default,{key:1,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex>=categoryRange.value[0]&&cat.categoryIndex<=categoryRange.value[1],icon:cat.icon,onClick:$event=>catNavigate(cat,!1),"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`icon`,`onClick`,`hidden-by-condition`,`debug-settings`,`editable`]))],64))),128))]),_:1},512),createBaseVNode(`div`,{class:normalizeClass([`options-search-input`,{"search-active":searchActive.value}])},[createVNode(unref(bngBinding_default),{ref_key:`elSearchBinding`,ref:elSearchBinding,class:`search-binding`,"ui-event":`context`,controller:``},null,512),createVNode(unref(bngInputNew_default),{ref_key:`elSearch`,ref:elSearch,class:`search-input`,modelValue:unref(options).searchText.value,"onUpdate:modelValue":_cache[3]||=$event=>unref(options).searchText.value=$event,modelModifiers:{trim:!0},"leading-icon":elSearchBinding.value?.displayed?null:unref(icons).search,"floating-label":_ctx.$tt(`ui.common.search`),"show-external-button":searchActive.value,onFocus:_cache[4]||=$event=>searchFocused.value=!0,onBlur:_cache[5]||=$event=>searchFocused.value=!1},null,8,[`modelValue`,`leading-icon`,`floating-label`,`show-external-button`])],2)])):createCommentVNode(``,!0),loaded.value?(openBlock(),createElementBlock(`div`,_hoisted_10$1,[withDirectives((openBlock(),createElementBlock(`div`,_hoisted_11$1,[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_12$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(subcategoriesView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_13$1)):cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_14$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,index:cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat),onFocus:$event=>catNavigate(cat,!1)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`index`,`has-subcategories`,`selected`,`subcategory`,`icon`,`hidden-by-condition`,`debug-settings`,`onClick`,`onFocus`]))],64))),128)),subcategoriesView.value.length===0&&allCategories.value[categoryIndex.value]?.persistent?(openBlock(),createBlock(CategorySide_default,{key:0,icon:allCategories.value[categoryIndex.value].icon,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(allCategories.value[categoryIndex.value].label)),1)]),_:1},8,[`icon`])):createCommentVNode(``,!0),searchActive.value?(openBlock(),createBlock(CategorySide_default,{key:1,icon:`search`,selected:``},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(`ui.common.search`)),1)]),_:1})):special.value===`categories-edit`?(openBlock(),createBlock(CategorySide_default,{key:2,icon:`listIndented`,selected:``},{default:withCtx(()=>[..._cache[11]||=[createTextVNode(`Edit categories`,-1)]]),_:1})):createCommentVNode(``,!0),persistentView.value.length>0?(openBlock(),createElementBlock(Fragment,{key:3},[_cache[13]||=createBaseVNode(`div`,{class:`categories-spacer`},null,-1),editable.value&&special.value===`categories-edit`?(openBlock(),createElementBlock(Fragment,{key:0},[(openBlock(!0),createElementBlock(Fragment,null,renderList(persistentView.value,cat=>(openBlock(),createBlock(CategorySide_default,{key:`cat-`+cat.categoryIndex,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:``,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))),128)),createVNode(CategorySide_default,{icon:`plus`,onClick:_cache[6]||=$event=>categoryEdit(`add`,!0),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[12]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])],64)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(persistentView.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.spacer?(openBlock(),createElementBlock(`div`,_hoisted_15$1)):cat.divider?(openBlock(),createElementBlock(`div`,_hoisted_16$1)):(openBlock(),createBlock(CategorySide_default,{key:2,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,selected:cat.categoryIndex===categoryIndex.value,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,onClick:$event=>catNavigate(cat)},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`selected`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`onClick`]))],64))),128))],64)):createCommentVNode(``,!0)])),[[unref(BngScopedNav_default),{activated:!searchActive.value&&activeScope.value===`subcategories`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),()=>activeScope.value=`content`,`ok`,{focusRequired:!0}]]),withDirectives((openBlock(),createElementBlock(`div`,_hoisted_17$1,[createVNode(BlurBackground_default,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,8,[`class`]),withDirectives(createBaseVNode(`div`,{class:normalizeClass([`background`,{"background-no-info":infoHidden.value}])},null,2),[[unref(BngBlur_default)]]),categoryIndex.value>-1?withDirectives((openBlock(),createElementBlock(`div`,{key:0,ref_key:`itemsContainer`,ref:itemsContainer,class:`options-content`,"bng-ui-scope":`options-content`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(itemsView.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`item-`+categoryIndex.value*1e5+`-`+index,parent:categories.value[categoryIndex.value],index,level:0,data:item,onClick,onChange,onEditCmd:itemEdit},null,8,[`parent`,`index`,`data`]))),128)),editable.value?(openBlock(),createElementBlock(`div`,_hoisted_18$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).plus,onClick:_cache[7]||=$event=>unref(options).editor.itemAdd(categories.value[categoryIndex.value])},{default:withCtx(()=>[..._cache[14]||=[createTextVNode(`Add new item`,-1)]]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(icons).addListItem,disabled:!unref(options).editor.clipItems.value.length,onClick:_cache[8]||=$event=>catItemsPaste()},{default:withCtx(()=>[createTextVNode(`Paste `+toDisplayString(unref(options).editor.clipTitle.value),1)]),_:1},8,[`accent`,`icon`,`disabled`]),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).outlined,icon:unref(options).editor.selectedItems.value.size>0?unref(icons).checkboxOn:unref(icons).checkboxOff,onClick:_cache[9]||=$event=>unref(options).editor.itemSelectAll(categories.value[categoryIndex.value])},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(options).editor.selectedItems.value.size>0?`Deselect all`:`Select all`),1)]),_:1},8,[`accent`,`icon`])])):createCommentVNode(``,!0)])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):searchActive.value?withDirectives((openBlock(),createElementBlock(`div`,_hoisted_19$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(options).searchResults.value,(item,index)=>(openBlock(),createBlock(Item_default,{key:`search-`+index,index,level:0,data:item,onClick,onChange},null,8,[`index`,`data`]))),128))])),[[unref(BngUiNavScroll_default),void 0,void 0,{force:!0}]]):special.value===`categories-edit`?(openBlock(),createElementBlock(`div`,_hoisted_20$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(allCategories.value,cat=>(openBlock(),createElementBlock(Fragment,{key:`cat-`+cat.categoryIndex},[cat.persistent?createCommentVNode(``,!0):(openBlock(),createBlock(CategorySide_default,{key:0,id:`options-cat-`+cat.categoryIndex,"has-subcategories":cat.hasSubcategories,subcategory:cat.subcategoryMode,icon:cat.icon,index:cat.categoryIndex,"hidden-by-condition":cat.hiddenByCondition,"debug-settings":cat.debugSettings,editable:editable.value,onClick:$event=>categoryEdit(`edit`,cat.categoryIndex),onEditCmd:categoryEdit},{default:withCtx(()=>[createTextVNode(toDisplayString(cat.spacer||cat.divider?`---`:_ctx.$tt(cat.label)),1)]),_:2},1032,[`id`,`has-subcategories`,`subcategory`,`icon`,`index`,`hidden-by-condition`,`debug-settings`,`editable`,`onClick`]))],64))),128)),editable.value?(openBlock(),createBlock(CategorySide_default,{key:0,icon:`plus`,onClick:_cache[10]||=$event=>categoryEdit(`add`),style:normalizeStyle(editable.value?{}:{opacity:0,pointerEvents:`none`})},{default:withCtx(()=>[..._cache[15]||=[createTextVNode(`New category`,-1)]]),_:1},8,[`style`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`elInfo`,ref:elInfo,class:normalizeClass([`options-info`,{"info-hidden":!!special.value}])},[createVNode(BlurBackground_default),withDirectives(createBaseVNode(`div`,_hoisted_21$1,null,512),[[unref(BngBlur_default)]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(infoView.value,tip=>(openBlock(),createElementBlock(`span`,{key:tip.id,innerHTML:tip.text},null,8,_hoisted_22$1))),128)),_cache[17]||=createBaseVNode(`div`,{class:`options-spacer`},null,-1),fpsShown.value?(openBlock(),createElementBlock(`div`,_hoisted_23$1,[_cache[16]||=createTextVNode(`FPS: `,-1),createBaseVNode(`span`,null,toDisplayString(fps.value),1)])):createCommentVNode(``,!0)],2)])),[[unref(BngScopedNav_default),{activated:activeScope.value===`content`,bubbleWhitelistEvents:[`context`]}],[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),fromContent,`back`],[unref(BngOnUiNav_default),back,`menu`]])])):createCommentVNode(``,!0)])),[[unref(BngOnUiNav_default),mainCatNav,`tab_l,tab_r`],[unref(BngOnUiNav_default),back,`back,menu`],[unref(BngOnUiNav_default),toSearchAndBack,`context`],[unref(BngUiNavLabel_default),`ui.common.search`,`context`]])}},OptionsView_default=__plugin_vue_export_helper_default(_sfc_main$23,[[`__scopeId`,`data-v-206a0fb3`]]),routes_default$12=[{path:`/options/:category?`,name:`options`,component:OptionsView_default,props:!0,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],cfg={background:[`var(--bng-black-o8)`,`var(--bng-black-o4)`],info:{icon:`var(--bng-cool-gray-500)`,iconSize:.15,label:`var(--bng-off-white)`,labelSize:.05,line:`var(--bng-cool-gray-700)`,lineSize:.0025,hotkey:`#aaa`,hotkeySize:.04,unfocusedColor:`var(--bng-cool-gray-500)`,focusedColor:`var(--bng-off-white)`},button:{top:.45,height:.175,margin:.004,corners:.03,background:`var(--bng-black)`,highlight:`var(--bng-ter-blue-gray-700)`,border:`var(--bng-cool-gray-700)`,borderHighlight:`var(--bng-cool-gray-500)`,borderSize:.0025,folder:`var(--bng-ter-blue-gray-900)`,folderTop:.45,folderHeight:.015,markerTop:.3,markerHeight:.025,marker:`var(--bng-orange)`,icon:`var(--bng-off-white)`,iconSize:.1,majorBackground:[`var(--bng-black)`,`var(--bng-ter-blue-gray-850)`],majorHighlight:[`var(--bng-ter-blue-gray-600)`,`var(--bng-ter-blue-gray-700)`],pinnedDotInvisible:{fill:`transparent`,stroke:`transparent`,r:4},markDotSolid:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`transparent`,r:4},markDotOutline:{fill:`transparent`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,r:3},markStar:{fill:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,stroke:`rgba(var(--bng-cool-gray-100-rgb),0.7)`,"stroke-width":2,r:3,isStar:!0,starPoints:5,innerRadius:1.5,outerRadius:3}},pointer:{color:`var(--bng-orange)`,size:6}},size=500,pointerRadius=125,controlsHotkey=``,getHotkey=action=>{let viewerObj=controls_default().makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(`+`):``},RadialSVG=class{parent;svg;config;events;itemsCont;info;buttons;pointer;menuIcon=``;constructor(events$3={},config=cfg,element=void 0){this.events=events$3,this.config=config,element&&this.create(element)}create(element){this.parent!==element&&(this.parent=element,this.svg||([this.svg,this.itemsCont,this.info,this.pointer]=createSvg(this.config)),this.parent.appendChild(this.svg))}update(items$2=[]){!this.itemsCont||!this.info||(controlsHotkey=getHotkey(`menu_item_focus_ud`),this.buttons=updateSvg(this.itemsCont,this.info,items$2,this.events,this.config,this.buttons||[],this))}dispose(){this.parent&&(this.parent.removeChild(this.svg),this.parent=null,this.svg=null,this.itemsCont=null,this.info=null,this.buttons=null)}setPointer(x,y){if(!this.pointer)return;let magnitude=Math.sqrt(x*x+y*y);magnitude>.1?(x/=magnitude,y/=magnitude,this.pointer.setAttribute(`cx`,x*pointerRadius+size/2),this.pointer.setAttribute(`cy`,-y*pointerRadius+size/2),this.pointer.setAttribute(`display`,`block`)):this.pointer.setAttribute(`display`,`none`)}setMenuIcon(iconName){if(this.menuIcon=iconName,this.info){let iconGlyph=getIconGlyph(this.menuIcon);this.info.icon.textContent=iconGlyph}}},svgns=`http://www.w3.org/2000/svg`,xhtmlns=`http://www.w3.org/1999/xhtml`,pid=Math.PI*2,getIconGlyph=iconName=>(iconName&&iconName in icons?icons[iconName]:icons.beamNG).glyph,setAttrs=(elm,attrs)=>Object.entries(attrs).forEach(attr=>elm.setAttribute(...attr)),setStyles=(elm,styles)=>Object.entries(styles).forEach(rule=>elm.style.setProperty(...rule)),f2size=f=>f*size,getPoint=(turn,radius,center=[.5,.5])=>[center[0]+radius*Math.cos(turn*pid),center[1]+radius*Math.sin(turn*pid)].map(n=>f2size(n).toFixed(5)),drawLine=to=>` L ${to.join(`,`)} `,drawBezier=(control,to)=>` S ${control.join(`,`)} ${to.join(` `)} `,drawArc=(to,radius,invert=!1)=>` A ${radius} ${radius}, 0, 0, ${invert?`0`:`1`}, ${to.join(` `)} `;function createSimplePath(pos,rad,width$1,height$1){let d=`M ${getPoint(pos,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1,rad),f2size(rad),!1),d+=drawLine(getPoint(pos+width$1,rad-height$1)),d+=drawArc(getPoint(pos,rad-height$1),f2size(rad-height$1),!0),d+=drawLine(getPoint(pos,rad)),d+=`Z`,d}function createPath({pos,rad,width:width$1,height:height$1,corner,padout,padin}){corner>height$1&&(corner=height$1);let corh=corner*rad/Math.PI,corv=corner*rad,d=`M ${getPoint(pos+padout+corh,rad).join(`,`)} `;return d+=drawArc(getPoint(pos+width$1-padout-corh,rad),f2size(rad),!1),d+=drawBezier(getPoint(pos+width$1-padout,rad),getPoint(pos+width$1-padout,rad-corv)),d+=drawLine(getPoint(pos+width$1-padout-padin,rad-height$1+corv)),d+=drawBezier(getPoint(pos+width$1-padout-padin,rad-height$1),getPoint(pos+width$1-padout-corh-padin,rad-height$1)),d+=drawArc(getPoint(pos+padout+corh+padin,rad-height$1),f2size(rad-height$1),!0),d+=drawBezier(getPoint(pos+padout+padin,rad-height$1),getPoint(pos+padout+padin,rad-height$1+corv)),d+=drawLine(getPoint(pos+padout,rad-corv)),d+=drawBezier(getPoint(pos+padout,rad),getPoint(pos+padout+corh,rad)),d+=`Z`,d}function updateSvg(cont,info,items$2,events$3,config=cfg,buttons=[],radialInstance=null){let btns=[...buttons||[]],elmsRem=btns.splice(items$2.length);for(let elm of elmsRem)cont.removeChild(elm.element);if(items$2.length<1)return null;for(let index=btns.length;indexicon,file:icon=>`/ui/modules/apps/RadialMenu/mods_icons/`+icon,symbol:icon=>`#`+({radial_Drift_ESC:`radial_drift_ESC`,radial_Sport_ESC:`radial_sport_ESC`,radial_Regular_ESC:`radial_regular_ESC`,radial_ESC:`radial_regular_ESC`}[icon]||icon)};function createButton(index,info,config,item){let btn={index},majorGradId=uniqueSafeId(),majorHighlightGradId=uniqueSafeId(),control=document.createElementNS(svgns,`g`);btn.element=control;function createGradient(id,colors){let grad=document.createElementNS(svgns,`radialGradient`);return setAttrs(grad,{id,cx:`0.5`,cy:`0.5`,r:`0.5`,fx:`0.5`,fy:`0.5`}),colors.forEach((color,index$1)=>{let stop$1=document.createElementNS(svgns,`stop`);setAttrs(stop$1,{offset:index$1/(colors.length-1),"stop-color":color}),grad.appendChild(stop$1)}),grad}let defs=document.createElementNS(svgns,`defs`);defs.appendChild(createGradient(majorGradId,config.button.majorBackground)),defs.appendChild(createGradient(majorHighlightGradId,config.button.majorHighlight)),control.appendChild(defs);let button=document.createElementNS(svgns,`path`);config.button.border&&config.button.borderSize>0&&setAttrs(button,{stroke:config.button.border,"stroke-width":f2size(config.button.borderSize)}),control.appendChild(button);let folder=document.createElementNS(svgns,`path`);folder.setAttribute(`fill`,config.button.folder),control.appendChild(folder);let marker$1=document.createElementNS(svgns,`path`);marker$1.setAttribute(`fill`,`none`),control.appendChild(marker$1);let pinnedDot=document.createElementNS(svgns,`circle`);setAttrs(pinnedDot,config.button.markDotSolid),pinnedDot.setAttribute(`style`,`display: none`),control.appendChild(pinnedDot);let starPath=document.createElementNS(svgns,`path`),starConfig=config.button.markStar,points=starConfig.starPoints||5,innerRadius=starConfig.innerRadius||1.5,outerRadius=starConfig.outerRadius||3,starPathData=``;for(let i=0;ion?iconRect.removeAttribute(`style`):iconRect.setAttribute(`style`,`display: none`),setGlyph=glyph=>iconText.textContent=glyph||``,setImage=path=>{path?(iconImage.setAttribute(`href`,path),iconImage.removeAttribute(`style`)):(iconImage.removeAttribute(`href`),iconImage.setAttribute(`style`,`display: none`))},setSymbol=id=>{id?(iconMask.setAttribute(`mask-type`,`luminocity`),iconSymbol.setAttribute(`href`,id),iconSymbol.removeAttribute(`style`)):(iconMask.setAttribute(`mask-type`,`alpha`),iconSymbol.removeAttribute(`href`),iconSymbol.setAttribute(`style`,`display: none`))},itype=iconType(item$1.icon);switch(itype){case`glyph`:setGlyph(getIconGlyph(item$1.icon)),setRect(!1),setImage(),setSymbol();break;case`symbol`:setImage(),setSymbol(iconGet[itype](item$1.icon)),setRect(!0),setGlyph();break;default:setImage(iconGet[itype](item$1.icon)),setSymbol(),setRect(!0),setGlyph();break}}let hitzone=document.createElementNS(svgns,`path`);setAttrs(hitzone,{fill:`transparent`,style:`pointer-events: fill`}),control.appendChild(hitzone);function updateHitzone(position,length,config$1){hitzone.setAttribute(`d`,createSimplePath(position-length/2,config$1.button.top,length,config$1.button.height))}function updateEvents$1(events$3,radialInstance){btn._handlers&&(hitzone.removeEventListener(`mouseover`,btn._handlers.focus),hitzone.removeEventListener(`mouseleave`,btn._handlers.blur),hitzone.removeEventListener(`click`,btn._handlers.click),hitzone.removeEventListener(`mousedown`,btn._handlers.down),hitzone.removeEventListener(`mouseup`,btn._handlers.up),hitzone.removeEventListener(`contextmenu`,btn._handlers.contextMenu));let item$1=btn.item,index$1=btn.index;return btn.menuIcon=radialInstance?.menuIcon||``,btn._handlers={focus(){if(item$1.focused&&btn._focused)return;let highlightFill=item$1.majorButton?`url(#${majorHighlightGradId})`:config.button.highlight;button.setAttribute(`fill`,highlightFill),button.setAttribute(`stroke`,config.button.borderHighlight),marker$1.setAttribute(`fill`,config.button.marker);let itype=iconType(item$1.icon);itype===`glyph`?(setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.focusedColor}),info.icon.textContent=getIconGlyph(item$1.icon)):(info.icon.textContent=``,itype===`symbol`&&info.iconSymbol.setAttribute(`href`,iconGet[itype](item$1.icon)),setStyles(info.icon,{"background-color":config.info.icon,"-webkit-mask-image":itype===`symbol`?`url('#${info.iconMaskId}')`:`url('${iconGet[itype](item$1.icon)}')`})),info.label.textContent=typeof item$1.title==`string`?$translate.contextTranslate({txt:item$1.title,context:item$1.context}):$translate.contextTranslate(item$1.title),info.label.style.color=config.info.focusedColor,info.price.textContent=item$1?.price?.money?.amount===void 0?``:item$1.price.money.amount+` `,info.hotkey.textContent=item$1.hotkey||``,info.cont.removeAttribute(`style`),item$1.focused=!0,btn._focused=!0,typeof events$3.focus==`function`&&events$3.focus(item$1,index$1)},blur(){if(!item$1.focused&&!btn._focused)return;let normalFill=item$1.majorButton?`url(#${majorGradId})`:config.button.background;button.setAttribute(`fill`,normalFill),button.setAttribute(`stroke`,config.button.border),marker$1.setAttribute(`fill`,`none`),setStyles(info.icon,{"background-color":`transparent`,"-webkit-mask-image":`none`,color:config.info.unfocusedColor});let iconGlyph=getIconGlyph(btn.menuIcon);info.icon.textContent=iconGlyph,info.label.textContent=`Select an option`,info.price.textContent=``,info.hotkey.textContent=controlsHotkey,info.label.style.color=config.info.unfocusedColor,item$1.focused=!1,btn._focused=!1,typeof events$3.blur==`function`&&events$3.blur(item$1,index$1)},click(evt){evt&&evt.stopPropagation(),!(!item$1.enabled||!events$3||evt&&!evt.fromController&&evt.type!==`ui_nav`)&&(btn._handlers.isDown=!1,typeof events$3.click==`function`&&events$3.click(item$1,index$1))},down(evt){!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!0,typeof events$3.down==`function`&&events$3.down(item$1,index$1))},up(evt){!btn._handlers.isDown||!item$1.enabled||!events$3||evt.button!==0||(btn._handlers.isDown=!1,typeof events$3.up==`function`&&events$3.up(item$1,index$1))},contextMenu(evt){evt&&evt.stopPropagation(),events$3&&typeof events$3.contextAction==`function`&&events$3.contextAction(item$1,index$1)}},hitzone.addEventListener(`mouseover`,btn._handlers.focus),hitzone.addEventListener(`mouseleave`,btn._handlers.blur),hitzone.addEventListener(`click`,btn._handlers.click,!0),hitzone.addEventListener(`mousedown`,btn._handlers.down),hitzone.addEventListener(`mouseup`,btn._handlers.up),hitzone.addEventListener(`contextmenu`,btn._handlers.contextMenu),btn._handlers}function updateEnable(item$1){item$1.enabled?(hitzone.setAttribute(`cursor`,`pointer`),control.removeAttribute(`opacity`)):(hitzone.removeAttribute(`cursor`),control.setAttribute(`opacity`,`0.5`))}return btn.update=(item$1,events$3=void 0,radialInstance=null)=>{btn.item=item$1;let length=Math.min(item$1.size,.5),position=(item$1.position-.5)%1;updateButton(position,length,config,item$1),updateHitzone(position,length,config),updateIcon(position,length,config,item$1),updateEnable(item$1),btn._handlers=updateEvents$1(events$3,radialInstance),Object.assign(btn,btn._handlers),(item$1.focused||btn._focused)&&btn._handlers.focus()},btn}function createSvg(config=cfg){let svg=document.createElementNS(svgns,`svg`);setAttrs(svg,{viewBox:`0 0 ${size} ${size}`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`,style:`pointer-events: none`});let gradId=Array.isArray(config.background)?uniqueSafeId():null;if(gradId){let grad=document.createElementNS(svgns,`radialGradient`);grad.setAttribute(`id`,gradId);for(let i=0;i{evt.stopPropagation()},!0),svg.appendChild(bg);let nfo={cont:document.createElementNS(svgns,`foreignObject`),body:document.createElementNS(xhtmlns,`body`),wrap:document.createElementNS(xhtmlns,`div`),icon:document.createElementNS(xhtmlns,`div`),iconSymbol:document.createElementNS(svgns,`use`),iconMaskId:uniqueSafeId(),label:document.createElementNS(xhtmlns,`div`),price:document.createElementNS(xhtmlns,`div`),hotkey:document.createElementNS(xhtmlns,`div`)},foMinSize=200,nfoSize=size>=200?size:200;setAttrs(nfo.cont,{style:`display: none`,width:nfoSize,height:nfoSize}),size<200&&nfo.cont.setAttribute(`transform`,`scale(${size*.005})`),nfo.body.setAttribute(`xmlns`,xhtmlns),setStyles(nfo.body,{width:`100%`,height:`100%`}),setStyles(nfo.wrap,{width:`${nfoSize*.5}px`,height:`${nfoSize*.4}px`,margin:`${nfoSize*.3}px ${nfoSize*.25}px`,display:`flex`,"flex-direction":`column`,"align-items":`center`,"justify-content":`space-between`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.icon,{color:config.info.icon,"font-size":`${config.info.iconSize*nfoSize}px`,"font-family":`bngIcons`,width:`${config.info.iconSize*nfoSize}px`,height:`${config.info.iconSize*nfoSize}px`,"-webkit-mask-image":`none`,"-webkit-mask-size":`contain`,"-webkit-mask-position":`50% 50%`,"-webkit-mask-repeat":`no-repeat`,"background-color":`transparent`});let iconSvg=document.createElementNS(svgns,`svg`);setAttrs(iconSvg,{viewBox:`0 0 ${config.info.iconSize*nfoSize} ${config.info.iconSize*nfoSize}`,width:`0`,height:`0`,style:`position: absolute;`});let iconMask=document.createElementNS(svgns,`mask`);setAttrs(iconMask,{id:nfo.iconMaskId,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,"mask-type":`luminocity`}),setAttrs(nfo.iconSymbol,{x:`0`,y:`0`,width:config.info.iconSize*nfoSize,height:config.info.iconSize*nfoSize,fill:`#fff`}),iconMask.appendChild(nfo.iconSymbol),iconSvg.appendChild(iconMask),setStyles(nfo.label,{"min-height":`2em`,width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*nfoSize}px`,"font-family":`var(--fnt-defs)`}),setStyles(nfo.price,{width:`100%`,"text-align":`center`,color:config.info.label,"font-size":`${config.info.labelSize*.8*nfoSize}px`,"font-family":`bngIcons, var(--fnt-defs)`}),setStyles(nfo.hotkey,{width:`80%`,"text-align":`center`,"padding-top":`1px`,"min-height":`${config.info.hotkeySize*nfoSize+10}px`,"border-top":`${config.info.lineSize*nfoSize}px solid ${config.info.line}`,color:config.info.hotkey,"font-size":`${config.info.hotkeySize*nfoSize}px`,"font-family":`bngIcons, "Noto Sans Mono", var(--fnt-defs)`}),nfo.wrap.appendChild(iconSvg),nfo.wrap.appendChild(nfo.icon),nfo.wrap.appendChild(nfo.label),nfo.wrap.appendChild(nfo.price),nfo.wrap.appendChild(nfo.hotkey),nfo.body.appendChild(nfo.wrap),nfo.cont.appendChild(nfo.body),svg.appendChild(nfo.cont);let cont=document.createElementNS(svgns,`g`);svg.appendChild(cont);let pointer=document.createElementNS(svgns,`circle`);return setAttrs(pointer,{r:config.pointer.size,fill:config.pointer.color,display:`none`}),svg.appendChild(pointer),nfo.icon.textContent=getIconGlyph(svg.menuIcon),nfo.label.textContent=`Select an option`,nfo.price.textContent=``,nfo.label.style.color=config.info.unfocusedColor,controlsHotkey=getHotkey(`menu_item_focus_ud`),nfo.hotkey.textContent=controlsHotkey,nfo.cont.removeAttribute(`style`),[svg,cont,nfo,pointer]}var _hoisted_1$18={class:`radial-infos`},_hoisted_2$12={class:`radial-breadcrumbs`},_hoisted_3$11={key:0,class:`radial-categories`},_hoisted_4$8={class:`radial-plate`},_hoisted_5$7={class:`radial-category-label`},_hoisted_6$4={key:0,class:`radial-quick-tabs`},_hoisted_7$4={key:1,class:`radial-description`},sensivity=.5,_sfc_main$22={__name:`Radial`,setup(__props){useUINavScope(`radialMenu`);let infobar=useInfoBar(),controls$1=controls_default(),events$3=useEvents(),radialData=ref({}),temporaryHidden=ref(!1),breadcrumbs=computed(()=>radialData.value&&radialData.value.breadcrumbs&&Array.isArray(radialData.value.breadcrumbs)?radialData.value.breadcrumbs.map(str=>$translate.instant(str)).join(` / `):``),focusedItem=computed(()=>{let items$2=radialData?.value?.items;return items$2&&Array.isArray(items$2)?items$2.find(item=>item.focused):null}),hasLRShoulderButtons=computed(()=>radialData.value&&radialData.value.hasLRShoulderButtons),radialSvg=new RadialSVG({click:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},down:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`click`),Lua_default.core_quickAccess.selectItem(index+1,!0,1)},focus:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`)},contextAction:(item,index)=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.contextAction(index+1,!0,1)}}),radialCont=ref(),requestData=async()=>{radialData.value=await Lua_default.core_quickAccess.getUiData();let items$2=Array.isArray(radialData.value.items)?radialData.value.items:[];for(let item of items$2)item.hotkey=getHotkey$1(item.action);radialSvg.setMenuIcon(radialData.value.menuIcon||`beamNG`),radialSvg.update(items$2)},getHotkey$1=action=>{let viewerObj=controls$1.makeViewerObj({action});return viewerObj?icons[viewerObj.icon].glyph+` `+viewerObj.control.split(/[ -]/).map(s=>s.substring(0,1).toUpperCase()+s.substring(1)).join(``):``},setLevel=level$1=>{Lua_default.ui_audio.playEventSound(`bng_click_hover_generic`,`focus`),Lua_default.core_quickAccess.setEnabled(!0,level$1,!1)},close=()=>{Lua_default.core_quickAccess.setEnabled(!1,``,!1)},back=()=>{radialData.value.backButtonIndex?Lua_default.core_quickAccess.back():close()},switchCategory=left=>{let indexOffset=left?-1:1;for(let i=0;i{let actions=radialData.value.items;for(let i=0;i{if(radialData.value.categories.length>0){switchCategory(evt.detail.name===`tab_l`);return}LRAction(evt.detail.name)},processMouseClick=evt=>{if(!radialSvg.buttons)return;let elm=radialSvg?.buttons?.find(elm$1=>elm$1._focused)||radialSvg?.buttons?.find(elm$1=>elm$1.item.focused);return evt.detail.name===`context`?elm&&elm.contextMenu(evt):elm&&elm.click(evt),elm},isStickActive=(x,y)=>Math.sqrt(x**2+y**2)>sensivity,pointToItem=(x,y)=>{if(!radialSvg.buttons)return;let len=radialSvg.buttons.length,idx=-1;if(radialSvg.setPointer(x,y),x!==0||y!==0){let cursorPos=.5-Math.atan2(y,x)/Math.PI/2;for(let i=0;i=startPos&&cursorPos=startPos||cursorPos-1&&idx{evt.detail.name===`focus_ud`?stickY=evt.detail.value:stickX=evt.detail.value;let stickActiveBefore=stickActive;stickActive=isStickActive(stickX,stickY),stickActive&&pointToItem(stickX,stickY),!stickActive&&stickActiveBefore&&pointToItem(0,0)},dpadX=0,dpadY=0,processDpadInput=evt=>{switch(evt.detail.name){case`focus_l`:dpadX=-evt.detail.value;break;case`focus_r`:dpadX=evt.detail.value;break;case`focus_u`:dpadY=evt.detail.value;break;case`focus_d`:dpadY=-evt.detail.value;break}dpadX=0+ +dpadX,dpadY=0+ +dpadY,pointToItem(dpadX,dpadY)},openFavoriteSelector=()=>{if(radialData.value.pathBeforeCategory===`favorites`){for(let i=0;i{let isOnComponents=event.target.closest(`.radial-categories, .radial-svg, .radial-tab-left, .radial-tab-right`);event.isTrusted&&event.sourceCapabilities?.firesTouchEvents===!1&&!isOnComponents&&(event.button===0?close():event.button===2&&back())};events$3.on(`radialMenuUpdated`,requestData),events$3.on(`RadialTemporaryHide`,hide$2=>{temporaryHidden.value=hide$2}),onBeforeMount(()=>{infobar.clearHints()}),onMounted(()=>{infobar.visible=!0,radialSvg.create(radialCont.value),requestData()});let headingTitle=computed(()=>radialData.value?.breadcrumbs?.[0]?$translate.instant(radialData.value.breadcrumbs[0]):radialData.value?.items?.length?`Radial Menu`:`No Actions Available`),hasCategories=computed(()=>radialData.value?.categories&&(Array.isArray(radialData.value.categories)?radialData.value.categories.length>0:Object.keys(radialData.value.categories).length>0));return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`radial-menu`,{temporaryHidden:temporaryHidden.value}]),"bng-ui-scope":`radialMenu`,onMousedown:handleMouseDown},[createBaseVNode(`div`,_hoisted_1$18,[createVNode(bngCardHeading_default,{class:`radial-title`},{default:withCtx(()=>[createTextVNode(toDisplayString(headingTitle.value),1)]),_:1}),createBaseVNode(`div`,_hoisted_2$12,toDisplayString(breadcrumbs.value),1),hasCategories.value?(openBlock(),createElementBlock(`div`,_hoisted_3$11,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,"ui-event":`tab_l`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),controller:``,onClick:_cache[0]||=$event=>switchCategory(!0)},null,8,[`style`]),createBaseVNode(`div`,_hoisted_4$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(radialData.value.categories,category=>withDirectives((openBlock(),createBlock(unref(bngImageTile_default),{key:category.id,onClick:$event=>setLevel(category.goto),tabindex:`0`,"bng-nav-item":``,class:normalizeClass([`radial-category`,{selected:category.id===radialData.value.selectedCategory}]),icon:unref(icons)[category.icon||`beamNG`]},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_5$7,toDisplayString(unref($translate).instant(category.title)),1)]),_:2},1032,[`onClick`,`class`,`icon`])),[[unref(BngOnUiNav_default),void 0,`ok`,{asMouse:!0,focusRequired:!0}]])),128)),_cache[4]||=createBaseVNode(`div`,{class:`background-plate`},null,-1)]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,"ui-event":`tab_r`,controller:``,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),onClick:_cache[1]||=$event=>switchCategory(!1)},null,8,[`style`])])):createCommentVNode(``,!0)]),hasLRShoulderButtons.value?(openBlock(),createElementBlock(`div`,_hoisted_6$4,[createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-left`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallLeft.glyph}'`}),"ui-event":`tab_l`,controller:``,onClick:_cache[2]||=$event=>LRAction(`tab_l`)},null,8,[`style`]),createVNode(unref(bngBinding_default),{class:`radial-plate radial-tab-right`,style:normalizeStyle({"--rad-tab-icon":`'${unref(icons).arrowSmallRight.glyph}'`}),"ui-event":`tab_r`,controller:``,onClick:_cache[3]||=$event=>LRAction(`tab_r`)},null,8,[`style`])])):createCommentVNode(``,!0),createBaseVNode(`div`,{ref_key:`radialCont`,ref:radialCont,class:`radial-svg`},null,512),focusedItem.value?.desc?(openBlock(),createElementBlock(`div`,_hoisted_7$4,toDisplayString(unref(content_exports).bbcode.parse(unref($translate).contextTranslate(focusedItem.value.desc,!0))),1)):createCommentVNode(``,!0)],34)),[[unref(BngBlur_default),!temporaryHidden.value],[unref(BngOnUiNav_default),openFavoriteSelector,`context`],[unref(BngOnUiNav_default),back,`menu,back`],[unref(BngOnUiNav_default),processTabInput,`tab_l,tab_r`],[unref(BngOnUiNav_default),processStickInput,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{down:!0}],[unref(BngOnUiNav_default),processDpadInput,`focus_l,focus_r,focus_u,focus_d`,{up:!0}],[unref(BngOnUiNav_default),processMouseClick,`ok,context`],[unref(BngUiNavLabel_default),radialData.value.backButtonIndex?`ui.common.back`:`ui.common.close`,`menu,back`],[unref(BngUiNavLabel_default),`Radial menu navigation`,`focus_lr,focus_ud,focus_l,focus_r,focus_u,focus_d`],[unref(BngUiNavLabel_default),`Select`,`ok`],[unref(BngUiNavLabel_default),`Configure Slot`,`context`],[unref(BngUiNavLabel_default),`Switch Category`,`tab_l,tab_r`]])}},Radial_default=__plugin_vue_export_helper_default(_sfc_main$22,[[`__scopeId`,`data-v-9330a4cb`]]),routes_default$13=[{path:`/radial`,name:`radial`,component:Radial_default,meta:{uiApps:{shown:!1}}}],routes_default$14=[{path:`/recovery`,name:`recovery`,component:Recovery_default,props:!0}],isFuelEnergyType=type=>[`gasoline`,`diesel`].includes(type);const useRefuelStore=defineStore(`refuel`,()=>{let{events:events$3}=useBridge(),minSlider=23,maxSlider=80,minEnergy=0,fuelOptions=[{id:1,value:0,name:`FuelType-1`},{id:2,value:1,name:`FuelType-2`},{id:3,value:2,name:`FuelType-3`}],energyTypes=ref([]),fuelTanks=ref([]),overallPrice=ref(0),flowRate=ref(0),currentEnergyType=ref(null),showFuelTypeSettings=ref(!1),showAmountSettings=ref(!1),energyTypesToLocalUnits=ref({}),gasStationName=ref(``),fuelDiscountData=ref({}),isFuelling=computed(()=>flowRate.value>0),currentFuelData=computed(()=>fuelTanks.value.filter(f=>f.energyType===currentEnergyType.value)[0]),currentFuelType=computed(()=>currentEnergyType.value===``?``:isFuelEnergyType(currentEnergyType.value)?`fuel`:`charge`),currentFuelLevel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergy/currentFuelData.value.maxEnergy:0),canRefuel=computed(()=>currentFuelData.value?currentFuelData.value.currentEnergycanRefuel.value===!0?isFuelling.value===!0?`on`:`off`:`disabled`),canPay=computed(()=>currentFuelData.value.price>0),canStartFuelling=computed(()=>isFuelling.value===!1&&canRefuel.value===!0),canStopFuelling=computed(()=>isFuelling.value===!0),minEnergyLabel=computed(()=>`0 `+getUnitLabel(currentEnergyType.value)),maxEnergyLabel=computed(()=>currentFuelData.value?(isFuelEnergyType(currentEnergyType.value)?convertToLocalUnit(currentFuelData.value.maxEnergy,currentEnergyType.value).toFixed(2):`100`)+` `+getUnitLabel(currentEnergyType.value):``);function getUnitLabel(energyType){return isFuelEnergyType(energyType)?getLocalUnitLabel(energyType):`%`}function getLocalUnit(energyType){return energyTypesToLocalUnits.value[energyType]?energyTypesToLocalUnits.value[energyType]:`L`}let unitToLabel={gallonUS:`gal`},factorSIToLocalUnit={gallonUS:.26417};function getLocalUnitLabel(energyType){let localUnit=getLocalUnit(energyType);return localUnit&&unitToLabel[localUnit]?unitToLabel[localUnit]:`L`}function convertToLocalUnit(valueSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?valueSI*(factorSIToLocalUnit[localUnit]||1):valueSI}function convertToPricePerLocalUnit(pricePerSI,energyType){let localUnit=getLocalUnit(energyType);return localUnit?pricePerSI/(factorSIToLocalUnit[localUnit]||1):pricePerSI}function startFuelling(){Lua_default.career_modules_fuel.uiButtonStartFueling(currentEnergyType.value)}function stopFuelling(){Lua_default.career_modules_fuel.uiButtonStopFueling(currentEnergyType.value)}function changeFlowRate(newFlowRate){flowRate.value=newFlowRate,Lua_default.career_modules_fuel.onChangeFlowRate(flowRate.value)}function payPrice(){Lua_default.career_modules_fuel.payPrice()}function requestFuelingData(){Lua_default.career_modules_fuel.requestRefuelingTransactionData(),runInBrowser(()=>getMockedData(`career.initialFuelingData`).then(data=>events$3.emit(`initialFuelingData`,data)))}function cancelTransaction(){console.log(`cancelTransaction`),Lua_default.career_modules_fuel.uiCancelTransaction()}function dispose$2(){events$3.off(`initialFuelingData`),events$3.off(`updateFuelData`)}return events$3.on(`initialFuelingData`,data=>{({fuelData:fuelTanks.value,energyTypes:energyTypes.value}=data),currentEnergyType.value=energyTypes.value[0],energyTypesToLocalUnits.value=data.energyTypesToLocalUnits,factorSIToLocalUnit.value=data.factorSIToLocalUnit,gasStationName.value=data.gasStationName,fuelDiscountData.value=data.fuelDiscountData||{},Lua_default.career_modules_fuel.sendUpdateDataToUI()}),events$3.on(`updateFuelData`,data=>{fuelTanks.value.length!==0&&(fuelTanks.value[0].currentEnergy=data.fuelData[0].currentEnergy,fuelTanks.value[0].fueledEnergy=data.fuelData[0].fueledEnergy,fuelTanks.value[0].price=data.fuelData[0].price,overallPrice.value=data.overallPrice,flowRate.value=data.fuelData[0].fuelingActive===!0?1:0)}),{currentFuelData,currentFuelLevel,currentFuelType,currentEnergyType,nozzleMode,overallPrice,isFuelling,energyTypes,canPay,canStartFuelling,canStopFuelling,fuelDiscountData,showFuelTypeSettings,showAmountSettings,gasStationName,startFuelling,stopFuelling,changeFlowRate,payPrice,requestFuelingData,cancelTransaction,getUnitLabel,convertToPricePerLocalUnit,dispose:dispose$2,minEnergyLabel,maxEnergyLabel,minSlider:23,maxSlider:80,fuelOptions}});var _hoisted_1$17={class:`full`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,x:`0`,y:`0`,viewBox:`6 0 280 280`,width:`280`,height:`280`},_hoisted_2$11={id:`glow`,x:`-40%`,y:`-40%`,width:`180%`,height:`180%`},_hoisted_3$10=[`flood-color`],_hoisted_4$7={class:`gauge-label`},_hoisted_5$6={class:`info`},DASH_ARR_LENGTH=455,GAUGE_TYPES=[`refuel`,`recharge`],GAUGE_DEFAULTS={refuel:{cssColour:`var(--bng-orange-b400)`,gradientColour:`255,102,0`,icon:icons.fuelPumpFilling},recharge:{cssColour:`var(--bng-add-blue-600)`,gradientColour:`95,157,249`,icon:icons.charging}},_sfc_main$21={__name:`FuelGauge`,props:{value:{type:Number,default:0},type:{type:String,default:`refuel`,validator:v=>GAUGE_TYPES.includes(v)||v===``},fuelling:{type:Boolean,default:!1},label:String,maxLabel:String,minLabel:String},setup(__props){window.bngVue.isProd;let props=__props,gaugeLevelStyle=computed(()=>({stroke:GAUGE_DEFAULTS[props.type].cssColour,fill:`none`,strokeDasharray:DASH_ARR_LENGTH,strokeDashoffset:DASH_ARR_LENGTH-props.value*DASH_ARR_LENGTH})),gaugeStyle=computed(()=>({background:`radial-gradient(22% 22% at 50% 53%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.76) 0%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0.18) 64.06%, rgba(${GAUGE_DEFAULTS[props.type].gradientColour}, 0) 100%)`}));return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass({"gauge-wrapper":!0,[__props.type]:!0})},[createBaseVNode(`div`,{class:normalizeClass({"pulse-container":!0,pulsing:__props.fuelling})},[createBaseVNode(`div`,{class:`pulser`,style:normalizeStyle(gaugeStyle.value)},null,4)],2),(openBlock(),createElementBlock(`svg`,_hoisted_1$17,[createBaseVNode(`defs`,null,[createBaseVNode(`filter`,_hoisted_2$11,[createBaseVNode(`feFlood`,{"flood-color":GAUGE_DEFAULTS[__props.type].cssColour,result:`flood1`},null,8,_hoisted_3$10),_cache[0]||=createStaticVNode(``,4)])]),_cache[1]||=createBaseVNode(`path`,{class:`gauge-back`,d:`M50,210 A110,110 0 1,1 244,210`,style:{fill:`none`}},null,-1),createBaseVNode(`path`,{class:`gauge-level blur`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4),createBaseVNode(`path`,{class:`gauge-level`,d:`M50,210 A110,110 0 1,1 244,210`,style:normalizeStyle(gaugeLevelStyle.value)},null,4)])),createVNode(unref(bngIcon_default),{class:`icon refill-icon`,type:GAUGE_DEFAULTS[__props.type].icon,color:`#fff`},null,8,[`type`]),createBaseVNode(`div`,_hoisted_4$7,[createBaseVNode(`span`,null,toDisplayString(__props.minLabel),1),createBaseVNode(`span`,_hoisted_5$6,toDisplayString(__props.label||`\xA0`),1),createBaseVNode(`span`,null,toDisplayString(__props.maxLabel),1)])],2))}},FuelGauge_default=__plugin_vue_export_helper_default(_sfc_main$21,[[`__scopeId`,`data-v-04de51fb`]]),_hoisted_1$16={class:`fuel-type`},_sfc_main$20={__name:`FuelTypeSettings`,props:{fuelOptions:{type:Array,required:!0}},emits:[`previousClick`,`nextClick`,`fuelTypeSelect`],setup(__props,{emit:__emit}){let emit$1=__emit;return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$16,[createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`previous-btn`,icon:unref(icons).arrowLargeLeft,onClick:_cache[0]||=$event=>emit$1(`previousClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_l`,deviceMask:`xinput`})]),_:1},8,[`accent`,`icon`]),createVNode(unref(bngPillFilters_default),{options:__props.fuelOptions},null,8,[`options`]),createVNode(unref(bngButton_default),{class:`arrow empty`,accent:unref(ACCENTS).text,"data-testid":`next-btn`,iconRight:unref(icons).arrowLargeRight,onClick:_cache[1]||=$event=>emit$1(`nextClick`)},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`tab_r`,deviceMask:`xinput`})]),_:1},8,[`accent`,`iconRight`])]))}},FuelTypeSettings_default=__plugin_vue_export_helper_default(_sfc_main$20,[[`__scopeId`,`data-v-bf968fb2`]]),nozzleModes={on:{color:`var(--bng-orange-b400)`,buttonEnabled:!0},off:{color:`var(--bng-black-o6)`,buttonEnabled:!0},disabled:{color:`var(--bng-black-o2)`,buttonEnabled:!1}},fuellingModes$1={fuel:{nozzleIconType:icons$1.general.fuel_nozzle},charge:{nozzleIconType:icons$1.general.recharge_connector}},_sfc_main$19={__name:`FuelNozzle`,props:{refuelType:{type:String,required:!0},nozzleMode:{type:String,default:`off`}},emits:[`triggerDown`,`triggerUp`],setup(__props,{emit:__emit}){let{showIfController}=storeToRefs(controls_default()),props=__props,emit$1=__emit,nozzleImageURL=computed(()=>`icons/${typeSettings.value.nozzleIconType}.svg`),typeSettings=computed(()=>fuellingModes$1[props.refuelType]),modeSettings=computed(()=>nozzleModes[props.nozzleMode]),nozzleClass=computed(()=>({nozzle:!0,[props.refuelType]:!0}));return(_ctx,_cache)=>(openBlock(),createBlock(unref(bngImageAsset_default),{mask:``,class:normalizeClass(nozzleClass.value),src:nozzleImageURL.value,"bg-color":modeSettings.value.color},{default:withCtx(()=>[createVNode(unref(bngButton_default),{"bng-no-nav":`true`,class:normalizeClass({empty:!0,gamepad:unref(showIfController)}),disabled:!modeSettings.value.buttonEnabled,onMousedown:_cache[0]||=$event=>emit$1(`triggerDown`),onMouseup:_cache[1]||=$event=>emit$1(`triggerUp`),accent:unref(ACCENTS).text},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{action:`fuelVehicle`,deviceMask:`xinput`,disabled:!modeSettings.value.buttonEnabled,accent:unref(ACCENTS).text},null,8,[`disabled`,`accent`]),unref(showIfController)?createCommentVNode(``,!0):(openBlock(),createBlock(unref(bngIcon_default),{key:0,type:unref(icons).plus,title:`Activate`},null,8,[`type`]))]),_:1},8,[`class`,`disabled`,`accent`])]),_:1},8,[`class`,`src`,`bg-color`]))}},FuelNozzle_default=__plugin_vue_export_helper_default(_sfc_main$19,[[`__scopeId`,`data-v-3a31f67d`]]),_hoisted_1$15={class:`cost`},_hoisted_2$10={class:`price`},_hoisted_3$9={class:`per-unit`},_hoisted_4$6={class:`value`},_hoisted_5$5={class:`unit`},_sfc_main$18={__name:`FuelInfo`,props:{totalCost:{type:Number,required:!0},pricePerUnit:{type:Number,required:!0},unitLabel:{type:String,required:!0},fuelDiscountData:{type:Object,required:!1}},setup(__props){let refuelStore=useRefuelStore(),displayPrice=computed(()=>Math.floor(refuelStore.convertToPricePerLocalUnit(props.pricePerUnit,refuelStore.currentEnergyType)*100)+.9),props=__props;return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createBaseVNode(`div`,_hoisted_1$15,[createVNode(unref(bngUnit_default),{money:__props.totalCost},null,8,[`money`]),__props.fuelDiscountData.hasFuelDiscount?(openBlock(),createBlock(insurancePerkIcon_default,{key:0,class:`perk-icon`,perkIconData:__props.fuelDiscountData.perkData},null,8,[`perkIconData`])):createCommentVNode(``,!0)]),createBaseVNode(`div`,_hoisted_2$10,[createBaseVNode(`span`,_hoisted_3$9,[createBaseVNode(`span`,_hoisted_4$6,toDisplayString(displayPrice.value),1),_cache[0]||=createBaseVNode(`span`,{class:`divider`},null,-1),createBaseVNode(`span`,_hoisted_5$5,toDisplayString(unref(refuelStore).getUnitLabel(unref(refuelStore).currentEnergyType)),1)])])],64))}},FuelInfo_default=__plugin_vue_export_helper_default(_sfc_main$18,[[`__scopeId`,`data-v-c4955aba`]]),_hoisted_1$14={class:`amount`},_hoisted_2$9={class:`slider-labels`},_hoisted_3$8={class:`amount-value`},_sfc_main$17={__name:`FuelAmountSettings`,props:{minSlider:{type:Number,default:23},maxSlider:{type:Number,default:80},unitLabel:String},setup(__props){return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$14,[createVNode(unref(bngButton_default),{class:`top-up`,accent:`text`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_u`,deviceMask:`xinput`}),_cache[0]||=createTextVNode(`Top-up`,-1)]),_:1}),createBaseVNode(`div`,_hoisted_2$9,[createBaseVNode(`span`,null,toDisplayString(`${__props.minSlider}${__props.unitLabel}`),1),createBaseVNode(`span`,null,toDisplayString(`${__props.maxSlider}${__props.unitLabel}`),1)]),createVNode(unref(bngSlider_default),{min:__props.minSlider,max:__props.maxSlider,onValueChanged:()=>{}},null,8,[`min`,`max`]),createBaseVNode(`div`,_hoisted_3$8,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_l`,deviceMask:`xinput`})]),_:1},8,[`accent`]),createVNode(unref(bngInput_default),{class:`value`,suffix:`L`,"initial-value":`1234567`}),createVNode(unref(bngButton_default),{accent:unref(ACCENTS).text,class:`empty`},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{class:`controller`,"ui-event":`focus_r`,deviceMask:`xinput`})]),_:1},8,[`accent`])])]))}},FuelAmountSettings_default=__plugin_vue_export_helper_default(_sfc_main$17,[[`__scopeId`,`data-v-9de32e0e`]]),_hoisted_1$13={class:`gauge`},_hoisted_2$8={key:0,class:`settings content`},_hoisted_3$7={class:`status-container`},fuellingModes={fuel:{title:`ui.career.refuelling.modes.fuel.title`,gaugeType:`refuel`,nozzleIconType:icons$1.general.fuel_nozzle,fuellingOngoingLabel:`ui.career.refuelling.modes.fuel.ongoing`,startLabel:`ui.career.refuelling.modes.fuel.start`,unitLabel:`L`},charge:{title:`ui.career.refuelling.modes.charge.title`,gaugeType:`recharge`,nozzleIconType:icons$1.general.recharge_connector,fuellingOngoingLabel:`ui.career.refuelling.modes.charge.ongoing`,startLabel:`ui.career.refuelling.modes.charge.start`,unitLabel:`kWh`}},_sfc_main$16={__name:`RefuelMain`,setup(__props){let{$game}=useLibStore(),refuelStore=useRefuelStore(),mainSettings=computed(()=>fuellingModes[refuelStore.currentFuelType]);onBeforeMount(()=>{refuelStore.requestFuelingData()}),onBeforeUnmount(()=>{refuelStore.cancelTransaction()}),onUnmounted(()=>{refuelStore.$dispose()});let store$1=useTasksStore();provide(`animationSettings`,{animate:!0,animateOnMount:!1,animateOnMountIntervalDelay:.2,animateOnEmptyIntervalDelay:.1,animateOnEmpty:!0,animateNextTask:!0,successCallback:playAudio});function playAudio(){$game.lua.Engine.Audio.playOnce(`AudioGui`,`event:>UI>Career>Checkbox`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[unref(refuelStore).currentFuelData?(openBlock(),createBlock(unref(layoutSingle_default),{key:0},{default:withCtx(()=>[createVNode(unref(bngCard_default),{class:`refuel-card`},{buttons:withCtx(()=>[unref(refuelStore).canPay?(openBlock(),createBlock(unref(bngButton_default),{key:0,onClick:_cache[2]||=$event=>unref(refuelStore).payPrice()},{default:withCtx(()=>[..._cache[5]||=[createTextVNode(`Pay`,-1)]]),_:1})):createCommentVNode(``,!0),unref(refuelStore).canStartFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:1,onClick:_cache[3]||=$event=>unref(refuelStore).startFuelling()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(mainSettings.value.startLabel)),1)]),_:1})):unref(refuelStore).canStopFuelling?(openBlock(),createBlock(unref(bngButton_default),{key:2,onClick:_cache[4]||=$event=>unref(refuelStore).stopFuelling()},{default:withCtx(()=>[..._cache[6]||=[createTextVNode(`Stop`,-1)]]),_:1})):createCommentVNode(``,!0)]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),{type:`ribbon`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(unref(refuelStore).gasStationName)),1)]),_:1}),createBaseVNode(`div`,_hoisted_1$13,[createVNode(FuelGauge_default,{class:`main-gauge`,fuelling:unref(refuelStore).isFuelling,type:mainSettings.value.gaugeType,value:unref(refuelStore).currentFuelLevel,label:unref(refuelStore).isFuelling?_ctx.$t(mainSettings.value.fuellingOngoingLabel):``,minLabel:unref(refuelStore).minEnergyLabel,maxLabel:unref(refuelStore).maxEnergyLabel},null,8,[`fuelling`,`type`,`value`,`label`,`minLabel`,`maxLabel`])]),createVNode(FuelNozzle_default,{"refuel-type":unref(refuelStore).currentFuelType,"nozzle-mode":unref(refuelStore).nozzleMode,onTriggerDown:_cache[0]||=$event=>unref(refuelStore).changeFlowRate(1),onTriggerUp:_cache[1]||=$event=>unref(refuelStore).changeFlowRate(0)},null,8,[`refuel-type`,`nozzle-mode`]),createVNode(FuelInfo_default,{"total-cost":unref(refuelStore).overallPrice,"price-per-unit":unref(refuelStore).currentFuelData.pricePerUnit,"unit-label":mainSettings.value.unitLabel,"fuel-discount-data":unref(refuelStore).fuelDiscountData},null,8,[`total-cost`,`price-per-unit`,`unit-label`,`fuel-discount-data`]),unref(refuelStore).showFuelTypeSettings||unref(refuelStore).showAmountSettings?(openBlock(),createElementBlock(`div`,_hoisted_2$8,[unref(refuelStore).showFuelTypeSettings?(openBlock(),createBlock(FuelTypeSettings_default,{key:0,"fuel-options":unref(refuelStore).fuelOptions},null,8,[`fuel-options`])):createCommentVNode(``,!0),unref(refuelStore).showAmountSettings?(openBlock(),createBlock(FuelAmountSettings_default,{key:1,"min-slider":unref(refuelStore).minSlider,"max-slider":unref(refuelStore).maxSlider,"unit-label":mainSettings.value.unitLabel},null,8,[`min-slider`,`max-slider`,`unit-label`])):createCommentVNode(``,!0)])):createCommentVNode(``,!0)]),_:1})]),_:1})):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_3$7,[createVNode(unref(careerStatus_default),{class:`profileStatus`}),createVNode(unref(TaskList_default),{class:`tasklist`,header:unref(store$1).header,tasks:unref(store$1).tasks},null,8,[`header`,`tasks`])])],64))}},RefuelMain_default=__plugin_vue_export_helper_default(_sfc_main$16,[[`__scopeId`,`data-v-d87fd4e5`]]),routes_default$15=[{path:`/refueling`,name:`refueling`,component:RefuelMain_default,meta:{uiApps:{shown:!1}}}],_hoisted_1$12=[`innerHTML`],_sfc_main$15={__name:`ReleaseInfo`,setup(__props){useUINavScope(`releaseInfo`);let settings$1=useSettings(),parseDescription=descKey=>parse$1($translate.instant(descKey)),descriptionHtml=computed(()=>parseDescription(`ui.releaseInfo.description`)),onFinish=async()=>{backToMenu()},backToMenu=()=>window.bngVue.gotoAngularState(`menu.mainmenu`);return onMounted(async()=>{await settings$1.waitForData()}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(WizardView_default),{title:`ui.releaseInfo.title`,preheadings:[`v.${unref(sysInfo_default).versionSimple}`],style:{"--wizard-height":`45rem`},"bng-ui-scope":`releaseInfo`,onWizardFinish:onFinish},{default:withCtx(()=>[createVNode(unref(WizardStep_default),{id:`releaseInfo`,title:`ui.releaseInfo.stepTitle`},{default:withCtx(()=>[createBaseVNode(`div`,{innerHTML:descriptionHtml.value},null,8,_hoisted_1$12)]),_:1})]),_:1},8,[`preheadings`])),[[unref(BngBlur_default)],[unref(BngOnUiNav_default),backToMenu,`menu,back`]])}},ReleaseInfo_default=_sfc_main$15,routes_default$16=[{name:`menu.release-info`,path:`/release-info`,component:ReleaseInfo_default,meta:{infoBar:{visible:!0,showSysInfo:!0},uiApps:{shown:!1}}}],_hoisted_1$11={class:`veh-debug`},_hoisted_2$7={class:`buttons`},_hoisted_3$6={class:`buttons`},_hoisted_4$5={class:`bng-short-select-item`},_hoisted_5$4={class:`label-width`},_hoisted_6$3={key:0},_hoisted_7$3={class:`parts-switch-label`},_hoisted_8$2={class:`control-row`},_hoisted_9$1={class:`control-label`},_hoisted_10={class:`control-row`},_hoisted_11={class:`control-label`},_hoisted_12={key:0},_hoisted_13={class:`control-row`},_hoisted_14={class:`control-label indented`},_hoisted_15={class:`control-group`},_hoisted_16={class:`control-row`},_hoisted_17={class:`control-label indented`},_hoisted_18={class:`control-group`},_hoisted_19={class:`control-row`},_hoisted_20={class:`control-label indented`},_hoisted_21={class:`control-row`},_hoisted_22={class:`control-label indented`},_hoisted_23={class:`control-row`},_hoisted_24={class:`control-label indented`},_hoisted_25={class:`control-group`},_hoisted_26={class:`control-row`},_hoisted_27={class:`control-label indented`},_hoisted_28={class:`control-group`},_hoisted_29={class:`control-row`},_hoisted_30={class:`control-label indented`},_hoisted_31={class:`control-group`},_hoisted_32={class:`control-row`},_hoisted_33={class:`control-label`},_hoisted_34={key:2},_hoisted_35={class:`control-row`},_hoisted_36={class:`control-label indented`},_hoisted_37={class:`control-group`},_hoisted_38={class:`control-row`},_hoisted_39={class:`control-label indented`},_hoisted_40={class:`control-group`},_hoisted_41={class:`control-row`},_hoisted_42={class:`control-label indented`},_hoisted_43={class:`control-row`},_hoisted_44={class:`control-label indented`},_hoisted_45={key:3,class:`control-row`},_hoisted_46={class:`control-label indented`},_hoisted_47={class:`control-group`},_hoisted_48={key:4,class:`control-row`},_hoisted_49={class:`control-label indented`},_hoisted_50={class:`control-row`},_hoisted_51={class:`control-label`},_hoisted_52={key:5},_hoisted_53={class:`control-row`},_hoisted_54={class:`control-label indented`},_hoisted_55={class:`control-group`},_hoisted_56={class:`control-row`},_hoisted_57={class:`control-label indented`},_hoisted_58={class:`control-group`},_hoisted_59={class:`control-row`},_hoisted_60={class:`control-label indented`},_hoisted_61={class:`control-row`},_hoisted_62={class:`control-label indented`},_hoisted_63={class:`control-row`},_hoisted_64={class:`control-label indented`},_hoisted_65={class:`control-group`},_hoisted_66={class:`control-row`},_hoisted_67={class:`control-label indented`},_hoisted_68={class:`control-group`},_hoisted_69={class:`control-row`},_hoisted_70={class:`control-label indented`},_hoisted_71={class:`control-group`},_hoisted_72={class:`control-row`},_hoisted_73={class:`control-label`},_hoisted_74={class:`control-row`},_hoisted_75={class:`control-label indented`},_hoisted_76={class:`control-group`},_hoisted_77={class:`control-row`},_hoisted_78={class:`control-label indented`},_hoisted_79={class:`control-group`},_hoisted_80={class:`control-row`},_hoisted_81={class:`control-label indented`},_hoisted_82={class:`control-row`},_hoisted_83={class:`control-label indented`},_hoisted_84={class:`control-row`},_hoisted_85={class:`control-label indented`},_hoisted_86={class:`control-group`},_hoisted_87={class:`control-row`},_hoisted_88={class:`control-label indented`},_hoisted_89={class:`control-group`},_hoisted_90={class:`control-row`},_hoisted_91={class:`control-label`},_hoisted_92={class:`control-row`},_hoisted_93={class:`control-label indented`},_hoisted_94={class:`control-group`},_hoisted_95={class:`control-row`},_hoisted_96={class:`control-label indented`},_hoisted_97={class:`control-group`},_hoisted_98={class:`control-row`},_hoisted_99={class:`control-label`},_hoisted_100={class:`control-row`},_hoisted_101={class:`control-label`},_hoisted_102={key:10,class:`control-row`},_hoisted_103={class:`control-label indented`},_hoisted_104={class:`control-group`},_hoisted_105={class:`control-row`},_hoisted_106={class:`control-label`},_hoisted_107={key:11,class:`control-row`},_hoisted_108={class:`control-label indented`},_hoisted_109={class:`control-group`},_hoisted_110={class:`control-row`},_hoisted_111={class:`control-label`},_hoisted_112={class:`control-row`},_hoisted_113={class:`control-label`},_hoisted_114={key:12,class:`control-row`},_hoisted_115={class:`control-label indented`},_hoisted_116={class:`control-group`},_hoisted_117={key:13,class:`control-row`},_hoisted_118={class:`control-label`},_hoisted_119={class:`mesh-visibility`},_hoisted_120={class:`control-row`},_hoisted_121={class:`control-label`},_hoisted_122={class:`mesh-buttons`},_hoisted_123={class:`buttons`},_sfc_main$14={__name:`Debug`,setup(__props){useUINavBlocker().blockOnly([`context`]);let{lua,api:api$1}=useBridge(),events$3=useEvents(),state=reactive({}),stateNoReset=reactive({vehicle:{parts:[],partNameToIdx:{},partsSelected:{},partsSelectedIdxs:[]}}),partsState=reactive({partsSorted:[],partsHighlightedIdxs:[]}),partsFiltered=computed(()=>{let res=partsState.partsSorted;return Array.isArray(res)?(partsSelectedSearchTerm.value&&(res=res.filter(part=>part.includes(partsSelectedSearchTerm.value))),res.map(p$1=>{let segments=p$1.split(`/`);return{label:segments[segments.length-1],reversePath:segments.slice(0,-1).reverse().join(`\\`),value:p$1,selected:Array.isArray(partsState.partsHighlightedIdxs)&&partsState.partsHighlightedIdxs.includes(partsState.partsSorted.indexOf(p$1)+1)}})):[]}),shipping=computed(()=>window.beamng&&window.beamng.shipping),geState=reactive({physicsEnabled:!0,debugSpawnEnabled:!1}),partsSelectedSearchTerm=ref(``),disableVehicleButtons=ref(!1),controls$1={vehicle:{buttonGroup_1:[{label:`ui.debug.vehicle.loadDefault`,action:()=>lua.core_vehicles.loadDefault()},{label:`ui.debug.vehicle.spawnNew`,action:()=>lua.core_vehicles.spawnDefault()},{label:`ui.debug.vehicle.removeCurrent`,action:()=>lua.core_vehicles.removeCurrent()},{label:`ui.debug.vehicle.cloneCurrent`,action:()=>lua.core_vehicles.cloneCurrent()},{label:`ui.debug.vehicle.removeAll`,action:()=>lua.core_vehicles.removeAll()},{label:`ui.debug.vehicle.removeOthers`,action:()=>lua.core_vehicles.removeAllExceptCurrent()},{label:`ui.debug.vehicle.resetAll`,action:()=>lua.resetGameplay(-1)},{label:`ui.debug.vehicle.reloadAll`,action:()=>lua.core_vehicle_manager.reloadAllVehicles()}],toggleGroup_1:[{label:`ui.debug.activatePhysics`,key:`physicsEnabled`,onChange:()=>lua.simTimeAuthority.togglePause()},{label:`ui.debug.debugSpawnEnabled`,key:`debugSpawnEnabled`,onChange:()=>lua.core_vehicle_manager.toggleDebug()}]},jbeamvis:{buttonGroup_1:[{label:`ui.debug.vehicle.toggleVis`,action:()=>api$1.activeObjectLua(`bdebug.toggleEnabled()`)},{label:`ui.debug.vehicle.clearSettings`,action:()=>api$1.activeObjectLua(`bdebug.resetModes()`)}],meshVisButtonGroup:[{label:`0%`,action:()=>lua.core_vehicles.setMeshVisibility(0)},{label:`25%`,action:()=>lua.core_vehicles.setMeshVisibility(.25)},{label:`50%`,action:()=>lua.core_vehicles.setMeshVisibility(.5)},{label:`75%`,action:()=>lua.core_vehicles.setMeshVisibility(.75)},{label:`100%`,action:()=>lua.core_vehicles.setMeshVisibility(1)}]},terrain:{buttonGroup_1:[{label:`ui.debug.terrain.groundmodel`,action:()=>api$1.engineLua(`extensions.load("util_groundModelDebug") util_groundModelDebug.openWindow()`)}]}};onMounted(async()=>{geState.physicsEnabled=!await lua.simTimeAuthority.getPause(),geState.debugSpawnEnabled=await lua.core_vehicle_manager.getDebug(),api$1.activeObjectLua(`bdebug.requestState()`),lua.core_gamestate.requestGameState(),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()});let applyState=(notSendBack=!1)=>{notSendBack=!!notSendBack,api$1.activeObjectLua(`bdebug.setState(${api$1.serializeToLua(state)}, ${api$1.serializeToLua(stateNoReset)}, ${notSendBack})`)},partsSelectedChanged=(part,value)=>{Array.isArray(partsState.partsHighlightedIdxs)||(partsState.partsHighlightedIdxs=[]);let idx=partsState.partsSorted.indexOf(part)+1,idxInArray=partsState.partsHighlightedIdxs.indexOf(idx);value&&idxInArray===-1?partsState.partsHighlightedIdxs.push(idx):!value&&idxInArray!==-1&&partsState.partsHighlightedIdxs.splice(idxInArray,1),applyState(!0),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},partsSelectedChecked=()=>partsState.partsHighlightedIdxs.length===partsState.partsSorted.length,partsSelectedIndeterminate=()=>partsState.partsHighlightedIdxs.length!==0&&partsState.partsHighlightedIdxs.length!==partsState.partsSorted.length,partsSelectedClicked=()=>{partsState.partsHighlightedIdxs.length===partsState.partsSorted.length?partsState.partsHighlightedIdxs=[]:partsState.partsHighlightedIdxs=Array.from({length:partsState.partsSorted.length},(_,i)=>i+1),applyState(),lua.extensions.core_vehicle_partmgmt.partsSelectorChanged(partsState)},selectAllParts=computed({get:()=>partsSelectedChecked(),set:()=>partsSelectedClicked()}),beamTextModeItems=computed(()=>state.vehicle?.beamTextModes?state.vehicle.beamTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamTextMode.${mode.name}`):``})):[]),beamVisModeItems=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.beamVisMode.${mode.name}`):``})):[]),currentBeamVisMode=computed(()=>state.vehicle?.beamVisModes?state.vehicle.beamVisModes[state.vehicle.beamVisMode-1]:null),nodeTextModeItems=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeTextMode.${mode.name}`):``})):[]),currentNodeTextMode=computed(()=>state.vehicle?.nodeTextModes?state.vehicle.nodeTextModes[state.vehicle.nodeTextMode-1]:null),nodeVisModeItems=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.nodeVisMode.${mode.name}`):``})):[]),currentNodeVisMode=computed(()=>state.vehicle?.nodeVisModes?state.vehicle.nodeVisModes[state.vehicle.nodeVisMode-1]:null),torsionBarVisModeItems=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.torsionBarVisMode.${mode.name}`):``})):[]),currentTorsionBarVisMode=computed(()=>state.vehicle?.torsionBarVisModes?state.vehicle.torsionBarVisModes[state.vehicle.torsionBarVisMode-1]:null),railsSlideNodesModeItems=computed(()=>state.vehicle?.railsSlideNodesVisModes?state.vehicle.railsSlideNodesVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.railsSlideNodesVisMode.${mode.name}`):``})):[]),cogModeItems=computed(()=>state.vehicle?.cogModes?state.vehicle.cogModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.cogMode.${mode.name}`):``})):[]),collisionTriangleModeItems=computed(()=>state.vehicle?.collisionTriangleVisModes?state.vehicle.collisionTriangleVisModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.collisionTriangleVisMode.${mode.name}`):``})):[]),aeroModeItems=computed(()=>state.vehicle?.aeroModes?state.vehicle.aeroModes.map((mode,index)=>({value:index+1,label:mode.name?$translate.instant(`vehicle.bdebug.aeroMode.${mode.name}`):``})):[]);return events$3.on(`BdebugUpdate`,(debugState,newStateNoReset)=>{Object.assign(state,debugState),Object.assign(stateNoReset,newStateNoReset)}),events$3.on(`PartsSelectorUpdate`,state$1=>{Object.assign(partsState,state$1)}),events$3.on(`VehicleFocusChanged`,()=>{api$1.activeObjectLua(`bdebug.requestState()`),lua.extensions.core_vehicle_partmgmt.sendPartsSelectorStateToUI()}),events$3.on(`physicsStateChanged`,state$1=>geState.physicsEnabled=!!state$1),events$3.on(`debugSpawnChanged`,state$1=>geState.debugSpawnEnabled=!!state$1),events$3.on(`GameStateUpdate`,gamestate=>disableVehicleButtons.value=gamestate.state.toLowerCase().indexOf(`scenario`)>-1),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$11,[createBaseVNode(`h3`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle`)),1),(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.toggleGroup_1,toggle=>(openBlock(),createElementBlock(`div`,{key:toggle.key},[createVNode(unref(bngSwitch_default),{modelValue:geState[toggle.key],"onUpdate:modelValue":$event=>geState[toggle.key]=$event,onValueChanged:$event=>toggle.onChange()},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(toggle.label)),1)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`onValueChanged`])]))),128)),createBaseVNode(`div`,_hoisted_2$7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.vehicle.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))]),_cache[74]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.vehicle.jbeamVis`)),1),createBaseVNode(`div`,_hoisted_3$6,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))]),createBaseVNode(`div`,_hoisted_4$5,[createBaseVNode(`span`,_hoisted_5$4,toDisplayString(_ctx.$tt(`ui.debug.vehicle.partsSelected`)),1),createVNode(unref(bngDropdownContainer_default),{class:`bng-select-fullwidth dropdown-width`},{default:withCtx(()=>[createVNode(unref(bngList_default),{layout:unref(LIST_LAYOUTS).LIST,"target-width":31},{default:withCtx(()=>[createVNode(unref(bngInput_default),{modelValue:partsSelectedSearchTerm.value,"onUpdate:modelValue":_cache[0]||=$event=>partsSelectedSearchTerm.value=$event,modelModifiers:{trim:!0},"floating-label":_ctx.$t(`ui.debug.vehicle.partsSelectedSearchText`)},null,8,[`modelValue`,`floating-label`]),partsFiltered.value&&partsFiltered.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_6$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(partsFiltered.value,part=>withDirectives((openBlock(),createBlock(unref(bngSwitch_default),{"model-value":part.selected,key:part.value,"label-alignment":unref(LABEL_ALIGNMENTS).START,inline:!1,class:`parts-switch`,onChange:value=>partsSelectedChanged(part.value,value)},{default:withCtx(()=>[createBaseVNode(`span`,_hoisted_7$3,[createBaseVNode(`strong`,null,toDisplayString(part.label),1),createTextVNode(` `+toDisplayString(part.reversePath?`\\`+part.reversePath:``),1)])]),_:2},1032,[`model-value`,`label-alignment`,`onChange`])),[[unref(BngTooltip_default),part.label+` \\ `+part.reversePath,`right`]])),128))])):createCommentVNode(``,!0)]),_:1},8,[`layout`])]),_:1}),createVNode(unref(bngSwitch_default),{modelValue:selectAllParts.value,"onUpdate:modelValue":_cache[1]||=$event=>selectAllParts.value=$event,class:normalizeClass({"switch-indeterminate":partsSelectedIndeterminate(),"switch-width":!0}),onOnClicked:partsSelectedClicked},null,8,[`modelValue`,`class`])]),state.vehicle?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode(`div`,_hoisted_8$2,[createBaseVNode(`span`,_hoisted_9$1,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamTextMode,"onUpdate:modelValue":_cache[2]||=$event=>state.vehicle.beamTextMode=$event,items:beamTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_10,[createBaseVNode(`span`,_hoisted_11,toDisplayString(_ctx.$tt(`ui.debug.vehicle.beamVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.beamVisMode,"onUpdate:modelValue":_cache[3]||=$event=>state.vehicle.beamVisMode=$event,items:beamVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentBeamVisMode.value&¤tBeamVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_12,[createBaseVNode(`div`,_hoisted_13,[createBaseVNode(`span`,_hoisted_14,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_15,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[4]||=$event=>currentBeamVisMode.value.rangeMin=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMin,"onUpdate:modelValue":_cache[5]||=$event=>currentBeamVisMode.value.rangeMin=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[6]||=$event=>currentBeamVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_16,[createBaseVNode(`span`,_hoisted_17,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_18,[createVNode(unref(bngSlider_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[7]||=$event=>currentBeamVisMode.value.rangeMax=$event,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentBeamVisMode.value.rangeMax,"onUpdate:modelValue":_cache[8]||=$event=>currentBeamVisMode.value.rangeMax=$event,type:`number`,min:currentBeamVisMode.value.rangeMinCap,max:currentBeamVisMode.value.rangeMaxCap,step:(currentBeamVisMode.value.rangeMaxCap-currentBeamVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[9]||=$event=>currentBeamVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_19,[createBaseVNode(`span`,_hoisted_20,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[10]||=$event=>currentBeamVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_21,[createBaseVNode(`span`,_hoisted_22,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentBeamVisMode.value.showInfinity,"onUpdate:modelValue":_cache[11]||=$event=>currentBeamVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.beamVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_23,[createBaseVNode(`span`,_hoisted_24,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_25,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.beamVisShowHighlighted,"onUpdate:modelValue":_cache[12]||=$event=>state.vehicle.beamVisShowHighlighted=$event,disabled:state.vehicle.beamVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_26,[createBaseVNode(`span`,_hoisted_27,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_28,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[13]||=$event=>state.vehicle.beamVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisWidthScale,"onUpdate:modelValue":_cache[14]||=$event=>state.vehicle.beamVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_29,[createBaseVNode(`span`,_hoisted_30,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_31,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[15]||=$event=>state.vehicle.beamVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.beamVisAlpha,"onUpdate:modelValue":_cache[16]||=$event=>state.vehicle.beamVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_32,[createBaseVNode(`span`,_hoisted_33,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeText`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeTextMode,"onUpdate:modelValue":_cache[17]||=$event=>state.vehicle.nodeTextMode=$event,items:nodeTextModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeTextMode.value&¤tNodeTextMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_34,[createBaseVNode(`div`,_hoisted_35,[createBaseVNode(`span`,_hoisted_36,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_37,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[18]||=$event=>currentNodeTextMode.value.rangeMin=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMin,"onUpdate:modelValue":_cache[19]||=$event=>currentNodeTextMode.value.rangeMin=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[20]||=$event=>currentNodeTextMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_38,[createBaseVNode(`span`,_hoisted_39,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_40,[createVNode(unref(bngSlider_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[21]||=$event=>currentNodeTextMode.value.rangeMax=$event,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeTextMode.value.rangeMax,"onUpdate:modelValue":_cache[22]||=$event=>currentNodeTextMode.value.rangeMax=$event,type:`number`,min:currentNodeTextMode.value.rangeMinCap,max:currentNodeTextMode.value.rangeMaxCap,step:(currentNodeTextMode.value.rangeMaxCap-currentNodeTextMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[23]||=$event=>currentNodeTextMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_41,[createBaseVNode(`span`,_hoisted_42,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[24]||=$event=>currentNodeTextMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_43,[createBaseVNode(`span`,_hoisted_44,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeTextMode.value.showInfinity,"onUpdate:modelValue":_cache[25]||=$event=>currentNodeTextMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_45,[createBaseVNode(`span`,_hoisted_46,toDisplayString(_ctx.$tt(`ui.debug.vehicle.maxDist`)),1),createBaseVNode(`div`,_hoisted_47,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[26]||=$event=>state.vehicle.nodeTextMaxDist=$event,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeTextMaxDist,"onUpdate:modelValue":_cache[27]||=$event=>state.vehicle.nodeTextMaxDist=$event,type:`number`,min:.1,max:state.vehicle.nodeTextMaxDistCap,step:.1,onValueChanged:applyState},null,8,[`modelValue`,`max`])])])),state.vehicle.nodeTextMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_48,[createBaseVNode(`span`,_hoisted_49,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showWheels`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeTextShowWheels,"onUpdate:modelValue":_cache[28]||=$event=>state.vehicle.nodeTextShowWheels=$event,onValueChanged:applyState},null,8,[`modelValue`])])),createBaseVNode(`div`,_hoisted_50,[createBaseVNode(`span`,_hoisted_51,toDisplayString(_ctx.$tt(`ui.debug.vehicle.nodeVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.nodeVisMode,"onUpdate:modelValue":_cache[29]||=$event=>state.vehicle.nodeVisMode=$event,items:nodeVisModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),currentNodeVisMode.value&¤tNodeVisMode.value.usesRange?(openBlock(),createElementBlock(`div`,_hoisted_52,[createBaseVNode(`div`,_hoisted_53,[createBaseVNode(`span`,_hoisted_54,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_55,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[30]||=$event=>currentNodeVisMode.value.rangeMin=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMin,"onUpdate:modelValue":_cache[31]||=$event=>currentNodeVisMode.value.rangeMin=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[32]||=$event=>currentNodeVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_56,[createBaseVNode(`span`,_hoisted_57,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_58,[createVNode(unref(bngSlider_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[33]||=$event=>currentNodeVisMode.value.rangeMax=$event,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentNodeVisMode.value.rangeMax,"onUpdate:modelValue":_cache[34]||=$event=>currentNodeVisMode.value.rangeMax=$event,type:`number`,min:currentNodeVisMode.value.rangeMinCap,max:currentNodeVisMode.value.rangeMaxCap,step:(currentNodeVisMode.value.rangeMaxCap-currentNodeVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[35]||=$event=>currentNodeVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_59,[createBaseVNode(`span`,_hoisted_60,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[36]||=$event=>currentNodeVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_61,[createBaseVNode(`span`,_hoisted_62,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentNodeVisMode.value.showInfinity,"onUpdate:modelValue":_cache[37]||=$event=>currentNodeVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),state.vehicle.nodeVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:6},[createBaseVNode(`div`,_hoisted_63,[createBaseVNode(`span`,_hoisted_64,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showHighlighted`)),1),createBaseVNode(`div`,_hoisted_65,[createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.nodeVisShowHighlighted,"onUpdate:modelValue":_cache[38]||=$event=>state.vehicle.nodeVisShowHighlighted=$event,disabled:state.vehicle.nodeVisMode===3,onValueChanged:applyState},null,8,[`modelValue`,`disabled`])])]),createBaseVNode(`div`,_hoisted_66,[createBaseVNode(`span`,_hoisted_67,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_68,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[39]||=$event=>state.vehicle.nodeVisWidthScale=$event,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisWidthScale,"onUpdate:modelValue":_cache[40]||=$event=>state.vehicle.nodeVisWidthScale=$event,type:`number`,min:.3,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_69,[createBaseVNode(`span`,_hoisted_70,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_71,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[41]||=$event=>state.vehicle.nodeVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.nodeVisAlpha,"onUpdate:modelValue":_cache[42]||=$event=>state.vehicle.nodeVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_72,[createBaseVNode(`span`,_hoisted_73,toDisplayString(_ctx.$tt(`ui.debug.vehicle.torsionBarVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.torsionBarVisMode,"onUpdate:modelValue":_cache[43]||=$event=>state.vehicle.torsionBarVisMode=$event,items:torsionBarVisModeItems.value,onValueChanged:_cache[44]||=value=>{console.log(`change triggered`,value),applyState()},class:`control-input`},null,8,[`modelValue`,`items`])]),currentTorsionBarVisMode.value?.usesRange?(openBlock(),createElementBlock(Fragment,{key:7},[createBaseVNode(`div`,_hoisted_74,[createBaseVNode(`span`,_hoisted_75,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMin`)),1),createBaseVNode(`div`,_hoisted_76,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[45]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMin,"onUpdate:modelValue":_cache[46]||=$event=>currentTorsionBarVisMode.value.rangeMin=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMinEnabled,"onUpdate:modelValue":_cache[47]||=$event=>currentTorsionBarVisMode.value.rangeMinEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_77,[createBaseVNode(`span`,_hoisted_78,toDisplayString(_ctx.$tt(`ui.debug.vehicle.visRangeMax`)),1),createBaseVNode(`div`,_hoisted_79,[createVNode(unref(bngSlider_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[48]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/100,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngInput_default),{modelValue:currentTorsionBarVisMode.value.rangeMax,"onUpdate:modelValue":_cache[49]||=$event=>currentTorsionBarVisMode.value.rangeMax=$event,type:`number`,min:currentTorsionBarVisMode.value.rangeMinCap,max:currentTorsionBarVisMode.value.rangeMaxCap,step:(currentTorsionBarVisMode.value.rangeMaxCap-currentTorsionBarVisMode.value.rangeMinCap)/1e3,onValueChanged:applyState},null,8,[`modelValue`,`min`,`max`,`step`]),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.rangeMaxEnabled,"onUpdate:modelValue":_cache[50]||=$event=>currentTorsionBarVisMode.value.rangeMaxEnabled=$event,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_80,[createBaseVNode(`span`,_hoisted_81,toDisplayString(_ctx.$tt(`ui.debug.vehicle.useInclusiveRange`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.usesInclusiveRange,"onUpdate:modelValue":_cache[51]||=$event=>currentTorsionBarVisMode.value.usesInclusiveRange=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_82,[createBaseVNode(`span`,_hoisted_83,toDisplayString(_ctx.$tt(`ui.debug.vehicle.showInf`)),1),createVNode(unref(bngSwitch_default),{modelValue:currentTorsionBarVisMode.value.showInfinity,"onUpdate:modelValue":_cache[52]||=$event=>currentTorsionBarVisMode.value.showInfinity=$event,onValueChanged:applyState},null,8,[`modelValue`])])],64)):createCommentVNode(``,!0),state.vehicle.torsionBarVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:8},[createBaseVNode(`div`,_hoisted_84,[createBaseVNode(`span`,_hoisted_85,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_86,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[53]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisWidthScale,"onUpdate:modelValue":_cache[54]||=$event=>state.vehicle.torsionBarVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_87,[createBaseVNode(`span`,_hoisted_88,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_89,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[55]||=$event=>state.vehicle.torsionBarVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.torsionBarVisAlpha,"onUpdate:modelValue":_cache[56]||=$event=>state.vehicle.torsionBarVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_90,[createBaseVNode(`span`,_hoisted_91,toDisplayString(_ctx.$tt(`ui.debug.vehicle.railsSlideNodesVis`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.railsSlideNodesVisMode,"onUpdate:modelValue":_cache[57]||=$event=>state.vehicle.railsSlideNodesVisMode=$event,items:railsSlideNodesModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.railsSlideNodesVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(Fragment,{key:9},[createBaseVNode(`div`,_hoisted_92,[createBaseVNode(`span`,_hoisted_93,toDisplayString(_ctx.$tt(`ui.debug.vehicle.width`)),1),createBaseVNode(`div`,_hoisted_94,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[58]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisWidthScale,"onUpdate:modelValue":_cache[59]||=$event=>state.vehicle.railsSlideNodesVisWidthScale=$event,type:`number`,min:.1,max:5,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_95,[createBaseVNode(`span`,_hoisted_96,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_97,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[60]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.railsSlideNodesVisAlpha,"onUpdate:modelValue":_cache[61]||=$event=>state.vehicle.railsSlideNodesVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])],64)),createBaseVNode(`div`,_hoisted_98,[createBaseVNode(`span`,_hoisted_99,toDisplayString(_ctx.$tt(`ui.debug.vehicle.centerOfGravity`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.cogMode,"onUpdate:modelValue":_cache[62]||=$event=>state.vehicle.cogMode=$event,items:cogModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),createBaseVNode(`div`,_hoisted_100,[createBaseVNode(`span`,_hoisted_101,toDisplayString(_ctx.$tt(`ui.debug.vehicle.collisionTriangle`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.collisionTriangleVisMode,"onUpdate:modelValue":_cache[63]||=$event=>state.vehicle.collisionTriangleVisMode=$event,items:collisionTriangleModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.collisionTriangleVisMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_102,[createBaseVNode(`span`,_hoisted_103,toDisplayString(_ctx.$tt(`ui.debug.vehicle.transparency`)),1),createBaseVNode(`div`,_hoisted_104,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[64]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.collisionTriangleVisAlpha,"onUpdate:modelValue":_cache[65]||=$event=>state.vehicle.collisionTriangleVisAlpha=$event,type:`number`,min:0,max:1,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_105,[createBaseVNode(`span`,_hoisted_106,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamics`)),1),createVNode(unref(bngDropdown_default),{modelValue:state.vehicle.aeroMode,"onUpdate:modelValue":_cache[66]||=$event=>state.vehicle.aeroMode=$event,items:aeroModeItems.value,onValueChanged:applyState,class:`control-input`},null,8,[`modelValue`,`items`])]),state.vehicle.aeroMode===1?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_107,[createBaseVNode(`span`,_hoisted_108,toDisplayString(_ctx.$tt(`ui.debug.vehicle.aerodynamicsScale`)),1),createBaseVNode(`div`,_hoisted_109,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[67]||=$event=>state.vehicle.aerodynamicsScale=$event,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.aerodynamicsScale,"onUpdate:modelValue":_cache[68]||=$event=>state.vehicle.aerodynamicsScale=$event,type:`number`,min:0,max:.2,step:.01,onValueChanged:applyState},null,8,[`modelValue`])])])),createBaseVNode(`div`,_hoisted_110,[createBaseVNode(`span`,_hoisted_111,toDisplayString(_ctx.$tt(`ui.debug.vehicle.tireContactPoint`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.tireContactPoint,"onUpdate:modelValue":_cache[69]||=$event=>state.vehicle.tireContactPoint=$event,onValueChanged:applyState},null,8,[`modelValue`])]),createBaseVNode(`div`,_hoisted_112,[createBaseVNode(`span`,_hoisted_113,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometry`)),1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.steeringGeometry,"onUpdate:modelValue":_cache[70]||=$event=>state.vehicle.steeringGeometry=$event,onValueChanged:applyState},null,8,[`modelValue`])]),state.vehicle.steeringGeometry?(openBlock(),createElementBlock(`div`,_hoisted_114,[createBaseVNode(`span`,_hoisted_115,toDisplayString(_ctx.$tt(`ui.debug.vehicle.steeringGeometryLineLength`)),1),createBaseVNode(`div`,_hoisted_116,[createVNode(unref(bngSlider_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[71]||=$event=>state.vehicle.steeringGeometryLineLength=$event,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`]),createVNode(unref(bngInput_default),{modelValue:state.vehicle.steeringGeometryLineLength,"onUpdate:modelValue":_cache[72]||=$event=>state.vehicle.steeringGeometryLineLength=$event,type:`number`,min:0,max:50,step:.1,onValueChanged:applyState},null,8,[`modelValue`])])])):createCommentVNode(``,!0),shipping.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,_hoisted_117,[createBaseVNode(`span`,_hoisted_118,toDisplayString(_ctx.$tt(`ui.debug.vehicle.wheelThermals`))+` 🐞`,1),createVNode(unref(bngSwitch_default),{modelValue:state.vehicle.wheelThermals,"onUpdate:modelValue":_cache[73]||=$event=>state.vehicle.wheelThermals=$event,onValueChanged:applyState},null,8,[`modelValue`])]))],64)):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_119,[createBaseVNode(`div`,_hoisted_120,[createBaseVNode(`span`,_hoisted_121,toDisplayString(_ctx.$tt(`ui.debug.vehicle.meshVisibility`)),1),createBaseVNode(`div`,_hoisted_122,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.jbeamvis.meshVisButtonGroup,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),disabled:disableVehicleButtons.value,accent:unref(ACCENTS).outlined,class:`mesh-button`},{default:withCtx(()=>[createTextVNode(toDisplayString(btn.label),1)]),_:2},1032,[`onClick`,`disabled`,`accent`]))),128))])])]),_cache[75]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`h4`,null,toDisplayString(_ctx.$tt(`ui.debug.terrain`)),1),createBaseVNode(`div`,_hoisted_123,[(openBlock(!0),createElementBlock(Fragment,null,renderList(controls$1.terrain.buttonGroup_1,btn=>(openBlock(),createBlock(unref(bngButton_default),{key:btn.label,onClick:$event=>btn.action(),accent:unref(ACCENTS).secondary},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$tt(btn.label)),1)]),_:2},1032,[`onClick`,`accent`]))),128))])]))}},Debug_default=__plugin_vue_export_helper_default(_sfc_main$14,[[`__scopeId`,`data-v-8c471ede`]]),_sfc_main$13={__name:`VehicleConfig`,props:{tab:{type:String,default:`parts`,validator:val=>!val||[`parts`,`tuning`,`color`,`save`,`debug`].includes(val)}},setup(__props){let exit=event=>{event.detail.force||window.bngVue.gotoAngularState(`menu.mainmenu`)};function syncWithStates(tab){window.bngVue&&(tab=[`parts`,`tuning`,`color`,`save`,`debug`][tab.index]||`parts`,window.bngVue.gotoAngularState(`menu.vehicleconfig.${tab}`))}return(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`vehcfg`,onDeactivate:exit},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(tabs_default),{class:`bng-tabs`,onChange:syncWithStates},{default:withCtx(()=>[withDirectives(createVNode(unref(tabList_default),null,null,512),[[unref(BngBlur_default)]]),withDirectives(createVNode(Parts_default,{"tab-selected":__props.tab===`parts`,"tab-heading":_ctx.$t(`ui.vehicleconfig.parts`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Tuning_default,{"tab-selected":__props.tab===`tuning`,"tab-heading":_ctx.$t(`ui.vehicleconfig.tuning`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Paint_default,{"tab-selected":__props.tab===`color`,"tab-heading":_ctx.$t(`ui.vehicleconfig.color`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Save_default,{"tab-selected":__props.tab===`save`,"tab-heading":_ctx.$t(`ui.vehicleconfig.save`)+` & `+_ctx.$t(`ui.vehicleconfig.load`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]]),withDirectives(createVNode(Debug_default,{"tab-selected":__props.tab===`debug`,"tab-heading":_ctx.$tt(`ui.debug.vehicle`)},null,8,[`tab-selected`,`tab-heading`]),[[unref(BngBlur_default)]])]),_:1})),[[unref(BngFrustumMover_default),!0,void 0,{left:!0}]])]),_:1})),[[unref(BngScopedNav_default),{activateOnMount:!0,bubbleWhitelistEvents:[`tab_l`,`tab_r`,`menu`]}]])}},VehicleConfig_default=__plugin_vue_export_helper_default(_sfc_main$13,[[`__scopeId`,`data-v-e5f4e51f`]]),_hoisted_1$10={class:`adjustment-container`},_hoisted_2$6={class:`y-controls`},_hoisted_3$5={class:`slider-container`},_hoisted_4$4={class:`value-input`},_hoisted_5$3={class:`x-controls`},_hoisted_6$2={class:`slider-container`},_hoisted_7$2={class:`value-input`},_hoisted_8$1={class:`reset-cont`},MIRROR_RANGE_DEFAULTS={min:-20,max:20,step:.01},_sfc_main$12={__name:`MirrorAdjust`,props:{mirror:Object},setup(__props){let props=__props,uiScopeName=`vehicle-config-mirrors`,uiNavScope$1=useUINavScope(uiScopeName),reactivateUIScope=event=>{(event.type===`deactivate`||event.type===`focusout`)&&uiNavScope$1.set(uiScopeName)},range={x:{min:props.mirror.clampX?props.mirror.clampX[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampX?props.mirror.clampX[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step},y:{min:props.mirror.clampY?props.mirror.clampY[0]:MIRROR_RANGE_DEFAULTS.min,max:props.mirror.clampY?props.mirror.clampY[1]:MIRROR_RANGE_DEFAULTS.max,step:MIRROR_RANGE_DEFAULTS.step}},[inpX,inpY]=[ref(),ref()],isChanged=computed(()=>inpX.value&&inpX.value.dirty||inpY.value&&inpY.value.dirty),mover={x:0,y:0,drift:.2,tmr:null,tmrInterval:100};function move(evt){let val=evt.detail.value>mover.drift?evt.detail.value-mover.drift:evt.detail.value<-mover.drift?evt.detail.value+mover.drift:0;evt.detail.name===`focus_lr`?mover.x=val:evt.detail.name===`focus_ud`&&(mover.y=val)}let precision=10**(MIRROR_RANGE_DEFAULTS.step+`.`).split(/[.,]/)[1].length,clamp$2=(val,axis=`x`)=>Math.round(Math.max(range[axis].min,Math.min(val,range[axis].max))*precision)/precision;function resetValues(){props.mirror.x=inpX.value.currentCleanValue,props.mirror.y=inpY.value.currentCleanValue,onValueChanged()}function onValueChanged(){Lua_default.extensions.core_vehicle_mirror.setAngleOffset(props.mirror.name,-props.mirror.y,-props.mirror.x,!1,!1)}return onMounted(()=>{getUINavServiceInstance().useCrossfire=!1,Lua_default.extensions.core_vehicle_mirror.focusOnMirror(props.mirror.name),mover.tmr=setInterval(()=>{mover.x===0&&mover.y===0||(props.mirror.x=clamp$2(props.mirror.x+mover.x,`x`),props.mirror.y=clamp$2(props.mirror.y+mover.y,`y`),onValueChanged())},mover.tmrInterval)}),onUnmounted(()=>{getUINavServiceInstance().useCrossfire=!0,clearInterval(mover.tmr)}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$10,[createVNode(unref(bngImageTile_default),{class:`mirror-tile`,icon:unref(icons)[__props.mirror.mirrorIcon],label:__props.mirror.description,ratio:`1:1`},null,8,[`icon`,`label`]),createBaseVNode(`div`,_hoisted_2$6,[createBaseVNode(`div`,_hoisted_3$5,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpY`,ref:inpY,class:`slider-y`},range.y,{uiNavFocus:!1,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[0]||=$event=>__props.mirror.y=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_4$4,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_ud`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.y,"onUpdate:modelValue":_cache[1]||=$event=>__props.mirror.y=$event,type:`number`},range.y,{prefix:`Y`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_5$3,[createBaseVNode(`div`,_hoisted_6$2,[createVNode(unref(bngSlider_default),mergeProps({"bng-no-nav":`true`,ref_key:`inpX`,ref:inpX,class:`slider-x`},range.x,{uiNavFocus:!1,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[2]||=$event=>__props.mirror.x=$event,onFocusout:reactivateUIScope,onValueChanged,onDeactivate:reactivateUIScope}),null,16,[`modelValue`])]),createBaseVNode(`div`,_hoisted_7$2,[createVNode(unref(bngBinding_default),{class:`keybinding`,action:`menu_item_focus_lr`,deviceMask:`xinput`,dark:!1}),createVNode(unref(bngInput_default),mergeProps({class:`value`,modelValue:__props.mirror.x,"onUpdate:modelValue":_cache[3]||=$event=>__props.mirror.x=$event,type:`number`},range.x,{prefix:`X`,suffix:`°`}),null,16,[`modelValue`])])]),createBaseVNode(`div`,_hoisted_8$1,[createVNode(unref(bngButton_default),{accent:unref(ACCENTS).attention,disabled:!isChanged.value,onClick:_cache[4]||=$event=>resetValues()},{default:withCtx(()=>[createVNode(unref(bngBinding_default),{controller:``,"ui-event":`action_3`}),createTextVNode(` `+toDisplayString(_ctx.$t(`ui.common.reset`)),1)]),_:1},8,[`accent`,`disabled`])])])),[[unref(BngOnUiNav_default),move,`focus_lr,focus_ud`],[unref(BngOnUiNav_default),resetValues,`action_3`]])}},MirrorAdjust_default=__plugin_vue_export_helper_default(_sfc_main$12,[[`__scopeId`,`data-v-14ab0128`]]),_hoisted_1$9={key:0,class:`content buttons-grid`},_sfc_main$11={__name:`Mirrors`,props:{exitRoute:{type:String,default:`menu.vehicleconfig.tuning`}},setup(__props){useUINavScope(`vehicle-config-mirrors`);let comp=ref(null),{lua,events:events$3}=useBridge(),mirrors=ref([]),selectedMirror=ref(null),props=__props;async function exitAdjustmentMode(){selectedMirror.value?(lua.extensions.core_vehicle_mirror.setAngleOffset(selectedMirror.value.name,-selectedMirror.value.y,-selectedMirror.value.x,!1,!0),selectedMirror.value=null,comp.value=null,await lua.extensions.core_vehicle_mirror.focusOnMirror(!1)):bngVue.gotoAngularState(props.exitRoute)}async function getVehicleMirrors(){let data=await lua.extensions.core_vehicle_mirror.getAnglesOffset();for(let key in mirrors.value.splice(0),data){let position=data[key].position,mirrorIcon=data[key].icon,description=data[key].label;if(position||(/_L$|_L_/.test(key)?(position=`left`,mirrorIcon||=`mirrorLeftDefault`):/_R$|_R_/.test(key)?(position=`right`,mirrorIcon||=`mirrorRightDefault`):position=`mid`),!description)description=$translate.instant(`ui.mirrors.position.`+position),key.endsWith(`_spot`)&&(description+=` (${$translate.instant(`ui.mirrors.spot`)})`);else{let tr=$translate.instant(`ui.mirrors.`+description);tr.startsWith(`ui.mirrors.`)||(description=tr)}mirrors.value.push({name:data[key].name,description,position,x:data[key].angleOffset.x,y:data[key].angleOffset.z,clampX:data[key].clampX,clampY:data[key].clampZ,mirrorIcon:mirrorIcon||`mirrorInteriorMiddle`,row:data[key].row||0})}mirrors.value.sort((a$1,b)=>a$1.row-b.row)}return onMounted(async()=>{await getVehicleMirrors(),events$3.on(`VehicleChange`,getVehicleMirrors),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_lr`),lua.extensions.core_input_bindings.setMenuActionEnabled(!0,`menu_item_focus_ud`)}),onUnmounted(()=>{events$3.off(`VehicleChange`,getVehicleMirrors)}),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(layoutSingle_default),{class:`layout-content-full layout-align-hstart`,"bng-ui-scope":`vehicle-config-mirrors`},{default:withCtx(()=>[withDirectives((openBlock(),createBlock(unref(bngCard_default),{class:`mirrors-card`},{buttons:withCtx(()=>[createVNode(unref(bngButton_default),{onClick:exitAdjustmentMode},{default:withCtx(()=>[selectedMirror.value?(openBlock(),createBlock(unref(bngBinding_default),{key:0,controller:``,"ui-event":`action_2`})):(openBlock(),createBlock(unref(bngBinding_default),{key:1,controller:``,"ui-event":`back`})),createTextVNode(` `+toDisplayString(_ctx.$t(selectedMirror.value?`ui.common.apply`:`ui.common.close`)),1)]),_:1})]),default:withCtx(()=>[createVNode(unref(bngCardHeading_default),null,{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(`ui.mirrors.name`)),1)]),_:1}),selectedMirror.value?(openBlock(),createBlock(MirrorAdjust_default,{key:1,class:`content`,mirror:selectedMirror.value},null,8,[`mirror`])):(openBlock(),createElementBlock(`div`,_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(mirrors.value,mirror=>(openBlock(),createBlock(unref(bngImageTile_default),{onClick:$event=>selectedMirror.value=mirror,class:normalizeClass([`mirror-button`,[mirror.position]]),icon:unref(icons)[mirror.mirrorIcon]||unref(icons).placeholder,label:mirror.description,"bng-nav-item":``},null,8,[`onClick`,`class`,`icon`,`label`]))),256))]))]),_:1})),[[unref(BngBlur_default),!0]])]),_:1})),[[unref(BngOnUiNav_default),exitAdjustmentMode,`menu,back`],[unref(BngOnUiNav_default),()=>selectedMirror.value&&exitAdjustmentMode(),`action_2`]])}},Mirrors_default=__plugin_vue_export_helper_default(_sfc_main$11,[[`__scopeId`,`data-v-28f8b633`]]),routes_default$17=[{path:`/vehicle-config`,name:`menu.vehicleconfig`,redirect:`/vehicle-config/parts`,meta:{clickThrough:!0,infoBar:{withAngular:!1,visible:!0,showSysInfo:!1},uiApps:{shown:!0},topBar:{visible:!0}},children:[{path:`parts`,name:`menu.vehicleconfig.parts`,component:VehicleConfig_default,props:{tab:`parts`}},{path:`tuning`,name:`menu.vehicleconfig.tuning`,component:VehicleConfig_default,props:{tab:`tuning`}},{path:`color`,name:`menu.vehicleconfig.color`,component:VehicleConfig_default,props:{tab:`color`},meta:{uiApps:{shown:!1}}},{path:`save`,name:`menu.vehicleconfig.save`,component:VehicleConfig_default,props:{tab:`save`},meta:{uiApps:{shown:!1}}},{path:`debug`,name:`menu.vehicleconfig.debug`,component:VehicleConfig_default,props:{tab:`debug`}}]},{path:`/vehicle-config/tuning/mirrors/:exitRoute?/`,name:`menu.vehicleconfig.tuning.mirrors`,component:Mirrors_default,props:!0},{path:`/vehicle-config/tuning/mirrors-angular`,name:`menu.vehicleconfig.tuning.mirrors.with-angular`,component:Mirrors_default,props:{exitRoute:`menu.vehicleconfigold.tuning`}},{path:`/vehicle-config/tuning/mirrors-garage`,name:`menu.vehicleconfig.tuning.mirrors.in-garage`,component:Mirrors_default,props:{exitRoute:`garagemode.tuning`}}],_hoisted_1$8={key:0,class:`management-details`},_hoisted_2$5={key:0,class:`current-vehicle-info`},_hoisted_3$4={class:`info-row`},_hoisted_4$3={class:`value`},_hoisted_5$2={class:`buttons-section`},_sfc_main$10={__name:`ManagementDetails`,props:{managementDetails:{type:Object,default:null},executeButton:{type:Function,required:!0}},emits:[`button-click`],setup(__props,{emit:__emit}){let props=__props,emit$1=__emit,handleButtonClick=buttonId=>{props.executeButton(buttonId),emit$1(`button-click`,buttonId)};return(_ctx,_cache)=>__props.managementDetails&&__props.managementDetails.buttonInfo&&__props.managementDetails.buttonInfo.length>0?(openBlock(),createElementBlock(`div`,_hoisted_1$8,[__props.managementDetails.details?(openBlock(),createElementBlock(`div`,_hoisted_2$5,[createBaseVNode(`div`,_hoisted_3$4,[_cache[0]||=createBaseVNode(`span`,{class:`label`},`Current Vehicle:`,-1),createBaseVNode(`span`,_hoisted_4$3,toDisplayString(__props.managementDetails.details.currentVehicleName),1)])])):createCommentVNode(``,!0),createBaseVNode(`div`,_hoisted_5$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.managementDetails.buttonInfo,button=>(openBlock(),createElementBlock(`div`,{key:button.buttonId,class:`button-container`},[createVNode(unref(bngButton_default),{accent:button.accent||`secondary`,label:button.label,icon:button.icon,onClick:$event=>handleButtonClick(button.buttonId)},null,8,[`accent`,`label`,`icon`,`onClick`])]))),128))])])):createCommentVNode(``,!0)}},ManagementDetails_default=__plugin_vue_export_helper_default(_sfc_main$10,[[`__scopeId`,`data-v-b0128491`]]),_sfc_main$9={__name:`VehicleSelector`,setup(__props){return(_ctx,_cache)=>(openBlock(),createBlock(GridSelector_default,{backendName:`vehicleSelector`,routePath:`/vehicle-selector`,defaultPath:{keys:[`allModels`]},defaultDetailsMode:`advanced`,tileImagesTopAligned:``},{"item-details":withCtx(({activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod})=>[createVNode(VehicleDetails_default,{activeItem,activeItemDetails,executeButton,toggleFavourite,exploreFolder,goToMod,showHeaderTitle:!0},null,8,[`activeItem`,`activeItemDetails`,`executeButton`,`toggleFavourite`,`exploreFolder`,`goToMod`])]),"management-details":withCtx(({managementDetails,executeButton})=>[createVNode(ManagementDetails_default,{managementDetails,executeButton},null,8,[`managementDetails`,`executeButton`])]),_:1}))}},VehicleSelector_default=_sfc_main$9,routes_default$18=[{name:`menu.vehiclesnew`,path:`/vehicle-selector/:pathMatch(.*)*`,component:VehicleSelector_default,props:!0,meta:{clickThrough:!0,infoBar:{visible:!0,showSysInfo:!1},uiApps:{shown:!1},topBar:{visible:!0}}}],router=createRouter({history:createWebHashHistory(),routes:[...Object.values([routes_default,routes_default$1,routes_default$2,routes_default$3,routes_default$4,routes_default$5,routes_default$6,routes_default$7,routes_default$8,routes_default$9,routes_default$10,routes_default$11,routes_default$12,routes_default$13,routes_default$14,routes_default$15,routes_default$16,routes_default$17,routes_default$18]).flatMap(routes=>routes||[]),{path:`/:catchAll(.*)*`,name:`unknown`,component:NotFound_default}]});router.bngUpdateMeta=to=>{to.meta&&(to.meta.uiApps&&handelUIAppsSettings(to.meta.uiApps),handleInfoBarSettings(to.meta.infoBar||{}),handleTopBarSettings(to))},router.afterEach((to,from)=>{reportState(to.path,!0,from.path),window.bridge.api.engineLua(`extensions.hook("onUiChangedState", "${to.name}", "${from.name}")`),router.bngUpdateMeta(to)});var handelUIAppsSettings=settings$1=>{let appsAPI=useUIApps();settings$1.layout&&appsAPI.setLayout(settings$1.layout),`shown`in settings$1&&appsAPI.setVisible(settings$1.shown)},handleInfoBarSettings=settings$1=>{let infoBar=useInfoBar();infoBar.visible=settings$1.visible,infoBar.showSysInfo=settings$1.showSysInfo,infoBar.withAngular=settings$1.withAngular,settings$1.hints&&(infoBar.clearHints(),infoBar.addHints(settings$1.hints))},handleTopBarSettings=to=>{let topBar=useTopBar(),meta=to.meta.topBar||{};meta.visible?meta.visible&&!topBar.visible&&topBar.show():topBar.hide(),topBar.onUIStateChanged(to)},router_default=router,_hoisted_1$7={key:0,id:`vue-debug`},_hoisted_2$4={class:`heading-wrapper`},_hoisted_3$3={class:`label`},_hoisted_4$2={key:0,class:`route-info`},_hoisted_5$1={class:`main`},_hoisted_6$1={class:`controls`},_hoisted_7$1={key:0},_hoisted_8=[`label`],_hoisted_9=[`value`,`selected`],_sfc_main$8={__name:`VueDebug`,setup(__props){let{lua}=useBridge(),EXTRA_ROUTE,routeGroups=router_default.getRoutes().map(r=>r.name).filter(n=>n!==`routelist`).sort((a$1,b)=>a$1.localeCompare(b)).reduce((res,n)=>{if(!n)return res;let g=n.substring(0,1);return res[g]||(res[g]={name:g.toUpperCase(),routes:[]}),res[g].routes.push(n),res},{}),route=useRoute(),hash=ref(location.hash.split(`#`)[1]),path=computed(()=>route.path),routeName=computed(()=>route.name),showDebug=ref(window._VueDebugState),isOpen=ref(window._VueDebugOpen),showComponents=router_default.hasRoute(`components`),bngVue$1=window.bngVue||{};bngVue$1.debug=(state=!0)=>showDebug.value=window._VueDebugState=state,bngVue$1.reset=()=>bngVue$1.gotoGameState(`menu.mainmenu`);function toggleOpen(){isOpen.value=window._VueDebugOpen=!isOpen.value}function selectRoute(e){e.target.value&&bngVue$1.gotoGameState(e.target.value)}function icons$3(){bngVue$1.gotoGameState(`components/IconBrowser`),toggleOpen()}function colours(){bngVue$1.gotoGameState(`components/Colours`),toggleOpen()}function extra(){bngVue$1.gotoGameState(void 0),toggleOpen()}function components(){bngVue$1.showComponents(),toggleOpen()}function menu(){bngVue$1.reset(),toggleOpen()}function mainmenu(){toggleOpen(),lua.returnToMainMenu()}let closeDebug=e=>{e.stopPropagation(),bngVue$1.debug(!1)};return addEventListener(`hashchange`,e=>{hash.value=e.newURL.split(`#`)[1]}),(_ctx,_cache)=>(openBlock(),createBlock(Teleport,{to:`body`},[showDebug.value?(openBlock(),createElementBlock(`div`,_hoisted_1$7,[createBaseVNode(`div`,{class:`handle`,onClick:toggleOpen},[createBaseVNode(`div`,_hoisted_2$4,[createBaseVNode(`span`,_hoisted_3$3,[_cache[1]||=createBaseVNode(`strong`,null,`Vue`,-1),isOpen.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`span`,_hoisted_4$2,`: `+toDisplayString(path.value)+` [ `+toDisplayString(routeName.value)+` ]`,1))]),createBaseVNode(`a`,{onClick:closeDebug},`x`)])]),withDirectives(createBaseVNode(`div`,_hoisted_5$1,[createBaseVNode(`div`,null,[createTextVNode(` Current hash: `+toDisplayString(hash.value),1),_cache[2]||=createBaseVNode(`br`,null,null,-1),createTextVNode(` Route name: `+toDisplayString(routeName.value),1)]),_cache[4]||=createBaseVNode(`hr`,null,null,-1),createBaseVNode(`div`,_hoisted_6$1,[unref(showComponents)?(openBlock(),createElementBlock(`div`,_hoisted_7$1,[withDirectives((openBlock(),createElementBlock(`a`,{href:`#`,onClick:menu},[..._cache[3]||=[createTextVNode(`Main Menu`,-1)]])),[[unref(BngDoubleClick_default),mainmenu,void 0,{capture:!0}],[unref(BngTooltip_default),`Doubleclick to unload level`]]),unref(void 0)?(openBlock(),createElementBlock(`a`,{key:0,href:`#`,onClick:extra},`⏩`)):createCommentVNode(``,!0),createBaseVNode(`a`,{href:`#`,onClick:_cache[0]||=$event=>_ctx.$simplemenu.value=!_ctx.$simplemenu.value},toDisplayString(_ctx.$simplemenu.value?`✓`:`☐`)+` SimpleMenu`,1),createBaseVNode(`a`,{href:`#`,onClick:components},`Components`),createBaseVNode(`a`,{href:`#`,onClick:icons$3},`Icons`),createBaseVNode(`a`,{href:`#`,onClick:colours},`Colours`)])):createCommentVNode(``,!0),createBaseVNode(`select`,{multiple:``,onClick:selectRoute},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(routeGroups),group=>(openBlock(),createElementBlock(`optgroup`,{key:group.name,label:group.name},[(openBlock(!0),createElementBlock(Fragment,null,renderList(group.routes,route$1=>(openBlock(),createElementBlock(`option`,{key:route$1,value:route$1,selected:route$1===routeName.value},toDisplayString(route$1),9,_hoisted_9))),128))],8,_hoisted_8))),128))])])],512),[[vShow,isOpen.value]])])):createCommentVNode(``,!0)]))}},VueDebug_default=__plugin_vue_export_helper_default(_sfc_main$8,[[`__scopeId`,`data-v-669cde99`]]),_hoisted_1$6={class:`hint-content`},_hoisted_2$3={key:0,class:`binding-container`},_hoisted_3$2={key:1,class:`text`},_hoisted_4$1={key:1,class:`hint-text`},_sfc_main$7={__name:`Hint`,props:{data:Object},setup(__props){let Controls=controls_default(),props=__props,PROP_DEFAULTS={icon:{color:`white`},binding:{showUnassigned:!0,dark:!1}},hintRef=ref(null),bindingRefs=ref([]),hintContent=computed(()=>{let hints=props.data?[props.data.content].flat():[],res=[],label;for(let hint of hints)typeof hint==`string`?label=hint:(hint.label&&(label=hint.label),res.push({...hint,label:void 0}));return label&&res.push(label),res}),bindingView=computed(()=>{let res=hintContent.value.filter(item=>typeof item!=`string`);for(let item of res)if(item.type===`binding`){if(item.props?.viewerObj){item.viewerObjs=[item.props.viewerObj];continue}let viewerObjs=Controls.makeViewerObj({...PROP_DEFAULTS[item.type],...item.props,actionVariants:!0,useLastDevice:!0});viewerObjs?.variants?item.viewerObjs=viewerObjs.variants:item.viewerObjs=[viewerObjs]}return res}),labelView=computed(()=>hintContent.value.find(item=>typeof item==`string`)||bindingView.value.find(item=>item.label)?.label),bindingDisplayed=computed(()=>!!(bindingRefs.value.some(ref$1=>ref$1.displayed)||bindingView.value.some(item=>item.type===`icon`)||labelView.value));function onClick(evt){if(lastFocused&&document.body.contains(lastFocused)&&!setFocusExternal(lastFocused,!0,!1))try{lastFocused.focus?.()}catch{}props.data.action?.(evt)}let lastFocused;function trackFocus(evt){let target=evt?.detail?.target||evt?.target||document.activeElement;if(!target){lastFocused=null;return}if(target=target.closest(NAVIGABLE_ELEMENTS_SELECTOR),!target){lastFocused=null;return}if(target===lastFocused)return;let button=hintRef.value?.getElement?.();target!==button&&!button.contains(target)&&(lastFocused=target)}return onMounted(()=>window.addEventListener(`uinav-focus`,trackFocus)),onBeforeUnmount(()=>window.removeEventListener(`uinav-focus`,trackFocus)),(_ctx,_cache)=>withDirectives((openBlock(),createBlock(unref(bngButton_default),{ref_key:`hintRef`,ref:hintRef,class:normalizeClass([`hint`,{"flash-on":__props.data.flash}]),accent:unref(ACCENTS).text,disabled:!__props.data.action,onClick:withModifiers(onClick,[`stop`]),"bng-no-nav":``,tabindex:`-1`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$6,[bindingView.value.length>0?(openBlock(),createElementBlock(`div`,_hoisted_2$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(bindingView.value,(item,idx)=>(openBlock(),createElementBlock(`span`,{key:idx,class:`rich`},[item.type===`icon`?(openBlock(),createBlock(unref(bngIcon_default),mergeProps({key:0,class:`icon`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props}),null,16)):createCommentVNode(``,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(item.viewerObjs,(viewerObj,index)=>(openBlock(),createBlock(unref(bngBinding_default),mergeProps({key:index,ref_for:!0,ref_key:`bindingRefs`,ref:bindingRefs,class:`binding`},{ref_for:!0},{...PROP_DEFAULTS[item.type],...item.props,viewerObj},{"track-ignore":``}),null,16))),128)),item.hold?(openBlock(),createElementBlock(`span`,_hoisted_3$2,toDisplayString(item.hold?`[hold]`:``),1)):createCommentVNode(``,!0)]))),128))])):createCommentVNode(``,!0),labelView.value?(openBlock(),createElementBlock(`span`,_hoisted_4$1,toDisplayString(_ctx.$tt(labelView.value)),1)):createCommentVNode(``,!0)])]),_:1},8,[`class`,`accent`,`disabled`])),[[vShow,bindingDisplayed.value]])}},Hint_default=__plugin_vue_export_helper_default(_sfc_main$7,[[`__scopeId`,`data-v-29a63ba0`]]),_hoisted_1$5={key:0,class:`info-bar-stats`},_hoisted_2$2={key:0},_hoisted_3$1={key:0,class:`divider`},_hoisted_4={key:0},_hoisted_5={class:`sysinfo`},_hoisted_6={class:`sysinfo`},_hoisted_7={key:1,class:`info-bar-buttons`,"bng-no-child-nav":`true`},_sfc_main$6={__name:`InfoBar`,setup(__props){let{visible,showSysInfo,withAngular,hints}=storeToRefs(useInfoBar()),showBuildInfo=ref(!1),toggleBuildInfo=()=>showBuildInfo.value=!showBuildInfo.value,route=useRoute(),solidBar=computed(()=>route.name===`menu.mainmenu`?!sysInfo_default.mainMenuBackgroundRequired.value:withAngular.value);return(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{class:normalizeClass([`info-bar`,{"info-bar-solid":solidBar.value}]),"bng-no-nav":`true`},[unref(showSysInfo)?(openBlock(),createElementBlock(`div`,_hoisted_1$5,[withDirectives(createVNode(unref(bngIcon_default),{style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(sysInfo_default).online?unref(icons).globeSimplified:unref(icons).globeSimpleNotSign},null,8,[`type`]),[[unref(BngTooltip_default),unref(sysInfo_default).online?`Online`:`Offline`,`top`]]),(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(sysInfo_default).serviceProviders.value,(info,key)=>(openBlock(),createElementBlock(Fragment,null,[unref(sysInfo_default).serviceProvidersOnline.value[key]?(openBlock(),createElementBlock(`span`,_hoisted_2$2,[createVNode(unref(bngImageAsset_default),{src:`images/mainmenu/${key}icon.png`},null,8,[`src`]),createTextVNode(` `+toDisplayString(info.playerName)+` `,1),info.branch&&info.branch!==`public`?withDirectives((openBlock(),createBlock(unref(bngIcon_default),{key:0,style:{"--bng-icon-size":`1.25em`,padding:`0`},type:unref(icons).branch},null,8,[`type`])),[[unref(BngTooltip_default),`Branch: `+info.branch,`top`]]):createCommentVNode(``,!0),createTextVNode(` `+toDisplayString(info.branch&&info.branch!==`public`?info.branch:``),1)])):createCommentVNode(``,!0)],64))),256)),unref(sysInfo_default).online||unref(sysInfo_default).serviceProvidersOnline.value.any?(openBlock(),createElementBlock(`span`,_hoisted_3$1)):createCommentVNode(``,!0),createBaseVNode(`span`,{onClick:toggleBuildInfo},[showBuildInfo.value?(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`span`,_hoisted_5,`Alpha v.`+toDisplayString(unref(sysInfo_default).version),1),createBaseVNode(`span`,_hoisted_6,toDisplayString(unref(sysInfo_default).buildInfo),1)],64)):(openBlock(),createElementBlock(`span`,_hoisted_4,`Alpha v.`+toDisplayString(unref(sysInfo_default).versionSimple),1))])])):createCommentVNode(``,!0),_cache[0]||=createBaseVNode(`div`,{class:`spacer`},null,-1),unref(hints).length?(openBlock(),createElementBlock(`div`,_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(hints),item=>(openBlock(),createBlock(Hint_default,{key:item.id,data:item},null,8,[`data`]))),128))])):createCommentVNode(``,!0)],2)),[[vShow,unref(visible)],[unref(BngBlur_default),solidBar.value&&!unref(sysInfo_default).mainMenuBackgroundRequired.value]])}},InfoBar_default=__plugin_vue_export_helper_default(_sfc_main$6,[[`__scopeId`,`data-v-cb5f8971`]]),_hoisted_1$4=[`accent`],_sfc_main$5={__name:`TopBarItem`,props:{icon:{type:String,required:!0},active:{type:Boolean,default:void 0},label:String,iconOnly:Boolean,iconPosition:{type:String,default:`left`},accent:{type:String,default:`default`}},setup(__props){let props=__props,item=ref(null);return watch(()=>props.active,value=>{typeof value==`boolean`&&(value?(item.value.setAttribute(`active`,`true`),item.value.removeAttribute(NO_NAV_ATTR)):(item.value.removeAttribute(`active`),item.value.setAttribute(NO_NAV_ATTR,`true`)))}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,{ref_key:`item`,ref:item,class:normalizeClass([`topbar-item`,{"icon-only":__props.iconOnly}]),accent:__props.accent,"bng-nav-item":``,"bng-no-nav":`true`,tabindex:`-1`},[createVNode(unref(bngIcon_default),{class:`topbar-item-icon`,type:__props.icon},null,8,[`type`]),__props.label&&!__props.iconOnly?(openBlock(),createBlock(unref(textScroller_default),{key:0,class:`topbar-item-text`},{default:withCtx(()=>[createTextVNode(toDisplayString(_ctx.$t(__props.label)),1)]),_:1})):createCommentVNode(``,!0)],10,_hoisted_1$4)),[[unref(BngSoundClass_default),`bng_click_hover_generic`]])}},TopBarItem_default=__plugin_vue_export_helper_default(_sfc_main$5,[[`__scopeId`,`data-v-2c3015cd`]]),_hoisted_1$3={class:`topbar`},_hoisted_2$1={class:`topbar-section topbar-left`},_hoisted_3={class:`topbar-section topbar-center`},_sfc_main$4={__name:`TopBar`,setup(__props,{expose:__expose}){let topBar=useTopBar(),{visible,items:items$2,activeItem,gameState:gameState$1}=storeToRefs(topBar),overflowContainer=ref(null),pauseButtonTarget=ref(null),showTabBindings=ref(!0),showBackBinding=ref(!0),onItemClicked=item=>{activeItem.value!==item.id&&(activeItem.value=item.id,topBar.selectEntry(item.id))},backStack=new Map,customBack=null;function setBack(id,fn){if(!id)throw Error("Usage: TopBar.setBack(id, [fn]), where `id` is your unique id and `fn` is a custom back function that will fire and expected to return `true` or `false` (undefined return means `true`), which will dis-/allow the base back functionality.");typeof fn==`function`?backStack.set(id,fn):backStack.delete(id),customBack=Array.from(backStack.values()).at(-1)||null}let onBack=()=>{let res=customBack?.();res===void 0&&(res=!0),res&&(gameState$1.isInGame?window.bngVue.gotoGameState(`play`):window.globalAngularRootScope?.$broadcast(`MenuToggle`))},onContinue=()=>{window.bngVue.gotoAngularState(`play`)};return watch(()=>activeItem.value,val=>{if(activeItem.value!==null&&items$2.value.length>0){let idx=items$2.value.findIndex(item=>item.id===val);overflowContainer.value.activate(idx)}else overflowContainer.value.deactivate()}),__expose({pauseButtonTarget:computed(()=>visible.value?pauseButtonTarget.value:null),setBack,showTabBindings,showBackBinding}),onMounted(()=>{}),onUnmounted(()=>{}),(_ctx,_cache)=>withDirectives((openBlock(),createElementBlock(`div`,_hoisted_1$3,[createBaseVNode(`div`,_hoisted_2$1,[unref(gameState$1).isInGame?withDirectives((openBlock(),createBlock(unref(bngButton_default),{key:0,"track-ignore":``,accent:`custom`,class:`topbar-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onContinue},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).play},null,8,[`type`]),createVNode(unref(bngBinding_default),{"ui-event":`menu`,controller:``})]),_:1})),[[unref(BngTooltip_default),`Back to gameplay`,`right`]]):createCommentVNode(``,!0),withDirectives((openBlock(),createBlock(unref(bngButton_default),{"track-ignore":``,accent:`custom`,class:`topbar-button back-button`,"bng-no-nav":`true`,tabindex:`-1`,onClick:onBack},{default:withCtx(()=>[createVNode(unref(bngIcon_default),{type:unref(icons).undo},null,8,[`type`]),withDirectives(createVNode(unref(bngBinding_default),{"ui-event":`back`,controller:``},null,512),[[vShow,showBackBinding.value]])]),_:1})),[[unref(BngTooltip_default),`Back one level`,`right`]])]),createBaseVNode(`div`,_hoisted_3,[withDirectives(createVNode(unref(bngOverflowContainer_default),{ref_key:`overflowContainer`,ref:overflowContainer,class:`topbar-overflow-container`,"use-bindings-only":``,"show-bindings":showTabBindings.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(items$2),item=>(openBlock(),createBlock(TopBarItem_default,{key:item.id,icon:item.icon,label:item.label,onClick:$event=>onItemClicked(item)},null,8,[`icon`,`label`,`onClick`]))),128))]),_:1},8,[`show-bindings`]),[[vShow,unref(items$2).length>0]])]),createBaseVNode(`div`,{ref_key:`pauseButtonTarget`,ref:pauseButtonTarget,class:`topbar-section topbar-right`},null,512)])),[[vShow,unref(visible)],[unref(BngBlur_default)]])}},TopBar_default=__plugin_vue_export_helper_default(_sfc_main$4,[[`__scopeId`,`data-v-c4d95c66`]]),_sfc_main$3={__name:`Popup`,props:{type:{type:String,default:`default`,validator:val=>[`default`,`activity`].includes(val)}},setup(__props){let props=__props,popups=computed(()=>popupsView[props.type===`default`?`popups`:`activities`]),popupsWrapper=computed(()=>popupsView[props.type===`default`?`popupsWrapper`:`activitiesWrapper`]),wrapper=ref(),innerWrapper=ref(),shown=reactive({wrapper:!1,popups:!1}),tmr;watch(()=>!!popups.value,cur=>{if(cur===shown.wrapper)return;let body=document.body;cur&&popupsWrapper.value.fade?body.classList.add(`popup-all-hide`):body.classList.remove(`popup-all-hide`),tmr&&clearTimeout(tmr),cur?(shown.wrapper=!0,nextTick(()=>{props.type===`default`&&wrapper.value&&typeof wrapper.value.showModal==`function`&&wrapper.value.showModal(),nextTick(()=>shown.popups=!0)}),popupsWrapper.value.fade&&body.classList.add(`popup-show-hide`)):tmr=setTimeout(()=>{tmr=null,!popups.value&&(body.classList.remove(`popup-show-hide`),shown.popups=!1,shown.wrapper=!1,nextTick(()=>priorityFocus()))},200)});function handleUINavEvents(event){console.log(`POPUP handleUINavEvents stopPropagation`,event),event.stopPropagation()}return(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[shown.wrapper?withDirectives((openBlock(),createBlock(resolveDynamicComponent(__props.type===`default`?`dialog`:`div`),{key:0,ref_key:`wrapper`,ref:wrapper,class:normalizeClass([`popup-wrapper`,`popup-type-${__props.type}`])},{default:withCtx(()=>[createVNode(Transition,{name:`popup-background`},{default:withCtx(()=>[shown.popups?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`popup-background`,...popupsWrapper.value.style.map(name=>`background-style-`+name)])},null,2)):createCommentVNode(``,!0)]),_:1}),createVNode(TransitionGroup,{name:`popup-fade`},{default:withCtx(()=>[shown.popups?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(popups.value,popup=>(openBlock(),createElementBlock(`div`,{key:popup.id,class:normalizeClass([`popup-container`,...popup.position.map(name=>`content-position-`+name),popup.animated?`popup-animated`:`popup-notanimated`,popup.active?`popup-active`:`popup-inactive`])},[(openBlock(),createBlock(resolveDynamicComponent(popup.component.ref),mergeProps({ref_for:!0},popup.props,{popupActive:popup.active,class:[`popup-content`,popup.active?`popup-active`:`popup-inactive`],onReturn:popup.return}),null,16,[`popupActive`,`class`,`onReturn`]))],2))),128)):createCommentVNode(``,!0)]),_:1}),createBaseVNode(`div`,{ref_key:`innerWrapper`,ref:innerWrapper},null,512)]),_:1},8,[`class`])),[[unref(BngBlur_default),popupsWrapper.value.blur],[unref(BngOnUiNav_default),handleUINavEvents,`back,menu`]]):createCommentVNode(``,!0),(openBlock(),createBlock(Teleport,{to:innerWrapper.value,disabled:!innerWrapper.value},[renderSlot(_ctx.$slots,`default`,{},void 0,!0)],8,[`to`,`disabled`]))],64))}},Popup_default=__plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-c0bb08d7`]]),_hoisted_1$2={class:`popover-container`},_sfc_main$2={__name:`Popover`,setup(__props){return usePopover(),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1$2))}},Popover_default=__plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-86205238`]]),_hoisted_1$1={class:`backgrounds-cache`},_hoisted_2=[`src`],DRIVE=8,TECH=1,_sfc_main$1={__name:`MainBackground`,setup(__props,{expose:__expose}){let bgPathResolve=(product,name,blur$1=!1)=>`images/mainmenu/${product?product+`/`:``}${name}${blur$1?`_blur`:``}.jpg`,_backgrounds={drive:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1)),drive_blur:Array.from({length:DRIVE},(_,i)=>bgPathResolve(`drive`,i+1,!0)),tech:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1)),tech_blur:Array.from({length:TECH},(_,i)=>bgPathResolve(`tech`,i+1,!0)),unofficial:[bgPathResolve(null,`unofficial_version`)],unofficial_blur:[bgPathResolve(null,`unofficial_version`,!0)]},backgroundId=ref(`drive`),backgrounds=computed(()=>({normal:_backgrounds[backgroundId.value],blur:_backgrounds[backgroundId.value+`_blur`]})),carousel=ref();return __expose({carousel:computed(()=>carousel.value),backgrounds:computed(()=>backgrounds.value)}),onMounted(async()=>{let isTech=await Lua_default.extensions.tech_license.isValid();backgroundId.value=isTech?`tech`:`drive`,bngApi.engineLua(`sailingTheHighSeas`,ahoy=>{backgroundId.value=ahoy?`unofficial`:isTech?`tech`:`drive`})}),(_ctx,_cache)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(Slideshow_default,{class:`background-image`,ref_key:`carousel`,ref:carousel,images:backgrounds.value.normal,delay:1e4,transition:``,shuffle:``},null,8,[`images`]),(openBlock(!0),createElementBlock(Fragment,null,renderList(backgrounds.value,list=>(openBlock(),createElementBlock(`div`,_hoisted_1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(list,src=>(openBlock(),createElementBlock(`img`,{src:unref(getAssetURL)(src)},null,8,_hoisted_2))),256))]))),256))],64))}},MainBackground_default=__plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6c1f834b`]]),_hoisted_1={id:`vue-app-container`},_sfc_main={__name:`App`,setup(__props){let route=useRoute(),settings$1=useSettings(),bngVue$1=window.bngVue||{},apps=ref([]),appContCnt=ref(0),appTargets=computed(()=>apps.value.reduce((res,{teleport})=>({...res,[teleport]:document.getElementById(teleport.substring(1)),cnt:appContCnt.value}),{}));bngVue$1.updateAppContainer=()=>window.requestAnimationFrame(()=>appContCnt.value=++appContCnt.value%1e5);let contClickThrough=ref(!1);bngVue$1.gotoAngularState=(state=`blank`,params=void 0)=>window.angular&&window.angular.element(document.querySelector(`body`)).controller().changeAngularStateFromVue(state,params),bngVue$1.gotoGameState=(state=`ui-test`,{params=!1,tryAngularJS=!0,blankAngularJS=!0,clickThrough=!1,uiAppsShown=!1}={})=>{let a$1=history.state;if(!router_default.hasRoute(state))window.location.hash=`#/`+state,route&&(handleUiAppsMeta(route,uiAppsShown),router_default.bngUpdateMeta(route)),tryAngularJS&&bngVue$1.gotoAngularState(state,params);else{blankAngularJS&&bngVue$1.gotoAngularState(`blank`);let newroute=router_default.resolve({name:state,params});handleUiAppsMeta(newroute,uiAppsShown),newroute.name===route.name&&router_default.bngUpdateMeta(route),window.location.hash=newroute.href,router_default.replace({name:state,params})}history.replaceState(a$1,``,window.location.toString()),contClickThrough.value=clickThrough};function handleUiAppsMeta(route$1,uiAppsShown){route$1.meta?route$1.meta.uiApps||(route$1.meta.uiApps={}):route$1.meta={uiApps:{}},typeof route$1.meta.uiApps.shown!=`boolean`&&(route$1.meta.uiApps.shown=uiAppsShown)}bngVue$1.getCurrentRoute=()=>router_default.currentRoute.value,bngVue$1.spawnApp=(appName,appId,params=null)=>spawnUiApp(appName,appId,params,apps.value),bngVue$1.destroyApp=appName=>destroyUiApp(appName,apps.value),useFocusManager();let topBar=ref();provide(`setBack`,(id,fn)=>topBar.value?.setBack(id,fn)),provide(`showTopbarTabBindings`,val=>topBar.value&&(topBar.value.showTabBindings=val)),provide(`showTopbarBackBinding`,val=>topBar.value&&(topBar.value.showBackBinding=val));let bgRequired=sysInfo_default.mainMenuBackgroundRequired,mainBackground=ref();return provide(`mainBackground`,computed(()=>mainBackground.value?.carousel)),provide(`mainBackgroundBlur`,computed(()=>mainBackground.value?.backgrounds.blur)),watch([()=>settings$1.values.uiLayoutContentAlignment,()=>settings$1.values.uiLayoutContentWidth],([alignment,width$1])=>{let rootStyle=document.documentElement.style;alignment=LAYOUT_ALIGNMENTS[alignment||`center`],width$1=width$1?`${width$1}px`:`100vw`,window.requestAnimationFrame(()=>{rootStyle.setProperty(`--layout-content-alignment`,alignment),rootStyle.setProperty(`--layout-content-width`,width$1)})},{immediate:!0}),(_ctx,_cache)=>{let _component_router_view=resolveComponent(`router-view`);return openBlock(),createElementBlock(Fragment,null,[unref(bgRequired)?(openBlock(),createBlock(MainBackground_default,{key:0,ref_key:`mainBackground`,ref:mainBackground},null,512)):createCommentVNode(``,!0),unref(route).name===`unknown`?createCommentVNode(``,!0):(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass({"vue-app-main":!0,"click-through":contClickThrough.value||unref(route).meta&&unref(route).meta.clickThrough})},[createVNode(TopBar_default,{ref_key:`topBar`,ref:topBar},null,512),createVNode(_component_router_view),createVNode(InfoBar_default)],2)),createVNode(pauseButton_default,{"teleport-to":topBar.value?.pauseButtonTarget},null,8,[`teleport-to`]),unref(route).name===`unknown`?(openBlock(),createBlock(Popup_default,{key:2,type:`activity`})):createCommentVNode(``,!0),createVNode(Popup_default,null,{default:withCtx(()=>[createVNode(Popover_default)]),_:1}),createVNode(LoadingScreen_default),createVNode(VueDebug_default),createBaseVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(apps.value,(app$1,index)=>(openBlock(),createElementBlock(Fragment,{key:app$1.appKey},[appTargets.value[app$1.teleport]?(openBlock(),createBlock(Teleport,{key:0,to:app$1.teleport},[(openBlock(),createBlock(resolveDynamicComponent(app$1.comp),mergeProps({ref_for:!0},app$1.props),null,16))],8,[`to`])):createCommentVNode(``,!0)],64))),128))])],64)}}},App_default=__plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-eef28b65`]]);function customDisposePlugin(context){let store$1=context.store,{$dispose,dispose:dispose$2}=store$1;store$1.$dispose=()=>{$dispose(),dispose$2&&typeof dispose$2==`function`&&dispose$2()}}window.watchdogInit=init,window.Vue=vue_esm_bundler_exports;var deps={Emitter:eventemitter3_default,beamng:window.beamng};window.bngApi&&(deps.overrideAPI=window.bngApi),setBridgeDependencies(deps);var bridge=useBridge();window.bridge=bridge,sysInfo_default.init(),initFocusVisible(),bridge.uiNavService=new UINavService(bridge.events),setUINavServiceInstance(bridge.uiNavService),bridge.uiNavService.initialize();var pinia=createPinia().use(()=>({$game:bridge})).use(customDisposePlugin),app=createApp(App_default).use(router_default).use(pinia).use(registerApps,apps_exports);useGameContextStore(),window.bngVue={start:()=>{window.vueGlobalStore||(window.vueGlobalStore=reactive({}));let globals={$game:bridge,$console:logger_default,$logger:logger_default,$simplemenu:ref(!!window.beamng?.simplemenu),$globalStore:window.vueGlobalStore},{i18n,plugin:translationPlugin$1}=initTranslation();app.use(i18n).use(translationPlugin$1());for(let[key,value]of Object.entries(globals))app.config.globalProperties[key]=value,app.provide(key,value);app.mount(`#vue-app`);let controlsStore=controls_default();window.bngVue.controls={getControllers:()=>controlsStore.controllers,getPlayers:()=>controlsStore.players,getCategories:()=>controlsStore.categories,getCategoriesList:()=>controlsStore.categoriesList,findBindingForAction:controlsStore.findBindingForAction,getActionDetails:controlsStore.getActionDetails,getBindingDetails:controlsStore.getBindingDetails,getAllBindingsForAction:controlsStore.getAllBindingsForAction,addNewBinding:controlsStore.addNewBinding,updateBinding:controlsStore.updateBinding,deleteBinding:controlsStore.deleteBinding,deleteBindings:controlsStore.deleteBindings,deviceIcon:controlsStore.deviceIcon,isFFBBound:controlsStore.isFFBBound,isFFBEnabled:controlsStore.isFFBEnabled,isFFBCapable:controlsStore.isFFBCapable,isGamepadAvailable:controlsStore.isGamepadAvailable,captureBinding:controlsStore.captureBinding,makeViewerObj:controlsStore.makeViewerObj,isControllerAvailable:controlsStore.isControllerAvailable,isControllerUsed:controlsStore.isControllerUsed,showIfController:controlsStore.showIfController,focusIfController:controlsStore.focusIfController,refreshData:()=>bridge.lua.extensions.core_input_bindings.notifyUI(`Vue exposed controls service needs the data`)},window.bngVue.uiNavTracker=useUINavTracker(),window.bngVue.topBar=useTopBar()},startTest:()=>{app.mount(`#vue-app`)},isProd:!0,icons},window.beamng||window.bngVue.start({i18n:window.i18n});
@/ui/uidevtools/src/main.js

app.use(router)
app.use(pinia)
app.use(router)
app.use(pinia)
@/ui/entrypoints/main/main.js
      }
      //$translateProvider.use('de-DE')
          $rootScope.$eval(function () {
            $translate.use(data.values.uiLanguage)
          })
@/ui/lib/ext/angular-translate/angular-translate.min.js
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1
");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1
");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
 */
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(e){"use strict";var n=e.storageKey(),a=e.storage(),t=function(){var t=e.preferredLanguage();angular.isString(t)?e.use(t):a.put(n,e.use())};t.displayName="fallbackFromIncorrectStorageValue",a?a.get(n)?e.use(a.get(n)).catch(t):t():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function e(t,r,e,i){"use strict";var T,c,z,x,F,I,_,n,V,R,D,K,U,M,H,G,q={},Y=[],B=t,J=[],Q="translate-cloak",W=!1,X=!1,Z=!0,tt=".",et=!1,nt=!1,at=0,rt=!0,a="default",s={default:function(t){return(t||"").split("-").join("_")},java:function(t){var e=(t||"").split("-").join("_"),n=e.split("_");return 1");return e.text(t),e.html()},i=function(t){if(!n)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return n(t)},s=function(t){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return a.trustAsHtml(t)},o=function(t,n,a){if(angular.isDate(t))return t;if(angular.isObject(t)){var r=angular.isArray(t)?[]:{};if(a){if(-1
@/ui/lib/int/vueService_mod.js
  let app = window.Vue.createApp({})
  if (window.vueI18n) app.use(window.vueI18n)
  if (!window.vueGlobalStore) {
@/ui/lib/ext/vue3/vue.global.js
              },
              use(plugin, ...options) {
                  if (installedPlugins.has(plugin)) {
@/ui/uidevtools/server/index.js
const app = express()
app.use(express.static("server/public"))
app.get("/", (req, res) => {
@/lua/ge/extensions/editor/assemblySpline/populate.lua
  for i = 1, maxMolecules * maxRigidMeshes do
    translationArray[i]:set(0, 0, 0) -- Clear all existing placement caches before use (reset to zero/identity).
    rotationArray[i]:set(0, 0, 0, 1)
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/parkingParams.lua
  { dir = 'in', type = 'number', name = 'poolActiveAmount', hidden = true, description = 'Amount of active and visible vehicles in the vehicle pooling system.' },
  { dir = 'in', type = 'number', name = 'debugLevel', hidden = true, description = 'Debug mode level to use (from 0 to 3).' }
}
@/lua/ge/extensions/editor/decalSpline/populate.lua
local function computeComponentMap(numPositions, spline)
  -- Determine the pattern of decals to use (either round-robin or random).
  table.clear(components)