@praxisui/metadata-editor 9.0.0-beta.73 → 9.0.0-beta.74

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-12T01:34:40.567Z",
3
+ "generatedAt": "2026-07-16T21:05:04.797Z",
4
4
  "packageName": "@praxisui/metadata-editor",
5
- "packageVersion": "9.0.0-beta.73",
5
+ "packageVersion": "9.0.0-beta.74",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 1,
@@ -10741,7 +10741,7 @@ class CascadeRulesService {
10741
10741
  return map;
10742
10742
  }
10743
10743
  hydrateRule(field) {
10744
- const deps = (field.dependencyFields ??
10744
+ const deps = this.normalizeDependencyFields(field.dependencyFields ??
10745
10745
  field.optionSource?.dependsOn);
10746
10746
  if (!deps || deps.length === 0)
10747
10747
  return null;
@@ -10750,7 +10750,7 @@ class CascadeRulesService {
10750
10750
  null;
10751
10751
  const vm = {
10752
10752
  targetField: field.name,
10753
- dependencyFields: [...deps],
10753
+ dependencyFields: deps,
10754
10754
  enableDependencyCascade: field.enableDependencyCascade === false ? false : true,
10755
10755
  resetOnDependentChange: !!field.resetOnDependentChange,
10756
10756
  dependencyFilterMap,
@@ -10779,6 +10779,18 @@ class CascadeRulesService {
10779
10779
  patch.dependencyDebounceMs = Number(rule.dependencyDebounceMs);
10780
10780
  return patch;
10781
10781
  }
10782
+ clearPatch() {
10783
+ return {
10784
+ dependencyFields: [],
10785
+ enableDependencyCascade: false,
10786
+ resetOnDependentChange: false,
10787
+ dependencyFilterMap: null,
10788
+ dependencyValuePath: null,
10789
+ dependencyMergeStrategy: null,
10790
+ dependencyDebounceMs: null,
10791
+ dependencyLoadOnChange: null,
10792
+ };
10793
+ }
10782
10794
  /** Suggest a basic mapping dep->dep and a default valuePath */
10783
10795
  suggest(rule, inferredValueKey) {
10784
10796
  const map = {};
@@ -10789,6 +10801,20 @@ class CascadeRulesService {
10789
10801
  dependencyValuePath: rule.dependencyValuePath || inferredValueKey || 'id',
10790
10802
  };
10791
10803
  }
10804
+ normalizeDependencyFields(value) {
10805
+ if (Array.isArray(value)) {
10806
+ const deps = value
10807
+ .filter((item) => typeof item === 'string')
10808
+ .map((item) => item.trim())
10809
+ .filter(Boolean);
10810
+ return deps.length ? deps : null;
10811
+ }
10812
+ if (typeof value === 'string') {
10813
+ const trimmed = value.trim();
10814
+ return trimmed ? [trimmed] : null;
10815
+ }
10816
+ return null;
10817
+ }
10792
10818
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: CascadeRulesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10793
10819
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: CascadeRulesService, providedIn: 'root' });
10794
10820
  }
@@ -10970,18 +10996,8 @@ class CascadeManagerTabComponent {
10970
10996
  const next = new Map(this.rules());
10971
10997
  next.delete(name);
10972
10998
  this.rules.set(next);
10973
- // Removing means clearing the cascade-related keys; send empty patch
10974
10999
  const patch = {
10975
- [name]: {
10976
- dependencyFields: [],
10977
- enableDependencyCascade: false,
10978
- resetOnDependentChange: false,
10979
- dependencyFilterMap: undefined,
10980
- dependencyValuePath: undefined,
10981
- dependencyMergeStrategy: undefined,
10982
- dependencyDebounceMs: undefined,
10983
- dependencyLoadOnChange: undefined,
10984
- },
11000
+ [name]: this.svc.clearPatch(),
10985
11001
  };
10986
11002
  this.apply.emit(patch);
10987
11003
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/metadata-editor",
3
- "version": "9.0.0-beta.73",
3
+ "version": "9.0.0-beta.74",
4
4
  "description": "Metadata editor for Praxis UI fields and components with runtime integration.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -8,10 +8,10 @@
8
8
  "@angular/cdk": "^21.0.0",
9
9
  "@angular/forms": "^21.0.0",
10
10
  "@angular/material": "^21.0.0",
11
- "@praxisui/ai": "^9.0.0-beta.73",
12
- "@praxisui/core": "^9.0.0-beta.73",
13
- "@praxisui/dynamic-fields": "^9.0.0-beta.73",
14
- "@praxisui/settings-panel": "^9.0.0-beta.73",
11
+ "@praxisui/ai": "^9.0.0-beta.74",
12
+ "@praxisui/core": "^9.0.0-beta.74",
13
+ "@praxisui/dynamic-fields": "^9.0.0-beta.74",
14
+ "@praxisui/settings-panel": "^9.0.0-beta.74",
15
15
  "rxjs": "~7.8.0"
16
16
  },
17
17
  "dependencies": {
@@ -221,8 +221,10 @@ declare class CascadeRulesService {
221
221
  getFieldLabelMap(fields: Array<FieldDefinition | FieldMetadata>): Map<string, string>;
222
222
  hydrateRule(field: FieldDefinition | FieldMetadata): CascadeRuleViewModel | null;
223
223
  dehydratePatch(rule: CascadeRuleViewModel): Partial<FieldDefinition>;
224
+ clearPatch(): Partial<FieldDefinition>;
224
225
  /** Suggest a basic mapping dep->dep and a default valuePath */
225
226
  suggest(rule: CascadeRuleViewModel, inferredValueKey?: string): CascadeRuleViewModel;
227
+ private normalizeDependencyFields;
226
228
  static ɵfac: i0.ɵɵFactoryDeclaration<CascadeRulesService, never>;
227
229
  static ɵprov: i0.ɵɵInjectableDeclaration<CascadeRulesService>;
228
230
  }