@arpproject/recrate 0.1.29 → 0.1.31

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.
@@ -9,6 +9,7 @@ export interface DescriboCrateBuilderProps {
9
9
  enableCratePreview?: boolean;
10
10
  enableBrowseEntities?: boolean;
11
11
  enableTemplateSave?: boolean;
12
+ enableBulkAdd?: boolean;
12
13
  enableReverseLinkBrowser?: boolean;
13
14
  enableUrlMarkup?: boolean;
14
15
  enableEntityTimestamps?: boolean;
@@ -31,6 +31,11 @@ export declare const propertyDefinitions: {
31
31
  default: boolean;
32
32
  validator: (val: boolean) => boolean;
33
33
  };
34
+ enableBulkAdd: {
35
+ type: BooleanConstructor;
36
+ default: boolean;
37
+ validator: (val: boolean) => boolean;
38
+ };
34
39
  enableReverseLinkBrowser: {
35
40
  type: BooleanConstructor;
36
41
  default: boolean;
@@ -80079,11 +80079,14 @@ const AddControl = ({
80079
80079
  onBulkAdd,
80080
80080
  onClose
80081
80081
  }) => {
80082
+ var _a2;
80082
80083
  const profileManager = useContext(ProfileManagerContext);
80084
+ const state = useStateStore();
80083
80085
  const notOnlyPrimitives = lodashExports.difference(
80084
80086
  Array.isArray(types2) ? types2 : [types2],
80085
80087
  [...primitives, "ANY"]
80086
80088
  );
80089
+ const showBulkAdd = ((_a2 = state.configuration) == null ? void 0 : _a2.enableBulkAdd) !== false && notOnlyPrimitives.length > 0;
80087
80090
  const getTypeLabelFromProfile = (type4) => {
80088
80091
  return profileManager == null ? void 0 : profileManager.getTypeLabel(type4);
80089
80092
  };
@@ -80116,7 +80119,7 @@ const AddControl = ({
80116
80119
  ]
80117
80120
  }
80118
80121
  ) }, idx)),
80119
- notOnlyPrimitives.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "m-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
80122
+ showBulkAdd && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "m-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
80120
80123
  Button$1,
