2025-03-24 09:45:15 +00:00
{{define "settings/panel/subscription/json"}}
2025-03-25 15:13:17 +00:00
< a-collapse default-active-key = "1" >
< a-collapse-panel key = "1" header = '{{ i18n "pages.xray.generalConfigs"}}' >
2025-03-24 09:45:15 +00:00
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.settings.subPath"}}< / template >
< template # description > {{ i18n "pages.settings.subPathDesc"}}< / template >
< template # control >
2025-10-07 11:46:30 +00:00
< a-input type = "text" v-model = "allSetting.subJsonPath"
2025-09-19 12:39:21 +00:00
@input="allSetting.subJsonPath = ((typeof $event === 'string' ? $event : ($event & & $event.target ? $event.target.value : '')) || '').replace(/[:*]/g, '')"
@blur="allSetting.subJsonPath = (p => { p = p || '/'; if (!p.startsWith('/')) p='/' + p; if (!p.endsWith('/')) p += '/'; return p.replace(/\/+/g,'/'); })(allSetting.subJsonPath)"
2025-10-07 11:46:30 +00:00
placeholder="/json/">< / a-input >
2025-03-24 09:45:15 +00:00
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.settings.subURI"}}< / template >
< template # description > {{ i18n "pages.settings.subURIDesc"}}< / template >
< template # control >
< a-input type = "text" placeholder = "(http|https)://domain[:port]/path/"
v-model="allSetting.subJsonURI">< / a-input >
< / template >
< / a-setting-list-item >
< / a-collapse-panel >
2025-03-25 15:13:17 +00:00
< a-collapse-panel key = "2" header = '{{ i18n "pages.settings.fragment"}}' >
2025-03-24 09:45:15 +00:00
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.settings.fragment"}}< / template >
< template # description > {{ i18n "pages.settings.fragmentDesc"}}< / template >
< template # control >
< a-switch v-model = "fragment" > < / a-switch >
< / template >
< / a-setting-list-item >
2025-04-06 09:40:33 +00:00
< a-list-item v-if = "fragment" :style = "{ padding: '10px 20px' }" >
2025-03-24 09:45:15 +00:00
< a-collapse >
< a-collapse-panel header = '{{ i18n "pages.settings.fragmentSett"}}' v-if = "fragment" >
< a-setting-list-item paddings = "small" >
< template # title > Packets< / template >
< template # control >
< a-input type = "text" v-model = "fragmentPackets"
placeholder="1-1 | 1-3 | tlshello | ...">< / a-input >
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > Length< / template >
< template # control >
< a-input type = "text" v-model = "fragmentLength" placeholder = "100-200" > < / a-input >
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > Interval< / template >
< template # control >
< a-input type = "text" v-model = "fragmentInterval" placeholder = "10-20" > < / a-input >
< / template >
< / a-setting-list-item >
2025-10-07 11:46:30 +00:00
< a-setting-list-item paddings = "small" >
< template # title > MaxSplit< / template >
< template # control >
< a-input type = "text" v-model = "fragmentMaxSplit" placeholder = "300-400" > < / a-input >
< / template >
< / a-setting-list-item >
2025-03-24 09:45:15 +00:00
< / a-collapse-panel >
< / a-collapse >
< / a-list-item >
< / a-collapse-panel >
2025-03-25 15:13:17 +00:00
< a-collapse-panel key = "3" header = "Noises" >
2025-03-24 09:45:15 +00:00
< a-setting-list-item paddings = "small" >
< template # title > Noises< / template >
< template # description > {{ i18n "pages.settings.noisesDesc"}}< / template >
< template # control >
< a-switch v-model = "noises" > < / a-switch >
< / template >
< / a-setting-list-item >
2025-04-06 09:40:33 +00:00
< a-list-item v-if = "noises" :style = "{ padding: '10px 20px' }" >
2025-03-24 09:45:15 +00:00
< a-collapse >
< a-collapse-panel v-for = "(noise, index) in noisesArray" :key = "index" :header = "`Noise №${index + 1}`" >
< a-setting-list-item paddings = "small" >
< template # title > Type< / template >
< template # control >
2025-04-06 09:40:33 +00:00
< a-select :value = "noise.type" :style = "{ width: '100%' }"
2025-03-24 09:45:15 +00:00
:dropdown-class-name="themeSwitcher.currentTheme"
@change="(value) => updateNoiseType(index, value)">
2025-10-07 11:46:30 +00:00
< a-select-option :value = "p" :label = "p" v-for = "p in ['rand', 'base64', 'str', 'hex']"
:key="p">
2025-03-24 09:45:15 +00:00
< span > [[ p ]]< / span >
< / a-select-option >
< / a-select >
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > Packet< / template >
< template # control >
< a-input type = "text" :value = "noise.packet"
@input="(value) => updateNoisePacket(index, event.target.value)"
placeholder="5-10">< / a-input >
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > Delay (ms)< / template >
< template # control >
< a-input type = "text" :value = "noise.delay"
@input="(value) => updateNoiseDelay(index, event.target.value)"
placeholder="10-20">< / a-input >
< / template >
< / a-setting-list-item >
2025-08-14 16:38:56 +00:00
< a-setting-list-item paddings = "small" >
< template # title > ApplyTo< / template >
< template # control >
< a-select :value = "noise.applyTo" :style = "{ width: '100%' }"
:dropdown-class-name="themeSwitcher.currentTheme"
@change="(value) => updateNoiseApplyTo(index, value)">
< a-select-option :value = "p" :label = "p" v-for = "p in ['ip', 'ipv4', 'ipv6']" :key = "p" >
< span > [[ p ]]< / span >
< / a-select-option >
< / a-select >
< / template >
< / a-setting-list-item >
2025-04-06 09:40:33 +00:00
< a-space direction = "horizontal" :style = "{ padding: '10px 20px' }" >
2025-03-24 09:45:15 +00:00
< a-button v-if = "noisesArray.length > 1" type = "danger"
@click="removeNoise(index)">Remove< / a-button >
< / a-space >
< / a-collapse-panel >
< / a-collapse >
2025-04-06 09:40:33 +00:00
< a-button v-if = "noises" type = "primary" @ click = "addNoise" :style = "{ marginTop: '10px' }" > Add Noise< / a-button >
2025-03-24 09:45:15 +00:00
< / a-list-item >
< / a-collapse-panel >
2025-03-25 15:13:17 +00:00
< a-collapse-panel key = "4" header = '{{ i18n "pages.settings.mux"}}' >
2025-03-24 09:45:15 +00:00
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.settings.mux"}}< / template >
< template # description > {{ i18n "pages.settings.muxDesc"}}< / template >
< template # control >
< a-switch v-model = "enableMux" > < / a-switch >
< / template >
< / a-setting-list-item >
2025-04-06 09:40:33 +00:00
< a-list-item v-if = "enableMux" :style = "{ padding: '10px 20px' }" >
2025-03-24 09:45:15 +00:00
< a-collapse >
< a-collapse-panel header = '{{ i18n "pages.settings.muxSett"}}' >
< a-setting-list-item paddings = "small" >
< template # title > Concurrency< / template >
< template # control >
< a-input-number v-model = "muxConcurrency" :min = "-1" :max = "1024"
2025-04-06 09:40:33 +00:00
:style="{ width: '100%' }">< / a-input-number >
2025-03-24 09:45:15 +00:00
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > xudp Concurrency< / template >
< template # control >
< a-input-number v-model = "muxXudpConcurrency" :min = "-1" :max = "1024"
2025-04-06 09:40:33 +00:00
:style="{ width: '100%' }">< / a-input-number >
2025-03-24 09:45:15 +00:00
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > xudp UDP 443< / template >
< template # control >
2025-04-06 09:40:33 +00:00
< a-select v-model = "muxXudpProxyUDP443" :style = "{ width: '100%' }"
2025-03-24 09:45:15 +00:00
:dropdown-class-name="themeSwitcher.currentTheme">
< a-select-option :value = "p" :label = "p" v-for = "p in ['reject', 'allow', 'skip']" >
< span > [[ p ]]< / span >
< / a-select-option >
< / a-select >
< / template >
< / a-setting-list-item >
< / a-collapse-panel >
< / a-collapse >
< / a-list-item >
< / a-collapse-panel >
2025-03-25 15:13:17 +00:00
< a-collapse-panel key = "5" header = '{{ i18n "pages.settings.direct" }}' >
2025-03-24 09:45:15 +00:00
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.settings.direct"}}< / template >
< template # description > {{ i18n "pages.settings.directDesc"}}< / template >
< template # control >
< a-switch v-model = "enableDirect" > < / a-switch >
< / template >
< / a-setting-list-item >
2025-04-06 09:40:33 +00:00
< a-list-item v-if = "enableDirect" :style = "{ padding: '10px 20px' }" >
2025-03-24 09:45:15 +00:00
< a-collapse >
< a-collapse-panel header = '{{ i18n "pages.settings.direct"}}' >
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.xray.directips" }}< / template >
< template # control >
2025-04-06 09:40:33 +00:00
< a-select mode = "tags" :style = "{ width: '100%' }" v-model = "directIPs"
2025-03-24 09:45:15 +00:00
:dropdown-class-name="themeSwitcher.currentTheme">
< a-select-option :value = "p.value" :label = "p.label" v-for = "p in directIPsOptions" >
< span > [[ p.label ]]< / span >
< / a-select-option >
< / a-select >
< / template >
< / a-setting-list-item >
< a-setting-list-item paddings = "small" >
< template # title > {{ i18n "pages.xray.directdomains" }}< / template >
< template # control >
2025-04-06 09:40:33 +00:00
< a-select mode = "tags" :style = "{ width: '100%' }" v-model = "directDomains"
2025-03-24 09:45:15 +00:00
:dropdown-class-name="themeSwitcher.currentTheme">
< a-select-option :value = "p.value" :label = "p.label" v-for = "p in diretDomainsOptions" >
< span > [[ p.label ]]< / span >
< / a-select-option >
< / a-select >
< / template >
< / a-setting-list-item >
< / a-collapse-panel >
< / a-collapse >
< / a-list-item >
< / a-collapse-panel >
< / a-collapse >
{{end}}