@inpageedit/core 0.1.0

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.
Files changed (86) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/ActionButton-BhcZX7rl.js +33 -0
  4. package/dist/ActionButton-BhcZX7rl.js.map +1 -0
  5. package/dist/CheckBox-B7zLOm55.js +30 -0
  6. package/dist/CheckBox-B7zLOm55.js.map +1 -0
  7. package/dist/InPageEdit.d.ts +25 -0
  8. package/dist/PluginPreferencesUI-CqQKXQkn.js +33921 -0
  9. package/dist/PluginPreferencesUI-CqQKXQkn.js.map +1 -0
  10. package/dist/Preferences-Bg3J5Ur9.js +9 -0
  11. package/dist/Preferences-Bg3J5Ur9.js.map +1 -0
  12. package/dist/RadioBox-Dl-VRoW0.js +54 -0
  13. package/dist/RadioBox-Dl-VRoW0.js.map +1 -0
  14. package/dist/components/ActionButton.d.ts +9 -0
  15. package/dist/components/CheckBox.d.ts +10 -0
  16. package/dist/components/InputBox.d.ts +11 -0
  17. package/dist/components/MBox/index.d.ts +14 -0
  18. package/dist/components/MwUserLinks.d.ts +4 -0
  19. package/dist/components/ProgressBar/index.d.ts +7 -0
  20. package/dist/components/RadioBox.d.ts +10 -0
  21. package/dist/components/TabView/TabView.d.ts +19 -0
  22. package/dist/components/TwinSwapInput/index.d.ts +18 -0
  23. package/dist/components/utils.d.ts +4 -0
  24. package/dist/constants/endpoints.d.ts +10 -0
  25. package/dist/decorators/Preferences.d.ts +36 -0
  26. package/dist/i18n/languages.json +1527 -0
  27. package/dist/index-BEDkPsz1.js +86 -0
  28. package/dist/index-BEDkPsz1.js.map +1 -0
  29. package/dist/index-Bi1eJIjL.js +83 -0
  30. package/dist/index-Bi1eJIjL.js.map +1 -0
  31. package/dist/index-Bz4cBa1Z.js +1130 -0
  32. package/dist/index-Bz4cBa1Z.js.map +1 -0
  33. package/dist/index-CL0NhE5n.js +155 -0
  34. package/dist/index-CL0NhE5n.js.map +1 -0
  35. package/dist/index-CuEf9G7f.js +5459 -0
  36. package/dist/index-CuEf9G7f.js.map +1 -0
  37. package/dist/index-DA5i7w02.js +141 -0
  38. package/dist/index-DA5i7w02.js.map +1 -0
  39. package/dist/index-Hed2P8uH.js +159 -0
  40. package/dist/index-Hed2P8uH.js.map +1 -0
  41. package/dist/index-LoZLvK3o.js +409 -0
  42. package/dist/index-LoZLvK3o.js.map +1 -0
  43. package/dist/index-sORwn1Vt.js +140 -0
  44. package/dist/index-sORwn1Vt.js.map +1 -0
  45. package/dist/index.d.ts +23 -0
  46. package/dist/index.js +8 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/models/WikiPage/index.d.ts +63 -0
  49. package/dist/models/WikiPage/types/PageInfo.d.ts +56 -0
  50. package/dist/models/WikiPage/types/PageParseData.d.ts +17 -0
  51. package/dist/models/WikiPage/types/WatchlistAction.d.ts +6 -0
  52. package/dist/models/WikiTitle/index.d.ts +12 -0
  53. package/dist/plugins/BasePlugin.d.ts +19 -0
  54. package/dist/plugins/_debug/index.d.ts +8 -0
  55. package/dist/plugins/preferences/PluginPreferencesUI.d.ts +11 -0
  56. package/dist/plugins/preferences/components/hooks.d.ts +5 -0
  57. package/dist/plugins/preferences/index.d.ts +37 -0
  58. package/dist/plugins/quick-diff/JsDiffService.d.ts +23 -0
  59. package/dist/plugins/quick-diff/PluginQuickDiffCore.d.ts +69 -0
  60. package/dist/plugins/quick-diff/components/DiffTable.d.ts +6 -0
  61. package/dist/plugins/quick-diff/index.d.ts +6 -0
  62. package/dist/plugins/quick-edit/PluginQuickEditInArticleLinks.d.ts +14 -0
  63. package/dist/plugins/quick-edit/index.d.ts +52 -0
  64. package/dist/plugins/quick-move/index.d.ts +27 -0
  65. package/dist/plugins/quick-preview/index.d.ts +32 -0
  66. package/dist/plugins/quick-redirect/index.d.ts +24 -0
  67. package/dist/plugins/toolbox/index.d.ts +38 -0
  68. package/dist/polyfills/Promise.withResolvers.d.ts +5 -0
  69. package/dist/polyfills/index.d.ts +0 -0
  70. package/dist/services/ApiService.d.ts +14 -0
  71. package/dist/services/ResourceLoaderService.d.ts +13 -0
  72. package/dist/services/SiteMetadataService.d.ts +53 -0
  73. package/dist/services/SsiModalService.d.ts +35 -0
  74. package/dist/services/StorageService.d.ts +56 -0
  75. package/dist/services/WikiPageService.d.ts +19 -0
  76. package/dist/sleep-DpyIipK-.js +5 -0
  77. package/dist/sleep-DpyIipK-.js.map +1 -0
  78. package/dist/style.css +1 -0
  79. package/dist/types/SiteMetadata.d.ts +133 -0
  80. package/dist/utils/defineAsyncPlugin.d.ts +2 -0
  81. package/dist/utils/noop.d.ts +1 -0
  82. package/dist/utils/schemaValidator.d.ts +12 -0
  83. package/dist/utils/sleep.d.ts +1 -0
  84. package/dist/utils/string.d.ts +7 -0
  85. package/dist/utils/vueReactivity.d.ts +2 -0
  86. package/package.json +81 -0
