@declarion/react 0.31.2 → 0.34.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-lib/{ActionRunner-BzaZQtiI.js → ActionRunner-UGGvGypS.js} +925 -788
- package/dist-lib/{DraggableChildrenTable-DILqStHQ.js → DraggableChildrenTable-CljdYXd_.js} +30 -30
- package/dist-lib/DynamicIcon-BWO6QtNF.js +261 -0
- package/dist-lib/{Grid-BIsiUwPh.js → Grid-5Y_iPqNW.js} +2 -2
- package/dist-lib/{LayoutRenderer-3RvIsC9M.js → LayoutRenderer-CoTMmvNW.js} +670 -670
- package/dist-lib/{MarkdownRenderer-CaHhWrfm.js → MarkdownRenderer-unbncYEV.js} +1 -1
- package/dist-lib/RefreshControl-oeKhCjEC.js +837 -0
- package/dist-lib/SmartDetailPage.impl-Caxd97q6.js +1771 -0
- package/dist-lib/{SmartRecordListPage.impl-B1iws8yf.js → SmartRecordListPage.impl-BF_ieDc2.js} +253 -253
- package/dist-lib/api/data.d.ts +4 -4
- package/dist-lib/api/params.d.ts +1 -1
- package/dist-lib/components/layout/Rail.d.ts +5 -5
- package/dist-lib/components/layout/TopBar.d.ts +3 -1
- package/dist-lib/components/pages/DocumentsMenu.d.ts +22 -0
- package/dist-lib/components/pages/RecordDocumentsPanel.d.ts +42 -0
- package/dist-lib/components/pages/auth/AuthShell.d.ts +1 -1
- package/dist-lib/components/pages/list/ListHeader.d.ts +1 -11
- package/dist-lib/components/primitives/BrandLogo.d.ts +1 -1
- package/dist-lib/components/primitives/Icons.d.ts +1 -0
- package/dist-lib/components/primitives/Tooltip.d.ts +30 -0
- package/dist-lib/components/primitives/index.d.ts +2 -0
- package/dist-lib/components/shared/ActionResultDialog.d.ts +4 -0
- package/dist-lib/components/shared/ActionRunner.d.ts +1 -0
- package/dist-lib/components/shared/ObjectActionBar.d.ts +29 -0
- package/dist-lib/components/shared/PageHeader.d.ts +1 -1
- package/dist-lib/components/shared/RecordHeader.d.ts +3 -1
- package/dist-lib/components/shared/RefreshControl.d.ts +6 -0
- package/dist-lib/components/shared/ResponsiveActionBar.d.ts +9 -1
- package/dist-lib/hooks/useBranding.d.ts +8 -0
- package/dist-lib/hooks/useBrandingChrome.d.ts +6 -0
- package/dist-lib/hooks/useLiveObject.d.ts +9 -0
- package/dist-lib/hooks/useMutations.d.ts +3 -3
- package/dist-lib/hooks/useObject.d.ts +10 -0
- package/dist-lib/hooks/usePageStateRuntime.d.ts +1 -1
- package/dist-lib/hooks/useParams.d.ts +10 -1
- package/dist-lib/icons.js +1 -1
- package/dist-lib/index.d.ts +11 -5
- package/dist-lib/index.js +2457 -2335
- package/dist-lib/lib/actions.d.ts +6 -2
- package/dist-lib/lib/branding.d.ts +10 -1
- package/dist-lib/lib/document-templates.d.ts +12 -0
- package/dist-lib/lib/download.d.ts +20 -0
- package/dist-lib/lib/record-documents-key.d.ts +1 -0
- package/dist-lib/{registry-2KliNTHB.js → registry-DnPK3Msj.js} +1658 -1607
- package/dist-lib/testing.d.ts +5 -3
- package/dist-lib/testing.js +37 -33
- package/dist-lib/types/api.d.ts +62 -3
- package/dist-lib/types/schema.d.ts +18 -16
- package/dist-lib/{useProperties-Co3RdtuT.js → useProperties-CgRhBh0k.js} +70 -70
- package/dist-lib/{value-BooGwUik.js → value-GmL5BVFm.js} +29 -29
- package/package.json +1 -1
- package/dist-lib/DynamicIcon-DCRdxxZ7.js +0 -260
- package/dist-lib/SmartDetailPage.impl--EO-9fos.js +0 -1494
- package/dist-lib/hooks/useEntityItem.d.ts +0 -10
- package/dist-lib/peekDraftStore-yyzMbaiI.js +0 -468
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as e, t } from "./DynamicIcon-
|
|
1
|
+
import { s as e, t } from "./DynamicIcon-BWO6QtNF.js";
|
|
2
2
|
import { Suspense as n, createContext as r, forwardRef as i, lazy as a, useCallback as o, useContext as s, useEffect as c, useLayoutEffect as l, useMemo as u, useRef as d, useState as f } from "react";
|
|
3
3
|
import { useLocation as p, useNavigate as m } from "react-router-dom";
|
|
4
4
|
import { useQuery as h } from "@tanstack/react-query";
|
|
@@ -1231,13 +1231,9 @@ function Re(e, t) {
|
|
|
1231
1231
|
if (i != null) return typeof i == "object" && !Array.isArray(i) ? I(i) || void 0 : F(i);
|
|
1232
1232
|
}
|
|
1233
1233
|
function L(e, t, n) {
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
let r = e[t];
|
|
1238
|
-
if (r != null) return typeof r == "object" && !Array.isArray(r) ? I(r) || n : F(r);
|
|
1239
|
-
}
|
|
1240
|
-
return n;
|
|
1234
|
+
if (!t) return n;
|
|
1235
|
+
let r = e[t];
|
|
1236
|
+
return r == null ? n : typeof r == "object" && !Array.isArray(r) ? I(r) || n : F(r);
|
|
1241
1237
|
}
|
|
1242
1238
|
function ze(e) {
|
|
1243
1239
|
let t = e.replace(/\/+$/, "").split("/").map((e) => e.startsWith(":") ? "[^/]+" : e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
@@ -2061,8 +2057,122 @@ function J() {
|
|
|
2061
2057
|
});
|
|
2062
2058
|
}
|
|
2063
2059
|
//#endregion
|
|
2060
|
+
//#region src/api/data.ts
|
|
2061
|
+
function Bn(e, t) {
|
|
2062
|
+
let n = new URL(`/api/data/${e}`, window.location.origin);
|
|
2063
|
+
if (t.page && n.searchParams.set("page", String(t.page)), t.per_page && n.searchParams.set("per_page", String(t.per_page)), t.sort && n.searchParams.set("sort", t.sort), t.search && n.searchParams.set("search", t.search), t.filters && t.filters.length > 0 && n.searchParams.set("filters", JSON.stringify(t.filters)), t.include_deleted && n.searchParams.set("include_deleted", "true"), t.expand) for (let e of t.expand) n.searchParams.append("expand", e);
|
|
2064
|
+
return t.select && t.select.length > 0 && n.searchParams.set("select", t.select.join(",")), t.screen && n.searchParams.set("screen", t.screen), t.preview && n.searchParams.set("preview", "true"), t.count && n.searchParams.set("count", t.count), n.pathname + n.search;
|
|
2065
|
+
}
|
|
2066
|
+
async function Vn(e, t = {}, n = {}) {
|
|
2067
|
+
if (er) {
|
|
2068
|
+
let n = er(e, t);
|
|
2069
|
+
if (n !== void 0) return n;
|
|
2070
|
+
}
|
|
2071
|
+
return K(Bn(e, t), { signal: n.signal });
|
|
2072
|
+
}
|
|
2073
|
+
async function Hn(e, t) {
|
|
2074
|
+
if (tr) {
|
|
2075
|
+
let n = tr(e, t);
|
|
2076
|
+
if (n !== void 0) return n;
|
|
2077
|
+
}
|
|
2078
|
+
let n = new URLSearchParams();
|
|
2079
|
+
if (typeof t == "string") n.set("id", t);
|
|
2080
|
+
else for (let [e, r] of Object.entries(t)) n.set(e, r);
|
|
2081
|
+
return K(`/api/data/${e}?${n.toString()}`);
|
|
2082
|
+
}
|
|
2083
|
+
async function Un(e, t) {
|
|
2084
|
+
return { data: ((await ir(`${e}.__create`, {
|
|
2085
|
+
entity: e,
|
|
2086
|
+
fields: t
|
|
2087
|
+
})).result?.rows ?? [])[0] };
|
|
2088
|
+
}
|
|
2089
|
+
async function Wn(e, t, n) {
|
|
2090
|
+
let r = typeof t == "string" ? t : Kn(t);
|
|
2091
|
+
return { data: ((await ir(`${e}.__update`, {
|
|
2092
|
+
object_ids: [r],
|
|
2093
|
+
entity: e,
|
|
2094
|
+
fields: n
|
|
2095
|
+
})).result?.rows ?? [])[0] };
|
|
2096
|
+
}
|
|
2097
|
+
async function Gn(e, t) {
|
|
2098
|
+
let n = typeof t == "string" ? t : Kn(t);
|
|
2099
|
+
await ir(`${e}.__delete`, {
|
|
2100
|
+
object_ids: [n],
|
|
2101
|
+
entity: e
|
|
2102
|
+
});
|
|
2103
|
+
}
|
|
2104
|
+
function Kn(e) {
|
|
2105
|
+
let t = Object.values(e);
|
|
2106
|
+
return t.length === 1 ? t[0] : t.join("");
|
|
2107
|
+
}
|
|
2108
|
+
async function qn(e, t) {
|
|
2109
|
+
let n = typeof t == "string" ? t : Kn(t);
|
|
2110
|
+
await ir(`${e}.__restore`, {
|
|
2111
|
+
object_ids: [n],
|
|
2112
|
+
entity: e
|
|
2113
|
+
});
|
|
2114
|
+
}
|
|
2115
|
+
async function Jn(e, t) {
|
|
2116
|
+
let n = await yn(`/api/data/${e}/export`, {
|
|
2117
|
+
method: "POST",
|
|
2118
|
+
body: JSON.stringify(t)
|
|
2119
|
+
});
|
|
2120
|
+
return {
|
|
2121
|
+
blob: n.blob,
|
|
2122
|
+
filename: n.filename
|
|
2123
|
+
};
|
|
2124
|
+
}
|
|
2125
|
+
var Yn = class extends Error {
|
|
2126
|
+
status;
|
|
2127
|
+
response;
|
|
2128
|
+
constructor(e, t) {
|
|
2129
|
+
let n = t.errors && t.errors[0]?.error;
|
|
2130
|
+
super(n || "Action failed"), this.name = "ActionBatchError", this.status = e, this.response = t;
|
|
2131
|
+
}
|
|
2132
|
+
};
|
|
2133
|
+
function Xn(e) {
|
|
2134
|
+
if (!e || typeof e != "object") return !1;
|
|
2135
|
+
let t = e;
|
|
2136
|
+
return typeof t.status == "string" && Array.isArray(t.errors);
|
|
2137
|
+
}
|
|
2138
|
+
function Zn(e, t) {
|
|
2139
|
+
let n = { ...e ?? {} };
|
|
2140
|
+
if ("object_ids" in n) throw Error("handler param \"object_ids\" collides with reserved key");
|
|
2141
|
+
if ("_ids" in n) throw Error("handler param \"_ids\" is a removed legacy key; use object_ids");
|
|
2142
|
+
return t !== void 0 && (n.object_ids = t), n;
|
|
2143
|
+
}
|
|
2144
|
+
var Qn = null;
|
|
2145
|
+
function $n(e) {
|
|
2146
|
+
let t = Qn;
|
|
2147
|
+
return Qn = e, t;
|
|
2148
|
+
}
|
|
2149
|
+
var er = null, tr = null;
|
|
2150
|
+
function nr(e) {
|
|
2151
|
+
let t = er;
|
|
2152
|
+
return er = e, t;
|
|
2153
|
+
}
|
|
2154
|
+
function rr(e) {
|
|
2155
|
+
let t = tr;
|
|
2156
|
+
return tr = e, t;
|
|
2157
|
+
}
|
|
2158
|
+
async function ir(e, t) {
|
|
2159
|
+
if (Qn) return Qn(e, t);
|
|
2160
|
+
try {
|
|
2161
|
+
return await K(`/api/actions/${e}`, {
|
|
2162
|
+
method: "POST",
|
|
2163
|
+
body: JSON.stringify(t)
|
|
2164
|
+
});
|
|
2165
|
+
} catch (e) {
|
|
2166
|
+
throw e instanceof z && Xn(e.raw) ? new Yn(e.status, e.raw) : e;
|
|
2167
|
+
}
|
|
2168
|
+
}
|
|
2169
|
+
async function ar(e, t) {
|
|
2170
|
+
let n = new URLSearchParams();
|
|
2171
|
+
return n.set("ids", t.join(",")), K(`/api/associations/${e}?${n.toString()}`);
|
|
2172
|
+
}
|
|
2173
|
+
//#endregion
|
|
2064
2174
|
//#region src/stores/appearance.ts
|
|
2065
|
-
var
|
|
2175
|
+
var or = {
|
|
2066
2176
|
theme: "light",
|
|
2067
2177
|
accent: "violet",
|
|
2068
2178
|
density: "compact",
|
|
@@ -2075,26 +2185,26 @@ var Bn = {
|
|
|
2075
2185
|
aiSurface: "both",
|
|
2076
2186
|
faviconSource: "google",
|
|
2077
2187
|
toastPosition: "bottom-right"
|
|
2078
|
-
},
|
|
2188
|
+
}, sr = ["light", "dark"], cr = [
|
|
2079
2189
|
"violet",
|
|
2080
2190
|
"blue",
|
|
2081
2191
|
"teal",
|
|
2082
2192
|
"amber",
|
|
2083
2193
|
"rose"
|
|
2084
|
-
],
|
|
2194
|
+
], lr = [
|
|
2085
2195
|
"compact",
|
|
2086
2196
|
"comfortable",
|
|
2087
2197
|
"cozy"
|
|
2088
|
-
],
|
|
2198
|
+
], ur = ["wide", "collapsed"], dr = ["top", "bottom"], fr = [
|
|
2089
2199
|
"command",
|
|
2090
2200
|
"panel",
|
|
2091
2201
|
"both",
|
|
2092
2202
|
"off"
|
|
2093
|
-
],
|
|
2203
|
+
], pr = [
|
|
2094
2204
|
"google",
|
|
2095
2205
|
"direct",
|
|
2096
2206
|
"none"
|
|
2097
|
-
],
|
|
2207
|
+
], mr = [
|
|
2098
2208
|
"top-left",
|
|
2099
2209
|
"top-center",
|
|
2100
2210
|
"top-right",
|
|
@@ -2105,45 +2215,45 @@ var Bn = {
|
|
|
2105
2215
|
function Y(e, t) {
|
|
2106
2216
|
return typeof t == "string" && e.includes(t) ? t : void 0;
|
|
2107
2217
|
}
|
|
2108
|
-
function
|
|
2109
|
-
let t = {}, n = Y(
|
|
2218
|
+
function hr(e) {
|
|
2219
|
+
let t = {}, n = Y(sr, e.theme);
|
|
2110
2220
|
n && (t.theme = n);
|
|
2111
|
-
let r = Y(
|
|
2221
|
+
let r = Y(cr, e.accent);
|
|
2112
2222
|
r && (t.accent = r);
|
|
2113
|
-
let i = Y(
|
|
2223
|
+
let i = Y(lr, e.density);
|
|
2114
2224
|
i && (t.density = i);
|
|
2115
|
-
let a = Y(
|
|
2225
|
+
let a = Y(ur, e.sidebar);
|
|
2116
2226
|
a && (t.sidebar = a);
|
|
2117
|
-
let o = Y(
|
|
2227
|
+
let o = Y(dr, e.tabsPosition);
|
|
2118
2228
|
o && (t.tabsPosition = o);
|
|
2119
|
-
let s = Y(
|
|
2229
|
+
let s = Y(fr, e.aiSurface);
|
|
2120
2230
|
s && (t.aiSurface = s);
|
|
2121
|
-
let c = Y(
|
|
2231
|
+
let c = Y(pr, e.faviconSource);
|
|
2122
2232
|
c && (t.faviconSource = c);
|
|
2123
|
-
let l = Y(
|
|
2233
|
+
let l = Y(mr, e.toastPosition);
|
|
2124
2234
|
return l && (t.toastPosition = l), typeof e.tabsMaxOpen == "number" && e.tabsMaxOpen > 0 && (t.tabsMaxOpen = e.tabsMaxOpen), typeof e.radius == "number" && e.radius >= 0 && e.radius <= 32 && (t.radius = e.radius), typeof e.zebra == "boolean" && (t.zebra = e.zebra), typeof e.tabsPersist == "boolean" && (t.tabsPersist = e.tabsPersist), t;
|
|
2125
2235
|
}
|
|
2126
|
-
var
|
|
2127
|
-
function
|
|
2236
|
+
var gr = "declarion-appearance";
|
|
2237
|
+
function _r() {
|
|
2128
2238
|
if (typeof window > "u") return null;
|
|
2129
2239
|
try {
|
|
2130
|
-
let e = localStorage.getItem(
|
|
2240
|
+
let e = localStorage.getItem(gr);
|
|
2131
2241
|
return e ? JSON.parse(e) : null;
|
|
2132
2242
|
} catch {
|
|
2133
2243
|
return null;
|
|
2134
2244
|
}
|
|
2135
2245
|
}
|
|
2136
|
-
function
|
|
2246
|
+
function vr(e) {
|
|
2137
2247
|
if (!(typeof window > "u")) try {
|
|
2138
|
-
localStorage.setItem(
|
|
2248
|
+
localStorage.setItem(gr, JSON.stringify(e));
|
|
2139
2249
|
} catch {}
|
|
2140
2250
|
}
|
|
2141
|
-
function
|
|
2251
|
+
function yr(e) {
|
|
2142
2252
|
if (typeof document > "u") return;
|
|
2143
2253
|
let t = document.documentElement;
|
|
2144
2254
|
t.dataset.theme = e.theme, t.dataset.accent = e.accent, t.dataset.density = e.density, t.dataset.sidebar = e.sidebar, t.dataset.tabbar = e.tabsPosition, t.dataset.zebra = e.zebra ? "on" : "off", t.dataset.ai = e.aiSurface, t.style.setProperty("--radius-md", `${e.radius}px`), t.style.setProperty("--radius-lg", `${e.radius + 3}px`);
|
|
2145
2255
|
}
|
|
2146
|
-
var
|
|
2256
|
+
var br = {
|
|
2147
2257
|
ui_theme: "theme",
|
|
2148
2258
|
ui_accent: "accent",
|
|
2149
2259
|
ui_density: "density",
|
|
@@ -2156,49 +2266,49 @@ var er = {
|
|
|
2156
2266
|
ui_ai_surface: "aiSurface",
|
|
2157
2267
|
ui_favicon_source: "faviconSource",
|
|
2158
2268
|
ui_toast_position: "toastPosition"
|
|
2159
|
-
},
|
|
2160
|
-
...
|
|
2161
|
-
...
|
|
2269
|
+
}, xr = _r(), Sr = xr ? new Set(Object.keys(xr)) : /* @__PURE__ */ new Set(), Cr = {
|
|
2270
|
+
...or,
|
|
2271
|
+
...xr ? hr(xr) : {}
|
|
2162
2272
|
};
|
|
2163
|
-
typeof window < "u" &&
|
|
2164
|
-
var
|
|
2165
|
-
...
|
|
2273
|
+
typeof window < "u" && yr(Cr);
|
|
2274
|
+
var wr = x((e, t) => ({
|
|
2275
|
+
...Cr,
|
|
2166
2276
|
set: (n, r) => {
|
|
2167
|
-
let i =
|
|
2277
|
+
let i = hr({ [n]: r });
|
|
2168
2278
|
if (i[n] === void 0) return;
|
|
2169
2279
|
let a = {
|
|
2170
2280
|
...t(),
|
|
2171
2281
|
...i
|
|
2172
2282
|
};
|
|
2173
|
-
|
|
2283
|
+
yr(a), vr(a), Sr.add(n), e(i);
|
|
2174
2284
|
},
|
|
2175
2285
|
setMany: (n) => {
|
|
2176
|
-
let r =
|
|
2286
|
+
let r = hr(n);
|
|
2177
2287
|
if (!Object.keys(r).length) return;
|
|
2178
2288
|
let i = {
|
|
2179
2289
|
...t(),
|
|
2180
2290
|
...r
|
|
2181
2291
|
};
|
|
2182
|
-
|
|
2183
|
-
for (let e of Object.keys(r))
|
|
2292
|
+
yr(i), vr(i);
|
|
2293
|
+
for (let e of Object.keys(r)) Sr.add(e);
|
|
2184
2294
|
e(r);
|
|
2185
2295
|
},
|
|
2186
2296
|
hydrateFromParams: (t) => {
|
|
2187
2297
|
let n = {};
|
|
2188
|
-
for (let [e, r] of Object.entries(
|
|
2189
|
-
let r =
|
|
2190
|
-
Object.keys(r).length && (
|
|
2191
|
-
...
|
|
2298
|
+
for (let [e, r] of Object.entries(br)) Sr.has(r) || t[e] !== void 0 && (n[r] = t[e]);
|
|
2299
|
+
let r = hr(n);
|
|
2300
|
+
Object.keys(r).length && (yr({
|
|
2301
|
+
...wr.getState(),
|
|
2192
2302
|
...r
|
|
2193
2303
|
}), e(r));
|
|
2194
2304
|
}
|
|
2195
|
-
})),
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2305
|
+
})), Tr = "self", Er = "embed", Dr = "parent_origin", Or = "theme", kr = [
|
|
2306
|
+
Er,
|
|
2307
|
+
Dr,
|
|
2308
|
+
Or,
|
|
2199
2309
|
"nav"
|
|
2200
2310
|
];
|
|
2201
|
-
function
|
|
2311
|
+
function Ar(e) {
|
|
2202
2312
|
if (!e) return null;
|
|
2203
2313
|
let t;
|
|
2204
2314
|
try {
|
|
@@ -2208,22 +2318,22 @@ function ur(e) {
|
|
|
2208
2318
|
}
|
|
2209
2319
|
return t.origin === "null" ? null : e === t.origin ? t.origin : null;
|
|
2210
2320
|
}
|
|
2211
|
-
function
|
|
2321
|
+
function jr(e) {
|
|
2212
2322
|
return e === "light" || e === "dark" ? e : null;
|
|
2213
2323
|
}
|
|
2214
|
-
function
|
|
2215
|
-
return e === "delegated" ? "delegated" :
|
|
2324
|
+
function Mr(e) {
|
|
2325
|
+
return e === "delegated" ? "delegated" : Tr;
|
|
2216
2326
|
}
|
|
2217
|
-
function
|
|
2327
|
+
function Nr(e) {
|
|
2218
2328
|
let t = typeof e == "string" ? new URLSearchParams(e) : e;
|
|
2219
2329
|
return {
|
|
2220
|
-
enabled: t.get(
|
|
2221
|
-
parentOrigin:
|
|
2222
|
-
theme:
|
|
2223
|
-
navigationMode:
|
|
2330
|
+
enabled: t.get(Er) === "1",
|
|
2331
|
+
parentOrigin: Ar(t.get(Dr)),
|
|
2332
|
+
theme: jr(t.get(Or)),
|
|
2333
|
+
navigationMode: Mr(t.get("nav"))
|
|
2224
2334
|
};
|
|
2225
2335
|
}
|
|
2226
|
-
function
|
|
2336
|
+
function Pr(e, t) {
|
|
2227
2337
|
if (!t.enabled) return e;
|
|
2228
2338
|
let n = /^[a-z][a-z0-9+.-]*:/i.test(e), r;
|
|
2229
2339
|
try {
|
|
@@ -2232,44 +2342,44 @@ function mr(e, t) {
|
|
|
2232
2342
|
return e;
|
|
2233
2343
|
}
|
|
2234
2344
|
let i = r.searchParams;
|
|
2235
|
-
return t.enabled && i.set(
|
|
2345
|
+
return t.enabled && i.set(Er, "1"), t.parentOrigin && i.set(Dr, t.parentOrigin), t.theme && i.set(Or, t.theme), i.set("nav", t.navigationMode), n ? r.toString() : `${r.pathname}${r.search}${r.hash}`;
|
|
2236
2346
|
}
|
|
2237
2347
|
//#endregion
|
|
2238
2348
|
//#region src/embed/EmbedContext.tsx
|
|
2239
|
-
var
|
|
2349
|
+
var Fr = r({
|
|
2240
2350
|
enabled: !1,
|
|
2241
2351
|
parentOrigin: null,
|
|
2242
2352
|
theme: null,
|
|
2243
2353
|
navigationMode: "self",
|
|
2244
2354
|
appendEmbedParams: (e) => e
|
|
2245
2355
|
});
|
|
2246
|
-
function
|
|
2356
|
+
function Ir(e) {
|
|
2247
2357
|
return {
|
|
2248
2358
|
enabled: e.enabled,
|
|
2249
2359
|
parentOrigin: e.parentOrigin,
|
|
2250
2360
|
theme: e.theme,
|
|
2251
2361
|
navigationMode: e.navigationMode,
|
|
2252
|
-
appendEmbedParams: (t) =>
|
|
2362
|
+
appendEmbedParams: (t) => Pr(t, e)
|
|
2253
2363
|
};
|
|
2254
2364
|
}
|
|
2255
|
-
function
|
|
2256
|
-
let n = u(() =>
|
|
2257
|
-
return /* @__PURE__ */ v(
|
|
2365
|
+
function Lr({ children: e, query: t }) {
|
|
2366
|
+
let n = u(() => Ir(Nr(t ?? (typeof window < "u" ? window.location.search : ""))), [t]);
|
|
2367
|
+
return /* @__PURE__ */ v(Fr.Provider, {
|
|
2258
2368
|
value: n,
|
|
2259
2369
|
children: e
|
|
2260
2370
|
});
|
|
2261
2371
|
}
|
|
2262
|
-
function
|
|
2263
|
-
return s(
|
|
2372
|
+
function Rr() {
|
|
2373
|
+
return s(Fr);
|
|
2264
2374
|
}
|
|
2265
2375
|
//#endregion
|
|
2266
2376
|
//#region src/embed/embed-dirty.ts
|
|
2267
|
-
var
|
|
2377
|
+
var zr = x((e) => ({
|
|
2268
2378
|
isDirty: !1,
|
|
2269
2379
|
setDirty: (t) => e((e) => e.isDirty === t ? e : { isDirty: t })
|
|
2270
2380
|
}));
|
|
2271
|
-
function
|
|
2272
|
-
let n =
|
|
2381
|
+
function Br(e, t) {
|
|
2382
|
+
let n = zr((e) => e.setDirty);
|
|
2273
2383
|
c(() => {
|
|
2274
2384
|
t && n(e);
|
|
2275
2385
|
}, [
|
|
@@ -2282,7 +2392,7 @@ function br(e, t) {
|
|
|
2282
2392
|
}
|
|
2283
2393
|
//#endregion
|
|
2284
2394
|
//#region src/embed/embed-nav-guard.ts
|
|
2285
|
-
var
|
|
2395
|
+
var Vr = x((e, t) => ({
|
|
2286
2396
|
pendingNavigation: null,
|
|
2287
2397
|
requestNavigation: (t) => e({ pendingNavigation: t }),
|
|
2288
2398
|
confirmNavigation: () => {
|
|
@@ -2293,18 +2403,18 @@ var xr = x((e, t) => ({
|
|
|
2293
2403
|
}));
|
|
2294
2404
|
//#endregion
|
|
2295
2405
|
//#region src/embed/screen-location.ts
|
|
2296
|
-
function
|
|
2406
|
+
function Hr(e) {
|
|
2297
2407
|
let t = e.replace(/\/+$/, "").split("/").map((e) => e.startsWith(":") ? "[^/]+" : e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
2298
2408
|
return RegExp("^" + t.join("/") + "$");
|
|
2299
2409
|
}
|
|
2300
|
-
function
|
|
2410
|
+
function Ur(e, t) {
|
|
2301
2411
|
let n = e.replace(/\/+$/, "") || "/";
|
|
2302
2412
|
if (!t) return {
|
|
2303
2413
|
matched: !1,
|
|
2304
2414
|
payload: { route: e }
|
|
2305
2415
|
};
|
|
2306
2416
|
let r, i, a, o;
|
|
2307
|
-
for (let [e, s] of Object.entries(t)) if (s.route &&
|
|
2417
|
+
for (let [e, s] of Object.entries(t)) if (s.route && Hr(s.route).test(n)) if (s.route.includes("/:")) a || (a = s, o = e);
|
|
2308
2418
|
else {
|
|
2309
2419
|
r = s, i = e;
|
|
2310
2420
|
break;
|
|
@@ -2329,34 +2439,34 @@ function Cr(e, t) {
|
|
|
2329
2439
|
payload: l
|
|
2330
2440
|
};
|
|
2331
2441
|
}
|
|
2332
|
-
function
|
|
2333
|
-
return
|
|
2442
|
+
function Wr(e, t) {
|
|
2443
|
+
return Ur(e, t).payload;
|
|
2334
2444
|
}
|
|
2335
2445
|
//#endregion
|
|
2336
2446
|
//#region src/embed/useEmbedNavigate.ts
|
|
2337
|
-
function
|
|
2447
|
+
function Gr(e) {
|
|
2338
2448
|
let t = e.search(/[?#]/);
|
|
2339
2449
|
return t === -1 ? e : e.slice(0, t);
|
|
2340
2450
|
}
|
|
2341
|
-
function
|
|
2342
|
-
let e = m(), t = p(), n =
|
|
2451
|
+
function Kr() {
|
|
2452
|
+
let e = m(), t = p(), n = Rr(), { data: r } = J();
|
|
2343
2453
|
return o((i, a) => {
|
|
2344
2454
|
if (!n.enabled) return e(i, a), !0;
|
|
2345
|
-
let o = r?.screens, s =
|
|
2455
|
+
let o = r?.screens, s = Ur(Gr(i), o), c = zr.getState().isDirty && Gr(i) !== t.pathname;
|
|
2346
2456
|
if (o && !s.matched) return gt(n.parentOrigin, ht.navigationFailed, {
|
|
2347
|
-
route:
|
|
2457
|
+
route: Gr(i),
|
|
2348
2458
|
reason: "unresolved"
|
|
2349
2459
|
}), !1;
|
|
2350
2460
|
if (n.navigationMode === "delegated") {
|
|
2351
2461
|
let e = () => {
|
|
2352
2462
|
gt(n.parentOrigin, ht.navigationRequested, s.payload);
|
|
2353
2463
|
};
|
|
2354
|
-
return c ? (
|
|
2464
|
+
return c ? (Vr.getState().requestNavigation(e), !1) : (e(), !1);
|
|
2355
2465
|
}
|
|
2356
2466
|
let l = () => {
|
|
2357
2467
|
e(n.appendEmbedParams(i), a);
|
|
2358
2468
|
};
|
|
2359
|
-
return c ? (
|
|
2469
|
+
return c ? (Vr.getState().requestNavigation(l), !1) : (l(), !0);
|
|
2360
2470
|
}, [
|
|
2361
2471
|
e,
|
|
2362
2472
|
t.pathname,
|
|
@@ -2364,27 +2474,27 @@ function Er() {
|
|
|
2364
2474
|
r?.screens
|
|
2365
2475
|
]);
|
|
2366
2476
|
}
|
|
2367
|
-
function
|
|
2368
|
-
let e =
|
|
2477
|
+
function qr() {
|
|
2478
|
+
let e = Kr();
|
|
2369
2479
|
return o((t, n) => {
|
|
2370
2480
|
e(t, n);
|
|
2371
2481
|
}, [e]);
|
|
2372
2482
|
}
|
|
2373
|
-
function
|
|
2483
|
+
function Jr() {
|
|
2374
2484
|
let e = m();
|
|
2375
2485
|
return o(() => {
|
|
2376
2486
|
let t = () => {
|
|
2377
2487
|
e(-1);
|
|
2378
2488
|
};
|
|
2379
|
-
if (
|
|
2380
|
-
|
|
2489
|
+
if (zr.getState().isDirty) {
|
|
2490
|
+
Vr.getState().requestNavigation(t);
|
|
2381
2491
|
return;
|
|
2382
2492
|
}
|
|
2383
2493
|
t();
|
|
2384
2494
|
}, [e]);
|
|
2385
2495
|
}
|
|
2386
|
-
function
|
|
2387
|
-
let e =
|
|
2496
|
+
function Yr() {
|
|
2497
|
+
let e = Rr();
|
|
2388
2498
|
return o((t, n) => {
|
|
2389
2499
|
e.enabled && gt(e.parentOrigin, ht.navigationFailed, {
|
|
2390
2500
|
route: t,
|
|
@@ -2394,7 +2504,7 @@ function kr() {
|
|
|
2394
2504
|
}
|
|
2395
2505
|
//#endregion
|
|
2396
2506
|
//#region src/components/shared/toast/DeclarionToast.tsx
|
|
2397
|
-
var
|
|
2507
|
+
var Xr = {
|
|
2398
2508
|
success: {
|
|
2399
2509
|
tone: "success",
|
|
2400
2510
|
defaultTitle: "Success"
|
|
@@ -2415,8 +2525,8 @@ var Ar = {
|
|
|
2415
2525
|
tone: "info",
|
|
2416
2526
|
defaultTitle: "Working…"
|
|
2417
2527
|
}
|
|
2418
|
-
},
|
|
2419
|
-
function
|
|
2528
|
+
}, Zr = 200;
|
|
2529
|
+
function Qr({ type: t }) {
|
|
2420
2530
|
let n = { display: "flex" };
|
|
2421
2531
|
return t === "loading" ? /* @__PURE__ */ v("span", {
|
|
2422
2532
|
style: {
|
|
@@ -2429,9 +2539,9 @@ function Mr({ type: t }) {
|
|
|
2429
2539
|
children: /* @__PURE__ */ v(t === "success" ? e.check : t === "error" ? e.x : t === "warning" ? e.warning : e.info, { size: 11 })
|
|
2430
2540
|
});
|
|
2431
2541
|
}
|
|
2432
|
-
function
|
|
2433
|
-
let r =
|
|
2434
|
-
S.current || (S.current = !0, g(!0), window.setTimeout(n,
|
|
2542
|
+
function $r({ model: t, onClose: n }) {
|
|
2543
|
+
let r = Xr[t.type] ?? Xr.info, i = r.tone, [a, s] = f(!1), [l, u] = f(!1), [p, m] = f(!1), [h, g] = f(!1), [_, b] = f(1), x = d(t.duration), S = d(!1), C = !t.sticky && t.duration > 0, w = o(() => {
|
|
2544
|
+
S.current || (S.current = !0, g(!0), window.setTimeout(n, Zr));
|
|
2435
2545
|
}, [n]);
|
|
2436
2546
|
c(() => {
|
|
2437
2547
|
x.current = t.duration, b(1);
|
|
@@ -2480,7 +2590,7 @@ function Nr({ model: t, onClose: n }) {
|
|
|
2480
2590
|
boxShadow: "var(--shadow-toast)",
|
|
2481
2591
|
overflow: "hidden",
|
|
2482
2592
|
position: "relative",
|
|
2483
|
-
animation: h ? `dz-toast-out ${
|
|
2593
|
+
animation: h ? `dz-toast-out ${Zr}ms ease-in forwards` : "dz-toast-in 0.24s cubic-bezier(0.16, 1, 0.3, 1)"
|
|
2484
2594
|
},
|
|
2485
2595
|
children: [/* @__PURE__ */ y("div", {
|
|
2486
2596
|
style: {
|
|
@@ -2502,7 +2612,7 @@ function Nr({ model: t, onClose: n }) {
|
|
|
2502
2612
|
justifyContent: "center",
|
|
2503
2613
|
color: E("")
|
|
2504
2614
|
},
|
|
2505
|
-
children: /* @__PURE__ */ v(
|
|
2615
|
+
children: /* @__PURE__ */ v(Qr, { type: t.type })
|
|
2506
2616
|
}),
|
|
2507
2617
|
/* @__PURE__ */ y("div", {
|
|
2508
2618
|
style: {
|
|
@@ -2695,28 +2805,28 @@ function Nr({ model: t, onClose: n }) {
|
|
|
2695
2805
|
}
|
|
2696
2806
|
//#endregion
|
|
2697
2807
|
//#region src/lib/toast.tsx
|
|
2698
|
-
var
|
|
2808
|
+
var ei = {
|
|
2699
2809
|
success: 4e3,
|
|
2700
2810
|
info: 6e3,
|
|
2701
2811
|
warning: 8e3,
|
|
2702
2812
|
error: 0,
|
|
2703
2813
|
loading: 0
|
|
2704
|
-
}, X = /* @__PURE__ */ new Map(),
|
|
2705
|
-
function
|
|
2706
|
-
g.custom(() => /* @__PURE__ */ v(
|
|
2814
|
+
}, X = /* @__PURE__ */ new Map(), ti = /* @__PURE__ */ new Map(), ni = 0, ri = () => `dz-${++ni}`;
|
|
2815
|
+
function ii(e) {
|
|
2816
|
+
g.custom(() => /* @__PURE__ */ v($r, {
|
|
2707
2817
|
model: e,
|
|
2708
2818
|
onClose: () => g.dismiss(e.id)
|
|
2709
2819
|
}), {
|
|
2710
2820
|
id: e.id,
|
|
2711
2821
|
duration: Infinity,
|
|
2712
2822
|
onDismiss: () => {
|
|
2713
|
-
X.delete(String(e.id)), e.group &&
|
|
2823
|
+
X.delete(String(e.id)), e.group && ti.get(e.group) === e.id && ti.delete(e.group);
|
|
2714
2824
|
}
|
|
2715
2825
|
});
|
|
2716
2826
|
}
|
|
2717
|
-
function
|
|
2827
|
+
function ai(e, t, n, r = {}) {
|
|
2718
2828
|
if (r.group) {
|
|
2719
|
-
let e =
|
|
2829
|
+
let e = ti.get(r.group);
|
|
2720
2830
|
if (e && X.has(e)) {
|
|
2721
2831
|
let r = X.get(e), i = {
|
|
2722
2832
|
...r,
|
|
@@ -2725,10 +2835,10 @@ function zr(e, t, n, r = {}) {
|
|
|
2725
2835
|
count: (r.count ?? 1) + 1,
|
|
2726
2836
|
createdAt: Date.now()
|
|
2727
2837
|
};
|
|
2728
|
-
return X.set(e, i),
|
|
2838
|
+
return X.set(e, i), ii(i), e;
|
|
2729
2839
|
}
|
|
2730
2840
|
}
|
|
2731
|
-
let i = r.id ??
|
|
2841
|
+
let i = r.id ?? ri(), a = r.duration ?? ei[e], o = {
|
|
2732
2842
|
id: i,
|
|
2733
2843
|
type: e,
|
|
2734
2844
|
title: t,
|
|
@@ -2742,12 +2852,12 @@ function zr(e, t, n, r = {}) {
|
|
|
2742
2852
|
createdAt: Date.now(),
|
|
2743
2853
|
group: r.group
|
|
2744
2854
|
};
|
|
2745
|
-
return X.set(i, o), r.group &&
|
|
2855
|
+
return X.set(i, o), r.group && ti.set(r.group, i), ii(o), i;
|
|
2746
2856
|
}
|
|
2747
|
-
function
|
|
2857
|
+
function oi(e, t) {
|
|
2748
2858
|
let n = X.get(e);
|
|
2749
2859
|
if (!n) return;
|
|
2750
|
-
let r = t.type ?? n.type, i = t.duration ?? (t.type ?
|
|
2860
|
+
let r = t.type ?? n.type, i = t.duration ?? (t.type ? ei[r] : n.duration), a = {
|
|
2751
2861
|
...n,
|
|
2752
2862
|
...t,
|
|
2753
2863
|
type: r,
|
|
@@ -2755,150 +2865,91 @@ function Br(e, t) {
|
|
|
2755
2865
|
sticky: t.sticky ?? i === 0,
|
|
2756
2866
|
createdAt: Date.now()
|
|
2757
2867
|
};
|
|
2758
|
-
X.set(e, a),
|
|
2868
|
+
X.set(e, a), ii(a);
|
|
2759
2869
|
}
|
|
2760
2870
|
var Z = {
|
|
2761
|
-
success: (e, t, n) =>
|
|
2762
|
-
info: (e, t, n) =>
|
|
2763
|
-
warning: (e, t, n) =>
|
|
2764
|
-
error: (e, t, n) =>
|
|
2765
|
-
loading: (e, t, n) =>
|
|
2766
|
-
update:
|
|
2871
|
+
success: (e, t, n) => ai("success", e, t, n),
|
|
2872
|
+
info: (e, t, n) => ai("info", e, t, n),
|
|
2873
|
+
warning: (e, t, n) => ai("warning", e, t, n),
|
|
2874
|
+
error: (e, t, n) => ai("error", e, t, n),
|
|
2875
|
+
loading: (e, t, n) => ai("loading", e, t, n),
|
|
2876
|
+
update: oi,
|
|
2767
2877
|
dismiss: (e) => g.dismiss(e),
|
|
2768
2878
|
dismissAll: () => g.dismiss()
|
|
2769
|
-
};
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
function Vr(e, t) {
|
|
2773
|
-
let n = new URL(`/api/data/${e}`, window.location.origin);
|
|
2774
|
-
if (t.page && n.searchParams.set("page", String(t.page)), t.per_page && n.searchParams.set("per_page", String(t.per_page)), t.sort && n.searchParams.set("sort", t.sort), t.search && n.searchParams.set("search", t.search), t.filters && t.filters.length > 0 && n.searchParams.set("filters", JSON.stringify(t.filters)), t.include_deleted && n.searchParams.set("include_deleted", "true"), t.expand) for (let e of t.expand) n.searchParams.append("expand", e);
|
|
2775
|
-
return t.select && t.select.length > 0 && n.searchParams.set("select", t.select.join(",")), t.screen && n.searchParams.set("screen", t.screen), t.preview && n.searchParams.set("preview", "true"), t.count && n.searchParams.set("count", t.count), n.pathname + n.search;
|
|
2776
|
-
}
|
|
2777
|
-
async function Hr(e, t = {}, n = {}) {
|
|
2778
|
-
if (ti) {
|
|
2779
|
-
let n = ti(e, t);
|
|
2780
|
-
if (n !== void 0) return n;
|
|
2781
|
-
}
|
|
2782
|
-
return K(Vr(e, t), { signal: n.signal });
|
|
2783
|
-
}
|
|
2784
|
-
async function Ur(e, t) {
|
|
2785
|
-
if (ni) {
|
|
2786
|
-
let n = ni(e, t);
|
|
2787
|
-
if (n !== void 0) return n;
|
|
2788
|
-
}
|
|
2789
|
-
let n = new URLSearchParams();
|
|
2790
|
-
if (typeof t == "string") n.set("id", t);
|
|
2791
|
-
else for (let [e, r] of Object.entries(t)) n.set(e, r);
|
|
2792
|
-
return K(`/api/data/${e}?${n.toString()}`);
|
|
2793
|
-
}
|
|
2794
|
-
async function Wr(e, t) {
|
|
2795
|
-
return { data: ((await ai(`${e}.__create`, {
|
|
2796
|
-
entity: e,
|
|
2797
|
-
fields: t
|
|
2798
|
-
})).result?.rows ?? [])[0] };
|
|
2799
|
-
}
|
|
2800
|
-
async function Gr(e, t, n) {
|
|
2801
|
-
let r = typeof t == "string" ? t : qr(t);
|
|
2802
|
-
return { data: ((await ai(`${e}.__update`, {
|
|
2803
|
-
object_ids: [r],
|
|
2804
|
-
entity: e,
|
|
2805
|
-
fields: n
|
|
2806
|
-
})).result?.rows ?? [])[0] };
|
|
2807
|
-
}
|
|
2808
|
-
async function Kr(e, t) {
|
|
2809
|
-
let n = typeof t == "string" ? t : qr(t);
|
|
2810
|
-
await ai(`${e}.__delete`, {
|
|
2811
|
-
object_ids: [n],
|
|
2812
|
-
entity: e
|
|
2813
|
-
});
|
|
2814
|
-
}
|
|
2815
|
-
function qr(e) {
|
|
2816
|
-
let t = Object.values(e);
|
|
2817
|
-
return t.length === 1 ? t[0] : t.join("");
|
|
2879
|
+
}, si = a(() => import("./MarkdownRenderer-unbncYEV.js").then((e) => ({ default: e.MarkdownRenderer })));
|
|
2880
|
+
function ci() {
|
|
2881
|
+
return /* @__PURE__ */ v("div", { className: "h-4 w-2/3 rounded bg-muted animate-pulse" });
|
|
2818
2882
|
}
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
entity: e
|
|
2883
|
+
function li(e) {
|
|
2884
|
+
return /* @__PURE__ */ v(n, {
|
|
2885
|
+
fallback: /* @__PURE__ */ v(ci, {}),
|
|
2886
|
+
children: /* @__PURE__ */ v(si, { ...e })
|
|
2824
2887
|
});
|
|
2825
2888
|
}
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2889
|
+
//#endregion
|
|
2890
|
+
//#region src/lib/safe-url.ts
|
|
2891
|
+
var ui = [
|
|
2892
|
+
"http:",
|
|
2893
|
+
"https:",
|
|
2894
|
+
"mailto:"
|
|
2895
|
+
], di = /[\u0000-\u001f\u007f]/g;
|
|
2896
|
+
function fi(e) {
|
|
2897
|
+
if (!e) return;
|
|
2898
|
+
let t = e.trim();
|
|
2899
|
+
if (!t) return;
|
|
2900
|
+
let n = t.replace(di, "");
|
|
2901
|
+
if (!n || n.startsWith("//")) return;
|
|
2902
|
+
let r = n.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
|
|
2903
|
+
if (r) {
|
|
2904
|
+
let e = r[1].toLowerCase() + ":";
|
|
2905
|
+
if (!ui.includes(e)) return;
|
|
2906
|
+
}
|
|
2907
|
+
return n;
|
|
2835
2908
|
}
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2909
|
+
//#endregion
|
|
2910
|
+
//#region src/lib/download.ts
|
|
2911
|
+
var pi = class extends Error {
|
|
2912
|
+
code;
|
|
2839
2913
|
constructor(e, t) {
|
|
2840
|
-
|
|
2841
|
-
super(n || "Action failed"), this.name = "ActionBatchError", this.status = e, this.response = t;
|
|
2914
|
+
super(e), this.code = t, this.name = "DownloadError";
|
|
2842
2915
|
}
|
|
2843
2916
|
};
|
|
2844
|
-
function
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
let
|
|
2851
|
-
if (
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
}
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
let t = $r;
|
|
2858
|
-
return $r = e, t;
|
|
2859
|
-
}
|
|
2860
|
-
var ti = null, ni = null;
|
|
2861
|
-
function ri(e) {
|
|
2862
|
-
let t = ti;
|
|
2863
|
-
return ti = e, t;
|
|
2864
|
-
}
|
|
2865
|
-
function ii(e) {
|
|
2866
|
-
let t = ni;
|
|
2867
|
-
return ni = e, t;
|
|
2917
|
+
function mi(e) {
|
|
2918
|
+
return e instanceof pi && e.code === "FILE_NOT_FOUND";
|
|
2919
|
+
}
|
|
2920
|
+
async function hi(e, t) {
|
|
2921
|
+
let n = fi(e);
|
|
2922
|
+
if (!n) throw new pi(`Refused to download from an unsafe URL: ${e}`);
|
|
2923
|
+
let r = await fetch(n, { credentials: "same-origin" });
|
|
2924
|
+
if (!r.ok) {
|
|
2925
|
+
let e = await gi(r);
|
|
2926
|
+
throw new pi(e.message || `Download failed (${r.status})`, e.code);
|
|
2927
|
+
}
|
|
2928
|
+
let i = await r.blob(), a = URL.createObjectURL(i), o = document.createElement("a");
|
|
2929
|
+
o.href = a, t && (o.download = t), document.body.appendChild(o), o.click(), o.remove(), URL.revokeObjectURL(a);
|
|
2868
2930
|
}
|
|
2869
|
-
async function
|
|
2870
|
-
|
|
2931
|
+
async function gi(e) {
|
|
2932
|
+
let t = await e.text();
|
|
2933
|
+
if (!t) return {};
|
|
2871
2934
|
try {
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2935
|
+
let e = JSON.parse(t);
|
|
2936
|
+
return typeof e.error == "string" ? {
|
|
2937
|
+
message: e.error,
|
|
2938
|
+
code: e.code
|
|
2939
|
+
} : {
|
|
2940
|
+
code: e.error?.code ?? e.code,
|
|
2941
|
+
message: e.error?.message ?? e.message
|
|
2942
|
+
};
|
|
2943
|
+
} catch {
|
|
2944
|
+
return { message: t };
|
|
2878
2945
|
}
|
|
2879
2946
|
}
|
|
2880
|
-
async function oi(e, t) {
|
|
2881
|
-
let n = new URLSearchParams();
|
|
2882
|
-
return n.set("ids", t.join(",")), K(`/api/associations/${e}?${n.toString()}`);
|
|
2883
|
-
}
|
|
2884
|
-
//#endregion
|
|
2885
|
-
//#region src/components/shared/Markdown.tsx
|
|
2886
|
-
var si = a(() => import("./MarkdownRenderer-CaHhWrfm.js").then((e) => ({ default: e.MarkdownRenderer })));
|
|
2887
|
-
function ci() {
|
|
2888
|
-
return /* @__PURE__ */ v("div", { className: "h-4 w-2/3 rounded bg-muted animate-pulse" });
|
|
2889
|
-
}
|
|
2890
|
-
function li(e) {
|
|
2891
|
-
return /* @__PURE__ */ v(n, {
|
|
2892
|
-
fallback: /* @__PURE__ */ v(ci, {}),
|
|
2893
|
-
children: /* @__PURE__ */ v(si, { ...e })
|
|
2894
|
-
});
|
|
2895
|
-
}
|
|
2896
2947
|
//#endregion
|
|
2897
2948
|
//#region src/types/fieldType.ts
|
|
2898
|
-
var
|
|
2949
|
+
var _i = /* @__PURE__ */ "bool.bytes.date.decimal.email.enum.float.int.int_array.json.multilang.multilang_text.password.phone.ref.rich_text.secret.string.string_array.structure.tags.text.time.timestamp.url.uuid.uuid_array".split(".");
|
|
2899
2950
|
//#endregion
|
|
2900
2951
|
//#region src/components/shared/CopyButton.tsx
|
|
2901
|
-
function
|
|
2952
|
+
function vi({ value: t, title: n, size: r = "icon" }) {
|
|
2902
2953
|
let [i, a] = f(!1), s = o(async (e) => {
|
|
2903
2954
|
e.stopPropagation(), e.preventDefault();
|
|
2904
2955
|
try {
|
|
@@ -2917,7 +2968,7 @@ function di({ value: t, title: n, size: r = "icon" }) {
|
|
|
2917
2968
|
}
|
|
2918
2969
|
//#endregion
|
|
2919
2970
|
//#region src/components/fields/StringField.tsx
|
|
2920
|
-
function
|
|
2971
|
+
function yi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a }) {
|
|
2921
2972
|
if (r === "display") {
|
|
2922
2973
|
let t = F(n);
|
|
2923
2974
|
return e.copyable && t ? /* @__PURE__ */ y("span", {
|
|
@@ -2929,7 +2980,7 @@ function fi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
2929
2980
|
children: [/* @__PURE__ */ v("span", {
|
|
2930
2981
|
style: { fontSize: 12.5 },
|
|
2931
2982
|
children: t
|
|
2932
|
-
}), /* @__PURE__ */ v(
|
|
2983
|
+
}), /* @__PURE__ */ v(vi, {
|
|
2933
2984
|
value: t,
|
|
2934
2985
|
size: "sm"
|
|
2935
2986
|
})]
|
|
@@ -2951,7 +3002,7 @@ function fi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
2951
3002
|
}
|
|
2952
3003
|
//#endregion
|
|
2953
3004
|
//#region src/components/fields/TextField.tsx
|
|
2954
|
-
function
|
|
3005
|
+
function bi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fill: a, compact: o, fieldId: s }) {
|
|
2955
3006
|
let c = e.display?.widget;
|
|
2956
3007
|
if (r === "display") {
|
|
2957
3008
|
let t = F(n);
|
|
@@ -2994,7 +3045,7 @@ function pi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fill: a, c
|
|
|
2994
3045
|
top: 0,
|
|
2995
3046
|
right: 0
|
|
2996
3047
|
},
|
|
2997
|
-
children: /* @__PURE__ */ v(
|
|
3048
|
+
children: /* @__PURE__ */ v(vi, {
|
|
2998
3049
|
value: t,
|
|
2999
3050
|
size: "sm"
|
|
3000
3051
|
})
|
|
@@ -3021,8 +3072,8 @@ function pi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fill: a, c
|
|
|
3021
3072
|
}
|
|
3022
3073
|
//#endregion
|
|
3023
3074
|
//#region src/components/fields/EnumField.tsx
|
|
3024
|
-
var
|
|
3025
|
-
function
|
|
3075
|
+
var xi = "__declarion_enum_null__";
|
|
3076
|
+
function Si({ field: e, value: t, mode: n, onChange: r, fieldId: i, labelId: a }) {
|
|
3026
3077
|
let o = e.values ?? [], s = o.find((e) => e.code === t);
|
|
3027
3078
|
if (n === "display") return s ? /* @__PURE__ */ v(D, {
|
|
3028
3079
|
tone: s.color ?? "slate",
|
|
@@ -3035,8 +3086,8 @@ function hi({ field: e, value: t, mode: n, onChange: r, fieldId: i, labelId: a }
|
|
|
3035
3086
|
},
|
|
3036
3087
|
children: "—"
|
|
3037
3088
|
});
|
|
3038
|
-
let c = !e.required, l = t != null && t !== "" ? F(t) :
|
|
3039
|
-
value:
|
|
3089
|
+
let c = !e.required, l = t != null && t !== "" ? F(t) : xi, u = [...c ? [{
|
|
3090
|
+
value: xi,
|
|
3040
3091
|
label: "— None —"
|
|
3041
3092
|
}] : [], ...o.map((e) => ({
|
|
3042
3093
|
value: e.code,
|
|
@@ -3048,13 +3099,13 @@ function hi({ field: e, value: t, mode: n, onChange: r, fieldId: i, labelId: a }
|
|
|
3048
3099
|
"aria-required": e.required || void 0,
|
|
3049
3100
|
value: l,
|
|
3050
3101
|
options: u,
|
|
3051
|
-
onChange: (e) => r?.(e ===
|
|
3102
|
+
onChange: (e) => r?.(e === xi ? null : e),
|
|
3052
3103
|
placeholder: "Select…"
|
|
3053
3104
|
});
|
|
3054
3105
|
}
|
|
3055
3106
|
//#endregion
|
|
3056
3107
|
//#region src/components/fields/EmailField.tsx
|
|
3057
|
-
function
|
|
3108
|
+
function Ci({ field: e, fieldName: t, value: n, onChange: r, fieldId: i }) {
|
|
3058
3109
|
return /* @__PURE__ */ v(N, {
|
|
3059
3110
|
id: i,
|
|
3060
3111
|
name: t,
|
|
@@ -3066,7 +3117,7 @@ function gi({ field: e, fieldName: t, value: n, onChange: r, fieldId: i }) {
|
|
|
3066
3117
|
}
|
|
3067
3118
|
//#endregion
|
|
3068
3119
|
//#region src/components/fields/UrlField.tsx
|
|
3069
|
-
function
|
|
3120
|
+
function wi({ field: e, fieldName: t, value: n, onChange: r, fieldId: i }) {
|
|
3070
3121
|
return /* @__PURE__ */ v(N, {
|
|
3071
3122
|
id: i,
|
|
3072
3123
|
name: t,
|
|
@@ -3079,7 +3130,7 @@ function _i({ field: e, fieldName: t, value: n, onChange: r, fieldId: i }) {
|
|
|
3079
3130
|
}
|
|
3080
3131
|
//#endregion
|
|
3081
3132
|
//#region src/components/fields/PhoneField.tsx
|
|
3082
|
-
function
|
|
3133
|
+
function Ti({ field: e, fieldName: t, value: n, onChange: r, fieldId: i }) {
|
|
3083
3134
|
return /* @__PURE__ */ v(N, {
|
|
3084
3135
|
id: i,
|
|
3085
3136
|
name: t,
|
|
@@ -3092,10 +3143,10 @@ function vi({ field: e, fieldName: t, value: n, onChange: r, fieldId: i }) {
|
|
|
3092
3143
|
}
|
|
3093
3144
|
//#endregion
|
|
3094
3145
|
//#region src/lib/timestamp.ts
|
|
3095
|
-
function
|
|
3146
|
+
function Ei(e = /* @__PURE__ */ new Date()) {
|
|
3096
3147
|
return w(e);
|
|
3097
3148
|
}
|
|
3098
|
-
function
|
|
3149
|
+
function Di(e, t) {
|
|
3099
3150
|
let n = e.match(/([+-]\d{2}:\d{2})$/), r = e.endsWith("Z"), i = new Date(e);
|
|
3100
3151
|
if (isNaN(i.getTime())) return e;
|
|
3101
3152
|
if (n || r) {
|
|
@@ -3121,13 +3172,13 @@ function bi(e, t) {
|
|
|
3121
3172
|
}
|
|
3122
3173
|
return new Intl.DateTimeFormat(void 0, t).format(i);
|
|
3123
3174
|
}
|
|
3124
|
-
function
|
|
3125
|
-
return
|
|
3175
|
+
function Oi(e) {
|
|
3176
|
+
return Di(e, {
|
|
3126
3177
|
dateStyle: "medium",
|
|
3127
3178
|
timeStyle: "short"
|
|
3128
3179
|
});
|
|
3129
3180
|
}
|
|
3130
|
-
function
|
|
3181
|
+
function ki(e, t = /* @__PURE__ */ new Date()) {
|
|
3131
3182
|
if (e == null || e === "") return {
|
|
3132
3183
|
text: "—",
|
|
3133
3184
|
absolute: ""
|
|
@@ -3140,7 +3191,7 @@ function Si(e, t = /* @__PURE__ */ new Date()) {
|
|
|
3140
3191
|
absolute: t
|
|
3141
3192
|
};
|
|
3142
3193
|
}
|
|
3143
|
-
let r =
|
|
3194
|
+
let r = Oi(typeof e == "string" ? e : n.toISOString()), i = t.getTime() - n.getTime();
|
|
3144
3195
|
return Math.abs(i) > 720 * 60 * 60 * 1e3 ? {
|
|
3145
3196
|
text: w(n, { representation: "date" }),
|
|
3146
3197
|
absolute: r
|
|
@@ -3151,23 +3202,23 @@ function Si(e, t = /* @__PURE__ */ new Date()) {
|
|
|
3151
3202
|
}
|
|
3152
3203
|
//#endregion
|
|
3153
3204
|
//#region src/components/fields/TimestampField.tsx
|
|
3154
|
-
var
|
|
3205
|
+
var Ai = {
|
|
3155
3206
|
year: "numeric",
|
|
3156
3207
|
month: "short",
|
|
3157
3208
|
day: "numeric"
|
|
3158
|
-
},
|
|
3159
|
-
...
|
|
3209
|
+
}, ji = {
|
|
3210
|
+
...Ai,
|
|
3160
3211
|
hour: "2-digit",
|
|
3161
3212
|
minute: "2-digit"
|
|
3162
3213
|
};
|
|
3163
|
-
function
|
|
3214
|
+
function Mi(e, t) {
|
|
3164
3215
|
if (t) {
|
|
3165
3216
|
let t = /* @__PURE__ */ new Date(e + "T00:00:00");
|
|
3166
|
-
return isNaN(t.getTime()) ? e : new Intl.DateTimeFormat(void 0,
|
|
3217
|
+
return isNaN(t.getTime()) ? e : new Intl.DateTimeFormat(void 0, Ai).format(t);
|
|
3167
3218
|
}
|
|
3168
|
-
return
|
|
3219
|
+
return Di(e, ji);
|
|
3169
3220
|
}
|
|
3170
|
-
function
|
|
3221
|
+
function Ni(e, t) {
|
|
3171
3222
|
if (t) {
|
|
3172
3223
|
let t = /* @__PURE__ */ new Date(e + "T00:00:00");
|
|
3173
3224
|
return isNaN(t.getTime()) ? e : new Intl.DateTimeFormat(void 0, {
|
|
@@ -3185,14 +3236,14 @@ function Ei(e, t) {
|
|
|
3185
3236
|
minute: "2-digit"
|
|
3186
3237
|
}).format(n);
|
|
3187
3238
|
}
|
|
3188
|
-
function
|
|
3239
|
+
function Pi(e) {
|
|
3189
3240
|
if (e.endsWith("Z")) return "UTC";
|
|
3190
3241
|
let t = e.match(/([+-]\d{2}:\d{2})$/);
|
|
3191
3242
|
if (!t) return null;
|
|
3192
3243
|
let n = t[1].charAt(0), r = parseInt(t[1].substring(1, 3), 10), i = parseInt(t[1].substring(4, 6), 10);
|
|
3193
3244
|
return r === 0 && i === 0 ? "UTC" : `UTC${n}${r}${i > 0 ? `:${String(i).padStart(2, "0")}` : ""}`;
|
|
3194
3245
|
}
|
|
3195
|
-
function
|
|
3246
|
+
function Fi(e, t) {
|
|
3196
3247
|
let n = e.match(/([+-]\d{2}:\d{2})$/), r = e.endsWith("Z"), i = new Date(e);
|
|
3197
3248
|
if (isNaN(i.getTime())) return "";
|
|
3198
3249
|
if (r) {
|
|
@@ -3205,13 +3256,13 @@ function Oi(e, t) {
|
|
|
3205
3256
|
}
|
|
3206
3257
|
return t ? e.slice(0, 10) : e.slice(0, 16);
|
|
3207
3258
|
}
|
|
3208
|
-
function
|
|
3259
|
+
function Ii(e, t) {
|
|
3209
3260
|
let n = new Date(e);
|
|
3210
3261
|
if (isNaN(n.getTime())) return "";
|
|
3211
3262
|
let r = n.getFullYear(), i = String(n.getMonth() + 1).padStart(2, "0"), a = String(n.getDate()).padStart(2, "0");
|
|
3212
3263
|
return t ? `${r}-${i}-${a}` : `${r}-${i}-${a}T${String(n.getHours()).padStart(2, "0")}:${String(n.getMinutes()).padStart(2, "0")}`;
|
|
3213
3264
|
}
|
|
3214
|
-
function
|
|
3265
|
+
function Li({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a }) {
|
|
3215
3266
|
let o = e.type === "date", s = !!e.timezone;
|
|
3216
3267
|
if (r === "display") {
|
|
3217
3268
|
if (!n) return /* @__PURE__ */ v("span", {
|
|
@@ -3221,7 +3272,7 @@ function Ai({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
3221
3272
|
},
|
|
3222
3273
|
children: "—"
|
|
3223
3274
|
});
|
|
3224
|
-
let e = F(n), t = s ?
|
|
3275
|
+
let e = F(n), t = s ? Mi(e, o) : Ni(e, o), r = s && !o ? Pi(e) : null;
|
|
3225
3276
|
return /* @__PURE__ */ y("span", {
|
|
3226
3277
|
style: { fontSize: 12.5 },
|
|
3227
3278
|
children: [t, r && /* @__PURE__ */ v("span", {
|
|
@@ -3233,7 +3284,7 @@ function Ai({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
3233
3284
|
})]
|
|
3234
3285
|
});
|
|
3235
3286
|
}
|
|
3236
|
-
let c = n ? s ?
|
|
3287
|
+
let c = n ? s ? Fi(F(n), o) : Ii(F(n), o) : "";
|
|
3237
3288
|
return /* @__PURE__ */ v(N, {
|
|
3238
3289
|
id: a,
|
|
3239
3290
|
name: t,
|
|
@@ -3254,13 +3305,13 @@ function Ai({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
3254
3305
|
i?.(e);
|
|
3255
3306
|
return;
|
|
3256
3307
|
}
|
|
3257
|
-
i?.(
|
|
3308
|
+
i?.(Ei(t));
|
|
3258
3309
|
}
|
|
3259
3310
|
});
|
|
3260
3311
|
}
|
|
3261
3312
|
//#endregion
|
|
3262
3313
|
//#region src/components/fields/BoolField.tsx
|
|
3263
|
-
function
|
|
3314
|
+
function Ri({ value: e, mode: t, onChange: n, fieldId: r, labelId: i }) {
|
|
3264
3315
|
let a = !!e;
|
|
3265
3316
|
return t === "display" ? /* @__PURE__ */ y("span", {
|
|
3266
3317
|
style: {
|
|
@@ -3285,7 +3336,7 @@ function ji({ value: e, mode: t, onChange: n, fieldId: r, labelId: i }) {
|
|
|
3285
3336
|
}
|
|
3286
3337
|
//#endregion
|
|
3287
3338
|
//#region src/components/fields/NumberField.tsx
|
|
3288
|
-
function
|
|
3339
|
+
function zi(e) {
|
|
3289
3340
|
let t = e.trim();
|
|
3290
3341
|
if (t === "" || t === "-") return t;
|
|
3291
3342
|
let n = t.startsWith("-"), [r, i] = (n ? t.slice(1) : t).split("."), a;
|
|
@@ -3297,8 +3348,8 @@ function Mi(e) {
|
|
|
3297
3348
|
let o = n ? `-${a}` : a;
|
|
3298
3349
|
return i !== void 0 && (o += `.${i}`), o;
|
|
3299
3350
|
}
|
|
3300
|
-
var
|
|
3301
|
-
function
|
|
3351
|
+
var Bi = new Intl.NumberFormat();
|
|
3352
|
+
function Vi({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a, fieldId: o }) {
|
|
3302
3353
|
let s = e.display?.widget === "money", c = e.type === "decimal" || s, l = a?.$units?.[t], u = !l && e.unit ? e.unit.display || e.unit.storage : void 0, d = l || (u && !u.startsWith("$") ? u : void 0);
|
|
3303
3354
|
if (r === "display") {
|
|
3304
3355
|
if (n == null) return /* @__PURE__ */ v("span", {
|
|
@@ -3309,10 +3360,10 @@ function Pi({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a,
|
|
|
3309
3360
|
children: "—"
|
|
3310
3361
|
});
|
|
3311
3362
|
let e;
|
|
3312
|
-
if (c && typeof n == "string") e =
|
|
3363
|
+
if (c && typeof n == "string") e = zi(n);
|
|
3313
3364
|
else {
|
|
3314
3365
|
let t = Number(n);
|
|
3315
|
-
e = isNaN(t) ? null :
|
|
3366
|
+
e = isNaN(t) ? null : Bi.format(t);
|
|
3316
3367
|
}
|
|
3317
3368
|
return e == null ? /* @__PURE__ */ v("span", {
|
|
3318
3369
|
style: { fontSize: 12.5 },
|
|
@@ -3356,14 +3407,8 @@ function Pi({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a,
|
|
|
3356
3407
|
});
|
|
3357
3408
|
}
|
|
3358
3409
|
//#endregion
|
|
3359
|
-
//#region src/hooks/useEntity.ts
|
|
3360
|
-
function Fi(e) {
|
|
3361
|
-
let { data: t } = J();
|
|
3362
|
-
if (!(!t || !e)) return t.entities[e];
|
|
3363
|
-
}
|
|
3364
|
-
//#endregion
|
|
3365
3410
|
//#region src/hooks/useEntityData.ts
|
|
3366
|
-
function
|
|
3411
|
+
function Hi(e, t) {
|
|
3367
3412
|
return [
|
|
3368
3413
|
"entity-data",
|
|
3369
3414
|
e,
|
|
@@ -3373,16 +3418,16 @@ function Ii(e, t) {
|
|
|
3373
3418
|
}
|
|
3374
3419
|
];
|
|
3375
3420
|
}
|
|
3376
|
-
function
|
|
3377
|
-
let r =
|
|
3421
|
+
function Ui(e, t, n = !0) {
|
|
3422
|
+
let r = Hi(e, t), i = r[2];
|
|
3378
3423
|
return h({
|
|
3379
3424
|
queryKey: r,
|
|
3380
|
-
queryFn: ({ signal: t }) =>
|
|
3425
|
+
queryFn: ({ signal: t }) => Vn(e, i, { signal: t }),
|
|
3381
3426
|
enabled: !!e && n,
|
|
3382
3427
|
placeholderData: (t, n) => n?.queryKey?.[1] === e ? t : void 0
|
|
3383
3428
|
});
|
|
3384
3429
|
}
|
|
3385
|
-
function
|
|
3430
|
+
function Wi(e, t, n = !0) {
|
|
3386
3431
|
let r = {
|
|
3387
3432
|
...t,
|
|
3388
3433
|
count: "only",
|
|
@@ -3398,7 +3443,7 @@ function Ri(e, t, n = !0) {
|
|
|
3398
3443
|
e,
|
|
3399
3444
|
r
|
|
3400
3445
|
],
|
|
3401
|
-
queryFn: ({ signal: t }) =>
|
|
3446
|
+
queryFn: ({ signal: t }) => Vn(e, r, { signal: t }),
|
|
3402
3447
|
enabled: !!e && n,
|
|
3403
3448
|
retry: 1,
|
|
3404
3449
|
staleTime: 3e4,
|
|
@@ -3407,7 +3452,7 @@ function Ri(e, t, n = !0) {
|
|
|
3407
3452
|
}
|
|
3408
3453
|
//#endregion
|
|
3409
3454
|
//#region src/hooks/useDebounce.ts
|
|
3410
|
-
function
|
|
3455
|
+
function Gi(e, t) {
|
|
3411
3456
|
let [n, r] = f(e);
|
|
3412
3457
|
return c(() => {
|
|
3413
3458
|
let n = setTimeout(() => r(e), t);
|
|
@@ -3415,18 +3460,24 @@ function zi(e, t) {
|
|
|
3415
3460
|
}, [e, t]), n;
|
|
3416
3461
|
}
|
|
3417
3462
|
//#endregion
|
|
3463
|
+
//#region src/hooks/useEntity.ts
|
|
3464
|
+
function Ki(e) {
|
|
3465
|
+
let { data: t } = J();
|
|
3466
|
+
if (!(!t || !e)) return t.entities[e];
|
|
3467
|
+
}
|
|
3468
|
+
//#endregion
|
|
3418
3469
|
//#region src/components/fields/RefCombobox.tsx
|
|
3419
|
-
var
|
|
3420
|
-
function
|
|
3421
|
-
let m = e?.entity, h =
|
|
3422
|
-
per_page:
|
|
3470
|
+
var qi = 200;
|
|
3471
|
+
function Ji({ ref: e, value: t, onChange: n, refs: r, displayFieldOverride: i, id: a, labelId: o, ariaLabel: s, required: c, placeholder: l = "Select…", specialValues: p }) {
|
|
3472
|
+
let m = e?.entity, h = Ki(m), g = i ?? e?.display?.field ?? h?.display?.display_field ?? "$display", _ = u(() => h ? R(h)[0] ?? "id" : "id", [h]), y = e?.field || _, [b, x] = f(""), S = Gi(b, 300), { data: C, isLoading: w } = Ui(m, {
|
|
3473
|
+
per_page: qi,
|
|
3423
3474
|
sort: g ? `${g}:asc` : void 0,
|
|
3424
3475
|
search: S || void 0
|
|
3425
3476
|
}), T = u(() => C?.data ?? [], [C?.data]), E = t == null ? "" : F(t), D = u(() => T.some((e) => String(e[y]) === E), [
|
|
3426
3477
|
T,
|
|
3427
3478
|
y,
|
|
3428
3479
|
E
|
|
3429
|
-
]), O = r && m ? r[m]?.[E] : void 0, k = !!p?.some((e) => e.code === E), { data: A } =
|
|
3480
|
+
]), O = r && m ? r[m]?.[E] : void 0, k = !!p?.some((e) => e.code === E), { data: A } = Ui(E && !D && !k && !O && !w ? m : void 0, {
|
|
3430
3481
|
per_page: 1,
|
|
3431
3482
|
filters: [{
|
|
3432
3483
|
field: y,
|
|
@@ -3513,25 +3564,25 @@ function Vi({ ref: e, value: t, onChange: n, refs: r, displayFieldOverride: i, i
|
|
|
3513
3564
|
}
|
|
3514
3565
|
//#endregion
|
|
3515
3566
|
//#region src/components/fields/RefField.tsx
|
|
3516
|
-
function
|
|
3517
|
-
let s = e.ref?.entity, c =
|
|
3567
|
+
function Yi({ field: e, value: t, mode: n, onChange: r, refs: i, fieldId: a, labelId: o }) {
|
|
3568
|
+
let s = e.ref?.entity, c = e.display?.ref_display_field || "$display", l = u(() => {
|
|
3518
3569
|
if (t == null) return "—";
|
|
3519
3570
|
let e = F(t);
|
|
3520
3571
|
if (i && s) {
|
|
3521
3572
|
let t = i[s]?.[e];
|
|
3522
|
-
if (t) return L(t,
|
|
3573
|
+
if (t) return L(t, c, e);
|
|
3523
3574
|
}
|
|
3524
3575
|
return e;
|
|
3525
3576
|
}, [
|
|
3526
3577
|
t,
|
|
3527
3578
|
i,
|
|
3528
3579
|
s,
|
|
3529
|
-
|
|
3580
|
+
c
|
|
3530
3581
|
]);
|
|
3531
3582
|
return n === "display" ? /* @__PURE__ */ v("span", {
|
|
3532
3583
|
style: { fontSize: 12.5 },
|
|
3533
|
-
children:
|
|
3534
|
-
}) : /* @__PURE__ */ v(
|
|
3584
|
+
children: l
|
|
3585
|
+
}) : /* @__PURE__ */ v(Ji, {
|
|
3535
3586
|
ref: e.ref,
|
|
3536
3587
|
value: t,
|
|
3537
3588
|
onChange: (e) => r?.(e),
|
|
@@ -3544,29 +3595,29 @@ function Hi({ field: e, value: t, mode: n, onChange: r, refs: i, fieldId: a, lab
|
|
|
3544
3595
|
}
|
|
3545
3596
|
//#endregion
|
|
3546
3597
|
//#region src/components/fields/JsonField.tsx
|
|
3547
|
-
var
|
|
3548
|
-
function
|
|
3598
|
+
var Xi = a(() => import("./JsonEditor-KelPV-OQ.js").then((e) => ({ default: e.JsonEditor })));
|
|
3599
|
+
function Zi() {
|
|
3549
3600
|
return /* @__PURE__ */ v("div", { className: "h-20 rounded-md border border-border bg-muted animate-pulse" });
|
|
3550
3601
|
}
|
|
3551
|
-
function
|
|
3602
|
+
function Qi(e) {
|
|
3552
3603
|
return e == null ? !0 : typeof e == "string" ? e.trim() === "" : Array.isArray(e) ? e.length === 0 : typeof e == "object" ? Object.keys(e).length === 0 : !1;
|
|
3553
3604
|
}
|
|
3554
|
-
function
|
|
3555
|
-
return t === "display" ?
|
|
3605
|
+
function $i({ value: e, mode: t, onChange: r, fieldId: i }) {
|
|
3606
|
+
return t === "display" ? Qi(e) ? /* @__PURE__ */ v("span", {
|
|
3556
3607
|
style: {
|
|
3557
3608
|
fontSize: 12.5,
|
|
3558
3609
|
color: "var(--text-4)"
|
|
3559
3610
|
},
|
|
3560
3611
|
children: "—"
|
|
3561
3612
|
}) : /* @__PURE__ */ v(n, {
|
|
3562
|
-
fallback: /* @__PURE__ */ v(
|
|
3563
|
-
children: /* @__PURE__ */ v(
|
|
3613
|
+
fallback: /* @__PURE__ */ v(Zi, {}),
|
|
3614
|
+
children: /* @__PURE__ */ v(Xi, {
|
|
3564
3615
|
value: e,
|
|
3565
3616
|
readOnly: !0
|
|
3566
3617
|
})
|
|
3567
3618
|
}) : /* @__PURE__ */ v(n, {
|
|
3568
|
-
fallback: /* @__PURE__ */ v(
|
|
3569
|
-
children: /* @__PURE__ */ v(
|
|
3619
|
+
fallback: /* @__PURE__ */ v(Zi, {}),
|
|
3620
|
+
children: /* @__PURE__ */ v(Xi, {
|
|
3570
3621
|
value: e,
|
|
3571
3622
|
onChange: r,
|
|
3572
3623
|
id: i
|
|
@@ -3575,14 +3626,14 @@ function Ki({ value: e, mode: t, onChange: r, fieldId: i }) {
|
|
|
3575
3626
|
}
|
|
3576
3627
|
//#endregion
|
|
3577
3628
|
//#region src/components/fields/MultilangField.tsx
|
|
3578
|
-
function
|
|
3629
|
+
function ea(e) {
|
|
3579
3630
|
return e == null ? {} : typeof e == "object" && !Array.isArray(e) ? e : typeof e == "string" ? { en: e } : {};
|
|
3580
3631
|
}
|
|
3581
|
-
function
|
|
3632
|
+
function ta({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a }) {
|
|
3582
3633
|
let { data: o } = J(), s = o?.languages?.length ? o.languages : [{
|
|
3583
3634
|
code: "en",
|
|
3584
3635
|
name: { en: "English" }
|
|
3585
|
-
}], c =
|
|
3636
|
+
}], c = ea(n);
|
|
3586
3637
|
if (r === "display") return /* @__PURE__ */ v("span", {
|
|
3587
3638
|
style: { fontSize: 12.5 },
|
|
3588
3639
|
children: Object.values(c)[0] ?? "—"
|
|
@@ -3638,14 +3689,14 @@ function Ji({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
3638
3689
|
}
|
|
3639
3690
|
//#endregion
|
|
3640
3691
|
//#region src/components/fields/MultilangTextField.tsx
|
|
3641
|
-
function
|
|
3692
|
+
function na(e) {
|
|
3642
3693
|
return e == null ? {} : typeof e == "object" && !Array.isArray(e) ? e : typeof e == "string" ? { en: e } : {};
|
|
3643
3694
|
}
|
|
3644
|
-
function
|
|
3695
|
+
function ra({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a }) {
|
|
3645
3696
|
let { data: o } = J(), s = o?.languages?.length ? o.languages : [{
|
|
3646
3697
|
code: "en",
|
|
3647
3698
|
name: { en: "English" }
|
|
3648
|
-
}], c =
|
|
3699
|
+
}], c = na(n);
|
|
3649
3700
|
if (r === "display") return /* @__PURE__ */ v("p", {
|
|
3650
3701
|
style: {
|
|
3651
3702
|
fontSize: 12.5,
|
|
@@ -3701,25 +3752,25 @@ function Xi({ field: e, fieldName: t, value: n, mode: r, onChange: i, fieldId: a
|
|
|
3701
3752
|
}
|
|
3702
3753
|
//#endregion
|
|
3703
3754
|
//#region src/components/fields/StructureField.tsx
|
|
3704
|
-
function
|
|
3755
|
+
function ia(e) {
|
|
3705
3756
|
let { field: t, value: n, mode: r, onChange: i, locale: a, fieldId: o } = e, { data: s } = J(), c = t.structure ? s?.structures?.[t.structure] : void 0;
|
|
3706
|
-
return c ? t.array ? /* @__PURE__ */ v(
|
|
3757
|
+
return c ? t.array ? /* @__PURE__ */ v(oa, {
|
|
3707
3758
|
structDef: c,
|
|
3708
3759
|
value: n,
|
|
3709
3760
|
mode: r,
|
|
3710
3761
|
onChange: i,
|
|
3711
3762
|
locale: a,
|
|
3712
3763
|
fieldId: o
|
|
3713
|
-
}) : /* @__PURE__ */ v(
|
|
3764
|
+
}) : /* @__PURE__ */ v(aa, {
|
|
3714
3765
|
structDef: c,
|
|
3715
3766
|
value: n,
|
|
3716
3767
|
mode: r,
|
|
3717
3768
|
onChange: i,
|
|
3718
3769
|
locale: a,
|
|
3719
3770
|
fieldId: o
|
|
3720
|
-
}) : /* @__PURE__ */ v(
|
|
3771
|
+
}) : /* @__PURE__ */ v($i, { ...e });
|
|
3721
3772
|
}
|
|
3722
|
-
function
|
|
3773
|
+
function aa({ structDef: e, value: t, mode: n, onChange: r, locale: i, fieldId: a }) {
|
|
3723
3774
|
let o = typeof t == "object" && t && !Array.isArray(t) ? t : {}, s = e.fields.names(), c = {
|
|
3724
3775
|
display: "flex",
|
|
3725
3776
|
flexDirection: "column",
|
|
@@ -3755,13 +3806,13 @@ function Qi({ structDef: e, value: t, mode: n, onChange: r, locale: i, fieldId:
|
|
|
3755
3806
|
minWidth: 0,
|
|
3756
3807
|
flex: 1
|
|
3757
3808
|
},
|
|
3758
|
-
children: n.type === "structure" && n.structure ? /* @__PURE__ */ v(
|
|
3809
|
+
children: n.type === "structure" && n.structure ? /* @__PURE__ */ v(ia, {
|
|
3759
3810
|
field: n,
|
|
3760
3811
|
fieldName: t,
|
|
3761
3812
|
value: r,
|
|
3762
3813
|
mode: "display",
|
|
3763
3814
|
locale: i
|
|
3764
|
-
}) :
|
|
3815
|
+
}) : Es({
|
|
3765
3816
|
field: n,
|
|
3766
3817
|
fieldName: t,
|
|
3767
3818
|
value: r,
|
|
@@ -3799,14 +3850,14 @@ function Qi({ structDef: e, value: t, mode: n, onChange: r, locale: i, fieldId:
|
|
|
3799
3850
|
children: [/* @__PURE__ */ v(be, {
|
|
3800
3851
|
required: n.required,
|
|
3801
3852
|
children: n.display ? I(n.display.name) : t
|
|
3802
|
-
}), n.type === "structure" && n.structure ? /* @__PURE__ */ v(
|
|
3853
|
+
}), n.type === "structure" && n.structure ? /* @__PURE__ */ v(ia, {
|
|
3803
3854
|
field: n,
|
|
3804
3855
|
fieldName: t,
|
|
3805
3856
|
value: o[t],
|
|
3806
3857
|
mode: "edit",
|
|
3807
3858
|
onChange: l(t),
|
|
3808
3859
|
locale: i
|
|
3809
|
-
}) :
|
|
3860
|
+
}) : Es({
|
|
3810
3861
|
field: n,
|
|
3811
3862
|
fieldName: t,
|
|
3812
3863
|
value: o[t],
|
|
@@ -3818,7 +3869,7 @@ function Qi({ structDef: e, value: t, mode: n, onChange: r, locale: i, fieldId:
|
|
|
3818
3869
|
})
|
|
3819
3870
|
});
|
|
3820
3871
|
}
|
|
3821
|
-
function
|
|
3872
|
+
function oa({ structDef: t, value: n, mode: r, onChange: i, locale: a, fieldId: o }) {
|
|
3822
3873
|
let s = Array.isArray(n) ? n : [];
|
|
3823
3874
|
if (r === "display") return s.length === 0 ? /* @__PURE__ */ v("span", {
|
|
3824
3875
|
style: {
|
|
@@ -3832,7 +3883,7 @@ function $i({ structDef: t, value: n, mode: r, onChange: i, locale: a, fieldId:
|
|
|
3832
3883
|
flexDirection: "column",
|
|
3833
3884
|
gap: 8
|
|
3834
3885
|
},
|
|
3835
|
-
children: s.map((e, n) => /* @__PURE__ */ v(
|
|
3886
|
+
children: s.map((e, n) => /* @__PURE__ */ v(aa, {
|
|
3836
3887
|
structDef: t,
|
|
3837
3888
|
value: e,
|
|
3838
3889
|
mode: "display",
|
|
@@ -3858,7 +3909,7 @@ function $i({ structDef: t, value: n, mode: r, onChange: i, locale: a, fieldId:
|
|
|
3858
3909
|
role: "group",
|
|
3859
3910
|
children: [s.map((n, r) => /* @__PURE__ */ y("div", {
|
|
3860
3911
|
style: { position: "relative" },
|
|
3861
|
-
children: [/* @__PURE__ */ v(
|
|
3912
|
+
children: [/* @__PURE__ */ v(aa, {
|
|
3862
3913
|
structDef: t,
|
|
3863
3914
|
value: n,
|
|
3864
3915
|
mode: "edit",
|
|
@@ -3886,16 +3937,16 @@ function $i({ structDef: t, value: n, mode: r, onChange: i, locale: a, fieldId:
|
|
|
3886
3937
|
}
|
|
3887
3938
|
//#endregion
|
|
3888
3939
|
//#region src/components/fields/SecretField.tsx
|
|
3889
|
-
var
|
|
3890
|
-
function
|
|
3891
|
-
let [s, c] = f(""), l = a !== void 0, u = n ===
|
|
3940
|
+
var sa = "[SET]";
|
|
3941
|
+
function ca({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a, fieldId: o }) {
|
|
3942
|
+
let [s, c] = f(""), l = a !== void 0, u = n === sa || typeof n == "string" && n !== "";
|
|
3892
3943
|
return r === "display" ? u ? /* @__PURE__ */ v("span", {
|
|
3893
3944
|
className: "mono",
|
|
3894
3945
|
style: {
|
|
3895
3946
|
fontSize: 12.5,
|
|
3896
3947
|
color: "var(--text-3)"
|
|
3897
3948
|
},
|
|
3898
|
-
children:
|
|
3949
|
+
children: sa
|
|
3899
3950
|
}) : /* @__PURE__ */ v("span", {
|
|
3900
3951
|
style: {
|
|
3901
3952
|
fontSize: 12.5,
|
|
@@ -3909,23 +3960,23 @@ function ta({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a,
|
|
|
3909
3960
|
ariaRequired: e.required,
|
|
3910
3961
|
value: s,
|
|
3911
3962
|
onChange: (e) => {
|
|
3912
|
-
c(e), l && e === "" ? i?.(u ?
|
|
3963
|
+
c(e), l && e === "" ? i?.(u ? sa : "") : i?.(e);
|
|
3913
3964
|
},
|
|
3914
3965
|
placeholder: l ? "Leave blank to keep existing value" : "Enter value"
|
|
3915
3966
|
});
|
|
3916
3967
|
}
|
|
3917
3968
|
//#endregion
|
|
3918
3969
|
//#region src/components/fields/PasswordField.tsx
|
|
3919
|
-
var
|
|
3920
|
-
function
|
|
3921
|
-
let [s, c] = f(""), l = a !== void 0, u = n ===
|
|
3970
|
+
var la = "[SET]";
|
|
3971
|
+
function ua({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a, fieldId: o }) {
|
|
3972
|
+
let [s, c] = f(""), l = a !== void 0, u = n === la || typeof n == "string" && n !== "";
|
|
3922
3973
|
return r === "display" ? u ? /* @__PURE__ */ v("span", {
|
|
3923
3974
|
className: "mono",
|
|
3924
3975
|
style: {
|
|
3925
3976
|
fontSize: 12.5,
|
|
3926
3977
|
color: "var(--text-3)"
|
|
3927
3978
|
},
|
|
3928
|
-
children:
|
|
3979
|
+
children: la
|
|
3929
3980
|
}) : /* @__PURE__ */ v("span", {
|
|
3930
3981
|
style: {
|
|
3931
3982
|
fontSize: 12.5,
|
|
@@ -3939,18 +3990,18 @@ function ra({ field: e, fieldName: t, value: n, mode: r, onChange: i, record: a,
|
|
|
3939
3990
|
ariaRequired: e.required,
|
|
3940
3991
|
value: s,
|
|
3941
3992
|
onChange: (e) => {
|
|
3942
|
-
c(e), l && e === "" ? i?.(u ?
|
|
3993
|
+
c(e), l && e === "" ? i?.(u ? la : "") : i?.(e);
|
|
3943
3994
|
},
|
|
3944
3995
|
placeholder: l ? "Leave blank to keep existing value" : "Enter password"
|
|
3945
3996
|
});
|
|
3946
3997
|
}
|
|
3947
3998
|
//#endregion
|
|
3948
3999
|
//#region src/components/fields/StringArrayField.tsx
|
|
3949
|
-
function
|
|
4000
|
+
function da(e) {
|
|
3950
4001
|
return Array.isArray(e) ? e.filter((e) => e != null).map(String) : [];
|
|
3951
4002
|
}
|
|
3952
|
-
function
|
|
3953
|
-
let s =
|
|
4003
|
+
function fa({ field: t, fieldName: n, value: r, mode: i, onChange: a, fieldId: o }) {
|
|
4004
|
+
let s = da(r), [c, l] = f("");
|
|
3954
4005
|
if (i === "display") return s.length === 0 ? /* @__PURE__ */ v("span", {
|
|
3955
4006
|
style: {
|
|
3956
4007
|
fontSize: 12.5,
|
|
@@ -4019,11 +4070,11 @@ function aa({ field: t, fieldName: n, value: r, mode: i, onChange: a, fieldId: o
|
|
|
4019
4070
|
}
|
|
4020
4071
|
//#endregion
|
|
4021
4072
|
//#region src/components/fields/IntArrayField.tsx
|
|
4022
|
-
function
|
|
4073
|
+
function pa(e) {
|
|
4023
4074
|
return Array.isArray(e) ? e.filter((e) => e != null).map(Number).filter((e) => !isNaN(e)) : [];
|
|
4024
4075
|
}
|
|
4025
|
-
function
|
|
4026
|
-
let s =
|
|
4076
|
+
function ma({ field: t, fieldName: n, value: r, mode: i, onChange: a, fieldId: o }) {
|
|
4077
|
+
let s = pa(r), [c, l] = f("");
|
|
4027
4078
|
if (i === "display") return s.length === 0 ? /* @__PURE__ */ v("span", {
|
|
4028
4079
|
style: {
|
|
4029
4080
|
fontSize: 12.5,
|
|
@@ -4095,47 +4146,47 @@ function sa({ field: t, fieldName: n, value: r, mode: i, onChange: a, fieldId: o
|
|
|
4095
4146
|
}
|
|
4096
4147
|
//#endregion
|
|
4097
4148
|
//#region src/lib/rich-text.ts
|
|
4098
|
-
var
|
|
4099
|
-
function
|
|
4100
|
-
return typeof e == "string" ? e :
|
|
4149
|
+
var ha = /declarion:\/\/file\/([0-9a-fA-F-]{36})/g;
|
|
4150
|
+
function ga(e) {
|
|
4151
|
+
return typeof e == "string" ? e : wa(e) && typeof e.markdown == "string" ? e.markdown : "";
|
|
4101
4152
|
}
|
|
4102
|
-
function
|
|
4153
|
+
function _a(e, t) {
|
|
4103
4154
|
return {
|
|
4104
|
-
markdown:
|
|
4105
|
-
files:
|
|
4155
|
+
markdown: ga(e),
|
|
4156
|
+
files: ba(t)
|
|
4106
4157
|
};
|
|
4107
4158
|
}
|
|
4108
|
-
function
|
|
4109
|
-
let n =
|
|
4159
|
+
function va(e, t) {
|
|
4160
|
+
let n = _a(e, null);
|
|
4110
4161
|
return n.files[t.id] = t, n;
|
|
4111
4162
|
}
|
|
4112
|
-
function
|
|
4113
|
-
let n =
|
|
4163
|
+
function ya(e, t) {
|
|
4164
|
+
let n = _a(e, null);
|
|
4114
4165
|
for (let e of t) delete n.files[e];
|
|
4115
4166
|
return n;
|
|
4116
4167
|
}
|
|
4117
|
-
function
|
|
4168
|
+
function ba(e) {
|
|
4118
4169
|
if (!Array.isArray(e)) return {};
|
|
4119
4170
|
let t = {};
|
|
4120
|
-
for (let n of e)
|
|
4171
|
+
for (let n of e) wa(n) && typeof n.id == "string" && (t[n.id] = n);
|
|
4121
4172
|
return t;
|
|
4122
4173
|
}
|
|
4123
|
-
function
|
|
4174
|
+
function xa(e) {
|
|
4124
4175
|
let t = /* @__PURE__ */ new Set(), n = [], r;
|
|
4125
|
-
for (
|
|
4176
|
+
for (ha.lastIndex = 0; (r = ha.exec(e)) !== null;) {
|
|
4126
4177
|
let e = r[1];
|
|
4127
4178
|
t.has(e) || (t.add(e), n.push(e));
|
|
4128
4179
|
}
|
|
4129
4180
|
return n;
|
|
4130
4181
|
}
|
|
4131
|
-
function
|
|
4182
|
+
function Sa(e) {
|
|
4132
4183
|
return e ? /^declarion:\/\/file\/([0-9a-fA-F-]{36})$/.exec(e)?.[1] ?? null : null;
|
|
4133
4184
|
}
|
|
4134
|
-
function
|
|
4185
|
+
function Ca(e) {
|
|
4135
4186
|
let t = `declarion://file/${e.id}`;
|
|
4136
4187
|
return e.content_type.startsWith("image/") ? `` : `[${e.filename || e.id}](${t})`;
|
|
4137
4188
|
}
|
|
4138
|
-
function
|
|
4189
|
+
function wa(e) {
|
|
4139
4190
|
return typeof e == "object" && !!e;
|
|
4140
4191
|
}
|
|
4141
4192
|
//#endregion
|
|
@@ -4147,10 +4198,10 @@ var Q = class extends Error {
|
|
|
4147
4198
|
super(n), this.code = t, this.status = e;
|
|
4148
4199
|
}
|
|
4149
4200
|
};
|
|
4150
|
-
async function
|
|
4201
|
+
async function Ta(e) {
|
|
4151
4202
|
let t = bt();
|
|
4152
4203
|
try {
|
|
4153
|
-
return await
|
|
4204
|
+
return await Ea(e, t ? await Et() : null);
|
|
4154
4205
|
} catch (n) {
|
|
4155
4206
|
if (!(n instanceof Q && n.status === 401 && (n.code === "TOKEN_REFRESH_NEEDED" || n.code === "UNAUTHORIZED"))) throw n;
|
|
4156
4207
|
let r = null;
|
|
@@ -4160,17 +4211,17 @@ async function va(e) {
|
|
|
4160
4211
|
throw pn()(), n;
|
|
4161
4212
|
}
|
|
4162
4213
|
try {
|
|
4163
|
-
return await
|
|
4214
|
+
return await Ea(e, r);
|
|
4164
4215
|
} catch (e) {
|
|
4165
4216
|
throw e instanceof Q && e.status === 401 && pn()(), e;
|
|
4166
4217
|
}
|
|
4167
4218
|
}
|
|
4168
4219
|
}
|
|
4169
|
-
function
|
|
4220
|
+
function Ea(e, t) {
|
|
4170
4221
|
let { file: n, entityCode: r, fieldCode: i, slotCode: a, onProgress: o, signal: s } = e;
|
|
4171
4222
|
return new Promise((e, c) => {
|
|
4172
4223
|
let l = new XMLHttpRequest();
|
|
4173
|
-
if (l.open("POST",
|
|
4224
|
+
if (l.open("POST", Da(r, i, a)), l.withCredentials = t === null, t && l.setRequestHeader("Authorization", `Bearer ${t}`), l.upload.onprogress = (e) => {
|
|
4174
4225
|
if (!o) return;
|
|
4175
4226
|
let t = e.lengthComputable ? e.total : n.size, r = t > 0 ? Math.min(100, Math.round(e.loaded / t * 100)) : 0;
|
|
4176
4227
|
o({
|
|
@@ -4184,7 +4235,7 @@ function ya(e, t) {
|
|
|
4184
4235
|
n = t ? JSON.parse(t) : null;
|
|
4185
4236
|
} catch {}
|
|
4186
4237
|
if (l.status >= 200 && l.status < 300) {
|
|
4187
|
-
let t =
|
|
4238
|
+
let t = Oa(n);
|
|
4188
4239
|
if (!t || !t.id) {
|
|
4189
4240
|
c(new Q(l.status, "BAD_RESPONSE", "Upload returned no file id"));
|
|
4190
4241
|
return;
|
|
@@ -4209,56 +4260,56 @@ function ya(e, t) {
|
|
|
4209
4260
|
u.append("file", n, n.name), l.send(u);
|
|
4210
4261
|
});
|
|
4211
4262
|
}
|
|
4212
|
-
function
|
|
4263
|
+
function Da(e, t, n) {
|
|
4213
4264
|
let r = new URLSearchParams();
|
|
4214
4265
|
e && t && (r.set("entity_code", e), r.set("field_code", t), n && r.set("slot_code", n));
|
|
4215
4266
|
let i = r.toString();
|
|
4216
4267
|
return i ? `/api/files/upload?${i}` : "/api/files/upload";
|
|
4217
4268
|
}
|
|
4218
|
-
function
|
|
4219
|
-
return
|
|
4269
|
+
function Oa(e) {
|
|
4270
|
+
return Aa(e) ? Aa(e.result) ? Oa(e.result) : Aa(e.file) ? ka(e.file) : typeof e.id == "string" ? e : null : null;
|
|
4220
4271
|
}
|
|
4221
|
-
function
|
|
4222
|
-
let t =
|
|
4272
|
+
function ka(e) {
|
|
4273
|
+
let t = ja(e.file_id);
|
|
4223
4274
|
return t ? {
|
|
4224
4275
|
id: t,
|
|
4225
|
-
filename:
|
|
4226
|
-
content_type:
|
|
4227
|
-
size_bytes:
|
|
4228
|
-
sha256:
|
|
4229
|
-
dedup:
|
|
4276
|
+
filename: ja(e.filename_original) ?? ja(e.filename_normalized) ?? t,
|
|
4277
|
+
content_type: ja(e.content_type) ?? "application/octet-stream",
|
|
4278
|
+
size_bytes: Ma(e.size_bytes) ?? 0,
|
|
4279
|
+
sha256: ja(e.sha256) ?? "",
|
|
4280
|
+
dedup: Na(e.dedup)
|
|
4230
4281
|
} : null;
|
|
4231
4282
|
}
|
|
4232
|
-
function
|
|
4283
|
+
function Aa(e) {
|
|
4233
4284
|
return typeof e == "object" && !!e;
|
|
4234
4285
|
}
|
|
4235
|
-
function
|
|
4286
|
+
function ja(e) {
|
|
4236
4287
|
return typeof e == "string" ? e : void 0;
|
|
4237
4288
|
}
|
|
4238
|
-
function
|
|
4289
|
+
function Ma(e) {
|
|
4239
4290
|
return typeof e == "number" ? e : void 0;
|
|
4240
4291
|
}
|
|
4241
|
-
function
|
|
4292
|
+
function Na(e) {
|
|
4242
4293
|
return typeof e == "boolean" ? e : void 0;
|
|
4243
4294
|
}
|
|
4244
|
-
async function
|
|
4295
|
+
async function Pa(e) {
|
|
4245
4296
|
await q("files.discard", { file_id: e });
|
|
4246
4297
|
}
|
|
4247
|
-
function
|
|
4298
|
+
function Fa(e, t, n) {
|
|
4248
4299
|
if (n && e.size > n) return {
|
|
4249
4300
|
code: "FILE_TOO_LARGE",
|
|
4250
|
-
message: `File is ${
|
|
4301
|
+
message: `File is ${La(e.size)}, max ${La(n)}`
|
|
4251
4302
|
};
|
|
4252
4303
|
if (t && t.length > 0) {
|
|
4253
4304
|
let n = e.type || "application/octet-stream";
|
|
4254
|
-
if (!t.some((e) =>
|
|
4305
|
+
if (!t.some((e) => Ia(e, n))) return {
|
|
4255
4306
|
code: "MIME_NOT_ACCEPTED",
|
|
4256
4307
|
message: `File type ${n} is not accepted`
|
|
4257
4308
|
};
|
|
4258
4309
|
}
|
|
4259
4310
|
return null;
|
|
4260
4311
|
}
|
|
4261
|
-
function
|
|
4312
|
+
function Ia(e, t) {
|
|
4262
4313
|
if (e === "*/*" || e === "*") return !0;
|
|
4263
4314
|
if (e.endsWith("/*")) {
|
|
4264
4315
|
let n = e.slice(0, e.length - 1);
|
|
@@ -4266,7 +4317,7 @@ function ka(e, t) {
|
|
|
4266
4317
|
}
|
|
4267
4318
|
return e === t;
|
|
4268
4319
|
}
|
|
4269
|
-
function
|
|
4320
|
+
function La(e) {
|
|
4270
4321
|
if (e < 1024) return `${e} B`;
|
|
4271
4322
|
let t = [
|
|
4272
4323
|
"KB",
|
|
@@ -4278,7 +4329,7 @@ function Aa(e) {
|
|
|
4278
4329
|
}
|
|
4279
4330
|
//#endregion
|
|
4280
4331
|
//#region src/components/file-widgets/draft-scope.tsx
|
|
4281
|
-
var
|
|
4332
|
+
var Ra = r({
|
|
4282
4333
|
registerDraft() {},
|
|
4283
4334
|
unregisterDraft() {},
|
|
4284
4335
|
hasDraft() {
|
|
@@ -4287,7 +4338,7 @@ var ja = r({
|
|
|
4287
4338
|
flushAllDrafts: async () => {},
|
|
4288
4339
|
markCommitted() {}
|
|
4289
4340
|
});
|
|
4290
|
-
function
|
|
4341
|
+
function za({ children: e }) {
|
|
4291
4342
|
let t = d(/* @__PURE__ */ new Map()), n = u(() => ({
|
|
4292
4343
|
registerDraft(e) {
|
|
4293
4344
|
t.current.set(e.fileId, e);
|
|
@@ -4306,16 +4357,16 @@ function Ma({ children: e }) {
|
|
|
4306
4357
|
t.current.clear(), await Promise.allSettled(e.map((e) => Promise.resolve(e.discard())));
|
|
4307
4358
|
}
|
|
4308
4359
|
}), []);
|
|
4309
|
-
return /* @__PURE__ */ v(
|
|
4360
|
+
return /* @__PURE__ */ v(Ra.Provider, {
|
|
4310
4361
|
value: n,
|
|
4311
4362
|
children: e
|
|
4312
4363
|
});
|
|
4313
4364
|
}
|
|
4314
|
-
function
|
|
4315
|
-
return s(
|
|
4365
|
+
function Ba() {
|
|
4366
|
+
return s(Ra);
|
|
4316
4367
|
}
|
|
4317
|
-
function
|
|
4318
|
-
let e =
|
|
4368
|
+
function Va() {
|
|
4369
|
+
let e = Ba();
|
|
4319
4370
|
return {
|
|
4320
4371
|
register: o((t, n) => {
|
|
4321
4372
|
e.registerDraft({
|
|
@@ -4334,17 +4385,17 @@ function Pa() {
|
|
|
4334
4385
|
}
|
|
4335
4386
|
//#endregion
|
|
4336
4387
|
//#region src/components/fields/RichTextField.tsx
|
|
4337
|
-
function
|
|
4338
|
-
let { field: n, entityCode: r, fieldName: i, value: a, mode: o, onChange: s, record: c, compact: l, fieldId: p } = t, m = d(null), h = d(null), g = d(/* @__PURE__ */ new Map()), _ = d(/* @__PURE__ */ new Set()), [b, x] = f(0), [S, C] = f(null), { register: w, unregister: E } =
|
|
4339
|
-
let n = new Set(
|
|
4388
|
+
function Ha(t) {
|
|
4389
|
+
let { field: n, entityCode: r, fieldName: i, value: a, mode: o, onChange: s, record: c, compact: l, fieldId: p } = t, m = d(null), h = d(null), g = d(/* @__PURE__ */ new Map()), _ = d(/* @__PURE__ */ new Set()), [b, x] = f(0), [S, C] = f(null), { register: w, unregister: E } = Va(), D = c?.$files?.[i], O = u(() => _a(a, D), [D, a]), k = O.markdown, A = n.files?.accepts, ee = n.files?.max_size_bytes, j = (e, t = O.files) => {
|
|
4390
|
+
let n = new Set(xa(e)), r = [];
|
|
4340
4391
|
for (let e of _.current) n.has(e) || r.push(e);
|
|
4341
4392
|
if (r.length > 0) {
|
|
4342
4393
|
for (let e of r) {
|
|
4343
|
-
_.current.delete(e), E(e),
|
|
4394
|
+
_.current.delete(e), E(e), Pa(e).catch(() => {});
|
|
4344
4395
|
let t = g.current.get(e);
|
|
4345
4396
|
t && (URL.revokeObjectURL(t), g.current.delete(e));
|
|
4346
4397
|
}
|
|
4347
|
-
s?.(
|
|
4398
|
+
s?.(ya({
|
|
4348
4399
|
markdown: e,
|
|
4349
4400
|
files: t
|
|
4350
4401
|
}, r));
|
|
@@ -4356,7 +4407,7 @@ function Fa(t) {
|
|
|
4356
4407
|
});
|
|
4357
4408
|
}, te = (e, t, n) => {
|
|
4358
4409
|
let r = m.current, i = r?.selectionStart ?? e.markdown.length, a = r?.selectionEnd ?? e.markdown.length;
|
|
4359
|
-
j(`${e.markdown.slice(0, i)}${t}${e.markdown.slice(a)}`, n ?
|
|
4410
|
+
j(`${e.markdown.slice(0, i)}${t}${e.markdown.slice(a)}`, n ? va(e, n).files : e.files), requestAnimationFrame(() => {
|
|
4360
4411
|
if (!r) return;
|
|
4361
4412
|
let e = i + t.length;
|
|
4362
4413
|
r.focus(), r.setSelectionRange(e, e);
|
|
@@ -4371,28 +4422,28 @@ function Fa(t) {
|
|
|
4371
4422
|
files: O.files
|
|
4372
4423
|
};
|
|
4373
4424
|
for (let e of t) {
|
|
4374
|
-
let n =
|
|
4425
|
+
let n = Fa(e, A, ee);
|
|
4375
4426
|
if (n) {
|
|
4376
4427
|
C(n.message), x((e) => e - 1);
|
|
4377
4428
|
continue;
|
|
4378
4429
|
}
|
|
4379
4430
|
try {
|
|
4380
|
-
let n = await
|
|
4431
|
+
let n = await Ta({
|
|
4381
4432
|
file: e,
|
|
4382
4433
|
entityCode: r,
|
|
4383
4434
|
fieldCode: i
|
|
4384
4435
|
}), o = e.type.startsWith("image/") ? URL.createObjectURL(e) : void 0;
|
|
4385
4436
|
o && g.current.set(n.id, o);
|
|
4386
|
-
let s =
|
|
4387
|
-
if (w(n.id, () =>
|
|
4388
|
-
let e =
|
|
4389
|
-
te(a, e, s), a =
|
|
4437
|
+
let s = Wa(n, o);
|
|
4438
|
+
if (w(n.id, () => Pa(n.id)), _.current.add(n.id), t.length === 1) {
|
|
4439
|
+
let e = Ua(a.markdown, Ca(s));
|
|
4440
|
+
te(a, e, s), a = va({
|
|
4390
4441
|
markdown: `${a.markdown}${e}`,
|
|
4391
4442
|
files: a.files
|
|
4392
4443
|
}, s);
|
|
4393
4444
|
} else {
|
|
4394
|
-
let e =
|
|
4395
|
-
a =
|
|
4445
|
+
let e = Ua(a.markdown, Ca(s));
|
|
4446
|
+
a = va({
|
|
4396
4447
|
markdown: `${a.markdown}${e}`,
|
|
4397
4448
|
files: a.files
|
|
4398
4449
|
}, s), j(a.markdown, a.files);
|
|
@@ -4534,10 +4585,10 @@ function Fa(t) {
|
|
|
4534
4585
|
]
|
|
4535
4586
|
});
|
|
4536
4587
|
}
|
|
4537
|
-
function
|
|
4588
|
+
function Ua(e, t) {
|
|
4538
4589
|
return e ? e.endsWith("\n\n") ? t : e.endsWith("\n") ? `\n${t}` : `\n\n${t}` : `${t}\n`;
|
|
4539
4590
|
}
|
|
4540
|
-
function
|
|
4591
|
+
function Wa(e, t) {
|
|
4541
4592
|
return {
|
|
4542
4593
|
id: e.id,
|
|
4543
4594
|
filename: e.filename,
|
|
@@ -4552,8 +4603,8 @@ function La(e, t) {
|
|
|
4552
4603
|
}
|
|
4553
4604
|
//#endregion
|
|
4554
4605
|
//#region src/components/fields/cells/factories/text.ts
|
|
4555
|
-
var
|
|
4556
|
-
let { field: t, fieldName: n, locale: r = "en" } = e, i =
|
|
4606
|
+
var Ga = () => (e) => e == null || e === "" ? "—" : F(e), Ka = (e) => {
|
|
4607
|
+
let { field: t, fieldName: n, locale: r = "en" } = e, i = qa(t, n, r);
|
|
4557
4608
|
return (e) => {
|
|
4558
4609
|
if (e == null) return "—";
|
|
4559
4610
|
let t = !!e;
|
|
@@ -4564,7 +4615,7 @@ var Ra = () => (e) => e == null || e === "" ? "—" : F(e), za = (e) => {
|
|
|
4564
4615
|
});
|
|
4565
4616
|
};
|
|
4566
4617
|
};
|
|
4567
|
-
function
|
|
4618
|
+
function qa(e, t, n) {
|
|
4568
4619
|
if (e.display?.bool_labels) return {
|
|
4569
4620
|
trueLabel: I(e.display.bool_labels.true, n) || "Yes",
|
|
4570
4621
|
falseLabel: I(e.display.bool_labels.false, n) || "No"
|
|
@@ -4585,14 +4636,14 @@ function Ba(e, t, n) {
|
|
|
4585
4636
|
};
|
|
4586
4637
|
}
|
|
4587
4638
|
if (t.startsWith("is_")) {
|
|
4588
|
-
let e =
|
|
4639
|
+
let e = Ja(t.slice(3));
|
|
4589
4640
|
return {
|
|
4590
4641
|
trueLabel: e,
|
|
4591
4642
|
falseLabel: `Not ${e}`
|
|
4592
4643
|
};
|
|
4593
4644
|
}
|
|
4594
4645
|
if (t.startsWith("has_")) {
|
|
4595
|
-
let e =
|
|
4646
|
+
let e = Ja(t.slice(4));
|
|
4596
4647
|
return {
|
|
4597
4648
|
trueLabel: e,
|
|
4598
4649
|
falseLabel: `No ${e}`
|
|
@@ -4603,12 +4654,12 @@ function Ba(e, t, n) {
|
|
|
4603
4654
|
falseLabel: "No"
|
|
4604
4655
|
};
|
|
4605
4656
|
}
|
|
4606
|
-
function
|
|
4657
|
+
function Ja(e) {
|
|
4607
4658
|
return e.split("_").map((e) => e && e[0].toUpperCase() + e.slice(1)).join(" ");
|
|
4608
4659
|
}
|
|
4609
4660
|
//#endregion
|
|
4610
4661
|
//#region src/components/fields/cells/factories/badge.tsx
|
|
4611
|
-
var
|
|
4662
|
+
var Ya = /* @__PURE__ */ new Set([
|
|
4612
4663
|
"indigo",
|
|
4613
4664
|
"emerald",
|
|
4614
4665
|
"amber",
|
|
@@ -4618,17 +4669,17 @@ var Ha = /* @__PURE__ */ new Set([
|
|
|
4618
4669
|
"slate",
|
|
4619
4670
|
"teal"
|
|
4620
4671
|
]);
|
|
4621
|
-
function
|
|
4622
|
-
return e &&
|
|
4672
|
+
function Xa(e) {
|
|
4673
|
+
return e && Ya.has(e) ? e : "slate";
|
|
4623
4674
|
}
|
|
4624
|
-
var
|
|
4675
|
+
var Za = (e) => {
|
|
4625
4676
|
let { field: t, locale: n = "en" } = e, r = /* @__PURE__ */ new Map();
|
|
4626
4677
|
if (t.values) for (let e of t.values) r.set(e.code, {
|
|
4627
|
-
tone:
|
|
4678
|
+
tone: Xa(e.color),
|
|
4628
4679
|
label: I(e.name, n) || e.code
|
|
4629
4680
|
});
|
|
4630
4681
|
if (t.display?.value_map) for (let [e, i] of Object.entries(t.display.value_map)) {
|
|
4631
|
-
let t = r.get(e), a = i.color ?
|
|
4682
|
+
let t = r.get(e), a = i.color ? Xa(i.color) : t?.tone ?? "slate", o = (i.label ? I(i.label, n) : "") || t?.label || e;
|
|
4632
4683
|
r.set(e, {
|
|
4633
4684
|
tone: a,
|
|
4634
4685
|
label: o
|
|
@@ -4643,7 +4694,7 @@ var Wa = (e) => {
|
|
|
4643
4694
|
children: n?.label ?? t
|
|
4644
4695
|
});
|
|
4645
4696
|
};
|
|
4646
|
-
},
|
|
4697
|
+
}, Qa = /* @__PURE__ */ new Set([
|
|
4647
4698
|
"indigo",
|
|
4648
4699
|
"emerald",
|
|
4649
4700
|
"amber",
|
|
@@ -4653,13 +4704,13 @@ var Wa = (e) => {
|
|
|
4653
4704
|
"slate",
|
|
4654
4705
|
"teal"
|
|
4655
4706
|
]);
|
|
4656
|
-
function
|
|
4657
|
-
return e &&
|
|
4707
|
+
function $a(e) {
|
|
4708
|
+
return e && Qa.has(e) ? e : "slate";
|
|
4658
4709
|
}
|
|
4659
|
-
var
|
|
4710
|
+
var eo = (e) => {
|
|
4660
4711
|
let { entity: t, locale: n = "en" } = e, r = /* @__PURE__ */ new Map();
|
|
4661
4712
|
if (t?.status_groups) for (let e of Object.values(t.status_groups)) for (let t of e.statuses) r.set(t.code, {
|
|
4662
|
-
tone:
|
|
4713
|
+
tone: $a(t.color),
|
|
4663
4714
|
label: I(t.name, n) || t.code
|
|
4664
4715
|
});
|
|
4665
4716
|
return (e) => {
|
|
@@ -4671,7 +4722,7 @@ var qa = (e) => {
|
|
|
4671
4722
|
children: n?.label ?? t
|
|
4672
4723
|
});
|
|
4673
4724
|
};
|
|
4674
|
-
},
|
|
4725
|
+
}, to = /* @__PURE__ */ new Set([
|
|
4675
4726
|
"indigo",
|
|
4676
4727
|
"emerald",
|
|
4677
4728
|
"amber",
|
|
@@ -4681,14 +4732,14 @@ var qa = (e) => {
|
|
|
4681
4732
|
"slate",
|
|
4682
4733
|
"teal"
|
|
4683
4734
|
]);
|
|
4684
|
-
function
|
|
4685
|
-
return e &&
|
|
4735
|
+
function no(e) {
|
|
4736
|
+
return e && to.has(e) ? e : null;
|
|
4686
4737
|
}
|
|
4687
|
-
var
|
|
4738
|
+
var ro = (e) => {
|
|
4688
4739
|
let { field: t, locale: n = "en" } = e, r = /* @__PURE__ */ new Map();
|
|
4689
4740
|
if (t.display?.value_map) for (let [e, i] of Object.entries(t.display.value_map)) r.set(e, {
|
|
4690
4741
|
label: i.label && I(i.label, n) || e,
|
|
4691
|
-
tone:
|
|
4742
|
+
tone: no(i.color)
|
|
4692
4743
|
});
|
|
4693
4744
|
return (e) => !Array.isArray(e) || e.length === 0 ? "—" : /* @__PURE__ */ v("span", {
|
|
4694
4745
|
style: {
|
|
@@ -4705,23 +4756,23 @@ var Xa = (e) => {
|
|
|
4705
4756
|
}, `${n}-${t}`) : /* @__PURE__ */ v(M, { children: i?.label ?? n }, `${n}-${t}`);
|
|
4706
4757
|
})
|
|
4707
4758
|
});
|
|
4708
|
-
},
|
|
4759
|
+
}, io = () => (e) => {
|
|
4709
4760
|
if (e == null || e === "") return "—";
|
|
4710
|
-
let { text: t, absolute: n } =
|
|
4761
|
+
let { text: t, absolute: n } = ki(typeof e == "string" ? e : F(e));
|
|
4711
4762
|
return /* @__PURE__ */ v("span", {
|
|
4712
4763
|
title: n,
|
|
4713
4764
|
children: t
|
|
4714
4765
|
});
|
|
4715
|
-
},
|
|
4766
|
+
}, ao = () => (e) => e == null || e === "" ? "—" : Oi(typeof e == "string" ? e : F(e)), oo = 60 * 1e3, so = 300 * 1e3, co = () => (e) => {
|
|
4716
4767
|
if (e == null || e === "") return "—";
|
|
4717
4768
|
let t = typeof e == "string" ? e : F(e), n = new Date(t);
|
|
4718
4769
|
if (isNaN(n.getTime())) return t;
|
|
4719
|
-
let r =
|
|
4770
|
+
let r = Oi(t), i = Date.now() - n.getTime();
|
|
4720
4771
|
if (i <= 0) return /* @__PURE__ */ y("span", {
|
|
4721
4772
|
title: r,
|
|
4722
4773
|
children: ["in ", S(n, /* @__PURE__ */ new Date(), { addSuffix: !1 })]
|
|
4723
4774
|
});
|
|
4724
|
-
if (i <=
|
|
4775
|
+
if (i <= oo) return /* @__PURE__ */ v("span", {
|
|
4725
4776
|
title: r,
|
|
4726
4777
|
children: /* @__PURE__ */ v(D, {
|
|
4727
4778
|
tone: "slate",
|
|
@@ -4733,13 +4784,13 @@ var Xa = (e) => {
|
|
|
4733
4784
|
return /* @__PURE__ */ v("span", {
|
|
4734
4785
|
title: r,
|
|
4735
4786
|
children: /* @__PURE__ */ y(D, {
|
|
4736
|
-
tone: i <=
|
|
4787
|
+
tone: i <= so ? "amber" : "rose",
|
|
4737
4788
|
size: "xs",
|
|
4738
4789
|
children: ["overdue ", a]
|
|
4739
4790
|
})
|
|
4740
4791
|
});
|
|
4741
|
-
},
|
|
4742
|
-
let { field: t, locale: n = "en" } = e, r = t.display?.currency || "USD", i = t.display?.currency_field, a =
|
|
4792
|
+
}, lo = (e) => {
|
|
4793
|
+
let { field: t, locale: n = "en" } = e, r = t.display?.currency || "USD", i = t.display?.currency_field, a = uo(t.display?.currency_display), o = fo(typeof t.scale == "number" ? t.scale : 2, 0, 6), s = /* @__PURE__ */ new Map();
|
|
4743
4794
|
return (e, t = {}) => {
|
|
4744
4795
|
if (e == null || e === "") return "—";
|
|
4745
4796
|
let c = typeof e == "number" ? e : Number(e);
|
|
@@ -4754,7 +4805,7 @@ var Xa = (e) => {
|
|
|
4754
4805
|
}), s.set(d, f)), f.format(c);
|
|
4755
4806
|
};
|
|
4756
4807
|
};
|
|
4757
|
-
function
|
|
4808
|
+
function uo(e) {
|
|
4758
4809
|
switch (e) {
|
|
4759
4810
|
case "narrow_symbol": return "narrowSymbol";
|
|
4760
4811
|
case "code":
|
|
@@ -4763,16 +4814,16 @@ function ro(e) {
|
|
|
4763
4814
|
default: return "symbol";
|
|
4764
4815
|
}
|
|
4765
4816
|
}
|
|
4766
|
-
function
|
|
4817
|
+
function fo(e, t, n) {
|
|
4767
4818
|
return e < t ? t : e > n ? n : e;
|
|
4768
4819
|
}
|
|
4769
4820
|
//#endregion
|
|
4770
4821
|
//#region src/components/fields/cells/factories/refLink.tsx
|
|
4771
|
-
var
|
|
4772
|
-
let { field: n, entities: r, screens: i, refs: a, surface: o } = e, s = n.ref?.entity, c = s ? r?.[s] : void 0, l = typeof a == "function" ? a : () => a, u = o === "detail", d = c?.display?.icon, f = n.display?.ref_display_field
|
|
4822
|
+
var po = (e) => {
|
|
4823
|
+
let { field: n, entities: r, screens: i, refs: a, surface: o } = e, s = n.ref?.entity, c = s ? r?.[s] : void 0, l = typeof a == "function" ? a : () => a, u = o === "detail", d = c?.display?.icon, f = n.display?.ref_display_field || "$display", p = c?.detail_screen, m = (p ? i?.[p] : void 0)?.route;
|
|
4773
4824
|
return (e, n) => {
|
|
4774
4825
|
if (e == null || e === "") return "—";
|
|
4775
|
-
let r = F(e), i =
|
|
4826
|
+
let r = F(e), i = mo(r, s, l(), f), a = m ? m.replace(":id", encodeURIComponent(r)) : void 0;
|
|
4776
4827
|
if (u) {
|
|
4777
4828
|
let e = /* @__PURE__ */ y(_, { children: [d && /* @__PURE__ */ v("span", {
|
|
4778
4829
|
style: {
|
|
@@ -4814,29 +4865,29 @@ var ao = (e) => {
|
|
|
4814
4865
|
}) : i;
|
|
4815
4866
|
};
|
|
4816
4867
|
};
|
|
4817
|
-
function
|
|
4868
|
+
function mo(e, t, n, r) {
|
|
4818
4869
|
let i = t && n ? n[t]?.[e] : void 0;
|
|
4819
4870
|
return i ? L(i, r, e) : e;
|
|
4820
4871
|
}
|
|
4821
4872
|
//#endregion
|
|
4822
4873
|
//#region src/components/fields/cells/factories/url-helpers.ts
|
|
4823
|
-
var
|
|
4824
|
-
function
|
|
4825
|
-
return /^[a-z]{2,3}$/i.test(e) ||
|
|
4874
|
+
var ho = /^(https?|ftps?|ssh|mailto|tel):/i, go = /^(info|name|tech|site|cloud|online|store|shop|blog|space|world|link|live|page|zone|life|team|work|host|land|news|wiki|mobi|coop|aero|asia)$/i;
|
|
4875
|
+
function _o(e) {
|
|
4876
|
+
return /^[a-z]{2,3}$/i.test(e) || go.test(e);
|
|
4826
4877
|
}
|
|
4827
|
-
function
|
|
4878
|
+
function vo(e) {
|
|
4828
4879
|
if (!e.includes(".")) return !1;
|
|
4829
4880
|
let t = e.split(".");
|
|
4830
4881
|
if (t.length < 3) return !0;
|
|
4831
4882
|
let n = t[0].toLowerCase();
|
|
4832
|
-
return /^(com|org|net|edu|gov)$/.test(n) ? !1 : /^(io|app|dev)$/.test(n) ?
|
|
4883
|
+
return /^(com|org|net|edu|gov)$/.test(n) ? !1 : /^(io|app|dev)$/.test(n) ? _o(t[t.length - 1]) : !0;
|
|
4833
4884
|
}
|
|
4834
|
-
function
|
|
4835
|
-
if (
|
|
4885
|
+
function yo(e) {
|
|
4886
|
+
if (ho.test(e)) return e;
|
|
4836
4887
|
let t = e.match(/^([a-z][a-z0-9+.-]*):/i);
|
|
4837
4888
|
if (t) {
|
|
4838
4889
|
let n = t[1], r = e.slice(t[0].length);
|
|
4839
|
-
if (/^\d+([/?#]|$)/.test(r) &&
|
|
4890
|
+
if (/^\d+([/?#]|$)/.test(r) && vo(n)) {
|
|
4840
4891
|
let t = parseInt(r, 10);
|
|
4841
4892
|
if (t >= 1 && t <= 65535) return `https://${e}`;
|
|
4842
4893
|
}
|
|
@@ -4844,14 +4895,14 @@ function fo(e) {
|
|
|
4844
4895
|
}
|
|
4845
4896
|
return `https://${e}`;
|
|
4846
4897
|
}
|
|
4847
|
-
function
|
|
4898
|
+
function bo(e) {
|
|
4848
4899
|
try {
|
|
4849
4900
|
return new URL(e).hostname.replace(/^www\./i, "") || null;
|
|
4850
4901
|
} catch {
|
|
4851
4902
|
return null;
|
|
4852
4903
|
}
|
|
4853
4904
|
}
|
|
4854
|
-
function
|
|
4905
|
+
function xo(e, t) {
|
|
4855
4906
|
if (t !== "linkedin.com") return null;
|
|
4856
4907
|
try {
|
|
4857
4908
|
let t = new URL(e).pathname.match(/^\/(in|company|school)\/([^/]+)/i);
|
|
@@ -4859,7 +4910,7 @@ function mo(e, t) {
|
|
|
4859
4910
|
} catch {}
|
|
4860
4911
|
return null;
|
|
4861
4912
|
}
|
|
4862
|
-
function
|
|
4913
|
+
function So(e) {
|
|
4863
4914
|
try {
|
|
4864
4915
|
return new URL(e), !0;
|
|
4865
4916
|
} catch {
|
|
@@ -4868,7 +4919,7 @@ function ho(e) {
|
|
|
4868
4919
|
}
|
|
4869
4920
|
//#endregion
|
|
4870
4921
|
//#region src/components/fields/cells/factories/host-icons.tsx
|
|
4871
|
-
function
|
|
4922
|
+
function Co(e, t = "0 0 24 24") {
|
|
4872
4923
|
return (n) => /* @__PURE__ */ v("svg", {
|
|
4873
4924
|
width: 16,
|
|
4874
4925
|
height: 16,
|
|
@@ -4884,11 +4935,11 @@ function go(e, t = "0 0 24 24") {
|
|
|
4884
4935
|
children: e
|
|
4885
4936
|
});
|
|
4886
4937
|
}
|
|
4887
|
-
var
|
|
4938
|
+
var wo = Co(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
4888
4939
|
cx: "12",
|
|
4889
4940
|
cy: "12",
|
|
4890
4941
|
r: "9"
|
|
4891
|
-
}), /* @__PURE__ */ v("path", { d: "M3 12h18M12 3c3 3 3 15 0 18-3-3-3-15 0-18" })] })),
|
|
4942
|
+
}), /* @__PURE__ */ v("path", { d: "M3 12h18M12 3c3 3 3 15 0 18-3-3-3-15 0-18" })] })), To = (e) => /* @__PURE__ */ v("svg", {
|
|
4892
4943
|
width: 16,
|
|
4893
4944
|
height: 16,
|
|
4894
4945
|
viewBox: "0 0 24 24",
|
|
@@ -4897,7 +4948,7 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4897
4948
|
style: { flexShrink: 0 },
|
|
4898
4949
|
...e,
|
|
4899
4950
|
children: /* @__PURE__ */ v("path", { d: "M20.45 20.45h-3.55v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.13 1.45-2.13 2.94v5.67H9.36V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z" })
|
|
4900
|
-
}),
|
|
4951
|
+
}), Eo = (e) => /* @__PURE__ */ v("svg", {
|
|
4901
4952
|
width: 16,
|
|
4902
4953
|
height: 16,
|
|
4903
4954
|
viewBox: "0 0 24 24",
|
|
@@ -4906,7 +4957,7 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4906
4957
|
style: { flexShrink: 0 },
|
|
4907
4958
|
...e,
|
|
4908
4959
|
children: /* @__PURE__ */ v("path", { d: "M12 .5a11.5 11.5 0 0 0-3.64 22.41c.58.1.79-.25.79-.56 0-.27-.01-1-.02-1.96-3.21.7-3.89-1.55-3.89-1.55-.52-1.34-1.28-1.7-1.28-1.7-1.05-.72.08-.7.08-.7 1.16.08 1.77 1.2 1.77 1.2 1.03 1.77 2.71 1.26 3.37.96.1-.75.4-1.26.73-1.55-2.56-.29-5.26-1.28-5.26-5.71 0-1.26.45-2.3 1.19-3.11-.12-.29-.52-1.46.11-3.05 0 0 .97-.31 3.18 1.19a11.05 11.05 0 0 1 5.79 0c2.21-1.5 3.18-1.19 3.18-1.19.63 1.59.23 2.76.11 3.05.74.81 1.19 1.85 1.19 3.11 0 4.44-2.71 5.42-5.29 5.7.41.36.78 1.07.78 2.16 0 1.56-.01 2.81-.01 3.19 0 .31.21.68.8.56A11.5 11.5 0 0 0 12 .5z" })
|
|
4909
|
-
}),
|
|
4960
|
+
}), Do = (e) => /* @__PURE__ */ v("svg", {
|
|
4910
4961
|
width: 16,
|
|
4911
4962
|
height: 16,
|
|
4912
4963
|
viewBox: "0 0 24 24",
|
|
@@ -4915,7 +4966,7 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4915
4966
|
style: { flexShrink: 0 },
|
|
4916
4967
|
...e,
|
|
4917
4968
|
children: /* @__PURE__ */ v("path", { d: "M18.244 2H21.5l-7.62 8.71L23 22h-7.05l-5.52-7.21L4.07 22H.81l8.18-9.34L1 2h7.22l5 6.59L18.244 2zm-2.47 18h1.95L7.32 4h-2.1l10.55 16z" })
|
|
4918
|
-
}),
|
|
4969
|
+
}), Oo = (e) => /* @__PURE__ */ v("svg", {
|
|
4919
4970
|
width: 16,
|
|
4920
4971
|
height: 16,
|
|
4921
4972
|
viewBox: "0 0 24 24",
|
|
@@ -4924,7 +4975,7 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4924
4975
|
style: { flexShrink: 0 },
|
|
4925
4976
|
...e,
|
|
4926
4977
|
children: /* @__PURE__ */ v("path", { d: "M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2C0 8.1 0 12 0 12s0 3.9.5 5.8a3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1c.5-1.9.5-5.8.5-5.8s0-3.9-.5-5.8zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z" })
|
|
4927
|
-
}),
|
|
4978
|
+
}), ko = (e) => /* @__PURE__ */ v("svg", {
|
|
4928
4979
|
width: 16,
|
|
4929
4980
|
height: 16,
|
|
4930
4981
|
viewBox: "0 0 24 24",
|
|
@@ -4933,7 +4984,7 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4933
4984
|
style: { flexShrink: 0 },
|
|
4934
4985
|
...e,
|
|
4935
4986
|
children: /* @__PURE__ */ v("path", { d: "M24 5.45v13.1A1.45 1.45 0 0 1 22.55 20H19.5V9.27L12 14.7 4.5 9.27V20H1.45A1.45 1.45 0 0 1 0 18.55V5.45A1.45 1.45 0 0 1 1.45 4h.5l10.05 7.27L22.05 4h.5A1.45 1.45 0 0 1 24 5.45z" })
|
|
4936
|
-
}),
|
|
4987
|
+
}), Ao = (e) => /* @__PURE__ */ y("svg", {
|
|
4937
4988
|
width: 16,
|
|
4938
4989
|
height: 16,
|
|
4939
4990
|
viewBox: "0 0 24 24",
|
|
@@ -4958,7 +5009,7 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4958
5009
|
d: "M15.17 18.96a2.52 2.52 0 1 1-2.52 2.52v-2.52h2.52zm0-1.27a2.52 2.52 0 1 1 0-5.04h6.31a2.52 2.52 0 1 1 0 5.04h-6.31z"
|
|
4959
5010
|
})
|
|
4960
5011
|
]
|
|
4961
|
-
}),
|
|
5012
|
+
}), jo = (e) => /* @__PURE__ */ v("svg", {
|
|
4962
5013
|
width: 16,
|
|
4963
5014
|
height: 16,
|
|
4964
5015
|
viewBox: "0 0 24 24",
|
|
@@ -4967,39 +5018,39 @@ var _o = go(/* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("circle", {
|
|
|
4967
5018
|
style: { flexShrink: 0 },
|
|
4968
5019
|
...e,
|
|
4969
5020
|
children: /* @__PURE__ */ v("path", { d: "M4.46 3.83 14.94 3a3.7 3.7 0 0 1 2.5.62l3 2.16a1.4 1.4 0 0 1 .56 1.31v13.06a1.7 1.7 0 0 1-1.66 1.7l-12.5.78a2.4 2.4 0 0 1-1.85-.62L2.5 19.7a1.7 1.7 0 0 1-.5-1.2V5.16c0-.74.6-1.27 1.46-1.33l1-.01zm.46 1.86c-.31 0-.46.16-.46.47v12.25c0 .31.16.47.46.47l11.62-.7c.31 0 .46-.16.46-.47V6c0-.32-.16-.47-.46-.47L4.92 5.7zm5.57 2.32c.16 0 .31.16.31.31v.46l3.7.23c.31 0 .46.16.46.47v8.32c0 .31-.16.47-.46.47l-3.7.23c-.31 0-.46-.16-.46-.47V8.78c0-.16.15-.32.15-.46l-.04-.31z" })
|
|
4970
|
-
}),
|
|
4971
|
-
"linkedin.com":
|
|
4972
|
-
"github.com":
|
|
4973
|
-
"x.com":
|
|
4974
|
-
"twitter.com":
|
|
4975
|
-
"youtube.com":
|
|
4976
|
-
"youtu.be":
|
|
4977
|
-
"gmail.com":
|
|
4978
|
-
"mail.google.com":
|
|
4979
|
-
"slack.com":
|
|
4980
|
-
"notion.so":
|
|
4981
|
-
"notion.com":
|
|
5021
|
+
}), Mo = {
|
|
5022
|
+
"linkedin.com": To,
|
|
5023
|
+
"github.com": Eo,
|
|
5024
|
+
"x.com": Do,
|
|
5025
|
+
"twitter.com": Do,
|
|
5026
|
+
"youtube.com": Oo,
|
|
5027
|
+
"youtu.be": Oo,
|
|
5028
|
+
"gmail.com": ko,
|
|
5029
|
+
"mail.google.com": ko,
|
|
5030
|
+
"slack.com": Ao,
|
|
5031
|
+
"notion.so": jo,
|
|
5032
|
+
"notion.com": jo
|
|
4982
5033
|
};
|
|
4983
|
-
function
|
|
5034
|
+
function No(e, t) {
|
|
4984
5035
|
return !e || t === "none" ? null : t === "google" ? `https://www.google.com/s2/favicons?domain=${encodeURIComponent(e)}&sz=32` : `https://${e}/favicon.ico`;
|
|
4985
5036
|
}
|
|
4986
|
-
var
|
|
5037
|
+
var Po = {
|
|
4987
5038
|
width: 16,
|
|
4988
5039
|
height: 16,
|
|
4989
5040
|
flexShrink: 0,
|
|
4990
5041
|
objectFit: "contain"
|
|
4991
5042
|
};
|
|
4992
|
-
function
|
|
4993
|
-
let t =
|
|
5043
|
+
function Fo({ domain: e }) {
|
|
5044
|
+
let t = wr((e) => e.faviconSource), n = e ? e.toLowerCase() : "", r = n ? Mo[n] : void 0;
|
|
4994
5045
|
if (r) return /* @__PURE__ */ v(r, {});
|
|
4995
|
-
let i =
|
|
4996
|
-
return i ? /* @__PURE__ */ v(
|
|
5046
|
+
let i = No(n, t);
|
|
5047
|
+
return i ? /* @__PURE__ */ v(Io, { src: i }) : /* @__PURE__ */ v(wo, {});
|
|
4997
5048
|
}
|
|
4998
|
-
function
|
|
5049
|
+
function Io({ src: e }) {
|
|
4999
5050
|
let [t, n] = f(!1);
|
|
5000
5051
|
return c(() => {
|
|
5001
5052
|
n(!1);
|
|
5002
|
-
}, [e]), t ? /* @__PURE__ */ v(
|
|
5053
|
+
}, [e]), t ? /* @__PURE__ */ v(wo, {}) : /* @__PURE__ */ v("img", {
|
|
5003
5054
|
src: e,
|
|
5004
5055
|
alt: "",
|
|
5005
5056
|
width: 16,
|
|
@@ -5007,7 +5058,7 @@ function ko({ src: e }) {
|
|
|
5007
5058
|
loading: "lazy",
|
|
5008
5059
|
decoding: "async",
|
|
5009
5060
|
referrerPolicy: "no-referrer",
|
|
5010
|
-
style:
|
|
5061
|
+
style: Po,
|
|
5011
5062
|
onError: () => n(!0)
|
|
5012
5063
|
});
|
|
5013
5064
|
}
|
|
@@ -5017,72 +5068,72 @@ var $ = /* @__PURE__ */ v("span", {
|
|
|
5017
5068
|
color: "var(--text-4)"
|
|
5018
5069
|
},
|
|
5019
5070
|
children: "—"
|
|
5020
|
-
}),
|
|
5071
|
+
}), Lo = {
|
|
5021
5072
|
display: "inline-flex",
|
|
5022
5073
|
alignItems: "center",
|
|
5023
5074
|
gap: 4,
|
|
5024
5075
|
fontSize: 12.5,
|
|
5025
5076
|
color: "var(--accent)",
|
|
5026
5077
|
textDecoration: "none"
|
|
5027
|
-
},
|
|
5078
|
+
}, Ro = { fontSize: 12.5 }, zo = () => (t) => {
|
|
5028
5079
|
let n = t == null ? "" : F(t);
|
|
5029
5080
|
if (!n) return $;
|
|
5030
|
-
let r =
|
|
5031
|
-
if (r == null || !
|
|
5032
|
-
style:
|
|
5081
|
+
let r = yo(n);
|
|
5082
|
+
if (r == null || !So(r)) return /* @__PURE__ */ v("span", {
|
|
5083
|
+
style: Ro,
|
|
5033
5084
|
children: n
|
|
5034
5085
|
});
|
|
5035
|
-
let i =
|
|
5086
|
+
let i = bo(r), a = xo(r, i ?? "") ?? i ?? n;
|
|
5036
5087
|
return /* @__PURE__ */ y("a", {
|
|
5037
5088
|
href: r,
|
|
5038
5089
|
target: "_blank",
|
|
5039
5090
|
rel: "noopener noreferrer",
|
|
5040
5091
|
title: n,
|
|
5041
5092
|
className: "mono",
|
|
5042
|
-
style:
|
|
5093
|
+
style: Lo,
|
|
5043
5094
|
children: [
|
|
5044
|
-
/* @__PURE__ */ v(
|
|
5095
|
+
/* @__PURE__ */ v(Fo, { domain: i }),
|
|
5045
5096
|
a,
|
|
5046
5097
|
/* @__PURE__ */ v(e.external, { size: 11 })
|
|
5047
5098
|
]
|
|
5048
5099
|
});
|
|
5049
|
-
},
|
|
5100
|
+
}, Bo = {
|
|
5050
5101
|
fontSize: 12.5,
|
|
5051
5102
|
color: "var(--accent)",
|
|
5052
5103
|
textDecoration: "none"
|
|
5053
|
-
},
|
|
5104
|
+
}, Vo = () => (e) => {
|
|
5054
5105
|
let t = e == null ? "" : F(e);
|
|
5055
5106
|
return t ? /* @__PURE__ */ v("a", {
|
|
5056
5107
|
href: `mailto:${t}`,
|
|
5057
5108
|
className: "mono",
|
|
5058
|
-
style:
|
|
5109
|
+
style: Bo,
|
|
5059
5110
|
children: t
|
|
5060
5111
|
}) : $;
|
|
5061
|
-
},
|
|
5112
|
+
}, Ho = {
|
|
5062
5113
|
fontSize: 12.5,
|
|
5063
5114
|
color: "var(--accent)",
|
|
5064
5115
|
textDecoration: "none"
|
|
5065
|
-
},
|
|
5116
|
+
}, Uo = { fontSize: 12.5 }, Wo = /^[+()\-.\s\d]+$/, Go = () => (e) => {
|
|
5066
5117
|
let t = e == null ? "" : F(e);
|
|
5067
5118
|
if (!t) return $;
|
|
5068
5119
|
let n = t.trim();
|
|
5069
|
-
return
|
|
5120
|
+
return Wo.test(n) ? /* @__PURE__ */ v("a", {
|
|
5070
5121
|
href: `tel:${n.replace(/\s+/g, "")}`,
|
|
5071
5122
|
className: "mono",
|
|
5072
|
-
style:
|
|
5123
|
+
style: Ho,
|
|
5073
5124
|
children: t
|
|
5074
5125
|
}) : /* @__PURE__ */ v("span", {
|
|
5075
|
-
style:
|
|
5126
|
+
style: Uo,
|
|
5076
5127
|
children: t
|
|
5077
5128
|
});
|
|
5078
|
-
},
|
|
5129
|
+
}, Ko = {
|
|
5079
5130
|
fontSize: 12.5,
|
|
5080
5131
|
fontVariantNumeric: "tabular-nums"
|
|
5081
|
-
},
|
|
5132
|
+
}, qo = {
|
|
5082
5133
|
color: "var(--text-3)",
|
|
5083
5134
|
marginLeft: 4
|
|
5084
|
-
},
|
|
5085
|
-
function
|
|
5135
|
+
}, Jo = { fontSize: 12.5 };
|
|
5136
|
+
function Yo(e, t) {
|
|
5086
5137
|
let n = e.trim();
|
|
5087
5138
|
if (n === "" || n === "-") return n;
|
|
5088
5139
|
let r = n.startsWith("-"), [i, a] = (r ? n.slice(1) : n).split("."), o;
|
|
@@ -5094,45 +5145,45 @@ function Ho(e, t) {
|
|
|
5094
5145
|
let s = r ? `-${o}` : o;
|
|
5095
5146
|
return a !== void 0 && (s += `.${a}`), s;
|
|
5096
5147
|
}
|
|
5097
|
-
var
|
|
5148
|
+
var Xo = (e) => {
|
|
5098
5149
|
let { field: t, fieldName: n, locale: r = "en" } = e, i = new Intl.NumberFormat(r), a = t.type === "decimal", o = t.unit ? t.unit.display || t.unit.storage : void 0;
|
|
5099
5150
|
return (e, t) => {
|
|
5100
5151
|
if (e == null) return $;
|
|
5101
5152
|
let r = t.$units?.[n] || (o && !o.startsWith("$") ? o : void 0), s;
|
|
5102
|
-
if (a && typeof e == "string") s =
|
|
5153
|
+
if (a && typeof e == "string") s = Yo(e, i);
|
|
5103
5154
|
else {
|
|
5104
5155
|
let t = typeof e == "number" ? e : Number(e);
|
|
5105
5156
|
s = Number.isFinite(t) ? i.format(t) : null;
|
|
5106
5157
|
}
|
|
5107
5158
|
return s == null ? /* @__PURE__ */ v("span", {
|
|
5108
|
-
style:
|
|
5159
|
+
style: Jo,
|
|
5109
5160
|
children: "—"
|
|
5110
5161
|
}) : /* @__PURE__ */ y("span", {
|
|
5111
5162
|
className: "num",
|
|
5112
|
-
style:
|
|
5163
|
+
style: Ko,
|
|
5113
5164
|
children: [s, r && /* @__PURE__ */ v("span", {
|
|
5114
|
-
style:
|
|
5165
|
+
style: qo,
|
|
5115
5166
|
children: r
|
|
5116
5167
|
})]
|
|
5117
5168
|
});
|
|
5118
5169
|
};
|
|
5119
|
-
},
|
|
5170
|
+
}, Zo = { fontSize: 12.5 }, Qo = () => (e) => e == null || e === "" ? $ : /* @__PURE__ */ v("code", {
|
|
5120
5171
|
className: "mono",
|
|
5121
|
-
style:
|
|
5172
|
+
style: Zo,
|
|
5122
5173
|
children: F(e)
|
|
5123
|
-
}),
|
|
5174
|
+
}), $o = {
|
|
5124
5175
|
display: "inline-flex",
|
|
5125
5176
|
alignItems: "center",
|
|
5126
5177
|
gap: 4,
|
|
5127
5178
|
fontSize: 12.5,
|
|
5128
5179
|
color: "var(--accent)",
|
|
5129
5180
|
textDecoration: "none"
|
|
5130
|
-
},
|
|
5181
|
+
}, es = { fontSize: 12.5 }, ts = () => (t) => {
|
|
5131
5182
|
let n = t == null ? "" : F(t);
|
|
5132
5183
|
if (!n) return $;
|
|
5133
|
-
let r =
|
|
5134
|
-
return r == null || !
|
|
5135
|
-
style:
|
|
5184
|
+
let r = yo(n);
|
|
5185
|
+
return r == null || !So(r) ? /* @__PURE__ */ v("span", {
|
|
5186
|
+
style: es,
|
|
5136
5187
|
children: n
|
|
5137
5188
|
}) : /* @__PURE__ */ y("a", {
|
|
5138
5189
|
href: r,
|
|
@@ -5140,21 +5191,21 @@ var Uo = (e) => {
|
|
|
5140
5191
|
rel: "noopener noreferrer",
|
|
5141
5192
|
title: n,
|
|
5142
5193
|
className: "mono",
|
|
5143
|
-
style:
|
|
5194
|
+
style: $o,
|
|
5144
5195
|
children: [n, /* @__PURE__ */ v(e.external, { size: 11 })]
|
|
5145
5196
|
});
|
|
5146
|
-
},
|
|
5147
|
-
function
|
|
5148
|
-
return Math.max(1, Math.min(typeof e == "number" && Number.isFinite(e) ? Math.floor(e) :
|
|
5197
|
+
}, ns = 400, rs = 2e3;
|
|
5198
|
+
function is(e) {
|
|
5199
|
+
return Math.max(1, Math.min(typeof e == "number" && Number.isFinite(e) ? Math.floor(e) : ns, rs));
|
|
5149
5200
|
}
|
|
5150
|
-
function
|
|
5201
|
+
function as(e, t) {
|
|
5151
5202
|
return e.length <= t ? e : `${e.slice(0, t)}...`;
|
|
5152
5203
|
}
|
|
5153
|
-
function
|
|
5204
|
+
function os(e, t, n, r = 0) {
|
|
5154
5205
|
if (e == null || e === "") return "";
|
|
5155
|
-
if (typeof e == "string") return
|
|
5206
|
+
if (typeof e == "string") return as(e, t);
|
|
5156
5207
|
if (typeof e == "number" || typeof e == "boolean") return String(e);
|
|
5157
|
-
if (typeof e != "object") return
|
|
5208
|
+
if (typeof e != "object") return as(F(e), t);
|
|
5158
5209
|
if (n.has(e)) return "[Circular]";
|
|
5159
5210
|
if (r >= 3) return Array.isArray(e) ? "[...]" : "{...}";
|
|
5160
5211
|
n.add(e);
|
|
@@ -5165,30 +5216,30 @@ function $o(e, t, n, r = 0) {
|
|
|
5165
5216
|
a.push(a.length > 1 ? ",..." : "...");
|
|
5166
5217
|
break;
|
|
5167
5218
|
}
|
|
5168
|
-
let f =
|
|
5219
|
+
let f = os(c, d, n, r + 1);
|
|
5169
5220
|
if (a.push(u, f), a.join("").length >= t) {
|
|
5170
5221
|
a.push(",...");
|
|
5171
5222
|
break;
|
|
5172
5223
|
}
|
|
5173
5224
|
}
|
|
5174
|
-
return a.push(i), n.delete(e),
|
|
5225
|
+
return a.push(i), n.delete(e), as(a.join(""), t);
|
|
5175
5226
|
}
|
|
5176
|
-
function
|
|
5177
|
-
return
|
|
5227
|
+
function ss(e, t) {
|
|
5228
|
+
return os(e, t, /* @__PURE__ */ new WeakSet());
|
|
5178
5229
|
}
|
|
5179
|
-
var
|
|
5180
|
-
let t = e.surface ?? "detail", n =
|
|
5230
|
+
var cs = (e) => {
|
|
5231
|
+
let t = e.surface ?? "detail", n = is(e.field.display?.list_preview?.max_chars);
|
|
5181
5232
|
return (r) => {
|
|
5182
|
-
if (
|
|
5233
|
+
if (Qi(r)) return $;
|
|
5183
5234
|
if (t === "list") {
|
|
5184
|
-
let e =
|
|
5235
|
+
let e = ss(r, n);
|
|
5185
5236
|
return /* @__PURE__ */ v("span", {
|
|
5186
5237
|
className: "font-mono text-xs text-muted-foreground",
|
|
5187
5238
|
title: e,
|
|
5188
5239
|
children: e
|
|
5189
5240
|
});
|
|
5190
5241
|
}
|
|
5191
|
-
return /* @__PURE__ */ v(
|
|
5242
|
+
return /* @__PURE__ */ v($i, {
|
|
5192
5243
|
field: e.field,
|
|
5193
5244
|
fieldName: e.fieldName,
|
|
5194
5245
|
value: r,
|
|
@@ -5196,7 +5247,7 @@ var ts = (e) => {
|
|
|
5196
5247
|
locale: e.locale
|
|
5197
5248
|
});
|
|
5198
5249
|
};
|
|
5199
|
-
},
|
|
5250
|
+
}, ls = [
|
|
5200
5251
|
{
|
|
5201
5252
|
pattern: /```[^\n]*\n?([\s\S]*?)```/g,
|
|
5202
5253
|
replacement: "$1"
|
|
@@ -5259,13 +5310,13 @@ var ts = (e) => {
|
|
|
5259
5310
|
replacement: ""
|
|
5260
5311
|
}
|
|
5261
5312
|
];
|
|
5262
|
-
function
|
|
5313
|
+
function us(e) {
|
|
5263
5314
|
if (!e) return {
|
|
5264
5315
|
text: "",
|
|
5265
5316
|
isPlain: !0
|
|
5266
5317
|
};
|
|
5267
5318
|
let t = e, n = !1;
|
|
5268
|
-
for (let e of
|
|
5319
|
+
for (let e of ls) {
|
|
5269
5320
|
let r = t.replace(e.pattern, e.replacement);
|
|
5270
5321
|
r !== t && e.structural !== !1 && (n = !0), t = r;
|
|
5271
5322
|
}
|
|
@@ -5276,123 +5327,123 @@ function rs(e) {
|
|
|
5276
5327
|
}
|
|
5277
5328
|
//#endregion
|
|
5278
5329
|
//#region src/components/fields/cells/factories/markdown.tsx
|
|
5279
|
-
function
|
|
5330
|
+
function ds(e) {
|
|
5280
5331
|
return /* @__PURE__ */ v(li, { content: e });
|
|
5281
5332
|
}
|
|
5282
|
-
var
|
|
5333
|
+
var fs = (e) => {
|
|
5283
5334
|
let t = e.surface === "list";
|
|
5284
5335
|
return (e) => {
|
|
5285
5336
|
let n = e == null ? "" : F(e);
|
|
5286
5337
|
if (!n) return $;
|
|
5287
|
-
if (!t) return
|
|
5288
|
-
let { text: r, isPlain: i } =
|
|
5338
|
+
if (!t) return ds(n);
|
|
5339
|
+
let { text: r, isPlain: i } = us(n);
|
|
5289
5340
|
return i ? /* @__PURE__ */ v("span", {
|
|
5290
5341
|
title: r,
|
|
5291
5342
|
children: r
|
|
5292
5343
|
}) : /* @__PURE__ */ v(oe, {
|
|
5293
|
-
content:
|
|
5344
|
+
content: ds(n),
|
|
5294
5345
|
children: /* @__PURE__ */ v("span", {
|
|
5295
5346
|
title: r,
|
|
5296
5347
|
children: r
|
|
5297
5348
|
})
|
|
5298
5349
|
});
|
|
5299
5350
|
};
|
|
5300
|
-
},
|
|
5351
|
+
}, ps = "[SET]", ms = {
|
|
5301
5352
|
fontSize: 12.5,
|
|
5302
5353
|
color: "var(--text-3)"
|
|
5303
|
-
},
|
|
5354
|
+
}, hs = {
|
|
5304
5355
|
fontSize: 12.5,
|
|
5305
5356
|
color: "var(--text-4)",
|
|
5306
5357
|
fontStyle: "italic"
|
|
5307
|
-
},
|
|
5358
|
+
}, gs = () => (e) => e === ps || typeof e == "string" && e !== "" ? /* @__PURE__ */ v("span", {
|
|
5308
5359
|
className: "mono",
|
|
5309
|
-
style:
|
|
5310
|
-
children:
|
|
5360
|
+
style: ms,
|
|
5361
|
+
children: ps
|
|
5311
5362
|
}) : /* @__PURE__ */ v("span", {
|
|
5312
|
-
style:
|
|
5363
|
+
style: hs,
|
|
5313
5364
|
children: "Not set"
|
|
5314
5365
|
});
|
|
5315
5366
|
//#endregion
|
|
5316
5367
|
//#region src/components/fields/cells/factories/richTextPreview.tsx
|
|
5317
|
-
function
|
|
5368
|
+
function _s(e, t) {
|
|
5318
5369
|
return /* @__PURE__ */ v(li, {
|
|
5319
5370
|
content: e,
|
|
5320
5371
|
files: t
|
|
5321
5372
|
});
|
|
5322
5373
|
}
|
|
5323
|
-
var
|
|
5374
|
+
var vs = (e) => {
|
|
5324
5375
|
let { fieldName: t } = e, n = e.surface === "list";
|
|
5325
5376
|
return (e, r) => {
|
|
5326
|
-
let i = r?.$files?.[t], a =
|
|
5377
|
+
let i = r?.$files?.[t], a = _a(e, i);
|
|
5327
5378
|
if (!a.markdown) return $;
|
|
5328
|
-
if (!n) return
|
|
5329
|
-
let { text: o, isPlain: s } =
|
|
5379
|
+
if (!n) return _s(a.markdown, a.files);
|
|
5380
|
+
let { text: o, isPlain: s } = us(a.markdown);
|
|
5330
5381
|
return s ? /* @__PURE__ */ v("span", {
|
|
5331
5382
|
title: o,
|
|
5332
5383
|
children: o
|
|
5333
5384
|
}) : /* @__PURE__ */ v(oe, {
|
|
5334
|
-
content:
|
|
5385
|
+
content: _s(a.markdown, a.files),
|
|
5335
5386
|
children: /* @__PURE__ */ v("span", {
|
|
5336
5387
|
title: o,
|
|
5337
5388
|
children: o
|
|
5338
5389
|
})
|
|
5339
5390
|
});
|
|
5340
5391
|
};
|
|
5341
|
-
},
|
|
5392
|
+
}, ys = { fontSize: 12.5 }, bs = {
|
|
5342
5393
|
fontSize: 12.5,
|
|
5343
5394
|
whiteSpace: "pre-wrap",
|
|
5344
5395
|
margin: 0
|
|
5345
5396
|
};
|
|
5346
|
-
function
|
|
5397
|
+
function xs(e) {
|
|
5347
5398
|
return e == null ? {} : typeof e == "object" && !Array.isArray(e) ? e : typeof e == "string" ? { en: e } : {};
|
|
5348
5399
|
}
|
|
5349
|
-
function
|
|
5400
|
+
function Ss(e, t) {
|
|
5350
5401
|
if (t && typeof e[t] == "string" && e[t] !== "") return [t, e[t]];
|
|
5351
5402
|
for (let [t, n] of Object.entries(e)) if (typeof n == "string" && n !== "") return [t, n];
|
|
5352
5403
|
return null;
|
|
5353
5404
|
}
|
|
5354
5405
|
//#endregion
|
|
5355
5406
|
//#region src/components/fields/cells/registry.ts
|
|
5356
|
-
var
|
|
5357
|
-
text:
|
|
5358
|
-
bool_pill:
|
|
5359
|
-
badge:
|
|
5360
|
-
status_pill:
|
|
5361
|
-
tag_list:
|
|
5362
|
-
time_ago:
|
|
5363
|
-
timestamp_full:
|
|
5364
|
-
next_run:
|
|
5365
|
-
money:
|
|
5366
|
-
ref_link:
|
|
5367
|
-
url:
|
|
5368
|
-
email:
|
|
5369
|
-
phone:
|
|
5370
|
-
number:
|
|
5371
|
-
code:
|
|
5372
|
-
link:
|
|
5373
|
-
json:
|
|
5374
|
-
markdown:
|
|
5375
|
-
password_mask:
|
|
5376
|
-
rich_text_preview:
|
|
5407
|
+
var Cs = {
|
|
5408
|
+
text: Ga,
|
|
5409
|
+
bool_pill: Ka,
|
|
5410
|
+
badge: Za,
|
|
5411
|
+
status_pill: eo,
|
|
5412
|
+
tag_list: ro,
|
|
5413
|
+
time_ago: io,
|
|
5414
|
+
timestamp_full: ao,
|
|
5415
|
+
next_run: co,
|
|
5416
|
+
money: lo,
|
|
5417
|
+
ref_link: po,
|
|
5418
|
+
url: zo,
|
|
5419
|
+
email: Vo,
|
|
5420
|
+
phone: Go,
|
|
5421
|
+
number: Xo,
|
|
5422
|
+
code: Qo,
|
|
5423
|
+
link: ts,
|
|
5424
|
+
json: cs,
|
|
5425
|
+
markdown: fs,
|
|
5426
|
+
password_mask: gs,
|
|
5427
|
+
rich_text_preview: vs,
|
|
5377
5428
|
multilang_inline: (e) => {
|
|
5378
5429
|
let { field: t, locale: n } = e, r = t.type === "multilang_text";
|
|
5379
5430
|
return (e) => {
|
|
5380
|
-
let t =
|
|
5431
|
+
let t = Ss(xs(e), n);
|
|
5381
5432
|
if (!t) return r ? /* @__PURE__ */ v("p", {
|
|
5382
|
-
style:
|
|
5433
|
+
style: bs,
|
|
5383
5434
|
children: "—"
|
|
5384
5435
|
}) : /* @__PURE__ */ v("span", {
|
|
5385
|
-
style:
|
|
5436
|
+
style: ys,
|
|
5386
5437
|
children: "—"
|
|
5387
5438
|
});
|
|
5388
5439
|
let [i, a] = t;
|
|
5389
5440
|
return r ? /* @__PURE__ */ v("p", {
|
|
5390
|
-
style:
|
|
5441
|
+
style: bs,
|
|
5391
5442
|
lang: i,
|
|
5392
5443
|
dir: "auto",
|
|
5393
5444
|
children: a
|
|
5394
5445
|
}) : /* @__PURE__ */ v("span", {
|
|
5395
|
-
style:
|
|
5446
|
+
style: ys,
|
|
5396
5447
|
lang: i,
|
|
5397
5448
|
dir: "auto",
|
|
5398
5449
|
children: a
|
|
@@ -5400,53 +5451,53 @@ var gs = {
|
|
|
5400
5451
|
};
|
|
5401
5452
|
}
|
|
5402
5453
|
};
|
|
5403
|
-
Object.keys(
|
|
5404
|
-
function
|
|
5405
|
-
let t = e.field.display?.widget ?? "text", n =
|
|
5454
|
+
Object.keys(Cs).sort();
|
|
5455
|
+
function ws(e) {
|
|
5456
|
+
let t = e.field.display?.widget ?? "text", n = Cs[t];
|
|
5406
5457
|
if (!n) throw Error(`resolveCellRenderer: no factory registered for widget "${t}" (field "${e.fieldName}"). The engine must stamp a smart default at YAML-load time; an unknown widget here indicates an out-of-sync allow-list.`);
|
|
5407
5458
|
return n(e);
|
|
5408
5459
|
}
|
|
5409
5460
|
//#endregion
|
|
5410
5461
|
//#region src/components/fields/index.tsx
|
|
5411
|
-
var
|
|
5412
|
-
string:
|
|
5413
|
-
text:
|
|
5414
|
-
rich_text:
|
|
5415
|
-
int:
|
|
5416
|
-
float:
|
|
5417
|
-
decimal:
|
|
5418
|
-
bool:
|
|
5419
|
-
timestamp:
|
|
5420
|
-
date:
|
|
5421
|
-
time:
|
|
5422
|
-
enum:
|
|
5423
|
-
email:
|
|
5424
|
-
url:
|
|
5425
|
-
phone:
|
|
5426
|
-
uuid:
|
|
5427
|
-
bytes:
|
|
5428
|
-
ref:
|
|
5429
|
-
json:
|
|
5430
|
-
tags:
|
|
5431
|
-
string_array:
|
|
5432
|
-
int_array:
|
|
5433
|
-
uuid_array:
|
|
5434
|
-
multilang:
|
|
5435
|
-
multilang_text:
|
|
5436
|
-
structure:
|
|
5437
|
-
secret:
|
|
5438
|
-
password:
|
|
5462
|
+
var Ts = {
|
|
5463
|
+
string: yi,
|
|
5464
|
+
text: bi,
|
|
5465
|
+
rich_text: Ha,
|
|
5466
|
+
int: Vi,
|
|
5467
|
+
float: Vi,
|
|
5468
|
+
decimal: Vi,
|
|
5469
|
+
bool: Ri,
|
|
5470
|
+
timestamp: Li,
|
|
5471
|
+
date: Li,
|
|
5472
|
+
time: Li,
|
|
5473
|
+
enum: Si,
|
|
5474
|
+
email: Ci,
|
|
5475
|
+
url: wi,
|
|
5476
|
+
phone: Ti,
|
|
5477
|
+
uuid: yi,
|
|
5478
|
+
bytes: yi,
|
|
5479
|
+
ref: Yi,
|
|
5480
|
+
json: $i,
|
|
5481
|
+
tags: yi,
|
|
5482
|
+
string_array: fa,
|
|
5483
|
+
int_array: ma,
|
|
5484
|
+
uuid_array: fa,
|
|
5485
|
+
multilang: ta,
|
|
5486
|
+
multilang_text: ra,
|
|
5487
|
+
structure: ia,
|
|
5488
|
+
secret: ca,
|
|
5489
|
+
password: ua
|
|
5439
5490
|
};
|
|
5440
|
-
for (let e of
|
|
5441
|
-
function
|
|
5442
|
-
if (e.field.type === "json" && e.field.structure) return /* @__PURE__ */ v(
|
|
5491
|
+
for (let e of _i) if (!Ts[e]) throw Error(`editRegistry: missing entry for FieldType "${e}". The TS union (types/fieldType.ts) and editRegistry must stay in sync with golang/internal/engine/types.go.`);
|
|
5492
|
+
function Es(e) {
|
|
5493
|
+
if (e.field.type === "json" && e.field.structure) return /* @__PURE__ */ v(ia, { ...e });
|
|
5443
5494
|
if (e.mode === "edit") {
|
|
5444
|
-
let t =
|
|
5495
|
+
let t = Ts[e.field.type];
|
|
5445
5496
|
if (!t) throw Error(`renderField: no edit-mode renderer for FieldType "${e.field.type}" (field "${e.fieldName}"). editRegistry must be total over FieldType; check types/fieldType.ts and components/fields/index.tsx.`);
|
|
5446
5497
|
return /* @__PURE__ */ v(t, { ...e });
|
|
5447
5498
|
}
|
|
5448
5499
|
if (!e.field.display?.widget) throw Error(`renderField: display mode requires a non-empty field.display.widget (field "${e.fieldName}", type "${e.field.type}"). The engine must stamp a smart default; an empty widget here means the field bypassed ResolveDefaultWidgets.`);
|
|
5449
|
-
return
|
|
5500
|
+
return ws({
|
|
5450
5501
|
field: e.field,
|
|
5451
5502
|
fieldName: e.fieldName,
|
|
5452
5503
|
surface: e.surface ?? "detail",
|
|
@@ -5459,98 +5510,98 @@ function ys(e) {
|
|
|
5459
5510
|
}
|
|
5460
5511
|
//#endregion
|
|
5461
5512
|
//#region src/hooks/useUserLocale.ts
|
|
5462
|
-
var
|
|
5463
|
-
function
|
|
5513
|
+
var Ds = "en";
|
|
5514
|
+
function Os() {
|
|
5464
5515
|
if (typeof navigator > "u") return;
|
|
5465
5516
|
let e = navigator.language;
|
|
5466
5517
|
if (e) return e.split("-")[0] || void 0;
|
|
5467
5518
|
}
|
|
5468
|
-
function
|
|
5519
|
+
function ks() {
|
|
5469
5520
|
let e = zn((e) => e.user), { data: t } = J(), n = e?.language;
|
|
5470
5521
|
if (n && n.trim()) return n;
|
|
5471
5522
|
let r = t?.languages?.[0]?.code;
|
|
5472
|
-
return r && r.trim() ? r :
|
|
5523
|
+
return r && r.trim() ? r : Os() || Ds;
|
|
5473
5524
|
}
|
|
5474
5525
|
//#endregion
|
|
5475
5526
|
//#region src/lib/field-regions.ts
|
|
5476
|
-
var
|
|
5477
|
-
function
|
|
5478
|
-
return
|
|
5479
|
-
|
|
5527
|
+
var As = /* @__PURE__ */ new Map();
|
|
5528
|
+
function js(e, t) {
|
|
5529
|
+
return As.set(e, t), () => {
|
|
5530
|
+
As.get(e) === t && As.delete(e);
|
|
5480
5531
|
};
|
|
5481
5532
|
}
|
|
5482
|
-
function
|
|
5483
|
-
return
|
|
5533
|
+
function Ms(e) {
|
|
5534
|
+
return As.get(e);
|
|
5484
5535
|
}
|
|
5485
5536
|
//#endregion
|
|
5486
5537
|
//#region src/lib/ui-actions.ts
|
|
5487
|
-
var
|
|
5488
|
-
function
|
|
5489
|
-
let n = e.match(
|
|
5538
|
+
var Ns = /\$\{\s*([^}]+?)\s*\}/g, Ps = /^\s*\$\{\s*([^}]+?)\s*\}\s*$/, Fs = Symbol("unresolved");
|
|
5539
|
+
function Is(e, t) {
|
|
5540
|
+
let n = e.match(Ps);
|
|
5490
5541
|
if (n) {
|
|
5491
|
-
let r =
|
|
5492
|
-
return r ===
|
|
5542
|
+
let r = Ls(n[1], t);
|
|
5543
|
+
return r === Fs ? e : r;
|
|
5493
5544
|
}
|
|
5494
|
-
return e.replace(
|
|
5495
|
-
let r =
|
|
5496
|
-
return r ===
|
|
5545
|
+
return e.replace(Ns, (e, n) => {
|
|
5546
|
+
let r = Ls(n, t);
|
|
5547
|
+
return r === Fs ? e : F(r);
|
|
5497
5548
|
});
|
|
5498
5549
|
}
|
|
5499
|
-
function
|
|
5500
|
-
if (e === "now") return
|
|
5550
|
+
function Ls(e, t) {
|
|
5551
|
+
if (e === "now") return Ei();
|
|
5501
5552
|
let [n, ...r] = e.split(".");
|
|
5502
|
-
if (n === "row") return !t.row || r.length === 0 ?
|
|
5553
|
+
if (n === "row") return !t.row || r.length === 0 ? Fs : Rs(t.row, r);
|
|
5503
5554
|
if (n === "field" && r.length >= 2) {
|
|
5504
|
-
let [e, t] = r, n =
|
|
5505
|
-
return n ? n.getField(t) :
|
|
5555
|
+
let [e, t] = r, n = Ms(e);
|
|
5556
|
+
return n ? n.getField(t) : Fs;
|
|
5506
5557
|
}
|
|
5507
|
-
return n === "params" ? !t.params || r.length === 0 ?
|
|
5558
|
+
return n === "params" ? !t.params || r.length === 0 ? Fs : Rs(t.params, r) : Fs;
|
|
5508
5559
|
}
|
|
5509
|
-
function
|
|
5560
|
+
function Rs(e, t) {
|
|
5510
5561
|
return t.reduce((e, t) => {
|
|
5511
5562
|
if (e && typeof e == "object") return e[t];
|
|
5512
5563
|
}, e);
|
|
5513
5564
|
}
|
|
5514
|
-
async function
|
|
5565
|
+
async function zs(e, t) {
|
|
5515
5566
|
for (let n of e) try {
|
|
5516
|
-
await
|
|
5567
|
+
await Bs(n, t);
|
|
5517
5568
|
} catch (e) {
|
|
5518
5569
|
let t = e instanceof Error ? e.message : String(e);
|
|
5519
5570
|
Z.error(`ui_step failed: ${t}`);
|
|
5520
5571
|
return;
|
|
5521
5572
|
}
|
|
5522
5573
|
}
|
|
5523
|
-
async function
|
|
5574
|
+
async function Bs(e, t) {
|
|
5524
5575
|
if (e.copy_to_clipboard != null) {
|
|
5525
|
-
let n =
|
|
5576
|
+
let n = Hs(e.copy_to_clipboard, t);
|
|
5526
5577
|
await navigator.clipboard.writeText(n);
|
|
5527
5578
|
return;
|
|
5528
5579
|
}
|
|
5529
5580
|
if (e.set_field) {
|
|
5530
|
-
let { target: n, value: r } = e.set_field, { region: i, field: a } =
|
|
5581
|
+
let { target: n, value: r } = e.set_field, { region: i, field: a } = Us(n), o = Ms(i);
|
|
5531
5582
|
if (!o) throw Error(`region "${i}" not registered`);
|
|
5532
|
-
o.setField(a,
|
|
5583
|
+
o.setField(a, Vs(r, t));
|
|
5533
5584
|
return;
|
|
5534
5585
|
}
|
|
5535
5586
|
if (e.focus_field) {
|
|
5536
|
-
let { region: t, field: n } =
|
|
5587
|
+
let { region: t, field: n } = Us(e.focus_field), r = Ms(t);
|
|
5537
5588
|
if (!r) throw Error(`region "${t}" not registered`);
|
|
5538
5589
|
r.focusField(n);
|
|
5539
5590
|
return;
|
|
5540
5591
|
}
|
|
5541
5592
|
if (e.show_toast) {
|
|
5542
|
-
let n =
|
|
5593
|
+
let n = Hs(e.show_toast.message, t), r = e.show_toast.kind ?? "info";
|
|
5543
5594
|
r === "success" ? Z.success(n) : r === "error" ? Z.error(n) : Z.info(n);
|
|
5544
5595
|
return;
|
|
5545
5596
|
}
|
|
5546
5597
|
}
|
|
5547
|
-
function
|
|
5548
|
-
return typeof e == "string" ?
|
|
5598
|
+
function Vs(e, t) {
|
|
5599
|
+
return typeof e == "string" ? Is(e, t) : e;
|
|
5549
5600
|
}
|
|
5550
|
-
function
|
|
5551
|
-
return F(
|
|
5601
|
+
function Hs(e, t) {
|
|
5602
|
+
return F(Is(e, t));
|
|
5552
5603
|
}
|
|
5553
|
-
function
|
|
5604
|
+
function Us(e) {
|
|
5554
5605
|
let t = e.indexOf(".");
|
|
5555
5606
|
if (t <= 0) throw Error(`invalid path "${e}" (expected "region.field")`);
|
|
5556
5607
|
return {
|
|
@@ -5558,12 +5609,12 @@ function Is(e) {
|
|
|
5558
5609
|
field: e.slice(t + 1)
|
|
5559
5610
|
};
|
|
5560
5611
|
}
|
|
5561
|
-
function
|
|
5612
|
+
function Ws(e) {
|
|
5562
5613
|
return !e.handler && !!e.ui_steps && e.ui_steps.length > 0;
|
|
5563
5614
|
}
|
|
5564
5615
|
//#endregion
|
|
5565
5616
|
//#region src/lib/mass-edit.ts
|
|
5566
|
-
function
|
|
5617
|
+
function Gs(e) {
|
|
5567
5618
|
if (!e) return [];
|
|
5568
5619
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
5569
5620
|
for (let r of e.split(",")) {
|
|
@@ -5572,17 +5623,17 @@ function Rs(e) {
|
|
|
5572
5623
|
}
|
|
5573
5624
|
return n;
|
|
5574
5625
|
}
|
|
5575
|
-
function
|
|
5626
|
+
function Ks(e, t) {
|
|
5576
5627
|
if (!e || !Ke(e, "update")) return [];
|
|
5577
|
-
let n = Array.isArray(t) ? t :
|
|
5628
|
+
let n = Array.isArray(t) ? t : Gs(t), r = n.length > 0 ? new Set(n) : null, i = rt(e), a = new Set(R(e)), o = r ? n : qs(e, i, a), s = [];
|
|
5578
5629
|
for (let t of o) {
|
|
5579
5630
|
if (r && !r.has(t)) continue;
|
|
5580
|
-
let n =
|
|
5631
|
+
let n = Js(e, t, i, a);
|
|
5581
5632
|
n && s.push(n);
|
|
5582
5633
|
}
|
|
5583
5634
|
return s;
|
|
5584
5635
|
}
|
|
5585
|
-
function
|
|
5636
|
+
function qs(e, t, n) {
|
|
5586
5637
|
let r = [];
|
|
5587
5638
|
for (let [t, i] of e.fields) n.has(t) || i.auto || r.push(t);
|
|
5588
5639
|
if (!t) {
|
|
@@ -5591,7 +5642,7 @@ function Bs(e, t, n) {
|
|
|
5591
5642
|
}
|
|
5592
5643
|
return r;
|
|
5593
5644
|
}
|
|
5594
|
-
function
|
|
5645
|
+
function Js(e, t, n, r) {
|
|
5595
5646
|
if (t.startsWith("$status.")) {
|
|
5596
5647
|
if (n) return null;
|
|
5597
5648
|
let r = t.slice(8), i = e.status_groups?.[r];
|
|
@@ -5599,7 +5650,7 @@ function Vs(e, t, n, r) {
|
|
|
5599
5650
|
code: t,
|
|
5600
5651
|
bare: r,
|
|
5601
5652
|
kind: "status",
|
|
5602
|
-
label:
|
|
5653
|
+
label: Ys(i.name, r),
|
|
5603
5654
|
statusGroup: i
|
|
5604
5655
|
} : null;
|
|
5605
5656
|
}
|
|
@@ -5610,7 +5661,7 @@ function Vs(e, t, n, r) {
|
|
|
5610
5661
|
code: t,
|
|
5611
5662
|
bare: r,
|
|
5612
5663
|
kind: "property",
|
|
5613
|
-
label:
|
|
5664
|
+
label: Ys(i.name, r),
|
|
5614
5665
|
property: i
|
|
5615
5666
|
} : null;
|
|
5616
5667
|
}
|
|
@@ -5620,18 +5671,18 @@ function Vs(e, t, n, r) {
|
|
|
5620
5671
|
code: t,
|
|
5621
5672
|
bare: t,
|
|
5622
5673
|
kind: "field",
|
|
5623
|
-
label:
|
|
5674
|
+
label: Ys(i.display?.name, t),
|
|
5624
5675
|
field: i
|
|
5625
5676
|
};
|
|
5626
5677
|
}
|
|
5627
|
-
function
|
|
5678
|
+
function Ys(e, t) {
|
|
5628
5679
|
return e && I(e) || t;
|
|
5629
5680
|
}
|
|
5630
5681
|
//#endregion
|
|
5631
5682
|
//#region src/components/mass-edit/PropertyGridEditor.tsx
|
|
5632
|
-
var
|
|
5633
|
-
function
|
|
5634
|
-
let a = u(() =>
|
|
5683
|
+
var Xs = Symbol.for("declarion.mass-edit.multiple");
|
|
5684
|
+
function Zs({ entity: e, filterTargets: t, selectedRows: n, value: r, onChange: i }) {
|
|
5685
|
+
let a = u(() => Ks(e, t), [e, t]), s = u(() => Object.keys(r).map((e) => {
|
|
5635
5686
|
let t = a.find((t) => t.code === e);
|
|
5636
5687
|
return t ? {
|
|
5637
5688
|
target: t,
|
|
@@ -5641,8 +5692,8 @@ function Ws({ entity: e, filterTargets: t, selectedRows: n, value: r, onChange:
|
|
|
5641
5692
|
let e = new Set(s.map((e) => e.target.code));
|
|
5642
5693
|
return a.filter((t) => !e.has(t.code));
|
|
5643
5694
|
}, [s, a]), l = o((e) => {
|
|
5644
|
-
let t =
|
|
5645
|
-
a[e.code] = t ===
|
|
5695
|
+
let t = nc(e, n), a = { ...r };
|
|
5696
|
+
a[e.code] = t === Xs ? void 0 : t, i(a);
|
|
5646
5697
|
}, [
|
|
5647
5698
|
r,
|
|
5648
5699
|
n,
|
|
@@ -5670,12 +5721,12 @@ function Ws({ entity: e, filterTargets: t, selectedRows: n, value: r, onChange:
|
|
|
5670
5721
|
},
|
|
5671
5722
|
children: "No targets selected. Add a field, status, or property to edit across all selected rows."
|
|
5672
5723
|
}),
|
|
5673
|
-
s.map((e) => /* @__PURE__ */ v(
|
|
5724
|
+
s.map((e) => /* @__PURE__ */ v(Qs, {
|
|
5674
5725
|
row: e,
|
|
5675
5726
|
onChange: (t) => d(e.target.code, t),
|
|
5676
5727
|
onRemove: () => f(e.target.code)
|
|
5677
5728
|
}, e.target.code)),
|
|
5678
|
-
/* @__PURE__ */ v(
|
|
5729
|
+
/* @__PURE__ */ v(tc, {
|
|
5679
5730
|
targets: c,
|
|
5680
5731
|
onPick: l
|
|
5681
5732
|
})
|
|
@@ -5688,7 +5739,7 @@ function Ws({ entity: e, filterTargets: t, selectedRows: n, value: r, onChange:
|
|
|
5688
5739
|
children: "Entity schema unavailable. Mass edit requires an entity-bound action."
|
|
5689
5740
|
});
|
|
5690
5741
|
}
|
|
5691
|
-
function
|
|
5742
|
+
function Qs({ row: t, onChange: n, onRemove: r }) {
|
|
5692
5743
|
let { target: i } = t;
|
|
5693
5744
|
return /* @__PURE__ */ y("div", {
|
|
5694
5745
|
"data-testid": "mass-edit-row",
|
|
@@ -5707,7 +5758,7 @@ function Gs({ row: t, onChange: n, onRemove: r }) {
|
|
|
5707
5758
|
title: i.code,
|
|
5708
5759
|
children: i.label
|
|
5709
5760
|
}),
|
|
5710
|
-
/* @__PURE__ */ v(
|
|
5761
|
+
/* @__PURE__ */ v($s, {
|
|
5711
5762
|
row: t,
|
|
5712
5763
|
onChange: n
|
|
5713
5764
|
}),
|
|
@@ -5719,8 +5770,8 @@ function Gs({ row: t, onChange: n, onRemove: r }) {
|
|
|
5719
5770
|
]
|
|
5720
5771
|
});
|
|
5721
5772
|
}
|
|
5722
|
-
function
|
|
5723
|
-
let { target: n } = e, r =
|
|
5773
|
+
function $s({ row: e, onChange: t }) {
|
|
5774
|
+
let { target: n } = e, r = ks(), i = e.value === Xs, a = i ? "<multiple values>" : void 0, o = i ? "" : e.value;
|
|
5724
5775
|
if (n.kind === "status" && n.statusGroup) {
|
|
5725
5776
|
let e = n.statusGroup.statuses.map((e) => ({
|
|
5726
5777
|
value: e.code,
|
|
@@ -5736,11 +5787,11 @@ function Ks({ row: e, onChange: t }) {
|
|
|
5736
5787
|
})
|
|
5737
5788
|
});
|
|
5738
5789
|
}
|
|
5739
|
-
let s =
|
|
5790
|
+
let s = ec(n);
|
|
5740
5791
|
return /* @__PURE__ */ y("div", {
|
|
5741
5792
|
"data-testid": `value-${n.code}`,
|
|
5742
5793
|
style: { position: "relative" },
|
|
5743
|
-
children: [
|
|
5794
|
+
children: [Es({
|
|
5744
5795
|
field: s,
|
|
5745
5796
|
fieldName: n.bare,
|
|
5746
5797
|
value: o ?? "",
|
|
@@ -5759,7 +5810,7 @@ function Ks({ row: e, onChange: t }) {
|
|
|
5759
5810
|
})]
|
|
5760
5811
|
});
|
|
5761
5812
|
}
|
|
5762
|
-
function
|
|
5813
|
+
function ec(e) {
|
|
5763
5814
|
if (e.kind === "field" && e.field) return e.field;
|
|
5764
5815
|
if (e.kind === "property" && e.property) {
|
|
5765
5816
|
let t = e.property;
|
|
@@ -5774,7 +5825,7 @@ function qs(e) {
|
|
|
5774
5825
|
}
|
|
5775
5826
|
return { type: "string" };
|
|
5776
5827
|
}
|
|
5777
|
-
function
|
|
5828
|
+
function tc({ targets: t, onPick: n }) {
|
|
5778
5829
|
let [r, i] = f(!1);
|
|
5779
5830
|
return t.length === 0 ? null : r ? /* @__PURE__ */ v("div", {
|
|
5780
5831
|
"data-testid": "mass-edit-target-picker",
|
|
@@ -5801,7 +5852,7 @@ function Js({ targets: t, onPick: n }) {
|
|
|
5801
5852
|
children: [/* @__PURE__ */ v(e.plus, { size: 12 }), " Add target"]
|
|
5802
5853
|
});
|
|
5803
5854
|
}
|
|
5804
|
-
function
|
|
5855
|
+
function nc(e, t) {
|
|
5805
5856
|
if (!t || t.length === 0 || e.kind !== "field") return;
|
|
5806
5857
|
let n, r = !1;
|
|
5807
5858
|
for (let i of t) {
|
|
@@ -5810,21 +5861,21 @@ function Ys(e, t) {
|
|
|
5810
5861
|
n = t, r = !0;
|
|
5811
5862
|
continue;
|
|
5812
5863
|
}
|
|
5813
|
-
if (n !== t) return
|
|
5864
|
+
if (n !== t) return Xs;
|
|
5814
5865
|
}
|
|
5815
5866
|
return n;
|
|
5816
5867
|
}
|
|
5817
5868
|
//#endregion
|
|
5818
5869
|
//#region src/components/shared/ActionDialog.tsx
|
|
5819
|
-
var
|
|
5820
|
-
function
|
|
5870
|
+
var rc = /^\$row\.([a-zA-Z_][a-zA-Z0-9_]*)$/;
|
|
5871
|
+
function ic(e, t) {
|
|
5821
5872
|
if (typeof e != "string") return e ?? "";
|
|
5822
|
-
let n = e.match(
|
|
5873
|
+
let n = e.match(rc);
|
|
5823
5874
|
if (!n) return e;
|
|
5824
5875
|
let r = n[1];
|
|
5825
5876
|
return t && r in t ? t[r] ?? "" : (typeof console < "u" && console.warn && console.warn(`ActionDialog: prefill template ${e} could not be resolved; row missing or has no field '${r}'`), "");
|
|
5826
5877
|
}
|
|
5827
|
-
function
|
|
5878
|
+
function ac(e) {
|
|
5828
5879
|
return {
|
|
5829
5880
|
type: e.type ?? "string",
|
|
5830
5881
|
required: e.required,
|
|
@@ -5837,18 +5888,18 @@ function Qs(e) {
|
|
|
5837
5888
|
ref: Ue(e.ref)
|
|
5838
5889
|
};
|
|
5839
5890
|
}
|
|
5840
|
-
function
|
|
5891
|
+
function oc(e, t) {
|
|
5841
5892
|
if (!e.includes("${")) return e;
|
|
5842
|
-
let n =
|
|
5893
|
+
let n = Is(e, { params: t });
|
|
5843
5894
|
return n == null ? "" : F(n);
|
|
5844
5895
|
}
|
|
5845
|
-
var
|
|
5846
|
-
function
|
|
5896
|
+
var sc = /\$\{\s*([^}]+?)\s*\}/g;
|
|
5897
|
+
function cc(e, t) {
|
|
5847
5898
|
let n = `params.${t}`;
|
|
5848
|
-
for (let t of e.matchAll(
|
|
5899
|
+
for (let t of e.matchAll(sc)) if (t[1] === n) return !0;
|
|
5849
5900
|
return !1;
|
|
5850
5901
|
}
|
|
5851
|
-
function
|
|
5902
|
+
function lc({ param: e, value: t, onChange: n, statusGroups: r }) {
|
|
5852
5903
|
let i = u(() => {
|
|
5853
5904
|
let t = r ? Object.entries(r) : [];
|
|
5854
5905
|
return [{
|
|
@@ -5866,12 +5917,12 @@ function nc({ param: e, value: t, onChange: n, statusGroups: r }) {
|
|
|
5866
5917
|
placeholder: "Select status group…"
|
|
5867
5918
|
});
|
|
5868
5919
|
}
|
|
5869
|
-
function
|
|
5920
|
+
function uc({ param: e, value: t, onChange: n, statusGroups: r, formData: i }) {
|
|
5870
5921
|
let a = u(() => {
|
|
5871
5922
|
if (!r) return [];
|
|
5872
5923
|
let t = e.filter?.status_group;
|
|
5873
5924
|
if (t) {
|
|
5874
|
-
let e =
|
|
5925
|
+
let e = oc(t, i);
|
|
5875
5926
|
return e && r[e] ? r[e].statuses : [];
|
|
5876
5927
|
}
|
|
5877
5928
|
return Object.values(r).flatMap((e) => e.statuses);
|
|
@@ -5893,8 +5944,8 @@ function rc({ param: e, value: t, onChange: n, statusGroups: r, formData: i }) {
|
|
|
5893
5944
|
placeholder: "Select status…"
|
|
5894
5945
|
});
|
|
5895
5946
|
}
|
|
5896
|
-
function
|
|
5897
|
-
let { data: d } = J(), p =
|
|
5947
|
+
function dc({ open: t, onOpenChange: n, action: r, actionName: i, onSubmit: a, isPending: s, row: c, bulkSelection: l }) {
|
|
5948
|
+
let { data: d } = J(), p = ks(), m = r.resolved_params, h = r.resolved_hidden_defaults ?? {}, g = u(() => m ? Array.from(m) : [], [m]), b = u(() => {
|
|
5898
5949
|
if (!(!r.entity || !d)) return d.entities[r.entity]?.status_groups;
|
|
5899
5950
|
}, [r.entity, d]), x = u(() => {
|
|
5900
5951
|
if (!(!r.entity || !d)) return d.entities[r.entity];
|
|
@@ -5918,7 +5969,7 @@ function ic({ open: t, onOpenChange: n, action: r, actionName: i, onSubmit: a, i
|
|
|
5918
5969
|
e[t] = n.default === !0 || n.default === "true";
|
|
5919
5970
|
continue;
|
|
5920
5971
|
}
|
|
5921
|
-
e[t] =
|
|
5972
|
+
e[t] = ic(n.default, c);
|
|
5922
5973
|
}
|
|
5923
5974
|
return e;
|
|
5924
5975
|
}, [
|
|
@@ -5936,7 +5987,7 @@ function ic({ open: t, onOpenChange: n, action: r, actionName: i, onSubmit: a, i
|
|
|
5936
5987
|
for (let [t, n] of m) {
|
|
5937
5988
|
if (n.type !== "status") continue;
|
|
5938
5989
|
let i = n.filter?.status_group;
|
|
5939
|
-
i &&
|
|
5990
|
+
i && cc(i, e) && (r[t] = "");
|
|
5940
5991
|
}
|
|
5941
5992
|
return r;
|
|
5942
5993
|
});
|
|
@@ -6049,26 +6100,26 @@ function ic({ open: t, onOpenChange: n, action: r, actionName: i, onSubmit: a, i
|
|
|
6049
6100
|
let n = I(t.display?.name) || e;
|
|
6050
6101
|
if (t.type === "id_array") return null;
|
|
6051
6102
|
let r;
|
|
6052
|
-
return r = t.type === "entity_patch" ? /* @__PURE__ */ v(
|
|
6103
|
+
return r = t.type === "entity_patch" ? /* @__PURE__ */ v(Zs, {
|
|
6053
6104
|
entity: x,
|
|
6054
6105
|
filterTargets: typeof t.filter?.targets == "string" ? t.filter.targets : void 0,
|
|
6055
6106
|
selectedRows: l,
|
|
6056
6107
|
value: C[e] ?? {},
|
|
6057
6108
|
onChange: (t) => D(e, t)
|
|
6058
|
-
}) : t.type === "status_group" ? /* @__PURE__ */ v(
|
|
6109
|
+
}) : t.type === "status_group" ? /* @__PURE__ */ v(lc, {
|
|
6059
6110
|
param: t,
|
|
6060
6111
|
value: C[e],
|
|
6061
6112
|
onChange: (t) => D(e, t),
|
|
6062
6113
|
statusGroups: b,
|
|
6063
6114
|
formData: C
|
|
6064
|
-
}) : t.type === "status" ? /* @__PURE__ */ v(
|
|
6115
|
+
}) : t.type === "status" ? /* @__PURE__ */ v(uc, {
|
|
6065
6116
|
param: t,
|
|
6066
6117
|
value: C[e],
|
|
6067
6118
|
onChange: (t) => D(e, t),
|
|
6068
6119
|
statusGroups: b,
|
|
6069
6120
|
formData: C
|
|
6070
|
-
}) :
|
|
6071
|
-
field:
|
|
6121
|
+
}) : Es({
|
|
6122
|
+
field: ac(t),
|
|
6072
6123
|
fieldName: e,
|
|
6073
6124
|
value: C[e],
|
|
6074
6125
|
mode: "edit",
|
|
@@ -6128,7 +6179,7 @@ function ic({ open: t, onOpenChange: n, action: r, actionName: i, onSubmit: a, i
|
|
|
6128
6179
|
}
|
|
6129
6180
|
//#endregion
|
|
6130
6181
|
//#region src/components/shared/ActionResultDialog.tsx
|
|
6131
|
-
function
|
|
6182
|
+
function fc({ open: t, onClose: n, display: r }) {
|
|
6132
6183
|
let i = d(null);
|
|
6133
6184
|
return c(() => {
|
|
6134
6185
|
t && i.current?.focus();
|
|
@@ -6223,7 +6274,7 @@ function ac({ open: t, onClose: n, display: r }) {
|
|
|
6223
6274
|
gap: 12,
|
|
6224
6275
|
overflowY: "auto"
|
|
6225
6276
|
},
|
|
6226
|
-
children: r.fields.map((e, t) => /* @__PURE__ */ v(
|
|
6277
|
+
children: r.fields.map((e, t) => /* @__PURE__ */ v(pc, { field: e }, t))
|
|
6227
6278
|
}),
|
|
6228
6279
|
/* @__PURE__ */ y("div", {
|
|
6229
6280
|
style: {
|
|
@@ -6246,51 +6297,108 @@ function ac({ open: t, onClose: n, display: r }) {
|
|
|
6246
6297
|
]
|
|
6247
6298
|
})] }) : null;
|
|
6248
6299
|
}
|
|
6249
|
-
function
|
|
6300
|
+
function pc({ field: t }) {
|
|
6301
|
+
let n = t.href ?? t.download_url ?? t.value, r = t.type === "download", i = r || t.type === "link", a = n ? fi(n) : void 0, [o, s] = f(!1), [c, l] = f(null);
|
|
6302
|
+
async function u() {
|
|
6303
|
+
if (a) {
|
|
6304
|
+
s(!0), l(null);
|
|
6305
|
+
try {
|
|
6306
|
+
await hi(a, t.filename);
|
|
6307
|
+
} catch (e) {
|
|
6308
|
+
l(e instanceof Error ? e.message : String(e));
|
|
6309
|
+
} finally {
|
|
6310
|
+
s(!1);
|
|
6311
|
+
}
|
|
6312
|
+
}
|
|
6313
|
+
}
|
|
6314
|
+
let d = {
|
|
6315
|
+
display: "inline-flex",
|
|
6316
|
+
alignItems: "center",
|
|
6317
|
+
justifyContent: "center",
|
|
6318
|
+
gap: 6,
|
|
6319
|
+
height: 32,
|
|
6320
|
+
width: "fit-content",
|
|
6321
|
+
maxWidth: "100%",
|
|
6322
|
+
padding: "0 12px",
|
|
6323
|
+
borderRadius: 6,
|
|
6324
|
+
border: "1px solid var(--border)",
|
|
6325
|
+
background: r ? "var(--accent)" : "var(--surface)",
|
|
6326
|
+
color: r ? "var(--primary-fg)" : "var(--text)",
|
|
6327
|
+
fontSize: 12.5,
|
|
6328
|
+
fontWeight: 500,
|
|
6329
|
+
textDecoration: "none",
|
|
6330
|
+
whiteSpace: "nowrap"
|
|
6331
|
+
};
|
|
6250
6332
|
return /* @__PURE__ */ y("div", {
|
|
6251
6333
|
style: {
|
|
6252
6334
|
display: "flex",
|
|
6253
6335
|
flexDirection: "column",
|
|
6254
6336
|
gap: 4
|
|
6255
6337
|
},
|
|
6256
|
-
children: [
|
|
6257
|
-
|
|
6258
|
-
fontSize: 11.5,
|
|
6259
|
-
fontWeight: 500,
|
|
6260
|
-
color: "var(--text-3)"
|
|
6261
|
-
},
|
|
6262
|
-
children: e.label
|
|
6263
|
-
}), /* @__PURE__ */ y("div", {
|
|
6264
|
-
style: {
|
|
6265
|
-
position: "relative",
|
|
6266
|
-
width: "100%"
|
|
6267
|
-
},
|
|
6268
|
-
children: [/* @__PURE__ */ v("div", {
|
|
6269
|
-
className: e.monospace ? "mono" : void 0,
|
|
6338
|
+
children: [
|
|
6339
|
+
/* @__PURE__ */ v("div", {
|
|
6270
6340
|
style: {
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
padding: e.copyable ? "8px 40px 8px 10px" : "8px 10px",
|
|
6275
|
-
fontSize: 12.5,
|
|
6276
|
-
wordBreak: "break-all",
|
|
6277
|
-
color: "var(--text)"
|
|
6341
|
+
fontSize: 11.5,
|
|
6342
|
+
fontWeight: 500,
|
|
6343
|
+
color: "var(--text-3)"
|
|
6278
6344
|
},
|
|
6279
|
-
children:
|
|
6280
|
-
}),
|
|
6345
|
+
children: t.label
|
|
6346
|
+
}),
|
|
6347
|
+
i && a ? r ? /* @__PURE__ */ y("button", {
|
|
6348
|
+
type: "button",
|
|
6349
|
+
onClick: u,
|
|
6350
|
+
disabled: o,
|
|
6281
6351
|
style: {
|
|
6282
|
-
|
|
6283
|
-
|
|
6284
|
-
right: 4
|
|
6352
|
+
...d,
|
|
6353
|
+
cursor: o ? "default" : "pointer"
|
|
6285
6354
|
},
|
|
6286
|
-
children: /* @__PURE__ */ v(
|
|
6287
|
-
})
|
|
6288
|
-
|
|
6355
|
+
children: [v(o ? e.loader : e.download, { size: 14 }), /* @__PURE__ */ v("span", { children: o ? "Downloading…" : "Download" })]
|
|
6356
|
+
}) : /* @__PURE__ */ y("a", {
|
|
6357
|
+
href: a,
|
|
6358
|
+
target: "_blank",
|
|
6359
|
+
rel: "noopener noreferrer",
|
|
6360
|
+
style: d,
|
|
6361
|
+
children: [/* @__PURE__ */ v(e.download, { size: 14 }), /* @__PURE__ */ v("span", { children: t.value })]
|
|
6362
|
+
}) : null,
|
|
6363
|
+
c && /* @__PURE__ */ v("div", {
|
|
6364
|
+
style: {
|
|
6365
|
+
fontSize: 11.5,
|
|
6366
|
+
color: "var(--danger)"
|
|
6367
|
+
},
|
|
6368
|
+
children: c
|
|
6369
|
+
}),
|
|
6370
|
+
/* @__PURE__ */ y("div", {
|
|
6371
|
+
style: {
|
|
6372
|
+
position: "relative",
|
|
6373
|
+
width: "100%"
|
|
6374
|
+
},
|
|
6375
|
+
children: [/* @__PURE__ */ v("div", {
|
|
6376
|
+
className: t.monospace ? "mono" : void 0,
|
|
6377
|
+
style: {
|
|
6378
|
+
borderRadius: 6,
|
|
6379
|
+
border: "1px solid var(--border)",
|
|
6380
|
+
background: "var(--surface-2)",
|
|
6381
|
+
padding: t.copyable ? "8px 40px 8px 10px" : "8px 10px",
|
|
6382
|
+
fontSize: 12.5,
|
|
6383
|
+
wordBreak: "break-all",
|
|
6384
|
+
color: "var(--text)"
|
|
6385
|
+
},
|
|
6386
|
+
children: t.value
|
|
6387
|
+
}), t.copyable && /* @__PURE__ */ v("div", {
|
|
6388
|
+
style: {
|
|
6389
|
+
position: "absolute",
|
|
6390
|
+
top: 4,
|
|
6391
|
+
right: 4
|
|
6392
|
+
},
|
|
6393
|
+
children: /* @__PURE__ */ v(vi, { value: t.value })
|
|
6394
|
+
})]
|
|
6395
|
+
})
|
|
6396
|
+
]
|
|
6289
6397
|
});
|
|
6290
6398
|
}
|
|
6291
6399
|
//#endregion
|
|
6292
6400
|
//#region src/components/shared/ActionRunner.tsx
|
|
6293
|
-
function
|
|
6401
|
+
function mc(e) {
|
|
6294
6402
|
if (!e || typeof e != "object") return { kind: "success" };
|
|
6295
6403
|
let t = e, n = t.status, r = t.success?.length ?? 0, i = t.errors?.length ?? 0, a = t.skipped?.length ?? 0, o = t.errors?.[0]?.error;
|
|
6296
6404
|
if (n === "partial") {
|
|
@@ -6305,20 +6413,33 @@ function sc(e) {
|
|
|
6305
6413
|
detail: "No items matched"
|
|
6306
6414
|
} : n === "accepted" ? { kind: "accepted" } : { kind: "success" };
|
|
6307
6415
|
}
|
|
6308
|
-
function
|
|
6416
|
+
function hc(e) {
|
|
6309
6417
|
if (!e || typeof e != "object") return null;
|
|
6310
6418
|
let t = e.result;
|
|
6311
6419
|
if (!t || typeof t != "object") return null;
|
|
6312
6420
|
let n = t.$display;
|
|
6313
6421
|
return !n || typeof n != "object" ? null : n;
|
|
6314
6422
|
}
|
|
6315
|
-
function
|
|
6423
|
+
function gc(e) {
|
|
6424
|
+
let t = hc(e)?.fields;
|
|
6425
|
+
if (!Array.isArray(t)) return null;
|
|
6426
|
+
for (let e of t) {
|
|
6427
|
+
if (e?.type !== "download") continue;
|
|
6428
|
+
let t = e.href ?? e.download_url ?? e.value;
|
|
6429
|
+
if (typeof t == "string" && t !== "" && fi(t)) return {
|
|
6430
|
+
url: t,
|
|
6431
|
+
filename: typeof e.filename == "string" ? e.filename : void 0
|
|
6432
|
+
};
|
|
6433
|
+
}
|
|
6434
|
+
return null;
|
|
6435
|
+
}
|
|
6436
|
+
function _c(e) {
|
|
6316
6437
|
if (!e || typeof e != "object") return;
|
|
6317
6438
|
let t = e.result;
|
|
6318
6439
|
!t || typeof t != "object" || "impersonation_session_id" in t && window.location.assign("/");
|
|
6319
6440
|
}
|
|
6320
|
-
function
|
|
6321
|
-
if (e instanceof
|
|
6441
|
+
function vc(e) {
|
|
6442
|
+
if (e instanceof Yn) {
|
|
6322
6443
|
let t = e.response.errors ?? [];
|
|
6323
6444
|
if (t.length === 1) return {
|
|
6324
6445
|
kind: "error",
|
|
@@ -6338,32 +6459,41 @@ function uc(e) {
|
|
|
6338
6459
|
detail: e instanceof Error ? e.message : String(e)
|
|
6339
6460
|
};
|
|
6340
6461
|
}
|
|
6341
|
-
var
|
|
6342
|
-
function
|
|
6343
|
-
let e = s(
|
|
6462
|
+
var yc = r(null);
|
|
6463
|
+
function bc() {
|
|
6464
|
+
let e = s(yc);
|
|
6344
6465
|
if (!e) throw Error("useActionRunner must be used within <ActionRunnerProvider>");
|
|
6345
6466
|
return e;
|
|
6346
6467
|
}
|
|
6347
|
-
function
|
|
6468
|
+
function xc(e) {
|
|
6348
6469
|
let t = {}, n = e.action?.resolved_hidden_defaults;
|
|
6349
6470
|
if (n) for (let [e, r] of Object.entries(n)) r !== void 0 && (t[e] = r);
|
|
6350
6471
|
return t;
|
|
6351
6472
|
}
|
|
6352
|
-
function
|
|
6353
|
-
let t =
|
|
6473
|
+
function Sc({ children: e }) {
|
|
6474
|
+
let t = qr(), { data: n } = J(), [r, i] = f(null), [a, s] = f(0), [c, l] = f(null), d = o((e) => {
|
|
6354
6475
|
if (e?.progress_screen) return n?.screens[e.progress_screen]?.route;
|
|
6355
|
-
}, [n?.screens]),
|
|
6476
|
+
}, [n?.screens]), p = o((e, n, r, i, a) => {
|
|
6356
6477
|
let o = () => {
|
|
6357
|
-
let n =
|
|
6478
|
+
let n = Cc(a), i = d(r), o = n ? `Job ${n} queued` : "Running in background";
|
|
6358
6479
|
Z.success(`${e} started`, o, i ? { action: {
|
|
6359
6480
|
label: "View",
|
|
6360
6481
|
onClick: () => t(i)
|
|
6361
6482
|
} } : void 0);
|
|
6362
6483
|
};
|
|
6363
6484
|
switch (i.kind) {
|
|
6364
|
-
case "success":
|
|
6365
|
-
|
|
6485
|
+
case "success": {
|
|
6486
|
+
let t = gc(a), r = t ? { action: {
|
|
6487
|
+
label: "Download",
|
|
6488
|
+
onClick: () => {
|
|
6489
|
+
hi(t.url, t.filename).catch((e) => {
|
|
6490
|
+
Z.error("Download failed", e instanceof Error ? e.message : String(e));
|
|
6491
|
+
});
|
|
6492
|
+
}
|
|
6493
|
+
} } : void 0;
|
|
6494
|
+
n ? o() : Z.success(`${e} complete`, void 0, r);
|
|
6366
6495
|
return;
|
|
6496
|
+
}
|
|
6367
6497
|
case "accepted":
|
|
6368
6498
|
o();
|
|
6369
6499
|
return;
|
|
@@ -6377,7 +6507,7 @@ function mc({ children: e }) {
|
|
|
6377
6507
|
Z.error(`${e} failed`, i.detail);
|
|
6378
6508
|
return;
|
|
6379
6509
|
}
|
|
6380
|
-
}, [t,
|
|
6510
|
+
}, [t, d]), m = o((e) => {
|
|
6381
6511
|
let t = e.action, n = e.destructive ?? t?.destructive ?? !1, r = e.longRunning ?? t?.long_running ?? !1, a = e.title || I(t?.display?.name) || "Action";
|
|
6382
6512
|
return t?.resolved_params && t.resolved_params.length > 0 ? (i({
|
|
6383
6513
|
id: Symbol(),
|
|
@@ -6392,90 +6522,97 @@ function mc({ children: e }) {
|
|
|
6392
6522
|
kind: "confirm",
|
|
6393
6523
|
pending: !1
|
|
6394
6524
|
}), Promise.resolve()) : (async (n) => {
|
|
6525
|
+
s((e) => e + 1);
|
|
6395
6526
|
try {
|
|
6396
|
-
let i = await e.execute(n), o =
|
|
6397
|
-
if (
|
|
6527
|
+
let i = await e.execute(n), o = mc(i);
|
|
6528
|
+
if (p(a, r, t, o, i), o.kind === "success" || o.kind === "accepted") {
|
|
6398
6529
|
e.onSuccess?.(i);
|
|
6399
|
-
let t =
|
|
6400
|
-
t &&
|
|
6530
|
+
let t = hc(i);
|
|
6531
|
+
t && l(t), _c(i);
|
|
6401
6532
|
}
|
|
6402
6533
|
} catch (e) {
|
|
6403
|
-
|
|
6534
|
+
p(a, r, t, vc(e));
|
|
6535
|
+
} finally {
|
|
6536
|
+
s((e) => Math.max(0, e - 1));
|
|
6404
6537
|
}
|
|
6405
|
-
})(
|
|
6406
|
-
}, [
|
|
6538
|
+
})(xc(e));
|
|
6539
|
+
}, [p]), h = a > 0 || !!r?.pending, g = u(() => ({
|
|
6540
|
+
run: m,
|
|
6541
|
+
isRunning: h
|
|
6542
|
+
}), [m, h]), _ = r?.opts.action, b = o(async (e) => {
|
|
6407
6543
|
if (!r) return;
|
|
6408
6544
|
let t = r.id, n = r, a = n.opts.action, o = n.opts.longRunning ?? a?.long_running ?? !1;
|
|
6409
6545
|
i((e) => e?.id === t ? {
|
|
6410
6546
|
...e,
|
|
6411
6547
|
pending: !0
|
|
6412
|
-
} : e);
|
|
6548
|
+
} : e), s((e) => e + 1);
|
|
6413
6549
|
try {
|
|
6414
|
-
let r = await n.opts.execute(e),
|
|
6415
|
-
if (
|
|
6550
|
+
let r = await n.opts.execute(e), s = mc(r);
|
|
6551
|
+
if (p(n.title, o, a, s, r), s.kind === "success" || s.kind === "accepted") {
|
|
6416
6552
|
n.opts.onSuccess?.(r);
|
|
6417
|
-
let e =
|
|
6418
|
-
e &&
|
|
6553
|
+
let e = hc(r);
|
|
6554
|
+
e && l(e), _c(r);
|
|
6419
6555
|
}
|
|
6420
|
-
|
|
6556
|
+
s.kind !== "partial" && i((e) => e?.id === t ? null : e);
|
|
6421
6557
|
} catch (e) {
|
|
6422
|
-
|
|
6558
|
+
p(n.title, o, a, vc(e));
|
|
6423
6559
|
} finally {
|
|
6424
|
-
i((e) => e?.id === t ? {
|
|
6560
|
+
s((e) => Math.max(0, e - 1)), i((e) => e?.id === t ? {
|
|
6425
6561
|
...e,
|
|
6426
6562
|
pending: !1
|
|
6427
6563
|
} : e);
|
|
6428
6564
|
}
|
|
6429
|
-
}, [r,
|
|
6430
|
-
return /* @__PURE__ */ y(
|
|
6431
|
-
value:
|
|
6565
|
+
}, [r, p]);
|
|
6566
|
+
return /* @__PURE__ */ y(yc.Provider, {
|
|
6567
|
+
value: g,
|
|
6432
6568
|
children: [
|
|
6433
6569
|
e,
|
|
6434
|
-
|
|
6570
|
+
c && /* @__PURE__ */ v(fc, {
|
|
6435
6571
|
open: !0,
|
|
6436
|
-
onClose: () =>
|
|
6437
|
-
display:
|
|
6572
|
+
onClose: () => l(null),
|
|
6573
|
+
display: c
|
|
6438
6574
|
}),
|
|
6439
|
-
r?.kind === "params" &&
|
|
6575
|
+
r?.kind === "params" && _ && /* @__PURE__ */ v(dc, {
|
|
6440
6576
|
open: !0,
|
|
6441
6577
|
onOpenChange: (e) => {
|
|
6442
6578
|
e || i(null);
|
|
6443
6579
|
},
|
|
6444
|
-
action:
|
|
6580
|
+
action: _,
|
|
6445
6581
|
actionName: r.title,
|
|
6446
|
-
onSubmit:
|
|
6582
|
+
onSubmit: b,
|
|
6447
6583
|
isPending: r.pending,
|
|
6448
6584
|
bulkSelection: r.opts.bulkSelection
|
|
6449
6585
|
}),
|
|
6450
|
-
r?.kind === "confirm" && /* @__PURE__ */ v(
|
|
6586
|
+
r?.kind === "confirm" && /* @__PURE__ */ v(wc, {
|
|
6451
6587
|
state: r,
|
|
6452
6588
|
onClose: () => i(null),
|
|
6453
6589
|
onExecute: async (e) => {
|
|
6454
6590
|
let t = r.id, n = r, a = n.opts.action, o = n.opts.longRunning ?? a?.long_running ?? !1, c = !1;
|
|
6591
|
+
s((e) => e + 1);
|
|
6455
6592
|
try {
|
|
6456
|
-
let t = await n.opts.execute(e), r =
|
|
6457
|
-
if (
|
|
6593
|
+
let t = await n.opts.execute(e), r = mc(t);
|
|
6594
|
+
if (p(n.title, o, a, r, t), r.kind === "success" || r.kind === "accepted") {
|
|
6458
6595
|
n.opts.onSuccess?.(t);
|
|
6459
|
-
let e =
|
|
6460
|
-
e &&
|
|
6596
|
+
let e = hc(t);
|
|
6597
|
+
e && l(e), _c(t);
|
|
6461
6598
|
}
|
|
6462
6599
|
c = r.kind === "partial";
|
|
6463
6600
|
} catch (e) {
|
|
6464
|
-
|
|
6601
|
+
p(n.title, o, a, vc(e));
|
|
6465
6602
|
} finally {
|
|
6466
|
-
c || i((e) => e?.id === t ? null : e);
|
|
6603
|
+
s((e) => Math.max(0, e - 1)), c || i((e) => e?.id === t ? null : e);
|
|
6467
6604
|
}
|
|
6468
6605
|
}
|
|
6469
6606
|
})
|
|
6470
6607
|
]
|
|
6471
6608
|
});
|
|
6472
6609
|
}
|
|
6473
|
-
function
|
|
6610
|
+
function Cc(e) {
|
|
6474
6611
|
if (!e || typeof e != "object") return;
|
|
6475
6612
|
let t = e, n = t.job_id ?? t.id;
|
|
6476
6613
|
return typeof n == "string" ? n : void 0;
|
|
6477
6614
|
}
|
|
6478
|
-
function
|
|
6615
|
+
function wc({ state: t, onClose: n, onExecute: r }) {
|
|
6479
6616
|
let { title: i, opts: a } = t, [o, s] = f(!1), c = a.action, l = a.destructive ?? c?.destructive ?? !1;
|
|
6480
6617
|
return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("div", {
|
|
6481
6618
|
onClick: n,
|
|
@@ -6565,7 +6702,7 @@ function gc({ state: t, onClose: n, onExecute: r }) {
|
|
|
6565
6702
|
onClick: async () => {
|
|
6566
6703
|
s(!0);
|
|
6567
6704
|
try {
|
|
6568
|
-
await r(
|
|
6705
|
+
await r(xc(a));
|
|
6569
6706
|
} finally {
|
|
6570
6707
|
s(!1);
|
|
6571
6708
|
}
|
|
@@ -6577,4 +6714,4 @@ function gc({ state: t, onClose: n, onExecute: r }) {
|
|
|
6577
6714
|
})] });
|
|
6578
6715
|
}
|
|
6579
6716
|
//#endregion
|
|
6580
|
-
export {
|
|
6717
|
+
export { yr as $, Le as $t, Gi as A, N as An, W as At, li as B, oe as Bn, xt as Bt, Fa as C, Me as Cn, In as Ct, ga as D, P as Dn, On as Dt, xa as E, Ne as En, Dn as Et, Ei as F, se as Fn, fn as Ft, Kr as G, T as Gn, ht as Gt, qr as H, O as Hn, bt as Ht, vi as I, he as In, Mt as It, zr as J, dt as Jt, Wr as K, gt as Kt, hi as L, ue as Ln, Ft as Lt, Wi as M, ye as Mn, q as Mt, Ui as N, ve as Nn, dn as Nt, Ji as O, je as On, Pn as Ot, Oi as P, _e as Pn, pn as Pt, kr as Q, ot as Qt, mi as R, ge as Rn, Et as Rt, Ta as S, be as Sn, Fn as St, Sa as T, Fe as Tn, An as Tt, Yr as U, D as Un, wt as Ut, Z as V, k as Vn, yt as Vt, Jr as W, E as Wn, mt as Wt, Lr as X, at as Xt, Br as Y, z as Yt, Rr as Z, it as Zt, Va as _, Ve as _n, zn as _t, Xs as a, qe as an, Kn as at, Pa as b, Ie as bn, kn as bt, Ks as c, R as cn, Hn as ct, Ws as d, Qe as dn, qn as dt, et as en, wr as et, js as f, Xe as fn, $n as ft, za as g, L as gn, J as gt, ws as h, $e as hn, Wn as ht, dc as i, Ke as in, Gn as it, Hi as j, Pe as jn, K as jt, Ki as k, Se as kn, jn as kt, Gs as l, I as ln, Vn as lt, Es as m, Ge as mn, nr as mt, bc as n, nt as nn, Zn as nt, Zs as o, He as on, ir as ot, ks as p, Ye as pn, rr as pt, Vr as q, ft as qt, fc as r, We as rn, Un as rt, nc as s, Re as sn, Jn as st, Sc as t, tt as tn, Yn as tt, zs as u, Je as un, ar as ut, Ba as v, Ze as vn, Rn as vt, _a as w, Ae as wn, Nn as wt, La as x, Ee as xn, Ln as xt, Q as y, F as yn, En as yt, fi as z, M as zn, Tt as zt };
|