@myrmidon/gve-core 7.0.0 → 7.0.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myrmidon/gve-core",
3
- "version": "7.0.0",
3
+ "version": "7.0.2",
4
4
  "description": "Cadmus - GVE Angular frontend core components.",
5
5
  "keywords": [
6
6
  "GVE"
@@ -14,16 +14,16 @@
14
14
  "name": "Daniele Fusi"
15
15
  },
16
16
  "peerDependencies": {
17
- "@angular/common": "^21.2.10",
18
- "@angular/core": "^21.2.10",
19
- "@angular/material": "^21.2.8",
17
+ "@angular/common": "^21.2.11",
18
+ "@angular/core": "^21.2.11",
19
+ "@angular/material": "^21.2.9",
20
20
  "@cisstech/nge": "^18.3.0",
21
21
  "@myrmidon/ngx-mat-tools": "^1.0.2",
22
- "@myrmidon/ngx-tools": "^2.0.2",
23
- "@myrmidon/gve-snapshot-rendition": "^1.0.1",
22
+ "@myrmidon/ngx-tools": "^2.0.3",
23
+ "@myrmidon/gve-snapshot-rendition": "^1.0.2",
24
24
  "gsap": "^3.15.0",
25
25
  "monaco-editor": "^0.34.1",
26
- "nanoid": "^5.1.7"
26
+ "nanoid": "^5.1.11"
27
27
  },
