@juicemantics/veloiq-ui 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +839 -788
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +93 -42
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React6, { createContext, lazy, useContext, useMemo, useState, useRef, useEffect, useCallback, useLayoutEffect, useSyncExternalStore, Suspense, useId, useImperativeHandle } from 'react';
|
|
2
2
|
import { ThemedLayoutV2, Show, List, useForm, DeleteButton, useTable, RefineThemes, Breadcrumb as Breadcrumb$1, Create, useSelect, Edit, ListButton, EditButton, RefreshButton } from '@refinedev/antd';
|
|
3
3
|
import { useMenu, useGo, useGetIdentity, useLogout, useOne, useApiUrl, useCan, useInvalidate, useCustom, useLogin, useWarnAboutChange } from '@refinedev/core';
|
|
4
4
|
import { Typography, Menu, theme, Layout, Space, AutoComplete, Input, Spin, ConfigProvider, Divider, Row, Col, Card, Grid, Form, Drawer, Modal, Button, Skeleton, Tooltip, message, Switch, Tabs, Alert, Empty, Collapse, Select, Table, DatePicker, InputNumber, Checkbox, Pagination, Breadcrumb, Tree, Tag, List as List$1, Popover, Dropdown, Avatar, TimePicker, Upload, Rate, Progress } from 'antd';
|
|
@@ -20,8 +20,6 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
20
20
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
21
21
|
var ColorModeContext = createContext({ mode: "light", setMode: () => {
|
|
22
22
|
}, schemaVersion: 0 });
|
|
23
|
-
|
|
24
|
-
// src/utils/modelTone.ts
|
|
25
23
|
var MODEL_TONES_LIGHT = [
|
|
26
24
|
{ solid: "#2563eb", soft: "#dbeafe", softer: "#eff6ff", text: "#1e3a8a", border: "#93c5fd", shadow: "rgba(37, 99, 235, 0.22)" },
|
|
27
25
|
{ solid: "#0f766e", soft: "#ccfbf1", softer: "#f0fdfa", text: "#115e59", border: "#5eead4", shadow: "rgba(15, 118, 110, 0.22)" },
|
|
@@ -138,6 +136,10 @@ var setColorSchemas = (schemas) => {
|
|
|
138
136
|
const darkBgContent = `rgb(${shade(r, 0.06)}, ${shade(g, 0.06)}, ${shade(b, 0.06)})`;
|
|
139
137
|
const darkBgElements = `rgb(${shade(r, 0.11)}, ${shade(g, 0.11)}, ${shade(b, 0.11)})`;
|
|
140
138
|
const darkBgHover = `rgb(${shade(r, 0.16)}, ${shade(g, 0.16)}, ${shade(b, 0.16)})`;
|
|
139
|
+
const sidebarLightBg = hex;
|
|
140
|
+
const sidebarLightText = isDarkColor(hex) ? "#ffffff" : "#0f172a";
|
|
141
|
+
const sidebarDarkBg = lightBgElements;
|
|
142
|
+
const sidebarDarkText = "#0f172a";
|
|
141
143
|
styleEl.innerHTML = `
|
|
142
144
|
/* --- LIGHT MODE OVERRIDES --- */
|
|
143
145
|
body.jm-light .ant-layout,
|
|
@@ -151,7 +153,31 @@ var setColorSchemas = (schemas) => {
|
|
|
151
153
|
body.jm-light .ant-menu,
|
|
152
154
|
body.jm-light .ant-menu-submenu,
|
|
153
155
|
body.jm-light .ant-menu-submenu-title,
|
|
154
|
-
body.jm-light .ant-layout-header
|
|
156
|
+
body.jm-light .ant-layout-header {
|
|
157
|
+
background-color: ${sidebarLightBg} !important;
|
|
158
|
+
color: ${sidebarLightText} !important;
|
|
159
|
+
}
|
|
160
|
+
body.jm-light .ant-layout-sider *:not(input):not(textarea):not(.ant-input):not(.ant-select-selector):not(.ant-select-selection-item):not(.ant-select-selection-search-input),
|
|
161
|
+
body.jm-light .ant-layout-header *:not(input):not(textarea):not(.ant-input):not(.ant-select-selector):not(.ant-select-selection-item):not(.ant-select-selection-search-input) {
|
|
162
|
+
color: ${sidebarLightText} !important;
|
|
163
|
+
}
|
|
164
|
+
body.jm-light .ant-layout-sider .ant-menu-item-selected,
|
|
165
|
+
body.jm-light .ant-layout-sider .ant-menu-item-selected *,
|
|
166
|
+
body.jm-light .ant-layout-sider .ant-menu-item:hover,
|
|
167
|
+
body.jm-light .ant-layout-sider .ant-menu-item:hover *,
|
|
168
|
+
body.jm-light .ant-layout-header .ant-menu-item-selected,
|
|
169
|
+
body.jm-light .ant-layout-header .ant-menu-item-selected *,
|
|
170
|
+
body.jm-light .ant-layout-header .ant-menu-item:hover,
|
|
171
|
+
body.jm-light .ant-layout-header .ant-menu-item:hover * {
|
|
172
|
+
color: revert !important;
|
|
173
|
+
}
|
|
174
|
+
body.jm-light .ant-menu-submenu-popup {
|
|
175
|
+
background-color: ${sidebarLightBg} !important;
|
|
176
|
+
}
|
|
177
|
+
body.jm-light .ant-menu-submenu-popup .ant-menu-item:not(.ant-menu-item-selected),
|
|
178
|
+
body.jm-light .ant-menu-submenu-popup .ant-menu-submenu-title:not(.ant-menu-submenu-selected) {
|
|
179
|
+
color: ${sidebarLightText} !important;
|
|
180
|
+
}
|
|
155
181
|
body.jm-light .ant-card,
|
|
156
182
|
body.jm-light .ant-table-wrapper .ant-table,
|
|
157
183
|
body.jm-light .ant-table-thead > tr > th,
|
|
@@ -181,7 +207,31 @@ var setColorSchemas = (schemas) => {
|
|
|
181
207
|
body.jm-dark .ant-menu,
|
|
182
208
|
body.jm-dark .ant-menu-submenu,
|
|
183
209
|
body.jm-dark .ant-menu-submenu-title,
|
|
184
|
-
body.jm-dark .ant-layout-header
|
|
210
|
+
body.jm-dark .ant-layout-header {
|
|
211
|
+
background-color: ${sidebarDarkBg} !important;
|
|
212
|
+
color: ${sidebarDarkText} !important;
|
|
213
|
+
}
|
|
214
|
+
body.jm-dark .ant-layout-sider *:not(input):not(textarea):not(.ant-input):not(.ant-select-selector):not(.ant-select-selection-item):not(.ant-select-selection-search-input),
|
|
215
|
+
body.jm-dark .ant-layout-header *:not(input):not(textarea):not(.ant-input):not(.ant-select-selector):not(.ant-select-selection-item):not(.ant-select-selection-search-input) {
|
|
216
|
+
color: ${sidebarDarkText} !important;
|
|
217
|
+
}
|
|
218
|
+
body.jm-dark .ant-layout-sider .ant-menu-item-selected,
|
|
219
|
+
body.jm-dark .ant-layout-sider .ant-menu-item-selected *,
|
|
220
|
+
body.jm-dark .ant-layout-sider .ant-menu-item:hover,
|
|
221
|
+
body.jm-dark .ant-layout-sider .ant-menu-item:hover *,
|
|
222
|
+
body.jm-dark .ant-layout-header .ant-menu-item-selected,
|
|
223
|
+
body.jm-dark .ant-layout-header .ant-menu-item-selected *,
|
|
224
|
+
body.jm-dark .ant-layout-header .ant-menu-item:hover,
|
|
225
|
+
body.jm-dark .ant-layout-header .ant-menu-item:hover * {
|
|
226
|
+
color: revert !important;
|
|
227
|
+
}
|
|
228
|
+
body.jm-dark .ant-menu-submenu-popup {
|
|
229
|
+
background-color: ${sidebarDarkBg} !important;
|
|
230
|
+
}
|
|
231
|
+
body.jm-dark .ant-menu-submenu-popup .ant-menu-item:not(.ant-menu-item-selected),
|
|
232
|
+
body.jm-dark .ant-menu-submenu-popup .ant-menu-submenu-title:not(.ant-menu-submenu-selected) {
|
|
233
|
+
color: ${sidebarDarkText} !important;
|
|
234
|
+
}
|
|
185
235
|
body.jm-dark .ant-card,
|
|
186
236
|
body.jm-dark .ant-table-wrapper .ant-table,
|
|
187
237
|
body.jm-dark .ant-table-thead > tr > th,
|
|
@@ -281,7 +331,7 @@ function guessIcon(text, isModule = false) {
|
|
|
281
331
|
function resolveIcon(iconName) {
|
|
282
332
|
const registry = AntDIcons2;
|
|
283
333
|
const IconCls = registry[iconName];
|
|
284
|
-
return IconCls ?
|
|
334
|
+
return IconCls ? React6.createElement(IconCls) : React6.createElement(registry["TableOutlined"]);
|
|
285
335
|
}
|
|
286
336
|
function getNavEntry(navConfig, key) {
|
|
287
337
|
return navConfig.find((e) => e.key === key);
|
|
@@ -369,6 +419,7 @@ function injectJourneyMenuItems(items, byModule) {
|
|
|
369
419
|
return walk(items);
|
|
370
420
|
}
|
|
371
421
|
var HorizontalMenu = ({ navConfig = [] }) => {
|
|
422
|
+
const { mode } = useContext(ColorModeContext);
|
|
372
423
|
const { menuItems, selectedKey } = useMenu();
|
|
373
424
|
const go = useGo();
|
|
374
425
|
const journeysByModule = useJourneyMenuItems();
|
|
@@ -394,7 +445,7 @@ var HorizontalMenu = ({ navConfig = [] }) => {
|
|
|
394
445
|
const renderLabel = (item, depth, hasChildren) => {
|
|
395
446
|
const label = String(item?.label || item?.name || item?.key || "");
|
|
396
447
|
const isModule = depth === 0 || hasChildren;
|
|
397
|
-
|
|
448
|
+
isModule ? getModelTone(`module:${item?.key || label}`) : getModelTone(resolveModelSeed(item));
|
|
398
449
|
return /* @__PURE__ */ jsx(
|
|
399
450
|
"span",
|
|
400
451
|
{
|
|
@@ -404,7 +455,7 @@ var HorizontalMenu = ({ navConfig = [] }) => {
|
|
|
404
455
|
padding: isModule ? "2px 5px" : "1px 5px",
|
|
405
456
|
borderRadius: 8,
|
|
406
457
|
background: "transparent",
|
|
407
|
-
color:
|
|
458
|
+
color: "inherit",
|
|
408
459
|
fontWeight: 400
|
|
409
460
|
},
|
|
410
461
|
children: label
|
|
@@ -430,6 +481,7 @@ var HorizontalMenu = ({ navConfig = [] }) => {
|
|
|
430
481
|
Menu,
|
|
431
482
|
{
|
|
432
483
|
mode: "horizontal",
|
|
484
|
+
theme: mode === "dark" ? "light" : "dark",
|
|
433
485
|
selectedKeys: [selectedKey],
|
|
434
486
|
items,
|
|
435
487
|
style: {
|
|
@@ -468,7 +520,7 @@ var CustomSider = ({ collapsed, logo, appTitle, navConfig = [] }) => {
|
|
|
468
520
|
const renderLabel = (item, depth, hasChildren) => {
|
|
469
521
|
const label = String(item?.label || item?.name || item?.key || "");
|
|
470
522
|
const isModule = depth === 0 || hasChildren;
|
|
471
|
-
|
|
523
|
+
isModule ? getModelTone(`module:${item?.key || label}`) : getModelTone(resolveModelSeed(item));
|
|
472
524
|
return /* @__PURE__ */ jsx(
|
|
473
525
|
"span",
|
|
474
526
|
{
|
|
@@ -478,7 +530,7 @@ var CustomSider = ({ collapsed, logo, appTitle, navConfig = [] }) => {
|
|
|
478
530
|
padding: isModule ? "3px 8px" : "2px 8px",
|
|
479
531
|
borderRadius: 8,
|
|
480
532
|
background: "transparent",
|
|
481
|
-
color:
|
|
533
|
+
color: "inherit",
|
|
482
534
|
fontWeight: 400
|
|
483
535
|
},
|
|
484
536
|
children: label
|
|
@@ -731,6 +783,7 @@ var GlobalSearch = () => {
|
|
|
731
783
|
const navigate = useNavigate();
|
|
732
784
|
const [searchText, setSearchText] = useState("");
|
|
733
785
|
const { results: backendResults, searching, search, clear } = useRecordSearch();
|
|
786
|
+
const { token } = theme.useToken();
|
|
734
787
|
const searchableResources = useMemo(() => flattenMenuItems(menuItems), [menuItems]);
|
|
735
788
|
const resourceResults = useMemo(() => {
|
|
736
789
|
const q2 = searchText.toLowerCase().trim();
|
|
@@ -820,7 +873,7 @@ var GlobalSearch = () => {
|
|
|
820
873
|
suffix: !focused ? /* @__PURE__ */ jsx(Typography.Text, { type: "secondary", style: { fontSize: 9 }, children: "\u2303K" }) : void 0,
|
|
821
874
|
allowClear: true,
|
|
822
875
|
size: "small",
|
|
823
|
-
style: !focused ? { paddingInline: 2 } :
|
|
876
|
+
style: !focused ? { paddingInline: 2, color: token.colorText } : { color: token.colorText }
|
|
824
877
|
}
|
|
825
878
|
)
|
|
826
879
|
}
|
|
@@ -1276,7 +1329,7 @@ var CommandCenterPortal = ({
|
|
|
1276
1329
|
/* @__PURE__ */ jsx(Typography.Text, { style: SECTION_LABEL_STYLE, children: "Pinned" }),
|
|
1277
1330
|
pinnedLoading && /* @__PURE__ */ jsx(Spin, { size: "small", style: { marginLeft: "auto" } })
|
|
1278
1331
|
] }),
|
|
1279
|
-
pinnedItems.length > 0 && /* @__PURE__ */ jsx("div", { style: { padding: "6px 10px", overflowY: "auto", maxHeight: 400 }, children: pinnedItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
1332
|
+
pinnedItems.length > 0 && /* @__PURE__ */ jsx("div", { style: { padding: "6px 10px", overflowY: "auto", maxHeight: 400 }, children: pinnedItems.map((item, idx) => /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1280
1333
|
idx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "2px 0", borderColor: "rgba(255,255,255,0.04)" } }),
|
|
1281
1334
|
renderRow(
|
|
1282
1335
|
`pin-${item.resource}-${item.id}`,
|
|
@@ -1299,7 +1352,7 @@ var CommandCenterPortal = ({
|
|
|
1299
1352
|
/* @__PURE__ */ jsx(ClockCircleOutlined, { style: { color: "rgba(255,255,255,0.45)", fontSize: 12 } }),
|
|
1300
1353
|
/* @__PURE__ */ jsx(Typography.Text, { style: SECTION_LABEL_STYLE, children: "Recent" })
|
|
1301
1354
|
] }),
|
|
1302
|
-
/* @__PURE__ */ jsx("div", { style: { padding: "6px 10px", overflowY: "auto", maxHeight: 400 }, children: recentItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
1355
|
+
/* @__PURE__ */ jsx("div", { style: { padding: "6px 10px", overflowY: "auto", maxHeight: 400 }, children: recentItems.map((item, idx) => /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1303
1356
|
idx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "2px 0", borderColor: "rgba(255,255,255,0.04)" } }),
|
|
1304
1357
|
renderRow(
|
|
1305
1358
|
`recent-${item.resource}-${item.id}`,
|
|
@@ -1328,7 +1381,7 @@ var CommandCenterPortal = ({
|
|
|
1328
1381
|
const moduleLabel = String(module.label || module.name || "");
|
|
1329
1382
|
const tone = getModelTone(moduleKey);
|
|
1330
1383
|
const children = navConfig.length > 0 ? sortItemsByNavConfig(module.children || [], navConfig) : module.children || [];
|
|
1331
|
-
return /* @__PURE__ */ jsxs(
|
|
1384
|
+
return /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1332
1385
|
modIdx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "5px 0", borderColor: "rgba(255,255,255,0.06)" } }),
|
|
1333
1386
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6, padding: "4px 8px 2px" }, children: [
|
|
1334
1387
|
/* @__PURE__ */ jsx("span", { style: { color: tone.solid, fontSize: 12, display: "flex", alignItems: "center" }, children: getItemIcon(moduleKey, moduleLabel, true) }),
|
|
@@ -1339,7 +1392,7 @@ var CommandCenterPortal = ({
|
|
|
1339
1392
|
const childLabel = String(child.label || child.name || "");
|
|
1340
1393
|
const childTone = getModelTone(childKey);
|
|
1341
1394
|
const childIcon = getItemIcon(childKey, childLabel, false, child.icon);
|
|
1342
|
-
return /* @__PURE__ */ jsxs(
|
|
1395
|
+
return /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1343
1396
|
idx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "2px 0", borderColor: "rgba(255,255,255,0.04)" } }),
|
|
1344
1397
|
/* @__PURE__ */ jsxs(
|
|
1345
1398
|
"div",
|
|
@@ -1391,7 +1444,7 @@ var CommandCenterPortal = ({
|
|
|
1391
1444
|
const moduleLabel = child.moduleLabel || "";
|
|
1392
1445
|
const navId = `cmd-${childKey}`;
|
|
1393
1446
|
const active = isActive(navId);
|
|
1394
|
-
return /* @__PURE__ */ jsxs(
|
|
1447
|
+
return /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1395
1448
|
idx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "2px 0", borderColor: "rgba(255,255,255,0.05)" } }),
|
|
1396
1449
|
/* @__PURE__ */ jsxs(
|
|
1397
1450
|
"div",
|
|
@@ -1435,13 +1488,13 @@ var CommandCenterPortal = ({
|
|
|
1435
1488
|
] }),
|
|
1436
1489
|
backendResults.length > 0 && /* @__PURE__ */ jsx("div", { style: { padding: "6px 10px" }, children: backendResults.map((modelResult, modelIdx) => {
|
|
1437
1490
|
const tone = getModelTone(modelResult.resource);
|
|
1438
|
-
return /* @__PURE__ */ jsxs(
|
|
1491
|
+
return /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1439
1492
|
modelIdx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "4px 0", borderColor: "rgba(255,255,255,0.05)" } }),
|
|
1440
1493
|
/* @__PURE__ */ jsx(Typography.Text, { style: { color: "rgba(255,255,255,0.35)", fontSize: 10, textTransform: "uppercase", letterSpacing: "0.07em", display: "block", padding: "4px 10px 2px" }, children: modelResult.modelLabel }),
|
|
1441
1494
|
modelResult.records.map((record, recIdx) => {
|
|
1442
1495
|
const navId = `record-${modelResult.resource}-${record.id}`;
|
|
1443
1496
|
const active = isActive(navId);
|
|
1444
|
-
return /* @__PURE__ */ jsxs(
|
|
1497
|
+
return /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1445
1498
|
recIdx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "2px 0", borderColor: "rgba(255,255,255,0.04)" } }),
|
|
1446
1499
|
/* @__PURE__ */ jsxs(
|
|
1447
1500
|
"div",
|
|
@@ -1523,7 +1576,7 @@ var CommandCenterPortal = ({
|
|
|
1523
1576
|
const childLabel = String(child.label || child.name || "");
|
|
1524
1577
|
const childTone = getModelTone(childKey);
|
|
1525
1578
|
const childIcon = getItemIcon(childKey, childLabel, false, child.icon);
|
|
1526
|
-
return /* @__PURE__ */ jsxs(
|
|
1579
|
+
return /* @__PURE__ */ jsxs(React6.Fragment, { children: [
|
|
1527
1580
|
idx > 0 && /* @__PURE__ */ jsx(Divider, { style: { margin: "2px 0", borderColor: "rgba(255,255,255,0.05)" } }),
|
|
1528
1581
|
/* @__PURE__ */ jsxs(
|
|
1529
1582
|
"div",
|
|
@@ -4648,7 +4701,7 @@ var extractButtonLabel = (node) => {
|
|
|
4648
4701
|
}
|
|
4649
4702
|
return null;
|
|
4650
4703
|
}
|
|
4651
|
-
if (
|
|
4704
|
+
if (React6.isValidElement(node)) {
|
|
4652
4705
|
return extractButtonLabel(node.props?.children);
|
|
4653
4706
|
}
|
|
4654
4707
|
return null;
|
|
@@ -4665,14 +4718,14 @@ var renderIconOnlyButtons = (nodes) => {
|
|
|
4665
4718
|
const enhanceNode = (node, index) => {
|
|
4666
4719
|
if (node === null || node === void 0 || typeof node === "boolean") return node;
|
|
4667
4720
|
if (Array.isArray(node)) return node.map((child, childIndex) => enhanceNode(child, childIndex));
|
|
4668
|
-
if (!
|
|
4721
|
+
if (!React6.isValidElement(node)) return node;
|
|
4669
4722
|
const componentName = node.type?.displayName || node.type?.name;
|
|
4670
4723
|
if (componentName === "RefreshButton") return null;
|
|
4671
4724
|
const fallbackLabel = componentName ? fallbackLabels[componentName] : null;
|
|
4672
4725
|
const nodeProps = node.props;
|
|
4673
4726
|
if (fallbackLabel) {
|
|
4674
4727
|
const label = extractButtonLabel(nodeProps?.children) || fallbackLabel;
|
|
4675
|
-
const element =
|
|
4728
|
+
const element = React6.cloneElement(node, {
|
|
4676
4729
|
...nodeProps,
|
|
4677
4730
|
hideText: true,
|
|
4678
4731
|
children: null
|
|
@@ -4683,7 +4736,7 @@ var renderIconOnlyButtons = (nodes) => {
|
|
|
4683
4736
|
if (nodeProps?.icon) {
|
|
4684
4737
|
const label = extractButtonLabel(nodeProps?.children);
|
|
4685
4738
|
if (label) {
|
|
4686
|
-
const element =
|
|
4739
|
+
const element = React6.cloneElement(node, {
|
|
4687
4740
|
...nodeProps,
|
|
4688
4741
|
children: null
|
|
4689
4742
|
});
|
|
@@ -4691,15 +4744,15 @@ var renderIconOnlyButtons = (nodes) => {
|
|
|
4691
4744
|
}
|
|
4692
4745
|
}
|
|
4693
4746
|
if (nodeProps?.children) {
|
|
4694
|
-
const mappedChildren =
|
|
4695
|
-
return
|
|
4747
|
+
const mappedChildren = React6.Children.map(nodeProps.children, (child, childIndex) => enhanceNode(child, childIndex));
|
|
4748
|
+
return React6.cloneElement(node, {
|
|
4696
4749
|
...nodeProps,
|
|
4697
4750
|
children: mappedChildren
|
|
4698
4751
|
});
|
|
4699
4752
|
}
|
|
4700
4753
|
return node;
|
|
4701
4754
|
};
|
|
4702
|
-
return
|
|
4755
|
+
return React6.Children.map(nodes, (child, index) => enhanceNode(child, index));
|
|
4703
4756
|
};
|
|
4704
4757
|
var ResponsiveHeaderButtons = ({ children }) => {
|
|
4705
4758
|
const screens = Grid.useBreakpoint();
|
|
@@ -4750,7 +4803,7 @@ var extractButtonLabel2 = (node) => {
|
|
|
4750
4803
|
}
|
|
4751
4804
|
return null;
|
|
4752
4805
|
}
|
|
4753
|
-
if (
|
|
4806
|
+
if (React6.isValidElement(node)) {
|
|
4754
4807
|
return extractButtonLabel2(node.props?.children);
|
|
4755
4808
|
}
|
|
4756
4809
|
return null;
|
|
@@ -4768,12 +4821,12 @@ var renderIconOnlyButtons2 = (nodes) => {
|
|
|
4768
4821
|
const enhanceNode = (node, index) => {
|
|
4769
4822
|
if (node === null || node === void 0 || typeof node === "boolean") return node;
|
|
4770
4823
|
if (Array.isArray(node)) return node.map((child, childIndex) => enhanceNode(child, childIndex));
|
|
4771
|
-
if (!
|
|
4824
|
+
if (!React6.isValidElement(node)) return node;
|
|
4772
4825
|
const componentName = node.type?.displayName || node.type?.name;
|
|
4773
4826
|
const fallbackLabel = componentName ? fallbackLabels[componentName] : null;
|
|
4774
4827
|
if (fallbackLabel) {
|
|
4775
4828
|
const label = extractButtonLabel2(node.props?.children) || fallbackLabel;
|
|
4776
|
-
const element =
|
|
4829
|
+
const element = React6.cloneElement(node, {
|
|
4777
4830
|
...node.props,
|
|
4778
4831
|
hideText: true,
|
|
4779
4832
|
children: null
|
|
@@ -4784,7 +4837,7 @@ var renderIconOnlyButtons2 = (nodes) => {
|
|
|
4784
4837
|
if (node.props?.icon) {
|
|
4785
4838
|
const label = extractButtonLabel2(node.props?.children);
|
|
4786
4839
|
if (label) {
|
|
4787
|
-
const element =
|
|
4840
|
+
const element = React6.cloneElement(node, {
|
|
4788
4841
|
...node.props,
|
|
4789
4842
|
children: null
|
|
4790
4843
|
});
|
|
@@ -4792,15 +4845,15 @@ var renderIconOnlyButtons2 = (nodes) => {
|
|
|
4792
4845
|
}
|
|
4793
4846
|
}
|
|
4794
4847
|
if (node.props?.children) {
|
|
4795
|
-
const mappedChildren =
|
|
4796
|
-
return
|
|
4848
|
+
const mappedChildren = React6.Children.map(node.props.children, (child, childIndex) => enhanceNode(child, childIndex));
|
|
4849
|
+
return React6.cloneElement(node, {
|
|
4797
4850
|
...node.props,
|
|
4798
4851
|
children: mappedChildren
|
|
4799
4852
|
});
|
|
4800
4853
|
}
|
|
4801
4854
|
return node;
|
|
4802
4855
|
};
|
|
4803
|
-
return
|
|
4856
|
+
return React6.Children.map(nodes, (child, index) => enhanceNode(child, index));
|
|
4804
4857
|
};
|
|
4805
4858
|
var renderStandardShowHeaderButtons = ({
|
|
4806
4859
|
listButtonProps,
|
|
@@ -4964,7 +5017,7 @@ var wrappedPageTitleStyle2 = {
|
|
|
4964
5017
|
};
|
|
4965
5018
|
var renderWrappedPageTitle = (title) => {
|
|
4966
5019
|
if (title === null || title === void 0 || title === false) return title;
|
|
4967
|
-
return
|
|
5020
|
+
return React6.createElement("div", { style: wrappedPageTitleStyle2 }, title);
|
|
4968
5021
|
};
|
|
4969
5022
|
var numberFormatter = new Intl.NumberFormat(void 0, { maximumFractionDigits: 0 });
|
|
4970
5023
|
var decimalFormatter = new Intl.NumberFormat(void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
|
|
@@ -8030,7 +8083,7 @@ var renderModelHeading = ({
|
|
|
8030
8083
|
paddingLeft: 10,
|
|
8031
8084
|
paddingRight: 10
|
|
8032
8085
|
},
|
|
8033
|
-
children: /* @__PURE__ */ jsx("div", { style: { minWidth: 0, fontSize:
|
|
8086
|
+
children: /* @__PURE__ */ jsx("div", { style: { minWidth: 0, fontSize: 18, fontWeight: 700, color: tone.solid, padding: "2px 8px" }, children: title })
|
|
8034
8087
|
}
|
|
8035
8088
|
);
|
|
8036
8089
|
};
|
|
@@ -8562,7 +8615,7 @@ var useShowActionsPreferences = (model, allModels, record, saveButtonProps, conf
|
|
|
8562
8615
|
headerButtons
|
|
8563
8616
|
};
|
|
8564
8617
|
};
|
|
8565
|
-
var PrimaryShowContext =
|
|
8618
|
+
var PrimaryShowContext = React6.createContext(null);
|
|
8566
8619
|
|
|
8567
8620
|
// src/components/DynamicResource/utils/columnFilters.ts
|
|
8568
8621
|
var truncateLabel = (s) => s.length > 15 ? s.substring(0, 15) + "\u2026" : s;
|
|
@@ -8907,7 +8960,7 @@ var RelationSelect = ({ field, value, onChange, allModels, multiple, serverSearc
|
|
|
8907
8960
|
const resolvedResource = resourceName && allModels ? resolveResourcePath(resourceName, allModels) : resourceName;
|
|
8908
8961
|
const referencedModel = resourceName ? findModelByName(allModels, resourceName) : void 0;
|
|
8909
8962
|
const resolvedOptionValue = field.optionValue || referencedModel?.pkField || "eid";
|
|
8910
|
-
const [loadAll, setLoadAll] =
|
|
8963
|
+
const [loadAll, setLoadAll] = React6.useState(false);
|
|
8911
8964
|
const pageSize = loadAll ? 999999 : RELATION_SELECT_DEFAULT_PAGE_SIZE;
|
|
8912
8965
|
const { selectProps, queryResult } = useSelect({
|
|
8913
8966
|
resource: resolvedResource,
|
|
@@ -8924,8 +8977,8 @@ var RelationSelect = ({ field, value, onChange, allModels, multiple, serverSearc
|
|
|
8924
8977
|
const loadedCount = filteredOptions?.length ?? 0;
|
|
8925
8978
|
const isCapped = !loadAll && serverTotal > loadedCount && loadedCount > 0;
|
|
8926
8979
|
const normalizeSearch = (val) => String(val ?? "").toLowerCase();
|
|
8927
|
-
const selectedSet =
|
|
8928
|
-
const [searchValue, setSearchValue] =
|
|
8980
|
+
const selectedSet = React6.useMemo(() => new Set(Array.isArray(value) ? value : value !== void 0 && value !== null ? [value] : []), [value]);
|
|
8981
|
+
const [searchValue, setSearchValue] = React6.useState("");
|
|
8929
8982
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
8930
8983
|
/* @__PURE__ */ jsx(
|
|
8931
8984
|
Select,
|
|
@@ -10477,7 +10530,6 @@ var SectionCellContent = ({
|
|
|
10477
10530
|
borderRadius: 6,
|
|
10478
10531
|
overflowWrap: "anywhere",
|
|
10479
10532
|
maxWidth: "100%",
|
|
10480
|
-
border: `1px solid ${token.colorBorder}`,
|
|
10481
10533
|
...parseInlineStyle(item.html_format)
|
|
10482
10534
|
};
|
|
10483
10535
|
const relationLabelStyle = {
|
|
@@ -10512,7 +10564,6 @@ var SectionCellContent = ({
|
|
|
10512
10564
|
lineHeight: 1.15,
|
|
10513
10565
|
background: valueBackground,
|
|
10514
10566
|
borderRadius: 6,
|
|
10515
|
-
border: `1px solid ${token.colorBorder}`,
|
|
10516
10567
|
maxWidth: "100%",
|
|
10517
10568
|
overflowWrap: "anywhere",
|
|
10518
10569
|
textAlign: field.type === "number" && !field.reference ? "right" : "left",
|
|
@@ -21775,7 +21826,7 @@ function usePinnedRecords() {
|
|
|
21775
21826
|
setLoading(false);
|
|
21776
21827
|
}
|
|
21777
21828
|
}, []);
|
|
21778
|
-
|
|
21829
|
+
React6.useEffect(() => {
|
|
21779
21830
|
load();
|
|
21780
21831
|
}, [load]);
|
|
21781
21832
|
return { groups, loading, reload: load };
|