|
|
@ -1,35 +1,17 @@ |
|
|
|
tag app-bang |
|
|
|
|
|
|
|
def unset_active_bang |
|
|
|
state.active_bang = no |
|
|
|
api.sort_links! |
|
|
|
|
|
|
|
get bang |
|
|
|
state.active_bang or config.data.default_bang |
|
|
|
|
|
|
|
get encoded_bang_query |
|
|
|
"{bang.url}{window.encodeURIComponent(state.query)}" |
|
|
|
|
|
|
|
def handle_bang |
|
|
|
await api.increment_link_frequency bang |
|
|
|
window.location.href = encoded_bang_query |
|
|
|
|
|
|
|
def render |
|
|
|
|
|
|
|
<self> |
|
|
|
css w:100% d:flex fld:column gap:15px |
|
|
|
|
|
|
|
<app-tips> |
|
|
|
|
|
|
|
<.tip-row> |
|
|
|
get tips |
|
|
|
let tips = [] |
|
|
|
|
|
|
|
tips.push <> |
|
|
|
<.tip |
|
|
|
@click=handle_bang |
|
|
|
@hotkey('return').capture.if(!state.loading)=handle_bang |
|
|
|
@click=api.handle_bang |
|
|
|
@hotkey('return').capture.if(!state.loading)=api.handle_bang |
|
|
|
> |
|
|
|
<.tip-hotkey> "Return" |
|
|
|
<.tip-content> "Search" |
|
|
|
|
|
|
|
tips.push <> |
|
|
|
<.tip |
|
|
|
@click=api.handle_add_link |
|
|
|
@hotkey('shift+return').capture.if(!state.loading)=api.handle_add_link |
|
|
@ -47,9 +29,10 @@ tag app-bang |
|
|
|
else |
|
|
|
<span> "\"{sq.join " "}\"" |
|
|
|
|
|
|
|
tips.push <> |
|
|
|
if state.active_bang |
|
|
|
<.tip |
|
|
|
@click=unset_active_bang |
|
|
|
@click=api.unset_active_bang |
|
|
|
@hotkey('esc').capture.if(!state.loading)=unset_active_bang |
|
|
|
> |
|
|
|
<.tip-hotkey> "Esc" |
|
|
@ -59,10 +42,7 @@ tag app-bang |
|
|
|
<.tip-hotkey> "Paste (If Input Empty)" |
|
|
|
<.tip-content> "Instant Search" |
|
|
|
|
|
|
|
<app-tips-more$tips-more> |
|
|
|
|
|
|
|
<.tip-row> |
|
|
|
|
|
|
|
tips.push <> |
|
|
|
<.tip |
|
|
|
@click.if(!state.loading)=api.toggle_effective_names |
|
|
|
@hotkey('tab').capture.if(!state.loading)=api.toggle_effective_names |
|
|
@ -70,10 +50,9 @@ tag app-bang |
|
|
|
<.tip-hotkey> "Tab" |
|
|
|
<.tip-content> "Toggle Effective Names" |
|
|
|
|
|
|
|
<.tip |
|
|
|
@click.if(!loading)=api.handle_cut |
|
|
|
> |
|
|
|
if math_result |
|
|
|
tips.push <> |
|
|
|
<.tip @click.if(!loading)=api.handle_cut> |
|
|
|
if api.math_result |
|
|
|
<.tip-hotkey> "Cut (Math, If No Selection)" |
|
|
|
<.tip-content> "Cut Math Result" |
|
|
|
else |
|
|
@ -81,28 +60,36 @@ tag app-bang |
|
|
|
<.tip-content> "Cut All Text" |
|
|
|
|
|
|
|
if state.active_bang |
|
|
|
tips.push <> |
|
|
|
<.tip.noclick> |
|
|
|
<.tip-hotkey> "Paste (If Input Empty)" |
|
|
|
<.tip-content> "Instant Search" |
|
|
|
else |
|
|
|
<.tip.placeholder> |
|
|
|
|
|
|
|
unless $tips-more.active |
|
|
|
<.bang.selected@click=handle_bang> |
|
|
|
tips |
|
|
|
|
|
|
|
def render |
|
|
|
|
|
|
|
<self> |
|
|
|
css w:100% d:flex fld:column gap:15px |
|
|
|
|
|
|
|
<app-tips$tips tips=tips> |
|
|
|
|
|
|
|
unless $tips.show_more |
|
|
|
<.bang.selected@click=api.handle_bang> |
|
|
|
css d:flex fld:row jc:space-between ai:center |
|
|
|
px:16px py:11px rd:5px cursor:pointer c:#FAD4AB |
|
|
|
|
|
|
|
<.link-left> |
|
|
|
css d:flex fl:1 |
|
|
|
|
|
|
|
<img.link-icon src=bang.icon> |
|
|
|
<img.link-icon src=api.bang.icon> |
|
|
|
css w:20px h:20px mr:10px rd:3px |
|
|
|
|
|
|
|
<.display-name> encoded_bang_query |
|
|
|
<.display-name> api.encoded_bang_query |
|
|
|
css fs:20px word-break:break-all |
|
|
|
|
|
|
|
<.link-right> |
|
|
|
css d:flex fld:row jc:space-between ai:center |
|
|
|
|
|
|
|
<.frequency> bang.frequency |
|
|
|
<.frequency> api.bang.frequency |
|
|
|
css fs:15px ml:7px |
|
|
|