@object-ui/plugin-designer 16.1.0 → 17.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +288 -0
- package/dist/AppCreationWizard.d.ts +1 -0
- package/dist/AppCreationWizard.d.ts.map +1 -0
- package/dist/BrandingEditor.d.ts +1 -0
- package/dist/BrandingEditor.d.ts.map +1 -0
- package/dist/CollaborationProvider.d.ts +1 -0
- package/dist/CollaborationProvider.d.ts.map +1 -0
- package/dist/DashboardEditor.d.ts +6 -5
- package/dist/DashboardEditor.d.ts.map +1 -0
- package/dist/DataModelDesigner.d.ts +1 -0
- package/dist/DataModelDesigner.d.ts.map +1 -0
- package/dist/EditorModeToggle.d.ts +1 -0
- package/dist/EditorModeToggle.d.ts.map +1 -0
- package/dist/FieldDesigner.d.ts +12 -1
- package/dist/FieldDesigner.d.ts.map +1 -0
- package/dist/MetadataFieldsPage.d.ts +1 -0
- package/dist/MetadataFieldsPage.d.ts.map +1 -0
- package/dist/MetadataObjectsPage.d.ts +1 -0
- package/dist/MetadataObjectsPage.d.ts.map +1 -0
- package/dist/NavigationDesigner.d.ts +1 -0
- package/dist/NavigationDesigner.d.ts.map +1 -0
- package/dist/ObjectManager.d.ts +1 -0
- package/dist/ObjectManager.d.ts.map +1 -0
- package/dist/PageDesigner.d.ts +1 -0
- package/dist/PageDesigner.d.ts.map +1 -0
- package/dist/ProcessDesigner.d.ts +1 -0
- package/dist/ProcessDesigner.d.ts.map +1 -0
- package/dist/ReportDesigner.d.ts +1 -0
- package/dist/ReportDesigner.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/plugin-form.d.ts +1 -0
- package/dist/__tests__/__mocks__/plugin-form.d.ts.map +1 -0
- package/dist/__tests__/__mocks__/plugin-grid.d.ts +1 -0
- package/dist/__tests__/__mocks__/plugin-grid.d.ts.map +1 -0
- package/dist/components/ConfirmDialog.d.ts +1 -0
- package/dist/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/HistoryPanel.d.ts +1 -0
- package/dist/components/HistoryPanel.d.ts.map +1 -0
- package/dist/components/Minimap.d.ts +1 -0
- package/dist/components/Minimap.d.ts.map +1 -0
- package/dist/components/PropertyEditor.d.ts +1 -0
- package/dist/components/PropertyEditor.d.ts.map +1 -0
- package/dist/components/VersionHistory.d.ts +1 -0
- package/dist/components/VersionHistory.d.ts.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useCanvasPanZoom.d.ts +1 -0
- package/dist/hooks/useCanvasPanZoom.d.ts.map +1 -0
- package/dist/hooks/useClipboard.d.ts +1 -0
- package/dist/hooks/useClipboard.d.ts.map +1 -0
- package/dist/hooks/useConfirmDialog.d.ts +1 -0
- package/dist/hooks/useConfirmDialog.d.ts.map +1 -0
- package/dist/hooks/useDesignerHistory.d.ts +1 -0
- package/dist/hooks/useDesignerHistory.d.ts.map +1 -0
- package/dist/hooks/useDesignerTranslation.d.ts +8 -1
- package/dist/hooks/useDesignerTranslation.d.ts.map +1 -0
- package/dist/hooks/useMultiSelect.d.ts +1 -0
- package/dist/hooks/useMultiSelect.d.ts.map +1 -0
- package/dist/hooks/useUndoRedo.d.ts +1 -0
- package/dist/hooks/useUndoRedo.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +208 -221
- package/dist/index.umd.cjs +2 -2
- package/dist/pages/CreateAppPage.d.ts +1 -0
- package/dist/pages/CreateAppPage.d.ts.map +1 -0
- package/dist/pages/DashboardDesignPage.d.ts +1 -0
- package/dist/pages/DashboardDesignPage.d.ts.map +1 -0
- package/dist/pages/EditAppPage.d.ts +1 -0
- package/dist/pages/EditAppPage.d.ts.map +1 -0
- package/package.json +12 -11
package/dist/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { ComponentRegistry as e, ValueDataSource as t } from "@object-ui/core";
|
|
2
2
|
import n, { createContext as r, useCallback as i, useContext as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
|
|
3
|
-
import { AlertTriangle as u, ArrowLeft as d, AtSign as f, BarChart3 as p, Calendar as m, Check as h, ChevronDown as g, ChevronLeft as _, ChevronRight as v, ChevronUp as y, Clipboard as b, Clock as x, Code as S, Columns3 as C, Copy as w, Database as T, Diamond as E, Download as D, Eye as O, EyeOff as k, FileText as A, FolderOpen as j, GitBranch as M, Globe as N, Grid3X3 as P, GripVertical as F, Hash as I, History as L, Image as R, ImageIcon as z, Layers as ee, Layout as B, LayoutDashboard as te, LayoutGrid as ne, LayoutTemplate as re, LineChart as ie, Link as V, Link2 as ae, ListOrdered as H, Lock as oe, Map as se, MapPin as ce, Maximize2 as le, Minus as ue, Moon as de, MousePointerClick as fe, Palette as pe, PanelLeft as me, PanelLeftClose as he, PanelRightClose as ge, PanelRightOpen as U, Pencil as W, Phone as _e, PieChart as ve, Play as ye, Plus as be,
|
|
3
|
+
import { AlertTriangle as u, ArrowLeft as d, AtSign as f, BarChart3 as p, Calendar as m, Check as h, ChevronDown as g, ChevronLeft as _, ChevronRight as v, ChevronUp as y, Clipboard as b, Clock as x, Code as S, Columns3 as C, Copy as w, Database as T, Diamond as E, Download as D, Eye as O, EyeOff as k, FileText as A, FolderOpen as j, GitBranch as M, Globe as N, Grid3X3 as P, GripVertical as F, Hash as I, History as L, Image as R, ImageIcon as z, Layers as ee, Layout as B, LayoutDashboard as te, LayoutGrid as ne, LayoutTemplate as re, LineChart as ie, Link as V, Link2 as ae, ListOrdered as H, Lock as oe, Map as se, MapPin as ce, Maximize2 as le, Minus as ue, Moon as de, MousePointerClick as fe, Palette as pe, PanelLeft as me, PanelLeftClose as he, PanelRightClose as ge, PanelRightOpen as U, Pencil as W, Phone as _e, PieChart as ve, Play as ye, Plus as be, Puzzle as xe, Redo2 as Se, RotateCcw as Ce, Search as we, SlidersHorizontal as Te, Square as Ee, Star as De, Sun as Oe, Table2 as ke, ToggleLeft as Ae, Trash2 as je, TrendingUp as Me, Type as Ne, Undo2 as Pe, Upload as Fe, User as Ie, Users as Le, X as Re, ZoomIn as ze, ZoomOut as Be } from "lucide-react";
|
|
4
4
|
import { clsx as G } from "clsx";
|
|
5
5
|
import { twMerge as K } from "tailwind-merge";
|
|
6
6
|
import { Fragment as q, jsx as J, jsxs as Y } from "react/jsx-runtime";
|
|
7
|
-
import { isValidAppName as
|
|
8
|
-
import { resolveI18nLabel as
|
|
9
|
-
import {
|
|
10
|
-
import { ObjectGrid as
|
|
11
|
-
import { DrawerForm as
|
|
12
|
-
import { useNavigate as
|
|
13
|
-
import { toast as
|
|
14
|
-
import { MetadataClient as
|
|
7
|
+
import { DESIGNER_FIELD_TYPES as Ve, isValidAppName as He, wizardDraftToAppSchema as Ue } from "@object-ui/types";
|
|
8
|
+
import { resolveI18nLabel as We, useAdapter as Ge, useMetadata as Ke } from "@object-ui/react";
|
|
9
|
+
import { createSafeTranslation as qe } from "@object-ui/i18n";
|
|
10
|
+
import { ObjectGrid as Je } from "@object-ui/plugin-grid";
|
|
11
|
+
import { DrawerForm as Ye, ModalForm as Xe } from "@object-ui/plugin-form";
|
|
12
|
+
import { useNavigate as Ze, useParams as Qe } from "react-router-dom";
|
|
13
|
+
import { toast as $e } from "sonner";
|
|
14
|
+
import { MetadataClient as et } from "@object-ui/data-objectstack";
|
|
15
15
|
//#region src/hooks/useUndoRedo.ts
|
|
16
|
-
function
|
|
16
|
+
function tt(e) {
|
|
17
17
|
return e || (typeof window < "u" && window.sessionStorage ? window.sessionStorage : null);
|
|
18
18
|
}
|
|
19
|
-
function
|
|
20
|
-
let { maxHistory: n = 50, persistKey: r, storage: a } = t, s =
|
|
19
|
+
function nt(e, t = {}) {
|
|
20
|
+
let { maxHistory: n = 50, persistKey: r, storage: a } = t, s = tt(a), u = (() => {
|
|
21
21
|
if (!r || !s) return null;
|
|
22
22
|
try {
|
|
23
23
|
let e = s.getItem(r);
|
|
@@ -93,7 +93,7 @@ function et(e, t = {}) {
|
|
|
93
93
|
}
|
|
94
94
|
//#endregion
|
|
95
95
|
//#region src/hooks/useConfirmDialog.ts
|
|
96
|
-
function
|
|
96
|
+
function rt() {
|
|
97
97
|
let [e, t] = l(!1), [n, r] = l(""), [a, o] = l(""), s = c(null);
|
|
98
98
|
return {
|
|
99
99
|
isOpen: e,
|
|
@@ -112,7 +112,7 @@ function tt() {
|
|
|
112
112
|
}
|
|
113
113
|
//#endregion
|
|
114
114
|
//#region src/hooks/useMultiSelect.ts
|
|
115
|
-
function
|
|
115
|
+
function it() {
|
|
116
116
|
let [e, t] = l(/* @__PURE__ */ new Set());
|
|
117
117
|
return {
|
|
118
118
|
selectedIds: e,
|
|
@@ -137,7 +137,7 @@ function nt() {
|
|
|
137
137
|
}
|
|
138
138
|
//#endregion
|
|
139
139
|
//#region src/hooks/useClipboard.ts
|
|
140
|
-
function
|
|
140
|
+
function at() {
|
|
141
141
|
let [e, t] = l(null);
|
|
142
142
|
return {
|
|
143
143
|
clipboard: e,
|
|
@@ -150,7 +150,7 @@ function rt() {
|
|
|
150
150
|
}
|
|
151
151
|
//#endregion
|
|
152
152
|
//#region src/hooks/useCanvasPanZoom.ts
|
|
153
|
-
function
|
|
153
|
+
function ot(e = {}) {
|
|
154
154
|
let { minZoom: t = .25, maxZoom: n = 3, zoomStep: r = .1, initialZoom: a = 1 } = e, [o, s] = l(a), [u, d] = l({
|
|
155
155
|
x: 0,
|
|
156
156
|
y: 0
|
|
@@ -207,10 +207,10 @@ function it(e = {}) {
|
|
|
207
207
|
}
|
|
208
208
|
//#endregion
|
|
209
209
|
//#region src/components/ConfirmDialog.tsx
|
|
210
|
-
function
|
|
210
|
+
function st(...e) {
|
|
211
211
|
return K(G(e));
|
|
212
212
|
}
|
|
213
|
-
function
|
|
213
|
+
function ct({ isOpen: e, title: t, message: n, confirmLabel: r = "Delete", cancelLabel: i = "Cancel", destructive: a = !0, onConfirm: s, onCancel: l }) {
|
|
214
214
|
let d = c(null);
|
|
215
215
|
return o(() => {
|
|
216
216
|
let t = d.current;
|
|
@@ -248,7 +248,7 @@ function ot({ isOpen: e, title: t, message: n, confirmLabel: r = "Delete", cance
|
|
|
248
248
|
children: i
|
|
249
249
|
}), /* @__PURE__ */ J("button", {
|
|
250
250
|
onClick: s,
|
|
251
|
-
className:
|
|
251
|
+
className: st("px-4 py-2 text-sm rounded-md font-medium", a ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : "bg-primary text-primary-foreground hover:bg-primary/90"),
|
|
252
252
|
autoFocus: !0,
|
|
253
253
|
children: r
|
|
254
254
|
})]
|
|
@@ -259,10 +259,10 @@ function ot({ isOpen: e, title: t, message: n, confirmLabel: r = "Delete", cance
|
|
|
259
259
|
}
|
|
260
260
|
//#endregion
|
|
261
261
|
//#region src/components/PropertyEditor.tsx
|
|
262
|
-
function
|
|
262
|
+
function lt(...e) {
|
|
263
263
|
return K(G(e));
|
|
264
264
|
}
|
|
265
|
-
function
|
|
265
|
+
function ut({ title: e = "Properties", fields: t, onChange: n, className: r }) {
|
|
266
266
|
let [a, o] = l(/* @__PURE__ */ new Set()), s = i((e) => {
|
|
267
267
|
o((t) => {
|
|
268
268
|
let n = new Set(t);
|
|
@@ -273,7 +273,7 @@ function ct({ title: e = "Properties", fields: t, onChange: n, className: r }) {
|
|
|
273
273
|
return e[n] || (e[n] = []), e[n].push(t), e;
|
|
274
274
|
}, {});
|
|
275
275
|
return /* @__PURE__ */ Y("div", {
|
|
276
|
-
className:
|
|
276
|
+
className: lt("flex flex-col", r),
|
|
277
277
|
role: "region",
|
|
278
278
|
"aria-label": e,
|
|
279
279
|
children: [/* @__PURE__ */ J("div", {
|
|
@@ -289,7 +289,7 @@ function ct({ title: e = "Properties", fields: t, onChange: n, className: r }) {
|
|
|
289
289
|
children: [a.has(e) ? /* @__PURE__ */ J(v, { className: "h-3 w-3" }) : /* @__PURE__ */ J(g, { className: "h-3 w-3" }), e]
|
|
290
290
|
}), !a.has(e) && /* @__PURE__ */ J("div", {
|
|
291
291
|
className: "px-3 pb-2 space-y-2",
|
|
292
|
-
children: t.map((e) => /* @__PURE__ */ J(
|
|
292
|
+
children: t.map((e) => /* @__PURE__ */ J(dt, {
|
|
293
293
|
field: e,
|
|
294
294
|
onChange: n
|
|
295
295
|
}, e.name))
|
|
@@ -301,7 +301,7 @@ function ct({ title: e = "Properties", fields: t, onChange: n, className: r }) {
|
|
|
301
301
|
})]
|
|
302
302
|
});
|
|
303
303
|
}
|
|
304
|
-
function
|
|
304
|
+
function dt({ field: e, onChange: t }) {
|
|
305
305
|
let n = (n) => {
|
|
306
306
|
t(e.name, n);
|
|
307
307
|
};
|
|
@@ -372,13 +372,13 @@ function lt({ field: e, onChange: t }) {
|
|
|
372
372
|
}
|
|
373
373
|
//#endregion
|
|
374
374
|
//#region src/components/Minimap.tsx
|
|
375
|
-
function
|
|
375
|
+
function ft(...e) {
|
|
376
376
|
return K(G(e));
|
|
377
377
|
}
|
|
378
|
-
function
|
|
378
|
+
function pt({ items: e, canvasWidth: t, canvasHeight: n, position: r = "bottom-right", size: i = 150, className: a }) {
|
|
379
379
|
let o = Math.min(i / t, i / n), s = t * o, c = n * o;
|
|
380
380
|
return /* @__PURE__ */ J("div", {
|
|
381
|
-
className:
|
|
381
|
+
className: ft("absolute border rounded bg-background/90 shadow-sm overflow-hidden", {
|
|
382
382
|
"top-left": "top-2 left-2",
|
|
383
383
|
"top-right": "top-2 right-2",
|
|
384
384
|
"bottom-left": "bottom-2 left-2",
|
|
@@ -408,12 +408,12 @@ function dt({ items: e, canvasWidth: t, canvasHeight: n, position: r = "bottom-r
|
|
|
408
408
|
}
|
|
409
409
|
//#endregion
|
|
410
410
|
//#region src/CollaborationProvider.tsx
|
|
411
|
-
function
|
|
411
|
+
function mt(...e) {
|
|
412
412
|
return K(G(e));
|
|
413
413
|
}
|
|
414
|
-
var
|
|
415
|
-
|
|
416
|
-
function
|
|
414
|
+
var ht = r(null);
|
|
415
|
+
ht.displayName = "CollaborationContext";
|
|
416
|
+
function gt({ config: e, user: t, onOperation: n, onPresenceChange: r, children: a }) {
|
|
417
417
|
let u = c(null), [d, f] = l([]), [p, m] = l("disconnected"), h = c(0), g = c(null);
|
|
418
418
|
o(() => {
|
|
419
419
|
if (!e.enabled || !t || !e.serverUrl || !(typeof WebSocket < "u")) return;
|
|
@@ -463,7 +463,7 @@ function mt({ config: e, user: t, onOperation: n, onPresenceChange: r, children:
|
|
|
463
463
|
userId: t.id,
|
|
464
464
|
userName: t.name,
|
|
465
465
|
avatar: t.avatar,
|
|
466
|
-
color:
|
|
466
|
+
color: yt(t.id),
|
|
467
467
|
status: "active",
|
|
468
468
|
lastActivity: (/* @__PURE__ */ new Date()).toISOString()
|
|
469
469
|
}, ...d], [
|
|
@@ -502,16 +502,16 @@ function mt({ config: e, user: t, onOperation: n, onPresenceChange: r, children:
|
|
|
502
502
|
t?.id,
|
|
503
503
|
p
|
|
504
504
|
]);
|
|
505
|
-
return /* @__PURE__ */ J(
|
|
505
|
+
return /* @__PURE__ */ J(ht.Provider, {
|
|
506
506
|
value: b,
|
|
507
507
|
children: a
|
|
508
508
|
});
|
|
509
509
|
}
|
|
510
|
-
function
|
|
511
|
-
return a(
|
|
510
|
+
function _t() {
|
|
511
|
+
return a(ht);
|
|
512
512
|
}
|
|
513
|
-
function
|
|
514
|
-
let t = a(
|
|
513
|
+
function vt({ className: e }) {
|
|
514
|
+
let t = a(ht);
|
|
515
515
|
if (!t) return null;
|
|
516
516
|
let { connectionState: n, users: r } = t, i = {
|
|
517
517
|
connected: {
|
|
@@ -532,7 +532,7 @@ function gt({ className: e }) {
|
|
|
532
532
|
}
|
|
533
533
|
}, { color: o, label: s } = i[n] ?? i.disconnected;
|
|
534
534
|
return /* @__PURE__ */ Y("div", {
|
|
535
|
-
className:
|
|
535
|
+
className: mt("flex items-center gap-2 text-xs", e),
|
|
536
536
|
role: "status",
|
|
537
537
|
"aria-live": "polite",
|
|
538
538
|
"aria-label": `Collaboration: ${s}`,
|
|
@@ -550,7 +550,7 @@ function gt({ className: e }) {
|
|
|
550
550
|
]
|
|
551
551
|
});
|
|
552
552
|
}
|
|
553
|
-
function
|
|
553
|
+
function yt(e) {
|
|
554
554
|
let t = [
|
|
555
555
|
"#3b82f6",
|
|
556
556
|
"#ef4444",
|
|
@@ -577,19 +577,19 @@ function _t(e) {
|
|
|
577
577
|
function X(...e) {
|
|
578
578
|
return K(G(e));
|
|
579
579
|
}
|
|
580
|
-
function
|
|
580
|
+
function bt({ canvas: e = {
|
|
581
581
|
width: 1200,
|
|
582
582
|
height: 800,
|
|
583
583
|
gridSize: 8,
|
|
584
584
|
showGrid: !0,
|
|
585
585
|
snapToGrid: !0
|
|
586
|
-
}, components: t = [], palette: n =
|
|
587
|
-
let h =
|
|
586
|
+
}, components: t = [], palette: n = xt, showComponentTree: r = !0, undoRedo: a = !0, propertyEditor: u = !0, readOnly: d = !1, showMinimap: f = !1, onChange: p, className: m }) {
|
|
587
|
+
let h = nt(t), g = h.current, _ = i((e) => {
|
|
588
588
|
h.push(e), p?.(e);
|
|
589
|
-
}, [h, p]), v =
|
|
589
|
+
}, [h, p]), v = ot({ initialZoom: e.zoom ?? 1 }), { zoom: y } = v, x = it(), S = s(() => {
|
|
590
590
|
let e = Array.from(x.selectedIds);
|
|
591
591
|
return e.length > 0 ? e[0] : null;
|
|
592
|
-
}, [x.selectedIds]), C = s(() => g.find((e) => e.id === S), [g, S]), T =
|
|
592
|
+
}, [x.selectedIds]), C = s(() => g.find((e) => e.id === S), [g, S]), T = at(), E = rt(), D = _t(), k = i((e) => {
|
|
593
593
|
D && D.sendOperation({
|
|
594
594
|
...e,
|
|
595
595
|
userId: D.currentUserId ?? ""
|
|
@@ -909,7 +909,7 @@ function vt({ canvas: e = {
|
|
|
909
909
|
"aria-label": "Undo",
|
|
910
910
|
disabled: !h.canUndo,
|
|
911
911
|
onClick: () => h.undo(),
|
|
912
|
-
children: /* @__PURE__ */ J(
|
|
912
|
+
children: /* @__PURE__ */ J(Pe, { className: "h-4 w-4" })
|
|
913
913
|
}),
|
|
914
914
|
/* @__PURE__ */ J("button", {
|
|
915
915
|
className: X("p-1.5 rounded hover:bg-accent", !h.canRedo && "opacity-40 pointer-events-none"),
|
|
@@ -917,7 +917,7 @@ function vt({ canvas: e = {
|
|
|
917
917
|
"aria-label": "Redo",
|
|
918
918
|
disabled: !h.canRedo,
|
|
919
919
|
onClick: () => h.redo(),
|
|
920
|
-
children: /* @__PURE__ */ J(
|
|
920
|
+
children: /* @__PURE__ */ J(Se, { className: "h-4 w-4" })
|
|
921
921
|
}),
|
|
922
922
|
/* @__PURE__ */ J("div", { className: "w-px h-5 bg-border mx-1" })
|
|
923
923
|
] }),
|
|
@@ -946,7 +946,7 @@ function vt({ canvas: e = {
|
|
|
946
946
|
"aria-label": "Delete selected",
|
|
947
947
|
disabled: x.count === 0,
|
|
948
948
|
onClick: ne,
|
|
949
|
-
children: /* @__PURE__ */ J(
|
|
949
|
+
children: /* @__PURE__ */ J(je, { className: "h-4 w-4" })
|
|
950
950
|
}),
|
|
951
951
|
/* @__PURE__ */ J("button", {
|
|
952
952
|
className: "p-1.5 rounded hover:bg-accent",
|
|
@@ -1041,7 +1041,7 @@ function vt({ canvas: e = {
|
|
|
1041
1041
|
},
|
|
1042
1042
|
className: "ml-auto p-0.5 rounded hover:bg-destructive/10",
|
|
1043
1043
|
"aria-label": `Delete ${e.label ?? e.type}`,
|
|
1044
|
-
children: /* @__PURE__ */ J(
|
|
1044
|
+
children: /* @__PURE__ */ J(je, { className: "h-3 w-3 text-destructive" })
|
|
1045
1045
|
})
|
|
1046
1046
|
]
|
|
1047
1047
|
}), /* @__PURE__ */ J("div", {
|
|
@@ -1049,7 +1049,7 @@ function vt({ canvas: e = {
|
|
|
1049
1049
|
children: e.type
|
|
1050
1050
|
})]
|
|
1051
1051
|
}, e.id);
|
|
1052
|
-
}), P && /* @__PURE__ */ J(
|
|
1052
|
+
}), P && /* @__PURE__ */ J(pt, {
|
|
1053
1053
|
items: de,
|
|
1054
1054
|
canvasWidth: e.width,
|
|
1055
1055
|
canvasHeight: e.height
|
|
@@ -1082,7 +1082,7 @@ function vt({ canvas: e = {
|
|
|
1082
1082
|
}),
|
|
1083
1083
|
u && C ? /* @__PURE__ */ J("div", {
|
|
1084
1084
|
className: "border-t",
|
|
1085
|
-
children: /* @__PURE__ */ J(
|
|
1085
|
+
children: /* @__PURE__ */ J(ut, {
|
|
1086
1086
|
title: `Properties – ${C.label ?? C.type}`,
|
|
1087
1087
|
fields: ce,
|
|
1088
1088
|
onChange: re
|
|
@@ -1116,7 +1116,7 @@ function vt({ canvas: e = {
|
|
|
1116
1116
|
})
|
|
1117
1117
|
] })
|
|
1118
1118
|
}),
|
|
1119
|
-
/* @__PURE__ */ J(
|
|
1119
|
+
/* @__PURE__ */ J(ct, {
|
|
1120
1120
|
isOpen: E.isOpen,
|
|
1121
1121
|
title: E.title,
|
|
1122
1122
|
message: E.message,
|
|
@@ -1126,7 +1126,7 @@ function vt({ canvas: e = {
|
|
|
1126
1126
|
]
|
|
1127
1127
|
});
|
|
1128
1128
|
}
|
|
1129
|
-
var
|
|
1129
|
+
var xt = [
|
|
1130
1130
|
{
|
|
1131
1131
|
name: "layout",
|
|
1132
1132
|
label: "Layout",
|
|
@@ -1260,15 +1260,15 @@ var yt = [
|
|
|
1260
1260
|
];
|
|
1261
1261
|
//#endregion
|
|
1262
1262
|
//#region src/hooks/useDesignerHistory.ts
|
|
1263
|
-
function
|
|
1264
|
-
return
|
|
1263
|
+
function St(e, t = {}) {
|
|
1264
|
+
return nt(e, t);
|
|
1265
1265
|
}
|
|
1266
1266
|
//#endregion
|
|
1267
1267
|
//#region src/DataModelDesigner.tsx
|
|
1268
|
-
function
|
|
1268
|
+
function Ct(...e) {
|
|
1269
1269
|
return K(G(e));
|
|
1270
1270
|
}
|
|
1271
|
-
var
|
|
1271
|
+
var wt = [
|
|
1272
1272
|
"text",
|
|
1273
1273
|
"number",
|
|
1274
1274
|
"boolean",
|
|
@@ -1292,7 +1292,7 @@ var St = [
|
|
|
1292
1292
|
"formula",
|
|
1293
1293
|
"autonumber"
|
|
1294
1294
|
];
|
|
1295
|
-
function
|
|
1295
|
+
function Tt(e, t = 4, n = 280, r = 250, i = 50, a = 50) {
|
|
1296
1296
|
return e.map((e, o) => ({
|
|
1297
1297
|
...e,
|
|
1298
1298
|
position: {
|
|
@@ -1301,12 +1301,12 @@ function Ct(e, t = 4, n = 280, r = 250, i = 50, a = 50) {
|
|
|
1301
1301
|
}
|
|
1302
1302
|
}));
|
|
1303
1303
|
}
|
|
1304
|
-
function
|
|
1304
|
+
function Et({ entities: e = [], relationships: t = [], canvas: n = {
|
|
1305
1305
|
width: 1200,
|
|
1306
1306
|
height: 800,
|
|
1307
1307
|
showGrid: !0
|
|
1308
1308
|
}, showRelationshipLabels: r = !0, readOnly: a = !1, onEntitiesChange: s, onRelationshipsChange: u, className: d }) {
|
|
1309
|
-
let f = c(null), p =
|
|
1309
|
+
let f = c(null), p = St({
|
|
1310
1310
|
entities: e,
|
|
1311
1311
|
relationships: t
|
|
1312
1312
|
}, { maxHistory: 50 }), { entities: m, relationships: h } = p.current, _ = i((e) => {
|
|
@@ -1315,11 +1315,11 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1315
1315
|
p,
|
|
1316
1316
|
s,
|
|
1317
1317
|
u
|
|
1318
|
-
]), y =
|
|
1318
|
+
]), y = rt(), x = it(), S = x.count > 0 ? Array.from(x.selectedIds)[0] : null, C = at(), E = ot({
|
|
1319
1319
|
minZoom: .25,
|
|
1320
1320
|
maxZoom: 3,
|
|
1321
1321
|
zoomStep: .1
|
|
1322
|
-
}), D =
|
|
1322
|
+
}), D = _t(), [O, k] = l(!0), [A, j] = l(!0), [M, N] = l(null), [F, I] = l(""), [L, R] = l(null), [z, ee] = l(""), B = c(null), te = i(() => {
|
|
1323
1323
|
if (a) return;
|
|
1324
1324
|
let e = p.current, t = {
|
|
1325
1325
|
id: `entity-${Date.now()}`,
|
|
@@ -1406,7 +1406,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1406
1406
|
]), ie = i(() => {
|
|
1407
1407
|
if (a) return;
|
|
1408
1408
|
let e = p.current, t = {
|
|
1409
|
-
entities:
|
|
1409
|
+
entities: Tt(e.entities),
|
|
1410
1410
|
relationships: e.relationships
|
|
1411
1411
|
};
|
|
1412
1412
|
_(t);
|
|
@@ -1673,7 +1673,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1673
1673
|
return /* @__PURE__ */ Y("div", {
|
|
1674
1674
|
ref: f,
|
|
1675
1675
|
tabIndex: 0,
|
|
1676
|
-
className:
|
|
1676
|
+
className: Ct("flex h-full w-full border rounded-lg overflow-hidden bg-background", d),
|
|
1677
1677
|
children: [
|
|
1678
1678
|
/* @__PURE__ */ Y("div", {
|
|
1679
1679
|
className: "flex flex-col flex-1 min-w-0",
|
|
@@ -1695,14 +1695,14 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1695
1695
|
"aria-label": "Undo",
|
|
1696
1696
|
title: "Undo (Ctrl+Z)",
|
|
1697
1697
|
className: "p-1 rounded hover:bg-accent disabled:opacity-40",
|
|
1698
|
-
children: /* @__PURE__ */ J(
|
|
1698
|
+
children: /* @__PURE__ */ J(Pe, { className: "h-3.5 w-3.5" })
|
|
1699
1699
|
}), /* @__PURE__ */ J("button", {
|
|
1700
1700
|
onClick: () => p.redo(),
|
|
1701
1701
|
disabled: !p.canRedo,
|
|
1702
1702
|
"aria-label": "Redo",
|
|
1703
1703
|
title: "Redo (Ctrl+Y)",
|
|
1704
1704
|
className: "p-1 rounded hover:bg-accent disabled:opacity-40",
|
|
1705
|
-
children: /* @__PURE__ */ J(
|
|
1705
|
+
children: /* @__PURE__ */ J(Se, { className: "h-3.5 w-3.5" })
|
|
1706
1706
|
})]
|
|
1707
1707
|
}),
|
|
1708
1708
|
/* @__PURE__ */ Y("div", {
|
|
@@ -1713,7 +1713,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1713
1713
|
"aria-label": "Zoom Out",
|
|
1714
1714
|
title: "Zoom Out",
|
|
1715
1715
|
className: "p-1 rounded hover:bg-accent",
|
|
1716
|
-
children: /* @__PURE__ */ J(
|
|
1716
|
+
children: /* @__PURE__ */ J(Be, { className: "h-3.5 w-3.5" })
|
|
1717
1717
|
}),
|
|
1718
1718
|
/* @__PURE__ */ Y("span", {
|
|
1719
1719
|
className: "text-xs tabular-nums w-10 text-center",
|
|
@@ -1724,14 +1724,14 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1724
1724
|
"aria-label": "Zoom In",
|
|
1725
1725
|
title: "Zoom In",
|
|
1726
1726
|
className: "p-1 rounded hover:bg-accent",
|
|
1727
|
-
children: /* @__PURE__ */ J(
|
|
1727
|
+
children: /* @__PURE__ */ J(ze, { className: "h-3.5 w-3.5" })
|
|
1728
1728
|
}),
|
|
1729
1729
|
/* @__PURE__ */ J("button", {
|
|
1730
1730
|
onClick: E.resetZoom,
|
|
1731
1731
|
"aria-label": "Reset Zoom",
|
|
1732
1732
|
title: "Reset Zoom",
|
|
1733
1733
|
className: "p-1 rounded hover:bg-accent",
|
|
1734
|
-
children: /* @__PURE__ */ J(
|
|
1734
|
+
children: /* @__PURE__ */ J(Ce, { className: "h-3 w-3" })
|
|
1735
1735
|
})
|
|
1736
1736
|
]
|
|
1737
1737
|
}),
|
|
@@ -1765,7 +1765,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1765
1765
|
className: "flex items-center gap-1 text-xs text-muted-foreground",
|
|
1766
1766
|
role: "status",
|
|
1767
1767
|
"aria-label": "Collaboration active",
|
|
1768
|
-
children: [/* @__PURE__ */ J(
|
|
1768
|
+
children: [/* @__PURE__ */ J(Le, { className: "h-3 w-3" }), /* @__PURE__ */ Y("span", { children: [
|
|
1769
1769
|
D.users.length,
|
|
1770
1770
|
" user",
|
|
1771
1771
|
D.users.length === 1 ? "" : "s"
|
|
@@ -1837,7 +1837,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1837
1837
|
"aria-label": e.label,
|
|
1838
1838
|
draggable: !a,
|
|
1839
1839
|
onDragStart: (t) => me(t, e.id),
|
|
1840
|
-
className:
|
|
1840
|
+
className: Ct("absolute rounded-lg border-2 bg-background shadow-sm w-60 select-none cursor-grab active:cursor-grabbing", x.isSelected(e.id) ? "border-primary ring-2 ring-primary/20" : "border-border hover:border-primary/50"),
|
|
1841
1841
|
style: {
|
|
1842
1842
|
left: e.position.x,
|
|
1843
1843
|
top: e.position.y
|
|
@@ -1876,7 +1876,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1876
1876
|
},
|
|
1877
1877
|
"aria-label": `Delete ${e.label}`,
|
|
1878
1878
|
className: "ml-auto p-0.5 rounded hover:bg-destructive/20",
|
|
1879
|
-
children: /* @__PURE__ */ J(
|
|
1879
|
+
children: /* @__PURE__ */ J(je, { className: "h-3 w-3 text-destructive" })
|
|
1880
1880
|
})
|
|
1881
1881
|
]
|
|
1882
1882
|
}),
|
|
@@ -1897,7 +1897,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1897
1897
|
autoFocus: !0,
|
|
1898
1898
|
onClick: (e) => e.stopPropagation()
|
|
1899
1899
|
}) : /* @__PURE__ */ Y("span", {
|
|
1900
|
-
className:
|
|
1900
|
+
className: Ct("font-mono cursor-text", t.primaryKey && "font-bold text-primary"),
|
|
1901
1901
|
onClick: (r) => {
|
|
1902
1902
|
r.stopPropagation(), se(e.id, n, t.name);
|
|
1903
1903
|
},
|
|
@@ -1918,7 +1918,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1918
1918
|
onClick: (e) => e.stopPropagation(),
|
|
1919
1919
|
className: "text-xs text-muted-foreground ml-auto bg-transparent border-none focus:ring-1 focus:ring-primary rounded cursor-pointer p-0",
|
|
1920
1920
|
"data-testid": `field-type-${e.id}-${n}`,
|
|
1921
|
-
children:
|
|
1921
|
+
children: wt.map((e) => /* @__PURE__ */ J("option", {
|
|
1922
1922
|
value: e,
|
|
1923
1923
|
children: e
|
|
1924
1924
|
}, e))
|
|
@@ -1944,7 +1944,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1944
1944
|
]
|
|
1945
1945
|
}, e.id))
|
|
1946
1946
|
]
|
|
1947
|
-
}), A && m.length > 0 && /* @__PURE__ */ J(
|
|
1947
|
+
}), A && m.length > 0 && /* @__PURE__ */ J(pt, {
|
|
1948
1948
|
items: ve,
|
|
1949
1949
|
canvasWidth: n.width,
|
|
1950
1950
|
canvasHeight: n.height,
|
|
@@ -1966,7 +1966,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1966
1966
|
}), O && /* @__PURE__ */ J("div", {
|
|
1967
1967
|
id: "property-editor-panel",
|
|
1968
1968
|
className: "flex-1 overflow-y-auto",
|
|
1969
|
-
children: /* @__PURE__ */ J(
|
|
1969
|
+
children: /* @__PURE__ */ J(ut, {
|
|
1970
1970
|
title: U ? U.label : "Properties",
|
|
1971
1971
|
fields: W,
|
|
1972
1972
|
onChange: _e
|
|
@@ -1982,7 +1982,7 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1982
1982
|
})
|
|
1983
1983
|
})]
|
|
1984
1984
|
}),
|
|
1985
|
-
/* @__PURE__ */ J(
|
|
1985
|
+
/* @__PURE__ */ J(ct, {
|
|
1986
1986
|
isOpen: y.isOpen,
|
|
1987
1987
|
title: y.title,
|
|
1988
1988
|
message: y.message,
|
|
@@ -1995,11 +1995,11 @@ function wt({ entities: e = [], relationships: t = [], canvas: n = {
|
|
|
1995
1995
|
}
|
|
1996
1996
|
//#endregion
|
|
1997
1997
|
//#region src/ProcessDesigner.tsx
|
|
1998
|
-
function
|
|
1998
|
+
function Dt(...e) {
|
|
1999
1999
|
return K(G(e));
|
|
2000
2000
|
}
|
|
2001
|
-
var
|
|
2002
|
-
function
|
|
2001
|
+
var Ot = 120, kt = 50;
|
|
2002
|
+
function At(e, t) {
|
|
2003
2003
|
if (e.length === 0) return e;
|
|
2004
2004
|
let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
|
|
2005
2005
|
for (let t of e) n.set(t.id, 0), r.set(t.id, []);
|
|
@@ -2027,12 +2027,12 @@ function Ot(e, t) {
|
|
|
2027
2027
|
position: c.get(e.id) ?? e.position
|
|
2028
2028
|
}));
|
|
2029
2029
|
}
|
|
2030
|
-
function
|
|
2030
|
+
function jt({ processName: e = "New Process", nodes: t = [], edges: n = [], lanes: r, canvas: a = {
|
|
2031
2031
|
width: 1400,
|
|
2032
2032
|
height: 800,
|
|
2033
2033
|
showGrid: !0
|
|
2034
2034
|
}, showMinimap: u = !0, showToolbar: d = !0, readOnly: f = !1, onNodesChange: p, onEdgesChange: m, className: h }) {
|
|
2035
|
-
let g =
|
|
2035
|
+
let g = nt({
|
|
2036
2036
|
nodes: t,
|
|
2037
2037
|
edges: n
|
|
2038
2038
|
}, { maxHistory: 50 }), _ = g.current.nodes, v = g.current.edges, y = i((e, t) => {
|
|
@@ -2044,7 +2044,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2044
2044
|
g,
|
|
2045
2045
|
p,
|
|
2046
2046
|
m
|
|
2047
|
-
]), x =
|
|
2047
|
+
]), x = rt(), S = it(), C = at(), T = ot({ initialZoom: 1 }), D = _t(), [O, k] = l(null), [A, j] = l(!1), [N, P] = l(null), [F, I] = l(null), [L, R] = l(!0), [z, ee] = l(null), [te, ne] = l({
|
|
2048
2048
|
x: 0,
|
|
2049
2049
|
y: 0
|
|
2050
2050
|
}), re = c(null), ie = c(p), ae = c(m);
|
|
@@ -2165,7 +2165,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2165
2165
|
D
|
|
2166
2166
|
]), fe = i(() => {
|
|
2167
2167
|
if (f || _.length === 0) return;
|
|
2168
|
-
let e =
|
|
2168
|
+
let e = At(_, v);
|
|
2169
2169
|
y(e, v);
|
|
2170
2170
|
}, [
|
|
2171
2171
|
_,
|
|
@@ -2283,12 +2283,12 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2283
2283
|
case "script-task": return "rounded bg-purple-100 border-purple-500 text-purple-700";
|
|
2284
2284
|
default: return "rounded bg-gray-100 border-gray-500 text-gray-700";
|
|
2285
2285
|
}
|
|
2286
|
-
},
|
|
2286
|
+
}, xe = s(() => _.map((e) => ({
|
|
2287
2287
|
id: e.id,
|
|
2288
2288
|
x: e.position.x,
|
|
2289
2289
|
y: e.position.y,
|
|
2290
|
-
width:
|
|
2291
|
-
height:
|
|
2290
|
+
width: Ot,
|
|
2291
|
+
height: kt,
|
|
2292
2292
|
selected: S.isSelected(e.id) || e.id === O
|
|
2293
2293
|
})), [
|
|
2294
2294
|
_,
|
|
@@ -2344,9 +2344,9 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2344
2344
|
return /* @__PURE__ */ Y("div", {
|
|
2345
2345
|
ref: re,
|
|
2346
2346
|
tabIndex: 0,
|
|
2347
|
-
className:
|
|
2347
|
+
className: Dt("flex flex-col h-full w-full border rounded-lg overflow-hidden bg-background", h),
|
|
2348
2348
|
children: [
|
|
2349
|
-
/* @__PURE__ */ J(
|
|
2349
|
+
/* @__PURE__ */ J(ct, {
|
|
2350
2350
|
isOpen: x.isOpen,
|
|
2351
2351
|
title: x.title,
|
|
2352
2352
|
message: x.message,
|
|
@@ -2386,7 +2386,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2386
2386
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent disabled:opacity-40",
|
|
2387
2387
|
title: "Undo (Ctrl+Z)",
|
|
2388
2388
|
"aria-label": "Undo",
|
|
2389
|
-
children: /* @__PURE__ */ J(
|
|
2389
|
+
children: /* @__PURE__ */ J(Pe, { className: "h-3 w-3" })
|
|
2390
2390
|
}),
|
|
2391
2391
|
/* @__PURE__ */ J("button", {
|
|
2392
2392
|
onClick: () => g.redo(),
|
|
@@ -2394,7 +2394,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2394
2394
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent disabled:opacity-40",
|
|
2395
2395
|
title: "Redo (Ctrl+Y)",
|
|
2396
2396
|
"aria-label": "Redo",
|
|
2397
|
-
children: /* @__PURE__ */ J(
|
|
2397
|
+
children: /* @__PURE__ */ J(Se, { className: "h-3 w-3" })
|
|
2398
2398
|
}),
|
|
2399
2399
|
/* @__PURE__ */ J("div", { className: "w-px h-4 bg-border mx-1" }),
|
|
2400
2400
|
/* @__PURE__ */ J("button", {
|
|
@@ -2416,7 +2416,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2416
2416
|
/* @__PURE__ */ J("div", { className: "w-px h-4 bg-border mx-1" }),
|
|
2417
2417
|
/* @__PURE__ */ Y("button", {
|
|
2418
2418
|
onClick: ue,
|
|
2419
|
-
className:
|
|
2419
|
+
className: Dt("flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent", A && "bg-primary text-primary-foreground"),
|
|
2420
2420
|
title: "Connect nodes",
|
|
2421
2421
|
"aria-label": "Connect nodes",
|
|
2422
2422
|
"aria-pressed": A,
|
|
@@ -2435,7 +2435,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2435
2435
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent",
|
|
2436
2436
|
title: "Zoom in",
|
|
2437
2437
|
"aria-label": "Zoom in",
|
|
2438
|
-
children: /* @__PURE__ */ J(
|
|
2438
|
+
children: /* @__PURE__ */ J(ze, { className: "h-3 w-3" })
|
|
2439
2439
|
}),
|
|
2440
2440
|
/* @__PURE__ */ Y("span", {
|
|
2441
2441
|
className: "text-xs tabular-nums min-w-[3ch] text-center",
|
|
@@ -2447,14 +2447,14 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2447
2447
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent",
|
|
2448
2448
|
title: "Zoom out",
|
|
2449
2449
|
"aria-label": "Zoom out",
|
|
2450
|
-
children: /* @__PURE__ */ J(
|
|
2450
|
+
children: /* @__PURE__ */ J(Be, { className: "h-3 w-3" })
|
|
2451
2451
|
}),
|
|
2452
2452
|
/* @__PURE__ */ J("button", {
|
|
2453
2453
|
onClick: T.resetZoom,
|
|
2454
2454
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent",
|
|
2455
2455
|
title: "Reset zoom",
|
|
2456
2456
|
"aria-label": "Reset zoom",
|
|
2457
|
-
children: /* @__PURE__ */ J(
|
|
2457
|
+
children: /* @__PURE__ */ J(Ce, { className: "h-3 w-3" })
|
|
2458
2458
|
}),
|
|
2459
2459
|
/* @__PURE__ */ J("div", { className: "w-px h-4 bg-border mx-1" }),
|
|
2460
2460
|
/* @__PURE__ */ Y("button", {
|
|
@@ -2469,7 +2469,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2469
2469
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent",
|
|
2470
2470
|
title: "Add User Task",
|
|
2471
2471
|
"aria-label": "Add User Task",
|
|
2472
|
-
children: [/* @__PURE__ */ J(
|
|
2472
|
+
children: [/* @__PURE__ */ J(Ee, { className: "h-3 w-3 text-blue-600" }), " Task"]
|
|
2473
2473
|
}),
|
|
2474
2474
|
/* @__PURE__ */ Y("button", {
|
|
2475
2475
|
onClick: () => H("exclusive-gateway", "Decision"),
|
|
@@ -2483,7 +2483,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2483
2483
|
className: "flex items-center gap-1 px-2 py-1 text-xs rounded hover:bg-accent",
|
|
2484
2484
|
title: "Add End Event",
|
|
2485
2485
|
"aria-label": "Add End Event",
|
|
2486
|
-
children: [/* @__PURE__ */ J(
|
|
2486
|
+
children: [/* @__PURE__ */ J(Ee, { className: "h-3 w-3 text-red-600" }), " End"]
|
|
2487
2487
|
}),
|
|
2488
2488
|
/* @__PURE__ */ J("div", { className: "w-px h-4 bg-border mx-1" }),
|
|
2489
2489
|
/* @__PURE__ */ J("button", {
|
|
@@ -2537,10 +2537,10 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2537
2537
|
}) }), v.map((e) => {
|
|
2538
2538
|
let t = _.find((t) => t.id === e.source), n = _.find((t) => t.id === e.target);
|
|
2539
2539
|
if (!t || !n) return null;
|
|
2540
|
-
t.position.x +
|
|
2541
|
-
let r = t.position.y +
|
|
2542
|
-
n.position.x +
|
|
2543
|
-
let i = n.position.y +
|
|
2540
|
+
t.position.x + Ot / 2;
|
|
2541
|
+
let r = t.position.y + kt / 2;
|
|
2542
|
+
n.position.x + Ot / 2;
|
|
2543
|
+
let i = n.position.y + kt / 2, a = t.position.x + Ot, o = r, s = n.position.x, c = i;
|
|
2544
2544
|
return /* @__PURE__ */ Y("g", { children: [/* @__PURE__ */ J("path", {
|
|
2545
2545
|
d: `M ${a} ${o} Q ${(a + s) / 2} ${o}, ${(a + s) / 2} ${(o + c) / 2} T ${s} ${c}`,
|
|
2546
2546
|
fill: "none",
|
|
@@ -2579,9 +2579,9 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2579
2579
|
},
|
|
2580
2580
|
children: [
|
|
2581
2581
|
/* @__PURE__ */ J("div", {
|
|
2582
|
-
className:
|
|
2582
|
+
className: Dt("flex items-center justify-center border-2 min-w-[120px] min-h-[50px] px-3 py-2 transition-shadow", be(e.type), t && "ring-2 ring-primary shadow-md", n && "ring-2 ring-blue-400 shadow-lg", A && !n && "cursor-crosshair"),
|
|
2583
2583
|
children: /* @__PURE__ */ J("span", {
|
|
2584
|
-
className:
|
|
2584
|
+
className: Dt("text-xs font-medium", (e.type === "exclusive-gateway" || e.type === "parallel-gateway" || e.type === "inclusive-gateway" || e.type === "event-based-gateway") && "-rotate-45"),
|
|
2585
2585
|
children: e.label
|
|
2586
2586
|
})
|
|
2587
2587
|
}),
|
|
@@ -2590,7 +2590,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2590
2590
|
className: "absolute w-3 h-3 rounded-full bg-blue-500 border-2 border-white shadow cursor-crosshair",
|
|
2591
2591
|
style: {
|
|
2592
2592
|
left: -6,
|
|
2593
|
-
top:
|
|
2593
|
+
top: kt / 2 - 6
|
|
2594
2594
|
},
|
|
2595
2595
|
title: "Input port",
|
|
2596
2596
|
onClick: (t) => {
|
|
@@ -2601,7 +2601,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2601
2601
|
className: "absolute w-3 h-3 rounded-full bg-blue-500 border-2 border-white shadow cursor-crosshair",
|
|
2602
2602
|
style: {
|
|
2603
2603
|
right: -6,
|
|
2604
|
-
top:
|
|
2604
|
+
top: kt / 2 - 6
|
|
2605
2605
|
},
|
|
2606
2606
|
title: "Output port",
|
|
2607
2607
|
onClick: (t) => {
|
|
@@ -2611,7 +2611,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2611
2611
|
/* @__PURE__ */ J("div", {
|
|
2612
2612
|
className: "absolute w-3 h-3 rounded-full bg-blue-400 border-2 border-white shadow cursor-crosshair",
|
|
2613
2613
|
style: {
|
|
2614
|
-
left:
|
|
2614
|
+
left: Ot / 2 - 6,
|
|
2615
2615
|
top: -6
|
|
2616
2616
|
},
|
|
2617
2617
|
title: "Port",
|
|
@@ -2622,7 +2622,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2622
2622
|
/* @__PURE__ */ J("div", {
|
|
2623
2623
|
className: "absolute w-3 h-3 rounded-full bg-blue-400 border-2 border-white shadow cursor-crosshair",
|
|
2624
2624
|
style: {
|
|
2625
|
-
left:
|
|
2625
|
+
left: Ot / 2 - 6,
|
|
2626
2626
|
bottom: -6
|
|
2627
2627
|
},
|
|
2628
2628
|
title: "Port",
|
|
@@ -2637,13 +2637,13 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2637
2637
|
},
|
|
2638
2638
|
className: "absolute -top-2 -right-2 p-0.5 rounded-full bg-destructive text-destructive-foreground shadow",
|
|
2639
2639
|
"aria-label": "Delete node",
|
|
2640
|
-
children: /* @__PURE__ */ J(
|
|
2640
|
+
children: /* @__PURE__ */ J(je, { className: "h-3 w-3" })
|
|
2641
2641
|
})
|
|
2642
2642
|
]
|
|
2643
2643
|
}, e.id);
|
|
2644
2644
|
}),
|
|
2645
|
-
u && _.length > 0 && /* @__PURE__ */ J(
|
|
2646
|
-
items:
|
|
2645
|
+
u && _.length > 0 && /* @__PURE__ */ J(pt, {
|
|
2646
|
+
items: xe,
|
|
2647
2647
|
canvasWidth: a.width ?? 1400,
|
|
2648
2648
|
canvasHeight: a.height ?? 800,
|
|
2649
2649
|
position: "bottom-right"
|
|
@@ -2654,7 +2654,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2654
2654
|
className: "w-64 border-l bg-background overflow-y-auto shrink-0",
|
|
2655
2655
|
role: "complementary",
|
|
2656
2656
|
"aria-label": "Property panel",
|
|
2657
|
-
children: /* @__PURE__ */ J(
|
|
2657
|
+
children: /* @__PURE__ */ J(ut, {
|
|
2658
2658
|
title: W ? `Properties: ${W.label}` : "Properties",
|
|
2659
2659
|
fields: _e,
|
|
2660
2660
|
onChange: ve
|
|
@@ -2666,7 +2666,7 @@ function kt({ processName: e = "New Process", nodes: t = [], edges: n = [], lane
|
|
|
2666
2666
|
}
|
|
2667
2667
|
//#endregion
|
|
2668
2668
|
//#region src/ReportDesigner.tsx
|
|
2669
|
-
function
|
|
2669
|
+
function Mt(...e) {
|
|
2670
2670
|
return K(G(e));
|
|
2671
2671
|
}
|
|
2672
2672
|
var Z = {
|
|
@@ -2719,7 +2719,7 @@ var Z = {
|
|
|
2719
2719
|
groupSize: "Size",
|
|
2720
2720
|
groupContent: "Content",
|
|
2721
2721
|
groupGeneral: "General"
|
|
2722
|
-
},
|
|
2722
|
+
}, Nt = {
|
|
2723
2723
|
A4: {
|
|
2724
2724
|
width: 595,
|
|
2725
2725
|
height: 842
|
|
@@ -2740,7 +2740,7 @@ var Z = {
|
|
|
2740
2740
|
width: 792,
|
|
2741
2741
|
height: 1224
|
|
2742
2742
|
}
|
|
2743
|
-
},
|
|
2743
|
+
}, Pt = [
|
|
2744
2744
|
{
|
|
2745
2745
|
type: "header",
|
|
2746
2746
|
height: 80,
|
|
@@ -2758,23 +2758,23 @@ var Z = {
|
|
|
2758
2758
|
elements: []
|
|
2759
2759
|
}
|
|
2760
2760
|
];
|
|
2761
|
-
function
|
|
2761
|
+
function Ft({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4", orientation: r = "portrait", margins: a = {
|
|
2762
2762
|
top: 40,
|
|
2763
2763
|
right: 40,
|
|
2764
2764
|
bottom: 40,
|
|
2765
2765
|
left: 40
|
|
2766
2766
|
}, sections: u = [], showToolbar: d = !0, showPropertyPanel: f = !0, readOnly: m = !1, onSectionsChange: h, className: g }) {
|
|
2767
|
-
let _ =
|
|
2767
|
+
let _ = nt(u.length > 0 ? u : Pt), v = _.current, y = i((e) => {
|
|
2768
2768
|
_.push(e), h?.(e);
|
|
2769
|
-
}, [_, h]), x =
|
|
2769
|
+
}, [_, h]), x = it(), S = s(() => {
|
|
2770
2770
|
let e = Array.from(x.selectedIds);
|
|
2771
2771
|
return e.length > 0 ? e[0] : null;
|
|
2772
|
-
}, [x.selectedIds]), C =
|
|
2772
|
+
}, [x.selectedIds]), C = at(), T = rt(), E = _t(), D = i((e) => {
|
|
2773
2773
|
E && E.sendOperation({
|
|
2774
2774
|
...e,
|
|
2775
2775
|
userId: E.currentUserId ?? ""
|
|
2776
2776
|
});
|
|
2777
|
-
}, [E]), [O, k] = l(!0), j = c(null), M = c(null), N =
|
|
2777
|
+
}, [E]), [O, k] = l(!0), j = c(null), M = c(null), N = Nt[n], P = r === "landscape" ? N.height : N.width, F = r === "landscape" ? N.width : N.height, I = (e) => {
|
|
2778
2778
|
switch (e) {
|
|
2779
2779
|
case "header": return Z.sectionHeader;
|
|
2780
2780
|
case "page-header": return Z.sectionPageHeader;
|
|
@@ -3100,7 +3100,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3100
3100
|
]), /* @__PURE__ */ Y("div", {
|
|
3101
3101
|
ref: M,
|
|
3102
3102
|
tabIndex: 0,
|
|
3103
|
-
className:
|
|
3103
|
+
className: Mt("flex h-full w-full border rounded-lg overflow-hidden bg-background", g),
|
|
3104
3104
|
children: [
|
|
3105
3105
|
/* @__PURE__ */ Y("div", {
|
|
3106
3106
|
className: "flex-1 flex flex-col min-w-0",
|
|
@@ -3125,26 +3125,26 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3125
3125
|
!m && /* @__PURE__ */ Y(q, { children: [
|
|
3126
3126
|
/* @__PURE__ */ J("div", { className: "w-px h-5 bg-border mx-1" }),
|
|
3127
3127
|
/* @__PURE__ */ J("button", {
|
|
3128
|
-
className:
|
|
3128
|
+
className: Mt("p-1.5 rounded hover:bg-accent", !_.canUndo && "opacity-40 pointer-events-none"),
|
|
3129
3129
|
title: Z.undoShortcut,
|
|
3130
3130
|
"aria-label": Z.undo,
|
|
3131
3131
|
disabled: !_.canUndo,
|
|
3132
3132
|
onClick: () => _.undo(),
|
|
3133
|
-
children: /* @__PURE__ */ J(
|
|
3133
|
+
children: /* @__PURE__ */ J(Pe, { className: "h-4 w-4" })
|
|
3134
3134
|
}),
|
|
3135
3135
|
/* @__PURE__ */ J("button", {
|
|
3136
|
-
className:
|
|
3136
|
+
className: Mt("p-1.5 rounded hover:bg-accent", !_.canRedo && "opacity-40 pointer-events-none"),
|
|
3137
3137
|
title: Z.redoShortcut,
|
|
3138
3138
|
"aria-label": Z.redo,
|
|
3139
3139
|
disabled: !_.canRedo,
|
|
3140
3140
|
onClick: () => _.redo(),
|
|
3141
|
-
children: /* @__PURE__ */ J(
|
|
3141
|
+
children: /* @__PURE__ */ J(Se, { className: "h-4 w-4" })
|
|
3142
3142
|
}),
|
|
3143
3143
|
/* @__PURE__ */ J("div", { className: "w-px h-5 bg-border mx-1" })
|
|
3144
3144
|
] }),
|
|
3145
3145
|
!m && /* @__PURE__ */ Y(q, { children: [
|
|
3146
3146
|
/* @__PURE__ */ J("button", {
|
|
3147
|
-
className:
|
|
3147
|
+
className: Mt("p-1.5 rounded hover:bg-accent", x.count === 0 && "opacity-40 pointer-events-none"),
|
|
3148
3148
|
title: Z.copyShortcut,
|
|
3149
3149
|
"aria-label": Z.copy,
|
|
3150
3150
|
disabled: x.count === 0,
|
|
@@ -3152,7 +3152,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3152
3152
|
children: /* @__PURE__ */ J(w, { className: "h-4 w-4" })
|
|
3153
3153
|
}),
|
|
3154
3154
|
/* @__PURE__ */ J("button", {
|
|
3155
|
-
className:
|
|
3155
|
+
className: Mt("p-1.5 rounded hover:bg-accent", !C.hasContent && "opacity-40 pointer-events-none"),
|
|
3156
3156
|
title: Z.pasteShortcut,
|
|
3157
3157
|
"aria-label": Z.paste,
|
|
3158
3158
|
disabled: !C.hasContent,
|
|
@@ -3162,12 +3162,12 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3162
3162
|
/* @__PURE__ */ J("div", { className: "w-px h-5 bg-border mx-1" })
|
|
3163
3163
|
] }),
|
|
3164
3164
|
!m && /* @__PURE__ */ J("button", {
|
|
3165
|
-
className:
|
|
3165
|
+
className: Mt("p-1.5 rounded hover:bg-accent", x.count === 0 && "opacity-40 pointer-events-none"),
|
|
3166
3166
|
title: Z.deleteSelected,
|
|
3167
3167
|
"aria-label": Z.deleteSelected,
|
|
3168
3168
|
disabled: x.count === 0,
|
|
3169
3169
|
onClick: B,
|
|
3170
|
-
children: /* @__PURE__ */ J(
|
|
3170
|
+
children: /* @__PURE__ */ J(je, { className: "h-4 w-4" })
|
|
3171
3171
|
}),
|
|
3172
3172
|
/* @__PURE__ */ J("div", { className: "flex-1" }),
|
|
3173
3173
|
E?.isConnected && /* @__PURE__ */ Y("span", {
|
|
@@ -3191,7 +3191,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3191
3191
|
title: O ? Z.collapsePanel : Z.expandPanel,
|
|
3192
3192
|
"aria-label": O ? Z.collapsePanel : Z.expandPanel,
|
|
3193
3193
|
onClick: () => k((e) => !e),
|
|
3194
|
-
children: /* @__PURE__ */ J(ge, { className:
|
|
3194
|
+
children: /* @__PURE__ */ J(ge, { className: Mt("h-4 w-4", !O && "rotate-180") })
|
|
3195
3195
|
})
|
|
3196
3196
|
]
|
|
3197
3197
|
}), /* @__PURE__ */ J("div", {
|
|
@@ -3222,7 +3222,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3222
3222
|
className: "p-0.5 rounded hover:bg-accent",
|
|
3223
3223
|
title: Z.addText,
|
|
3224
3224
|
"aria-label": Z.addText,
|
|
3225
|
-
children: /* @__PURE__ */ J(
|
|
3225
|
+
children: /* @__PURE__ */ J(Ne, { className: "h-3 w-3" })
|
|
3226
3226
|
}),
|
|
3227
3227
|
/* @__PURE__ */ J("button", {
|
|
3228
3228
|
onClick: () => R(t, "field"),
|
|
@@ -3250,7 +3250,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3250
3250
|
className: "p-0.5 rounded hover:bg-accent",
|
|
3251
3251
|
title: Z.addTable,
|
|
3252
3252
|
"aria-label": Z.addTable,
|
|
3253
|
-
children: /* @__PURE__ */ J(
|
|
3253
|
+
children: /* @__PURE__ */ J(ke, { className: "h-3 w-3" })
|
|
3254
3254
|
})
|
|
3255
3255
|
]
|
|
3256
3256
|
}),
|
|
@@ -3268,7 +3268,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3268
3268
|
return /* @__PURE__ */ Y("div", {
|
|
3269
3269
|
draggable: !m,
|
|
3270
3270
|
onDragStart: (n) => ie(n, e, t),
|
|
3271
|
-
className:
|
|
3271
|
+
className: Mt("absolute border rounded px-2 py-1 text-xs cursor-pointer", n ? "border-primary ring-1 ring-primary/30 bg-primary/5" : "border-dashed border-gray-400 hover:border-primary/50"),
|
|
3272
3272
|
style: {
|
|
3273
3273
|
left: e.position.x,
|
|
3274
3274
|
top: (typeof e.position.y == "number" ? e.position.y : 0) + 24,
|
|
@@ -3291,7 +3291,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3291
3291
|
},
|
|
3292
3292
|
className: "absolute -top-2 -right-2 p-0.5 rounded-full bg-destructive text-destructive-foreground shadow",
|
|
3293
3293
|
"aria-label": Z.deleteElement,
|
|
3294
|
-
children: /* @__PURE__ */ J(
|
|
3294
|
+
children: /* @__PURE__ */ J(je, { className: "h-2.5 w-2.5" })
|
|
3295
3295
|
})]
|
|
3296
3296
|
}, e.id);
|
|
3297
3297
|
})]
|
|
@@ -3304,8 +3304,8 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3304
3304
|
f && /* @__PURE__ */ J("div", {
|
|
3305
3305
|
role: "region",
|
|
3306
3306
|
"aria-label": Z.propertiesPanel,
|
|
3307
|
-
className:
|
|
3308
|
-
children: O && (S && L ? /* @__PURE__ */ J(
|
|
3307
|
+
className: Mt("border-l bg-muted/30 flex flex-col transition-[width] duration-200", O ? "w-56" : "w-0 overflow-hidden"),
|
|
3308
|
+
children: O && (S && L ? /* @__PURE__ */ J(ut, {
|
|
3309
3309
|
title: `${Z.properties} – ${L.type}`,
|
|
3310
3310
|
fields: H,
|
|
3311
3311
|
onChange: te
|
|
@@ -3320,7 +3320,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3320
3320
|
})
|
|
3321
3321
|
})] }))
|
|
3322
3322
|
}),
|
|
3323
|
-
/* @__PURE__ */ J(
|
|
3323
|
+
/* @__PURE__ */ J(ct, {
|
|
3324
3324
|
isOpen: T.isOpen,
|
|
3325
3325
|
title: T.title,
|
|
3326
3326
|
message: T.message,
|
|
@@ -3330,9 +3330,7 @@ function Nt({ reportName: e = Z.untitledReport, objectName: t, pageSize: n = "A4
|
|
|
3330
3330
|
]
|
|
3331
3331
|
});
|
|
3332
3332
|
}
|
|
3333
|
-
|
|
3334
|
-
//#region src/hooks/useDesignerTranslation.ts
|
|
3335
|
-
var Pt = {
|
|
3333
|
+
var It = qe({
|
|
3336
3334
|
"appDesigner.basicInfo": "Basic Info",
|
|
3337
3335
|
"appDesigner.objects": "Objects",
|
|
3338
3336
|
"appDesigner.navigation": "Navigation",
|
|
@@ -3400,6 +3398,7 @@ var Pt = {
|
|
|
3400
3398
|
"appDesigner.navTypeGroup": "Group",
|
|
3401
3399
|
"appDesigner.navTypeSeparator": "Separator",
|
|
3402
3400
|
"appDesigner.navTypeAction": "Action",
|
|
3401
|
+
"appDesigner.navTypeComponent": "Component",
|
|
3403
3402
|
"appDesigner.navEditIcon": "Edit icon",
|
|
3404
3403
|
"appDesigner.navToggleVisible": "Toggle visibility",
|
|
3405
3404
|
"appDesigner.navHidden": "Hidden",
|
|
@@ -3493,22 +3492,7 @@ var Pt = {
|
|
|
3493
3492
|
"appDesigner.fieldDesigner.typeCategory.relation": "Relation",
|
|
3494
3493
|
"appDesigner.fieldDesigner.typeCategory.advanced": "Advanced",
|
|
3495
3494
|
"common.edit": "Edit"
|
|
3496
|
-
};
|
|
3497
|
-
function Ft(e) {
|
|
3498
|
-
return (t, n) => {
|
|
3499
|
-
let r = e[t] || t;
|
|
3500
|
-
if (n) for (let [e, t] of Object.entries(n)) r = r.replace(`{{${e}}}`, String(t));
|
|
3501
|
-
return r;
|
|
3502
|
-
};
|
|
3503
|
-
}
|
|
3504
|
-
function It() {
|
|
3505
|
-
try {
|
|
3506
|
-
let e = Ge();
|
|
3507
|
-
return e.t("appDesigner.basicInfo") === "appDesigner.basicInfo" ? { t: Ft(Pt) } : { t: e.t };
|
|
3508
|
-
} catch {
|
|
3509
|
-
return { t: Ft(Pt) };
|
|
3510
|
-
}
|
|
3511
|
-
}
|
|
3495
|
+
}, "appDesigner.basicInfo");
|
|
3512
3496
|
//#endregion
|
|
3513
3497
|
//#region src/AppCreationWizard.tsx
|
|
3514
3498
|
function Q(...e) {
|
|
@@ -3564,7 +3548,7 @@ function Vt({ steps: e, currentIndex: t, onStepClick: r }) {
|
|
|
3564
3548
|
});
|
|
3565
3549
|
}
|
|
3566
3550
|
function Ht({ draft: e, templates: t, readOnly: n, onChange: r, t: i }) {
|
|
3567
|
-
let a = e.name.length > 0 && !
|
|
3551
|
+
let a = e.name.length > 0 && !He(e.name);
|
|
3568
3552
|
return /* @__PURE__ */ Y("div", {
|
|
3569
3553
|
"data-testid": "wizard-step-basic-content",
|
|
3570
3554
|
className: "mx-auto max-w-lg space-y-5",
|
|
@@ -3738,7 +3722,7 @@ function Ut({ objects: e, readOnly: t, onToggle: n, onToggleAll: r, search: i, o
|
|
|
3738
3722
|
className: "flex items-center gap-3",
|
|
3739
3723
|
children: [/* @__PURE__ */ Y("div", {
|
|
3740
3724
|
className: "relative flex-1",
|
|
3741
|
-
children: [/* @__PURE__ */ J(
|
|
3725
|
+
children: [/* @__PURE__ */ J(we, { className: "absolute left-2.5 top-2.5 h-4 w-4 text-gray-400" }), /* @__PURE__ */ J("input", {
|
|
3742
3726
|
"data-testid": "object-search",
|
|
3743
3727
|
type: "text",
|
|
3744
3728
|
value: i,
|
|
@@ -3845,7 +3829,7 @@ function Gt({ items: e, readOnly: t, onAdd: n, onRemove: r, onReorder: i, t: a }
|
|
|
3845
3829
|
}),
|
|
3846
3830
|
/* @__PURE__ */ J("span", {
|
|
3847
3831
|
className: "flex-1 truncate text-sm text-gray-800",
|
|
3848
|
-
children: n.type === "separator" ? a("appDesigner.separatorLabel") :
|
|
3832
|
+
children: n.type === "separator" ? a("appDesigner.separatorLabel") : We(n.label)
|
|
3849
3833
|
}),
|
|
3850
3834
|
/* @__PURE__ */ J("span", {
|
|
3851
3835
|
className: Q("rounded-full px-2 py-0.5 text-[10px] font-medium", Wt[n.type] ?? "bg-gray-100 text-gray-600"),
|
|
@@ -3876,7 +3860,7 @@ function Gt({ items: e, readOnly: t, onAdd: n, onRemove: r, onReorder: i, t: a }
|
|
|
3876
3860
|
disabled: t,
|
|
3877
3861
|
className: "rounded p-0.5 text-gray-400 transition-colors hover:text-red-500 disabled:opacity-30",
|
|
3878
3862
|
"aria-label": "Remove",
|
|
3879
|
-
children: /* @__PURE__ */ J(
|
|
3863
|
+
children: /* @__PURE__ */ J(je, { className: "h-3.5 w-3.5" })
|
|
3880
3864
|
})
|
|
3881
3865
|
]
|
|
3882
3866
|
})
|
|
@@ -4000,7 +3984,7 @@ function Kt({ branding: e, title: t, readOnly: n, onChange: r, t: i }) {
|
|
|
4000
3984
|
});
|
|
4001
3985
|
}
|
|
4002
3986
|
function qt({ availableObjects: e = [], templates: t = [], initialDraft: n, onComplete: r, onCancel: a, onSaveDraft: o, readOnly: c = !1, className: u }) {
|
|
4003
|
-
let { t: d } = It(), f =
|
|
3987
|
+
let { t: d } = It(), f = rt(), [p, m] = l(0), [g, y] = l(""), [b, x] = l(() => ({
|
|
4004
3988
|
...Lt,
|
|
4005
3989
|
objects: e.map((e) => ({ ...e })),
|
|
4006
3990
|
...n
|
|
@@ -4029,7 +4013,7 @@ function qt({ availableObjects: e = [], templates: t = [], initialDraft: n, onCo
|
|
|
4029
4013
|
description: d("appDesigner.stepBrandingDesc"),
|
|
4030
4014
|
icon: "Palette"
|
|
4031
4015
|
}
|
|
4032
|
-
], [d]), C = p === 0, w = p === S.length - 1, T = s(() => b.name.length > 0 &&
|
|
4016
|
+
], [d]), C = p === 0, w = p === S.length - 1, T = s(() => b.name.length > 0 && He(b.name) && b.title.trim().length > 0, [b.name, b.title]), E = s(() => p !== 0 || T, [p, T]), D = i((e) => {
|
|
4033
4017
|
x((t) => ({
|
|
4034
4018
|
...t,
|
|
4035
4019
|
...e
|
|
@@ -4131,7 +4115,7 @@ function qt({ availableObjects: e = [], templates: t = [], initialDraft: n, onCo
|
|
|
4131
4115
|
onClick: f.onCancel,
|
|
4132
4116
|
className: "rounded p-1 text-gray-400 hover:text-gray-600",
|
|
4133
4117
|
"aria-label": d("common.close"),
|
|
4134
|
-
children: /* @__PURE__ */ J(
|
|
4118
|
+
children: /* @__PURE__ */ J(Re, { className: "h-4 w-4" })
|
|
4135
4119
|
})]
|
|
4136
4120
|
}),
|
|
4137
4121
|
/* @__PURE__ */ J("p", {
|
|
@@ -4284,6 +4268,11 @@ var Zt = {
|
|
|
4284
4268
|
color: "bg-sky-100 text-sky-700",
|
|
4285
4269
|
Icon: V
|
|
4286
4270
|
},
|
|
4271
|
+
component: {
|
|
4272
|
+
labelKey: "appDesigner.navTypeComponent",
|
|
4273
|
+
color: "bg-indigo-100 text-indigo-700",
|
|
4274
|
+
Icon: xe
|
|
4275
|
+
},
|
|
4287
4276
|
group: {
|
|
4288
4277
|
labelKey: "appDesigner.navTypeGroup",
|
|
4289
4278
|
color: "bg-purple-100 text-purple-700",
|
|
@@ -4330,10 +4319,10 @@ var Zt = {
|
|
|
4330
4319
|
}
|
|
4331
4320
|
];
|
|
4332
4321
|
function $t({ item: e, depth: t, index: n, total: r, readOnly: i, onRemove: a, onMoveUp: o, onMoveDown: s, onToggleExpand: c, onUpdateLabel: u, onUpdateIcon: d, onToggleVisible: f, onAddChild: p, expandedIds: m, t: h }) {
|
|
4333
|
-
let [_, b] = l(!1), [x, S] = l(
|
|
4322
|
+
let [_, b] = l(!1), [x, S] = l(We(e.label) ?? ""), [C, w] = l(!1), [T, E] = l(e.icon || ""), D = Zt[e.type];
|
|
4334
4323
|
e.type === "group" && e.children && e.children.length;
|
|
4335
4324
|
let A = m.has(e.id), j = e.visible === !1, M = () => {
|
|
4336
|
-
x.trim() ? u(e.id, x.trim()) : S(
|
|
4325
|
+
x.trim() ? u(e.id, x.trim()) : S(We(e.label) ?? ""), b(!1);
|
|
4337
4326
|
}, N = () => {
|
|
4338
4327
|
d(e.id, T.trim()), w(!1);
|
|
4339
4328
|
};
|
|
@@ -4384,16 +4373,16 @@ function $t({ item: e, depth: t, index: n, total: r, readOnly: i, onRemove: a, o
|
|
|
4384
4373
|
onChange: (e) => S(e.target.value),
|
|
4385
4374
|
onBlur: M,
|
|
4386
4375
|
onKeyDown: (t) => {
|
|
4387
|
-
t.key === "Enter" && M(), t.key === "Escape" && (S(
|
|
4376
|
+
t.key === "Enter" && M(), t.key === "Escape" && (S(We(e.label) ?? ""), b(!1));
|
|
4388
4377
|
},
|
|
4389
4378
|
autoFocus: !0,
|
|
4390
4379
|
className: "flex-1 rounded border border-blue-300 px-1.5 py-0.5 text-sm outline-none focus:ring-1 focus:ring-blue-400"
|
|
4391
4380
|
}) : /* @__PURE__ */ J("span", {
|
|
4392
4381
|
className: Jt("flex-1 truncate text-sm text-gray-800", !i && "cursor-text"),
|
|
4393
4382
|
onDoubleClick: () => {
|
|
4394
|
-
!i && e.type !== "separator" && (S(
|
|
4383
|
+
!i && e.type !== "separator" && (S(We(e.label) ?? ""), b(!0));
|
|
4395
4384
|
},
|
|
4396
|
-
children:
|
|
4385
|
+
children: We(e.label)
|
|
4397
4386
|
}),
|
|
4398
4387
|
/* @__PURE__ */ J("span", {
|
|
4399
4388
|
className: Jt("rounded-full px-2 py-0.5 text-[10px] font-medium", D.color),
|
|
@@ -4443,7 +4432,7 @@ function $t({ item: e, depth: t, index: n, total: r, readOnly: i, onRemove: a, o
|
|
|
4443
4432
|
className: "rounded p-0.5 text-gray-400 hover:text-red-500 disabled:opacity-30",
|
|
4444
4433
|
"aria-label": h("appDesigner.navRemove"),
|
|
4445
4434
|
"data-testid": `nav-designer-remove-${e.id}`,
|
|
4446
|
-
children: /* @__PURE__ */ J(
|
|
4435
|
+
children: /* @__PURE__ */ J(je, { className: "h-3.5 w-3.5" })
|
|
4447
4436
|
})
|
|
4448
4437
|
]
|
|
4449
4438
|
}), e.type === "group" && A && e.children && /* @__PURE__ */ J(q, { children: e.children.map((n, r) => /* @__PURE__ */ J($t, {
|
|
@@ -4493,7 +4482,7 @@ function tn({ item: e, depth: t }) {
|
|
|
4493
4482
|
style: { marginLeft: t * 12 },
|
|
4494
4483
|
children: [/* @__PURE__ */ J(n.Icon, { className: "h-3 w-3 text-gray-400" }), /* @__PURE__ */ J("span", {
|
|
4495
4484
|
className: "truncate",
|
|
4496
|
-
children:
|
|
4485
|
+
children: We(e.label)
|
|
4497
4486
|
})]
|
|
4498
4487
|
}), e.type === "group" && e.children?.map((e) => /* @__PURE__ */ J(tn, {
|
|
4499
4488
|
item: e,
|
|
@@ -4643,7 +4632,7 @@ function nn({ items: e, onChange: t, readOnly: n = !1, showPreview: r = !0, clas
|
|
|
4643
4632
|
"data-testid": "nav-designer-import",
|
|
4644
4633
|
className: Jt("inline-flex cursor-pointer items-center gap-1 rounded-md border border-gray-200 px-2.5 py-1 text-xs font-medium transition-colors hover:bg-gray-50", n && "cursor-not-allowed opacity-50"),
|
|
4645
4634
|
children: [
|
|
4646
|
-
/* @__PURE__ */ J(
|
|
4635
|
+
/* @__PURE__ */ J(Fe, { className: "h-3 w-3" }),
|
|
4647
4636
|
u("appDesigner.navImportSchema"),
|
|
4648
4637
|
/* @__PURE__ */ J("input", {
|
|
4649
4638
|
ref: d,
|
|
@@ -4736,7 +4725,7 @@ var cn = [
|
|
|
4736
4725
|
{
|
|
4737
4726
|
type: "metric",
|
|
4738
4727
|
label: "KPI Metric",
|
|
4739
|
-
Icon:
|
|
4728
|
+
Icon: Me
|
|
4740
4729
|
},
|
|
4741
4730
|
{
|
|
4742
4731
|
type: "bar",
|
|
@@ -4756,7 +4745,7 @@ var cn = [
|
|
|
4756
4745
|
{
|
|
4757
4746
|
type: "table",
|
|
4758
4747
|
label: "Table",
|
|
4759
|
-
Icon:
|
|
4748
|
+
Icon: ke
|
|
4760
4749
|
},
|
|
4761
4750
|
{
|
|
4762
4751
|
type: "grid",
|
|
@@ -4816,7 +4805,7 @@ function dn({ widget: e, index: t, total: n, selected: r, readOnly: i, onSelect:
|
|
|
4816
4805
|
className: "rounded p-0.5 text-gray-400 hover:text-red-500",
|
|
4817
4806
|
"aria-label": "Remove widget",
|
|
4818
4807
|
"data-testid": `dashboard-widget-remove-${e.id}`,
|
|
4819
|
-
children: /* @__PURE__ */ J(
|
|
4808
|
+
children: /* @__PURE__ */ J(je, { className: "h-3.5 w-3.5" })
|
|
4820
4809
|
})
|
|
4821
4810
|
]
|
|
4822
4811
|
})]
|
|
@@ -4845,7 +4834,7 @@ function fn({ widget: e, readOnly: t, onChange: n, onClose: r }) {
|
|
|
4845
4834
|
onClick: r,
|
|
4846
4835
|
className: "rounded p-0.5 text-gray-400 hover:text-gray-600",
|
|
4847
4836
|
"aria-label": "Close",
|
|
4848
|
-
children: /* @__PURE__ */ J(
|
|
4837
|
+
children: /* @__PURE__ */ J(Re, { className: "h-4 w-4" })
|
|
4849
4838
|
})]
|
|
4850
4839
|
}),
|
|
4851
4840
|
/* @__PURE__ */ Y("div", {
|
|
@@ -5023,7 +5012,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5023
5012
|
y,
|
|
5024
5013
|
d,
|
|
5025
5014
|
m
|
|
5026
|
-
]), { current: S, canUndo: C, canRedo: w, push: T, undo: E, redo: A } =
|
|
5015
|
+
]), { current: S, canUndo: C, canRedo: w, push: T, undo: E, redo: A } = nt(e), j = i((e) => {
|
|
5027
5016
|
T(e), t(e);
|
|
5028
5017
|
}, [T, t]), M = S.widgets || [], N = M.find((e) => e.id === b), P = i((e) => {
|
|
5029
5018
|
let t = un(), n = {
|
|
@@ -5175,7 +5164,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5175
5164
|
disabled: !C,
|
|
5176
5165
|
className: "rounded p-1.5 text-gray-400 hover:text-gray-700 disabled:opacity-30",
|
|
5177
5166
|
"aria-label": f("appDesigner.undo"),
|
|
5178
|
-
children: /* @__PURE__ */ J(
|
|
5167
|
+
children: /* @__PURE__ */ J(Pe, { className: "h-4 w-4" })
|
|
5179
5168
|
}), /* @__PURE__ */ J("button", {
|
|
5180
5169
|
type: "button",
|
|
5181
5170
|
"data-testid": "dashboard-redo",
|
|
@@ -5183,7 +5172,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5183
5172
|
disabled: !w,
|
|
5184
5173
|
className: "rounded p-1.5 text-gray-400 hover:text-gray-700 disabled:opacity-30",
|
|
5185
5174
|
"aria-label": f("appDesigner.redo"),
|
|
5186
|
-
children: /* @__PURE__ */ J(
|
|
5175
|
+
children: /* @__PURE__ */ J(Se, { className: "h-4 w-4" })
|
|
5187
5176
|
})] }),
|
|
5188
5177
|
/* @__PURE__ */ J("button", {
|
|
5189
5178
|
type: "button",
|
|
@@ -5199,7 +5188,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5199
5188
|
onClick: z,
|
|
5200
5189
|
className: "rounded p-1.5 text-gray-400 hover:text-gray-700",
|
|
5201
5190
|
"aria-label": f("appDesigner.navImportSchema"),
|
|
5202
|
-
children: /* @__PURE__ */ J(
|
|
5191
|
+
children: /* @__PURE__ */ J(Fe, { className: "h-4 w-4" })
|
|
5203
5192
|
}),
|
|
5204
5193
|
/* @__PURE__ */ J("button", {
|
|
5205
5194
|
type: "button",
|
|
@@ -5315,7 +5304,7 @@ var hn = [
|
|
|
5315
5304
|
"system-ui"
|
|
5316
5305
|
];
|
|
5317
5306
|
function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1, className: a, onExport: s, onImport: u }) {
|
|
5318
|
-
let { t: d } = It(), [f, p] = l("light"), { current: m, push: h, canUndo: g, canRedo: _, undo: v, redo: y } =
|
|
5307
|
+
let { t: d } = It(), [f, p] = l("light"), { current: m, push: h, canUndo: g, canRedo: _, undo: v, redo: y } = nt(e), b = c(!0);
|
|
5319
5308
|
o(() => {
|
|
5320
5309
|
if (b.current) {
|
|
5321
5310
|
b.current = !1;
|
|
@@ -5395,7 +5384,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5395
5384
|
disabled: !g || r,
|
|
5396
5385
|
className: $("inline-flex items-center gap-1 rounded-md border px-2.5 py-1.5 text-xs font-medium shadow-sm transition-colors", g && !r ? "border-gray-300 bg-white text-gray-700 hover:bg-gray-50" : "border-gray-200 bg-gray-50 text-gray-400 cursor-not-allowed"),
|
|
5397
5386
|
title: d("appDesigner.undo"),
|
|
5398
|
-
children: [/* @__PURE__ */ J(
|
|
5387
|
+
children: [/* @__PURE__ */ J(Pe, { className: "h-3.5 w-3.5" }), d("appDesigner.undo")]
|
|
5399
5388
|
}),
|
|
5400
5389
|
/* @__PURE__ */ Y("button", {
|
|
5401
5390
|
"data-testid": "branding-redo",
|
|
@@ -5404,7 +5393,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5404
5393
|
disabled: !_ || r,
|
|
5405
5394
|
className: $("inline-flex items-center gap-1 rounded-md border px-2.5 py-1.5 text-xs font-medium shadow-sm transition-colors", _ && !r ? "border-gray-300 bg-white text-gray-700 hover:bg-gray-50" : "border-gray-200 bg-gray-50 text-gray-400 cursor-not-allowed"),
|
|
5406
5395
|
title: d("appDesigner.redo"),
|
|
5407
|
-
children: [/* @__PURE__ */ J(
|
|
5396
|
+
children: [/* @__PURE__ */ J(Se, { className: "h-3.5 w-3.5" }), d("appDesigner.redo")]
|
|
5408
5397
|
}),
|
|
5409
5398
|
/* @__PURE__ */ Y("button", {
|
|
5410
5399
|
"data-testid": "branding-export",
|
|
@@ -5421,7 +5410,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5421
5410
|
disabled: r,
|
|
5422
5411
|
className: $("inline-flex items-center gap-1 rounded-md border px-2.5 py-1.5 text-xs font-medium shadow-sm transition-colors", r ? "border-gray-200 bg-gray-50 text-gray-400 cursor-not-allowed" : "border-gray-300 bg-white text-gray-700 hover:bg-gray-50"),
|
|
5423
5412
|
title: d("appDesigner.brandingImport"),
|
|
5424
|
-
children: [/* @__PURE__ */ J(
|
|
5413
|
+
children: [/* @__PURE__ */ J(Fe, { className: "h-3.5 w-3.5" }), d("appDesigner.brandingImport")]
|
|
5425
5414
|
})
|
|
5426
5415
|
]
|
|
5427
5416
|
}), /* @__PURE__ */ Y("div", {
|
|
@@ -5529,7 +5518,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5529
5518
|
children: d("appDesigner.fontFamily")
|
|
5530
5519
|
}), /* @__PURE__ */ Y("div", {
|
|
5531
5520
|
className: "relative",
|
|
5532
|
-
children: [/* @__PURE__ */ J(
|
|
5521
|
+
children: [/* @__PURE__ */ J(Ne, { className: "absolute left-2.5 top-2.5 h-4 w-4 text-gray-400" }), /* @__PURE__ */ Y("select", {
|
|
5533
5522
|
id: "be-font",
|
|
5534
5523
|
"data-testid": "branding-font-select",
|
|
5535
5524
|
value: m.fontFamily ?? "",
|
|
@@ -5563,7 +5552,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5563
5552
|
type: "button",
|
|
5564
5553
|
onClick: () => p("light"),
|
|
5565
5554
|
className: $("inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium transition-colors", f === "light" ? "bg-blue-50 text-blue-700" : "bg-white text-gray-600 hover:bg-gray-50"),
|
|
5566
|
-
children: [/* @__PURE__ */ J(
|
|
5555
|
+
children: [/* @__PURE__ */ J(Oe, { className: "h-3.5 w-3.5" }), d("appDesigner.modeLight")]
|
|
5567
5556
|
}), /* @__PURE__ */ Y("button", {
|
|
5568
5557
|
"data-testid": "branding-mode-dark",
|
|
5569
5558
|
type: "button",
|
|
@@ -5715,7 +5704,7 @@ var yn = [
|
|
|
5715
5704
|
"CreditCard"
|
|
5716
5705
|
];
|
|
5717
5706
|
function xn({ objects: e, onObjectsChange: n, onSelectObject: r, showSystemObjects: a = !0, readOnly: o = !1, className: c }) {
|
|
5718
|
-
let { t: u } = It(), d =
|
|
5707
|
+
let { t: u } = It(), d = rt(), [f, p] = l(!1), [m, h] = l(null), g = s(() => a ? e : e.filter((e) => !e.isSystem), [e, a]), _ = s(() => new t({ items: g }), [g]), v = s(() => [
|
|
5719
5708
|
{
|
|
5720
5709
|
field: "name",
|
|
5721
5710
|
label: u("appDesigner.objectManager.objectName"),
|
|
@@ -5909,7 +5898,7 @@ function xn({ objects: e, onObjectsChange: n, onSelectObject: r, showSystemObjec
|
|
|
5909
5898
|
]
|
|
5910
5899
|
})
|
|
5911
5900
|
}),
|
|
5912
|
-
/* @__PURE__ */ J(
|
|
5901
|
+
/* @__PURE__ */ J(Je, {
|
|
5913
5902
|
schema: y,
|
|
5914
5903
|
dataSource: _,
|
|
5915
5904
|
onRowClick: b,
|
|
@@ -5917,8 +5906,8 @@ function xn({ objects: e, onObjectsChange: n, onSelectObject: r, showSystemObjec
|
|
|
5917
5906
|
onDelete: o ? void 0 : S,
|
|
5918
5907
|
onAddRecord: o ? void 0 : C
|
|
5919
5908
|
}),
|
|
5920
|
-
f && /* @__PURE__ */ J(
|
|
5921
|
-
/* @__PURE__ */ J(
|
|
5909
|
+
f && /* @__PURE__ */ J(Xe, { schema: D }),
|
|
5910
|
+
/* @__PURE__ */ J(ct, {
|
|
5922
5911
|
isOpen: d.isOpen,
|
|
5923
5912
|
title: d.title,
|
|
5924
5913
|
message: d.message,
|
|
@@ -5939,7 +5928,7 @@ function Sn(...e) {
|
|
|
5939
5928
|
var Cn = {
|
|
5940
5929
|
text: {
|
|
5941
5930
|
label: "Text",
|
|
5942
|
-
Icon:
|
|
5931
|
+
Icon: Ne
|
|
5943
5932
|
},
|
|
5944
5933
|
textarea: {
|
|
5945
5934
|
label: "Text Area",
|
|
@@ -5951,7 +5940,7 @@ var Cn = {
|
|
|
5951
5940
|
},
|
|
5952
5941
|
boolean: {
|
|
5953
5942
|
label: "Checkbox",
|
|
5954
|
-
Icon:
|
|
5943
|
+
Icon: Ae
|
|
5955
5944
|
},
|
|
5956
5945
|
date: {
|
|
5957
5946
|
label: "Date",
|
|
@@ -6039,15 +6028,13 @@ var Cn = {
|
|
|
6039
6028
|
},
|
|
6040
6029
|
rating: {
|
|
6041
6030
|
label: "Rating",
|
|
6042
|
-
Icon:
|
|
6031
|
+
Icon: De
|
|
6043
6032
|
},
|
|
6044
6033
|
slider: {
|
|
6045
6034
|
label: "Slider",
|
|
6046
|
-
Icon:
|
|
6035
|
+
Icon: Te
|
|
6047
6036
|
}
|
|
6048
|
-
}
|
|
6049
|
-
Object.keys(Cn);
|
|
6050
|
-
var wn = {
|
|
6037
|
+
}, wn = {
|
|
6051
6038
|
text: [
|
|
6052
6039
|
"text",
|
|
6053
6040
|
"textarea",
|
|
@@ -6091,7 +6078,7 @@ var wn = {
|
|
|
6091
6078
|
"advanced"
|
|
6092
6079
|
];
|
|
6093
6080
|
function En({ objectName: e, fields: n, onFieldsChange: r, readOnly: a = !1, className: o }) {
|
|
6094
|
-
let { t: c } = It(), u =
|
|
6081
|
+
let { t: c } = It(), u = rt(), [d, f] = l(!1), [p, m] = l(null), [h, g] = l(""), _ = s(() => h ? n.filter((e) => e.type === h) : n, [n, h]), v = s(() => new t({ items: _ }), [_]), y = s(() => [
|
|
6095
6082
|
{
|
|
6096
6083
|
field: "name",
|
|
6097
6084
|
label: c("appDesigner.fieldDesigner.fieldName"),
|
|
@@ -6424,15 +6411,15 @@ function En({ objectName: e, fields: n, onFieldsChange: r, readOnly: a = !1, cla
|
|
|
6424
6411
|
}, e.category))]
|
|
6425
6412
|
})]
|
|
6426
6413
|
}),
|
|
6427
|
-
/* @__PURE__ */ J(
|
|
6414
|
+
/* @__PURE__ */ J(Je, {
|
|
6428
6415
|
schema: b,
|
|
6429
6416
|
dataSource: v,
|
|
6430
6417
|
onEdit: a ? void 0 : x,
|
|
6431
6418
|
onDelete: a ? void 0 : S,
|
|
6432
6419
|
onAddRecord: a ? void 0 : w
|
|
6433
6420
|
}),
|
|
6434
|
-
d && /* @__PURE__ */ J(
|
|
6435
|
-
/* @__PURE__ */ J(
|
|
6421
|
+
d && /* @__PURE__ */ J(Ye, { schema: k }),
|
|
6422
|
+
/* @__PURE__ */ J(ct, {
|
|
6436
6423
|
isOpen: u.isOpen,
|
|
6437
6424
|
title: u.title,
|
|
6438
6425
|
message: u.message,
|
|
@@ -6487,7 +6474,7 @@ function On({ versions: e, onRestore: t, className: n }) {
|
|
|
6487
6474
|
/* @__PURE__ */ Y("div", {
|
|
6488
6475
|
className: "flex items-center gap-2 mt-1 text-[0.65rem] text-muted-foreground/70",
|
|
6489
6476
|
children: [
|
|
6490
|
-
/* @__PURE__ */ J(
|
|
6477
|
+
/* @__PURE__ */ J(Ie, { className: "h-2.5 w-2.5" }),
|
|
6491
6478
|
/* @__PURE__ */ J("span", { children: e.userName }),
|
|
6492
6479
|
/* @__PURE__ */ J(x, { className: "h-2.5 w-2.5 ml-1" }),
|
|
6493
6480
|
/* @__PURE__ */ J("span", { children: new Date(e.timestamp).toLocaleString() })
|
|
@@ -6509,7 +6496,7 @@ function On({ versions: e, onRestore: t, className: n }) {
|
|
|
6509
6496
|
//#region src/pages/CreateAppPage.tsx
|
|
6510
6497
|
var kn = "objectui-app-wizard-draft";
|
|
6511
6498
|
function An() {
|
|
6512
|
-
let e =
|
|
6499
|
+
let e = Ze(), { appName: t } = Qe(), { objects: n, refresh: r } = Ke(), a = Ge(), o = (n || []).map((e) => ({
|
|
6513
6500
|
name: e.name,
|
|
6514
6501
|
label: e.label || e.name,
|
|
6515
6502
|
pluralLabel: e.pluralLabel,
|
|
@@ -6522,10 +6509,10 @@ function An() {
|
|
|
6522
6509
|
} catch {}
|
|
6523
6510
|
}, []), c = i(async (t) => {
|
|
6524
6511
|
try {
|
|
6525
|
-
let n =
|
|
6526
|
-
i && await i.meta.saveItem("app", t.name, n), localStorage.removeItem(kn),
|
|
6512
|
+
let n = Ue(t), i = a?.getClient();
|
|
6513
|
+
i && await i.meta.saveItem("app", t.name, n), localStorage.removeItem(kn), $e.success(`Application "${t.title}" created successfully`), await r?.(), e(`/apps/${t.name}`);
|
|
6527
6514
|
} catch (e) {
|
|
6528
|
-
|
|
6515
|
+
$e.error(e?.message || "Failed to create application");
|
|
6529
6516
|
}
|
|
6530
6517
|
}, [
|
|
6531
6518
|
e,
|
|
@@ -6535,7 +6522,7 @@ function An() {
|
|
|
6535
6522
|
e(t ? `/apps/${t}` : "/");
|
|
6536
6523
|
}, [e, t]), u = i((e) => {
|
|
6537
6524
|
try {
|
|
6538
|
-
localStorage.setItem(kn, JSON.stringify(e)),
|
|
6525
|
+
localStorage.setItem(kn, JSON.stringify(e)), $e.info("Draft saved");
|
|
6539
6526
|
} catch {}
|
|
6540
6527
|
}, []);
|
|
6541
6528
|
return /* @__PURE__ */ J("div", {
|
|
@@ -6553,7 +6540,7 @@ function An() {
|
|
|
6553
6540
|
//#endregion
|
|
6554
6541
|
//#region src/pages/EditAppPage.tsx
|
|
6555
6542
|
function jn() {
|
|
6556
|
-
let e =
|
|
6543
|
+
let e = Ze(), { appName: t, editAppName: n } = Qe(), { apps: r, objects: a, refresh: o } = Ke(), c = Ge(), l = n || t, u = r.find((e) => e.name === l), d = (a || []).map((e) => ({
|
|
6557
6544
|
name: e.name,
|
|
6558
6545
|
label: e.label || e.name,
|
|
6559
6546
|
pluralLabel: e.pluralLabel,
|
|
@@ -6575,13 +6562,13 @@ function jn() {
|
|
|
6575
6562
|
};
|
|
6576
6563
|
}, [u]), p = i(async (t) => {
|
|
6577
6564
|
try {
|
|
6578
|
-
let n =
|
|
6565
|
+
let n = Ue(t), r = {
|
|
6579
6566
|
...u,
|
|
6580
6567
|
...n
|
|
6581
6568
|
}, i = c?.getClient();
|
|
6582
|
-
i && await i.meta.saveItem("app", t.name, r),
|
|
6569
|
+
i && await i.meta.saveItem("app", t.name, r), $e.success(`Application "${t.title}" updated successfully`), await o?.(), e(`/apps/${t.name}`);
|
|
6583
6570
|
} catch (e) {
|
|
6584
|
-
|
|
6571
|
+
$e.error(e?.message || "Failed to update application");
|
|
6585
6572
|
}
|
|
6586
6573
|
}, [
|
|
6587
6574
|
e,
|
|
@@ -6592,7 +6579,7 @@ function jn() {
|
|
|
6592
6579
|
e(t ? `/apps/${t}` : "/");
|
|
6593
6580
|
}, [e, t]), h = i((e) => {
|
|
6594
6581
|
try {
|
|
6595
|
-
localStorage.setItem(`objectui-edit-draft-${l}`, JSON.stringify(e)),
|
|
6582
|
+
localStorage.setItem(`objectui-edit-draft-${l}`, JSON.stringify(e)), $e.info("Draft saved");
|
|
6596
6583
|
} catch {}
|
|
6597
6584
|
}, [l]);
|
|
6598
6585
|
return u ? /* @__PURE__ */ J("div", {
|
|
@@ -6621,7 +6608,7 @@ function jn() {
|
|
|
6621
6608
|
//#endregion
|
|
6622
6609
|
//#region src/pages/DashboardDesignPage.tsx
|
|
6623
6610
|
function Mn() {
|
|
6624
|
-
let e =
|
|
6611
|
+
let e = Ze(), { dashboardName: t } = Qe(), n = Ge(), { dashboards: r, refresh: a } = Ke(), s = r?.find((e) => e.name === t), [u, f] = l(() => s || {
|
|
6625
6612
|
type: "dashboard",
|
|
6626
6613
|
name: t ?? "",
|
|
6627
6614
|
title: t ?? "",
|
|
@@ -6644,16 +6631,16 @@ function Mn() {
|
|
|
6644
6631
|
o(() => {
|
|
6645
6632
|
let e = (e) => {
|
|
6646
6633
|
(e.ctrlKey || e.metaKey) && e.key === "s" && (e.preventDefault(), m(p.current).then((e) => {
|
|
6647
|
-
e &&
|
|
6634
|
+
e && $e.success("Dashboard saved");
|
|
6648
6635
|
}));
|
|
6649
6636
|
};
|
|
6650
6637
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
6651
6638
|
}, [m]);
|
|
6652
6639
|
let g = i((e) => {
|
|
6653
6640
|
let n = new Blob([JSON.stringify(e, null, 2)], { type: "application/json" }), r = URL.createObjectURL(n), i = document.createElement("a");
|
|
6654
|
-
i.href = r, i.download = `${t || "dashboard"}.json`, i.click(), URL.revokeObjectURL(r),
|
|
6641
|
+
i.href = r, i.download = `${t || "dashboard"}.json`, i.click(), URL.revokeObjectURL(r), $e.success("Dashboard schema exported");
|
|
6655
6642
|
}, [t]), _ = i((e) => {
|
|
6656
|
-
|
|
6643
|
+
$e.success("Dashboard schema imported"), h(e);
|
|
6657
6644
|
}, [h]);
|
|
6658
6645
|
return s ? /* @__PURE__ */ Y("div", {
|
|
6659
6646
|
className: "h-full flex flex-col",
|
|
@@ -6709,7 +6696,7 @@ function Pn({ client: e, clientConfig: t, hideSystemObjects: n = !1, readOnly: r
|
|
|
6709
6696
|
let u = s(() => {
|
|
6710
6697
|
if (e) return e;
|
|
6711
6698
|
if (!t) throw Error("MetadataObjectsPage: provide either `client` or `clientConfig`.");
|
|
6712
|
-
return new
|
|
6699
|
+
return new et(t);
|
|
6713
6700
|
}, [e, t]), [d, f] = l({
|
|
6714
6701
|
loading: !0,
|
|
6715
6702
|
error: null,
|
|
@@ -6801,7 +6788,7 @@ function Pn({ client: e, clientConfig: t, hideSystemObjects: n = !1, readOnly: r
|
|
|
6801
6788
|
}
|
|
6802
6789
|
//#endregion
|
|
6803
6790
|
//#region src/MetadataFieldsPage.tsx
|
|
6804
|
-
var Fn =
|
|
6791
|
+
var Fn = new Set(Ve);
|
|
6805
6792
|
function In(e) {
|
|
6806
6793
|
return e && Fn.has(e) ? e : "text";
|
|
6807
6794
|
}
|
|
@@ -6851,7 +6838,7 @@ function zn({ objectName: e, client: t, clientConfig: n, readOnly: r = !1, class
|
|
|
6851
6838
|
let c = s(() => {
|
|
6852
6839
|
if (t) return t;
|
|
6853
6840
|
if (!n) throw Error("MetadataFieldsPage: provide either `client` or `clientConfig`.");
|
|
6854
|
-
return new
|
|
6841
|
+
return new et(n);
|
|
6855
6842
|
}, [t, n]), [u, d] = l({
|
|
6856
6843
|
loading: !0,
|
|
6857
6844
|
error: null,
|
|
@@ -6931,7 +6918,7 @@ function zn({ objectName: e, client: t, clientConfig: n, readOnly: r = !1, class
|
|
|
6931
6918
|
})]
|
|
6932
6919
|
});
|
|
6933
6920
|
}
|
|
6934
|
-
e.register("page-designer",
|
|
6921
|
+
e.register("page-designer", bt, {
|
|
6935
6922
|
namespace: "plugin-designer",
|
|
6936
6923
|
label: "Page Designer",
|
|
6937
6924
|
category: "Designer",
|
|
@@ -6965,7 +6952,7 @@ e.register("page-designer", vt, {
|
|
|
6965
6952
|
defaultValue: !1
|
|
6966
6953
|
}
|
|
6967
6954
|
]
|
|
6968
|
-
}), e.register("data-model-designer",
|
|
6955
|
+
}), e.register("data-model-designer", Et, {
|
|
6969
6956
|
namespace: "plugin-designer",
|
|
6970
6957
|
label: "Data Model Designer",
|
|
6971
6958
|
category: "Designer",
|
|
@@ -6993,7 +6980,7 @@ e.register("page-designer", vt, {
|
|
|
6993
6980
|
defaultValue: !1
|
|
6994
6981
|
}
|
|
6995
6982
|
]
|
|
6996
|
-
}), e.register("process-designer",
|
|
6983
|
+
}), e.register("process-designer", jt, {
|
|
6997
6984
|
namespace: "plugin-designer",
|
|
6998
6985
|
label: "Process Designer (BPMN)",
|
|
6999
6986
|
category: "Designer",
|
|
@@ -7032,7 +7019,7 @@ e.register("page-designer", vt, {
|
|
|
7032
7019
|
defaultValue: !1
|
|
7033
7020
|
}
|
|
7034
7021
|
]
|
|
7035
|
-
}), e.register("report-designer",
|
|
7022
|
+
}), e.register("report-designer", Ft, {
|
|
7036
7023
|
namespace: "plugin-designer",
|
|
7037
7024
|
label: "Report Designer",
|
|
7038
7025
|
category: "Designer",
|
|
@@ -7199,4 +7186,4 @@ e.register("page-designer", vt, {
|
|
|
7199
7186
|
]
|
|
7200
7187
|
});
|
|
7201
7188
|
//#endregion
|
|
7202
|
-
export { qt as AppCreationWizard, _n as BrandingEditor,
|
|
7189
|
+
export { qt as AppCreationWizard, _n as BrandingEditor, gt as CollaborationProvider, ct as ConfirmDialog, vt as ConnectionStatusIndicator, An as CreateAppPage, Mn as DashboardDesignPage, mn as DashboardEditor, Et as DataModelDesigner, jn as EditAppPage, on as EditorModeToggle, En as FieldDesigner, zn as MetadataFieldsPage, Pn as MetadataObjectsPage, pt as Minimap, nn as NavigationDesigner, xn as ObjectManager, bt as PageDesigner, jt as ProcessDesigner, ut as PropertyEditor, Ft as ReportDesigner, On as VersionHistory, ot as useCanvasPanZoom, at as useClipboard, rt as useConfirmDialog, St as useDesignerHistory, it as useMultiSelect, nt as useUndoRedo };
|