@solcre-org/core-ui 2.11.37 → 2.11.39

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.
@@ -1004,7 +1004,10 @@ class FileFieldComponent extends BaseFieldComponent {
1004
1004
  const existing = this.existingFiles();
1005
1005
  const selected = this.selectedFiles();
1006
1006
  const blobs = this.previewBlobs();
1007
- return [...existing, ...selected, ...blobs];
1007
+ if (blobs.length > 0) {
1008
+ return [...selected, ...blobs];
1009
+ }
1010
+ return [...existing, ...selected];
1008
1011
  });
1009
1012
  previewUrlsEffect = effect(() => {
1010
1013
  const previewUrls = this.getPreviewUrls();
@@ -1106,7 +1109,10 @@ class FileFieldComponent extends BaseFieldComponent {
1106
1109
  }
1107
1110
  initializeFiles() {
1108
1111
  const currentValue = this.value();
1109
- if (currentValue) {
1112
+ const field = this.field();
1113
+ const hasPreviewUrls = field.previewUrls && ((Array.isArray(field.previewUrls) && field.previewUrls.length > 0) ||
1114
+ (typeof field.previewUrls === 'function'));
1115
+ if (currentValue && !hasPreviewUrls) {
1110
1116
  if (currentValue instanceof File) {
1111
1117
  this.selectedFiles.set([currentValue]);
1112
1118
  this.generatePreviews([currentValue]);
@@ -1122,6 +1128,10 @@ class FileFieldComponent extends BaseFieldComponent {
1122
1128
  this.existingFiles.set([currentValue]);
1123
1129
  }
1124
1130
  }
1131
+ else if (hasPreviewUrls) {
1132
+ this.selectedFiles.set([]);
1133
+ this.existingFiles.set([]);
1134
+ }
1125
1135
  }
1126
1136
  isServerFile(value) {
1127
1137
  return value && typeof value === 'object' && 'id' in value && 'filename' in value;
@@ -1208,12 +1218,24 @@ class FileFieldComponent extends BaseFieldComponent {
1208
1218
  removeFile(index) {
1209
1219
  const all = this.allFiles();
1210
1220
  const fileToRemove = all[index];
1221
+ const config = this.fieldConfig();
1222
+ let fileType;
1211
1223
  if (this.isServerFile(fileToRemove)) {
1212
1224
  const existing = [...this.existingFiles()];
1213
1225
  const idx = existing.findIndex(f => f.id === fileToRemove.id);
1214
1226
  if (idx !== -1) {
1215
1227
  existing.splice(idx, 1);
1216
1228
  this.existingFiles.set(existing);
1229
+ fileType = 'existing';
1230
+ }
1231
+ }
1232
+ else if (this.isPreviewFile(fileToRemove)) {
1233
+ const blobs = [...this.previewBlobs()];
1234
+ const idx = blobs.indexOf(fileToRemove);
1235
+ if (idx !== -1) {
1236
+ blobs.splice(idx, 1);
1237
+ this.previewBlobs.set(blobs);
1238
+ fileType = 'preview';
1217
1239
  }
1218
1240
  }
1219
1241
  else {
@@ -1223,8 +1245,12 @@ class FileFieldComponent extends BaseFieldComponent {
1223
1245
  selected.splice(idx, 1);
1224
1246
  this.selectedFiles.set(selected);
1225
1247
  this.generatePreviews(selected);
1248
+ fileType = 'selected';
1226
1249
  }
1227
1250
  }
1251
+ if (config.onFileRemoved && fileType) {
1252
+ config.onFileRemoved(fileToRemove, index, fileType);
1253
+ }
1228
1254
  this.validateCurrentState();
1229
1255
  this.formControl().markAsTouched();
1230
1256
  this.emitCurrentValue();
@@ -10666,11 +10692,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
10666
10692
  // Este archivo es generado automáticamente por scripts/update-version.js
10667
10693
  // No edites manualmente este archivo
10668
10694
  const VERSION = {
10669
- full: '2.11.37',
10695
+ full: '2.11.39',
10670
10696
  major: 2,
10671
10697
  minor: 11,
10672
- patch: 37,
10673
- timestamp: '2025-09-02T14:51:40.418Z',
10698
+ patch: 39,
10699
+ timestamp: '2025-09-02T15:20:12.868Z',
10674
10700
  buildDate: '2/9/2025'
10675
10701
  };
10676
10702