@inpageedit/core 0.5.4 → 0.7.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.
- package/dist/CheckBox-D3rHnX7I.js +13 -0
- package/dist/CheckBox-D3rHnX7I.js.map +1 -0
- package/dist/IconQuickEdit-YVn1ANbm.js +27 -0
- package/dist/IconQuickEdit-YVn1ANbm.js.map +1 -0
- package/dist/InPageEdit.d.ts +7 -5
- package/dist/InputBox-BV4m05Xs.js +22 -0
- package/dist/InputBox-BV4m05Xs.js.map +1 -0
- package/dist/RadioBox-nJqWsxW2.js +13 -0
- package/dist/RadioBox-nJqWsxW2.js.map +1 -0
- package/dist/__test__/utils/constants.d.ts +2 -0
- package/dist/components/Icon/IconEdit.d.ts +2 -0
- package/dist/components/Icon/IconQuickEdit.d.ts +2 -0
- package/dist/components/MwUserLinks.d.ts +2 -0
- package/dist/components/index.js +13 -11
- package/dist/components/index.js.map +1 -1
- package/dist/{index-i-Uf0vuA.js → index-1JtE4urY.js} +490 -374
- package/dist/{index-i-Uf0vuA.js.map → index-1JtE4urY.js.map} +1 -1
- package/dist/{index-UyiZ7umI.js → index-2AEdgbUL.js} +4 -4
- package/dist/index-2AEdgbUL.js.map +1 -0
- package/dist/index-2kN4SKmT.js +116 -0
- package/dist/index-2kN4SKmT.js.map +1 -0
- package/dist/{index-BSjnoNn2.js → index-B3Bsg_nE.js} +5 -3
- package/dist/index-B3Bsg_nE.js.map +1 -0
- package/dist/index-BCMwmSfQ.js +295 -0
- package/dist/index-BCMwmSfQ.js.map +1 -0
- package/dist/{index-BedbUMp8.js → index-C0ci6Ll1.js} +14 -12
- package/dist/index-C0ci6Ll1.js.map +1 -0
- package/dist/index-CZnu6cRK.js +319 -0
- package/dist/index-CZnu6cRK.js.map +1 -0
- package/dist/{index-xJ2bdsOD.js → index-CheNjwas.js} +5 -5
- package/dist/{index-xJ2bdsOD.js.map → index-CheNjwas.js.map} +1 -1
- package/dist/{index-DtOC8Ck-.js → index-CrWxZ0yl.js} +66 -63
- package/dist/{index-DtOC8Ck-.js.map → index-CrWxZ0yl.js.map} +1 -1
- package/dist/{index-DNQjqBV-.js → index-DqfQ7hp6.js} +3359 -3037
- package/dist/index-DqfQ7hp6.js.map +1 -0
- package/dist/index-lZkYoUca.js +46 -0
- package/dist/index-lZkYoUca.js.map +1 -0
- package/dist/index-sfkutNHj.js +201 -0
- package/dist/index-sfkutNHj.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/makeCallable-LDU0xZMJ.js +40 -0
- package/dist/makeCallable-LDU0xZMJ.js.map +1 -0
- package/dist/models/WikiPage/index.d.ts +2 -2
- package/dist/models/WikiTitle/index.d.ts +87 -11
- package/dist/models/WikiTitle/index.spec.d.ts +1 -0
- package/dist/noop-ClDc6zv4.js +6 -0
- package/dist/noop-ClDc6zv4.js.map +1 -0
- package/dist/plugins/in-article-links/index.d.ts +33 -7
- package/dist/plugins/quick-delete/index.d.ts +47 -0
- package/dist/plugins/quick-diff/PluginQuickDiffCore.d.ts +4 -2
- package/dist/plugins/quick-diff/components/DiffTable.d.ts +17 -0
- package/dist/plugins/quick-preview/index.d.ts +6 -3
- package/dist/services/ApiService.d.ts +2 -2
- package/dist/services/ModalService/IPEModal.d.ts +1 -1
- package/dist/services/SiteMetadataService.d.ts +43 -4
- package/dist/services/WikiPageService.d.ts +2 -2
- package/dist/services/WikiTitleService.d.ts +14 -0
- package/dist/style.css +1 -1
- package/dist/types/SiteMetadata.d.ts +1 -1
- package/dist/utils/url.d.ts +24 -0
- package/lib/index.umd.js +28 -28
- package/lib/index.umd.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +10 -1
- package/dist/InputBox-FIzJ-rPN.js +0 -30
- package/dist/InputBox-FIzJ-rPN.js.map +0 -1
- package/dist/RadioBox-CaA8VgLu.js +0 -54
- package/dist/RadioBox-CaA8VgLu.js.map +0 -1
- package/dist/index-BSjnoNn2.js.map +0 -1
- package/dist/index-BedbUMp8.js.map +0 -1
- package/dist/index-DNQjqBV-.js.map +0 -1
- package/dist/index-UyiZ7umI.js.map +0 -1
- package/dist/index-e7eyr1FL.js +0 -96
- package/dist/index-e7eyr1FL.js.map +0 -1
- package/dist/index-rMDuLpcz.js +0 -458
- package/dist/index-rMDuLpcz.js.map +0 -1
- package/dist/plugins/quick-edit/PluginQuickEditInArticleLinks.d.ts +0 -14
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { j as e } from "./index-CvhkVj_L.js";
|
|
2
|
+
const h = (c) => {
|
|
3
|
+
const { id: s, name: a, label: o, checked: p, inputProps: l, labelProps: n, children: r, ...i } = c;
|
|
4
|
+
return /* @__PURE__ */ e("label", { className: "theme-ipe ipe-checkbox", ...i, children: [
|
|
5
|
+
/* @__PURE__ */ e("input", { type: "checkbox", id: s, name: a, checked: p, ...l }),
|
|
6
|
+
/* @__PURE__ */ e("span", { className: "ipe-checkbox-box" }),
|
|
7
|
+
/* @__PURE__ */ e("span", { ...n, children: o || r })
|
|
8
|
+
] });
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
h as C
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=CheckBox-D3rHnX7I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckBox-D3rHnX7I.js","sources":["../src/components/CheckBox.tsx"],"sourcesContent":["import { JSX, ReactNode } from 'jsx-dom'\n\nexport type CheckBoxProps = {\n id?: string\n name: string\n label?: string | HTMLElement\n checked?: boolean\n inputProps?: JSX.IntrinsicElements['input']\n labelProps?: JSX.IntrinsicElements['span']\n} & JSX.IntrinsicElements['label']\n\nexport const CheckBox = (props: CheckBoxProps) => {\n const { id, name, label, checked, inputProps, labelProps, children, ...rest } = props\n return (\n <label className=\"theme-ipe ipe-checkbox\" {...rest}>\n <input type=\"checkbox\" id={id} name={name} checked={checked} {...inputProps} />\n <span className=\"ipe-checkbox-box\"></span>\n <span {...labelProps}>{label || children}</span>\n </label>\n )\n}\n"],"names":["CheckBox","props","id","name","label","checked","inputProps","labelProps","children","rest","jsxs","jsx"],"mappings":";AAWO,MAAMA,IAAW,CAACC,MAAyB;AAChD,QAAM,EAAE,IAAAC,GAAI,MAAAC,GAAM,OAAAC,GAAO,SAAAC,GAAS,YAAAC,GAAY,YAAAC,GAAY,UAAAC,GAAU,GAAGC,EAAA,IAASR;AAChF,SACES,gBAAAA,EAAC,SAAA,EAAM,WAAU,0BAA0B,GAAGD,GAC5C,UAAA;AAAA,IAAA,gBAAAE,EAAC,WAAM,MAAK,YAAW,IAAAT,GAAQ,MAAAC,GAAY,SAAAE,GAAmB,GAAGC,GAAY;AAAA,IAC7E,gBAAAK,EAAC,QAAA,EAAK,WAAU,mBAAA,CAAmB;AAAA,IACnC,gBAAAA,EAAC,QAAA,EAAM,GAAGJ,GAAa,eAASC,EAAA,CAAS;AAAA,EAAA,GAC3C;AAEJ;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { j as o } from "./index-CvhkVj_L.js";
|
|
2
|
+
const l = (t) => /* @__PURE__ */ o(
|
|
3
|
+
"svg",
|
|
4
|
+
{
|
|
5
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6
|
+
width: "24",
|
|
7
|
+
height: "24",
|
|
8
|
+
viewBox: "0 0 24 24",
|
|
9
|
+
fill: "none",
|
|
10
|
+
stroke: "currentColor",
|
|
11
|
+
"stroke-width": "2",
|
|
12
|
+
"stroke-linecap": "round",
|
|
13
|
+
"stroke-linejoin": "round",
|
|
14
|
+
class: "icon icon-tabler icons-tabler-outline icon-tabler-pencil-bolt",
|
|
15
|
+
...t,
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ o("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
18
|
+
/* @__PURE__ */ o("path", { d: "M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" }),
|
|
19
|
+
/* @__PURE__ */ o("path", { d: "M13.5 6.5l4 4" }),
|
|
20
|
+
/* @__PURE__ */ o("path", { d: "M19 16l-2 3h4l-2 3" })
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
export {
|
|
25
|
+
l as I
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=IconQuickEdit-YVn1ANbm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconQuickEdit-YVn1ANbm.js","sources":["../src/components/Icon/IconQuickEdit.tsx"],"sourcesContent":["import { SVGProps } from 'jsx-dom'\n\nexport const IconQuickEdit = (props: SVGProps<SVGSVGElement>) => (\n <svg\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 icon-tabler icons-tabler-outline icon-tabler-pencil-bolt\"\n {...props}\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\" />\n <path d=\"M13.5 6.5l4 4\" />\n <path d=\"M19 16l-2 3h4l-2 3\" />\n </svg>\n)\n"],"names":["IconQuickEdit","props","jsxs","jsx"],"mappings":";AAEO,MAAMA,IAAgB,CAACC,MAC5BC,gBAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,gBAAa;AAAA,IACb,kBAAe;AAAA,IACf,mBAAgB;AAAA,IAChB,OAAM;AAAA,IACL,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAAC,UAAK,QAAO,QAAO,GAAE,iBAAgB,MAAK,QAAO;AAAA,MAClD,gBAAAA,EAAC,QAAA,EAAK,GAAE,0DAAA,CAA0D;AAAA,MAClE,gBAAAA,EAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,MACxB,gBAAAA,EAAC,QAAA,EAAK,GAAE,qBAAA,CAAqB;AAAA,IAAA;AAAA,EAAA;AAC/B;"}
|
package/dist/InPageEdit.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { Context, Inject, Events as CordisEvents } from '@cordisjs/core';
|
|
2
2
|
import { Logger } from '@inpageedit/logger';
|
|
3
|
+
import { FexiosConfigs } from 'fexios';
|
|
4
|
+
export interface InPageEditCoreConfig {
|
|
5
|
+
apiConfigs: Partial<FexiosConfigs>;
|
|
6
|
+
legacyPreferences: Record<string, any>;
|
|
7
|
+
logLevel: number;
|
|
8
|
+
autoloadStyles: boolean;
|
|
9
|
+
}
|
|
3
10
|
/**
|
|
4
11
|
* ✏️ InPageEdit NEXT
|
|
5
12
|
*
|
|
@@ -21,11 +28,6 @@ export declare class InPageEdit extends Context {
|
|
|
21
28
|
constructor(config?: Partial<InPageEditCoreConfig>);
|
|
22
29
|
useScope(inject: Inject): Promise<this>;
|
|
23
30
|
}
|
|
24
|
-
export interface InPageEditCoreConfig {
|
|
25
|
-
baseURL: string | URL;
|
|
26
|
-
legacyPreferences: Record<string, any>;
|
|
27
|
-
logLevel: number;
|
|
28
|
-
}
|
|
29
31
|
export { default as Schema } from 'schemastery';
|
|
30
32
|
export * from '@inpageedit/logger';
|
|
31
33
|
export { Inject, Service } from '@cordisjs/core';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { j as e } from "./index-CvhkVj_L.js";
|
|
2
|
+
const b = (t) => {
|
|
3
|
+
const { label: s, id: l, name: i, value: a, disabled: o, labelProps: p, inputProps: r, ...n } = t;
|
|
4
|
+
return /* @__PURE__ */ e("div", { className: "theme-ipe ipe-input-box", ...n, children: [
|
|
5
|
+
/* @__PURE__ */ e("label", { htmlFor: l, style: { display: "block" }, ...p, children: s }),
|
|
6
|
+
/* @__PURE__ */ e(
|
|
7
|
+
"input",
|
|
8
|
+
{
|
|
9
|
+
id: l,
|
|
10
|
+
name: i,
|
|
11
|
+
value: a,
|
|
12
|
+
disabled: o,
|
|
13
|
+
style: { width: "100%" },
|
|
14
|
+
...r
|
|
15
|
+
}
|
|
16
|
+
)
|
|
17
|
+
] });
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
b as I
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=InputBox-BV4m05Xs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputBox-BV4m05Xs.js","sources":["../src/components/InputBox.tsx"],"sourcesContent":["import { JSX } from 'jsx-dom'\n\nexport type InputBoxProps = {\n label: string\n id?: string\n name: string\n value?: string\n disabled?: boolean\n labelProps?: JSX.IntrinsicElements['label']\n inputProps?: JSX.IntrinsicElements['input']\n} & JSX.IntrinsicElements['div']\n\nexport const InputBox = (props: InputBoxProps) => {\n const { label, id, name, value, disabled, labelProps, inputProps, ...rest } = props\n return (\n <div className=\"theme-ipe ipe-input-box\" {...rest}>\n <label htmlFor={id} style={{ display: 'block' }} {...labelProps}>\n {label}\n </label>\n <input\n id={id}\n name={name}\n value={value}\n disabled={disabled}\n style={{ width: '100%' }}\n {...inputProps}\n />\n </div>\n )\n}\n"],"names":["InputBox","props","label","id","name","value","disabled","labelProps","inputProps","rest","jsxs","jsx"],"mappings":";AAYO,MAAMA,IAAW,CAACC,MAAyB;AAChD,QAAM,EAAE,OAAAC,GAAO,IAAAC,GAAI,MAAAC,GAAM,OAAAC,GAAO,UAAAC,GAAU,YAAAC,GAAY,YAAAC,GAAY,GAAGC,EAAA,IAASR;AAC9E,SACES,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BAA2B,GAAGD,GAC3C,UAAA;AAAA,IAAA,gBAAAE,EAAC,SAAA,EAAM,SAASR,GAAI,OAAO,EAAE,SAAS,QAAA,GAAY,GAAGI,GAClD,UAAAL,EAAA,CACH;AAAA,IACA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAAR;AAAA,QACA,MAAAC;AAAA,QACA,OAAAC;AAAA,QACA,UAAAC;AAAA,QACA,OAAO,EAAE,OAAO,OAAA;AAAA,QACf,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { j as e } from "./index-CvhkVj_L.js";
|
|
2
|
+
const d = (a) => {
|
|
3
|
+
const { id: o, name: s, value: i, label: r, inputProps: l, labelProps: p, children: n, ...t } = a;
|
|
4
|
+
return /* @__PURE__ */ e("label", { className: "theme-ipe ipe-radio-box", ...t, children: [
|
|
5
|
+
/* @__PURE__ */ e("input", { type: "radio", id: o, name: s, value: i, ...l }),
|
|
6
|
+
/* @__PURE__ */ e("span", { className: "ipe-checkbox-box" }),
|
|
7
|
+
/* @__PURE__ */ e("span", { ...p, children: r || n })
|
|
8
|
+
] });
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
d as R
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=RadioBox-nJqWsxW2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioBox-nJqWsxW2.js","sources":["../src/components/RadioBox.tsx"],"sourcesContent":["import { JSX, ReactNode } from 'jsx-dom'\n\nexport type RadioBoxProps = {\n id?: string\n name: string\n value: string\n label?: string | HTMLElement\n inputProps?: JSX.IntrinsicElements['input']\n labelProps?: JSX.IntrinsicElements['span']\n} & JSX.IntrinsicElements['label']\n\nexport const RadioBox = (props: RadioBoxProps) => {\n const { id, name, value, label, inputProps, labelProps, children, ...rest } = props\n return (\n <label className=\"theme-ipe ipe-radio-box\" {...rest}>\n <input type=\"radio\" id={id} name={name} value={value} {...inputProps} />\n <span className=\"ipe-checkbox-box\"></span>\n <span {...labelProps}>{label || children}</span>\n </label>\n )\n}\n"],"names":["RadioBox","props","id","name","value","label","inputProps","labelProps","children","rest","jsxs","jsx"],"mappings":";AAWO,MAAMA,IAAW,CAACC,MAAyB;AAChD,QAAM,EAAE,IAAAC,GAAI,MAAAC,GAAM,OAAAC,GAAO,OAAAC,GAAO,YAAAC,GAAY,YAAAC,GAAY,UAAAC,GAAU,GAAGC,EAAA,IAASR;AAC9E,SACES,gBAAAA,EAAC,SAAA,EAAM,WAAU,2BAA2B,GAAGD,GAC7C,UAAA;AAAA,IAAA,gBAAAE,EAAC,WAAM,MAAK,SAAQ,IAAAT,GAAQ,MAAAC,GAAY,OAAAC,GAAe,GAAGE,GAAY;AAAA,IACtE,gBAAAK,EAAC,QAAA,EAAK,WAAU,mBAAA,CAAmB;AAAA,IACnC,gBAAAA,EAAC,QAAA,EAAM,GAAGJ,GAAa,eAASC,EAAA,CAAS;AAAA,EAAA,GAC3C;AAEJ;"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { M as
|
|
1
|
+
import { M as x } from "../index-lZkYoUca.js";
|
|
2
2
|
import { j as n } from "../index-CvhkVj_L.js";
|
|
3
|
-
import { P as
|
|
4
|
-
import { T as
|
|
5
|
-
import { A as
|
|
6
|
-
import { C as
|
|
3
|
+
import { P as V } from "../index-CvhkVj_L.js";
|
|
4
|
+
import { T as A } from "../index-Bh70Udzi.js";
|
|
5
|
+
import { A as B } from "../ActionButton-BgbTKTg7.js";
|
|
6
|
+
import { C as T } from "../CheckBox-D3rHnX7I.js";
|
|
7
|
+
import { I as $ } from "../InputBox-BV4m05Xs.js";
|
|
8
|
+
import { R as k } from "../RadioBox-nJqWsxW2.js";
|
|
7
9
|
const r = "_tabview_zlbug_1", _ = "_labels_container_zlbug_4", b = "_label_zlbug_4", d = "_active_zlbug_32", m = "_contents_container_zlbug_35", i = {
|
|
8
10
|
tabview: r,
|
|
9
11
|
labels_container: _,
|
|
@@ -64,15 +66,15 @@ function p({ name: t, children: l }) {
|
|
|
64
66
|
);
|
|
65
67
|
}
|
|
66
68
|
export {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
B as ActionButton,
|
|
70
|
+
T as CheckBox,
|
|
69
71
|
$ as InputBox,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
x as MBox,
|
|
73
|
+
V as ProgressBar,
|
|
74
|
+
k as RadioBox,
|
|
73
75
|
p as TabContent,
|
|
74
76
|
f as TabLabel,
|
|
75
77
|
h as TabView,
|
|
76
|
-
|
|
78
|
+
A as TwinSwapInput
|
|
77
79
|
};
|
|
78
80
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/TabView/index.tsx"],"sourcesContent":["import { ReactNode } from 'jsx-dom'\nimport styles from './styles.module.sass'\n\nexport interface TabViewLabelOptions {\n name: string\n children: ReactNode\n}\n\nconsole.log(styles)\n\nexport function TabView({\n tabs = [],\n defaultActiveIndex = 0,\n}: {\n tabs: (TabViewLabelOptions & { content: ReactNode })[]\n defaultActiveIndex?: number\n}) {\n const el = (\n <div className={`ipe-tabView ${styles.tabview}`}>\n <ul className={`ipe-tabView__labels-container ${styles.labels_container}`}>\n {tabs.map((tab) => (\n <TabLabel key={tab.name} name={tab.name}>\n {tab.children}\n </TabLabel>\n ))}\n </ul>\n <div className={`ipe-tabView__contents ${styles.contents_container}`}>\n {tabs.map((tab) => (\n <TabContent key={tab.name} name={tab.name}>\n {tab.content}\n </TabContent>\n ))}\n </div>\n </div>\n )\n\n const defaultActiveLabel = el.querySelector<HTMLAnchorElement>(\n `.ipe-tabView__labels-container > .ipe-tabView__label:nth-child(${defaultActiveIndex + 1})`\n )\n if (defaultActiveLabel) {\n defaultActiveLabel.click()\n }\n\n return el\n}\n\nexport function TabLabel({ name, children }: { name: string; children: ReactNode }) {\n return (\n <li\n data-tab-name={name}\n className={`ipe-tabView__label ${styles.label}`}\n onClick={function (e) {\n e.preventDefault()\n const container = this.closest('.ipe-tabView')\n if (!container) return\n const labels = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__labels')\n )?.children\n if (labels) {\n Array.from(labels).forEach((label) => {\n label.classList.remove(styles.active)\n })\n }\n this.classList.add(styles.active)\n const contents = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__contents')\n )?.children\n if (contents) {\n Array.from(contents).forEach((content) => {\n if (content instanceof HTMLElement) {\n if (content.dataset.tabName === name) {\n content.style.display = ''\n content.classList.add(styles.active)\n } else {\n content.style.display = 'none'\n content.classList.remove(styles.active)\n }\n }\n })\n }\n }}\n >\n <a>{children || name}</a>\n </li>\n )\n}\n\nexport function TabContent({ name, children }: { name: string; children: ReactNode }) {\n return (\n <div\n data-tab-name={name}\n className=\"ipe-tabView__content-body\"\n style={{\n display: 'none',\n }}\n >\n {children}\n </div>\n )\n}\n"],"names":["TabView","tabs","defaultActiveIndex","el","jsxs","styles","jsx","tab","TabLabel","TabContent","defaultActiveLabel","name","children","e","container","labels","label","contents","content"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/TabView/index.tsx"],"sourcesContent":["import { ReactNode } from 'jsx-dom'\nimport styles from './styles.module.sass'\n\nexport interface TabViewLabelOptions {\n name: string\n children: ReactNode\n}\n\nconsole.log(styles)\n\nexport function TabView({\n tabs = [],\n defaultActiveIndex = 0,\n}: {\n tabs: (TabViewLabelOptions & { content: ReactNode })[]\n defaultActiveIndex?: number\n}) {\n const el = (\n <div className={`ipe-tabView ${styles.tabview}`}>\n <ul className={`ipe-tabView__labels-container ${styles.labels_container}`}>\n {tabs.map((tab) => (\n <TabLabel key={tab.name} name={tab.name}>\n {tab.children}\n </TabLabel>\n ))}\n </ul>\n <div className={`ipe-tabView__contents ${styles.contents_container}`}>\n {tabs.map((tab) => (\n <TabContent key={tab.name} name={tab.name}>\n {tab.content}\n </TabContent>\n ))}\n </div>\n </div>\n )\n\n const defaultActiveLabel = el.querySelector<HTMLAnchorElement>(\n `.ipe-tabView__labels-container > .ipe-tabView__label:nth-child(${defaultActiveIndex + 1})`\n )\n if (defaultActiveLabel) {\n defaultActiveLabel.click()\n }\n\n return el\n}\n\nexport function TabLabel({ name, children }: { name: string; children: ReactNode }) {\n return (\n <li\n data-tab-name={name}\n className={`ipe-tabView__label ${styles.label}`}\n onClick={function (e) {\n e.preventDefault()\n const container = this.closest('.ipe-tabView')\n if (!container) return\n const labels = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__labels')\n )?.children\n if (labels) {\n Array.from(labels).forEach((label) => {\n label.classList.remove(styles.active)\n })\n }\n this.classList.add(styles.active)\n const contents = Array.from(container.children).find((el) =>\n el.classList.contains('ipe-tabView__contents')\n )?.children\n if (contents) {\n Array.from(contents).forEach((content) => {\n if (content instanceof HTMLElement) {\n if (content.dataset.tabName === name) {\n content.style.display = ''\n content.classList.add(styles.active)\n } else {\n content.style.display = 'none'\n content.classList.remove(styles.active)\n }\n }\n })\n }\n }}\n >\n <a>{children || name}</a>\n </li>\n )\n}\n\nexport function TabContent({ name, children }: { name: string; children: ReactNode }) {\n return (\n <div\n data-tab-name={name}\n className=\"ipe-tabView__content-body\"\n style={{\n display: 'none',\n }}\n >\n {children}\n </div>\n )\n}\n"],"names":["TabView","tabs","defaultActiveIndex","el","jsxs","styles","jsx","tab","TabLabel","TabContent","defaultActiveLabel","name","children","e","container","labels","label","contents","content"],"mappings":";;;;;;;;;;;;;;;AAUO,SAASA,EAAQ;AAAA,EACtB,MAAAC,IAAO,CAAA;AAAA,EACP,oBAAAC,IAAqB;AACvB,GAGG;AACD,QAAMC,IACJC,gBAAAA,EAAC,OAAA,EAAI,WAAW,eAAeC,EAAO,OAAO,IAC3C,UAAA;AAAA,IAAA,gBAAAC,EAAC,MAAA,EAAG,WAAW,iCAAiCD,EAAO,gBAAgB,IACpE,UAAAJ,EAAK,IAAI,CAACM,wBACRC,GAAA,EAAwB,MAAMD,EAAI,MAChC,UAAAA,EAAI,YADQA,EAAI,IAEnB,CACD,EAAA,CACH;AAAA,IACA,gBAAAD,EAAC,SAAI,WAAW,yBAAyBD,EAAO,kBAAkB,IAC/D,YAAK,IAAI,CAACE,MACT,gBAAAD,EAACG,GAAA,EAA0B,MAAMF,EAAI,MAClC,YAAI,QAAA,GADUA,EAAI,IAErB,CACD,EAAA,CACH;AAAA,EAAA,GACF,GAGIG,IAAqBP,EAAG;AAAA,IAC5B,kEAAkED,IAAqB,CAAC;AAAA,EAAA;AAE1F,SAAIQ,KACFA,EAAmB,MAAA,GAGdP;AACT;AAEO,SAASK,EAAS,EAAE,MAAAG,GAAM,UAAAC,KAAmD;AAClF,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAeK;AAAA,MACf,WAAW,sBAAsBN,EAAO,KAAK;AAAA,MAC7C,SAAS,SAAUQ,GAAG;AACpB,QAAAA,EAAE,eAAA;AACF,cAAMC,IAAY,KAAK,QAAQ,cAAc;AAC7C,YAAI,CAACA,EAAW;AAChB,cAAMC,IAAS,MAAM,KAAKD,EAAU,QAAQ,EAAE;AAAA,UAAK,CAACX,MAClDA,EAAG,UAAU,SAAS,qBAAqB;AAAA,QAAA,GAC1C;AACH,QAAIY,KACF,MAAM,KAAKA,CAAM,EAAE,QAAQ,CAACC,MAAU;AACpC,UAAAA,EAAM,UAAU,OAAOX,EAAO,MAAM;AAAA,QACtC,CAAC,GAEH,KAAK,UAAU,IAAIA,EAAO,MAAM;AAChC,cAAMY,IAAW,MAAM,KAAKH,EAAU,QAAQ,EAAE;AAAA,UAAK,CAACX,MACpDA,EAAG,UAAU,SAAS,uBAAuB;AAAA,QAAA,GAC5C;AACH,QAAIc,KACF,MAAM,KAAKA,CAAQ,EAAE,QAAQ,CAACC,MAAY;AACxC,UAAIA,aAAmB,gBACjBA,EAAQ,QAAQ,YAAYP,KAC9BO,EAAQ,MAAM,UAAU,IACxBA,EAAQ,UAAU,IAAIb,EAAO,MAAM,MAEnCa,EAAQ,MAAM,UAAU,QACxBA,EAAQ,UAAU,OAAOb,EAAO,MAAM;AAAA,QAG5C,CAAC;AAAA,MAEL;AAAA,MAEA,UAAA,gBAAAC,EAAC,KAAA,EAAG,UAAAM,KAAYD,EAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAG3B;AAEO,SAASF,EAAW,EAAE,MAAAE,GAAM,UAAAC,KAAmD;AACpF,SACE,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAeK;AAAA,MACf,WAAU;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,MAGV,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|