@inpageedit/core 0.13.1 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +13 -4
- package/dist/{BasePlugin-Bf2UuIHF.js → BasePlugin-YOi2_vUo.js} +17 -26
- package/dist/BasePlugin-YOi2_vUo.js.map +1 -0
- package/dist/IconQuickEdit-CMCQncyj.js.map +1 -1
- package/dist/InputBox-nQKtiWtZ.js.map +1 -1
- package/dist/{PluginPrefSync-Dn1Xsiqz.js → PluginPrefSync-jTNlRQE-.js} +124 -128
- package/dist/PluginPrefSync-jTNlRQE-.js.map +1 -0
- package/dist/PluginStoreApp-CGNxKXAN.js +453 -0
- package/dist/PluginStoreApp-CGNxKXAN.js.map +1 -0
- package/dist/{endpoints-DgyuoRZd.js → Preferences-BF2fcXrn.js} +608 -576
- package/dist/Preferences-BF2fcXrn.js.map +1 -0
- package/dist/WatchlistAction-BbNAyryN.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/index-3NZkG2a3.js +116 -0
- package/dist/index-3NZkG2a3.js.map +1 -0
- package/dist/{index-BJ7_Q1mB.js → index-BBNseJXG.js} +17 -16
- package/dist/index-BBNseJXG.js.map +1 -0
- package/dist/{index-BQ-cHWkJ.js → index-Bb0FiU2c.js} +66 -48
- package/dist/index-Bb0FiU2c.js.map +1 -0
- package/dist/{index-DqA6EAM6.js → index-BgkZW91u.js} +1429 -928
- package/dist/index-BgkZW91u.js.map +1 -0
- package/dist/index-BrYKe18j.js +179 -0
- package/dist/index-BrYKe18j.js.map +1 -0
- package/dist/index-CG38LlAh.js.map +1 -1
- package/dist/index-CM_6yF2v.js.map +1 -1
- package/dist/index-D-fW3ESK.js +195 -0
- package/dist/index-D-fW3ESK.js.map +1 -0
- package/dist/index-D6zFqL2u.js +173 -0
- package/dist/index-D6zFqL2u.js.map +1 -0
- package/dist/{index-CCRMmnwk.js → index-D97lUU3h.js} +67 -66
- package/dist/index-D97lUU3h.js.map +1 -0
- package/dist/index-DD5CVCfD.js.map +1 -1
- package/dist/{index-B7c6jL9x.js → index-DELHsLHS.js} +146 -137
- package/dist/index-DELHsLHS.js.map +1 -0
- package/dist/{index-BwdWyHLe.js → index-DTHY5rAO.js} +93 -93
- package/dist/index-DTHY5rAO.js.map +1 -0
- package/dist/index-DmLoihN1.js +394 -0
- package/dist/index-DmLoihN1.js.map +1 -0
- package/dist/index.d.ts +362 -43
- package/dist/index.js +32 -26
- package/dist/index.js.map +1 -1
- package/dist/makeCallable-LDU0xZMJ.js.map +1 -1
- package/dist/models/index.js +174 -154
- package/dist/models/index.js.map +1 -1
- package/dist/noop-ClDc6zv4.js.map +1 -1
- package/dist/plugins/index.js +10 -10
- package/dist/services/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/vueHooks-l04s8cIl.js.map +1 -1
- package/lib/index.umd.js +20 -12
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +4 -4
- package/dist/BasePlugin-Bf2UuIHF.js.map +0 -1
- package/dist/PluginPrefSync-Dn1Xsiqz.js.map +0 -1
- package/dist/PluginStoreApp-CpOLArL7.js +0 -452
- package/dist/PluginStoreApp-CpOLArL7.js.map +0 -1
- package/dist/Preferences-DS4-CFWe.js +0 -9
- package/dist/Preferences-DS4-CFWe.js.map +0 -1
- package/dist/endpoints-DgyuoRZd.js.map +0 -1
- package/dist/index-2RfILgXm.js +0 -180
- package/dist/index-2RfILgXm.js.map +0 -1
- package/dist/index-B7c6jL9x.js.map +0 -1
- package/dist/index-BJ7_Q1mB.js.map +0 -1
- package/dist/index-BNh95-x2.js +0 -115
- package/dist/index-BNh95-x2.js.map +0 -1
- package/dist/index-BQ-cHWkJ.js.map +0 -1
- package/dist/index-BwdWyHLe.js.map +0 -1
- package/dist/index-CCRMmnwk.js.map +0 -1
- package/dist/index-CnIpUF9x.js +0 -173
- package/dist/index-CnIpUF9x.js.map +0 -1
- package/dist/index-CyG7_IYz.js +0 -394
- package/dist/index-CyG7_IYz.js.map +0 -1
- package/dist/index-DqA6EAM6.js.map +0 -1
- package/dist/index-eSlbrNqF.js +0 -146
- package/dist/index-eSlbrNqF.js.map +0 -1
package/dist/index-eSlbrNqF.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { j as c } from "./index-CM_6yF2v.js";
|
|
2
|
-
import { R as D } from "./Preferences-DS4-CFWe.js";
|
|
3
|
-
import { a as C, I as E, S as f } from "./endpoints-DgyuoRZd.js";
|
|
4
|
-
var I = Object.create, v = Object.defineProperty, T = Object.getOwnPropertyDescriptor, y = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), _ = (e) => {
|
|
5
|
-
throw TypeError(e);
|
|
6
|
-
}, z = (e, t, o) => t in e ? v(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, q = (e, t) => v(e, "name", { value: t, configurable: !0 }), $ = (e) => [, , , I(e?.[y("metadata")] ?? null)], O = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], w = (e) => e !== void 0 && typeof e != "function" ? _("Function expected") : e, j = (e, t, o, n, r) => ({ kind: O[e], name: t, metadata: n, addInitializer: (i) => o._ ? _("Already initialized") : r.push(w(i || null)) }), k = (e, t) => z(t, y("metadata"), e[3]), A = (e, t, o, n) => {
|
|
7
|
-
for (var r = 0, i = e[t >> 1], a = i && i.length; r < a; r++) i[r].call(o);
|
|
8
|
-
return n;
|
|
9
|
-
}, M = (e, t, o, n, r, i) => {
|
|
10
|
-
var a, h, g, l = t & 7, b = !1, s = 0, u = e[s] || (e[s] = []), d = l && (r = r.prototype, l < 5 && (l > 3 || !b) && T(r, o));
|
|
11
|
-
q(r, o);
|
|
12
|
-
for (var p = n.length - 1; p >= 0; p--)
|
|
13
|
-
g = j(l, o, h = {}, e[3], u), a = (0, n[p])(r, g), h._ = 1, w(a) && (r = a);
|
|
14
|
-
return k(e, r), d && v(r, o, d), b ? l ^ 4 ? i : d : r;
|
|
15
|
-
}, S, m, P;
|
|
16
|
-
S = [D(
|
|
17
|
-
f.object({
|
|
18
|
-
toolboxAlwaysShow: f.boolean().description("Make the toolbox opened by default").default(!1)
|
|
19
|
-
}).description("Toolbox preferences")
|
|
20
|
-
), E(["preferences"])];
|
|
21
|
-
class x extends (P = C) {
|
|
22
|
-
constructor(t) {
|
|
23
|
-
super(t, "toolbox", !1), this.ctx = t, this.container = void 0;
|
|
24
|
-
}
|
|
25
|
-
async start() {
|
|
26
|
-
this.container = this.createToolbox(), this.ctx.preferences.get("toolboxAlwaysShow").then((t) => {
|
|
27
|
-
t && this.container.classList.add("is-persistent");
|
|
28
|
-
}), this.setupHoverLogic(), document.body.appendChild(this.container), this.updateButtonDelays();
|
|
29
|
-
}
|
|
30
|
-
stop() {
|
|
31
|
-
this.container?.remove();
|
|
32
|
-
}
|
|
33
|
-
get isPersistent() {
|
|
34
|
-
return this.container.classList.contains("is-persistent");
|
|
35
|
-
}
|
|
36
|
-
setupHoverLogic() {
|
|
37
|
-
let t = null;
|
|
38
|
-
this.container.addEventListener("mouseenter", () => {
|
|
39
|
-
t && (clearTimeout(t), t = null), this.isPersistent || this.container.classList.add("is-hovered");
|
|
40
|
-
}), this.container.addEventListener("mouseleave", () => {
|
|
41
|
-
this.isPersistent || (t = window.setTimeout(() => {
|
|
42
|
-
this.container.classList.remove("is-hovered");
|
|
43
|
-
}, 150));
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* 计算按钮动画延迟
|
|
48
|
-
* @param index 按钮索引(从0开始)
|
|
49
|
-
* @param totalCount 总按钮数量
|
|
50
|
-
* @returns 延迟时间(秒)
|
|
51
|
-
*/
|
|
52
|
-
calculateButtonDelay(t, o) {
|
|
53
|
-
if (o <= 1) return 0;
|
|
54
|
-
const n = 0.15, r = t / (o - 1), i = n * Math.sqrt(r);
|
|
55
|
-
return Math.round(i * 1e3) / 1e3;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* 更新按钮组的动画延迟
|
|
59
|
-
*/
|
|
60
|
-
updateButtonDelays() {
|
|
61
|
-
this.container.querySelectorAll(".btn-group").forEach((o) => {
|
|
62
|
-
const n = o.querySelectorAll(".btn-tip-group"), r = n.length;
|
|
63
|
-
n.forEach((i, a) => {
|
|
64
|
-
const h = this.calculateButtonDelay(a, r);
|
|
65
|
-
i.style.setProperty("--transition-delay", `${h}s`), i.style.setProperty("--max-transition-delay", "0.15s");
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
createToolbox() {
|
|
70
|
-
return /* @__PURE__ */ c("div", { id: "ipe-edit-toolbox", children: [
|
|
71
|
-
/* @__PURE__ */ c("ul", { className: "btn-group group1", style: { display: "flex", flexDirection: "column" } }),
|
|
72
|
-
/* @__PURE__ */ c("ul", { className: "btn-group group2", style: { display: "flex", flexDirection: "row" } }),
|
|
73
|
-
/* @__PURE__ */ c(
|
|
74
|
-
"button",
|
|
75
|
-
{
|
|
76
|
-
className: "ipe-toolbox-btn",
|
|
77
|
-
id: "toolbox-toggler",
|
|
78
|
-
onClick: () => {
|
|
79
|
-
this.toggle();
|
|
80
|
-
},
|
|
81
|
-
children: /* @__PURE__ */ c("svg", { xmlns: "http://www.w3.org/2000/svg", width: "448", height: "512", viewBox: "0 0 448 512", children: [
|
|
82
|
-
/* @__PURE__ */ c("rect", { width: "448", height: "512", fill: "none" }),
|
|
83
|
-
/* @__PURE__ */ c(
|
|
84
|
-
"path",
|
|
85
|
-
{
|
|
86
|
-
fill: "currentColor",
|
|
87
|
-
d: "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32"
|
|
88
|
-
}
|
|
89
|
-
)
|
|
90
|
-
] })
|
|
91
|
-
}
|
|
92
|
-
)
|
|
93
|
-
] });
|
|
94
|
-
}
|
|
95
|
-
normalizeButtonId(t) {
|
|
96
|
-
return t || (t = Math.random().toString(36).substring(2, 8)), `ipe-toolbox__${t.trim()}`.replace(/\s\.#/g, "-");
|
|
97
|
-
}
|
|
98
|
-
addButton(t) {
|
|
99
|
-
let { id: o, group: n, icon: r, tooltip: i, itemProps: a, buttonProps: h, onClick: g, index: l } = t;
|
|
100
|
-
o = this.normalizeButtonId(o);
|
|
101
|
-
const b = this.container.querySelector(`#${o}`);
|
|
102
|
-
b && (this.ctx.logger("toolbox").warn(`Button with id ${o} already exists, replacing it.`), b.remove());
|
|
103
|
-
let s = null;
|
|
104
|
-
if (typeof n > "u" || n === "auto") {
|
|
105
|
-
const d = this.container.querySelector(".btn-group.group1"), p = this.container.querySelector(".btn-group.group2"), B = d?.children.length || 0, L = p?.children.length || 0;
|
|
106
|
-
s = B <= L ? d : p;
|
|
107
|
-
} else
|
|
108
|
-
s = this.container.querySelector(`.btn-group.${n}`);
|
|
109
|
-
if (!s) throw new Error(`Button group ${n} not found`);
|
|
110
|
-
const u = /* @__PURE__ */ c("li", { class: "btn-tip-group", id: o, onClick: g, ...a, children: [
|
|
111
|
-
/* @__PURE__ */ c("div", { class: "btn-tip", children: i }),
|
|
112
|
-
/* @__PURE__ */ c("button", { id: `${o}-btn`, "data-id": t.id, class: "ipe-toolbox-btn", ...h, children: r })
|
|
113
|
-
] });
|
|
114
|
-
return u.addEventListener("click", (d) => {
|
|
115
|
-
this.ctx.emit("toolbox/button-clicked", {
|
|
116
|
-
ctx: this.ctx,
|
|
117
|
-
button: d.target,
|
|
118
|
-
id: t.id
|
|
119
|
-
});
|
|
120
|
-
}), typeof l == "number" ? l <= 0 ? s.prepend(u) : l >= s.children.length ? s.appendChild(u) : s.children[l]?.before(u) : s.appendChild(u), this.ctx.emit("toolbox/button-added", {
|
|
121
|
-
ctx: this.ctx,
|
|
122
|
-
button: u
|
|
123
|
-
}), this.updateButtonDelays(), u;
|
|
124
|
-
}
|
|
125
|
-
removeButton(t) {
|
|
126
|
-
const o = this.normalizeButtonId(t);
|
|
127
|
-
this.container.querySelector(`#${o}`)?.remove(), this.ctx.emit("toolbox/button-removed", { ctx: this.ctx, id: t }), this.updateButtonDelays();
|
|
128
|
-
}
|
|
129
|
-
getContainer() {
|
|
130
|
-
return this.container;
|
|
131
|
-
}
|
|
132
|
-
get isOpened() {
|
|
133
|
-
return this.container.classList.contains("is-persistent") || this.container.classList.contains("is-hovered");
|
|
134
|
-
}
|
|
135
|
-
toggle(t) {
|
|
136
|
-
const o = this.isPersistent, n = typeof t == "boolean" ? t : !o;
|
|
137
|
-
this.container.classList.toggle("is-persistent", n), this.container.classList.remove("is-hovered"), this.ctx.preferences.set("toolboxAlwaysShow", n), this.ctx.emit("toolbox/toggle", { ctx: this.ctx, opened: this.isOpened });
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
m = $(P);
|
|
141
|
-
x = M(m, 0, "PluginToolbox", S, x);
|
|
142
|
-
A(m, 1, x);
|
|
143
|
-
export {
|
|
144
|
-
x as PluginToolbox
|
|
145
|
-
};
|
|
146
|
-
//# sourceMappingURL=index-eSlbrNqF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-eSlbrNqF.js","sources":["../src/plugins/toolbox/index.tsx"],"sourcesContent":["import { Inject, InPageEdit, Schema, Service } from '@/InPageEdit'\nimport { JSX, ReactElement } from 'jsx-dom'\nimport './styles.scss'\n\ndeclare module '@/InPageEdit' {\n interface InPageEdit {\n toolbox: PluginToolbox\n }\n interface Events {\n 'toolbox/button-added'(payload: { ctx: InPageEdit; button: HTMLElement }): void\n 'toolbox/button-removed'(payload: { ctx: InPageEdit; id: string }): void\n 'toolbox/button-clicked'(payload: { ctx: InPageEdit; button: HTMLElement; id: string }): void\n 'toolbox/toggle'(payload: { ctx: InPageEdit; opened: boolean }): void\n }\n interface PreferencesMap {\n toolboxAlwaysShow: boolean\n }\n}\n\n@RegisterPreferences(\n Schema.object({\n toolboxAlwaysShow: Schema.boolean()\n .description('Make the toolbox opened by default')\n .default(false),\n }).description('Toolbox preferences')\n)\n@Inject(['preferences'])\nexport class PluginToolbox extends Service {\n container!: HTMLElement\n\n constructor(public ctx: InPageEdit) {\n super(ctx, 'toolbox', false)\n }\n\n protected async start(): Promise<void> {\n this.container = this.createToolbox()\n this.ctx.preferences.get('toolboxAlwaysShow').then((val) => {\n if (val) {\n this.container.classList.add('is-persistent')\n }\n })\n this.setupHoverLogic()\n document.body.appendChild(this.container)\n\n // 初始化时更新按钮延迟\n this.updateButtonDelays()\n }\n\n protected stop(): void | Promise<void> {\n this.container?.remove()\n }\n\n private get isPersistent() {\n return this.container.classList.contains('is-persistent')\n }\n\n private setupHoverLogic() {\n let hoverTimeout: number | null = null\n\n // 鼠标进入时暂时展开\n this.container.addEventListener('mouseenter', () => {\n if (hoverTimeout) {\n clearTimeout(hoverTimeout)\n hoverTimeout = null\n }\n\n // 如果不在持久化状态,则添加hover展开效果\n if (!this.isPersistent) {\n this.container.classList.add('is-hovered')\n }\n })\n\n // 鼠标离开时收起(如果不是持久化状态)\n this.container.addEventListener('mouseleave', () => {\n if (!this.isPersistent) {\n hoverTimeout = window.setTimeout(() => {\n this.container.classList.remove('is-hovered')\n }, 150) // 延迟150ms收起,避免快速移动鼠标时闪烁\n }\n })\n }\n\n /**\n * 计算按钮动画延迟\n * @param index 按钮索引(从0开始)\n * @param totalCount 总按钮数量\n * @returns 延迟时间(秒)\n */\n private calculateButtonDelay(index: number, totalCount: number): number {\n if (totalCount <= 1) return 0\n\n // 总动画时长150ms = 0.15s\n const totalDuration = 0.15\n // 使用平方根函数创建非线性延迟,差值逐渐缩小\n const normalizedIndex = index / (totalCount - 1)\n const delay = totalDuration * Math.sqrt(normalizedIndex)\n\n return Math.round(delay * 1000) / 1000 // 保留3位小数\n }\n\n /**\n * 更新按钮组的动画延迟\n */\n private updateButtonDelays() {\n const btnGroups = this.container.querySelectorAll('.btn-group')\n\n btnGroups.forEach((group) => {\n const buttons = group.querySelectorAll('.btn-tip-group')\n const totalCount = buttons.length\n\n buttons.forEach((button, index) => {\n const delay = this.calculateButtonDelay(index, totalCount)\n ;(button as HTMLElement).style.setProperty('--transition-delay', `${delay}s`)\n ;(button as HTMLElement).style.setProperty('--max-transition-delay', '0.15s')\n })\n })\n }\n\n private createToolbox() {\n const toggler = (\n <button\n className=\"ipe-toolbox-btn\"\n id=\"toolbox-toggler\"\n onClick={() => {\n this.toggle()\n }}\n >\n {/* Font Awesome 5 Solid: Plus */}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"448\" height=\"512\" viewBox=\"0 0 448 512\">\n <rect width=\"448\" height=\"512\" fill=\"none\" />\n <path\n fill=\"currentColor\"\n d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32\"\n />\n </svg>\n </button>\n )\n const element = (\n <div id=\"ipe-edit-toolbox\">\n <ul className=\"btn-group group1\" style={{ display: 'flex', flexDirection: 'column' }}></ul>\n <ul className=\"btn-group group2\" style={{ display: 'flex', flexDirection: 'row' }}></ul>\n {toggler}\n </div>\n )\n\n return element as HTMLElement\n }\n\n private normalizeButtonId(id: string) {\n if (!id) {\n id = Math.random().toString(36).substring(2, 8)\n }\n return `ipe-toolbox__${id.trim()}`.replace(/\\s\\.#/g, '-')\n }\n\n addButton(payload: {\n id: string\n group?: 'auto' | 'group1' | 'group2'\n icon: string | HTMLElement | SVGElement | ReactElement\n tooltip?: string | HTMLElement\n itemProps?: JSX.IntrinsicElements['li']\n buttonProps?: JSX.IntrinsicElements['button']\n onClick?: (event: MouseEvent) => void\n index?: number\n }) {\n let { id, group, icon, tooltip, itemProps, buttonProps, onClick, index } = payload\n id = this.normalizeButtonId(id)\n\n const existingButton = this.container.querySelector(`#${id}`)\n if (existingButton) {\n this.ctx.logger('toolbox').warn(`Button with id ${id} already exists, replacing it.`)\n existingButton.remove()\n }\n\n let groupEl: HTMLElement | null = null\n if (typeof group === 'undefined' || group === 'auto') {\n // 选择按钮最少的那一组,一样多就选第一组\n const group1 = this.container.querySelector('.btn-group.group1') as HTMLElement\n const group2 = this.container.querySelector('.btn-group.group2') as HTMLElement\n const group1Count = group1?.children.length || 0\n const group2Count = group2?.children.length || 0\n groupEl = group1Count <= group2Count ? group1 : group2\n } else {\n groupEl = this.container.querySelector(`.btn-group.${group}`)\n }\n if (!groupEl) throw new Error(`Button group ${group} not found`)\n\n const button = (\n <li class=\"btn-tip-group\" id={id} onClick={onClick} {...itemProps}>\n <div class=\"btn-tip\">{tooltip}</div>\n <button id={`${id}-btn`} data-id={payload.id} class=\"ipe-toolbox-btn\" {...buttonProps}>\n {icon}\n </button>\n </li>\n )\n\n button.addEventListener('click', (e) => {\n this.ctx.emit('toolbox/button-clicked', {\n ctx: this.ctx,\n button: e.target as HTMLElement,\n id: payload.id,\n })\n })\n\n if (typeof index === 'number') {\n if (index <= 0) {\n groupEl.prepend(button)\n } else if (index >= groupEl.children.length) {\n groupEl.appendChild(button)\n } else {\n groupEl.children[index]?.before(button)\n }\n } else {\n groupEl.appendChild(button)\n }\n\n this.ctx.emit('toolbox/button-added', {\n ctx: this.ctx,\n button: button as HTMLElement,\n })\n\n // 更新按钮延迟\n this.updateButtonDelays()\n\n return button as HTMLElement\n }\n\n removeButton(id: string) {\n const normalizedId = this.normalizeButtonId(id)\n const button = this.container.querySelector(`#${normalizedId}`)\n button?.remove()\n this.ctx.emit('toolbox/button-removed', { ctx: this.ctx, id })\n\n // 更新按钮延迟\n this.updateButtonDelays()\n }\n\n getContainer() {\n return this.container\n }\n\n get isOpened() {\n return (\n this.container.classList.contains('is-persistent') ||\n this.container.classList.contains('is-hovered')\n )\n }\n\n toggle(force?: boolean) {\n const isPersistent = this.isPersistent\n const newPersistent = typeof force === 'boolean' ? force : !isPersistent\n this.container.classList.toggle('is-persistent', newPersistent)\n this.container.classList.remove('is-hovered')\n this.ctx.preferences.set('toolboxAlwaysShow', newPersistent)\n this.ctx.emit('toolbox/toggle', { ctx: this.ctx, opened: this.isOpened })\n }\n}\n"],"names":["_PluginToolbox_decorators","_init","_a","RegisterPreferences","Schema","Inject","PluginToolbox","Service","ctx","val","hoverTimeout","index","totalCount","totalDuration","normalizedIndex","delay","group","buttons","button","jsxs","jsx","id","payload","icon","tooltip","itemProps","buttonProps","onClick","existingButton","groupEl","group1","group2","group1Count","group2Count","e","normalizedId","force","isPersistent","newPersistent","__decoratorStart","__decorateElement","__runInitializers"],"mappings":"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"}
|