routelit-client 0.5.5 → 0.6.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/dist/{checkbox-CnAPv6gA.js → checkbox-DQUb3TDS.js} +2 -2
- package/dist/{checkbox-CnAPv6gA.js.map → checkbox-DQUb3TDS.js.map} +1 -1
- package/dist/{checkbox-group-BQ6tzqkw.js → checkbox-group-BlYoDpMl.js} +2 -2
- package/dist/{checkbox-group-BQ6tzqkw.js.map → checkbox-group-BlYoDpMl.js.map} +1 -1
- package/dist/{checkbox-group-D0aFyB3Q.js → checkbox-group-Dlrbo0D3.js} +1 -1
- package/dist/{checkbox-CyfrA5F0.js → checkbox-mweWNCrB.js} +1 -1
- package/dist/{client-CvsQduoC.js → client-BgBd7UtG.js} +70 -23
- package/dist/client-BgBd7UtG.js.map +1 -0
- package/dist/{client-C5PMlGuK.js → client-CNfnjXsV.js} +1162 -1127
- package/dist/components/input-file.d.ts +5 -0
- package/dist/core/hooks.d.ts +9 -0
- package/dist/{dialog-CK9jpK1E.js → dialog-0-O_zA02.js} +1 -1
- package/dist/{dialog-DVTV0lme.js → dialog-BoC0EU3r.js} +2 -2
- package/dist/{dialog-DVTV0lme.js.map → dialog-BoC0EU3r.js.map} +1 -1
- package/dist/{input-COdzm7PE.js → input-BQry8Vlk.js} +1 -1
- package/dist/input-file-DAFYfBXA.js +29 -0
- package/dist/input-file-n3WCPjHD.js +30 -0
- package/dist/input-file-n3WCPjHD.js.map +1 -0
- package/dist/{input-BTZUvD18.js → input-lAU4w5dY.js} +2 -2
- package/dist/{input-BTZUvD18.js.map → input-lAU4w5dY.js.map} +1 -1
- package/dist/{radio-BBJIiIW3.js → radio-BBmuYM8O.js} +1 -1
- package/dist/{radio-4S_eOWJM.js → radio-Caa2LmzI.js} +2 -2
- package/dist/{radio-4S_eOWJM.js.map → radio-Caa2LmzI.js.map} +1 -1
- package/dist/routelit-client.es.dev.js +11 -11
- package/dist/routelit-client.es.js +1 -1
- package/dist/routelit-client.umd.dev.js +79 -5
- package/dist/routelit-client.umd.dev.js.map +1 -1
- package/dist/routelit-client.umd.js +17 -17
- package/dist/{select-Fqb9aXHT.js → select-CI0VZxaa.js} +2 -2
- package/dist/{select-Fqb9aXHT.js.map → select-CI0VZxaa.js.map} +1 -1
- package/dist/{select-A7Ok1BQf.js → select-CQZR4SSo.js} +1 -1
- package/dist/{textarea-D8u9p8Dd.js → textarea-CPUFfqAZ.js} +1 -1
- package/dist/{textarea-CKH_7CLe.js → textarea-Cch0qldX.js} +2 -2
- package/dist/{textarea-CKH_7CLe.js.map → textarea-Cch0qldX.js.map} +1 -1
- package/package.json +18 -17
- package/dist/client-CvsQduoC.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useCallback } from "react";
|
|
3
|
-
import { b as useFormDispatcherWithAttr } from "./client-
|
|
3
|
+
import { b as useFormDispatcherWithAttr } from "./client-BgBd7UtG.js";
|
|
4
4
|
const Checkbox = memo(function Checkbox2({
|
|
5
5
|
label,
|
|
6
6
|
id,
|
|
@@ -38,4 +38,4 @@ Checkbox.displayName = "Checkbox";
|
|
|
38
38
|
export {
|
|
39
39
|
Checkbox as default
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=checkbox-
|
|
41
|
+
//# sourceMappingURL=checkbox-DQUb3TDS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-
|
|
1
|
+
{"version":3,"file":"checkbox-DQUb3TDS.js","sources":["../src/components/checkbox.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport { useFormDispatcherWithAttr } from \"../core/context\";\n\nconst Checkbox = memo(function Checkbox({\n label,\n id,\n required,\n defaultChecked,\n ...props\n}: {\n label: string;\n caption?: string;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"onChange\">) {\n const dispatchChange = useFormDispatcherWithAttr(id!, \"change\", \"checked\");\n const onChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n dispatchChange(e.target.checked);\n },\n [dispatchChange]\n );\n return (\n <div className=\"rl-form-flex-control\">\n <input\n {...props}\n type=\"checkbox\"\n id={id}\n defaultChecked={defaultChecked}\n onChange={onChange}\n required={required}\n />\n <label htmlFor={id}>\n {label} {required && <span className=\"rl-required\">*</span>}\n </label>\n </div>\n );\n});\n\nCheckbox.displayName = \"Checkbox\";\n\nexport default Checkbox;\n"],"names":["Checkbox"],"mappings":";;;AAGM,MAAA,WAAW,KAAK,SAASA,UAAS;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAGmE;AACjE,QAAM,iBAAiB,0BAA0B,IAAK,UAAU,SAAS;AACzE,QAAM,WAAW;AAAA,IACf,CAAC,MAA2C;AAC3B,qBAAA,EAAE,OAAO,OAAO;AAAA,IACjC;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAEE,SAAA,qBAAC,OAAI,EAAA,WAAU,wBACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ,MAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,IACA,qBAAC,SAAM,EAAA,SAAS,IACb,UAAA;AAAA,MAAA;AAAA,MAAM;AAAA,MAAE,YAAY,oBAAC,QAAK,EAAA,WAAU,eAAc,UAAC,IAAA,CAAA;AAAA,IAAA,EACtD,CAAA;AAAA,EAAA,GACF;AAEJ,CAAC;AAED,SAAS,cAAc;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { memo, useCallback } from "react";
|
|
3
|
-
import { b as useFormDispatcherWithAttr } from "./client-
|
|
3
|
+
import { b as useFormDispatcherWithAttr } from "./client-BgBd7UtG.js";
|
|
4
4
|
function CheckboxGroupOption(props) {
|
|
5
5
|
const { id, value, onChange } = props;
|
|
6
6
|
const option = props.option;
|
|
@@ -60,4 +60,4 @@ CheckboxGroup.displayName = "CheckboxGroup";
|
|
|
60
60
|
export {
|
|
61
61
|
CheckboxGroup as default
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=checkbox-group-
|
|
63
|
+
//# sourceMappingURL=checkbox-group-BlYoDpMl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group-
|
|
1
|
+
{"version":3,"file":"checkbox-group-BlYoDpMl.js","sources":["../src/components/checkbox-group.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport { useFormDispatcherWithAttr } from \"../core/context\";\n\ntype CheckboxGroupProps = {\n id: string;\n label: string;\n value: string[];\n required?: boolean;\n flexDirection?: \"row\" | \"col\";\n options: Array<{ label: string; value: string; caption?: string; disabled?: boolean }>;\n};\n\nfunction CheckboxGroupOption(props: {\n option: CheckboxGroupProps[\"options\"][number];\n id: string;\n value: string[];\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}) {\n const { id, value, onChange } = props;\n\n const option: CheckboxGroupProps[\"options\"][number] =\n props.option;\n\n return (\n <div key={option.value} className=\"rl-form-flex-control\">\n <input\n disabled={option.disabled}\n type=\"checkbox\"\n value={option.value}\n id={`${id}-${option.value}`}\n checked={value.includes(option.value)}\n onChange={onChange}\n />\n <div className=\"rl-form-inline-label\">\n <label htmlFor={`${id}-${option.value}`}>{option.label}</label>\n {option.caption && (\n <small className=\"rl-form-control-caption\">{option.caption}</small>\n )}\n </div>\n </div>\n );\n}\n\nconst CheckboxGroup = memo(function CheckboxGroup({\n id,\n label,\n value,\n required,\n options,\n flexDirection = \"col\",\n}: CheckboxGroupProps) {\n const dispatchChange = useFormDispatcherWithAttr(id, \"change\", \"value\");\n const onChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.checked\n ? [...value, e.target.value]\n : value.filter((v) => v !== e.target.value);\n dispatchChange(newValue);\n },\n [dispatchChange, value]\n );\n return (\n <div className=\"rl-form-group\">\n {label && (\n <label>\n {label} {required && <span className=\"rl-required\">*</span>}\n </label>\n )}\n <div className={`rl-form-control-group rl-flex-${flexDirection}`}>\n {options?.map((option) => (\n <CheckboxGroupOption\n key={typeof option === \"string\" ? option : option.value}\n id={id}\n value={value}\n onChange={onChange}\n option={option}\n />\n ))}\n </div>\n </div>\n );\n});\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n\nexport default CheckboxGroup;\n"],"names":["CheckboxGroup"],"mappings":";;;AAYA,SAAS,oBAAoB,OAK1B;AACD,QAAM,EAAE,IAAI,OAAO,SAAa,IAAA;AAEhC,QAAM,SACJ,MAAM;AAGN,SAAA,qBAAC,OAAuB,EAAA,WAAU,wBAChC,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU,OAAO;AAAA,QACjB,MAAK;AAAA,QACL,OAAO,OAAO;AAAA,QACd,IAAI,GAAG,EAAE,IAAI,OAAO,KAAK;AAAA,QACzB,SAAS,MAAM,SAAS,OAAO,KAAK;AAAA,QACpC;AAAA,MAAA;AAAA,IACF;AAAA,IACA,qBAAC,OAAI,EAAA,WAAU,wBACb,UAAA;AAAA,MAAC,oBAAA,SAAA,EAAM,SAAS,GAAG,EAAE,IAAI,OAAO,KAAK,IAAK,UAAA,OAAO,MAAM,CAAA;AAAA,MACtD,OAAO,WACN,oBAAC,WAAM,WAAU,2BAA2B,iBAAO,QAAQ,CAAA;AAAA,IAAA,EAE/D,CAAA;AAAA,EAAA,EAAA,GAdQ,OAAO,KAejB;AAEJ;AAEM,MAAA,gBAAgB,KAAK,SAASA,eAAc;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAClB,GAAuB;AACrB,QAAM,iBAAiB,0BAA0B,IAAI,UAAU,OAAO;AACtE,QAAM,WAAW;AAAA,IACf,CAAC,MAA2C;AAC1C,YAAM,WAAW,EAAE,OAAO,UACtB,CAAC,GAAG,OAAO,EAAE,OAAO,KAAK,IACzB,MAAM,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,KAAK;AAC5C,qBAAe,QAAQ;AAAA,IACzB;AAAA,IACA,CAAC,gBAAgB,KAAK;AAAA,EACxB;AAEE,SAAA,qBAAC,OAAI,EAAA,WAAU,iBACZ,UAAA;AAAA,IAAA,8BACE,SACE,EAAA,UAAA;AAAA,MAAA;AAAA,MAAM;AAAA,MAAE,YAAY,oBAAC,QAAK,EAAA,WAAU,eAAc,UAAC,IAAA,CAAA;AAAA,IAAA,GACtD;AAAA,IAEF,oBAAC,SAAI,WAAW,iCAAiC,aAAa,IAC3D,UAAA,mCAAS,IAAI,CAAC,WACb;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAJK,OAAO,WAAW,WAAW,SAAS,OAAO;AAAA,IAAA,GAOxD,CAAA;AAAA,EAAA,GACF;AAEJ,CAAC;AAED,cAAc,cAAc;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as n, jsx as a } from "react/jsx-runtime";
|
|
2
2
|
import { memo as f, useCallback as p } from "react";
|
|
3
|
-
import { b } from "./client-
|
|
3
|
+
import { b } from "./client-CNfnjXsV.js";
|
|
4
4
|
function v(t) {
|
|
5
5
|
const { id: c, value: o, onChange: r } = t, e = t.option;
|
|
6
6
|
return /* @__PURE__ */ n("div", { className: "rl-form-flex-control", children: [
|
|
@@ -1067,16 +1067,41 @@ async function* sendEventStream(event, fragmentId) {
|
|
|
1067
1067
|
}
|
|
1068
1068
|
yield* handleUIEventStream(event, fragmentId);
|
|
1069
1069
|
}
|
|
1070
|
-
|
|
1071
|
-
const
|
|
1070
|
+
function processFileRequest(url, body, headers) {
|
|
1071
|
+
const formData = new FormData();
|
|
1072
|
+
const { uiEvent, ..._bodyRest } = body;
|
|
1073
|
+
const { data, ...uiEventRest } = uiEvent;
|
|
1074
|
+
const _body = { ..._bodyRest, uiEvent: uiEventRest };
|
|
1075
|
+
formData.append("json", JSON.stringify(_body));
|
|
1076
|
+
if (data.files) {
|
|
1077
|
+
for (const file of data.files) {
|
|
1078
|
+
formData.append("files", file);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
return fetch(url, {
|
|
1082
|
+
method: "POST",
|
|
1083
|
+
body: formData,
|
|
1084
|
+
headers
|
|
1085
|
+
});
|
|
1086
|
+
}
|
|
1087
|
+
function processJsonRequest(url, body, headers) {
|
|
1088
|
+
return fetch(url, {
|
|
1072
1089
|
method: "POST",
|
|
1073
1090
|
body: JSON.stringify(body),
|
|
1074
1091
|
headers: {
|
|
1075
|
-
|
|
1076
|
-
|
|
1092
|
+
...headers,
|
|
1093
|
+
"Content-Type": "application/json"
|
|
1077
1094
|
},
|
|
1078
1095
|
credentials: "include"
|
|
1079
1096
|
});
|
|
1097
|
+
}
|
|
1098
|
+
function processRequest(url, body, headers) {
|
|
1099
|
+
if ("files" in body.uiEvent.data)
|
|
1100
|
+
return processFileRequest(url, body, headers);
|
|
1101
|
+
return processJsonRequest(url, body, headers);
|
|
1102
|
+
}
|
|
1103
|
+
async function* sendUIEventStream(url, body, headers) {
|
|
1104
|
+
const res = await processRequest(url, body, headers);
|
|
1080
1105
|
if (!res.ok) {
|
|
1081
1106
|
throw new Error("Failed to send server event");
|
|
1082
1107
|
}
|
|
@@ -1253,6 +1278,7 @@ const _RouteLitManager = class _RouteLitManager {
|
|
|
1253
1278
|
return ((_a = this.parentManager) == null ? void 0 : _a.getLastURL()) ?? this.lastURL;
|
|
1254
1279
|
});
|
|
1255
1280
|
__publicField(this, "handleEvent", async (e) => {
|
|
1281
|
+
console.log("handleEvent this.fragmentId:", this.fragmentId);
|
|
1256
1282
|
if (e.detail.type === "navigate" && this.fragmentId) {
|
|
1257
1283
|
return;
|
|
1258
1284
|
}
|
|
@@ -1577,6 +1603,7 @@ const RouteLitContext = createContext({
|
|
|
1577
1603
|
function useRouteLitContext() {
|
|
1578
1604
|
var _a, _b;
|
|
1579
1605
|
const context = useContext(RouteLitContext);
|
|
1606
|
+
console.log("useRouteLitContext context:", context);
|
|
1580
1607
|
if (!context || !context.manager || !context.componentStore) {
|
|
1581
1608
|
const globalManager = (_a = window.RoutelitClient) == null ? void 0 : _a.manager;
|
|
1582
1609
|
const globalComponentStore = ((_b = window.RoutelitClient) == null ? void 0 : _b.componentStore) || window.componentStore;
|
|
@@ -1702,7 +1729,17 @@ function FinalComponent({
|
|
|
1702
1729
|
componentStore: componentStore2
|
|
1703
1730
|
}) {
|
|
1704
1731
|
const element = useMemo(
|
|
1705
|
-
() => /* @__PURE__ */ jsx(
|
|
1732
|
+
() => /* @__PURE__ */ jsx(
|
|
1733
|
+
RLElement,
|
|
1734
|
+
{
|
|
1735
|
+
name: c.name,
|
|
1736
|
+
id: c.key,
|
|
1737
|
+
address: c.address,
|
|
1738
|
+
props: c.props,
|
|
1739
|
+
children: c.children,
|
|
1740
|
+
componentStore: componentStore2
|
|
1741
|
+
}
|
|
1742
|
+
),
|
|
1706
1743
|
[c.name, c.key, c.address, c.props, c.children, componentStore2]
|
|
1707
1744
|
);
|
|
1708
1745
|
if (c.virtual) {
|
|
@@ -1751,6 +1788,13 @@ function useInputChangeEvent(id, value, valueGetter = EVENT_VALUE_GETTER) {
|
|
|
1751
1788
|
};
|
|
1752
1789
|
return { handleBlur, handleKeyDown };
|
|
1753
1790
|
}
|
|
1791
|
+
function useInputFileChangeEvent(id) {
|
|
1792
|
+
const dispatchChange = useFormDispatcherWithAttr(id, "change", "files");
|
|
1793
|
+
return (e) => {
|
|
1794
|
+
console.log("useInputFileChangeEvent dispatchChange e.target.files", e.target.files);
|
|
1795
|
+
dispatchChange(e.target.files);
|
|
1796
|
+
};
|
|
1797
|
+
}
|
|
1754
1798
|
function getInlineElements(props, elementKeys, componentStore2) {
|
|
1755
1799
|
const elements = {};
|
|
1756
1800
|
if (!elementKeys || elementKeys.length === 0) return null;
|
|
@@ -19893,17 +19937,18 @@ if (window.RoutelitClient) {
|
|
|
19893
19937
|
manager = initManager();
|
|
19894
19938
|
componentStore = new ComponentStore();
|
|
19895
19939
|
}
|
|
19896
|
-
const Dialog = React.lazy(() => import("./dialog-
|
|
19940
|
+
const Dialog = React.lazy(() => import("./dialog-BoC0EU3r.js"));
|
|
19897
19941
|
const Container = React.lazy(() => import("./container-Ds-tbnBg.js"));
|
|
19898
19942
|
const Expander = React.lazy(() => import("./expander-DXsTGgwa.js"));
|
|
19899
19943
|
const Flex = React.lazy(() => import("./flex-DazUjcnc.js"));
|
|
19900
|
-
const Input = React.lazy(() => import("./input-
|
|
19901
|
-
const Radio = React.lazy(() => import("./radio-
|
|
19902
|
-
const Select = React.lazy(() => import("./select-
|
|
19903
|
-
const Textarea = React.lazy(() => import("./textarea-
|
|
19904
|
-
const Checkbox = React.lazy(() => import("./checkbox-
|
|
19905
|
-
const CheckboxGroup = React.lazy(() => import("./checkbox-group-
|
|
19944
|
+
const Input = React.lazy(() => import("./input-lAU4w5dY.js"));
|
|
19945
|
+
const Radio = React.lazy(() => import("./radio-Caa2LmzI.js"));
|
|
19946
|
+
const Select = React.lazy(() => import("./select-CI0VZxaa.js"));
|
|
19947
|
+
const Textarea = React.lazy(() => import("./textarea-Cch0qldX.js"));
|
|
19948
|
+
const Checkbox = React.lazy(() => import("./checkbox-DQUb3TDS.js"));
|
|
19949
|
+
const CheckboxGroup = React.lazy(() => import("./checkbox-group-BlYoDpMl.js"));
|
|
19906
19950
|
const Markdown = React.lazy(() => import("./markdown-DhpGCd5Q.js"));
|
|
19951
|
+
const InputFile = React.lazy(() => import("./input-file-n3WCPjHD.js"));
|
|
19907
19952
|
componentStore.register(
|
|
19908
19953
|
"root",
|
|
19909
19954
|
withSimpleComponent("div", { className: "rl-container" })
|
|
@@ -19948,6 +19993,7 @@ componentStore.register(
|
|
|
19948
19993
|
})
|
|
19949
19994
|
);
|
|
19950
19995
|
componentStore.register("checkbox-group", CheckboxGroup);
|
|
19996
|
+
componentStore.register("input-file", InputFile);
|
|
19951
19997
|
componentStore.forceUpdate();
|
|
19952
19998
|
const RoutelitClient = {
|
|
19953
19999
|
manager,
|
|
@@ -19973,19 +20019,20 @@ export {
|
|
|
19973
20019
|
RoutelitClient as R,
|
|
19974
20020
|
useInputChangeEvent as a,
|
|
19975
20021
|
useFormDispatcherWithAttr as b,
|
|
19976
|
-
|
|
19977
|
-
|
|
19978
|
-
|
|
19979
|
-
|
|
19980
|
-
|
|
19981
|
-
|
|
19982
|
-
|
|
19983
|
-
|
|
19984
|
-
|
|
19985
|
-
|
|
20022
|
+
useInputFileChangeEvent as c,
|
|
20023
|
+
componentStore as d,
|
|
20024
|
+
useDispatcherWithAttr as e,
|
|
20025
|
+
useFormDispatcher as f,
|
|
20026
|
+
useIsLoading as g,
|
|
20027
|
+
useError as h,
|
|
20028
|
+
withValueEventDispatcher as i,
|
|
20029
|
+
withSimpleComponent as j,
|
|
20030
|
+
withInputValueEventDispatcher as k,
|
|
20031
|
+
useLinkClickHandler as l,
|
|
19986
20032
|
manager as m,
|
|
20033
|
+
withCallbackAttributes as n,
|
|
19987
20034
|
renderApp as r,
|
|
19988
20035
|
useDispatcherWith as u,
|
|
19989
20036
|
withEventDispatcher as w
|
|
19990
20037
|
};
|
|
19991
|
-
//# sourceMappingURL=client-
|
|
20038
|
+
//# sourceMappingURL=client-BgBd7UtG.js.map
|