@arpproject/recrate 0.1.32-test4 → 0.1.32-test5
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/crate-builder/RenderEntity/PaginateLinkedEntities.d.ts +1 -0
- package/dist/crate-builder/RenderEntity/approval-utils.d.ts +7 -0
- package/dist/crate-builder/locales/en.d.ts +89 -0
- package/dist/crate-builder/locales/hu.d.ts +89 -0
- package/dist/recrate.es.js +687 -285
- package/package.json +1 -1
package/dist/recrate.es.js
CHANGED
|
@@ -67670,7 +67670,8 @@ const AiEditedFieldBadge = ({
|
|
|
67670
67670
|
ariaLabel,
|
|
67671
67671
|
variant = "edited"
|
|
67672
67672
|
}) => {
|
|
67673
|
-
const
|
|
67673
|
+
const { t: t2 } = useTranslation();
|
|
67674
|
+
const label = variant === "deleted" ? t2("ai_deleted_by_ai") : t2("ai_edited_by_ai");
|
|
67674
67675
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: title ?? label, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `describo-ai-edited-icon ${className}`, "aria-label": ariaLabel ?? label, children: "✦" }) });
|
|
67675
67676
|
};
|
|
67676
67677
|
const EntityId = ({
|
|
@@ -67680,6 +67681,7 @@ const EntityId = ({
|
|
|
67680
67681
|
aiEditedVariant = "edited"
|
|
67681
67682
|
}) => {
|
|
67682
67683
|
var _a2;
|
|
67684
|
+
const { t: t2 } = useTranslation();
|
|
67683
67685
|
const state = useStateStore();
|
|
67684
67686
|
const handleSave = async (data) => {
|
|
67685
67687
|
onUpdate(data);
|
|
@@ -67703,7 +67705,7 @@ const EntityId = ({
|
|
|
67703
67705
|
type: "link",
|
|
67704
67706
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$6, {}),
|
|
67705
67707
|
onClick: () => openInNewTab(entity["@id"]),
|
|
67706
|
-
title: "
|
|
67708
|
+
title: String(t2("open_in_new_tab"))
|
|
67707
67709
|
}
|
|
67708
67710
|
),
|
|
67709
67711
|
isDatasetOrFile() ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: entity["@id"] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-grow", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -67803,8 +67805,8 @@ const valueIsEmpty = (value) => {
|
|
|
67803
67805
|
if (Array.isArray(value)) return value.length === 0;
|
|
67804
67806
|
return false;
|
|
67805
67807
|
};
|
|
67806
|
-
const formatValue = (value) => {
|
|
67807
|
-
if (valueIsEmpty(value)) return
|
|
67808
|
+
const formatValue = (value, emptyLabel) => {
|
|
67809
|
+
if (valueIsEmpty(value)) return emptyLabel;
|
|
67808
67810
|
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
67809
67811
|
return String(value);
|
|
67810
67812
|
}
|
|
@@ -67819,13 +67821,15 @@ const AiFieldDiffView = ({
|
|
|
67819
67821
|
currentValue,
|
|
67820
67822
|
operation
|
|
67821
67823
|
}) => {
|
|
67824
|
+
const { t: t2 } = useTranslation();
|
|
67822
67825
|
const isDelete = operation === "delete";
|
|
67823
|
-
const
|
|
67824
|
-
const
|
|
67825
|
-
|
|
67826
|
+
const emptyLabel = String(t2("ai_empty_value"));
|
|
67827
|
+
const removedValue = formatValue(previousValue, emptyLabel);
|
|
67828
|
+
const addedValue = isDelete ? emptyLabel : formatValue(currentValue, emptyLabel);
|
|
67829
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-field-diff", "aria-label": String(t2("ai_field_diff_aria")), children: [
|
|
67826
67830
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-field-diff-head", children: [
|
|
67827
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: isDelete ? "
|
|
67828
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-field-diff-chip", children: "
|
|
67831
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: isDelete ? t2("ai_proposed_deletion") : t2("ai_proposed_change") }),
|
|
67832
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-field-diff-chip", children: t2("ai_edit_chip") })
|
|
67829
67833
|
] }),
|
|
67830
67834
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-field-diff-line describo-ai-field-diff-line-removed", children: [
|
|
67831
67835
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-field-diff-marker", children: "-" }),
|
|
@@ -67846,7 +67850,7 @@ const EntityName = ({
|
|
|
67846
67850
|
aiReview
|
|
67847
67851
|
}) => {
|
|
67848
67852
|
var _a2;
|
|
67849
|
-
const
|
|
67853
|
+
const { t: t2 } = useTranslation();
|
|
67850
67854
|
const state = useStateStore();
|
|
67851
67855
|
const [showAiDiff, setShowAiDiff] = useState(false);
|
|
67852
67856
|
const showAiReview = Boolean(aiReview);
|
|
@@ -67861,7 +67865,7 @@ const EntityName = ({
|
|
|
67861
67865
|
children: [
|
|
67862
67866
|
showAiReview && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-suggestion-badge", children: [
|
|
67863
67867
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-suggestion-badge-icon", children: "✦" }),
|
|
67864
|
-
isAiDelete ? "
|
|
67868
|
+
isAiDelete ? t2("ai_delete_badge") : t2("ai_suggestion_badge")
|
|
67865
67869
|
] }),
|
|
67866
67870
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-32 w-1/3 xl:w-1/5 flex flex-col", children: [
|
|
67867
67871
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-property-name describo-property-name-with-ai", children: [
|
|
@@ -67887,33 +67891,33 @@ const EntityName = ({
|
|
|
67887
67891
|
}
|
|
67888
67892
|
) }),
|
|
67889
67893
|
showAiReview && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-actions", children: [
|
|
67890
|
-
(aiReview == null ? void 0 : aiReview.previousValueDiffers) && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showAiDiff ? "
|
|
67894
|
+
(aiReview == null ? void 0 : aiReview.previousValueDiffers) && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showAiDiff ? t2("ai_hide_diff") : t2("ai_show_diff"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
67891
67895
|
Button$1,
|
|
67892
67896
|
{
|
|
67893
67897
|
size: "middle",
|
|
67894
67898
|
className: "describo-ai-action-diff",
|
|
67895
67899
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$7, {}),
|
|
67896
|
-
"aria-label": showAiDiff ? "
|
|
67900
|
+
"aria-label": showAiDiff ? String(t2("ai_hide_ai_diff_aria")) : String(t2("ai_show_ai_diff_aria")),
|
|
67897
67901
|
"aria-pressed": showAiDiff,
|
|
67898
67902
|
onClick: () => setShowAiDiff((visible) => !visible)
|
|
67899
67903
|
}
|
|
67900
67904
|
) }),
|
|
67901
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isAiDelete ? "
|
|
67905
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isAiDelete ? t2("ai_approve_deletion_tooltip") : t2("ai_approve_suggested_value_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
67902
67906
|
Button$1,
|
|
67903
67907
|
{
|
|
67904
67908
|
size: "middle",
|
|
67905
67909
|
className: "describo-ai-action-approve",
|
|
67906
67910
|
onClick: aiReview == null ? void 0 : aiReview.onApprove,
|
|
67907
|
-
children: isAiDelete ? "
|
|
67911
|
+
children: isAiDelete ? t2("ai_delete") : t2("ai_accept")
|
|
67908
67912
|
}
|
|
67909
67913
|
) }),
|
|
67910
|
-
(aiReview == null ? void 0 : aiReview.previousValueDiffers) && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
67914
|
+
(aiReview == null ? void 0 : aiReview.previousValueDiffers) && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_restore_previous_value_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
67911
67915
|
Button$1,
|
|
67912
67916
|
{
|
|
67913
67917
|
size: "middle",
|
|
67914
67918
|
className: "describo-ai-action-reject",
|
|
67915
67919
|
onClick: aiReview == null ? void 0 : aiReview.onReject,
|
|
67916
|
-
children: isAiDelete ? "
|
|
67920
|
+
children: isAiDelete ? t2("ai_restore") : t2("ai_reject")
|
|
67917
67921
|
}
|
|
67918
67922
|
) })
|
|
67919
67923
|
] })
|
|
@@ -79832,9 +79836,9 @@ const Map$1 = ({ entity, crateManager }) => {
|
|
|
79832
79836
|
};
|
|
79833
79837
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { id: mapId, className: "w-[600px] h-[520px] describo-property-type-map", ref: mapRef });
|
|
79834
79838
|
};
|
|
79835
|
-
const formatEntityDiffValue = (value) => {
|
|
79836
|
-
if (value === void 0 || value === null) return
|
|
79837
|
-
if (Array.isArray(value)) return value.map(formatEntityDiffValue).join(", ");
|
|
79839
|
+
const formatEntityDiffValue = (value, emptyLabel) => {
|
|
79840
|
+
if (value === void 0 || value === null) return emptyLabel;
|
|
79841
|
+
if (Array.isArray(value)) return value.map((item) => formatEntityDiffValue(item, emptyLabel)).join(", ");
|
|
79838
79842
|
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
79839
79843
|
return String(value);
|
|
79840
79844
|
}
|
|
@@ -79854,20 +79858,21 @@ const AiEntityDiffView = ({
|
|
|
79854
79858
|
onAccept,
|
|
79855
79859
|
onReject
|
|
79856
79860
|
}) => {
|
|
79861
|
+
const { t: t2 } = useTranslation();
|
|
79857
79862
|
const isDelete = operation === "delete";
|
|
79858
79863
|
const isUnlink = operation === "unlink";
|
|
79859
|
-
const title = isDelete ?
|
|
79864
|
+
const title = isDelete ? t2("ai_deleted_entity_title", { entityId }) : isUnlink ? t2("ai_unlinked_entity_title", { entityId }) : t2("ai_edited_entity_title", { entityId });
|
|
79860
79865
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `describo-ai-entity-diff-card ${isDelete ? "describo-ai-entity-diff-card-delete" : ""} ${isUnlink ? "describo-ai-entity-diff-card-unlink" : ""}`, children: [
|
|
79861
79866
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-entity-diff-head", children: [
|
|
79862
79867
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: title }),
|
|
79863
|
-
onClose && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
79868
|
+
onClose && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_hide_entity_diff"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79864
79869
|
Button$1,
|
|
79865
79870
|
{
|
|
79866
79871
|
type: "text",
|
|
79867
79872
|
size: "small",
|
|
79868
79873
|
className: "describo-ai-entity-diff-close",
|
|
79869
79874
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$A, {}),
|
|
79870
|
-
"aria-label": "
|
|
79875
|
+
"aria-label": String(t2("ai_hide_entity_diff_aria")),
|
|
79871
79876
|
onClick: (event) => {
|
|
79872
79877
|
event.stopPropagation();
|
|
79873
79878
|
onClose();
|
|
@@ -79882,13 +79887,13 @@ const AiEntityDiffView = ({
|
|
|
79882
79887
|
children: [
|
|
79883
79888
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-entity-diff-marker", children: row.kind === "removed" ? "-" : row.kind === "added" ? "+" : "" }),
|
|
79884
79889
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-entity-diff-key", children: row.label }),
|
|
79885
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-entity-diff-value", children: formatEntityDiffValue(row.value) })
|
|
79890
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-entity-diff-value", children: formatEntityDiffValue(row.value, String(t2("ai_empty_value"))) })
|
|
79886
79891
|
]
|
|
79887
79892
|
},
|
|
79888
79893
|
`${row.kind}-${row.propertyName}-${index2}`
|
|
79889
79894
|
)) }),
|
|
79890
79895
|
!readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-entity-diff-actions", children: [
|
|
79891
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? "
|
|
79896
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? t2("ai_approve_deletion_tooltip") : isUnlink ? t2("ai_approve_unlink_tooltip") : t2("ai_accept_entity_edits_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79892
79897
|
Button$1,
|
|
79893
79898
|
{
|
|
79894
79899
|
size: "middle",
|
|
@@ -79897,10 +79902,10 @@ const AiEntityDiffView = ({
|
|
|
79897
79902
|
event.stopPropagation();
|
|
79898
79903
|
onAccept == null ? void 0 : onAccept();
|
|
79899
79904
|
},
|
|
79900
|
-
children: isDelete ? "
|
|
79905
|
+
children: isDelete ? t2("ai_delete_entity") : isUnlink ? t2("ai_unlink_entity") : t2("ai_accept_edit")
|
|
79901
79906
|
}
|
|
79902
79907
|
) }),
|
|
79903
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? "
|
|
79908
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isDelete ? t2("ai_restore_deleted_entity_tooltip") : isUnlink ? t2("ai_restore_link_tooltip") : t2("ai_restore_entity_values_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79904
79909
|
Button$1,
|
|
79905
79910
|
{
|
|
79906
79911
|
size: "middle",
|
|
@@ -79909,7 +79914,7 @@ const AiEntityDiffView = ({
|
|
|
79909
79914
|
event.stopPropagation();
|
|
79910
79915
|
onReject == null ? void 0 : onReject();
|
|
79911
79916
|
},
|
|
79912
|
-
children: isDelete ? "
|
|
79917
|
+
children: isDelete ? t2("ai_keep_entity") : isUnlink ? t2("ai_restore_link") : t2("ai_reject_edit")
|
|
79913
79918
|
}
|
|
79914
79919
|
) })
|
|
79915
79920
|
] })
|
|
@@ -80012,6 +80017,7 @@ const DeletedLinkedEntityCard = ({
|
|
|
80012
80017
|
onAcceptDelete,
|
|
80013
80018
|
onRestore
|
|
80014
80019
|
}) => {
|
|
80020
|
+
const { t: t2 } = useTranslation();
|
|
80015
80021
|
const [showDeletedFields, setShowDeletedFields] = useState(false);
|
|
80016
80022
|
const deletedDiffRows = fields.map((field) => ({
|
|
80017
80023
|
kind: "removed",
|
|
@@ -80049,22 +80055,19 @@ const DeletedLinkedEntityCard = ({
|
|
|
80049
80055
|
children: [
|
|
80050
80056
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-suggestion-badge describo-ai-entity-status-badge", children: [
|
|
80051
80057
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-suggestion-badge-icon", children: "✦" }),
|
|
80052
|
-
"
|
|
80058
|
+
t2("ai_delete_badge")
|
|
80053
80059
|
] }),
|
|
80054
80060
|
/* @__PURE__ */ jsxRuntimeExports.jsx(LinkedEntityCardHeader, { entity: displayEntity }),
|
|
80055
80061
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-deleted-entity-controls", children: [
|
|
80056
80062
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-deleted-entity-summary", children: [
|
|
80057
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
80058
|
-
|
|
80059
|
-
" fields can be restored."
|
|
80060
|
-
] }),
|
|
80061
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showDeletedFields ? "Hide deleted fields" : "Show deleted fields", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80063
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t2("ai_fields_can_be_restored", { count: fieldCount }) }),
|
|
80064
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showDeletedFields ? t2("ai_hide_deleted_fields") : t2("ai_show_deleted_fields"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80062
80065
|
Button$1,
|
|
80063
80066
|
{
|
|
80064
80067
|
size: "small",
|
|
80065
80068
|
className: "describo-ai-entity-delete-details-toggle",
|
|
80066
80069
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$7, {}),
|
|
80067
|
-
"aria-label": showDeletedFields ? "
|
|
80070
|
+
"aria-label": showDeletedFields ? String(t2("ai_hide_deleted_fields_aria")) : String(t2("ai_show_deleted_fields_aria")),
|
|
80068
80071
|
"aria-pressed": showDeletedFields,
|
|
80069
80072
|
onClick: (event) => {
|
|
80070
80073
|
event.stopPropagation();
|
|
@@ -80074,7 +80077,7 @@ const DeletedLinkedEntityCard = ({
|
|
|
80074
80077
|
) })
|
|
80075
80078
|
] }),
|
|
80076
80079
|
!readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-actions", children: [
|
|
80077
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
80080
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_approve_deletion_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80078
80081
|
Button$1,
|
|
80079
80082
|
{
|
|
80080
80083
|
size: "small",
|
|
@@ -80083,10 +80086,10 @@ const DeletedLinkedEntityCard = ({
|
|
|
80083
80086
|
event.stopPropagation();
|
|
80084
80087
|
onAcceptDelete == null ? void 0 : onAcceptDelete(entity);
|
|
80085
80088
|
},
|
|
80086
|
-
children: "
|
|
80089
|
+
children: t2("ai_delete")
|
|
80087
80090
|
}
|
|
80088
80091
|
) }),
|
|
80089
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
80092
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_restore_deleted_entity_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80090
80093
|
Button$1,
|
|
80091
80094
|
{
|
|
80092
80095
|
size: "small",
|
|
@@ -80095,7 +80098,7 @@ const DeletedLinkedEntityCard = ({
|
|
|
80095
80098
|
event.stopPropagation();
|
|
80096
80099
|
onRestore == null ? void 0 : onRestore(entity);
|
|
80097
80100
|
},
|
|
80098
|
-
children: "
|
|
80101
|
+
children: t2("ai_restore")
|
|
80099
80102
|
}
|
|
80100
80103
|
) })
|
|
80101
80104
|
] })
|
|
@@ -80114,19 +80117,20 @@ const UnlinkedLinkedEntityCard = ({
|
|
|
80114
80117
|
onAcceptUnlink,
|
|
80115
80118
|
onRejectUnlink
|
|
80116
80119
|
}) => {
|
|
80120
|
+
const { t: t2 } = useTranslation();
|
|
80117
80121
|
const [showDiff, setShowDiff] = useState(false);
|
|
80118
80122
|
const targetEntityId = entity["@id"];
|
|
80119
80123
|
const diffRows = [
|
|
80120
80124
|
{
|
|
80121
80125
|
kind: "context",
|
|
80122
80126
|
propertyName: "@id",
|
|
80123
|
-
label: "
|
|
80127
|
+
label: t2("ai_diff_label_entity"),
|
|
80124
80128
|
value: targetEntityId
|
|
80125
80129
|
},
|
|
80126
80130
|
{
|
|
80127
80131
|
kind: "context",
|
|
80128
80132
|
propertyName: "source",
|
|
80129
|
-
label: "
|
|
80133
|
+
label: t2("ai_diff_label_linked_from"),
|
|
80130
80134
|
value: sourceEntityId
|
|
80131
80135
|
},
|
|
80132
80136
|
{
|
|
@@ -80166,17 +80170,17 @@ const UnlinkedLinkedEntityCard = ({
|
|
|
80166
80170
|
children: [
|
|
80167
80171
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-suggestion-badge describo-ai-entity-status-badge", children: [
|
|
80168
80172
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-suggestion-badge-icon", children: "✦" }),
|
|
80169
|
-
"
|
|
80173
|
+
t2("ai_unlink_badge")
|
|
80170
80174
|
] }),
|
|
80171
80175
|
/* @__PURE__ */ jsxRuntimeExports.jsx(LinkedEntityCardHeader, { entity: displayEntity }),
|
|
80172
80176
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-deleted-entity-controls", children: [
|
|
80173
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-deleted-entity-summary", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showDiff ? "
|
|
80177
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "describo-ai-deleted-entity-summary", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showDiff ? t2("ai_hide_unlink_diff") : t2("ai_show_unlink_diff"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80174
80178
|
Button$1,
|
|
80175
80179
|
{
|
|
80176
80180
|
size: "small",
|
|
80177
80181
|
className: "describo-ai-entity-delete-details-toggle",
|
|
80178
80182
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$7, {}),
|
|
80179
|
-
"aria-label": showDiff ? "
|
|
80183
|
+
"aria-label": showDiff ? String(t2("ai_hide_unlink_diff_aria")) : String(t2("ai_show_unlink_diff_aria")),
|
|
80180
80184
|
"aria-pressed": showDiff,
|
|
80181
80185
|
onClick: (event) => {
|
|
80182
80186
|
event.stopPropagation();
|
|
@@ -80185,7 +80189,7 @@ const UnlinkedLinkedEntityCard = ({
|
|
|
80185
80189
|
}
|
|
80186
80190
|
) }) }),
|
|
80187
80191
|
!readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-actions", children: [
|
|
80188
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
80192
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_approve_unlink_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80189
80193
|
Button$1,
|
|
80190
80194
|
{
|
|
80191
80195
|
size: "small",
|
|
@@ -80194,10 +80198,10 @@ const UnlinkedLinkedEntityCard = ({
|
|
|
80194
80198
|
event.stopPropagation();
|
|
80195
80199
|
onAcceptUnlink == null ? void 0 : onAcceptUnlink({ sourceEntityId, property, targetEntityId });
|
|
80196
80200
|
},
|
|
80197
|
-
children: "
|
|
80201
|
+
children: t2("ai_unlink_entity")
|
|
80198
80202
|
}
|
|
80199
80203
|
) }),
|
|
80200
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
80204
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_restore_link_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80201
80205
|
Button$1,
|
|
80202
80206
|
{
|
|
80203
80207
|
size: "small",
|
|
@@ -80206,7 +80210,7 @@ const UnlinkedLinkedEntityCard = ({
|
|
|
80206
80210
|
event.stopPropagation();
|
|
80207
80211
|
onRejectUnlink == null ? void 0 : onRejectUnlink({ sourceEntityId, property, targetEntityId });
|
|
80208
80212
|
},
|
|
80209
|
-
children: "
|
|
80213
|
+
children: t2("ai_restore")
|
|
80210
80214
|
}
|
|
80211
80215
|
) })
|
|
80212
80216
|
] })
|
|
@@ -80243,23 +80247,18 @@ const AiEntityReviewSummary = ({
|
|
|
80243
80247
|
onReview,
|
|
80244
80248
|
onDiff
|
|
80245
80249
|
}) => {
|
|
80250
|
+
const { t: t2 } = useTranslation();
|
|
80246
80251
|
if (fieldCount <= 0) return null;
|
|
80247
|
-
const fieldLabel = fieldCount === 1 ? "field" : "fields";
|
|
80248
80252
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-entity-review-summary", children: [
|
|
80249
80253
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-entity-review-meta", children: [
|
|
80250
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
80251
|
-
|
|
80252
|
-
" ",
|
|
80253
|
-
fieldLabel,
|
|
80254
|
-
" to review"
|
|
80255
|
-
] }),
|
|
80256
|
-
onDiff && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "Show entity diff", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80254
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-entity-review-count", children: t2("ai_fields_to_review", { count: fieldCount }) }),
|
|
80255
|
+
onDiff && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_show_entity_diff"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80257
80256
|
Button$1,
|
|
80258
80257
|
{
|
|
80259
80258
|
className: "describo-ai-entity-diff-toggle",
|
|
80260
80259
|
size: "small",
|
|
80261
80260
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$7, {}),
|
|
80262
|
-
"aria-label": "
|
|
80261
|
+
"aria-label": String(t2("ai_show_entity_diff_aria")),
|
|
80263
80262
|
onClick: (event) => {
|
|
80264
80263
|
event.stopPropagation();
|
|
80265
80264
|
onDiff();
|
|
@@ -80276,7 +80275,7 @@ const AiEntityReviewSummary = ({
|
|
|
80276
80275
|
event.stopPropagation();
|
|
80277
80276
|
onReview();
|
|
80278
80277
|
},
|
|
80279
|
-
children: "
|
|
80278
|
+
children: t2("ai_review_entity")
|
|
80280
80279
|
}
|
|
80281
80280
|
)
|
|
80282
80281
|
] });
|
|
@@ -80291,47 +80290,51 @@ const LinkedEntityCard = ({
|
|
|
80291
80290
|
onLoadEntity,
|
|
80292
80291
|
onUnlinkEntity,
|
|
80293
80292
|
onShowEntityDiff
|
|
80294
|
-
}) =>
|
|
80295
|
-
|
|
80296
|
-
|
|
80297
|
-
|
|
80298
|
-
|
|
80299
|
-
|
|
80300
|
-
|
|
80301
|
-
|
|
80302
|
-
|
|
80303
|
-
|
|
80304
|
-
|
|
80305
|
-
|
|
80306
|
-
|
|
80307
|
-
|
|
80308
|
-
|
|
80309
|
-
|
|
80310
|
-
|
|
80311
|
-
|
|
80312
|
-
|
|
80313
|
-
|
|
80314
|
-
|
|
80315
|
-
|
|
80316
|
-
|
|
80317
|
-
|
|
80318
|
-
|
|
80319
|
-
|
|
80320
|
-
|
|
80321
|
-
|
|
80322
|
-
|
|
80323
|
-
|
|
80324
|
-
|
|
80325
|
-
|
|
80326
|
-
|
|
80327
|
-
|
|
80328
|
-
|
|
80329
|
-
|
|
80330
|
-
|
|
80331
|
-
|
|
80332
|
-
|
|
80333
|
-
|
|
80334
|
-
)
|
|
80293
|
+
}) => {
|
|
80294
|
+
const { t: t2 } = useTranslation();
|
|
80295
|
+
const entityAddedLabel = t2("ai_entity_was_added_by_ai");
|
|
80296
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
80297
|
+
Card,
|
|
80298
|
+
{
|
|
80299
|
+
className: `${hasPendingAiReview ? "describo-ai-entity-review-card" : ""} ${hasAiTouchedEntity ? "describo-ai-entity-reviewed-card" : ""}`,
|
|
80300
|
+
style: {
|
|
80301
|
+
backgroundColor: hasPendingAiReview ? "#e6f8ef" : "#e6f0ff",
|
|
80302
|
+
cursor: "pointer",
|
|
80303
|
+
transition: "background-color 0.2s",
|
|
80304
|
+
borderLeft: hasPendingAiReview ? "3px solid #38c88a" : "3px solid #409eff"
|
|
80305
|
+
},
|
|
80306
|
+
styles: { body: { padding: hasPendingAiReview ? "22px 12px 8px" : "8px 12px" } },
|
|
80307
|
+
hoverable: true,
|
|
80308
|
+
onClick: () => onLoadEntity({ id: entity["@id"] }),
|
|
80309
|
+
children: [
|
|
80310
|
+
hasPendingAiReview && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-suggestion-badge describo-ai-entity-status-badge", children: [
|
|
80311
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-suggestion-badge-icon", children: "✦" }),
|
|
80312
|
+
t2("ai_suggestion_badge")
|
|
80313
|
+
] }),
|
|
80314
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { justify: "space-between", align: "middle", gap: 8, children: [
|
|
80315
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(LinkedEntityCardHeader, { entity: displayEntity }),
|
|
80316
|
+
!readonly && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(UnlinkEntity, { entity, onUnlinkEntity }) })
|
|
80317
|
+
] }),
|
|
80318
|
+
hasAiTouchedEntity && !hasPendingAiReview && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80319
|
+
AiEditedFieldBadge,
|
|
80320
|
+
{
|
|
80321
|
+
className: "describo-ai-entity-edited-badge",
|
|
80322
|
+
title: entityAddedLabel,
|
|
80323
|
+
ariaLabel: entityAddedLabel
|
|
80324
|
+
}
|
|
80325
|
+
),
|
|
80326
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
80327
|
+
AiEntityReviewSummary,
|
|
80328
|
+
{
|
|
80329
|
+
fieldCount: hasPendingAiReview ? pendingAiReviewFieldCount : 0,
|
|
80330
|
+
onReview: () => onLoadEntity({ id: entity["@id"] }),
|
|
80331
|
+
onDiff: hasPendingAiReview ? onShowEntityDiff : void 0
|
|
80332
|
+
}
|
|
80333
|
+
)
|
|
80334
|
+
]
|
|
80335
|
+
}
|
|
80336
|
+
);
|
|
80337
|
+
};
|
|
80335
80338
|
const approvalIsApproved = (approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.approved) === true || (approvalRecord == null ? void 0 : approvalRecord.approved) === "true";
|
|
80336
80339
|
const getApprovalEntities = (approvalData) => {
|
|
80337
80340
|
if (!approvalData) return [];
|
|
@@ -80413,6 +80416,19 @@ const getPendingDeletedEntitiesForReverseProperty = (approvalData, sourceEntityI
|
|
|
80413
80416
|
return [].concat(reverseValue).some((sourceRef) => entityIdsMatch(sourceRef == null ? void 0 : sourceRef["@id"], sourceEntityId));
|
|
80414
80417
|
});
|
|
80415
80418
|
};
|
|
80419
|
+
const getPendingDeletedEntitiesForRemovedReferences = (approvalData, sourceEntityId, property, currentValue) => {
|
|
80420
|
+
if (!sourceEntityId || !property) return [];
|
|
80421
|
+
return getPendingUnlinkedReferenceApprovals(approvalData, sourceEntityId, property, currentValue).map(({ approvalRecord, targetEntityId }) => {
|
|
80422
|
+
const deletedEntity = getPendingDeletedEntityFromApproval(approvalData, targetEntityId);
|
|
80423
|
+
if (!deletedEntity) return void 0;
|
|
80424
|
+
return {
|
|
80425
|
+
...deletedEntity,
|
|
80426
|
+
__aiDeleteSourceEntityId: sourceEntityId,
|
|
80427
|
+
__aiDeleteSourceProperty: property,
|
|
80428
|
+
__aiDeleteSourceApprovalRecord: approvalRecord
|
|
80429
|
+
};
|
|
80430
|
+
}).filter(Boolean);
|
|
80431
|
+
};
|
|
80416
80432
|
const getDeletedEntityReviewTarget = (entityApproval) => {
|
|
80417
80433
|
const deletedEntity = getDeletedEntityFromApproval(entityApproval);
|
|
80418
80434
|
const reverse = deletedEntity == null ? void 0 : deletedEntity["@reverse"];
|
|
@@ -80456,11 +80472,20 @@ const getRemovedReferenceValues = (previousValue, currentValue) => {
|
|
|
80456
80472
|
const currentIds = getReferenceValues(currentValue).map(getReferenceId).filter((id2) => typeof id2 === "string");
|
|
80457
80473
|
return getReferenceValues(previousValue).filter((previousReference) => !currentIds.some((currentId) => entityIdsMatch(currentId, getReferenceId(previousReference))));
|
|
80458
80474
|
};
|
|
80475
|
+
const getAddedReferenceValues = (previousValue, currentValue) => {
|
|
80476
|
+
const previousIds = getReferenceValues(previousValue).map(getReferenceId).filter((id2) => typeof id2 === "string");
|
|
80477
|
+
return getReferenceValues(currentValue).filter((currentReference) => !previousIds.some((previousId) => entityIdsMatch(previousId, getReferenceId(currentReference))));
|
|
80478
|
+
};
|
|
80459
80479
|
const getPendingUnlinkedReferenceApprovals = (approvalData, sourceEntityId, property, currentValue) => getEntityApprovalRecords(approvalData, sourceEntityId, property).filter((approvalRecord) => !approvalIsApproved(approvalRecord) && ["update", "delete", "remove"].includes(String(approvalRecord == null ? void 0 : approvalRecord.operation))).flatMap((approvalRecord) => getRemovedReferenceValues(approvalRecord == null ? void 0 : approvalRecord.previousValue, currentValue).map((reference) => ({
|
|
80460
80480
|
approvalRecord,
|
|
80461
80481
|
reference,
|
|
80462
80482
|
targetEntityId: getReferenceId(reference) || ""
|
|
80463
80483
|
})).filter((item) => item.targetEntityId));
|
|
80484
|
+
const getPendingAddedReferenceApprovals = (approvalData, sourceEntityId, property, currentValue) => getEntityApprovalRecords(approvalData, sourceEntityId, property).filter((approvalRecord) => !approvalIsApproved(approvalRecord) && ["update", "create", "add"].includes(String(approvalRecord == null ? void 0 : approvalRecord.operation))).flatMap((approvalRecord) => getAddedReferenceValues(approvalRecord == null ? void 0 : approvalRecord.previousValue, currentValue).map((reference) => ({
|
|
80485
|
+
approvalRecord,
|
|
80486
|
+
reference,
|
|
80487
|
+
targetEntityId: getReferenceId(reference) || ""
|
|
80488
|
+
})).filter((item) => item.targetEntityId));
|
|
80464
80489
|
const getPendingEntityApprovalRecords = (approvalData, entityId) => {
|
|
80465
80490
|
const entityApproval = getEntityApproval(approvalData, entityId);
|
|
80466
80491
|
if (!Array.isArray(entityApproval == null ? void 0 : entityApproval.approval)) return [];
|
|
@@ -80520,6 +80545,7 @@ const RenderLinkedItem = ({
|
|
|
80520
80545
|
onRejectAiEntityUnlink
|
|
80521
80546
|
}) => {
|
|
80522
80547
|
var _a2, _b, _c, _d, _e2;
|
|
80548
|
+
const { t: t2 } = useTranslation();
|
|
80523
80549
|
const state = useStateStore();
|
|
80524
80550
|
const crateManager = useContext(CrateManagerContext);
|
|
80525
80551
|
const profileManager = useContext(ProfileManagerContext);
|
|
@@ -80640,8 +80666,8 @@ const RenderLinkedItem = ({
|
|
|
80640
80666
|
const getEntityDiffLabel = (fieldName) => {
|
|
80641
80667
|
var _a3, _b2;
|
|
80642
80668
|
if (fieldName === "@id") return "@id";
|
|
80643
|
-
if (fieldName === "@type") return "
|
|
80644
|
-
if (fieldName === "name") return "
|
|
80669
|
+
if (fieldName === "@type") return t2("type_field_label");
|
|
80670
|
+
if (fieldName === "name") return t2("name_field_label");
|
|
80645
80671
|
return ((_b2 = (_a3 = profileManager == null ? void 0 : profileManager.getPropertyDefinition({
|
|
80646
80672
|
property: fieldName,
|
|
80647
80673
|
entity: effectiveEntity
|
|
@@ -80690,7 +80716,7 @@ const RenderLinkedItem = ({
|
|
|
80690
80716
|
return rows;
|
|
80691
80717
|
});
|
|
80692
80718
|
return [...contextRows, ...changedRows];
|
|
80693
|
-
}, [effectiveEntity, entity, pendingAiEntityDiffRecords, profileManager]);
|
|
80719
|
+
}, [effectiveEntity, entity, pendingAiEntityDiffRecords, profileManager, t2]);
|
|
80694
80720
|
if (showMap) {
|
|
80695
80721
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Flex, { className: "describo-render-item-link py-1 rounded bg-blue-200 hover:text-black hover:bg-blue-300 hover:rounded-r-none", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { vertical: true, className: "space-y-2", children: [
|
|
80696
80722
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(Flex, { className: "p-2", children: [
|
|
@@ -80792,18 +80818,27 @@ const PaginateLinkedEntities = ({
|
|
|
80792
80818
|
);
|
|
80793
80819
|
const [displayEntities, setDisplayEntities] = useState([]);
|
|
80794
80820
|
const [total, setTotal] = useState(entities.length);
|
|
80821
|
+
const getAiReviewEntityPage = (sourceEntities = entities) => {
|
|
80822
|
+
const reviewEntityIndex = sourceEntities.findIndex((entity) => {
|
|
80823
|
+
var _a3, _b2, _c;
|
|
80824
|
+
return ((_a3 = entity.value) == null ? void 0 : _a3.__aiDeletedEntity) || ((_b2 = entity.value) == null ? void 0 : _b2.__aiUnlinkedEntity) || ((_c = entity.value) == null ? void 0 : _c.__aiLinkedEntityReview);
|
|
80825
|
+
});
|
|
80826
|
+
if (reviewEntityIndex < 0) return void 0;
|
|
80827
|
+
return Math.floor(reviewEntityIndex / pageSize) + 1;
|
|
80828
|
+
};
|
|
80795
80829
|
useEffect(() => {
|
|
80796
80830
|
var _a3, _b2;
|
|
80831
|
+
const nextPage = getAiReviewEntityPage() ?? ((_b2 = (_a3 = editorState.editorState.latest()[property]) == null ? void 0 : _a3.paginator) == null ? void 0 : _b2.currentPage) ?? 1;
|
|
80797
80832
|
setTotal(entities.length);
|
|
80798
|
-
setCurrentPage(
|
|
80799
|
-
filterAndChunkEntitiesForDisplay();
|
|
80833
|
+
setCurrentPage(nextPage);
|
|
80834
|
+
filterAndChunkEntitiesForDisplay(nextPage);
|
|
80800
80835
|
}, [entities]);
|
|
80801
|
-
const filterAndChunkEntitiesForDisplay = () => {
|
|
80836
|
+
const filterAndChunkEntitiesForDisplay = (page = currentPage) => {
|
|
80802
80837
|
var _a3, _b2;
|
|
80803
80838
|
if (total < pageSize) {
|
|
80804
80839
|
setCurrentPage(1);
|
|
80805
80840
|
}
|
|
80806
|
-
const offset2 = (
|
|
80841
|
+
const offset2 = (page - 1) * pageSize;
|
|
80807
80842
|
let filteredEntities = entities;
|
|
80808
80843
|
if (filter2) {
|
|
80809
80844
|
const re2 = new RegExp(filter2, "i");
|
|
@@ -80819,10 +80854,10 @@ const PaginateLinkedEntities = ({
|
|
|
80819
80854
|
}
|
|
80820
80855
|
setDisplayEntities(filteredEntities.slice(offset2, offset2 + pageSize));
|
|
80821
80856
|
const currentState = editorState.editorState.latest();
|
|
80822
|
-
if (
|
|
80857
|
+
if (page !== ((_b2 = (_a3 = currentState[property]) == null ? void 0 : _a3.paginator) == null ? void 0 : _b2.currentPage)) {
|
|
80823
80858
|
currentState[property] = {
|
|
80824
80859
|
paginator: {
|
|
80825
|
-
currentPage
|
|
80860
|
+
currentPage: page
|
|
80826
80861
|
}
|
|
80827
80862
|
};
|
|
80828
80863
|
editorState.editorState.update(currentState);
|
|
@@ -82568,18 +82603,50 @@ const EntityProperty = ({
|
|
|
82568
82603
|
);
|
|
82569
82604
|
}, [values]);
|
|
82570
82605
|
const renderedLinkInstances = useMemo$1(() => {
|
|
82571
|
-
const
|
|
82606
|
+
const reverseDeletedEntities = getPendingDeletedEntitiesForReverseProperty(
|
|
82572
82607
|
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
82573
82608
|
entity == null ? void 0 : entity["@id"],
|
|
82574
82609
|
property
|
|
82575
82610
|
);
|
|
82611
|
+
const removedReferenceDeletedEntities = getPendingDeletedEntitiesForRemovedReferences(
|
|
82612
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
82613
|
+
entity == null ? void 0 : entity["@id"],
|
|
82614
|
+
property,
|
|
82615
|
+
(entity == null ? void 0 : entity[property]) ?? values
|
|
82616
|
+
);
|
|
82617
|
+
const deletedEntities = [...reverseDeletedEntities, ...removedReferenceDeletedEntities].filter((deletedEntity, idx, allDeletedEntities) => allDeletedEntities.findIndex((item) => entityIdsMatch(item == null ? void 0 : item["@id"], deletedEntity == null ? void 0 : deletedEntity["@id"])) === idx);
|
|
82576
82618
|
const unlinkedApprovals = getPendingUnlinkedReferenceApprovals(
|
|
82577
82619
|
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
82578
82620
|
entity == null ? void 0 : entity["@id"],
|
|
82579
82621
|
property,
|
|
82580
82622
|
(entity == null ? void 0 : entity[property]) ?? values
|
|
82581
82623
|
);
|
|
82582
|
-
|
|
82624
|
+
const addedReferenceApprovals = getPendingAddedReferenceApprovals(
|
|
82625
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
82626
|
+
entity == null ? void 0 : entity["@id"],
|
|
82627
|
+
property,
|
|
82628
|
+
(entity == null ? void 0 : entity[property]) ?? values
|
|
82629
|
+
);
|
|
82630
|
+
const addedReferenceIds = new Set(
|
|
82631
|
+
addedReferenceApprovals.filter(({ targetEntityId }) => getPendingEntityApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, targetEntityId).some((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) !== "@reverse")).map(({ targetEntityId }) => targetEntityId)
|
|
82632
|
+
);
|
|
82633
|
+
const linkedReviewInstances = linkInstances.map((instance2) => {
|
|
82634
|
+
var _a3;
|
|
82635
|
+
const targetEntityId = (_a3 = instance2.value) == null ? void 0 : _a3["@id"];
|
|
82636
|
+
if (!targetEntityId || !Array.from(addedReferenceIds).some((id2) => entityIdsMatch(id2, targetEntityId))) {
|
|
82637
|
+
return instance2;
|
|
82638
|
+
}
|
|
82639
|
+
return {
|
|
82640
|
+
...instance2,
|
|
82641
|
+
value: {
|
|
82642
|
+
...instance2.value,
|
|
82643
|
+
__aiLinkedEntityReview: true,
|
|
82644
|
+
__aiLinkSourceEntityId: entity == null ? void 0 : entity["@id"],
|
|
82645
|
+
__aiLinkSourceProperty: property
|
|
82646
|
+
}
|
|
82647
|
+
};
|
|
82648
|
+
});
|
|
82649
|
+
if (!deletedEntities.length && !unlinkedApprovals.length && !addedReferenceIds.size) return linkedReviewInstances;
|
|
82583
82650
|
const linkedEntityIds = linkInstances.map((instance2) => {
|
|
82584
82651
|
var _a3;
|
|
82585
82652
|
return (_a3 = instance2.value) == null ? void 0 : _a3["@id"];
|
|
@@ -82608,10 +82675,10 @@ const EntityProperty = ({
|
|
|
82608
82675
|
};
|
|
82609
82676
|
});
|
|
82610
82677
|
return lodashExports.orderBy(
|
|
82611
|
-
[...
|
|
82678
|
+
[...linkedReviewInstances, ...deletedLinkInstances, ...unlinkedLinkInstances],
|
|
82612
82679
|
[(instance2) => {
|
|
82613
|
-
var _a3, _b2;
|
|
82614
|
-
return ((_a3 = instance2.value) == null ? void 0 : _a3.__aiDeletedEntity) || ((_b2 = instance2.value) == null ? void 0 : _b2.__aiUnlinkedEntity) ? 0 : 1;
|
|
82680
|
+
var _a3, _b2, _c;
|
|
82681
|
+
return ((_a3 = instance2.value) == null ? void 0 : _a3.__aiDeletedEntity) || ((_b2 = instance2.value) == null ? void 0 : _b2.__aiUnlinkedEntity) || ((_c = instance2.value) == null ? void 0 : _c.__aiLinkedEntityReview) ? 0 : 1;
|
|
82615
82682
|
}, "value.@id"]
|
|
82616
82683
|
);
|
|
82617
82684
|
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, crateManager, entity, linkInstances, property, values]);
|
|
@@ -82715,7 +82782,7 @@ const EntityProperty = ({
|
|
|
82715
82782
|
children: [
|
|
82716
82783
|
showAiReview && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-suggestion-badge", children: [
|
|
82717
82784
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-suggestion-badge-icon", children: "✦" }),
|
|
82718
|
-
isAiDelete ? "
|
|
82785
|
+
isAiDelete ? t2("ai_delete_badge") : t2("ai_suggestion_badge")
|
|
82719
82786
|
] }),
|
|
82720
82787
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "min-w-32 w-1/3 xl:w-1/5 flex flex-col describo-property-heading", children: [
|
|
82721
82788
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row items-center", children: [
|
|
@@ -82762,33 +82829,33 @@ const EntityProperty = ({
|
|
|
82762
82829
|
}
|
|
82763
82830
|
) }),
|
|
82764
82831
|
showAiReview && instance2.idx === ((_a3 = renderedSimpleInstances[0]) == null ? void 0 : _a3.idx) && !((_b2 = state.configuration) == null ? void 0 : _b2.readonly) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-actions", children: [
|
|
82765
|
-
showAiDiffToggle && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showAiDiff ? "
|
|
82832
|
+
showAiDiffToggle && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showAiDiff ? t2("ai_hide_diff") : t2("ai_show_diff"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82766
82833
|
Button$1,
|
|
82767
82834
|
{
|
|
82768
82835
|
size: "middle",
|
|
82769
82836
|
className: "describo-ai-action-diff",
|
|
82770
82837
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$7, {}),
|
|
82771
|
-
"aria-label": showAiDiff ? "
|
|
82838
|
+
"aria-label": showAiDiff ? String(t2("ai_hide_ai_diff_aria")) : String(t2("ai_show_ai_diff_aria")),
|
|
82772
82839
|
"aria-pressed": showAiDiff,
|
|
82773
82840
|
onClick: () => setShowAiDiff((visible) => !visible)
|
|
82774
82841
|
}
|
|
82775
82842
|
) }),
|
|
82776
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isAiDelete ? "
|
|
82843
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: isAiDelete ? t2("ai_approve_deletion_tooltip") : t2("ai_approve_suggested_value_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82777
82844
|
Button$1,
|
|
82778
82845
|
{
|
|
82779
82846
|
size: "middle",
|
|
82780
82847
|
className: "describo-ai-action-approve",
|
|
82781
82848
|
onClick: handleApproveAiSuggestion,
|
|
82782
|
-
children: isAiDelete ? "
|
|
82849
|
+
children: isAiDelete ? t2("ai_delete") : t2("ai_accept")
|
|
82783
82850
|
}
|
|
82784
82851
|
) }),
|
|
82785
|
-
previousValueDiffers && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
82852
|
+
previousValueDiffers && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_restore_previous_value_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
82786
82853
|
Button$1,
|
|
82787
82854
|
{
|
|
82788
82855
|
size: "middle",
|
|
82789
82856
|
className: "describo-ai-action-reject",
|
|
82790
82857
|
onClick: () => handleRejectAiSuggestion(instance2.idx),
|
|
82791
|
-
children: isAiDelete ? "
|
|
82858
|
+
children: isAiDelete ? t2("ai_restore") : t2("ai_reject")
|
|
82792
82859
|
}
|
|
82793
82860
|
) })
|
|
82794
82861
|
] }),
|
|
@@ -108277,6 +108344,7 @@ const DialogBrowseEntities = ({
|
|
|
108277
108344
|
const hasReviewedAiEdits = approvedFieldCount > 0;
|
|
108278
108345
|
const hasPendingAiReview = pendingFieldCount > 0 && !hasReviewedAiEdits;
|
|
108279
108346
|
const hasAiTouchedEntity = hasPendingAiReview || hasReviewedAiEdits;
|
|
108347
|
+
const entityAddedLabel = t2("ai_entity_was_added_by_ai");
|
|
108280
108348
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
108281
108349
|
Card,
|
|
108282
108350
|
{
|
|
@@ -108305,8 +108373,8 @@ const DialogBrowseEntities = ({
|
|
|
108305
108373
|
AiEditedFieldBadge,
|
|
108306
108374
|
{
|
|
108307
108375
|
className: "describo-ai-entity-edited-badge",
|
|
108308
|
-
title:
|
|
108309
|
-
ariaLabel:
|
|
108376
|
+
title: entityAddedLabel,
|
|
108377
|
+
ariaLabel: entityAddedLabel
|
|
108310
108378
|
}
|
|
108311
108379
|
),
|
|
108312
108380
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -110693,55 +110761,58 @@ const QuickSettingsHeader = ({
|
|
|
110693
110761
|
onFieldTitleFilterChange,
|
|
110694
110762
|
onToggleEmptyFields,
|
|
110695
110763
|
onToggleAiEditedFields
|
|
110696
|
-
}) =>
|
|
110697
|
-
|
|
110698
|
-
|
|
110699
|
-
|
|
110700
|
-
{
|
|
110701
|
-
|
|
110702
|
-
|
|
110703
|
-
|
|
110704
|
-
|
|
110705
|
-
|
|
110706
|
-
|
|
110707
|
-
|
|
110708
|
-
|
|
110709
|
-
|
|
110710
|
-
{
|
|
110711
|
-
|
|
110712
|
-
|
|
110713
|
-
|
|
110714
|
-
|
|
110715
|
-
|
|
110716
|
-
|
|
110717
|
-
|
|
110718
|
-
|
|
110719
|
-
|
|
110764
|
+
}) => {
|
|
110765
|
+
const { t: t2 } = useTranslation();
|
|
110766
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-quick-settings-header", role: "region", "aria-label": String(t2("quick_filter_settings_aria")), children: [
|
|
110767
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-quick-settings-actions", "aria-label": String(t2("field_display_settings_aria")), children: [
|
|
110768
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showFieldHelp ? t2("hide_field_help") : t2("show_field_help"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110769
|
+
Button$1,
|
|
110770
|
+
{
|
|
110771
|
+
type: showFieldHelp ? "default" : "primary",
|
|
110772
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$l, {}),
|
|
110773
|
+
"aria-label": showFieldHelp ? String(t2("hide_field_help")) : String(t2("show_field_help")),
|
|
110774
|
+
"aria-pressed": !showFieldHelp,
|
|
110775
|
+
onClick: onToggleFieldHelp
|
|
110776
|
+
}
|
|
110777
|
+
) }),
|
|
110778
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: hideEmptyFields ? t2("show_empty_fields") : t2("hide_empty_fields"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110779
|
+
Button$1,
|
|
110780
|
+
{
|
|
110781
|
+
type: hideEmptyFields ? "primary" : "default",
|
|
110782
|
+
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$5, {}),
|
|
110783
|
+
"aria-label": hideEmptyFields ? String(t2("show_empty_fields")) : String(t2("hide_empty_fields")),
|
|
110784
|
+
"aria-pressed": hideEmptyFields,
|
|
110785
|
+
onClick: onToggleEmptyFields
|
|
110786
|
+
}
|
|
110787
|
+
) }),
|
|
110788
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: showAiEditedFields ? t2("show_all_fields") : t2("show_ai_edited_fields"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110789
|
+
Button$1,
|
|
110790
|
+
{
|
|
110791
|
+
type: showAiEditedFields ? "primary" : "default",
|
|
110792
|
+
className: "describo-ai-edited-filter-button",
|
|
110793
|
+
"aria-label": showAiEditedFields ? String(t2("show_all_fields")) : String(t2("show_ai_edited_fields")),
|
|
110794
|
+
"aria-pressed": showAiEditedFields,
|
|
110795
|
+
disabled: aiEditedFieldCount === 0,
|
|
110796
|
+
onClick: onToggleAiEditedFields,
|
|
110797
|
+
children: "✦"
|
|
110798
|
+
}
|
|
110799
|
+
) })
|
|
110800
|
+
] }),
|
|
110801
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110802
|
+
Input2,
|
|
110720
110803
|
{
|
|
110721
|
-
|
|
110722
|
-
|
|
110723
|
-
|
|
110724
|
-
"aria-
|
|
110725
|
-
|
|
110726
|
-
|
|
110727
|
-
|
|
110728
|
-
|
|
110729
|
-
) })
|
|
110730
|
-
] }),
|
|
110731
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110732
|
-
Input2,
|
|
110733
|
-
{
|
|
110734
|
-
className: "describo-quick-settings-filter",
|
|
110735
|
-
value: fieldTitleFilter,
|
|
110736
|
-
placeholder: "Filter fields by name or value",
|
|
110737
|
-
"aria-label": "Filter fields by name or value",
|
|
110738
|
-
onChange: (event) => onFieldTitleFilterChange(event.target.value),
|
|
110739
|
-
allowClear: {
|
|
110740
|
-
clearIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$B, { "aria-label": "Clear field filter" })
|
|
110804
|
+
className: "describo-quick-settings-filter",
|
|
110805
|
+
value: fieldTitleFilter,
|
|
110806
|
+
placeholder: String(t2("filter_fields_by_name_or_value")),
|
|
110807
|
+
"aria-label": String(t2("filter_fields_by_name_or_value")),
|
|
110808
|
+
onChange: (event) => onFieldTitleFilterChange(event.target.value),
|
|
110809
|
+
allowClear: {
|
|
110810
|
+
clearIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$B, { "aria-label": String(t2("clear_field_filter")) })
|
|
110811
|
+
}
|
|
110741
110812
|
}
|
|
110742
|
-
|
|
110743
|
-
)
|
|
110744
|
-
|
|
110813
|
+
)
|
|
110814
|
+
] });
|
|
110815
|
+
};
|
|
110745
110816
|
const AiApprovalStepperHeader = ({
|
|
110746
110817
|
activeIndex,
|
|
110747
110818
|
pendingCount,
|
|
@@ -110757,12 +110828,17 @@ const AiApprovalStepperHeader = ({
|
|
|
110757
110828
|
onRejectAll,
|
|
110758
110829
|
onReviewNextEntity
|
|
110759
110830
|
}) => {
|
|
110831
|
+
const { t: t2 } = useTranslation();
|
|
110760
110832
|
if (!pendingCount && !remainingEntityCount) return null;
|
|
110761
110833
|
if (!pendingCount) {
|
|
110762
|
-
const entityLabel =
|
|
110763
|
-
const
|
|
110764
|
-
|
|
110765
|
-
|
|
110834
|
+
const entityLabel = t2("ai_entity", { count: remainingEntityCount });
|
|
110835
|
+
const remainingMessage = t2("ai_remaining_review_message", {
|
|
110836
|
+
count: remainingFieldCount,
|
|
110837
|
+
fieldCount: remainingFieldCount,
|
|
110838
|
+
entityCount: remainingEntityCount,
|
|
110839
|
+
entityLabel
|
|
110840
|
+
});
|
|
110841
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-confirm-bar describo-ai-confirm-bar-remaining", role: "status", "aria-label": String(t2("ai_changes_remaining_aria")), children: [
|
|
110766
110842
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-confirm-message", children: [
|
|
110767
110843
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-confirm-spark", children: "✦" }),
|
|
110768
110844
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: remainingMessage })
|
|
@@ -110772,66 +110848,66 @@ const AiApprovalStepperHeader = ({
|
|
|
110772
110848
|
{
|
|
110773
110849
|
className: "describo-ai-review-next-entity",
|
|
110774
110850
|
onClick: onReviewNextEntity,
|
|
110775
|
-
children: "
|
|
110851
|
+
children: t2("ai_review_next")
|
|
110776
110852
|
}
|
|
110777
110853
|
) })
|
|
110778
110854
|
] });
|
|
110779
110855
|
}
|
|
110780
110856
|
const stepLabel = `${Math.min(activeIndex + 1, pendingCount)}/${pendingCount}`;
|
|
110781
|
-
const message = activePropertyLabel ?
|
|
110782
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-confirm-bar", role: "region", "aria-label": "
|
|
110857
|
+
const message = activePropertyLabel ? t2("ai_changes_need_review_property", { property: activePropertyLabel }) : t2("ai_changes_need_review");
|
|
110858
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-confirm-bar", role: "region", "aria-label": String(t2("ai_change_review_aria")), children: [
|
|
110783
110859
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-confirm-message", children: [
|
|
110784
110860
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-confirm-spark", children: "✦" }),
|
|
110785
110861
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: message })
|
|
110786
110862
|
] }),
|
|
110787
110863
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-confirm-controls", children: [
|
|
110788
|
-
onReviewNextEntity && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: remainingEntityCount > 0 ? "
|
|
110864
|
+
onReviewNextEntity && /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: remainingEntityCount > 0 ? t2("ai_review_next_entity_tooltip") : t2("ai_no_other_entities_need_review"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110789
110865
|
Button$1,
|
|
110790
110866
|
{
|
|
110791
110867
|
className: "describo-ai-review-next-entity",
|
|
110792
110868
|
disabled: remainingEntityCount === 0,
|
|
110793
110869
|
onClick: onReviewNextEntity,
|
|
110794
|
-
children: "
|
|
110870
|
+
children: t2("ai_review_next")
|
|
110795
110871
|
}
|
|
110796
110872
|
) }),
|
|
110797
110873
|
!readonly && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
110798
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
110874
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_accept_all_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110799
110875
|
Button$1,
|
|
110800
110876
|
{
|
|
110801
110877
|
className: "describo-ai-bulk-action describo-ai-bulk-accept",
|
|
110802
110878
|
onClick: onAcceptAll,
|
|
110803
|
-
children: "
|
|
110879
|
+
children: t2("ai_accept_all")
|
|
110804
110880
|
}
|
|
110805
110881
|
) }),
|
|
110806
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
110882
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_reject_all_tooltip"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110807
110883
|
Button$1,
|
|
110808
110884
|
{
|
|
110809
110885
|
className: "describo-ai-bulk-action describo-ai-bulk-reject",
|
|
110810
110886
|
onClick: onRejectAll,
|
|
110811
|
-
children: "
|
|
110887
|
+
children: t2("ai_reject_all")
|
|
110812
110888
|
}
|
|
110813
110889
|
) })
|
|
110814
110890
|
] }),
|
|
110815
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-stepper", "aria-label": "
|
|
110816
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
110891
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "describo-ai-stepper", "aria-label": String(t2("ai_pending_field_navigation_aria")), children: [
|
|
110892
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_previous_pending_field"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110817
110893
|
Button$1,
|
|
110818
110894
|
{
|
|
110819
110895
|
type: "text",
|
|
110820
110896
|
size: "small",
|
|
110821
110897
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$p, {}),
|
|
110822
|
-
"aria-label": "
|
|
110898
|
+
"aria-label": String(t2("ai_previous_pending_field_aria")),
|
|
110823
110899
|
disabled: !canGoPrevious,
|
|
110824
110900
|
onClick: onPrevious
|
|
110825
110901
|
}
|
|
110826
110902
|
) }),
|
|
110827
110903
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "describo-ai-step-count", children: stepLabel }),
|
|
110828
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: "
|
|
110904
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip2, { title: t2("ai_next_pending_field"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
110829
110905
|
Button$1,
|
|
110830
110906
|
{
|
|
110831
110907
|
type: "text",
|
|
110832
110908
|
size: "small",
|
|
110833
110909
|
icon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$u, {}),
|
|
110834
|
-
"aria-label": "
|
|
110910
|
+
"aria-label": String(t2("ai_next_pending_field_aria")),
|
|
110835
110911
|
disabled: !canGoNext,
|
|
110836
110912
|
onClick: onNext
|
|
110837
110913
|
}
|
|
@@ -112467,10 +112543,19 @@ const findAddedProfileTab = (tabs, previousTabKeys) => {
|
|
|
112467
112543
|
const profileTabs = tabs.filter(isProfileTab);
|
|
112468
112544
|
return profileTabs.find((tab) => !previousTabKeys.has(getProfileTabKey(tab))) ?? profileTabs[profileTabs.length - 1];
|
|
112469
112545
|
};
|
|
112470
|
-
const
|
|
112546
|
+
const isAboutTab = (tab) => {
|
|
112547
|
+
const name2 = String((tab == null ? void 0 : tab.name) || "").toLowerCase();
|
|
112548
|
+
const label = String((tab == null ? void 0 : tab.label) || (tab == null ? void 0 : tab.name) || "").toLowerCase();
|
|
112549
|
+
return name2 === "about" || label === "about";
|
|
112550
|
+
};
|
|
112551
|
+
const tabContainsProperty = (tab, property) => {
|
|
112471
112552
|
var _a2;
|
|
112472
|
-
return (_a2 = tab == null ? void 0 : tab.inputs) == null ? void 0 : _a2.some((input) => (input == null ? void 0 : input.name) === property);
|
|
112473
|
-
}
|
|
112553
|
+
return (_a2 = tab == null ? void 0 : tab.inputs) == null ? void 0 : _a2.some((input) => (input == null ? void 0 : input.name) === property || (input == null ? void 0 : input.id) === property);
|
|
112554
|
+
};
|
|
112555
|
+
const findTabForProperty = (tabs, property) => {
|
|
112556
|
+
const matchingTabs = tabs.filter((tab) => tabContainsProperty(tab, property));
|
|
112557
|
+
return matchingTabs.find((tab) => !isAboutTab(tab)) ?? matchingTabs[0] ?? tabs.find((tab) => ["overflow", "other"].includes(String((tab == null ? void 0 : tab.name) || "").toLowerCase()));
|
|
112558
|
+
};
|
|
112474
112559
|
const getPendingAddedProfileStorageKey = (entityId) => `recrate.pending-added-profile-tab.${entityId}`;
|
|
112475
112560
|
const DEFAULT_TAB_PANE_WIDTH = 240;
|
|
112476
112561
|
const ICON_TAB_PANE_WIDTH = 80;
|
|
@@ -112524,7 +112609,7 @@ const buildAiApprovalNavigationKey = (entityId, approvalRecord) => {
|
|
|
112524
112609
|
return `${entityId}:${propertyName2}:${operation}:${timestamp}:${previousValue}`;
|
|
112525
112610
|
};
|
|
112526
112611
|
const RenderEntity = forwardRef((props, ref) => {
|
|
112527
|
-
var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
112612
|
+
var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
|
|
112528
112613
|
const { entity, onLoadEntity, onSaveCrate, onSaveEntityTemplate, onWarning, onError, onAddNewProfileRequest, onRemoveProfile } = props;
|
|
112529
112614
|
const state = useStateStore();
|
|
112530
112615
|
const profileManager = useContext(ProfileManagerContext);
|
|
@@ -112584,16 +112669,46 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
112584
112669
|
const isAiScrollRestoreSuppressed = () => Date.now() < aiScrollRestoreSuppressedUntilRef.current;
|
|
112585
112670
|
const pendingAiApprovals = useMemo$1(() => getPendingEntityApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]]);
|
|
112586
112671
|
const pendingAiApprovalProperties = useMemo$1(() => pendingAiApprovals.map((approvalRecord) => approvalRecord == null ? void 0 : approvalRecord.propertyName).filter((property) => typeof property === "string" && property.length > 0), [pendingAiApprovals]);
|
|
112587
|
-
const pendingDeletedEntityReviewProperties = useMemo$1(() =>
|
|
112588
|
-
|
|
112589
|
-
|
|
112590
|
-
|
|
112672
|
+
const pendingDeletedEntityReviewProperties = useMemo$1(() => {
|
|
112673
|
+
const reverseDeletedEntityProperties = getPendingDeletedEntityReversePropertiesForSource(
|
|
112674
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
112675
|
+
contextEntity == null ? void 0 : contextEntity["@id"]
|
|
112676
|
+
);
|
|
112677
|
+
const removedReferenceDeletedEntityProperties = pendingAiApprovals.map((approvalRecord) => approvalRecord == null ? void 0 : approvalRecord.propertyName).filter((property) => typeof property === "string" && property.length > 0).filter((property) => getPendingDeletedEntitiesForRemovedReferences(
|
|
112678
|
+
approvalContext == null ? void 0 : approvalContext.roCrateApproval,
|
|
112679
|
+
contextEntity == null ? void 0 : contextEntity["@id"],
|
|
112680
|
+
property,
|
|
112681
|
+
contextEntity == null ? void 0 : contextEntity[property]
|
|
112682
|
+
).length > 0);
|
|
112683
|
+
return Array.from(/* @__PURE__ */ new Set([
|
|
112684
|
+
...reverseDeletedEntityProperties,
|
|
112685
|
+
...removedReferenceDeletedEntityProperties
|
|
112686
|
+
]));
|
|
112687
|
+
}, [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity, pendingAiApprovals]);
|
|
112591
112688
|
const approvedAiApprovals = useMemo$1(() => getApprovedEntityApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]]);
|
|
112592
112689
|
const approvedAiApprovalProperties = useMemo$1(() => Array.from(new Set(
|
|
112593
112690
|
approvedAiApprovals.map((approvalRecord) => approvalRecord == null ? void 0 : approvalRecord.propertyName).filter((property) => typeof property === "string" && property.length > 0)
|
|
112594
112691
|
)), [approvedAiApprovals]);
|
|
112595
112692
|
const selectedAiApproval = pendingAiApprovals[selectedAiApprovalIndex] ?? pendingAiApprovals[0];
|
|
112596
|
-
const selectedAiApprovalProperty = selectedAiApproval == null ? void 0 : selectedAiApproval.propertyName;
|
|
112693
|
+
const selectedAiApprovalProperty = (selectedAiApproval == null ? void 0 : selectedAiApproval.propertyName) ?? pendingDeletedEntityReviewProperties[0];
|
|
112694
|
+
useCallback((entityApproval) => {
|
|
112695
|
+
const entityId = entityApproval == null ? void 0 : entityApproval["@id"];
|
|
112696
|
+
if (!entityId) return false;
|
|
112697
|
+
if (isPendingEntityDeleteApproval(entityApproval)) {
|
|
112698
|
+
const reviewTarget = getDeletedEntityReviewTarget(entityApproval);
|
|
112699
|
+
if (!(reviewTarget == null ? void 0 : reviewTarget.entityId)) return false;
|
|
112700
|
+
return Boolean(crateManager == null ? void 0 : crateManager.getEntity({
|
|
112701
|
+
id: reviewTarget.entityId,
|
|
112702
|
+
link: false,
|
|
112703
|
+
materialise: false
|
|
112704
|
+
}));
|
|
112705
|
+
}
|
|
112706
|
+
return Boolean(crateManager == null ? void 0 : crateManager.getEntity({
|
|
112707
|
+
id: entityId,
|
|
112708
|
+
link: false,
|
|
112709
|
+
materialise: false
|
|
112710
|
+
}));
|
|
112711
|
+
}, [crateManager]);
|
|
112597
112712
|
const pendingOtherAiApprovalEntities = useMemo$1(() => getPendingApprovalEntities(approvalContext == null ? void 0 : approvalContext.roCrateApproval).filter((entityApproval) => !entityIdsMatch(entityApproval == null ? void 0 : entityApproval["@id"], contextEntity == null ? void 0 : contextEntity["@id"])), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]]);
|
|
112598
112713
|
const pendingOtherAiApprovalFieldCount = useMemo$1(() => getPendingApprovalFieldCount(approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]), [approvalContext == null ? void 0 : approvalContext.roCrateApproval, contextEntity == null ? void 0 : contextEntity["@id"]]);
|
|
112599
112714
|
const handleReviewNextAiApprovalEntity = useCallback(() => {
|
|
@@ -113594,13 +113709,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
113594
113709
|
window.clearTimeout(timerId);
|
|
113595
113710
|
};
|
|
113596
113711
|
}, []);
|
|
113597
|
-
const
|
|
113598
|
-
if (!pendingAiApprovals.length) return;
|
|
113599
|
-
if (index2 < 0 || index2 >= pendingAiApprovals.length) return;
|
|
113600
|
-
const approvalRecord = pendingAiApprovals[index2];
|
|
113601
|
-
const property = approvalRecord == null ? void 0 : approvalRecord.propertyName;
|
|
113712
|
+
const navigateToAiApprovalProperty = useCallback((property) => {
|
|
113602
113713
|
if (!property) return;
|
|
113603
|
-
setSelectedAiApprovalIndex(index2);
|
|
113604
113714
|
setFieldTitleFilter("");
|
|
113605
113715
|
if (!hasFieldValue(contextEntity == null ? void 0 : contextEntity[property]) && hideEmptyFields) {
|
|
113606
113716
|
setHideEmptyFields(false);
|
|
@@ -113624,19 +113734,46 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
113624
113734
|
scrollToAiApprovalProperty,
|
|
113625
113735
|
tabs
|
|
113626
113736
|
]);
|
|
113737
|
+
const navigateToAiApproval = useCallback((index2) => {
|
|
113738
|
+
if (!pendingAiApprovals.length) return;
|
|
113739
|
+
if (index2 < 0 || index2 >= pendingAiApprovals.length) return;
|
|
113740
|
+
const approvalRecord = pendingAiApprovals[index2];
|
|
113741
|
+
const property = approvalRecord == null ? void 0 : approvalRecord.propertyName;
|
|
113742
|
+
if (!property) return;
|
|
113743
|
+
setSelectedAiApprovalIndex(index2);
|
|
113744
|
+
navigateToAiApprovalProperty(property);
|
|
113745
|
+
}, [navigateToAiApprovalProperty, pendingAiApprovals]);
|
|
113627
113746
|
useEffect(() => {
|
|
113747
|
+
var _a3, _b2;
|
|
113628
113748
|
const entityId = contextEntity == null ? void 0 : contextEntity["@id"];
|
|
113749
|
+
const profileHasTabbedLayout = Boolean((_b2 = (_a3 = profileManager == null ? void 0 : profileManager.profile) == null ? void 0 : _a3.layouts) == null ? void 0 : _b2.length);
|
|
113750
|
+
if (profileHasTabbedLayout && tabs.length === 0) {
|
|
113751
|
+
return;
|
|
113752
|
+
}
|
|
113629
113753
|
const firstPendingApproval = pendingAiApprovals[0];
|
|
113630
|
-
const firstPendingProperty = firstPendingApproval == null ? void 0 : firstPendingApproval.propertyName;
|
|
113754
|
+
const firstPendingProperty = (firstPendingApproval == null ? void 0 : firstPendingApproval.propertyName) ?? pendingDeletedEntityReviewProperties[0];
|
|
113631
113755
|
if (!entityId || !firstPendingProperty) {
|
|
113632
113756
|
lastAutoNavigatedAiApprovalRef.current = null;
|
|
113633
113757
|
return;
|
|
113634
113758
|
}
|
|
113635
|
-
const autoNavigationKey = `${(profileManager == null ? void 0 : profileManager.$key) ?? 0}:${buildAiApprovalNavigationKey(entityId, firstPendingApproval)}`;
|
|
113759
|
+
const autoNavigationKey = firstPendingApproval ? `${(profileManager == null ? void 0 : profileManager.$key) ?? 0}:${buildAiApprovalNavigationKey(entityId, firstPendingApproval)}` : `${(profileManager == null ? void 0 : profileManager.$key) ?? 0}:${entityId}:${firstPendingProperty}:deleted-entity-review`;
|
|
113636
113760
|
if (lastAutoNavigatedAiApprovalRef.current === autoNavigationKey) return;
|
|
113637
113761
|
lastAutoNavigatedAiApprovalRef.current = autoNavigationKey;
|
|
113638
|
-
|
|
113639
|
-
|
|
113762
|
+
if (firstPendingApproval) {
|
|
113763
|
+
navigateToAiApproval(0);
|
|
113764
|
+
return;
|
|
113765
|
+
}
|
|
113766
|
+
navigateToAiApprovalProperty(firstPendingProperty);
|
|
113767
|
+
}, [
|
|
113768
|
+
contextEntity == null ? void 0 : contextEntity["@id"],
|
|
113769
|
+
navigateToAiApproval,
|
|
113770
|
+
navigateToAiApprovalProperty,
|
|
113771
|
+
pendingAiApprovals,
|
|
113772
|
+
pendingDeletedEntityReviewProperties,
|
|
113773
|
+
profileManager == null ? void 0 : profileManager.$key,
|
|
113774
|
+
(_b = (_a2 = profileManager == null ? void 0 : profileManager.profile) == null ? void 0 : _a2.layouts) == null ? void 0 : _b.length,
|
|
113775
|
+
tabs.length
|
|
113776
|
+
]);
|
|
113640
113777
|
useEffect(() => {
|
|
113641
113778
|
const pendingProperty = pendingAiScrollPropertyRef.current;
|
|
113642
113779
|
if (!pendingProperty) return;
|
|
@@ -113905,23 +114042,55 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
113905
114042
|
});
|
|
113906
114043
|
});
|
|
113907
114044
|
};
|
|
113908
|
-
const
|
|
113909
|
-
|
|
113910
|
-
|
|
114045
|
+
const getDeletedEntitySourceApproval = (deletedEntity) => {
|
|
114046
|
+
const sourceEntityId = deletedEntity == null ? void 0 : deletedEntity.__aiDeleteSourceEntityId;
|
|
114047
|
+
const sourceProperty = deletedEntity == null ? void 0 : deletedEntity.__aiDeleteSourceProperty;
|
|
114048
|
+
if (!sourceEntityId || !sourceProperty) return void 0;
|
|
114049
|
+
return getPendingEntityApprovalRecords(approvalContext == null ? void 0 : approvalContext.roCrateApproval, sourceEntityId).find((approvalRecord) => (approvalRecord == null ? void 0 : approvalRecord.propertyName) === sourceProperty);
|
|
114050
|
+
};
|
|
114051
|
+
const markDeletedEntityApprovalResolved = (deletedEntity, decision, value) => {
|
|
114052
|
+
var _a3, _b2;
|
|
114053
|
+
const sourceEntityId = deletedEntity == null ? void 0 : deletedEntity.__aiDeleteSourceEntityId;
|
|
114054
|
+
const sourceProperty = deletedEntity == null ? void 0 : deletedEntity.__aiDeleteSourceProperty;
|
|
114055
|
+
if (sourceEntityId && sourceProperty) {
|
|
114056
|
+
(_a3 = approvalContext == null ? void 0 : approvalContext.markApprovalEntityAndPropertyApproved) == null ? void 0 : _a3.call(approvalContext, {
|
|
114057
|
+
entityId: deletedEntity == null ? void 0 : deletedEntity["@id"],
|
|
114058
|
+
propertyEntityId: sourceEntityId,
|
|
114059
|
+
propertyName: sourceProperty,
|
|
114060
|
+
decision,
|
|
114061
|
+
value
|
|
114062
|
+
});
|
|
114063
|
+
return;
|
|
114064
|
+
}
|
|
114065
|
+
(_b2 = approvalContext == null ? void 0 : approvalContext.markApprovalEntityApproved) == null ? void 0 : _b2.call(approvalContext, {
|
|
113911
114066
|
entityId: deletedEntity == null ? void 0 : deletedEntity["@id"],
|
|
113912
|
-
decision
|
|
114067
|
+
decision,
|
|
114068
|
+
value
|
|
113913
114069
|
});
|
|
114070
|
+
};
|
|
114071
|
+
const handleAcceptAiEntityDelete = (deletedEntity = contextEntity, navigateToRoot = false) => {
|
|
114072
|
+
markDeletedEntityApprovalResolved(deletedEntity, "accept");
|
|
113914
114073
|
if (navigateToRoot) {
|
|
113915
114074
|
onLoadEntity({ id: "./" });
|
|
113916
114075
|
}
|
|
113917
114076
|
};
|
|
113918
114077
|
const handleRestoreAiDeletedEntity = (deletedEntity = contextEntity, navigateToRestored = false) => {
|
|
113919
|
-
var _a3;
|
|
113920
114078
|
try {
|
|
113921
114079
|
const approvalRecords = getPendingDeletedEntityApprovalRecords(deletedEntity);
|
|
113922
114080
|
const restoredEntity = buildRestoredDeletedEntity(deletedEntity, approvalRecords);
|
|
113923
114081
|
crateManager.addEntity(restoredEntity);
|
|
113924
114082
|
restoreDeletedEntityReverseConnections(restoredEntity["@id"], approvalRecords);
|
|
114083
|
+
const sourceApprovalRecord = getDeletedEntitySourceApproval(deletedEntity);
|
|
114084
|
+
if (sourceApprovalRecord) {
|
|
114085
|
+
const sourceEntity = crateManager.getEntity({
|
|
114086
|
+
id: deletedEntity.__aiDeleteSourceEntityId,
|
|
114087
|
+
link: false,
|
|
114088
|
+
materialise: false
|
|
114089
|
+
});
|
|
114090
|
+
if (sourceEntity) {
|
|
114091
|
+
restoreEntityApprovalValue(sourceEntity, sourceApprovalRecord);
|
|
114092
|
+
}
|
|
114093
|
+
}
|
|
113925
114094
|
const nextEntityId = navigateToRestored ? restoredEntity["@id"] : entity["@id"];
|
|
113926
114095
|
const nextEntity = crateManager.getEntity({
|
|
113927
114096
|
id: nextEntityId,
|
|
@@ -113930,11 +114099,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
113930
114099
|
});
|
|
113931
114100
|
if (nextEntity) init2({ entity: nextEntity });
|
|
113932
114101
|
saveCratePreservingView();
|
|
113933
|
-
(
|
|
113934
|
-
entityId: deletedEntity == null ? void 0 : deletedEntity["@id"],
|
|
113935
|
-
decision: "reject",
|
|
113936
|
-
value: restoredEntity
|
|
113937
|
-
});
|
|
114102
|
+
markDeletedEntityApprovalResolved(deletedEntity, "reject", restoredEntity);
|
|
113938
114103
|
if (navigateToRestored) {
|
|
113939
114104
|
onLoadEntity({ id: restoredEntity["@id"], updateState: false });
|
|
113940
114105
|
}
|
|
@@ -114026,7 +114191,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114026
114191
|
}
|
|
114027
114192
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row", children: [
|
|
114028
114193
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col w-full", children: [
|
|
114029
|
-
((
|
|
114194
|
+
((_c = state.configuration) == null ? void 0 : _c.showControls) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row place-content-between pb-1 border-b border-slate-700", children: [
|
|
114030
114195
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114031
114196
|
RenderControls,
|
|
114032
114197
|
{
|
|
@@ -114052,7 +114217,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114052
114217
|
"aria-pressed": quickSettingsVisible
|
|
114053
114218
|
}
|
|
114054
114219
|
) }),
|
|
114055
|
-
((
|
|
114220
|
+
((_d = state.configuration) == null ? void 0 : _d.enableReverseLinkBrowser) && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114056
114221
|
"button",
|
|
114057
114222
|
{
|
|
114058
114223
|
className: "bg-blue-500 hover:bg-blue-700 text-white font-bold py-1 px-2 rounded text-sm",
|
|
@@ -114075,7 +114240,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114075
114240
|
activePropertyLabel: selectedAiApprovalProperty ? getFieldTitle(selectedAiApprovalProperty) : void 0,
|
|
114076
114241
|
remainingEntityCount: pendingOtherAiApprovalEntities.length,
|
|
114077
114242
|
remainingFieldCount: pendingOtherAiApprovalFieldCount,
|
|
114078
|
-
readonly: (
|
|
114243
|
+
readonly: (_e2 = state.configuration) == null ? void 0 : _e2.readonly,
|
|
114079
114244
|
canGoPrevious: selectedAiApprovalIndex > 0,
|
|
114080
114245
|
canGoNext: selectedAiApprovalIndex < pendingAiApprovals.length - 1,
|
|
114081
114246
|
onPrevious: () => navigateToAiApproval(selectedAiApprovalIndex - 1),
|
|
@@ -114085,13 +114250,13 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114085
114250
|
onReviewNextEntity: handleReviewNextAiApprovalEntity
|
|
114086
114251
|
}
|
|
114087
114252
|
),
|
|
114088
|
-
!renderTabs && (((
|
|
114253
|
+
!renderTabs && (((_f = state.configuration) == null ? void 0 : _f.tabLocation) === "left" || ((_g = state.configuration) == null ? void 0 : _g.tabLocation) === "right" ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: contentContainerRef, className: "min-h-0 overflow-hidden", style: { height: scrollViewportHeight ? `${scrollViewportHeight}px` : "calc(100vh - 200px)" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Ve, { vertical: false, proportionalLayout: false, separator: !iconView, onChange: (sizes2) => {
|
|
114089
114254
|
var _a3;
|
|
114090
114255
|
const w2 = ((_a3 = state.configuration) == null ? void 0 : _a3.tabLocation) === "left" ? sizes2[0] : sizes2[1];
|
|
114091
114256
|
setTabPaneWidth(w2);
|
|
114092
114257
|
persistTabWidth(w2);
|
|
114093
114258
|
}, children: [
|
|
114094
|
-
((
|
|
114259
|
+
((_h = state.configuration) == null ? void 0 : _h.tabLocation) === "left" && /* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { minSize: iconView ? ICON_TAB_PANE_WIDTH : MIN_LABEL_TAB_PANE_WIDTH, maxSize: iconView ? ICON_TAB_PANE_WIDTH : MAX_LABEL_TAB_PANE_WIDTH, preferredSize: iconView ? ICON_TAB_PANE_WIDTH : tabPaneWidth, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative group h-full border-r border-slate-200", children: [
|
|
114095
114260
|
renderProfileActionRail(),
|
|
114096
114261
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute right-0 top-0 bottom-0 w-1 bg-slate-300 opacity-0 group-hover:opacity-100" })
|
|
114097
114262
|
] }) }),
|
|
@@ -114114,7 +114279,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114114
114279
|
)
|
|
114115
114280
|
}
|
|
114116
114281
|
),
|
|
114117
|
-
!((
|
|
114282
|
+
!((_i = state.configuration) == null ? void 0 : _i.readonly) && missingRequiredData && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114118
114283
|
"button",
|
|
114119
114284
|
{
|
|
114120
114285
|
className: "bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded",
|
|
@@ -114123,7 +114288,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114123
114288
|
}
|
|
114124
114289
|
)
|
|
114125
114290
|
] }),
|
|
114126
|
-
!shouldRenderCoreField("@id") && !((
|
|
114291
|
+
!shouldRenderCoreField("@id") && !((_j = state.configuration) == null ? void 0 : _j.readonly) && missingRequiredData && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row place-content-between my-2 p-2", children: [
|
|
114127
114292
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-grow" }),
|
|
114128
114293
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114129
114294
|
"button",
|
|
@@ -114201,11 +114366,11 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114201
114366
|
return null;
|
|
114202
114367
|
})
|
|
114203
114368
|
] }) }),
|
|
114204
|
-
((
|
|
114369
|
+
((_k = state.configuration) == null ? void 0 : _k.tabLocation) === "right" && /* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { minSize: iconView ? ICON_TAB_PANE_WIDTH : MIN_LABEL_TAB_PANE_WIDTH, maxSize: iconView ? ICON_TAB_PANE_WIDTH : MAX_LABEL_TAB_PANE_WIDTH, preferredSize: iconView ? ICON_TAB_PANE_WIDTH : tabPaneWidth, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative group h-full border-l border-slate-200", children: [
|
|
114205
114370
|
renderProfileActionRail(),
|
|
114206
114371
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-slate-300 opacity-0 group-hover:opacity-100" })
|
|
114207
114372
|
] }) })
|
|
114208
|
-
] }, `untabbed-${(
|
|
114373
|
+
] }, `untabbed-${(_l = state.configuration) == null ? void 0 : _l.tabLocation}-${iconView ? "icon" : "label"}`) }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: contentContainerRef, className: "flex min-h-0 overflow-hidden", style: {
|
|
114209
114374
|
flexDirection: "column",
|
|
114210
114375
|
height: scrollViewportHeight ? `${scrollViewportHeight}px` : "calc(100vh - 200px)"
|
|
114211
114376
|
}, children: [
|
|
@@ -114240,7 +114405,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114240
114405
|
)
|
|
114241
114406
|
}
|
|
114242
114407
|
),
|
|
114243
|
-
!((
|
|
114408
|
+
!((_m = state.configuration) == null ? void 0 : _m.readonly) && missingRequiredData && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114244
114409
|
"button",
|
|
114245
114410
|
{
|
|
114246
114411
|
className: "bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded",
|
|
@@ -114249,7 +114414,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114249
114414
|
}
|
|
114250
114415
|
)
|
|
114251
114416
|
] }),
|
|
114252
|
-
!shouldRenderCoreField("@id") && !((
|
|
114417
|
+
!shouldRenderCoreField("@id") && !((_n = state.configuration) == null ? void 0 : _n.readonly) && missingRequiredData && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row place-content-between my-2 p-2", children: [
|
|
114253
114418
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-grow" }),
|
|
114254
114419
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114255
114420
|
"button",
|
|
@@ -114340,7 +114505,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114340
114505
|
] }) }),
|
|
114341
114506
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: `${editorScrollClassName} h-full overflow-y-auto scroll-smooth min-h-0`, children: [
|
|
114342
114507
|
renderQuickSettingsHeader(),
|
|
114343
|
-
!((
|
|
114508
|
+
!((_o = state.configuration) == null ? void 0 : _o.readonly) && ((_p = tabs.find((t22) => t22.name === activeTab)) == null ? void 0 : _p.missingRequiredData) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-red-600 float-right mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114344
114509
|
"button",
|
|
114345
114510
|
{
|
|
114346
114511
|
className: "bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded text-sm",
|
|
@@ -114392,7 +114557,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114392
114557
|
)
|
|
114393
114558
|
}
|
|
114394
114559
|
),
|
|
114395
|
-
(
|
|
114560
|
+
(_q = tabs.find((tab) => tab.name === "about")) == null ? void 0 : _q.inputs.map((input) => {
|
|
114396
114561
|
if (!["@id", "@type", "name", "@reverse"].includes(input.name) && shouldRenderField(input.name, input.label)) {
|
|
114397
114562
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114398
114563
|
"div",
|
|
@@ -114477,7 +114642,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
114477
114642
|
return null;
|
|
114478
114643
|
})
|
|
114479
114644
|
] }) })
|
|
114480
|
-
] }, `tabbed-${(
|
|
114645
|
+
] }, `tabbed-${(_r = state.configuration) == null ? void 0 : _r.tabLocation}-${iconView ? "icon" : "label"}`) })
|
|
114481
114646
|
] }),
|
|
114482
114647
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
114483
114648
|
Drawer2,
|
|
@@ -121750,7 +121915,7 @@ const en = {
|
|
|
121750
121915
|
translation: {
|
|
121751
121916
|
hello_one: "hello world",
|
|
121752
121917
|
hello_other: "hello worlds",
|
|
121753
|
-
// RenderControls.
|
|
121918
|
+
// RenderControls.tsx
|
|
121754
121919
|
root_dataset_label: "Root dataset",
|
|
121755
121920
|
add_label: "Add",
|
|
121756
121921
|
edit_context_label: "Edit context",
|
|
@@ -121766,56 +121931,57 @@ const en = {
|
|
|
121766
121931
|
edit_context: "Edit Context",
|
|
121767
121932
|
preview_crate: "Preview Crate",
|
|
121768
121933
|
browse_entities: "Browse entities",
|
|
121769
|
-
// DialogAddProperty.
|
|
121934
|
+
// DialogAddProperty.tsx
|
|
121770
121935
|
filter_attribute_set: "Filter the attribute set",
|
|
121771
|
-
// DialogEditContext.
|
|
121936
|
+
// DialogEditContext.tsx
|
|
121772
121937
|
save_label: "Save",
|
|
121773
|
-
// DialogPreviewCrate.
|
|
121938
|
+
// DialogPreviewCrate.tsx
|
|
121774
121939
|
preview_loading: "loading ...",
|
|
121775
|
-
// DialogBrowseEntities.
|
|
121940
|
+
// DialogBrowseEntities.tsx
|
|
121776
121941
|
search_for_connection: "Search for a connection",
|
|
121777
121942
|
filter_by_type: "Filter by type",
|
|
121778
|
-
// DialogSaveCrateAsTemplate.
|
|
121943
|
+
// DialogSaveCrateAsTemplate.tsx
|
|
121779
121944
|
save_template_prompt: "Save this crate as a template for re-use",
|
|
121780
121945
|
provide_name_for_template: "provide a name for the crate template",
|
|
121781
|
-
//
|
|
121946
|
+
// EntityName.tsx
|
|
121782
121947
|
name_field_label: "Name",
|
|
121783
121948
|
name_field_help: "A short, descriptive name for this item.",
|
|
121784
|
-
|
|
121949
|
+
type_field_label: "Type",
|
|
121950
|
+
// Add.tsx
|
|
121785
121951
|
associate_existing_prompt: "Associate an existing '{{addType}}' (lookup by identifier or name) or create a new '{{addType}}' by typing a name for it.",
|
|
121786
121952
|
associate_any_prompt: "Associate any entity (lookup by identifier or name).",
|
|
121787
121953
|
add_text: "Add text",
|
|
121788
|
-
// Text.
|
|
121954
|
+
// Text.tsx
|
|
121789
121955
|
invalid_type_for_text: "The type '{{type}}' is not valid for this component. It can only be 'text' or 'textarea'",
|
|
121790
121956
|
text_constraints_error_message: "The specified value does not meet the following constraints: {{- value}}, or it is considered invalid.",
|
|
121791
|
-
// Date.
|
|
121957
|
+
// Date.tsx
|
|
121792
121958
|
pick_a_date: "Pick a date",
|
|
121793
121959
|
invalid_date_value: "The supplied date '{{value}}' is invalid. Date format is: YYYY-MM-DD or an ISO String. e.g. 2021-03-22 or 2022-09-28T02:20:56.521Z.",
|
|
121794
|
-
// DateTime.
|
|
121960
|
+
// DateTime.tsx
|
|
121795
121961
|
pick_a_datetime: "Pick a date and time",
|
|
121796
121962
|
invalid_datetime_value: "The supplied date/time '{{value}}' is invalid. Date/Time format is: YYYY-MM-DD HH:mm:ss or an ISO String. e.g. 2021-03-22 03:23:00 or 2022-09-28T02:20:56.521Z.",
|
|
121797
|
-
// Time.
|
|
121963
|
+
// Time.tsx
|
|
121798
121964
|
provide_time: "Please provide a time.",
|
|
121799
121965
|
invalid_time_value: "The supplied time '{{value}}' is invalid. Time format is: HH:mm::ss. e.g. 09:03:59",
|
|
121800
|
-
// Number.
|
|
121966
|
+
// Number.tsx
|
|
121801
121967
|
invalid_number_value: "The supplied number '{{value}}' is invalid. The value must be a valid number passed in as a String or a Number.",
|
|
121802
121968
|
number_constraints_error_message: "The specified number does not meet the following constraints: {{value}}",
|
|
121803
|
-
// Select.
|
|
121969
|
+
// Select.tsx
|
|
121804
121970
|
select: "Select",
|
|
121805
121971
|
invalid_select_value: "The definition provided to this component has values of the wrong from. It can only be an array of strings",
|
|
121806
|
-
// Url.
|
|
121972
|
+
// Url.tsx
|
|
121807
121973
|
invalid_url_value: "The entry needs to be a valid url. The accepted protocols are: http, https, ftp, ftps and arcp.",
|
|
121808
|
-
// Boolean.
|
|
121974
|
+
// Boolean.tsx
|
|
121809
121975
|
true_label: "True",
|
|
121810
121976
|
false_label: "False",
|
|
121811
|
-
// SelectUrl.
|
|
121977
|
+
// SelectUrl.tsx
|
|
121812
121978
|
// select: as above
|
|
121813
121979
|
invalid_selecturl_value: "The value '{{value}}' provided to this component is of the wrong from. It can only be a valid URL.",
|
|
121814
121980
|
invalid_selecturl_values: "The definition provided to this component has values of the wrong from. It can only be an array of strings which are each valid URLs.",
|
|
121815
|
-
// SelectObject.
|
|
121981
|
+
// SelectObject.tsx
|
|
121816
121982
|
// select: as above
|
|
121817
121983
|
invalid_selectobject_values: "The definition provided to this component has values of the wrong from. It can only be an array of JSON-LD objects and each object, at a minimum, must have '@id', '@type' and 'name' defined.",
|
|
121818
|
-
// Geo.
|
|
121984
|
+
// Geo.tsx
|
|
121819
121985
|
define_location: "Define a location by selecting on the map",
|
|
121820
121986
|
center_map: "center map",
|
|
121821
121987
|
select_region: "select region",
|
|
@@ -121826,9 +121992,9 @@ const en = {
|
|
|
121826
121992
|
provide_name_for_location: "Please provide a name for this location - optional",
|
|
121827
121993
|
provide_name_for_location_error: "You need to provide a name for this location",
|
|
121828
121994
|
select_existing_location: "Select a location that has already been defined",
|
|
121829
|
-
// Value.
|
|
121995
|
+
// Value.tsx
|
|
121830
121996
|
invalid_value_value: "The supplied value '{{value}}' is invalid. It can only be a string.",
|
|
121831
|
-
// AutoComplete.
|
|
121997
|
+
// AutoComplete.tsx
|
|
121832
121998
|
select_existing_or_create_new: "select an existing entity or create a new one",
|
|
121833
121999
|
create_new_of_type: "Create new {{type}}",
|
|
121834
122000
|
external_lookup_timeout_error: "External Lookup Timeout",
|
|
@@ -121839,7 +122005,7 @@ const en = {
|
|
|
121839
122005
|
associate_user_created_entity: "Associate a user created entity",
|
|
121840
122006
|
associate_from_datapack: "Associate a verified entity from a datapack",
|
|
121841
122007
|
create_new_entity: "Create new entity",
|
|
121842
|
-
// AddControl.
|
|
122008
|
+
// AddControl.tsx
|
|
121843
122009
|
select_a_type_to_add: "Select a type to add",
|
|
121844
122010
|
// Shell2.tsx
|
|
121845
122011
|
add_profile_button_tooltip: "Add a new profile",
|
|
@@ -121847,21 +122013,120 @@ const en = {
|
|
|
121847
122013
|
switch_to_label_view: "Switch to default view",
|
|
121848
122014
|
// EntityType.tsx
|
|
121849
122015
|
select_a_class_to_add: "Select a class to add",
|
|
121850
|
-
// PaginateLinkedEntities.
|
|
122016
|
+
// PaginateLinkedEntities.tsx
|
|
121851
122017
|
filter_the_entities: "Filter the entities",
|
|
121852
122018
|
pagination_total: "Total: {{total}}",
|
|
121853
|
-
//
|
|
122019
|
+
// EntityProperty.tsx
|
|
121854
122020
|
not_defined_in_profile: "not defined in profile",
|
|
121855
|
-
// RenderReverseConnections.
|
|
122021
|
+
// RenderReverseConnections.tsx
|
|
121856
122022
|
// search_for_connection: defined before
|
|
121857
|
-
links_to_this_entity: "Links to this entity:"
|
|
122023
|
+
links_to_this_entity: "Links to this entity:",
|
|
122024
|
+
// AiEditedFieldBadge.tsx
|
|
122025
|
+
ai_edited_by_ai: "Edited by AI",
|
|
122026
|
+
ai_deleted_by_ai: "Deleted by AI",
|
|
122027
|
+
// AiApprovalStepperHeader.tsx
|
|
122028
|
+
ai_field_one: "field",
|
|
122029
|
+
ai_field_other: "fields",
|
|
122030
|
+
ai_entity_one: "entity",
|
|
122031
|
+
ai_entity_other: "entities",
|
|
122032
|
+
ai_changes_remaining_aria: "AI changes remaining",
|
|
122033
|
+
ai_remaining_review_message_one: "{{fieldCount}} AI field still needs review in {{entityCount}} other {{entityLabel}}",
|
|
122034
|
+
ai_remaining_review_message_other: "{{fieldCount}} AI fields still need review in {{entityCount}} other {{entityLabel}}",
|
|
122035
|
+
ai_review_next: "Review next",
|
|
122036
|
+
ai_changes_need_review: "AI changes need review",
|
|
122037
|
+
ai_changes_need_review_property: "AI changes need review: {{property}}",
|
|
122038
|
+
ai_change_review_aria: "AI change review",
|
|
122039
|
+
ai_review_next_entity_tooltip: "Review the next entity with pending AI changes",
|
|
122040
|
+
ai_no_other_entities_need_review: "No other entities need AI review",
|
|
122041
|
+
ai_accept_all_tooltip: "Accept every pending AI change in this entity",
|
|
122042
|
+
ai_accept_all: "Accept all",
|
|
122043
|
+
ai_reject_all_tooltip: "Restore previous values for every pending AI change in this entity",
|
|
122044
|
+
ai_reject_all: "Reject all",
|
|
122045
|
+
ai_pending_field_navigation_aria: "Pending AI field navigation",
|
|
122046
|
+
ai_previous_pending_field: "Previous pending field",
|
|
122047
|
+
ai_previous_pending_field_aria: "Previous pending AI field",
|
|
122048
|
+
ai_next_pending_field: "Next pending field",
|
|
122049
|
+
ai_next_pending_field_aria: "Next pending AI field",
|
|
122050
|
+
// AiEntityReviewSummary.tsx
|
|
122051
|
+
ai_fields_to_review_one: "{{count}} field to review",
|
|
122052
|
+
ai_fields_to_review_other: "{{count}} fields to review",
|
|
122053
|
+
ai_show_entity_diff: "Show entity diff",
|
|
122054
|
+
ai_show_entity_diff_aria: "Show AI entity diff",
|
|
122055
|
+
ai_review_entity: "Review entity",
|
|
122056
|
+
// AiEntityDiffView.tsx
|
|
122057
|
+
ai_empty_value: "empty",
|
|
122058
|
+
ai_deleted_entity_title: "AI deleted entity: {{entityId}}",
|
|
122059
|
+
ai_unlinked_entity_title: "AI unlinked entity: {{entityId}}",
|
|
122060
|
+
ai_edited_entity_title: "AI edited entity: {{entityId}}",
|
|
122061
|
+
ai_hide_entity_diff: "Hide entity diff",
|
|
122062
|
+
ai_hide_entity_diff_aria: "Hide AI entity diff",
|
|
122063
|
+
ai_approve_deletion_tooltip: "Approve this AI deletion",
|
|
122064
|
+
ai_approve_unlink_tooltip: "Approve this AI unlink",
|
|
122065
|
+
ai_accept_entity_edits_tooltip: "Accept every AI edit for this entity",
|
|
122066
|
+
ai_delete_entity: "Delete entity",
|
|
122067
|
+
ai_unlink_entity: "Unlink entity",
|
|
122068
|
+
ai_accept_edit: "Accept edit",
|
|
122069
|
+
ai_restore_deleted_entity_tooltip: "Restore this entity and mark the deletion reviewed",
|
|
122070
|
+
ai_restore_link_tooltip: "Restore this link and mark the unlink reviewed",
|
|
122071
|
+
ai_restore_entity_values_tooltip: "Restore previous values for this entity",
|
|
122072
|
+
ai_keep_entity: "Keep entity",
|
|
122073
|
+
ai_restore_link: "Restore link",
|
|
122074
|
+
ai_reject_edit: "Reject edit",
|
|
122075
|
+
// AiFieldDiffView.tsx
|
|
122076
|
+
ai_field_diff_aria: "AI field diff",
|
|
122077
|
+
ai_proposed_deletion: "Proposed deletion",
|
|
122078
|
+
ai_proposed_change: "Proposed change",
|
|
122079
|
+
ai_edit_chip: "AI edit",
|
|
122080
|
+
// AI review controls
|
|
122081
|
+
ai_delete_badge: "AI delete",
|
|
122082
|
+
ai_suggestion_badge: "AI suggestion",
|
|
122083
|
+
ai_unlink_badge: "AI unlink",
|
|
122084
|
+
ai_hide_diff: "Hide diff",
|
|
122085
|
+
ai_show_diff: "Show diff",
|
|
122086
|
+
ai_hide_ai_diff_aria: "Hide AI diff",
|
|
122087
|
+
ai_show_ai_diff_aria: "Show AI diff",
|
|
122088
|
+
ai_approve_suggested_value_tooltip: "Approve this AI-suggested value",
|
|
122089
|
+
ai_restore_previous_value_tooltip: "Restore the previous value and mark this suggestion reviewed",
|
|
122090
|
+
ai_delete: "Delete",
|
|
122091
|
+
ai_accept: "Accept",
|
|
122092
|
+
ai_restore: "Restore",
|
|
122093
|
+
ai_reject: "Reject",
|
|
122094
|
+
// DeletedLinkedEntityCard.tsx
|
|
122095
|
+
ai_fields_can_be_restored_one: "{{count}} field can be restored.",
|
|
122096
|
+
ai_fields_can_be_restored_other: "{{count}} fields can be restored.",
|
|
122097
|
+
ai_hide_deleted_fields: "Hide deleted fields",
|
|
122098
|
+
ai_show_deleted_fields: "Show deleted fields",
|
|
122099
|
+
ai_hide_deleted_fields_aria: "Hide deleted AI fields",
|
|
122100
|
+
ai_show_deleted_fields_aria: "Show deleted AI fields",
|
|
122101
|
+
// UnlinkedLinkedEntityCard.tsx
|
|
122102
|
+
ai_diff_label_entity: "entity",
|
|
122103
|
+
ai_diff_label_linked_from: "linked from",
|
|
122104
|
+
ai_hide_unlink_diff: "Hide unlink diff",
|
|
122105
|
+
ai_show_unlink_diff: "Show unlink diff",
|
|
122106
|
+
ai_hide_unlink_diff_aria: "Hide AI unlink diff",
|
|
122107
|
+
ai_show_unlink_diff_aria: "Show AI unlink diff",
|
|
122108
|
+
// LinkedEntityCard.tsx / DialogBrowseEntities.tsx
|
|
122109
|
+
ai_entity_was_added_by_ai: "Entity was added by AI",
|
|
122110
|
+
// QuickSettingsHeader.tsx
|
|
122111
|
+
quick_filter_settings_aria: "Quick filter settings",
|
|
122112
|
+
field_display_settings_aria: "Field display settings",
|
|
122113
|
+
hide_field_help: "Hide field help",
|
|
122114
|
+
show_field_help: "Show field help",
|
|
122115
|
+
show_empty_fields: "Show fields with no value",
|
|
122116
|
+
hide_empty_fields: "Hide fields with no value",
|
|
122117
|
+
show_all_fields: "Show all fields",
|
|
122118
|
+
show_ai_edited_fields: "Show AI-edited fields",
|
|
122119
|
+
filter_fields_by_name_or_value: "Filter fields by name or value",
|
|
122120
|
+
clear_field_filter: "Clear field filter",
|
|
122121
|
+
// EntityId.tsx
|
|
122122
|
+
open_in_new_tab: "Open in new tab"
|
|
121858
122123
|
}
|
|
121859
122124
|
};
|
|
121860
122125
|
const hu = {
|
|
121861
122126
|
translation: {
|
|
121862
122127
|
hello_one: "szia világ",
|
|
121863
122128
|
hello_other: "sziasztok világok",
|
|
121864
|
-
// RenderControls.
|
|
122129
|
+
// RenderControls.tsx
|
|
121865
122130
|
root_dataset_label: "Gyökér adatcsomag",
|
|
121866
122131
|
add_label: "Új elem",
|
|
121867
122132
|
edit_context_label: "Kontextus szerkesztése",
|
|
@@ -121877,56 +122142,57 @@ const hu = {
|
|
|
121877
122142
|
edit_context: "Kontextus szerkesztése",
|
|
121878
122143
|
preview_crate: "Csomag előnézete",
|
|
121879
122144
|
browse_entities: "Entitások böngészése",
|
|
121880
|
-
// DialogAddProperty.
|
|
122145
|
+
// DialogAddProperty.tsx
|
|
121881
122146
|
filter_attribute_set: "Attribútumok szűrése",
|
|
121882
|
-
// DialogEditContext.
|
|
122147
|
+
// DialogEditContext.tsx
|
|
121883
122148
|
save_label: "Mentés",
|
|
121884
|
-
// DialogPreviewCrate.
|
|
122149
|
+
// DialogPreviewCrate.tsx
|
|
121885
122150
|
preview_loading: "betöltés ...",
|
|
121886
|
-
// DialogBrowseEntities.
|
|
122151
|
+
// DialogBrowseEntities.tsx
|
|
121887
122152
|
search_for_connection: "Kapcsolt entitás keresése",
|
|
121888
122153
|
filter_by_type: "Típus szerinti szűrés",
|
|
121889
|
-
// DialogSaveCrateAsTemplate.
|
|
122154
|
+
// DialogSaveCrateAsTemplate.tsx
|
|
121890
122155
|
save_template_prompt: "Csomag mentése mintaként",
|
|
121891
122156
|
provide_name_for_template: "minta neve",
|
|
121892
|
-
//
|
|
122157
|
+
// EntityName.tsx
|
|
121893
122158
|
name_field_label: "Név",
|
|
121894
122159
|
name_field_help: "Az entitás rövid, leíró neve",
|
|
121895
|
-
|
|
122160
|
+
type_field_label: "Típus",
|
|
122161
|
+
// Add.tsx
|
|
121896
122162
|
associate_existing_prompt: "Egy létező '{{addType}}' társítása (név vagy azonosító alapú kereséssel) vagy egy új '{{addType}}' létrehozása a név megadásával",
|
|
121897
122163
|
associate_any_prompt: "Bármely entitás hozzárendelése (azonosító vagy név alapján)",
|
|
121898
122164
|
add_text: "Szöveg hozzáadása",
|
|
121899
|
-
// Text.
|
|
122165
|
+
// Text.tsx
|
|
121900
122166
|
invalid_type_for_text: "'{{type}}' típus nem használható ezzel a komponenssel. A típus csak 'text' vagy 'textarea' lehet",
|
|
121901
122167
|
text_constraints_error_message: "A megadott érték nem felel meg a következő megszorításoknak: {{- value}}, vagy érvénytelen.",
|
|
121902
|
-
// Date.
|
|
122168
|
+
// Date.tsx
|
|
121903
122169
|
pick_a_date: "Válassz dátumot!",
|
|
121904
122170
|
invalid_date_value: "A megadott dátum '{{value}}' nem megfelelő. Az elvárt dátum formátum: YYYY-MM-DD vagy egy ISO dátum, pl. 2021-03-22 or 2022-09-28T02:20:56.521Z.",
|
|
121905
|
-
// DateTime.
|
|
122171
|
+
// DateTime.tsx
|
|
121906
122172
|
pick_a_datetime: "Válassz dátumot és időt!",
|
|
121907
122173
|
invalid_datetime_value: "A megadott dátum/idő '{{value}}' nem megfelelő. Az elvárt dátum/idő formátum: YYYY-MM-DD HH:mm:ss vagy egy ISO dátum, pl. 2021-03-22 03:23:00 or 2022-09-28T02:20:56.521Z.",
|
|
121908
|
-
// Time.
|
|
122174
|
+
// Time.tsx
|
|
121909
122175
|
provide_time: "Add meg az időt!",
|
|
121910
122176
|
invalid_time_value: "A megadott érték '{{value}}' nem megfelelő. Az elvárt idő formátum: HH:mm::ss. pl. 09:03:59",
|
|
121911
|
-
// Number.
|
|
122177
|
+
// Number.tsx
|
|
121912
122178
|
invalid_number_value: "A megadott érték '{{value}}' nem megfelelő. Az értéket String vagy Number típusként kell megadni",
|
|
121913
122179
|
number_constraints_error_message: "A megadott szám nem felel meg a következő megszorításoknak: {{value}}",
|
|
121914
|
-
// Select.
|
|
122180
|
+
// Select.tsx
|
|
121915
122181
|
select: "Válassz!",
|
|
121916
122182
|
invalid_select_value: "A komponensnek adott definíció értékei nem megfelelő formátumban vannak. Csak karakterláncokból álló tömb lehet.",
|
|
121917
|
-
// Url.
|
|
122183
|
+
// Url.tsx
|
|
121918
122184
|
invalid_url_value: "A bejegyzésnek érvényes URL-nek kell lennie. Az elfogadott protokollok: http, https, ftp, ftps és arcp.",
|
|
121919
|
-
// Boolean.
|
|
122185
|
+
// Boolean.tsx
|
|
121920
122186
|
true_label: "Igaz",
|
|
121921
122187
|
false_label: "Hamis",
|
|
121922
|
-
// SelectUrl.
|
|
122188
|
+
// SelectUrl.tsx
|
|
121923
122189
|
// select: as above
|
|
121924
122190
|
invalid_selecturl_value: "A megadott '{{value}}' érték nem megfelelő formátumú. Csak érvényes URL lehet.",
|
|
121925
122191
|
invalid_selecturl_values: "A komponensnek adott definíció értékei nem megfelelő formátumban vannak. Csak olyan karakterláncokból álló tömb lehet, amelyek mindegyike érvényes URL.",
|
|
121926
|
-
// SelectObject.
|
|
122192
|
+
// SelectObject.tsx
|
|
121927
122193
|
// select: as above
|
|
121928
122194
|
invalid_selectobject_values: "A komponensnek adott definíció értékei nem megfelelő formátumban vannak. Csak JSON-LD objektumokból álló tömb lehet, és minden objektumnak legalább '@id', '@type' és 'name' meghatározással kell rendelkeznie.",
|
|
121929
|
-
// Geo.
|
|
122195
|
+
// Geo.tsx
|
|
121930
122196
|
define_location: "Határozz meg egy helyet a térképen történő kiválasztással!",
|
|
121931
122197
|
center_map: "térkép középre állítása",
|
|
121932
122198
|
select_region: "régió kiválasztása",
|
|
@@ -121937,9 +122203,9 @@ const hu = {
|
|
|
121937
122203
|
provide_name_for_location: "Adj nevet ennek a helynek!",
|
|
121938
122204
|
provide_name_for_location_error: "A hely nevének megadása kötelező!",
|
|
121939
122205
|
select_existing_location: "Válassz egy már meghatározott helyet a csomagban!",
|
|
121940
|
-
// Value.
|
|
122206
|
+
// Value.tsx
|
|
121941
122207
|
invalid_value_value: "A megadott '{{value}}' érték érvénytelen. Csak karakterlánc lehet.",
|
|
121942
|
-
// AutoComplete.
|
|
122208
|
+
// AutoComplete.tsx
|
|
121943
122209
|
select_existing_or_create_new: "válassz egy meglévő entitást vagy hozz létre egy újat",
|
|
121944
122210
|
create_new_of_type: "Új {{type}} létrehozása",
|
|
121945
122211
|
external_lookup_timeout_error: "Külső lekérdezési időtúllépés",
|
|
@@ -121950,7 +122216,7 @@ const hu = {
|
|
|
121950
122216
|
associate_user_created_entity: "Kapcsolj egy felhasználó által létrehozott entitást",
|
|
121951
122217
|
associate_from_datapack: "Kapcsolj egy ellenőrzött entitást egy adatcsomagból",
|
|
121952
122218
|
create_new_entity: "Új entitás létrehozása",
|
|
121953
|
-
// AddControl.
|
|
122219
|
+
// AddControl.tsx
|
|
121954
122220
|
select_a_type_to_add: "Válassz hozzáadandó típust",
|
|
121955
122221
|
// Shell2.tsx
|
|
121956
122222
|
add_profile_button_tooltip: "Új profil hozzáadása",
|
|
@@ -121958,14 +122224,113 @@ const hu = {
|
|
|
121958
122224
|
switch_to_label_view: "Alap nézetre váltás",
|
|
121959
122225
|
// EntityType.tsx
|
|
121960
122226
|
select_a_class_to_add: "Válassz hozzáadandó osztályt",
|
|
121961
|
-
// PaginateLinkedEntities.
|
|
122227
|
+
// PaginateLinkedEntities.tsx
|
|
121962
122228
|
filter_the_entities: "Entitások szűrése",
|
|
121963
122229
|
pagination_total: "Összesen: {{total}}",
|
|
121964
|
-
//
|
|
122230
|
+
// EntityProperty.tsx
|
|
121965
122231
|
not_defined_in_profile: "nincs definiálva a profilban",
|
|
121966
|
-
// RenderReverseConnections.
|
|
122232
|
+
// RenderReverseConnections.tsx
|
|
121967
122233
|
// search_for_connection: defined before
|
|
121968
|
-
links_to_this_entity: "Entitásra mutató hivatkozások:"
|
|
122234
|
+
links_to_this_entity: "Entitásra mutató hivatkozások:",
|
|
122235
|
+
// AiEditedFieldBadge.tsx
|
|
122236
|
+
ai_edited_by_ai: "AI által szerkesztve",
|
|
122237
|
+
ai_deleted_by_ai: "AI által törölve",
|
|
122238
|
+
// AiApprovalStepperHeader.tsx
|
|
122239
|
+
ai_field_one: "mező",
|
|
122240
|
+
ai_field_other: "mező",
|
|
122241
|
+
ai_entity_one: "entitás",
|
|
122242
|
+
ai_entity_other: "entitás",
|
|
122243
|
+
ai_changes_remaining_aria: "Fennmaradó AI módosítások",
|
|
122244
|
+
ai_remaining_review_message_one: "{{fieldCount}} AI mező még ellenőrzésre vár {{entityCount}} másik {{entityLabel}} esetén",
|
|
122245
|
+
ai_remaining_review_message_other: "{{fieldCount}} AI mező még ellenőrzésre vár {{entityCount}} másik {{entityLabel}} esetén",
|
|
122246
|
+
ai_review_next: "Következő ellenőrzése",
|
|
122247
|
+
ai_changes_need_review: "AI módosítások ellenőrzésre várnak",
|
|
122248
|
+
ai_changes_need_review_property: "AI módosítások ellenőrzésre várnak: {{property}}",
|
|
122249
|
+
ai_change_review_aria: "AI módosítás ellenőrzése",
|
|
122250
|
+
ai_review_next_entity_tooltip: "Következő, AI módosítással rendelkező entitás ellenőrzése",
|
|
122251
|
+
ai_no_other_entities_need_review: "Nincs több AI ellenőrzésre váró entitás",
|
|
122252
|
+
ai_accept_all_tooltip: "Az entitás összes függőben lévő AI módosításának elfogadása",
|
|
122253
|
+
ai_accept_all: "Összes elfogadása",
|
|
122254
|
+
ai_reject_all_tooltip: "Az entitás összes függőben lévő AI módosításának visszaállítása az előző értékre",
|
|
122255
|
+
ai_reject_all: "Összes elutasítása",
|
|
122256
|
+
ai_pending_field_navigation_aria: "Függőben lévő AI mezők navigációja",
|
|
122257
|
+
ai_previous_pending_field: "Előző függő mező",
|
|
122258
|
+
ai_previous_pending_field_aria: "Előző függőben lévő AI mező",
|
|
122259
|
+
ai_next_pending_field: "Következő függő mező",
|
|
122260
|
+
ai_next_pending_field_aria: "Következő függőben lévő AI mező",
|
|
122261
|
+
// AiEntityReviewSummary.tsx
|
|
122262
|
+
ai_fields_to_review_one: "{{count}} mező ellenőrzésre vár",
|
|
122263
|
+
ai_fields_to_review_other: "{{count}} mező ellenőrzésre vár",
|
|
122264
|
+
ai_show_entity_diff: "Entitás eltéréseinek megjelenítése",
|
|
122265
|
+
ai_show_entity_diff_aria: "AI entitáseltérés megjelenítése",
|
|
122266
|
+
ai_review_entity: "Entitás ellenőrzése",
|
|
122267
|
+
// AiEntityDiffView.tsx
|
|
122268
|
+
ai_empty_value: "üres",
|
|
122269
|
+
ai_deleted_entity_title: "AI által törölt entitás: {{entityId}}",
|
|
122270
|
+
ai_unlinked_entity_title: "AI által leválasztott entitás: {{entityId}}",
|
|
122271
|
+
ai_edited_entity_title: "AI által szerkesztett entitás: {{entityId}}",
|
|
122272
|
+
ai_hide_entity_diff: "Entitáseltérés elrejtése",
|
|
122273
|
+
ai_hide_entity_diff_aria: "AI entitáseltérés elrejtése",
|
|
122274
|
+
ai_approve_deletion_tooltip: "AI törlés jóváhagyása",
|
|
122275
|
+
ai_approve_unlink_tooltip: "AI leválasztás jóváhagyása",
|
|
122276
|
+
ai_accept_entity_edits_tooltip: "Az entitás összes AI szerkesztésének elfogadása",
|
|
122277
|
+
ai_delete_entity: "Entitás törlése",
|
|
122278
|
+
ai_unlink_entity: "Entitás leválasztása",
|
|
122279
|
+
ai_accept_edit: "Szerkesztés elfogadása",
|
|
122280
|
+
ai_restore_deleted_entity_tooltip: "Entitás visszaállítása és a törlés ellenőrzöttként jelölése",
|
|
122281
|
+
ai_restore_link_tooltip: "Kapcsolat visszaállítása és a leválasztás ellenőrzöttként jelölése",
|
|
122282
|
+
ai_restore_entity_values_tooltip: "Az entitás előző értékeinek visszaállítása",
|
|
122283
|
+
ai_keep_entity: "Entitás megtartása",
|
|
122284
|
+
ai_restore_link: "Kapcsolat visszaállítása",
|
|
122285
|
+
ai_reject_edit: "Szerkesztés elutasítása",
|
|
122286
|
+
// AiFieldDiffView.tsx
|
|
122287
|
+
ai_field_diff_aria: "AI mezőeltérés",
|
|
122288
|
+
ai_proposed_deletion: "Javasolt törlés",
|
|
122289
|
+
ai_proposed_change: "Javasolt módosítás",
|
|
122290
|
+
ai_edit_chip: "AI szerkesztés",
|
|
122291
|
+
// AI review controls
|
|
122292
|
+
ai_delete_badge: "AI törlés",
|
|
122293
|
+
ai_suggestion_badge: "AI javaslat",
|
|
122294
|
+
ai_unlink_badge: "AI leválasztás",
|
|
122295
|
+
ai_hide_diff: "Eltérés elrejtése",
|
|
122296
|
+
ai_show_diff: "Eltérés megjelenítése",
|
|
122297
|
+
ai_hide_ai_diff_aria: "AI eltérés elrejtése",
|
|
122298
|
+
ai_show_ai_diff_aria: "AI eltérés megjelenítése",
|
|
122299
|
+
ai_approve_suggested_value_tooltip: "AI által javasolt érték jóváhagyása",
|
|
122300
|
+
ai_restore_previous_value_tooltip: "Előző érték visszaállítása és a javaslat ellenőrzöttként jelölése",
|
|
122301
|
+
ai_delete: "Törlés",
|
|
122302
|
+
ai_accept: "Elfogadás",
|
|
122303
|
+
ai_restore: "Visszaállítás",
|
|
122304
|
+
ai_reject: "Elutasítás",
|
|
122305
|
+
// DeletedLinkedEntityCard.tsx
|
|
122306
|
+
ai_fields_can_be_restored_one: "{{count}} mező visszaállítható.",
|
|
122307
|
+
ai_fields_can_be_restored_other: "{{count}} mező visszaállítható.",
|
|
122308
|
+
ai_hide_deleted_fields: "Törölt mezők elrejtése",
|
|
122309
|
+
ai_show_deleted_fields: "Törölt mezők megjelenítése",
|
|
122310
|
+
ai_hide_deleted_fields_aria: "Törölt AI mezők elrejtése",
|
|
122311
|
+
ai_show_deleted_fields_aria: "Törölt AI mezők megjelenítése",
|
|
122312
|
+
// UnlinkedLinkedEntityCard.tsx
|
|
122313
|
+
ai_diff_label_entity: "entitás",
|
|
122314
|
+
ai_diff_label_linked_from: "kapcsolva innen",
|
|
122315
|
+
ai_hide_unlink_diff: "Leválasztási eltérés elrejtése",
|
|
122316
|
+
ai_show_unlink_diff: "Leválasztási eltérés megjelenítése",
|
|
122317
|
+
ai_hide_unlink_diff_aria: "AI leválasztási eltérés elrejtése",
|
|
122318
|
+
ai_show_unlink_diff_aria: "AI leválasztási eltérés megjelenítése",
|
|
122319
|
+
// LinkedEntityCard.tsx / DialogBrowseEntities.tsx
|
|
122320
|
+
ai_entity_was_added_by_ai: "Az entitást AI adta hozzá",
|
|
122321
|
+
// QuickSettingsHeader.tsx
|
|
122322
|
+
quick_filter_settings_aria: "Gyors szűrési beállítások",
|
|
122323
|
+
field_display_settings_aria: "Mezőmegjelenítési beállítások",
|
|
122324
|
+
hide_field_help: "Mezősúgó elrejtése",
|
|
122325
|
+
show_field_help: "Mezősúgó megjelenítése",
|
|
122326
|
+
show_empty_fields: "Érték nélküli mezők megjelenítése",
|
|
122327
|
+
hide_empty_fields: "Érték nélküli mezők elrejtése",
|
|
122328
|
+
show_all_fields: "Összes mező megjelenítése",
|
|
122329
|
+
show_ai_edited_fields: "AI által szerkesztett mezők megjelenítése",
|
|
122330
|
+
filter_fields_by_name_or_value: "Mezők szűrése név vagy érték alapján",
|
|
122331
|
+
clear_field_filter: "Mezőszűrő törlése",
|
|
122332
|
+
// EntityId.tsx
|
|
122333
|
+
open_in_new_tab: "Megnyitás új lapon"
|
|
121969
122334
|
}
|
|
121970
122335
|
};
|
|
121971
122336
|
instance.use(initReactI18next).init({
|
|
@@ -122827,7 +123192,7 @@ var EmotionCacheContext = /* @__PURE__ */ React.createContext(
|
|
|
122827
123192
|
}) : null
|
|
122828
123193
|
);
|
|
122829
123194
|
var CacheProvider = EmotionCacheContext.Provider;
|
|
122830
|
-
const version = "0.1.32-
|
|
123195
|
+
const version = "0.1.32-test5";
|
|
122831
123196
|
const pkg = {
|
|
122832
123197
|
version
|
|
122833
123198
|
};
|
|
@@ -123039,11 +123404,48 @@ function DescriboCrateBuilderInner(props) {
|
|
|
123039
123404
|
value
|
|
123040
123405
|
});
|
|
123041
123406
|
}, [approvalState, onSaveRoCrateApproval]);
|
|
123407
|
+
const markApprovalEntityAndPropertyApproved = useCallback((params) => {
|
|
123408
|
+
const { entityId: entityId2, propertyEntityId, propertyName: propertyName2, decision, value } = params;
|
|
123409
|
+
if (!entityId2) return;
|
|
123410
|
+
let nextApprovalState = approvalState;
|
|
123411
|
+
const approvalRecords = [];
|
|
123412
|
+
let changed = false;
|
|
123413
|
+
if (propertyEntityId && propertyName2) {
|
|
123414
|
+
const propertyResult = markApprovalRecordsApproved(
|
|
123415
|
+
nextApprovalState,
|
|
123416
|
+
propertyEntityId,
|
|
123417
|
+
propertyName2,
|
|
123418
|
+
decision
|
|
123419
|
+
);
|
|
123420
|
+
nextApprovalState = propertyResult.nextApprovalState;
|
|
123421
|
+
approvalRecords.push(...propertyResult.approvalRecords);
|
|
123422
|
+
changed = changed || propertyResult.changed;
|
|
123423
|
+
}
|
|
123424
|
+
const entityResult = markEntityApprovalRecordsApproved(
|
|
123425
|
+
nextApprovalState,
|
|
123426
|
+
entityId2,
|
|
123427
|
+
decision
|
|
123428
|
+
);
|
|
123429
|
+
nextApprovalState = entityResult.nextApprovalState;
|
|
123430
|
+
approvalRecords.push(...entityResult.approvalRecords);
|
|
123431
|
+
changed = changed || entityResult.changed;
|
|
123432
|
+
if (!changed && approvalRecords.length === 0) return;
|
|
123433
|
+
setApprovalState(nextApprovalState);
|
|
123434
|
+
onSaveRoCrateApproval == null ? void 0 : onSaveRoCrateApproval({
|
|
123435
|
+
roCrateApproval: nextApprovalState,
|
|
123436
|
+
entityId: entityId2,
|
|
123437
|
+
propertyName: propertyName2 ?? "*",
|
|
123438
|
+
decision,
|
|
123439
|
+
approvalRecords,
|
|
123440
|
+
value
|
|
123441
|
+
});
|
|
123442
|
+
}, [approvalState, onSaveRoCrateApproval]);
|
|
123042
123443
|
const approvalContextValue = useMemo$1(() => ({
|
|
123043
123444
|
roCrateApproval: approvalState,
|
|
123044
123445
|
markApprovalPropertyApproved,
|
|
123045
|
-
markApprovalEntityApproved
|
|
123046
|
-
|
|
123446
|
+
markApprovalEntityApproved,
|
|
123447
|
+
markApprovalEntityAndPropertyApproved
|
|
123448
|
+
}), [approvalState, markApprovalEntityAndPropertyApproved, markApprovalEntityApproved, markApprovalPropertyApproved]);
|
|
123047
123449
|
const configuration = useMemo$1(() => {
|
|
123048
123450
|
const config2 = {
|
|
123049
123451
|
enableContextEditor,
|