80121
80124
  {
80122
80125
  onClick: handleBulkAdd,
@@ -81446,10 +81449,13 @@ const Add = ({
81446
81449
  onCreateEntity,
81447
81450
  onLinkEntity
81448
81451
  }) => {
81452
+ var _a2;
81449
81453
  const { t: t2 } = useTranslation();
81450
81454
  const profileManager = useContext(ProfileManagerContext);
81455
+ const state = useStateStore();
81451
81456
  const [addType, setAddType] = useState();
81452
81457
  const [localisedAddType, setLocalisedAddType] = useState();
81458
+ const enableBulkAdd = ((_a2 = state.configuration) == null ? void 0 : _a2.enableBulkAdd) !== false;
81453
81459
  const primitives = [
81454
81460
  "Text",
81455
81461
  "TextArea",
@@ -81481,6 +81487,11 @@ const Add = ({
81481
81487
  setAddType(void 0);
81482
81488
  setLocalisedAddType(void 0);
81483
81489
  };
81490
+ useEffect(() => {
81491
+ if (!enableBulkAdd && addType === "bulkAdd") {
81492
+ close();
81493
+ }
81494
+ }, [enableBulkAdd, addType]);
81484
81495
  const add2 = ({ type: type4 }) => {
81485
81496
  setAddType(type4);
81486
81497
  setLocalisedAddType(profileManager == null ? void 0 : profileManager.getTypeLabel(type4));
@@ -81621,7 +81632,7 @@ const Add = ({
81621
81632
  }
81622
81633
  )
81623
81634
  ] }),
81624
- addType === "bulkAdd" && /* @__PURE__ */ jsxRuntimeExports.jsx(
81635
+ enableBulkAdd && addType === "bulkAdd" && /* @__PURE__ */ jsxRuntimeExports.jsx(
81625
81636
  BulkAdd,
81626
81637
  {
81627
81638
  types: types2,
@@ -109616,8 +109627,8 @@ const QuickSettingsHeader = ({
109616
109627
  {
109617
109628
  className: "describo-quick-settings-filter",
109618
109629
  value: fieldTitleFilter,
109619
- placeholder: "Filter fields by title",
109620
- "aria-label": "Filter fields by title",
109630
+ placeholder: "Filter fields by name or value",
109631
+ "aria-label": "Filter fields by name or value",
109621
109632
  onChange: (event) => onFieldTitleFilterChange(event.target.value),
109622
109633
  allowClear: {
109623
109634
  clearIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(RefIcon$A, { "aria-label": "Clear field filter" })
@@ -111491,6 +111502,7 @@ const RenderEntity = forwardRef((props, ref) => {
111491
111502
  captureViewContext(activeTab);
111492
111503
  }
111493
111504
  setExtraProperties([]);
111505
+ setFieldTitleFilter("");
111494
111506
  init2({ entity });
111495
111507
  }, [entity]);
111496
111508
  useEffect(() => {
@@ -112222,13 +112234,53 @@ const RenderEntity = forwardRef((props, ref) => {
112222
112234
  entity: contextEntity
112223
112235
  })) == null ? void 0 : _a3.propertyDefinition) == null ? void 0 : _b2.label) || property;
112224
112236
  };
112225
- const matchesFieldTitleFilter = (property, label) => {
112237
+ const getSearchableScalarText = (value) => {
112238
+ if (value === null || typeof value === "undefined") return [];
112239
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
112240
+ return [String(value)];
112241
+ }
112242
+ return [];
112243
+ };
112244
+ const getLinkedEntitySearchText = (value) => {
112245
+ const id2 = typeof (value == null ? void 0 : value["@id"]) === "string" ? value["@id"] : void 0;
112246
+ if (!id2) return [];
112247
+ try {
112248
+ const linkedEntity = crateManager == null ? void 0 : crateManager.getEntity({ id: id2, link: false, materialise: false });
112249
+ if (!linkedEntity || linkedEntity === value) return [];
112250
+ return [
112251
+ ...getSearchableScalarText(linkedEntity["@id"]),
112252
+ ...getSearchableScalarText(linkedEntity.name),
112253
+ ...getSearchableValueText(linkedEntity["@type"])
112254
+ ];
112255
+ } catch {
112256
+ return [];
112257
+ }
112258
+ };
112259
+ const getSearchableValueText = (value) => {
112260
+ const scalarText = getSearchableScalarText(value);
112261
+ if (scalarText.length) return scalarText;
112262
+ if (Array.isArray(value)) {
112263
+ return value.flatMap(getSearchableValueText);
112264
+ }
112265
+ if (value && typeof value === "object") {
112266
+ return [
112267
+ ...Object.values(value).flatMap(getSearchableValueText),
112268
+ ...getLinkedEntitySearchText(value)
112269
+ ];
112270
+ }
112271
+ return [];
112272
+ };
112273
+ const matchesFieldFilter = (property, label) => {
112226
112274
  const filter2 = fieldTitleFilter.trim().toLowerCase();
112227
112275
  if (!filter2) return true;
112228
- return getFieldTitle(property, label).toLowerCase().includes(filter2);
112229
- };
112230
- const shouldRenderCoreField = (property, label) => matchesFieldTitleFilter(property, label);
112231
- const shouldRenderField = (property, label) => matchesFieldTitleFilter(property, label) && (!hideEmptyFields || hasFieldValue(contextEntity == null ? void 0 : contextEntity[property]));
112276
+ const fieldText = [
112277
+ getFieldTitle(property, label),
112278
+ ...getSearchableValueText(contextEntity == null ? void 0 : contextEntity[property])
112279
+ ].join(" ").toLowerCase();
112280
+ return fieldText.includes(filter2);
112281
+ };
112282
+ const shouldRenderCoreField = (property, label) => matchesFieldFilter(property, label);
112283
+ const shouldRenderField = (property, label) => matchesFieldFilter(property, label) && (!hideEmptyFields || hasFieldValue(contextEntity == null ? void 0 : contextEntity[property]));
112232
112284
  const editorScrollClassName = `describo-editor-scroll ${quickSettingsVisible ? "px-3 pb-3 pt-0" : "p-3"}`;
112233
112285
  if (!entity || !entity["@id"]) {
112234
112286
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "No entity selected" });
@@ -120072,6 +120124,9 @@ const propertyDefinitions = {
120072
120124
  enableTemplateSave: {
120073
120125
  default: false
120074
120126
  },
120127
+ enableBulkAdd: {
120128
+ default: true
120129
+ },
120075
120130
  enableReverseLinkBrowser: {
120076
120131
  default: false
120077
120132
  },
@@ -120899,7 +120954,7 @@ var EmotionCacheContext = /* @__PURE__ */ React.createContext(
120899
120954
  }) : null
120900
120955
  );
120901
120956
  var CacheProvider = EmotionCacheContext.Provider;
120902
- const version = "0.1.29";
120957
+ const version = "0.1.31";
120903
120958
  const pkg = {
120904
120959
  version
120905
120960
  };
@@ -120921,6 +120976,7 @@ function DescriboCrateBuilderInner(props) {
120921
120976
  enableCratePreview = propertyDefinitions.enableCratePreview.default,
120922
120977
  enableBrowseEntities = propertyDefinitions.enableBrowseEntities.default,
120923
120978
  enableTemplateSave = propertyDefinitions.enableTemplateSave.default,
120979
+ enableBulkAdd = propertyDefinitions.enableBulkAdd.default,
120924
120980
  enableReverseLinkBrowser = propertyDefinitions.enableReverseLinkBrowser.default,
120925
120981
  enableUrlMarkup = propertyDefinitions.enableUrlMarkup.default,
120926
120982
  enableEntityTimestamps = propertyDefinitions.enableEntityTimestamps.default,
@@ -120958,6 +121014,7 @@ function DescriboCrateBuilderInner(props) {
120958
121014
  enableCratePreview,
120959
121015
  enableBrowseEntities,
120960
121016
  enableTemplateSave,
121017
+ enableBulkAdd,
120961
121018
  enableReverseLinkBrowser,
120962
121019
  enableUrlMarkup,
120963
121020
  enableEntityTimestamps,
@@ -120984,6 +121041,7 @@ function DescriboCrateBuilderInner(props) {
120984
121041
  enableCratePreview,
120985
121042
  enableBrowseEntities,
120986
121043
  enableTemplateSave,
121044
+ enableBulkAdd,
120987
121045
  enableReverseLinkBrowser,
120988
121046
  enableUrlMarkup,
120989
121047
  enableEntityTimestamps,
package/dist/types.d.ts CHANGED
@@ -18,6 +18,7 @@ export type DescriboCrateBuilderProps = {
18
18
  enableCratePreview?: boolean;
19
19
  enableBrowseEntities?: boolean;
20
20
  enableTemplateSave?: boolean;
21
+ enableBulkAdd?: boolean;
21
22
  readonly?: boolean;
22
23
  enableReverseLinkBrowser?: boolean;
23
24
  enableInternalRouting?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arpproject/recrate",
3
- "version": "0.1.29",
3
+ "version": "0.1.31",
4
4
  "type": "module",
5
5
  "main": "./dist/recrate.es.js",
6
6
  "module": "./dist/recrate.es.js",