@ai-matrx/records-ui 0.113.32 → 0.113.34
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 +25 -0
- package/dist/index.cjs +10 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -7
- package/dist/index.js.map +1 -1
- package/dist/pickers.cjs +8 -4
- package/dist/pickers.cjs.map +1 -1
- package/dist/pickers.d.cts +6 -1
- package/dist/pickers.d.ts +6 -1
- package/dist/pickers.js +8 -4
- package/dist/pickers.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records-ui
|
|
2
2
|
|
|
3
|
+
## 0.113.34
|
|
4
|
+
|
|
5
|
+
Automatic changed-only republish (docs/metadata drift since the last tag — see
|
|
6
|
+
`git diff npm/records-ui/v0.113.33..npm/records-ui/v0.113.34 -- apps/shared/records-ui`).
|
|
7
|
+
No source changes intended and no consumer action required.
|
|
8
|
+
|
|
9
|
+
## 0.113.33
|
|
10
|
+
### the first page and a person's look come from records
|
|
11
|
+
|
|
12
|
+
`./first-page` (`firstPage.ts`, `firstPageEntity.ts`), `entityQuery.ts`, `groupReads.ts`, the sort halves of
|
|
13
|
+
`gridPage.ts` (`holdsNumbers`, `sortAsFor`, `pageSortFor`), `gridLook.ts`'s `defaultSortOf` and `viewLook.ts`'s look
|
|
14
|
+
doors are re-exports of `@ai-matrx/records/first-page` and `@ai-matrx/records/views`; `firstGridPageRequest`,
|
|
15
|
+
`askTablePageSeed` and every view/look door that reads the presentation are records' one definition with this
|
|
16
|
+
package's grid look bound (`bindFirstPageCodec`, `bindViewCodec`) — no same-name second body remains.
|
|
17
|
+
`MEASURE_LABEL` is checked against the store's summary operations.
|
|
18
|
+
|
|
19
|
+
**Consumer action:** none; same names, same signatures (`DefaultSort` is records' `ColumnSort`).
|
|
20
|
+
|
|
21
|
+
### HeldChangeDecision names what approving does next
|
|
22
|
+
|
|
23
|
+
New optional prop `approveLabel` (default "Approve"): a host whose approval also moves something on says so —
|
|
24
|
+
Workflow Studio's paused run passes "Approve and continue".
|
|
25
|
+
|
|
26
|
+
**Consumer action:** none (optional prop).
|
|
27
|
+
|
|
3
28
|
## 0.113.32
|
|
4
29
|
### saved questions come from records/questions
|
|
5
30
|
|
package/dist/index.cjs
CHANGED
|
@@ -1551,6 +1551,7 @@ function fieldTypeLabel(field2) {
|
|
|
1551
1551
|
// src/gridPage.ts
|
|
1552
1552
|
var import_first_page = require("@ai-matrx/records/first-page");
|
|
1553
1553
|
var import_first_page2 = require("@ai-matrx/records/first-page");
|
|
1554
|
+
var import_data = require("@ai-matrx/records/data");
|
|
1554
1555
|
function sortRefusal(f) {
|
|
1555
1556
|
if (!computedOnRead(f)) return null;
|
|
1556
1557
|
return `${fieldName(f)} is worked out each time it is read, so the store keeps no value to sort the whole table by. Sort by a column it is worked out from.`;
|
|
@@ -1563,9 +1564,6 @@ function computedOnRead(f) {
|
|
|
1563
1564
|
const kind = String(editorKindFor(f));
|
|
1564
1565
|
return (f.type === "formula" || kind === "formula" || kind === "lookup" || kind === "rollup") && String(f.compute_on ?? "read") === "read";
|
|
1565
1566
|
}
|
|
1566
|
-
function containsPattern(text) {
|
|
1567
|
-
return `(?i)${text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`;
|
|
1568
|
-
}
|
|
1569
1567
|
var BLANK_VALUE = "__empty__";
|
|
1570
1568
|
var field = (f) => ({ field: f.id });
|
|
1571
1569
|
var constant = (value) => ({ const: value });
|
|
@@ -1587,7 +1585,7 @@ function clauseFor(f, value, now = /* @__PURE__ */ new Date()) {
|
|
|
1587
1585
|
if (kind === "number" || kind === "currency" || kind === "percent" || kind === "checkbox") {
|
|
1588
1586
|
return `${name} holds numbers, so it is filtered by a range, not by words.`;
|
|
1589
1587
|
}
|
|
1590
|
-
const matches2 = op("matches", field(f), constant(containsPattern(text)));
|
|
1588
|
+
const matches2 = op("matches", field(f), constant((0, import_data.containsPattern)(text)));
|
|
1591
1589
|
return { rule: value.negated ? not(matches2) : matches2 };
|
|
1592
1590
|
}
|
|
1593
1591
|
case "select": {
|
|
@@ -50928,10 +50926,14 @@ var import_react295 = require("react");
|
|
|
50928
50926
|
var import_react296 = require("@ai-matrx/records/react");
|
|
50929
50927
|
var import_design_system150 = require("@ai-matrx/design-system");
|
|
50930
50928
|
var import_jsx_runtime168 = require("react/jsx-runtime");
|
|
50931
|
-
function HeldChangeDecision({ dataSource, userId, organizationId, approvalId, onDecided }) {
|
|
50932
|
-
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_react296.RecordsProvider, { config: { dataSource, actor: personActor(userId), organizationId }, children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Decision, { approvalId, onDecided }) });
|
|
50929
|
+
function HeldChangeDecision({ dataSource, userId, organizationId, approvalId, onDecided, approveLabel }) {
|
|
50930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_react296.RecordsProvider, { config: { dataSource, actor: personActor(userId), organizationId }, children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Decision, { approvalId, onDecided, approveLabel: approveLabel ?? "Approve" }) });
|
|
50933
50931
|
}
|
|
50934
|
-
function Decision({
|
|
50932
|
+
function Decision({
|
|
50933
|
+
approvalId,
|
|
50934
|
+
onDecided,
|
|
50935
|
+
approveLabel
|
|
50936
|
+
}) {
|
|
50935
50937
|
const client = (0, import_react296.useRecordsClient)();
|
|
50936
50938
|
const [may, setMay] = (0, import_react295.useState)(null);
|
|
50937
50939
|
const [busy, setBusy] = (0, import_react295.useState)(null);
|
|
@@ -50961,7 +50963,7 @@ function Decision({ approvalId, onDecided }) {
|
|
|
50961
50963
|
if (may === null) return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("p", { className: "text-xs text-muted-foreground", children: "Checking who can decide\u2026" });
|
|
50962
50964
|
return /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
|
|
50963
50965
|
may ? /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex gap-2", children: [
|
|
50964
|
-
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_design_system150.Button, { type: "button", size: "sm", disabled: busy !== null, onClick: () => void decide(true), children: busy === "approve" ? "Approving\u2026" :
|
|
50966
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_design_system150.Button, { type: "button", size: "sm", disabled: busy !== null, onClick: () => void decide(true), children: busy === "approve" ? "Approving\u2026" : approveLabel }),
|
|
50965
50967
|
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(import_design_system150.Button, { type: "button", size: "sm", variant: "outline", disabled: busy !== null, onClick: () => void decide(false), children: busy === "refuse" ? "Refusing\u2026" : "Refuse" })
|
|
50966
50968
|
] }) : !error && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("p", { className: "text-xs text-muted-foreground", children: "An owner or admin of this organization decides this." }),
|
|
50967
50969
|
error ? /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(RefusalLine, { error }) : null
|