@object-ui/plugin-designer 16.0.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 +389 -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 +3 -4
- 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 +211 -298
- 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 +14 -13
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,19 +4805,16 @@ 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
|
})]
|
|
4823
|
-
}), /* @__PURE__ */
|
|
4812
|
+
}), /* @__PURE__ */ J("div", {
|
|
4824
4813
|
className: "mt-1.5 flex items-center gap-2",
|
|
4825
|
-
children:
|
|
4814
|
+
children: /* @__PURE__ */ J("span", {
|
|
4826
4815
|
className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600",
|
|
4827
4816
|
children: u.label
|
|
4828
|
-
})
|
|
4829
|
-
className: "text-[10px] text-gray-400",
|
|
4830
|
-
children: e.object
|
|
4831
|
-
})]
|
|
4817
|
+
})
|
|
4832
4818
|
})]
|
|
4833
4819
|
});
|
|
4834
4820
|
}
|
|
@@ -4848,7 +4834,7 @@ function fn({ widget: e, readOnly: t, onChange: n, onClose: r }) {
|
|
|
4848
4834
|
onClick: r,
|
|
4849
4835
|
className: "rounded p-0.5 text-gray-400 hover:text-gray-600",
|
|
4850
4836
|
"aria-label": "Close",
|
|
4851
|
-
children: /* @__PURE__ */ J(
|
|
4837
|
+
children: /* @__PURE__ */ J(Re, { className: "h-4 w-4" })
|
|
4852
4838
|
})]
|
|
4853
4839
|
}),
|
|
4854
4840
|
/* @__PURE__ */ Y("div", {
|
|
@@ -4886,77 +4872,6 @@ function fn({ widget: e, readOnly: t, onChange: n, onClose: r }) {
|
|
|
4886
4872
|
}, e.type))
|
|
4887
4873
|
})]
|
|
4888
4874
|
}),
|
|
4889
|
-
/* @__PURE__ */ Y("div", {
|
|
4890
|
-
className: "space-y-1",
|
|
4891
|
-
children: [/* @__PURE__ */ J("label", {
|
|
4892
|
-
htmlFor: "widget-object",
|
|
4893
|
-
className: "text-xs font-medium text-gray-600",
|
|
4894
|
-
children: "Data Source (Object)"
|
|
4895
|
-
}), /* @__PURE__ */ J("input", {
|
|
4896
|
-
id: "widget-object",
|
|
4897
|
-
"data-testid": "widget-prop-object",
|
|
4898
|
-
type: "text",
|
|
4899
|
-
value: e.object ?? "",
|
|
4900
|
-
onChange: (e) => n({ object: e.target.value }),
|
|
4901
|
-
disabled: t,
|
|
4902
|
-
placeholder: "e.g. orders",
|
|
4903
|
-
className: "block w-full rounded-md border border-gray-300 px-2.5 py-1.5 text-sm outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500 disabled:bg-gray-50"
|
|
4904
|
-
})]
|
|
4905
|
-
}),
|
|
4906
|
-
/* @__PURE__ */ Y("div", {
|
|
4907
|
-
className: "space-y-1",
|
|
4908
|
-
children: [/* @__PURE__ */ J("label", {
|
|
4909
|
-
htmlFor: "widget-value-field",
|
|
4910
|
-
className: "text-xs font-medium text-gray-600",
|
|
4911
|
-
children: "Value Field"
|
|
4912
|
-
}), /* @__PURE__ */ J("input", {
|
|
4913
|
-
id: "widget-value-field",
|
|
4914
|
-
"data-testid": "widget-prop-value-field",
|
|
4915
|
-
type: "text",
|
|
4916
|
-
value: e.valueField ?? "",
|
|
4917
|
-
onChange: (e) => n({ valueField: e.target.value }),
|
|
4918
|
-
disabled: t,
|
|
4919
|
-
placeholder: "e.g. amount",
|
|
4920
|
-
className: "block w-full rounded-md border border-gray-300 px-2.5 py-1.5 text-sm outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500 disabled:bg-gray-50"
|
|
4921
|
-
})]
|
|
4922
|
-
}),
|
|
4923
|
-
/* @__PURE__ */ Y("div", {
|
|
4924
|
-
className: "space-y-1",
|
|
4925
|
-
children: [/* @__PURE__ */ J("label", {
|
|
4926
|
-
htmlFor: "widget-aggregate",
|
|
4927
|
-
className: "text-xs font-medium text-gray-600",
|
|
4928
|
-
children: "Aggregate"
|
|
4929
|
-
}), /* @__PURE__ */ Y("select", {
|
|
4930
|
-
id: "widget-aggregate",
|
|
4931
|
-
"data-testid": "widget-prop-aggregate",
|
|
4932
|
-
value: e.aggregate ?? "count",
|
|
4933
|
-
onChange: (e) => n({ aggregate: e.target.value }),
|
|
4934
|
-
disabled: t,
|
|
4935
|
-
className: "block w-full rounded-md border border-gray-300 px-2.5 py-1.5 text-sm outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500 disabled:bg-gray-50",
|
|
4936
|
-
children: [
|
|
4937
|
-
/* @__PURE__ */ J("option", {
|
|
4938
|
-
value: "count",
|
|
4939
|
-
children: "Count"
|
|
4940
|
-
}),
|
|
4941
|
-
/* @__PURE__ */ J("option", {
|
|
4942
|
-
value: "sum",
|
|
4943
|
-
children: "Sum"
|
|
4944
|
-
}),
|
|
4945
|
-
/* @__PURE__ */ J("option", {
|
|
4946
|
-
value: "avg",
|
|
4947
|
-
children: "Average"
|
|
4948
|
-
}),
|
|
4949
|
-
/* @__PURE__ */ J("option", {
|
|
4950
|
-
value: "min",
|
|
4951
|
-
children: "Min"
|
|
4952
|
-
}),
|
|
4953
|
-
/* @__PURE__ */ J("option", {
|
|
4954
|
-
value: "max",
|
|
4955
|
-
children: "Max"
|
|
4956
|
-
})
|
|
4957
|
-
]
|
|
4958
|
-
})]
|
|
4959
|
-
}),
|
|
4960
4875
|
/* @__PURE__ */ Y("div", {
|
|
4961
4876
|
className: "space-y-1",
|
|
4962
4877
|
children: [/* @__PURE__ */ J("label", {
|
|
@@ -5097,7 +5012,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5097
5012
|
y,
|
|
5098
5013
|
d,
|
|
5099
5014
|
m
|
|
5100
|
-
]), { 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) => {
|
|
5101
5016
|
T(e), t(e);
|
|
5102
5017
|
}, [T, t]), M = S.widgets || [], N = M.find((e) => e.id === b), P = i((e) => {
|
|
5103
5018
|
let t = un(), n = {
|
|
@@ -5249,7 +5164,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5249
5164
|
disabled: !C,
|
|
5250
5165
|
className: "rounded p-1.5 text-gray-400 hover:text-gray-700 disabled:opacity-30",
|
|
5251
5166
|
"aria-label": f("appDesigner.undo"),
|
|
5252
|
-
children: /* @__PURE__ */ J(
|
|
5167
|
+
children: /* @__PURE__ */ J(Pe, { className: "h-4 w-4" })
|
|
5253
5168
|
}), /* @__PURE__ */ J("button", {
|
|
5254
5169
|
type: "button",
|
|
5255
5170
|
"data-testid": "dashboard-redo",
|
|
@@ -5257,7 +5172,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5257
5172
|
disabled: !w,
|
|
5258
5173
|
className: "rounded p-1.5 text-gray-400 hover:text-gray-700 disabled:opacity-30",
|
|
5259
5174
|
"aria-label": f("appDesigner.redo"),
|
|
5260
|
-
children: /* @__PURE__ */ J(
|
|
5175
|
+
children: /* @__PURE__ */ J(Se, { className: "h-4 w-4" })
|
|
5261
5176
|
})] }),
|
|
5262
5177
|
/* @__PURE__ */ J("button", {
|
|
5263
5178
|
type: "button",
|
|
@@ -5273,7 +5188,7 @@ function mn({ schema: e, onChange: t, readOnly: n = !1, className: r, onExport:
|
|
|
5273
5188
|
onClick: z,
|
|
5274
5189
|
className: "rounded p-1.5 text-gray-400 hover:text-gray-700",
|
|
5275
5190
|
"aria-label": f("appDesigner.navImportSchema"),
|
|
5276
|
-
children: /* @__PURE__ */ J(
|
|
5191
|
+
children: /* @__PURE__ */ J(Fe, { className: "h-4 w-4" })
|
|
5277
5192
|
}),
|
|
5278
5193
|
/* @__PURE__ */ J("button", {
|
|
5279
5194
|
type: "button",
|
|
@@ -5389,7 +5304,7 @@ var hn = [
|
|
|
5389
5304
|
"system-ui"
|
|
5390
5305
|
];
|
|
5391
5306
|
function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1, className: a, onExport: s, onImport: u }) {
|
|
5392
|
-
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);
|
|
5393
5308
|
o(() => {
|
|
5394
5309
|
if (b.current) {
|
|
5395
5310
|
b.current = !1;
|
|
@@ -5469,7 +5384,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5469
5384
|
disabled: !g || r,
|
|
5470
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"),
|
|
5471
5386
|
title: d("appDesigner.undo"),
|
|
5472
|
-
children: [/* @__PURE__ */ J(
|
|
5387
|
+
children: [/* @__PURE__ */ J(Pe, { className: "h-3.5 w-3.5" }), d("appDesigner.undo")]
|
|
5473
5388
|
}),
|
|
5474
5389
|
/* @__PURE__ */ Y("button", {
|
|
5475
5390
|
"data-testid": "branding-redo",
|
|
@@ -5478,7 +5393,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5478
5393
|
disabled: !_ || r,
|
|
5479
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"),
|
|
5480
5395
|
title: d("appDesigner.redo"),
|
|
5481
|
-
children: [/* @__PURE__ */ J(
|
|
5396
|
+
children: [/* @__PURE__ */ J(Se, { className: "h-3.5 w-3.5" }), d("appDesigner.redo")]
|
|
5482
5397
|
}),
|
|
5483
5398
|
/* @__PURE__ */ Y("button", {
|
|
5484
5399
|
"data-testid": "branding-export",
|
|
@@ -5495,7 +5410,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5495
5410
|
disabled: r,
|
|
5496
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"),
|
|
5497
5412
|
title: d("appDesigner.brandingImport"),
|
|
5498
|
-
children: [/* @__PURE__ */ J(
|
|
5413
|
+
children: [/* @__PURE__ */ J(Fe, { className: "h-3.5 w-3.5" }), d("appDesigner.brandingImport")]
|
|
5499
5414
|
})
|
|
5500
5415
|
]
|
|
5501
5416
|
}), /* @__PURE__ */ Y("div", {
|
|
@@ -5603,7 +5518,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5603
5518
|
children: d("appDesigner.fontFamily")
|
|
5604
5519
|
}), /* @__PURE__ */ Y("div", {
|
|
5605
5520
|
className: "relative",
|
|
5606
|
-
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", {
|
|
5607
5522
|
id: "be-font",
|
|
5608
5523
|
"data-testid": "branding-font-select",
|
|
5609
5524
|
value: m.fontFamily ?? "",
|
|
@@ -5637,7 +5552,7 @@ function _n({ branding: e, onChange: t, appTitle: n = "My App", readOnly: r = !1
|
|
|
5637
5552
|
type: "button",
|
|
5638
5553
|
onClick: () => p("light"),
|
|
5639
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"),
|
|
5640
|
-
children: [/* @__PURE__ */ J(
|
|
5555
|
+
children: [/* @__PURE__ */ J(Oe, { className: "h-3.5 w-3.5" }), d("appDesigner.modeLight")]
|
|
5641
5556
|
}), /* @__PURE__ */ Y("button", {
|
|
5642
5557
|
"data-testid": "branding-mode-dark",
|
|
5643
5558
|
type: "button",
|
|
@@ -5789,7 +5704,7 @@ var yn = [
|
|
|
5789
5704
|
"CreditCard"
|
|
5790
5705
|
];
|
|
5791
5706
|
function xn({ objects: e, onObjectsChange: n, onSelectObject: r, showSystemObjects: a = !0, readOnly: o = !1, className: c }) {
|
|
5792
|
-
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(() => [
|
|
5793
5708
|
{
|
|
5794
5709
|
field: "name",
|
|
5795
5710
|
label: u("appDesigner.objectManager.objectName"),
|
|
@@ -5983,7 +5898,7 @@ function xn({ objects: e, onObjectsChange: n, onSelectObject: r, showSystemObjec
|
|
|
5983
5898
|
]
|
|
5984
5899
|
})
|
|
5985
5900
|
}),
|
|
5986
|
-
/* @__PURE__ */ J(
|
|
5901
|
+
/* @__PURE__ */ J(Je, {
|
|
5987
5902
|
schema: y,
|
|
5988
5903
|
dataSource: _,
|
|
5989
5904
|
onRowClick: b,
|
|
@@ -5991,8 +5906,8 @@ function xn({ objects: e, onObjectsChange: n, onSelectObject: r, showSystemObjec
|
|
|
5991
5906
|
onDelete: o ? void 0 : S,
|
|
5992
5907
|
onAddRecord: o ? void 0 : C
|
|
5993
5908
|
}),
|
|
5994
|
-
f && /* @__PURE__ */ J(
|
|
5995
|
-
/* @__PURE__ */ J(
|
|
5909
|
+
f && /* @__PURE__ */ J(Xe, { schema: D }),
|
|
5910
|
+
/* @__PURE__ */ J(ct, {
|
|
5996
5911
|
isOpen: d.isOpen,
|
|
5997
5912
|
title: d.title,
|
|
5998
5913
|
message: d.message,
|
|
@@ -6013,7 +5928,7 @@ function Sn(...e) {
|
|
|
6013
5928
|
var Cn = {
|
|
6014
5929
|
text: {
|
|
6015
5930
|
label: "Text",
|
|
6016
|
-
Icon:
|
|
5931
|
+
Icon: Ne
|
|
6017
5932
|
},
|
|
6018
5933
|
textarea: {
|
|
6019
5934
|
label: "Text Area",
|
|
@@ -6025,7 +5940,7 @@ var Cn = {
|
|
|
6025
5940
|
},
|
|
6026
5941
|
boolean: {
|
|
6027
5942
|
label: "Checkbox",
|
|
6028
|
-
Icon:
|
|
5943
|
+
Icon: Ae
|
|
6029
5944
|
},
|
|
6030
5945
|
date: {
|
|
6031
5946
|
label: "Date",
|
|
@@ -6113,15 +6028,13 @@ var Cn = {
|
|
|
6113
6028
|
},
|
|
6114
6029
|
rating: {
|
|
6115
6030
|
label: "Rating",
|
|
6116
|
-
Icon:
|
|
6031
|
+
Icon: De
|
|
6117
6032
|
},
|
|
6118
6033
|
slider: {
|
|
6119
6034
|
label: "Slider",
|
|
6120
|
-
Icon:
|
|
6035
|
+
Icon: Te
|
|
6121
6036
|
}
|
|
6122
|
-
}
|
|
6123
|
-
Object.keys(Cn);
|
|
6124
|
-
var wn = {
|
|
6037
|
+
}, wn = {
|
|
6125
6038
|
text: [
|
|
6126
6039
|
"text",
|
|
6127
6040
|
"textarea",
|
|
@@ -6165,7 +6078,7 @@ var wn = {
|
|
|
6165
6078
|
"advanced"
|
|
6166
6079
|
];
|
|
6167
6080
|
function En({ objectName: e, fields: n, onFieldsChange: r, readOnly: a = !1, className: o }) {
|
|
6168
|
-
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(() => [
|
|
6169
6082
|
{
|
|
6170
6083
|
field: "name",
|
|
6171
6084
|
label: c("appDesigner.fieldDesigner.fieldName"),
|
|
@@ -6498,15 +6411,15 @@ function En({ objectName: e, fields: n, onFieldsChange: r, readOnly: a = !1, cla
|
|
|
6498
6411
|
}, e.category))]
|
|
6499
6412
|
})]
|
|
6500
6413
|
}),
|
|
6501
|
-
/* @__PURE__ */ J(
|
|
6414
|
+
/* @__PURE__ */ J(Je, {
|
|
6502
6415
|
schema: b,
|
|
6503
6416
|
dataSource: v,
|
|
6504
6417
|
onEdit: a ? void 0 : x,
|
|
6505
6418
|
onDelete: a ? void 0 : S,
|
|
6506
6419
|
onAddRecord: a ? void 0 : w
|
|
6507
6420
|
}),
|
|
6508
|
-
d && /* @__PURE__ */ J(
|
|
6509
|
-
/* @__PURE__ */ J(
|
|
6421
|
+
d && /* @__PURE__ */ J(Ye, { schema: k }),
|
|
6422
|
+
/* @__PURE__ */ J(ct, {
|
|
6510
6423
|
isOpen: u.isOpen,
|
|
6511
6424
|
title: u.title,
|
|
6512
6425
|
message: u.message,
|
|
@@ -6561,7 +6474,7 @@ function On({ versions: e, onRestore: t, className: n }) {
|
|
|
6561
6474
|
/* @__PURE__ */ Y("div", {
|
|
6562
6475
|
className: "flex items-center gap-2 mt-1 text-[0.65rem] text-muted-foreground/70",
|
|
6563
6476
|
children: [
|
|
6564
|
-
/* @__PURE__ */ J(
|
|
6477
|
+
/* @__PURE__ */ J(Ie, { className: "h-2.5 w-2.5" }),
|
|
6565
6478
|
/* @__PURE__ */ J("span", { children: e.userName }),
|
|
6566
6479
|
/* @__PURE__ */ J(x, { className: "h-2.5 w-2.5 ml-1" }),
|
|
6567
6480
|
/* @__PURE__ */ J("span", { children: new Date(e.timestamp).toLocaleString() })
|
|
@@ -6583,7 +6496,7 @@ function On({ versions: e, onRestore: t, className: n }) {
|
|
|
6583
6496
|
//#region src/pages/CreateAppPage.tsx
|
|
6584
6497
|
var kn = "objectui-app-wizard-draft";
|
|
6585
6498
|
function An() {
|
|
6586
|
-
let e =
|
|
6499
|
+
let e = Ze(), { appName: t } = Qe(), { objects: n, refresh: r } = Ke(), a = Ge(), o = (n || []).map((e) => ({
|
|
6587
6500
|
name: e.name,
|
|
6588
6501
|
label: e.label || e.name,
|
|
6589
6502
|
pluralLabel: e.pluralLabel,
|
|
@@ -6596,10 +6509,10 @@ function An() {
|
|
|
6596
6509
|
} catch {}
|
|
6597
6510
|
}, []), c = i(async (t) => {
|
|
6598
6511
|
try {
|
|
6599
|
-
let n =
|
|
6600
|
-
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}`);
|
|
6601
6514
|
} catch (e) {
|
|
6602
|
-
|
|
6515
|
+
$e.error(e?.message || "Failed to create application");
|
|
6603
6516
|
}
|
|
6604
6517
|
}, [
|
|
6605
6518
|
e,
|
|
@@ -6609,7 +6522,7 @@ function An() {
|
|
|
6609
6522
|
e(t ? `/apps/${t}` : "/");
|
|
6610
6523
|
}, [e, t]), u = i((e) => {
|
|
6611
6524
|
try {
|
|
6612
|
-
localStorage.setItem(kn, JSON.stringify(e)),
|
|
6525
|
+
localStorage.setItem(kn, JSON.stringify(e)), $e.info("Draft saved");
|
|
6613
6526
|
} catch {}
|
|
6614
6527
|
}, []);
|
|
6615
6528
|
return /* @__PURE__ */ J("div", {
|
|
@@ -6627,7 +6540,7 @@ function An() {
|
|
|
6627
6540
|
//#endregion
|
|
6628
6541
|
//#region src/pages/EditAppPage.tsx
|
|
6629
6542
|
function jn() {
|
|
6630
|
-
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) => ({
|
|
6631
6544
|
name: e.name,
|
|
6632
6545
|
label: e.label || e.name,
|
|
6633
6546
|
pluralLabel: e.pluralLabel,
|
|
@@ -6649,13 +6562,13 @@ function jn() {
|
|
|
6649
6562
|
};
|
|
6650
6563
|
}, [u]), p = i(async (t) => {
|
|
6651
6564
|
try {
|
|
6652
|
-
let n =
|
|
6565
|
+
let n = Ue(t), r = {
|
|
6653
6566
|
...u,
|
|
6654
6567
|
...n
|
|
6655
6568
|
}, i = c?.getClient();
|
|
6656
|
-
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}`);
|
|
6657
6570
|
} catch (e) {
|
|
6658
|
-
|
|
6571
|
+
$e.error(e?.message || "Failed to update application");
|
|
6659
6572
|
}
|
|
6660
6573
|
}, [
|
|
6661
6574
|
e,
|
|
@@ -6666,7 +6579,7 @@ function jn() {
|
|
|
6666
6579
|
e(t ? `/apps/${t}` : "/");
|
|
6667
6580
|
}, [e, t]), h = i((e) => {
|
|
6668
6581
|
try {
|
|
6669
|
-
localStorage.setItem(`objectui-edit-draft-${l}`, JSON.stringify(e)),
|
|
6582
|
+
localStorage.setItem(`objectui-edit-draft-${l}`, JSON.stringify(e)), $e.info("Draft saved");
|
|
6670
6583
|
} catch {}
|
|
6671
6584
|
}, [l]);
|
|
6672
6585
|
return u ? /* @__PURE__ */ J("div", {
|
|
@@ -6695,7 +6608,7 @@ function jn() {
|
|
|
6695
6608
|
//#endregion
|
|
6696
6609
|
//#region src/pages/DashboardDesignPage.tsx
|
|
6697
6610
|
function Mn() {
|
|
6698
|
-
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 || {
|
|
6699
6612
|
type: "dashboard",
|
|
6700
6613
|
name: t ?? "",
|
|
6701
6614
|
title: t ?? "",
|
|
@@ -6718,16 +6631,16 @@ function Mn() {
|
|
|
6718
6631
|
o(() => {
|
|
6719
6632
|
let e = (e) => {
|
|
6720
6633
|
(e.ctrlKey || e.metaKey) && e.key === "s" && (e.preventDefault(), m(p.current).then((e) => {
|
|
6721
|
-
e &&
|
|
6634
|
+
e && $e.success("Dashboard saved");
|
|
6722
6635
|
}));
|
|
6723
6636
|
};
|
|
6724
6637
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
6725
6638
|
}, [m]);
|
|
6726
6639
|
let g = i((e) => {
|
|
6727
6640
|
let n = new Blob([JSON.stringify(e, null, 2)], { type: "application/json" }), r = URL.createObjectURL(n), i = document.createElement("a");
|
|
6728
|
-
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");
|
|
6729
6642
|
}, [t]), _ = i((e) => {
|
|
6730
|
-
|
|
6643
|
+
$e.success("Dashboard schema imported"), h(e);
|
|
6731
6644
|
}, [h]);
|
|
6732
6645
|
return s ? /* @__PURE__ */ Y("div", {
|
|
6733
6646
|
className: "h-full flex flex-col",
|
|
@@ -6783,7 +6696,7 @@ function Pn({ client: e, clientConfig: t, hideSystemObjects: n = !1, readOnly: r
|
|
|
6783
6696
|
let u = s(() => {
|
|
6784
6697
|
if (e) return e;
|
|
6785
6698
|
if (!t) throw Error("MetadataObjectsPage: provide either `client` or `clientConfig`.");
|
|
6786
|
-
return new
|
|
6699
|
+
return new et(t);
|
|
6787
6700
|
}, [e, t]), [d, f] = l({
|
|
6788
6701
|
loading: !0,
|
|
6789
6702
|
error: null,
|
|
@@ -6875,7 +6788,7 @@ function Pn({ client: e, clientConfig: t, hideSystemObjects: n = !1, readOnly: r
|
|
|
6875
6788
|
}
|
|
6876
6789
|
//#endregion
|
|
6877
6790
|
//#region src/MetadataFieldsPage.tsx
|
|
6878
|
-
var Fn =
|
|
6791
|
+
var Fn = new Set(Ve);
|
|
6879
6792
|
function In(e) {
|
|
6880
6793
|
return e && Fn.has(e) ? e : "text";
|
|
6881
6794
|
}
|
|
@@ -6925,7 +6838,7 @@ function zn({ objectName: e, client: t, clientConfig: n, readOnly: r = !1, class
|
|
|
6925
6838
|
let c = s(() => {
|
|
6926
6839
|
if (t) return t;
|
|
6927
6840
|
if (!n) throw Error("MetadataFieldsPage: provide either `client` or `clientConfig`.");
|
|
6928
|
-
return new
|
|
6841
|
+
return new et(n);
|
|
6929
6842
|
}, [t, n]), [u, d] = l({
|
|
6930
6843
|
loading: !0,
|
|
6931
6844
|
error: null,
|
|
@@ -7005,7 +6918,7 @@ function zn({ objectName: e, client: t, clientConfig: n, readOnly: r = !1, class
|
|
|
7005
6918
|
})]
|
|
7006
6919
|
});
|
|
7007
6920
|
}
|
|
7008
|
-
e.register("page-designer",
|
|
6921
|
+
e.register("page-designer", bt, {
|
|
7009
6922
|
namespace: "plugin-designer",
|
|
7010
6923
|
label: "Page Designer",
|
|
7011
6924
|
category: "Designer",
|
|
@@ -7039,7 +6952,7 @@ e.register("page-designer", vt, {
|
|
|
7039
6952
|
defaultValue: !1
|
|
7040
6953
|
}
|
|
7041
6954
|
]
|
|
7042
|
-
}), e.register("data-model-designer",
|
|
6955
|
+
}), e.register("data-model-designer", Et, {
|
|
7043
6956
|
namespace: "plugin-designer",
|
|
7044
6957
|
label: "Data Model Designer",
|
|
7045
6958
|
category: "Designer",
|
|
@@ -7067,7 +6980,7 @@ e.register("page-designer", vt, {
|
|
|
7067
6980
|
defaultValue: !1
|
|
7068
6981
|
}
|
|
7069
6982
|
]
|
|
7070
|
-
}), e.register("process-designer",
|
|
6983
|
+
}), e.register("process-designer", jt, {
|
|
7071
6984
|
namespace: "plugin-designer",
|
|
7072
6985
|
label: "Process Designer (BPMN)",
|
|
7073
6986
|
category: "Designer",
|
|
@@ -7106,7 +7019,7 @@ e.register("page-designer", vt, {
|
|
|
7106
7019
|
defaultValue: !1
|
|
7107
7020
|
}
|
|
7108
7021
|
]
|
|
7109
|
-
}), e.register("report-designer",
|
|
7022
|
+
}), e.register("report-designer", Ft, {
|
|
7110
7023
|
namespace: "plugin-designer",
|
|
7111
7024
|
label: "Report Designer",
|
|
7112
7025
|
category: "Designer",
|
|
@@ -7273,4 +7186,4 @@ e.register("page-designer", vt, {
|
|
|
7273
7186
|
]
|
|
7274
7187
|
});
|
|
7275
7188
|
//#endregion
|
|
7276
|
-
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 };
|