28
28
  "dependencies": {
29
29
  "tslib": "^2.3.0"
@@ -1070,6 +1070,10 @@ declare class ChainResultViewComponent implements OnInit, OnDestroy, AfterViewIn
1070
1070
  * will allow adding multiple values to it.
1071
1071
  * - ▶️ `isVar`: true if the feature is a variant operation feature, which
1072
1072
  * has additional properties like negation, global, and short-lived.
1073
+ * - ▶️ `batchMode`: true to enable batch mode, where users edit features
1074
+ * without the component firing change events until they click the "Save" button,
1075
+ * and close the editor without saving by clicking the "Close" button.
1076
+ * - 🔥 `close`: emitted when the user clicks the close button.
1073
1077
  * - 🔥 `featuresChange` (`Feature[]`): emitted when features have changed.
1074
1078
  */
1075
1079
  declare class FeatureSetEditorComponent implements OnInit, OnDestroy {
@@ -1104,6 +1108,16 @@ declare class FeatureSetEditorComponent implements OnInit, OnDestroy {
1104
1108
  * values to it.
1105
1109
  */
1106
1110
  readonly multiValuedFeatureIds: _angular_core.InputSignal<string[] | undefined>;
1111
+ /**
1112
+ * True to enable batch mode, where users edit features
1113
+ * without the component firing change events until they click the "Save" button,
1114
+ * and close the editor without saving by clicking the "Close" button.
1115
+ */
1116
+ readonly batchMode: _angular_core.InputSignal<boolean>;
1117
+ /**
1118
+ * Emitted when the user clicks the close button.
1119
+ */
1120
+ readonly close: _angular_core.OutputEmitterRef<void>;
1107
1121
  /**
1108
1122
  * The features to edit.
1109
1123
  */
@@ -1111,6 +1125,9 @@ declare class FeatureSetEditorComponent implements OnInit, OnDestroy {
1111
1125
  readonly editedFeature: _angular_core.WritableSignal<Feature | OperationFeature | undefined>;
1112
1126
  readonly editedFeatureIndex: _angular_core.WritableSignal<number>;
1113
1127
  filteredFeatures: _angular_core.WritableSignal<OperationFeature[] | Feature[]>;
1128
+ readonly draftFeatures: _angular_core.WritableSignal<OperationFeature[] | Feature[]>;
1129
+ readonly workingFeatures: _angular_core.Signal<OperationFeature[] | Feature[]>;
1130
+ readonly hasCloseButton: _angular_core.Signal<boolean>;
1114
1131
  filter: FormControl<string | null>;
1115
1132
  constructor(formBuilder: FormBuilder);
1116
1133
  private applyFeatureFilter;
@@ -1122,8 +1139,9 @@ declare class FeatureSetEditorComponent implements OnInit, OnDestroy {
1122
1139
  isFeatureMultiValued(feature?: Feature | OperationFeature): boolean;
1123
1140
  onFeatureChange(feature?: Feature | OperationFeature): void;
1124
1141
  onFeatureCancel(): void;
1142
+ onOk(): void;
1125
1143
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FeatureSetEditorComponent, never>;
1126
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FeatureSetEditorComponent, "gve-feature-set-editor", never, { "isVar": { "alias": "isVar"; "required": false; "isSignal": true; }; "featNames": { "alias": "featNames"; "required": false; "isSignal": true; }; "featValues": { "alias": "featValues"; "required": false; "isSignal": true; }; "filterThreshold": { "alias": "filterThreshold"; "required": false; "isSignal": true; }; "multiValuedFeatureIds": { "alias": "multiValuedFeatureIds"; "required": false; "isSignal": true; }; "features": { "alias": "features"; "required": false; "isSignal": true; }; }, { "features": "featuresChange"; }, never, never, true, never>;
1144
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FeatureSetEditorComponent, "gve-feature-set-editor", never, { "isVar": { "alias": "isVar"; "required": false; "isSignal": true; }; "featNames": { "alias": "featNames"; "required": false; "isSignal": true; }; "featValues": { "alias": "featValues"; "required": false; "isSignal": true; }; "filterThreshold": { "alias": "filterThreshold"; "required": false; "isSignal": true; }; "multiValuedFeatureIds": { "alias": "multiValuedFeatureIds"; "required": false; "isSignal": true; }; "batchMode": { "alias": "batchMode"; "required": false; "isSignal": true; }; "features": { "alias": "features"; "required": false; "isSignal": true; }; }, { "close": "close"; "features": "featuresChange"; }, never, never, true, never>;
1127
1145
  }
1128
1146
 
1129
1147
  /**
@@ -1346,6 +1364,11 @@ declare class SnapshotEditorComponent {
1346
1364
  readonly result: _angular_core.WritableSignal<CharChainResult | undefined>;
1347
1365
  readonly resultOperationId: _angular_core.WritableSignal<string | undefined>;
1348
1366
  readonly initialStepIndex: _angular_core.WritableSignal<number>;
1367
+ readonly editFeatsRange: FormControl<string | null>;
1368
+ readonly editFeatsForm: FormGroup;
1369
+ readonly operationFeats: _angular_core.WritableSignal<Feature[] | undefined>;
1370
+ readonly featsOpNumbers: _angular_core.WritableSignal<number[] | undefined>;
1371
+ readonly featsRangeLabel: _angular_core.WritableSignal<string | undefined>;
1349
1372
  constructor(formBuilder: FormBuilder, _api: GveApiService, _dialog: MatDialog, _dialogService: DialogService, _snackbar: MatSnackBar);
1350
1373
  /**
1351
1374
  * Initialize rendition settings and event listeners when the element becomes available.
@@ -1390,6 +1413,21 @@ declare class SnapshotEditorComponent {
1390
1413
  * @param index The operation index.
1391
1414
  */
1392
1415
  editOperation(index: number): void;
1416
+ /**
1417
+ * Parse a range string into a sorted array of 1-based operation ordinal
1418
+ * numbers. Accepts comma-separated segments where each segment is either
1419
+ * a single number N or a range N-M (N ≤ M). Returns null when any segment
1420
+ * is syntactically invalid or out of bounds.
1421
+ */
1422
+ private parseOpRange;
1423
+ /**
1424
+ * Open a feature set editor to edit all features of the operations
1425
+ * specified by the editFeatsRange form control value.
1426
+ * Supports comma-separated segments like "2, 5-7, 9".
1427
+ */
1428
+ editOperationsFeats(): void;
1429
+ saveOperationsFeats(features: Feature[]): void;
1430
+ closeOperationFeats(): void;
1393
1431
  /**
1394
1432
  * Close the currently edited operation.
1395
1433
  */