test / bt-source /panel /BTPanel /static /editor /ext-searchbox.js
GGSheng's picture
feat: deploy Gemma 4 to hf space
08c964e verified
ace.define(
'ace/ext/searchbox',
[
'require',
'exports',
'module',
'ace/lib/dom',
'ace/lib/lang',
'ace/lib/event',
'ace/keyboard/hash_handler',
'ace/lib/keys',
],
function (e, t, n) {
'use strict'
var r = e('../lib/dom'),
i = e('../lib/lang'),
s = e('../lib/event'),
o =
'.ace_search {background-color: #ddd;color: var(--el-color-text-secondary);border: 1px solid #cbcbcb;border-top: 0 none;overflow: hidden;margin: 0;padding: 4px 6px 0 4px;position: absolute;top: 0;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {margin: 0 20px 4px 0;overflow: hidden;line-height: 1.9;}.ace_replace_form {margin-right: 0;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {border-radius: 3px 0 0 3px;background-color: white;color: black;border: 1px solid #cbcbcb;border-right: 0 none;outline: 0;padding: 0;font-size: inherit;margin: 0;line-height: inherit;padding: 0 6px;min-width: 17em;vertical-align: top;min-height: 1.8em;box-sizing: content-box;}.ace_searchbtn {border: 1px solid #cbcbcb;line-height: inherit;display: inline-block;padding: 0 6px;background: #fff;border-right: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;margin: 0;position: relative;color: var(--el-color-text-secondary);}.ace_searchbtn:last-child {border-radius: 0 3px 3px 0;border-right: 1px solid #cbcbcb;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn:hover {background-color: #eef1f6;}.ace_searchbtn.prev, .ace_searchbtn.next {padding: 0px 0.7em}.ace_searchbtn.prev:after, .ace_searchbtn.next:after {content: "";border: solid 2px #888;width: 0.5em;height: 0.5em;border-width: 2px 0 0 2px;display:inline-block;transform: rotate(-45deg);}.ace_searchbtn.next:after {border-width: 0 2px 2px 0 ;}.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;font: 16px/16px Arial;padding: 0;height: 14px;width: 14px;top: 9px;right: 7px;position: absolute;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;box-sizing: border-box!important;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;clear: both;}.ace_search_counter {float: left;font-family: arial;padding: 0 8px;}',
u = e('../keyboard/hash_handler').HashHandler,
a = e('../lib/keys'),
f = 999
r.importCssString(o, 'ace_searchbox')
var l = function (e, t, n) {
var i = r.createElement('div')
r.buildDom(
[
'div',
{ class: 'ace_search right' },
['span', { action: 'hide', class: 'ace_searchbtn_close' }],
[
'div',
{ class: 'ace_search_form' },
[
'input',
{ class: 'ace_search_field', placeholder: 'Search for', spellcheck: 'false' },
],
['span', { action: 'findPrev', class: 'ace_searchbtn prev' }, '\u200b'],
['span', { action: 'findNext', class: 'ace_searchbtn next' }, '\u200b'],
['span', { action: 'findAll', class: 'ace_searchbtn', title: 'Alt-Enter' }, 'All'],
],
[
'div',
{ class: 'ace_replace_form' },
[
'input',
{ class: 'ace_search_field', placeholder: 'Replace with', spellcheck: 'false' },
],
['span', { action: 'replaceAndFindNext', class: 'ace_searchbtn' }, 'Replace'],
['span', { action: 'replaceAll', class: 'ace_searchbtn' }, 'All'],
],
[
'div',
{ class: 'ace_search_options' },
[
'span',
{
action: 'toggleReplace',
class: 'ace_button',
title: 'Toggle Replace mode',
style: 'float:left;margin-top:-2px;padding:0 5px;',
},
'+',
],
['span', { class: 'ace_search_counter' }],
[
'span',
{ action: 'toggleRegexpMode', class: 'ace_button', title: 'RegExp Search' },
'.*',
],
[
'span',
{ action: 'toggleCaseSensitive', class: 'ace_button', title: 'CaseSensitive Search' },
'Aa',
],
[
'span',
{ action: 'toggleWholeWords', class: 'ace_button', title: 'Whole Word Search' },
'\\b',
],
[
'span',
{ action: 'searchInSelection', class: 'ace_button', title: 'Search In Selection' },
'S',
],
],
],
i
),
(this.element = i.firstChild),
(this.setSession = this.setSession.bind(this)),
this.$init(),
this.setEditor(e),
r.importCssString(o, 'ace_searchbox', e.container)
}
;(function () {
;(this.setEditor = function (e) {
;(e.searchBox = this), e.renderer.scroller.appendChild(this.element), (this.editor = e)
}),
(this.setSession = function (e) {
;(this.searchRange = null), this.$syncOptions(!0)
}),
(this.$initElements = function (e) {
;(this.searchBox = e.querySelector('.ace_search_form')),
(this.replaceBox = e.querySelector('.ace_replace_form')),
(this.searchOption = e.querySelector('[action=searchInSelection]')),
(this.replaceOption = e.querySelector('[action=toggleReplace]')),
(this.regExpOption = e.querySelector('[action=toggleRegexpMode]')),
(this.caseSensitiveOption = e.querySelector('[action=toggleCaseSensitive]')),
(this.wholeWordOption = e.querySelector('[action=toggleWholeWords]')),
(this.searchInput = this.searchBox.querySelector('.ace_search_field')),
(this.replaceInput = this.replaceBox.querySelector('.ace_search_field')),
(this.searchCounter = e.querySelector('.ace_search_counter'))
}),
(this.$init = function () {
var e = this.element
this.$initElements(e)
var t = this
s.addListener(e, 'mousedown', function (e) {
setTimeout(function () {
t.activeInput.focus()
}, 0),
s.stopPropagation(e)
}),
s.addListener(e, 'click', function (e) {
var n = e.target || e.srcElement,
r = n.getAttribute('action')
r && t[r] ? t[r]() : t.$searchBarKb.commands[r] && t.$searchBarKb.commands[r].exec(t),
s.stopPropagation(e)
}),
s.addCommandKeyListener(e, function (e, n, r) {
var i = a.keyCodeToString(r),
o = t.$searchBarKb.findKeyCommand(n, i)
o && o.exec && (o.exec(t), s.stopEvent(e))
}),
(this.$onChange = i.delayedCall(function () {
t.find(!1, !1)
})),
s.addListener(this.searchInput, 'input', function () {
t.$onChange.schedule(20)
}),
s.addListener(this.searchInput, 'focus', function () {
;(t.activeInput = t.searchInput), t.searchInput.value && t.highlight()
}),
s.addListener(this.replaceInput, 'focus', function () {
;(t.activeInput = t.replaceInput), t.searchInput.value && t.highlight()
})
}),
(this.$closeSearchBarKb = new u([
{
bindKey: 'Esc',
name: 'closeSearchBar',
exec: function (e) {
e.searchBox.hide()
},
},
])),
(this.$searchBarKb = new u()),
this.$searchBarKb.bindKeys({
'Ctrl-f|Command-f': function (e) {
var t = (e.isReplace = !e.isReplace)
;(e.replaceBox.style.display = t ? '' : 'none'),
(e.replaceOption.checked = !1),
e.$syncOptions(),
e.searchInput.focus()
},
'Ctrl-H|Command-Option-F': function (e) {
if (e.editor.getReadOnly()) return
;(e.replaceOption.checked = !0), e.$syncOptions(), e.replaceInput.focus()
},
'Ctrl-G|Command-G': function (e) {
e.findNext()
},
'Ctrl-Shift-G|Command-Shift-G': function (e) {
e.findPrev()
},
esc: function (e) {
setTimeout(function () {
e.hide()
})
},
Return: function (e) {
e.activeInput == e.replaceInput && e.replace(), e.findNext()
},
'Shift-Return': function (e) {
e.activeInput == e.replaceInput && e.replace(), e.findPrev()
},
'Alt-Return': function (e) {
e.activeInput == e.replaceInput && e.replaceAll(), e.findAll()
},
Tab: function (e) {
;(e.activeInput == e.replaceInput ? e.searchInput : e.replaceInput).focus()
},
}),
this.$searchBarKb.addCommands([
{
name: 'toggleRegexpMode',
bindKey: { win: 'Alt-R|Alt-/', mac: 'Ctrl-Alt-R|Ctrl-Alt-/' },
exec: function (e) {
;(e.regExpOption.checked = !e.regExpOption.checked), e.$syncOptions()
},
},
{
name: 'toggleCaseSensitive',
bindKey: { win: 'Alt-C|Alt-I', mac: 'Ctrl-Alt-R|Ctrl-Alt-I' },
exec: function (e) {
;(e.caseSensitiveOption.checked = !e.caseSensitiveOption.checked), e.$syncOptions()
},
},
{
name: 'toggleWholeWords',
bindKey: { win: 'Alt-B|Alt-W', mac: 'Ctrl-Alt-B|Ctrl-Alt-W' },
exec: function (e) {
;(e.wholeWordOption.checked = !e.wholeWordOption.checked), e.$syncOptions()
},
},
{
name: 'toggleReplace',
exec: function (e) {
;(e.replaceOption.checked = !e.replaceOption.checked), e.$syncOptions()
},
},
{
name: 'searchInSelection',
exec: function (e) {
;(e.searchOption.checked = !e.searchRange),
e.setSearchRange(e.searchOption.checked && e.editor.getSelectionRange()),
e.$syncOptions()
},
},
]),
(this.setSearchRange = function (e) {
;(this.searchRange = e),
e
? (this.searchRangeMarker = this.editor.session.addMarker(e, 'ace_active-line'))
: this.searchRangeMarker &&
(this.editor.session.removeMarker(this.searchRangeMarker),
(this.searchRangeMarker = null))
}),
(this.$syncOptions = function (e) {
r.setCssClass(this.replaceOption, 'checked', this.searchRange),
r.setCssClass(this.searchOption, 'checked', this.searchOption.checked),
(this.replaceOption.textContent = this.replaceOption.checked ? '-' : '+'),
r.setCssClass(this.regExpOption, 'checked', this.regExpOption.checked),
r.setCssClass(this.wholeWordOption, 'checked', this.wholeWordOption.checked),
r.setCssClass(this.caseSensitiveOption, 'checked', this.caseSensitiveOption.checked)
var t = this.editor.getReadOnly()
;(this.replaceOption.style.display = t ? 'none' : ''),
(this.replaceBox.style.display = this.replaceOption.checked && !t ? '' : 'none'),
this.find(!1, !1, e)
}),
(this.highlight = function (e) {
this.editor.session.highlight(e || this.editor.$search.$options.re),
this.editor.renderer.updateBackMarkers()
}),
(this.find = function (e, t, n) {
var i = this.editor.find(this.searchInput.value, {
skipCurrent: e,
backwards: t,
wrap: !0,
regExp: this.regExpOption.checked,
caseSensitive: this.caseSensitiveOption.checked,
wholeWord: this.wholeWordOption.checked,
preventScroll: n,
range: this.searchRange,
}),
s = !i && this.searchInput.value
r.setCssClass(this.searchBox, 'ace_nomatch', s),
this.editor._emit('findSearchBox', { match: !s }),
this.highlight(),
this.updateCounter()
}),
(this.updateCounter = function () {
var e = this.editor,
t = e.$search.$options.re,
n = 0,
r = 0
if (t) {
var i = this.searchRange ? e.session.getTextRange(this.searchRange) : e.getValue(),
s = e.session.doc.positionToIndex(e.selection.anchor)
this.searchRange && (s -= e.session.doc.positionToIndex(this.searchRange.start))
var o = (t.lastIndex = 0),
u
while ((u = t.exec(i))) {
n++, (o = u.index), o <= s && r++
if (n > f) break
if (!u[0]) {
t.lastIndex = o += 1
if (o >= i.length) break
}
}
}
this.searchCounter.textContent = r + ' of ' + (n > f ? f + '+' : n)
}),
(this.findNext = function () {
this.find(!0, !1)
}),
(this.findPrev = function () {
this.find(!0, !0)
}),
(this.findAll = function () {
var e = this.editor.findAll(this.searchInput.value, {
regExp: this.regExpOption.checked,
caseSensitive: this.caseSensitiveOption.checked,
wholeWord: this.wholeWordOption.checked,
}),
t = !e && this.searchInput.value
r.setCssClass(this.searchBox, 'ace_nomatch', t),
this.editor._emit('findSearchBox', { match: !t }),
this.highlight(),
this.hide()
}),
(this.replace = function () {
this.editor.getReadOnly() || this.editor.replace(this.replaceInput.value)
}),
(this.replaceAndFindNext = function () {
this.editor.getReadOnly() ||
(this.editor.replace(this.replaceInput.value), this.findNext())
}),
(this.replaceAll = function () {
this.editor.getReadOnly() || this.editor.replaceAll(this.replaceInput.value)
}),
(this.hide = function () {
;(this.active = !1),
this.setSearchRange(null),
this.editor.off('changeSession', this.setSession),
(this.element.style.display = 'none'),
this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),
this.editor.focus()
}),
(this.show = function (e, t) {
;(this.active = !0),
this.editor.on('changeSession', this.setSession),
(this.element.style.display = ''),
(this.replaceOption.checked = t),
e && (this.searchInput.value = e),
this.searchInput.focus(),
this.searchInput.select(),
this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),
this.$syncOptions(!0)
}),
(this.isFocused = function () {
var e = document.activeElement
return e == this.searchInput || e == this.replaceInput
})
}).call(l.prototype),
(t.SearchBox = l),
(t.Search = function (e, t) {
var n = e.searchBox || new l(e)
n.show(e.session.getTextRange(), t)
})
}
)
;(function () {
ace.require(['ace/ext/searchbox'], function (m) {
if (typeof module == 'object' && typeof exports == 'object' && module) {
module.exports = m
}
})
})()