mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 22:42:25 -04:00
Make tags and tag suggestions able to be styled by add-ons (#2941)
* Expose tag name to add-ons via data attribute * Expose autocomplete items to add-ons as data attributes * Use common data-addon* prefix for attributes
This commit is contained in:
parent
7d37fe3daf
commit
db9aaba929
4 changed files with 14 additions and 1 deletions
|
@ -5,6 +5,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
export let selected = false;
|
export let selected = false;
|
||||||
export let active = false;
|
export let active = false;
|
||||||
|
export let suggestion: string; // used by add-ons to target individual suggestions
|
||||||
|
|
||||||
let buttonRef: HTMLElement;
|
let buttonRef: HTMLElement;
|
||||||
|
|
||||||
|
@ -24,6 +25,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class="autocomplete-item"
|
class="autocomplete-item"
|
||||||
class:selected
|
class:selected
|
||||||
class:active
|
class:active
|
||||||
|
data-addon-suggestion={suggestion}
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
on:mouseup
|
on:mouseup
|
||||||
on:mouseenter
|
on:mouseenter
|
||||||
|
|
|
@ -8,6 +8,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
let className: string = "";
|
let className: string = "";
|
||||||
export { className as class };
|
export { className as class };
|
||||||
|
|
||||||
|
export let tagName: string; // used by add-ons to target individual tag elements
|
||||||
export let tooltip: string | undefined = undefined;
|
export let tooltip: string | undefined = undefined;
|
||||||
export let selected = false;
|
export let selected = false;
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class:flashing
|
class:flashing
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
title={tooltip}
|
title={tooltip}
|
||||||
|
data-addon-tag={tagName}
|
||||||
on:mousemove
|
on:mousemove
|
||||||
on:click
|
on:click
|
||||||
>
|
>
|
||||||
|
|
|
@ -69,7 +69,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class:empty={name === ""}
|
class:empty={name === ""}
|
||||||
>
|
>
|
||||||
{#if active}
|
{#if active}
|
||||||
<Tag class={className} on:mousemove={setControlShift} on:click={onClick}>
|
<Tag
|
||||||
|
class={className}
|
||||||
|
tagName={name}
|
||||||
|
on:mousemove={setControlShift}
|
||||||
|
on:click={onClick}
|
||||||
|
>
|
||||||
{name}
|
{name}
|
||||||
<slot {selectMode} {hoverClass} />
|
<slot {selectMode} {hoverClass} />
|
||||||
</Tag>
|
</Tag>
|
||||||
|
@ -77,6 +82,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<WithTooltip {tooltip} trigger="hover" placement="top" let:createTooltip>
|
<WithTooltip {tooltip} trigger="hover" placement="top" let:createTooltip>
|
||||||
<Tag
|
<Tag
|
||||||
class={className}
|
class={className}
|
||||||
|
tagName={name}
|
||||||
bind:flash
|
bind:flash
|
||||||
bind:selected
|
bind:selected
|
||||||
on:mousemove={setControlShift}
|
on:mousemove={setControlShift}
|
||||||
|
@ -90,6 +96,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
{:else}
|
{:else}
|
||||||
<Tag
|
<Tag
|
||||||
class={className}
|
class={className}
|
||||||
|
tagName={name}
|
||||||
bind:flash
|
bind:flash
|
||||||
bind:selected
|
bind:selected
|
||||||
on:mousemove={setControlShift}
|
on:mousemove={setControlShift}
|
||||||
|
|
|
@ -143,6 +143,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<AutocompleteItem
|
<AutocompleteItem
|
||||||
selected
|
selected
|
||||||
{active}
|
{active}
|
||||||
|
{suggestion}
|
||||||
on:mousedown={() => setSelectedAndActive(index)}
|
on:mousedown={() => setSelectedAndActive(index)}
|
||||||
on:mouseup={() => {
|
on:mouseup={() => {
|
||||||
selectIndex(index);
|
selectIndex(index);
|
||||||
|
@ -155,6 +156,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
</AutocompleteItem>
|
</AutocompleteItem>
|
||||||
{:else}
|
{:else}
|
||||||
<AutocompleteItem
|
<AutocompleteItem
|
||||||
|
{suggestion}
|
||||||
on:mousedown={() => setSelectedAndActive(index)}
|
on:mousedown={() => setSelectedAndActive(index)}
|
||||||
on:mouseup={() => {
|
on:mouseup={() => {
|
||||||
selectIndex(index);
|
selectIndex(index);
|
||||||
|
|
Loading…
Reference in a new issue