@burojs/ui-shadcn 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{bulk-summary-2HLgz7Il.cjs → bulk-summary-Chc61Pyw.cjs} +9 -7
- package/dist/bulk-summary-Chc61Pyw.cjs.map +1 -0
- package/dist/{bulk-summary-D6A0ua21.js → bulk-summary-DpSQD2Fq.js} +9 -7
- package/dist/bulk-summary-DpSQD2Fq.js.map +1 -0
- package/dist/{candidates-relation-picker-QvoY2bOQ.js → candidates-relation-picker-DRsHKe6N.js} +3 -3
- package/dist/{candidates-relation-picker-QvoY2bOQ.js.map → candidates-relation-picker-DRsHKe6N.js.map} +1 -1
- package/dist/{candidates-relation-picker-pEAWKQEY.cjs → candidates-relation-picker-GIxsp7D_.cjs} +3 -3
- package/dist/{candidates-relation-picker-pEAWKQEY.cjs.map → candidates-relation-picker-GIxsp7D_.cjs.map} +1 -1
- package/dist/{check-confirm-dialog-W-8WOmGh.cjs → check-confirm-dialog-BMSb7wFv.cjs} +17 -9
- package/dist/check-confirm-dialog-BMSb7wFv.cjs.map +1 -0
- package/dist/{check-confirm-dialog-B-CbJTln.js → check-confirm-dialog-B_u3YVHS.js} +18 -10
- package/dist/{check-confirm-dialog-B-CbJTln.js.map → check-confirm-dialog-B_u3YVHS.js.map} +1 -1
- package/dist/{filter-builder-04nas3eq.js → filter-builder-DX-xC3Yd.js} +2 -2
- package/dist/{filter-builder-04nas3eq.js.map → filter-builder-DX-xC3Yd.js.map} +1 -1
- package/dist/{filter-builder-DQX-TMFh.cjs → filter-builder-Dt5E8PSX.cjs} +2 -2
- package/dist/{filter-builder-DQX-TMFh.cjs.map → filter-builder-Dt5E8PSX.cjs.map} +1 -1
- package/dist/{flow-runtime-DyNIYfUP.cjs → flow-runtime-CQ4wf8co.cjs} +2 -2
- package/dist/{flow-runtime-DyNIYfUP.cjs.map → flow-runtime-CQ4wf8co.cjs.map} +1 -1
- package/dist/{flow-runtime-BEIyym7d.js → flow-runtime-Q2vD7R3c.js} +2 -2
- package/dist/{flow-runtime-BEIyym7d.js.map → flow-runtime-Q2vD7R3c.js.map} +1 -1
- package/dist/{flow-screen-DY1Z9PbG.js → flow-screen-B1y2yizP.js} +18 -18
- package/dist/flow-screen-B1y2yizP.js.map +1 -0
- package/dist/{flow-screen-FE5Xhb3t.cjs → flow-screen-sw2cP70t.cjs} +18 -18
- package/dist/flow-screen-sw2cP70t.cjs.map +1 -0
- package/dist/index.cjs +2183 -109
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +76 -8
- package/dist/index.d.ts +76 -8
- package/dist/index.js +2095 -24
- package/dist/index.js.map +1 -1
- package/dist/{inline-flow-host-yVLo6-sM.cjs → inline-flow-host-CkhoA69R.cjs} +3 -3
- package/dist/{inline-flow-host-yVLo6-sM.cjs.map → inline-flow-host-CkhoA69R.cjs.map} +1 -1
- package/dist/{inline-flow-host-D6u-RlsV.js → inline-flow-host-DqbXqcPS.js} +3 -3
- package/dist/{inline-flow-host-D6u-RlsV.js.map → inline-flow-host-DqbXqcPS.js.map} +1 -1
- package/dist/{lazy-relation-picker-dialog-BaORufxQ.js → lazy-relation-picker-dialog-BaIEWLbF.js} +3 -52
- package/dist/lazy-relation-picker-dialog-BaIEWLbF.js.map +1 -0
- package/dist/{lazy-relation-picker-dialog-C_VlGlDz.cjs → lazy-relation-picker-dialog-CeRzOAi0.cjs} +3 -52
- package/dist/lazy-relation-picker-dialog-CeRzOAi0.cjs.map +1 -0
- package/dist/{page-flow-route-CyMzUidK.js → page-flow-route-CP7cS7FY.js} +5 -5
- package/dist/page-flow-route-CP7cS7FY.js.map +1 -0
- package/dist/{page-flow-route-OFx7h7Ja.cjs → page-flow-route-UDx8qvdM.cjs} +9 -9
- package/dist/page-flow-route-UDx8qvdM.cjs.map +1 -0
- package/dist/{place-node-BZF5Af6x.cjs → place-node-C5ZmuHaN.cjs} +149 -40
- package/dist/place-node-C5ZmuHaN.cjs.map +1 -0
- package/dist/{place-node-DRjmJGQ_.js → place-node-DwWAigv0.js} +146 -43
- package/dist/place-node-DwWAigv0.js.map +1 -0
- package/dist/record-trail-store-Cjo9vtod.cjs +126 -0
- package/dist/record-trail-store-Cjo9vtod.cjs.map +1 -0
- package/dist/record-trail-store-Dn6bVry4.js +91 -0
- package/dist/record-trail-store-Dn6bVry4.js.map +1 -0
- package/dist/{related-list-cards-xVvgSlu-.cjs → related-list-cards-BypKfm9t.cjs} +3 -3
- package/dist/{related-list-cards-xVvgSlu-.cjs.map → related-list-cards-BypKfm9t.cjs.map} +1 -1
- package/dist/{related-list-cards-2hLitVkg.js → related-list-cards-Dcmruy09.js} +3 -3
- package/dist/{related-list-cards-2hLitVkg.js.map → related-list-cards-Dcmruy09.js.map} +1 -1
- package/dist/{related-list-timeline-Dsf5WewG.cjs → related-list-timeline-D-KClgKb.cjs} +4 -4
- package/dist/{related-list-timeline-Dsf5WewG.cjs.map → related-list-timeline-D-KClgKb.cjs.map} +1 -1
- package/dist/{related-list-timeline-CxJqe6eK.js → related-list-timeline-DZON_qSc.js} +4 -4
- package/dist/{related-list-timeline-CxJqe6eK.js.map → related-list-timeline-DZON_qSc.js.map} +1 -1
- package/dist/{related-rows-DDhp9axl.cjs → related-rows-DgF05ssi.cjs} +4 -4
- package/dist/{related-rows-DDhp9axl.cjs.map → related-rows-DgF05ssi.cjs.map} +1 -1
- package/dist/{related-rows-DL6CWsrj.js → related-rows-ETZl5CB9.js} +4 -4
- package/dist/{related-rows-DL6CWsrj.js.map → related-rows-ETZl5CB9.js.map} +1 -1
- package/dist/{relation-create-_SFuPQGM.cjs → relation-create-B8zngAcA.cjs} +46 -11
- package/dist/relation-create-B8zngAcA.cjs.map +1 -0
- package/dist/{relation-create-6WicROWA.js → relation-create-CeCWyxIb.js} +47 -12
- package/dist/relation-create-CeCWyxIb.js.map +1 -0
- package/dist/{relation-many-picker-mGEQDWo2.js → relation-many-picker-CT7nKfE2.js} +4 -4
- package/dist/{relation-many-picker-mGEQDWo2.js.map → relation-many-picker-CT7nKfE2.js.map} +1 -1
- package/dist/{relation-many-picker-BBNsmkaX.cjs → relation-many-picker-Cq0EHY5I.cjs} +4 -4
- package/dist/{relation-many-picker-BBNsmkaX.cjs.map → relation-many-picker-Cq0EHY5I.cjs.map} +1 -1
- package/dist/{relation-picker-BbO41cFV.js → relation-picker-CCyuMeGq.js} +6 -6
- package/dist/{relation-picker-BbO41cFV.js.map → relation-picker-CCyuMeGq.js.map} +1 -1
- package/dist/{relation-picker-jk9D_uwn.cjs → relation-picker-DmwTzgsd.cjs} +6 -6
- package/dist/{relation-picker-jk9D_uwn.cjs.map → relation-picker-DmwTzgsd.cjs.map} +1 -1
- package/dist/{relation-picker-dialog-BgSG_8bU.js → relation-picker-dialog-CoWKjNv8.js} +4 -4
- package/dist/{relation-picker-dialog-BgSG_8bU.js.map → relation-picker-dialog-CoWKjNv8.js.map} +1 -1
- package/dist/{relation-picker-dialog-Duqy2r0n.cjs → relation-picker-dialog-mbwyNK43.cjs} +4 -4
- package/dist/{relation-picker-dialog-Duqy2r0n.cjs.map → relation-picker-dialog-mbwyNK43.cjs.map} +1 -1
- package/dist/{relation-select-C3aV18kT.cjs → relation-select-CguIo2M5.cjs} +2 -2
- package/dist/{relation-select-C3aV18kT.cjs.map → relation-select-CguIo2M5.cjs.map} +1 -1
- package/dist/{relation-select-CjQT9LpS.js → relation-select-nAYxhopN.js} +2 -2
- package/dist/{relation-select-CjQT9LpS.js.map → relation-select-nAYxhopN.js.map} +1 -1
- package/dist/{use-dialog-filter-state-lsTJxrB4.cjs → use-dialog-filter-state-CpWblz3C.cjs} +2 -2
- package/dist/{use-dialog-filter-state-lsTJxrB4.cjs.map → use-dialog-filter-state-CpWblz3C.cjs.map} +1 -1
- package/dist/{use-dialog-filter-state-CJoeY-1j.js → use-dialog-filter-state-ZYxOp5WO.js} +2 -2
- package/dist/{use-dialog-filter-state-CJoeY-1j.js.map → use-dialog-filter-state-ZYxOp5WO.js.map} +1 -1
- package/dist/{use-record-subtitle-BJ9rnj6F.cjs → use-record-subtitle-B4lTR7pf.cjs} +2 -2
- package/dist/{use-record-subtitle-BJ9rnj6F.cjs.map → use-record-subtitle-B4lTR7pf.cjs.map} +1 -1
- package/dist/{use-record-subtitle-w3ZhXNlf.js → use-record-subtitle-pWMBqQx9.js} +2 -2
- package/dist/{use-record-subtitle-w3ZhXNlf.js.map → use-record-subtitle-pWMBqQx9.js.map} +1 -1
- package/package.json +9 -9
- package/dist/bulk-summary-2HLgz7Il.cjs.map +0 -1
- package/dist/bulk-summary-D6A0ua21.js.map +0 -1
- package/dist/check-confirm-dialog-W-8WOmGh.cjs.map +0 -1
- package/dist/flow-screen-DY1Z9PbG.js.map +0 -1
- package/dist/flow-screen-FE5Xhb3t.cjs.map +0 -1
- package/dist/lazy-relation-picker-dialog-BaORufxQ.js.map +0 -1
- package/dist/lazy-relation-picker-dialog-C_VlGlDz.cjs.map +0 -1
- package/dist/page-flow-route-CyMzUidK.js.map +0 -1
- package/dist/page-flow-route-OFx7h7Ja.cjs.map +0 -1
- package/dist/place-node-BZF5Af6x.cjs.map +0 -1
- package/dist/place-node-DRjmJGQ_.js.map +0 -1
- package/dist/relation-create-6WicROWA.js.map +0 -1
- package/dist/relation-create-_SFuPQGM.cjs.map +0 -1
- package/dist/resource-page-router-CzaNATSp.js +0 -2010
- package/dist/resource-page-router-CzaNATSp.js.map +0 -1
- package/dist/resource-page-router-dmVIeu5s.cjs +0 -2231
- package/dist/resource-page-router-dmVIeu5s.cjs.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
const require_use_theme = require("./use-theme-DFlpXils.cjs");
|
|
2
2
|
const require_toaster = require("./toaster-BbByOytP.cjs");
|
|
3
|
-
const require_check_confirm_dialog = require("./check-confirm-dialog-
|
|
3
|
+
const require_check_confirm_dialog = require("./check-confirm-dialog-BMSb7wFv.cjs");
|
|
4
4
|
const require_button = require("./button-BxnnE28H.cjs");
|
|
5
5
|
const require_input = require("./input-BI0czGyI.cjs");
|
|
6
6
|
const require_dialog = require("./dialog-vmMdfUWs.cjs");
|
|
7
|
-
const require_relation_create = require("./relation-create-
|
|
7
|
+
const require_relation_create = require("./relation-create-B8zngAcA.cjs");
|
|
8
8
|
const require_skeleton = require("./skeleton-_1gP7wan.cjs");
|
|
9
|
-
const require_filter_builder = require("./filter-builder-
|
|
9
|
+
const require_filter_builder = require("./filter-builder-Dt5E8PSX.cjs");
|
|
10
10
|
const require_label = require("./label-w6JYf2cF.cjs");
|
|
11
|
-
const require_lazy_relation_picker_dialog = require("./lazy-relation-picker-dialog-
|
|
12
|
-
const require_relation_select = require("./relation-select-
|
|
11
|
+
const require_lazy_relation_picker_dialog = require("./lazy-relation-picker-dialog-CeRzOAi0.cjs");
|
|
12
|
+
const require_relation_select = require("./relation-select-CguIo2M5.cjs");
|
|
13
13
|
let _burojs_core = require("@burojs/core");
|
|
14
14
|
let _burojs_react = require("@burojs/react");
|
|
15
15
|
let _tabler_icons_react = require("@tabler/icons-react");
|
|
@@ -1463,14 +1463,15 @@ function useExportRunWatcher() {
|
|
|
1463
1463
|
//#endregion
|
|
1464
1464
|
//#region src/actions/action-overflow.tsx
|
|
1465
1465
|
const RowActionsCollapseContext = (0, react.createContext)(false);
|
|
1466
|
-
function ActionOverflow({ resource: resourceInput, record, surface, className, hideFlows, collapse, sources }) {
|
|
1466
|
+
function ActionOverflow({ resource: resourceInput, record, surface, className, hideFlows, hideActions, collapse, sources }) {
|
|
1467
1467
|
const resource = (0, _burojs_core.routeResourceKey)(resourceInput);
|
|
1468
1468
|
const chromeT = (0, _burojs_react.useChromeT)();
|
|
1469
1469
|
const tid = (0, _burojs_react.useTestIds)();
|
|
1470
1470
|
const recordKey = String((0, _burojs_react.recordKeyOf)((0, _burojs_react.useApp)().registry.get(resource), record) ?? "");
|
|
1471
1471
|
const collapsedRows = (0, react.useContext)(RowActionsCollapseContext);
|
|
1472
1472
|
const [flowFor, setFlowFor] = (0, react.useState)(null);
|
|
1473
|
-
const
|
|
1473
|
+
const shown = useShownItemActions(resource, record, surface, hideFlows, sources);
|
|
1474
|
+
const actions = hideActions === void 0 ? shown : shown.filter((a) => !hideActions(a.name));
|
|
1474
1475
|
if (actions.length === 0) return null;
|
|
1475
1476
|
const isRow = surface === "row";
|
|
1476
1477
|
const folded = isRow && (collapse ?? collapsedRows);
|
|
@@ -3059,6 +3060,22 @@ function actionsColumnSize(items) {
|
|
|
3059
3060
|
const strip = controls * ROW_ACTION_CONTROL_PX + (controls - 1) * ROW_ACTION_GAP_PX + ACTIONS_CELL_PADDING_PX;
|
|
3060
3061
|
return Math.max(ACTIONS_COL_MIN_PX, strip);
|
|
3061
3062
|
}
|
|
3063
|
+
const isNamedEntry = (value) => typeof value === "object" && value !== null;
|
|
3064
|
+
function offered(items, offers) {
|
|
3065
|
+
return offers === void 0 || items === void 0 ? items : items.filter((action) => offers(action.name));
|
|
3066
|
+
}
|
|
3067
|
+
function rowFlowsOf(def, offers) {
|
|
3068
|
+
if (!def) return [];
|
|
3069
|
+
const items = offered(def.actions?.item, offers) ?? [];
|
|
3070
|
+
const out = [];
|
|
3071
|
+
for (const placement of (0, _burojs_core.planItemActions)(items, "row")) {
|
|
3072
|
+
if (items.find((entry) => entry.name === placement.name)?.kind !== "flow") continue;
|
|
3073
|
+
try {
|
|
3074
|
+
out.push((0, _burojs_core.compileFlow)(def, placement.name));
|
|
3075
|
+
} catch {}
|
|
3076
|
+
}
|
|
3077
|
+
return out;
|
|
3078
|
+
}
|
|
3062
3079
|
const ALIGN_CLASS = {
|
|
3063
3080
|
start: "text-start",
|
|
3064
3081
|
center: "text-center",
|
|
@@ -3125,25 +3142,72 @@ function ResourceList({ resource: resourceInput, data, total, page = 1, pageSize
|
|
|
3125
3142
|
]);
|
|
3126
3143
|
const skeletonColumnKeys = accessPending ? declaredColumnKeys : visibleColumnKeys;
|
|
3127
3144
|
const rows = (0, react.useMemo)(() => data ?? [], [data]);
|
|
3128
|
-
const
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
const
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3145
|
+
const collectionRows = (0, _burojs_react.useCollectionRows)(resource);
|
|
3146
|
+
const rowKinds = (0, react.useMemo)(() => collectionRows === void 0 ? void 0 : rows.map((row) => collectionRows(row)), [collectionRows, rows]);
|
|
3147
|
+
const rowOffers = (0, react.useMemo)(() => {
|
|
3148
|
+
const fact = (0, _burojs_core.memberFactOf)(def);
|
|
3149
|
+
if (fact?.collection === void 0 || def?.rowActions !== "base") return void 0;
|
|
3150
|
+
const declared = app.registry.bases.get(fact.ref)?.actions?.item;
|
|
3151
|
+
const names = new Set(["edit", "delete"]);
|
|
3152
|
+
if (Array.isArray(declared)) {
|
|
3153
|
+
for (const entry of declared) if (isNamedEntry(entry) && typeof entry.name === "string") names.add(entry.name);
|
|
3137
3154
|
}
|
|
3138
|
-
return
|
|
3139
|
-
}, [def]);
|
|
3140
|
-
const
|
|
3141
|
-
const
|
|
3142
|
-
|
|
3143
|
-
|
|
3155
|
+
return (name) => names.has(name);
|
|
3156
|
+
}, [def, app]);
|
|
3157
|
+
const hideRowAction = (0, react.useMemo)(() => rowOffers === void 0 ? void 0 : (name) => !rowOffers(name), [rowOffers]);
|
|
3158
|
+
const flowsByDef = (0, react.useMemo)(() => {
|
|
3159
|
+
const cache = new WeakMap();
|
|
3160
|
+
return (target) => {
|
|
3161
|
+
if (target === void 0) return [];
|
|
3162
|
+
let flows = cache.get(target);
|
|
3163
|
+
if (flows === void 0) {
|
|
3164
|
+
flows = rowFlowsOf(target, rowOffers);
|
|
3165
|
+
cache.set(target, flows);
|
|
3166
|
+
}
|
|
3167
|
+
return flows;
|
|
3168
|
+
};
|
|
3169
|
+
}, [rowOffers]);
|
|
3170
|
+
const batchGroups = (0, react.useMemo)(() => {
|
|
3171
|
+
if (rowKinds === void 0) return [{
|
|
3172
|
+
resource,
|
|
3173
|
+
ids: rows.map((row) => String(row.id)),
|
|
3174
|
+
flows: flowsByDef(def)
|
|
3175
|
+
}];
|
|
3176
|
+
const idsByMember = new Map();
|
|
3177
|
+
rowKinds.forEach((kind, index) => {
|
|
3178
|
+
if (!("member" in kind)) return;
|
|
3179
|
+
const ids = idsByMember.get(kind.member) ?? [];
|
|
3180
|
+
ids.push(String(rows[index]?.id));
|
|
3181
|
+
idsByMember.set(kind.member, ids);
|
|
3182
|
+
});
|
|
3183
|
+
return [...idsByMember].map(([member, ids]) => ({
|
|
3184
|
+
resource: member,
|
|
3185
|
+
ids,
|
|
3186
|
+
flows: flowsByDef(app.registry.get(member)),
|
|
3187
|
+
list: resource
|
|
3188
|
+
}));
|
|
3189
|
+
}, [
|
|
3190
|
+
rowKinds,
|
|
3191
|
+
rows,
|
|
3144
3192
|
resource,
|
|
3145
|
-
|
|
3146
|
-
|
|
3193
|
+
def,
|
|
3194
|
+
flowsByDef,
|
|
3195
|
+
app
|
|
3196
|
+
]);
|
|
3197
|
+
const rowBatch = (0, _burojs_react.useFlowRowBatches)(batchGroups);
|
|
3198
|
+
const rowBatchState = rowBatch.state;
|
|
3199
|
+
const flowRowBatch = (0, react.useMemo)(() => ({ state: rowBatchState }), [rowBatchState]);
|
|
3200
|
+
const actionsWidth = (0, react.useMemo)(() => {
|
|
3201
|
+
if (rowKinds === void 0) return actionsColumnSize(def?.actions?.item);
|
|
3202
|
+
let widest = ACTIONS_COL_MIN_PX;
|
|
3203
|
+
for (const member of new Set(rowKinds.flatMap((kind) => "member" in kind ? [kind.member] : []))) widest = Math.max(widest, actionsColumnSize(offered(app.registry.get(member)?.actions?.item, rowOffers)));
|
|
3204
|
+
return widest;
|
|
3205
|
+
}, [
|
|
3206
|
+
rowKinds,
|
|
3207
|
+
def,
|
|
3208
|
+
app,
|
|
3209
|
+
rowOffers
|
|
3210
|
+
]);
|
|
3147
3211
|
const knownTotal = typeof total === "number";
|
|
3148
3212
|
const totalPages = knownTotal ? Math.max(1, Math.ceil(total / pageSize)) : void 0;
|
|
3149
3213
|
const pageIsFull = rows.length >= pageSize;
|
|
@@ -3391,7 +3455,7 @@ function ResourceList({ resource: resourceInput, data, total, page = 1, pageSize
|
|
|
3391
3455
|
id: ACTIONS_COL_ID,
|
|
3392
3456
|
enableSorting: false,
|
|
3393
3457
|
enableResizing: false,
|
|
3394
|
-
size: narrow || typeof rowActions === "function" ? 44 :
|
|
3458
|
+
size: narrow || typeof rowActions === "function" ? 44 : actionsWidth,
|
|
3395
3459
|
enableHiding: false,
|
|
3396
3460
|
header: () => (0, react_jsx_runtime.jsx)("span", {
|
|
3397
3461
|
className: "sr-only",
|
|
@@ -3402,11 +3466,22 @@ function ResourceList({ resource: resourceInput, data, total, page = 1, pageSize
|
|
|
3402
3466
|
noRowNav: true,
|
|
3403
3467
|
noClip: true
|
|
3404
3468
|
},
|
|
3405
|
-
cell: ({ row }) =>
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3469
|
+
cell: ({ row }) => {
|
|
3470
|
+
if (typeof rowActions === "function") return rowActions(row.original);
|
|
3471
|
+
if (collectionRows === void 0) return (0, react_jsx_runtime.jsx)(ActionOverflow, {
|
|
3472
|
+
resource,
|
|
3473
|
+
record: row.original,
|
|
3474
|
+
surface: "row"
|
|
3475
|
+
});
|
|
3476
|
+
const kind = collectionRows(row.original);
|
|
3477
|
+
if (!("member" in kind)) return null;
|
|
3478
|
+
return (0, react_jsx_runtime.jsx)(ActionOverflow, {
|
|
3479
|
+
resource: kind.member,
|
|
3480
|
+
record: row.original,
|
|
3481
|
+
surface: "row",
|
|
3482
|
+
...hideRowAction === void 0 ? {} : { hideActions: hideRowAction }
|
|
3483
|
+
});
|
|
3484
|
+
}
|
|
3410
3485
|
});
|
|
3411
3486
|
return cols;
|
|
3412
3487
|
}, [
|
|
@@ -3423,6 +3498,9 @@ function ResourceList({ resource: resourceInput, data, total, page = 1, pageSize
|
|
|
3423
3498
|
i18nCaps,
|
|
3424
3499
|
rowLinkKey,
|
|
3425
3500
|
narrow,
|
|
3501
|
+
actionsWidth,
|
|
3502
|
+
collectionRows,
|
|
3503
|
+
hideRowAction,
|
|
3426
3504
|
columnUiOf
|
|
3427
3505
|
]);
|
|
3428
3506
|
const handleSelectionChange = (updater) => {
|
|
@@ -3611,7 +3689,7 @@ function ResourceList({ resource: resourceInput, data, total, page = 1, pageSize
|
|
|
3611
3689
|
value: flowRowBatch,
|
|
3612
3690
|
children: (0, react_jsx_runtime.jsxs)(RowActionsCollapseContext.Provider, {
|
|
3613
3691
|
value: narrow,
|
|
3614
|
-
children: [rowBatch.
|
|
3692
|
+
children: [rowBatch.readers, (0, react_jsx_runtime.jsxs)("div", {
|
|
3615
3693
|
ref: listRoot,
|
|
3616
3694
|
className: require_use_theme.cn("space-y-4", className),
|
|
3617
3695
|
children: [
|
|
@@ -4971,10 +5049,12 @@ function BulkSummary(props) {
|
|
|
4971
5049
|
children: (0, react_jsx_runtime.jsx)(Summary, { ...props })
|
|
4972
5050
|
});
|
|
4973
5051
|
}
|
|
4974
|
-
function BulkFlowButton({ resource, actionName, ids, onSelectionChange }) {
|
|
5052
|
+
function BulkFlowButton({ resource, actionName, ids, records, onSelectionChange }) {
|
|
4975
5053
|
const app = (0, _burojs_react.useApp)();
|
|
4976
5054
|
const tid = (0, _burojs_react.useTestIds)();
|
|
4977
5055
|
const t = (0, _burojs_react.useOptionalT)();
|
|
5056
|
+
const caps = (0, _burojs_react.useI18nCaps)();
|
|
5057
|
+
const gate = (0, _burojs_react.useAvailabilityGate)();
|
|
4978
5058
|
const control = (0, _burojs_react.useFlowRowResolver)(resource)(actionName, void 0);
|
|
4979
5059
|
const chrome = require_check_confirm_dialog.useFlowChrome(resource, actionName);
|
|
4980
5060
|
const def = app.registry.get(resource);
|
|
@@ -4993,11 +5073,31 @@ function BulkFlowButton({ resource, actionName, ids, onSelectionChange }) {
|
|
|
4993
5073
|
if (control.state === "absent") return null;
|
|
4994
5074
|
const variant = chrome.destructive ? "destructive" : "outline";
|
|
4995
5075
|
const overLimit = each && ids.length > _burojs_core.BULK_EACH_LIMIT;
|
|
4996
|
-
|
|
5076
|
+
let membersUndecided = false;
|
|
5077
|
+
const selection = def === void 0 ? void 0 : (0, _burojs_react.collectionBulkState)({
|
|
5078
|
+
registry: app.registry,
|
|
5079
|
+
collection: def,
|
|
5080
|
+
action: actionName,
|
|
5081
|
+
ids,
|
|
5082
|
+
records: records ?? [],
|
|
5083
|
+
available: (member, action) => {
|
|
5084
|
+
const state = gate(member, action).state;
|
|
5085
|
+
if (state === "undecided") membersUndecided = true;
|
|
5086
|
+
return state === "available";
|
|
5087
|
+
}
|
|
5088
|
+
});
|
|
5089
|
+
const refused = membersUndecided || selection?.state !== "disabled" ? void 0 : selection.members.length > 0 ? t("collection.bulkUnavailable", {
|
|
5090
|
+
defaultValue: "Not available for {{types}}.",
|
|
5091
|
+
params: { types: selection.members.map((member) => (0, _burojs_core.resolveResourceLabel)(caps, member, "single", app.registry.get(member))).join(", ") }
|
|
5092
|
+
}) : t("collection.bulkUnknownRows", {
|
|
5093
|
+
defaultValue: "{{count}} selected records are not loaded.",
|
|
5094
|
+
count: selection.missing
|
|
5095
|
+
});
|
|
5096
|
+
if (overLimit || control.state === "disabled" || refused !== void 0) return (0, react_jsx_runtime.jsx)(require_check_confirm_dialog.DisabledAction, {
|
|
4997
5097
|
reason: overLimit ? t("flow.bulkLimit", {
|
|
4998
5098
|
defaultValue: `Select at most ${_burojs_core.BULK_EACH_LIMIT}.`,
|
|
4999
5099
|
count: _burojs_core.BULK_EACH_LIMIT
|
|
5000
|
-
}) : control.reason,
|
|
5100
|
+
}) : control.state === "disabled" ? control.reason : refused,
|
|
5001
5101
|
label: chrome.label,
|
|
5002
5102
|
icon: chrome.icon,
|
|
5003
5103
|
testid,
|
|
@@ -5007,7 +5107,7 @@ function BulkFlowButton({ resource, actionName, ids, onSelectionChange }) {
|
|
|
5007
5107
|
actionName,
|
|
5008
5108
|
surface: "bulk"
|
|
5009
5109
|
});
|
|
5010
|
-
const busy = control.state === "undecided" || control.state === "pending" || running;
|
|
5110
|
+
const busy = control.state === "undecided" || control.state === "pending" || membersUndecided || running;
|
|
5011
5111
|
const finish = (result, progress) => {
|
|
5012
5112
|
setRunning(false);
|
|
5013
5113
|
if (progress === void 0) return;
|
|
@@ -5069,7 +5169,8 @@ function BulkFlowButton({ resource, actionName, ids, onSelectionChange }) {
|
|
|
5069
5169
|
label: chrome.labelText,
|
|
5070
5170
|
total: summary.total,
|
|
5071
5171
|
progress: summary.progress,
|
|
5072
|
-
texts: compiled?.flow.texts
|
|
5172
|
+
texts: compiled?.flow.texts,
|
|
5173
|
+
...compiled === void 0 ? {} : { prefixes: compiled.textKeys.prefixes }
|
|
5073
5174
|
}),
|
|
5074
5175
|
(0, react_jsx_runtime.jsx)(require_dialog.DialogFooter, { children: (0, react_jsx_runtime.jsx)(require_button.Button, {
|
|
5075
5176
|
type: "button",
|
|
@@ -5135,6 +5236,7 @@ function BulkActionToolbar({ resource: resourceInput, table, selectedRecords, se
|
|
|
5135
5236
|
resource,
|
|
5136
5237
|
actionName: action.name,
|
|
5137
5238
|
ids,
|
|
5239
|
+
records,
|
|
5138
5240
|
onSelectionChange: (next) => {
|
|
5139
5241
|
if (onSelectionChange !== void 0) onSelectionChange(next);
|
|
5140
5242
|
else if (next.length === 0) handleClear();
|
|
@@ -6133,6 +6235,7 @@ function BuroPeekFrame({ slots }) {
|
|
|
6133
6235
|
//#endregion
|
|
6134
6236
|
//#region src/record/frame-context.ts
|
|
6135
6237
|
const FrameChromeContext = (0, react.createContext)(null);
|
|
6238
|
+
const ItemActionsOffContext = (0, react.createContext)(false);
|
|
6136
6239
|
function useFrameChrome() {
|
|
6137
6240
|
const chrome = (0, react.useContext)(FrameChromeContext);
|
|
6138
6241
|
if (chrome === null) throw new Error("[burojs] useRecordFrame() must be called inside <RecordScreen>");
|
|
@@ -6170,7 +6273,7 @@ function RecordActionsView() {
|
|
|
6170
6273
|
const { extraActions } = useFrameChrome();
|
|
6171
6274
|
const id = useFrameId();
|
|
6172
6275
|
const holder = (0, _burojs_react.useScreenState)()?.inline;
|
|
6173
|
-
if (mode === "create" || record === void 0 || id === void 0) return null;
|
|
6276
|
+
if ((0, react.useContext)(ItemActionsOffContext) || mode === "create" || record === void 0 || id === void 0) return null;
|
|
6174
6277
|
const row = (0, _burojs_react.withRecordKeys)((0, _burojs_react.policyRecordOf)(controller) ?? record, { id });
|
|
6175
6278
|
holder?.declare(inlineFlowNames(controller.screen, controller.plan));
|
|
6176
6279
|
return (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -6770,8 +6873,8 @@ function declaresDisplay(field) {
|
|
|
6770
6873
|
return field !== void 0 && (0, _burojs_core.resolveSurfaceUi)(field, "column").use !== void 0;
|
|
6771
6874
|
}
|
|
6772
6875
|
const NO_INITIAL_FILTERS = Object.freeze({});
|
|
6773
|
-
const RelatedCards = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-cards-
|
|
6774
|
-
const RelatedTimeline = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-timeline-
|
|
6876
|
+
const RelatedCards = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-cards-BypKfm9t.cjs"))).RelatedCards }));
|
|
6877
|
+
const RelatedTimeline = (0, react.lazy)(async () => ({ default: (await Promise.resolve().then(() => require("./related-list-timeline-D-KClgKb.cjs"))).RelatedTimeline }));
|
|
6775
6878
|
function discriminatorOptionLabel(field, value) {
|
|
6776
6879
|
const text = (0, _burojs_core.fieldOptionText)(field, value);
|
|
6777
6880
|
if (text !== void 0) return text;
|
|
@@ -8740,6 +8843,12 @@ Object.defineProperty(exports, "HeaderTypeNotice", {
|
|
|
8740
8843
|
return HeaderTypeNotice;
|
|
8741
8844
|
}
|
|
8742
8845
|
});
|
|
8846
|
+
Object.defineProperty(exports, "ItemActionsOffContext", {
|
|
8847
|
+
enumerable: true,
|
|
8848
|
+
get: function() {
|
|
8849
|
+
return ItemActionsOffContext;
|
|
8850
|
+
}
|
|
8851
|
+
});
|
|
8743
8852
|
Object.defineProperty(exports, "ListBody", {
|
|
8744
8853
|
enumerable: true,
|
|
8745
8854
|
get: function() {
|
|
@@ -9131,4 +9240,4 @@ Object.defineProperty(exports, "viewOf", {
|
|
|
9131
9240
|
}
|
|
9132
9241
|
});
|
|
9133
9242
|
|
|
9134
|
-
//# sourceMappingURL=place-node-
|
|
9243
|
+
//# sourceMappingURL=place-node-C5ZmuHaN.cjs.map
|