@@ -0,0 +1,86 @@
1
+ import { B as q, j as l, P as j, a as E } from "./index-CuEf9G7f.js";
2
+ var y = Object.create, _ = Object.defineProperty, O = Object.getOwnPropertyDescriptor, k = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), x = (e) => {
3
+ throw TypeError(e);
4
+ }, Q = (e, t, r) => t in e ? _(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, S = (e, t) => _(e, "name", { value: t, configurable: !0 }), z = (e) => [, , , y(e?.[k("metadata")] ?? null)], B = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], m = (e) => e !== void 0 && typeof e != "function" ? x("Function expected") : e, I = (e, t, r, a, i) => ({ kind: B[e], name: t, metadata: a, addInitializer: (c) => r._ ? x("Already initialized") : i.push(m(c || null)) }), C = (e, t) => Q(t, k("metadata"), e[3]), N = (e, t, r, a) => {
5
+ for (var i = 0, c = e[t >> 1], s = c && c.length; i < s; i++) c[i].call(r);
6
+ return a;
7
+ }, T = (e, t, r, a, i, c) => {
8
+ var s, n, p, o = t & 7, h = !1, P = 0, g = e[P] || (e[P] = []), d = o && (i = i.prototype, o < 5 && (o > 3 || !h) && O(i, r));
9
+ S(i, r);
10
+ for (var u = a.length - 1; u >= 0; u--)
11
+ p = I(o, r, n = {}, e[3], g), s = (0, a[u])(i, p), n._ = 1, m(s) && (i = s);
12
+ return C(e, i), d && _(i, r, d), h ? o ^ 4 ? c : d : i;
13
+ }, f, w, b;
14
+ f = [E(["api", "wikiPage", "modal"])];
15
+ class v extends (b = q) {
16
+ constructor(t) {
17
+ super(t, {}, "quickPreview"), this.ctx = t;
18
+ }
19
+ start() {
20
+ this.ctx.set("quickPreview", this.quickPreview.bind(this)), this.ctx.on("quickEdit/wikiPage", this.injectQuickEdit.bind(this));
21
+ }
22
+ stop() {
23
+ this.ctx.off("quickEdit/wikiPage", this.injectQuickEdit.bind(this));
24
+ }
25
+ injectQuickEdit({ ctx: t, modal: r, wikiPage: a }) {
26
+ r.setButtons([
27
+ {
28
+ label: "Preview",
29
+ side: "left",
30
+ className: "btn btn-secondary",
31
+ method: () => {
32
+ this.quickPreview(
33
+ r.get$content().find("textarea.editArea").val() || "",
34
+ void 0,
35
+ a
36
+ );
37
+ }
38
+ }
39
+ ]);
40
+ }
41
+ async quickPreview(t, r, a) {
42
+ a || (a = this.ctx.wikiPage.newBlankPage({
43
+ title: "API"
44
+ }));
45
+ const i = this.ctx.modal.createObject({
46
+ className: "in-page-edit ipe-quickPreview",
47
+ sizeClass: "large"
48
+ }).init();
49
+ i.setTitle("Preview loading..."), i.setContent(
50
+ /* @__PURE__ */ l("section", { children: /* @__PURE__ */ l(j, {}) })
51
+ ), i.show(), this.ctx.emit("quickPreview/showModal", {
52
+ ctx: this.ctx,
53
+ text: t,
54
+ modal: i,
55
+ wikiPage: a
56
+ });
57
+ const {
58
+ data: { parse: c }
59
+ } = await a.preview(t, r);
60
+ i.setTitle(`Preview - ${c.title}`);
61
+ let s = null;
62
+ i.setContent(
63
+ /* @__PURE__ */ l("section", { children: /* @__PURE__ */ l(
64
+ "div",
65
+ {
66
+ ref: (n) => s = n,
67
+ className: "mw-parser-output",
68
+ innerHTML: c.text
69
+ }
70
+ ) })
71
+ ), window.mw?.hook("wikipage.content").fire($(s)), this.ctx.emit("quickPreview/loaded", {
72
+ ctx: this.ctx,
73
+ modal: i,
74
+ wikiPage: a,
75
+ text: t,
76
+ parseData: c
77
+ });
78
+ }
79
+ }
80
+ w = z(b);
81
+ v = T(w, 0, "PluginQuickPreview", f, v);
82
+ N(w, 1, v);
83
+ export {
84
+ v as PluginQuickPreview
85
+ };
86
+ //# sourceMappingURL=index-BEDkPsz1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BEDkPsz1.js","sources":["../src/plugins/quick-preview/index.tsx"],"sourcesContent":["import { Inject, InPageEdit } from '@/InPageEdit'\nimport { type QuickEditInitPayload } from '@/plugins/quick-edit'\nimport { WikiPage } from '@/models/WikiPage'\nimport { MwApiParams } from 'wiki-saikou'\nimport { PageParseData } from '@/models/WikiPage/types/PageParseData'\n\ndeclare module '@/InPageEdit' {\n interface InPageEdit {\n quickPreview: PluginQuickPreview['quickPreview']\n }\n interface Events {\n 'quickPreview/showModal'(payload: {\n ctx: InPageEdit\n text: string\n modal: SsiModal\n wikiPage: WikiPage\n }): void\n 'quickPreview/loaded'(payload: {\n ctx: InPageEdit\n modal: SsiModal\n wikiPage: WikiPage\n text: string\n parseData: PageParseData\n }): void\n }\n}\n\n@Inject(['api', 'wikiPage', 'modal'])\nexport class PluginQuickPreview extends BasePlugin {\n constructor(public ctx: InPageEdit) {\n super(ctx, {}, 'quickPreview')\n }\n\n protected start(): Promise<void> | void {\n this.ctx.set('quickPreview', this.quickPreview.bind(this))\n this.ctx.on('quickEdit/wikiPage', this.injectQuickEdit.bind(this))\n }\n\n protected stop(): Promise<void> | void {\n this.ctx.off('quickEdit/wikiPage', this.injectQuickEdit.bind(this))\n }\n\n private injectQuickEdit({ ctx, modal, wikiPage }: QuickEditInitPayload) {\n modal.setButtons([\n {\n label: 'Preview',\n side: 'left',\n className: 'btn btn-secondary',\n method: () => {\n this.quickPreview(\n (modal.get$content().find('textarea.editArea').val() as string) || '',\n undefined,\n wikiPage\n )\n },\n },\n ])\n }\n\n async quickPreview(text: string, params?: MwApiParams, wikiPage?: WikiPage) {\n wikiPage ||= this.ctx.wikiPage.newBlankPage({\n title: 'API',\n })\n\n const modal = this.ctx.modal\n .createObject({\n className: 'in-page-edit ipe-quickPreview',\n sizeClass: 'large',\n })\n .init()\n modal.setTitle('Preview loading...')\n modal.setContent(\n (\n <section>\n <ProgressBar />\n </section>\n ) as HTMLElement\n )\n modal.show()\n this.ctx.emit('quickPreview/showModal', {\n ctx: this.ctx,\n text,\n modal,\n wikiPage,\n })\n\n const {\n data: { parse },\n } = await wikiPage.preview(text, params)\n modal.setTitle(`Preview - ${parse.title}`)\n let outputRef: HTMLElement | null = null\n modal.setContent(\n (\n <section>\n <div\n ref={(el) => (outputRef = el)}\n className=\"mw-parser-output\"\n innerHTML={parse.text}\n ></div>\n </section>\n ) as HTMLElement\n )\n window.mw?.hook('wikipage.content').fire($(outputRef!))\n this.ctx.emit('quickPreview/loaded', {\n ctx: this.ctx,\n modal,\n wikiPage,\n text,\n parseData: parse,\n })\n }\n}\n"],"names":["_PluginQuickPreview_decorators","_init","_a","Inject","PluginQuickPreview","BasePlugin","ctx","modal","wikiPage","text","params","jsx","ProgressBar","parse","outputRef","el","__decoratorStart","__decorateElement","__runInitializers"],"mappings":";;;;;;;;;;;;GAAAA,GAAAC,GAAAC;AA2BAF,IAAA,CAACG,EAAO,CAAC,OAAO,YAAY,OAAO,CAAC,CAAA;AAC7B,MAAMC,WAA2BF,IAAAG,GAAW;AAAA,EACjD,YAAmBC,GAAiB;AAClC,UAAMA,GAAK,CAAA,GAAI,cAAc,GADZ,KAAA,MAAAA;AAAA,EAEnB;AAAA,EAEU,QAA8B;AACtC,SAAK,IAAI,IAAI,gBAAgB,KAAK,aAAa,KAAK,IAAI,CAAC,GACzD,KAAK,IAAI,GAAG,sBAAsB,KAAK,gBAAgB,KAAK,IAAI,CAAC;AAAA,EACnE;AAAA,EAEU,OAA6B;AACrC,SAAK,IAAI,IAAI,sBAAsB,KAAK,gBAAgB,KAAK,IAAI,CAAC;AAAA,EACpE;AAAA,EAEQ,gBAAgB,EAAE,KAAAA,GAAK,OAAAC,GAAO,UAAAC,KAAkC;AACtE,IAAAD,EAAM,WAAW;AAAA,MACf;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,WAAW;AAAA,QACX,QAAQ,MAAM;AACZ,eAAK;AAAA,YACFA,EAAM,YAAA,EAAc,KAAK,mBAAmB,EAAE,SAAoB;AAAA,YACnE;AAAA,YACAC;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF,CACD;AAAA,EACH;AAAA,EAEA,MAAM,aAAaC,GAAcC,GAAsBF,GAAqB;AAC1E,IAAAA,UAAa,KAAK,IAAI,SAAS,aAAa;AAAA,MAC1C,OAAO;AAAA,IAAA,CACR;AAED,UAAMD,IAAQ,KAAK,IAAI,MACpB,aAAa;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,IAAA,CACZ,EACA,KAAA;AACH,IAAAA,EAAM,SAAS,oBAAoB,GACnCA,EAAM;AAAA,MAEF,gBAAAI,EAAC,WAAA,EACC,UAAA,gBAAAA,EAACC,GAAA,CAAA,CAAY,EAAA,CACf;AAAA,IAAA,GAGJL,EAAM,KAAA,GACN,KAAK,IAAI,KAAK,0BAA0B;AAAA,MACtC,KAAK,KAAK;AAAA,MACV,MAAAE;AAAA,MACA,OAAAF;AAAA,MACA,UAAAC;AAAA,IAAA,CACD;AAED,UAAM;AAAA,MACJ,MAAM,EAAE,OAAAK,EAAA;AAAA,IAAM,IACZ,MAAML,EAAS,QAAQC,GAAMC,CAAM;AACvC,IAAAH,EAAM,SAAS,aAAaM,EAAM,KAAK,EAAE;AACzC,QAAIC,IAAgC;AACpC,IAAAP,EAAM;AAAA,wBAED,WAAA,EACC,UAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK,CAACI,MAAQD,IAAYC;AAAA,UAC1B,WAAU;AAAA,UACV,WAAWF,EAAM;AAAA,QAAA;AAAA,MAAA,EAClB,CACH;AAAA,IAAA,GAGJ,OAAO,IAAI,KAAK,kBAAkB,EAAE,KAAK,EAAEC,CAAU,CAAC,GACtD,KAAK,IAAI,KAAK,uBAAuB;AAAA,MACnC,KAAK,KAAK;AAAA,MACV,OAAAP;AAAA,MACA,UAAAC;AAAA,MACA,MAAAC;AAAA,MACA,WAAWI;AAAA,IAAA,CACZ;AAAA,EACH;AACF;AAnFOZ,IAAAe,EAAAd,CAAA;AAAME,IAANa,8BADPjB,GACaI,CAAA;AAANc,EAAAjB,GAAA,GAAMG,CAAA;"}
@@ -0,0 +1,83 @@
1
+ import { j as n } from "./index-CuEf9G7f.js";
2
+ const x = "_twinSwapInput_1gdgl_9", y = "_inputWrapper_1gdgl_23", L = "_inputLeft_1gdgl_27", W = "_inputRight_1gdgl_30", $ = "_swapButton_1gdgl_46", i = {
3
+ twinSwapInput: x,
4
+ inputWrapper: y,
5
+ inputLeft: L,
6
+ inputRight: W,
7
+ swapButton: $
8
+ }, C = (f) => {
9
+ const { inputs: l, enableSwap: b = !0, ...v } = f, _ = l?.length === 2 ? l : [l?.[0] ?? {}, l?.[1] ?? {}], s = [null, null];
10
+ let c = 0, o = null, p = null;
11
+ const d = () => s.some((t) => t && t.disabled), w = () => {
12
+ if (!s[0] || !s[1] || d()) return;
13
+ const t = s[0], e = s[1], a = t.value, u = e.value;
14
+ t.value = u, e.value = a, t.dispatchEvent(new Event("change")), e.dispatchEvent(new Event("change")), c++, p && (p.style.transform = `rotateY(${c * -180}deg)`, p.style.transition = "transform 200ms ease");
15
+ }, m = (t) => {
16
+ if (!o) return;
17
+ const e = t ?? !o.disabled;
18
+ o.disabled = !e, e && s.forEach((a) => {
19
+ a && (a.disabled = !1);
20
+ });
21
+ }, I = /* @__PURE__ */ n(
22
+ "button",
23
+ {
24
+ type: "button",
25
+ "aria-label": "Swap values",
26
+ onClick: w,
27
+ disabled: d() || !b,
28
+ ref: (t) => o = t,
29
+ children: /* @__PURE__ */ n(
30
+ "svg",
31
+ {
32
+ ref: (t) => p = t,
33
+ xmlns: "http://www.w3.org/2000/svg",
34
+ width: "24",
35
+ height: "24",
36
+ viewBox: "0 0 24 24",
37
+ fill: "none",
38
+ stroke: "currentColor",
39
+ "stroke-width": "2",
40
+ "stroke-linecap": "round",
41
+ "stroke-linejoin": "round",
42
+ class: "icon-tabler icons-tabler-outline icon-tabler-transfer",
43
+ children: [
44
+ /* @__PURE__ */ n("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
45
+ /* @__PURE__ */ n("path", { d: "M20 10h-16l5.5 -6" }),
46
+ /* @__PURE__ */ n("path", { d: "M4 14h16l-5.5 6" })
47
+ ]
48
+ }
49
+ )
50
+ }
51
+ ), r = /* @__PURE__ */ n("div", { className: `twin-swap-input ${i.twinSwapInput}`, ...v, children: [
52
+ _.map((t, e) => {
53
+ const { label: a, id: u, name: h, value: S, disabled: k, inputProps: B } = t, E = e === 0, g = u || h;
54
+ return /* @__PURE__ */ n(
55
+ "div",
56
+ {
57
+ className: `${i.inputWrapper} ${E ? i.inputLeft : i.inputRight}`,
58
+ children: [
59
+ a && /* @__PURE__ */ n("label", { htmlFor: g, children: a }),
60
+ /* @__PURE__ */ n(
61
+ "input",
62
+ {
63
+ ref: (R) => s[e] = R,
64
+ type: "text",
65
+ id: g,
66
+ name: h,
67
+ value: S,
68
+ disabled: k,
69
+ ...B
70
+ }
71
+ )
72
+ ]
73
+ }
74
+ );
75
+ }),
76
+ /* @__PURE__ */ n("div", { className: i.swapButton, children: I })
77
+ ] });
78
+ return r.swap = w, r.toggleEnableSwap = m, r;
79
+ };
80
+ export {
81
+ C as T
82
+ };
83
+ //# sourceMappingURL=index-Bi1eJIjL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Bi1eJIjL.js","sources":["../src/components/TwinSwapInput/index.tsx"],"sourcesContent":["import { JSX } from 'jsx-dom/jsx-runtime'\nimport styles from './styles.module.sass'\n\nexport type TwinSwapInputProps = {\n inputs: [TwinSwapInputInput, TwinSwapInputInput]\n enableSwap?: boolean\n} & JSX.IntrinsicElements['div']\n\nexport interface TwinSwapInputInput {\n label?: string\n id?: string\n name: string\n value?: string\n disabled?: boolean\n inputProps?: Omit<JSX.IntrinsicElements['input'], 'name' | 'value'>\n}\n\nexport type TwinSwapElement = HTMLDivElement & {\n swap: () => void\n toggleEnableSwap: (enable?: boolean) => void\n}\n\nexport const TwinSwapInput = (props: TwinSwapInputProps) => {\n const { inputs, enableSwap = true, ...rest } = props\n\n const normalizedInputs =\n inputs?.length === 2\n ? inputs\n : ([inputs?.[0] ?? {}, inputs?.[1] ?? {}] as [TwinSwapInputInput, TwinSwapInputInput])\n\n // 内部稳定引用\n const inputRefs: [HTMLInputElement | null, HTMLInputElement | null] = [null, null]\n\n let swapCount = 0\n let swapBtnRef: HTMLButtonElement | null = null\n let svgRef: SVGElement | null = null\n\n const checkIfInputDisabled = () => inputRefs.some((el) => el && el.disabled)\n\n const swap = () => {\n if (!inputRefs[0] || !inputRefs[1]) return\n if (checkIfInputDisabled()) return\n\n const a = inputRefs[0]\n const b = inputRefs[1]\n const va = a.value\n const vb = b.value\n a.value = vb\n b.value = va\n\n // 与原实现一致:派发 change(不冒泡)\n a.dispatchEvent(new Event('change'))\n b.dispatchEvent(new Event('change'))\n\n swapCount++\n if (svgRef) {\n svgRef.style.transform = `rotateY(${swapCount * -180}deg)`\n svgRef.style.transition = 'transform 200ms ease'\n }\n }\n\n const toggleEnableSwap = (enable?: boolean) => {\n if (!swapBtnRef) return\n const next = enable ?? !swapBtnRef.disabled\n swapBtnRef.disabled = !next\n if (next) {\n // 与原实现一致:开启时把 inputs 解禁\n inputRefs.forEach((el) => {\n if (el) el.disabled = false\n })\n }\n }\n\n const swapButton = (\n <button\n type=\"button\"\n aria-label=\"Swap values\"\n onClick={swap}\n disabled={checkIfInputDisabled() || !enableSwap}\n ref={(el) => (swapBtnRef = el as HTMLButtonElement)}\n >\n <svg\n ref={(el) => (svgRef = el as unknown as SVGElement)}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon-tabler icons-tabler-outline icon-tabler-transfer\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M20 10h-16l5.5 -6\" />\n <path d=\"M4 14h16l-5.5 6\" />\n </svg>\n </button>\n ) as HTMLButtonElement\n\n const container = (\n <div className={`twin-swap-input ${styles.twinSwapInput}`} {...rest}>\n {normalizedInputs.map((input, index) => {\n const { label, id, name, value, disabled, inputProps } = input\n const isLeft = index === 0\n const inputId = id || name\n\n return (\n <div\n className={`${styles.inputWrapper} ${isLeft ? styles.inputLeft : styles.inputRight}`}\n >\n {label && <label htmlFor={inputId}>{label}</label>}\n <input\n ref={(el) => (inputRefs[index] = el as HTMLInputElement)}\n type=\"text\"\n id={inputId}\n name={name}\n value={value}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n )\n })}\n\n <div className={styles.swapButton}>{swapButton}</div>\n </div>\n ) as TwinSwapElement\n\n container.swap = swap\n container.toggleEnableSwap = toggleEnableSwap\n\n return container\n}\n"],"names":["TwinSwapInput","props","inputs","enableSwap","rest","normalizedInputs","inputRefs","swapCount","swapBtnRef","svgRef","checkIfInputDisabled","el","swap","a","b","va","vb","toggleEnableSwap","enable","next","swapButton","jsx","jsxs","container","styles","input","index","label","id","name","value","disabled","inputProps","isLeft","inputId"],"mappings":"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"}