fe / bt-source /panel /BTPanel /static /editor /ext-options.js
GGSheng's picture
feat: deploy Gemma 4 to hf space
3a5cf48 verified
ace.define(
'ace/ext/menu_tools/overlay_page',
['require', 'exports', 'module', 'ace/lib/dom'],
function (e, t, n) {
'use strict'
var r = e('../../lib/dom'),
i =
'#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 100000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {vertical-align: middle;}.ace_optionsMenuEntry button[ace_selected_button=true] {background: #e7e7e7;box-shadow: 1px 0px 2px 0px #adadad inset;border-color: #adadad;}.ace_optionsMenuEntry button {background: white;border: 1px solid lightgray;margin: 0px;}.ace_optionsMenuEntry button:hover{background: #f0f0f0;}'
r.importCssString(i),
(n.exports.overlayPage = function (t, n, r) {
function o(e) {
e.keyCode === 27 && u()
}
function u() {
if (!i) return
document.removeEventListener('keydown', o),
i.parentNode.removeChild(i),
t && t.focus(),
(i = null),
r && r()
}
function a(e) {
;(s = e), e && ((i.style.pointerEvents = 'none'), (n.style.pointerEvents = 'auto'))
}
var i = document.createElement('div'),
s = !1
return (
(i.style.cssText =
'margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; ' +
(t ? 'background-color: rgba(0, 0, 0, 0.3);' : '')),
i.addEventListener('click', function (e) {
s || u()
}),
document.addEventListener('keydown', o),
n.addEventListener('click', function (e) {
e.stopPropagation()
}),
i.appendChild(n),
document.body.appendChild(i),
t && t.blur(),
{ close: u, setIgnoreFocusOut: a }
)
})
}
),
ace.define('ace/ext/modelist', ['require', 'exports', 'module'], function (e, t, n) {
'use strict'
function i(e) {
var t = a.text,
n = e.split(/[\/\\]/).pop()
for (var i = 0; i < r.length; i++)
if (r[i].supportsFile(n)) {
t = r[i]
break
}
return t
}
var r = [],
s = function (e, t, n) {
;(this.name = e), (this.caption = t), (this.mode = 'ace/mode/' + e), (this.extensions = n)
var r
;/\^/.test(n)
? (r =
n.replace(/\|(\^)?/g, function (e, t) {
return '$|' + (t ? '^' : '^.*\\.')
}) + '$')
: (r = '^.*\\.(' + n + ')$'),
(this.extRe = new RegExp(r, 'gi'))
}
s.prototype.supportsFile = function (e) {
return e.match(this.extRe)
}
var o = {
ABAP: ['abap'],
ABC: ['abc'],
ActionScript: ['as'],
ADA: ['ada|adb'],
Alda: ['alda'],
Apache_Conf: ['^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd'],
Apex: ['apex|cls|trigger|tgr'],
AQL: ['aql'],
AsciiDoc: ['asciidoc|adoc'],
ASL: ['dsl|asl'],
Assembly_x86: ['asm|a'],
AutoHotKey: ['ahk'],
BatchFile: ['bat|cmd'],
C_Cpp: ['cpp|c|cc|cxx|h|hh|hpp|ino'],
C9Search: ['c9search_results'],
Cirru: ['cirru|cr'],
Clojure: ['clj|cljs'],
Cobol: ['CBL|COB'],
coffee: ['coffee|cf|cson|^Cakefile'],
ColdFusion: ['cfm'],
Crystal: ['cr'],
CSharp: ['cs'],
Csound_Document: ['csd'],
Csound_Orchestra: ['orc'],
Csound_Score: ['sco'],
CSS: ['css'],
Curly: ['curly'],
D: ['d|di'],
Dart: ['dart'],
Diff: ['diff|patch'],
Dockerfile: ['^Dockerfile'],
Dot: ['dot'],
Drools: ['drl'],
Edifact: ['edi'],
Eiffel: ['e|ge'],
EJS: ['ejs'],
Elixir: ['ex|exs'],
Elm: ['elm'],
Erlang: ['erl|hrl'],
Forth: ['frt|fs|ldr|fth|4th'],
Fortran: ['f|f90'],
FSharp: ['fsi|fs|ml|mli|fsx|fsscript'],
FSL: ['fsl'],
FTL: ['ftl'],
Gcode: ['gcode'],
Gherkin: ['feature'],
Gitignore: ['^.gitignore'],
Glsl: ['glsl|frag|vert'],
Gobstones: ['gbs'],
golang: ['go'],
GraphQLSchema: ['gql'],
Groovy: ['groovy'],
HAML: ['haml'],
Handlebars: ['hbs|handlebars|tpl|mustache'],
Haskell: ['hs'],
Haskell_Cabal: ['cabal'],
haXe: ['hx'],
Hjson: ['hjson'],
HTML: ['html|htm|xhtml|vue|we|wpy'],
HTML_Elixir: ['eex|html.eex'],
HTML_Ruby: ['erb|rhtml|html.erb'],
INI: ['ini|conf|cfg|prefs'],
Io: ['io'],
Jack: ['jack'],
Jade: ['jade|pug'],
Java: ['java'],
JavaScript: ['js|jsm|jsx'],
JSON: ['json'],
JSON5: ['json5'],
JSONiq: ['jq'],
JSP: ['jsp'],
JSSM: ['jssm|jssm_state'],
JSX: ['jsx'],
Julia: ['jl'],
Kotlin: ['kt|kts'],
LaTeX: ['tex|latex|ltx|bib'],
LESS: ['less'],
Liquid: ['liquid'],
Lisp: ['lisp'],
LiveScript: ['ls'],
LogiQL: ['logic|lql'],
LSL: ['lsl'],
Lua: ['lua'],
LuaPage: ['lp'],
Lucene: ['lucene'],
Makefile: ['^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make'],
Markdown: ['md|markdown'],
Mask: ['mask'],
MATLAB: ['matlab'],
Maze: ['mz'],
MediaWiki: ['wiki|mediawiki'],
MEL: ['mel'],
MIXAL: ['mixal'],
MUSHCode: ['mc|mush'],
MySQL: ['mysql'],
Nginx: ['nginx|conf'],
Nim: ['nim'],
Nix: ['nix'],
NSIS: ['nsi|nsh'],
Nunjucks: ['nunjucks|nunjs|nj|njk'],
ObjectiveC: ['m|mm'],
OCaml: ['ml|mli'],
Pascal: ['pas|p'],
Perl: ['pl|pm'],
Perl6: ['p6|pl6|pm6'],
pgSQL: ['pgsql'],
PHP: ['php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module'],
PHP_Laravel_blade: ['blade.php'],
Pig: ['pig'],
Powershell: ['ps1'],
Praat: ['praat|praatscript|psc|proc'],
Prisma: ['prisma'],
Prolog: ['plg|prolog'],
Properties: ['properties'],
Protobuf: ['proto'],
Puppet: ['epp|pp'],
Python: ['py'],
QML: ['qml'],
R: ['r'],
Razor: ['cshtml|asp'],
RDoc: ['Rd'],
Red: ['red|reds'],
RHTML: ['Rhtml'],
RST: ['rst'],
Ruby: ['rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile'],
Rust: ['rs'],
SASS: ['sass'],
SCAD: ['scad'],
Scala: ['scala|sbt'],
Scheme: ['scm|sm|rkt|oak|scheme'],
SCSS: ['scss'],
SH: ['sh|bash|^.bashrc'],
SJS: ['sjs'],
Slim: ['slim|skim'],
Smarty: ['smarty|tpl'],
snippets: ['snippets'],
Soy_Template: ['soy'],
Space: ['space'],
SQL: ['sql'],
SQLServer: ['sqlserver'],
Stylus: ['styl|stylus'],
SVG: ['svg'],
Swift: ['swift'],
Tcl: ['tcl'],
Terraform: ['tf', 'tfvars', 'terragrunt'],
Tex: ['tex'],
Text: ['txt'],
Textile: ['textile'],
Toml: ['toml'],
TSX: ['tsx'],
Twig: ['latte|twig|swig'],
Typescript: ['ts|typescript|str'],
Vala: ['vala'],
VBScript: ['vbs|vb'],
Velocity: ['vm'],
Verilog: ['v|vh|sv|svh'],
VHDL: ['vhd|vhdl'],
Visualforce: ['vfp|component|page'],
Wollok: ['wlk|wpgm|wtest'],
XML: ['xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml'],
XQuery: ['xq'],
YAML: ['yaml|yml'],
Zeek: ['zeek|bro'],
Django: ['html'],
},
u = {
ObjectiveC: 'Objective-C',
CSharp: 'C#',
golang: 'Go',
C_Cpp: 'C and C++',
Csound_Document: 'Csound Document',
Csound_Orchestra: 'Csound',
Csound_Score: 'Csound Score',
coffee: 'CoffeeScript',
HTML_Ruby: 'HTML (Ruby)',
HTML_Elixir: 'HTML (Elixir)',
FTL: 'FreeMarker',
PHP_Laravel_blade: 'PHP (Blade Template)',
Perl6: 'Perl 6',
AutoHotKey: 'AutoHotkey / AutoIt',
},
a = {}
for (var f in o) {
var l = o[f],
c = (u[f] || f).replace(/_/g, ' '),
h = f.toLowerCase(),
p = new s(h, c, l[0])
;(a[h] = p), r.push(p)
}
n.exports = { getModeForPath: i, modes: r, modesByName: a }
}),
ace.define('ace/ext/themelist', ['require', 'exports', 'module'], function (e, t, n) {
'use strict'
var r = [
['Chrome'],
['Clouds'],
['Crimson Editor'],
['Dawn'],
['Dreamweaver'],
['Eclipse'],
['GitHub'],
['IPlastic'],
['Solarized Light'],
['TextMate'],
['Tomorrow'],
['Xcode'],
['Kuroir'],
['KatzenMilch'],
['SQL Server', 'sqlserver', 'light'],
['Ambiance', 'ambiance', 'dark'],
['Chaos', 'chaos', 'dark'],
['Clouds Midnight', 'clouds_midnight', 'dark'],
['Dracula', '', 'dark'],
['Cobalt', 'cobalt', 'dark'],
['Gruvbox', 'gruvbox', 'dark'],
['Green on Black', 'gob', 'dark'],
['idle Fingers', 'idle_fingers', 'dark'],
['krTheme', 'kr_theme', 'dark'],
['Merbivore', 'merbivore', 'dark'],
['Merbivore Soft', 'merbivore_soft', 'dark'],
['Mono Industrial', 'mono_industrial', 'dark'],
['Monokai', 'monokai', 'dark'],
['Nord Dark', 'nord_dark', 'dark'],
['Pastel on dark', 'pastel_on_dark', 'dark'],
['Solarized Dark', 'solarized_dark', 'dark'],
['Terminal', 'terminal', 'dark'],
['Tomorrow Night', 'tomorrow_night', 'dark'],
['Tomorrow Night Blue', 'tomorrow_night_blue', 'dark'],
['Tomorrow Night Bright', 'tomorrow_night_bright', 'dark'],
['Tomorrow Night 80s', 'tomorrow_night_eighties', 'dark'],
['Twilight', 'twilight', 'dark'],
['Vibrant Ink', 'vibrant_ink', 'dark'],
]
;(t.themesByName = {}),
(t.themes = r.map(function (e) {
var n = e[1] || e[0].replace(/ /g, '_').toLowerCase(),
r = { caption: e[0], theme: 'ace/theme/' + n, isDark: e[2] == 'dark', name: n }
return (t.themesByName[n] = r), r
}))
}),
ace.define(
'ace/ext/options',
[
'require',
'exports',
'module',
'ace/ext/menu_tools/overlay_page',
'ace/lib/dom',
'ace/lib/oop',
'ace/config',
'ace/lib/event_emitter',
'ace/ext/modelist',
'ace/ext/themelist',
],
function (e, t, n) {
'use strict'
e('./menu_tools/overlay_page')
var r = e('../lib/dom'),
i = e('../lib/oop'),
s = e('../config'),
o = e('../lib/event_emitter').EventEmitter,
u = r.buildDom,
a = e('./modelist'),
f = e('./themelist'),
l = { Bright: [], Dark: [] }
f.themes.forEach(function (e) {
l[e.isDark ? 'Dark' : 'Bright'].push({ caption: e.caption, value: e.theme })
})
var c = a.modes.map(function (e) {
return { caption: e.caption, value: e.mode }
}),
h = {
Main: {
Mode: { path: 'mode', type: 'select', items: c },
Theme: { path: 'theme', type: 'select', items: l },
Keybinding: {
type: 'buttonBar',
path: 'keyboardHandler',
items: [
{ caption: 'Ace', value: null },
{ caption: 'Vim', value: 'ace/keyboard/vim' },
{ caption: 'Emacs', value: 'ace/keyboard/emacs' },
{ caption: 'Sublime', value: 'ace/keyboard/sublime' },
{ caption: 'VSCode', value: 'ace/keyboard/vscode' },
],
},
'Font Size': {
path: 'fontSize',
type: 'number',
defaultValue: 12,
defaults: [
{ caption: '12px', value: 12 },
{ caption: '24px', value: 24 },
],
},
'Soft Wrap': {
type: 'buttonBar',
path: 'wrap',
items: [
{ caption: 'Off', value: 'off' },
{ caption: 'View', value: 'free' },
{ caption: 'margin', value: 'printMargin' },
{ caption: '40', value: '40' },
],
},
'Cursor Style': {
path: 'cursorStyle',
items: [
{ caption: 'Ace', value: 'ace' },
{ caption: 'Slim', value: 'slim' },
{ caption: 'Smooth', value: 'smooth' },
{ caption: 'Smooth And Slim', value: 'smooth slim' },
{ caption: 'Wide', value: 'wide' },
],
},
Folding: {
path: 'foldStyle',
items: [
{ caption: 'Manual', value: 'manual' },
{ caption: 'Mark begin', value: 'markbegin' },
{ caption: 'Mark begin and end', value: 'markbeginend' },
],
},
'Soft Tabs': [
{ path: 'useSoftTabs' },
{ ariaLabel: 'Tab Size', path: 'tabSize', type: 'number', values: [2, 3, 4, 8, 16] },
],
Overscroll: {
type: 'buttonBar',
path: 'scrollPastEnd',
items: [
{ caption: 'None', value: 0 },
{ caption: 'Half', value: 0.5 },
{ caption: 'Full', value: 1 },
],
},
},
More: {
'Atomic soft tabs': { path: 'navigateWithinSoftTabs' },
'Enable Behaviours': { path: 'behavioursEnabled' },
'Wrap with quotes': { path: 'wrapBehavioursEnabled' },
'Enable Auto Indent': { path: 'enableAutoIndent' },
'Full Line Selection': {
type: 'checkbox',
values: 'text|line',
path: 'selectionStyle',
},
'Highlight Active Line': { path: 'highlightActiveLine' },
'Show Invisibles': { path: 'showInvisibles' },
'Show Indent Guides': { path: 'displayIndentGuides' },
'Persistent HScrollbar': { path: 'hScrollBarAlwaysVisible' },
'Persistent VScrollbar': { path: 'vScrollBarAlwaysVisible' },
'Animate scrolling': { path: 'animatedScroll' },
'Show Gutter': { path: 'showGutter' },
'Show Line Numbers': { path: 'showLineNumbers' },
'Relative Line Numbers': { path: 'relativeLineNumbers' },
'Fixed Gutter Width': { path: 'fixedWidthGutter' },
'Show Print Margin': [
{ path: 'showPrintMargin' },
{ ariaLabel: 'Print Margin', type: 'number', path: 'printMarginColumn' },
],
'Indented Soft Wrap': { path: 'indentedSoftWrap' },
'Highlight selected word': { path: 'highlightSelectedWord' },
'Fade Fold Widgets': { path: 'fadeFoldWidgets' },
'Use textarea for IME': { path: 'useTextareaForIME' },
'Merge Undo Deltas': {
path: 'mergeUndoDeltas',
items: [
{ caption: 'Always', value: 'always' },
{ caption: 'Never', value: 'false' },
{ caption: 'Timed', value: 'true' },
],
},
'Elastic Tabstops': { path: 'useElasticTabstops' },
'Incremental Search': { path: 'useIncrementalSearch' },
'Read-only': { path: 'readOnly' },
'Copy without selection': { path: 'copyWithEmptySelection' },
'Live Autocompletion': { path: 'enableLiveAutocompletion' },
},
},
p = function (e, t) {
;(this.editor = e),
(this.container = t || document.createElement('div')),
(this.groups = []),
(this.options = {})
}
;(function () {
i.implement(this, o),
(this.add = function (e) {
e.Main && i.mixin(h.Main, e.Main), e.More && i.mixin(h.More, e.More)
}),
(this.render = function () {
;(this.container.innerHTML = ''),
u(
[
'table',
{ role: 'presentation', id: 'controls' },
this.renderOptionGroup(h.Main),
[
'tr',
null,
[
'td',
{ colspan: 2 },
[
'table',
{ role: 'presentation', id: 'more-controls' },
this.renderOptionGroup(h.More),
],
],
],
['tr', null, ['td', { colspan: 2 }, 'version ' + s.version]],
],
this.container
)
}),
(this.renderOptionGroup = function (e) {
return Object.keys(e)
.map(function (t, n) {
var r = e[t]
return r.position || (r.position = n / 1e4), r.label || (r.label = t), r
})
.sort(function (e, t) {
return e.position - t.position
})
.map(function (e) {
return this.renderOption(e.label, e)
}, this)
}),
(this.renderOptionControl = function (e, t) {
var n = this
if (Array.isArray(t))
return t.map(function (t) {
return n.renderOptionControl(e, t)
})
var r,
i = n.getOption(t)
t.values &&
t.type != 'checkbox' &&
(typeof t.values == 'string' && (t.values = t.values.split('|')),
(t.items = t.values.map(function (e) {
return { value: e, name: e }
})))
if (t.type == 'buttonBar')
r = [
'div',
{ role: 'group', 'aria-labelledby': t.path + '-label' },
t.items.map(function (e) {
return [
'button',
{
value: e.value,
ace_selected_button: i == e.value,
'aria-pressed': i == e.value,
onclick: function () {
n.setOption(t, e.value)
var r = this.parentNode.querySelectorAll('[ace_selected_button]')
for (var i = 0; i < r.length; i++)
r[i].removeAttribute('ace_selected_button'),
r[i].setAttribute('aria-pressed', !1)
this.setAttribute('ace_selected_button', !0),
this.setAttribute('aria-pressed', !0)
},
},
e.desc || e.caption || e.name,
]
}),
]
else if (t.type == 'number')
(r = [
'input',
{
type: 'number',
value: i || t.defaultValue,
style: 'width:3em',
oninput: function () {
n.setOption(t, parseInt(this.value))
},
},
]),
t.ariaLabel ? (r[1]['aria-label'] = t.ariaLabel) : (r[1].id = e),
t.defaults &&
(r = [
r,
t.defaults.map(function (e) {
return [
'button',
{
onclick: function () {
var t = this.parentNode.firstChild
;(t.value = e.value), t.oninput()
},
},
e.caption,
]
}),
])
else if (t.items) {
var s = function (e) {
return e.map(function (e) {
return ['option', { value: e.value || e.name }, e.desc || e.caption || e.name]
})
},
o = Array.isArray(t.items)
? s(t.items)
: Object.keys(t.items).map(function (e) {
return ['optgroup', { label: e }, s(t.items[e])]
})
r = [
'select',
{
id: e,
value: i,
onchange: function () {
n.setOption(t, this.value)
},
},
o,
]
} else
typeof t.values == 'string' && (t.values = t.values.split('|')),
t.values && (i = i == t.values[1]),
(r = [
'input',
{
type: 'checkbox',
id: e,
checked: i || null,
onchange: function () {
var e = this.checked
t.values && (e = t.values[e ? 1 : 0]), n.setOption(t, e)
},
},
]),
t.type == 'checkedNumber' && (r = [r, []])
return r
}),
(this.renderOption = function (e, t) {
if (t.path && !t.onchange && !this.editor.$options[t.path]) return
var n = Array.isArray(t) ? t[0].path : t.path
this.options[n] = t
var r = '-' + n,
i = n + '-label',
s = this.renderOptionControl(r, t)
return [
'tr',
{ class: 'ace_optionsMenuEntry' },
['td', ['label', { for: r, id: i }, e]],
['td', s],
]
}),
(this.setOption = function (e, t) {
typeof e == 'string' && (e = this.options[e]),
t == 'false' && (t = !1),
t == 'true' && (t = !0),
t == 'null' && (t = null),
t == 'undefined' && (t = undefined),
typeof t == 'string' && parseFloat(t).toString() == t && (t = parseFloat(t)),
e.onchange ? e.onchange(t) : e.path && this.editor.setOption(e.path, t),
this._signal('setOption', { name: e.path, value: t })
}),
(this.getOption = function (e) {
return e.getValue ? e.getValue() : this.editor.getOption(e.path)
})
}).call(p.prototype),
(t.OptionPanel = p)
}
)
;(function () {
ace.require(['ace/ext/options'], function (m) {
if (typeof module == 'object' && typeof exports == 'object' && module) {
module.exports = m
}
})
})()