@dignite-ng/expand.file-explorer 0.0.22 → 0.0.27
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/esm2022/config/enums/route-names.mjs +1 -1
- package/esm2022/config/file-config.module.mjs +4 -4
- package/esm2022/lib/components/dome/file-dome.component.mjs +10 -15
- package/esm2022/lib/components/dynamic-form/file-explorer/file-explorer-config.component.mjs +3 -11
- package/esm2022/lib/components/dynamic-form/file-explorer/file-explorer-config.mjs +5 -5
- package/esm2022/lib/components/dynamic-form/file-explorer/file-explorer-control.component.mjs +11 -19
- package/esm2022/lib/components/file-edit/file-edit.component.mjs +17 -20
- package/esm2022/lib/components/file-modal/file-modal.component.mjs +56 -67
- package/esm2022/lib/components/file-modal-tree/file-modal-tree.component.mjs +22 -33
- package/esm2022/lib/components/file-picker/file-picker.component.mjs +12 -14
- package/esm2022/lib/file-explorer-routing.module.mjs +4 -4
- package/esm2022/lib/file-explorer.module.mjs +6 -6
- package/esm2022/lib/previews/file-preview.component.mjs +25 -28
- package/esm2022/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.mjs +32 -33
- package/esm2022/lib/proxy/dignite/file-explorer/files/file-descriptor.service.mjs +44 -45
- package/esm2022/lib/services/file-api.service.mjs +3 -3
- package/fesm2022/dignite-ng-expand.file-explorer-config.mjs +3 -3
- package/fesm2022/dignite-ng-expand.file-explorer-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.file-explorer.mjs +238 -291
- package/fesm2022/dignite-ng-expand.file-explorer.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -75,8 +75,8 @@ class FileApiService {
|
|
|
75
75
|
}
|
|
76
76
|
return result;
|
|
77
77
|
}
|
|
78
|
-
static
|
|
79
|
-
static
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
79
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileApiService, providedIn: 'root' }); }
|
|
80
80
|
}
|
|
81
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileApiService, decorators: [{
|
|
82
82
|
type: Injectable,
|
|
@@ -161,27 +161,30 @@ let ImageTypeOption = [{
|
|
|
161
161
|
];
|
|
162
162
|
|
|
163
163
|
class FilePreviewComponent {
|
|
164
|
-
modalService;
|
|
165
|
-
/**文件宽度 */
|
|
166
|
-
width = '100px';
|
|
167
|
-
/*文件链接 */
|
|
168
|
-
src = '';
|
|
169
|
-
/**是否支持大图预览 */
|
|
170
|
-
preview = true;
|
|
171
|
-
/**文件类型 */
|
|
172
|
-
type = '';
|
|
173
|
-
/**文件名称 */
|
|
174
|
-
name = '';
|
|
175
|
-
/**是否是文件 */
|
|
176
|
-
isImage = true;
|
|
177
|
-
/**是否是视频 */
|
|
178
|
-
isAudio = false;
|
|
179
|
-
/**是否是音频 */
|
|
180
|
-
isVideo = false;
|
|
181
|
-
/**文件类型及图标 */
|
|
182
|
-
_ImageTypeOption = ImageTypeOption;
|
|
183
164
|
constructor(modalService) {
|
|
184
165
|
this.modalService = modalService;
|
|
166
|
+
/**文件宽度 */
|
|
167
|
+
this.width = '100px';
|
|
168
|
+
/*文件链接 */
|
|
169
|
+
this.src = '';
|
|
170
|
+
/**是否支持大图预览 */
|
|
171
|
+
this.preview = true;
|
|
172
|
+
/**文件类型 */
|
|
173
|
+
this.type = '';
|
|
174
|
+
/**文件名称 */
|
|
175
|
+
this.name = '';
|
|
176
|
+
/**是否是文件 */
|
|
177
|
+
this.isImage = true;
|
|
178
|
+
/**是否是视频 */
|
|
179
|
+
this.isAudio = false;
|
|
180
|
+
/**是否是音频 */
|
|
181
|
+
this.isVideo = false;
|
|
182
|
+
/**文件类型及图标 */
|
|
183
|
+
this._ImageTypeOption = ImageTypeOption;
|
|
184
|
+
/**放大倍数 */
|
|
185
|
+
this.zoom = 10;
|
|
186
|
+
/**旋转 */
|
|
187
|
+
this.rotate = 0;
|
|
185
188
|
}
|
|
186
189
|
ngAfterContentInit() {
|
|
187
190
|
//Called after ngOnInit when the component's or directive's content has been initialized.
|
|
@@ -196,12 +199,6 @@ class FilePreviewComponent {
|
|
|
196
199
|
/**预览图片 */
|
|
197
200
|
previewImage() {
|
|
198
201
|
}
|
|
199
|
-
/**模态框实例 */
|
|
200
|
-
modalRef;
|
|
201
|
-
/**放大倍数 */
|
|
202
|
-
zoom = 10;
|
|
203
|
-
/**旋转 */
|
|
204
|
-
rotate = 0;
|
|
205
202
|
/**打开预览弹窗 */
|
|
206
203
|
OpenPreviewImage(content) {
|
|
207
204
|
this.modalRef = this.modalService.open(content, {
|
|
@@ -235,8 +232,8 @@ class FilePreviewComponent {
|
|
|
235
232
|
return this.rotate = 0;
|
|
236
233
|
this.rotate += 90;
|
|
237
234
|
}
|
|
238
|
-
static
|
|
239
|
-
static
|
|
235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePreviewComponent, deps: [{ token: i8.NgbModal }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FilePreviewComponent, selector: "fe-file-preview", inputs: { width: "width", src: "src", preview: "preview", type: "type", name: "name" }, ngImport: i0, template: "<div class=\"image_box\" [style]=\"{width:width}\">\n <div class=\"img_box\" *ngIf=\"isImage\">\n <img [src]=\"src\" />\n <div class=\"option_box\" *ngIf=\"preview\">\n <i class=\"fa fa-eye \" (click.stop)=\"OpenPreviewImage(content)\"></i>\n </div>\n </div>\n <a [href]=\"src\" [download]=\"name\" target>\n <i class=\"fa fa-file-audio-o fs-1\" *ngIf=\"isAudio\"></i>\n <i class=\"fa fa-file-video-o fs-1\" *ngIf=\"isVideo\"></i>\n <ng-container *ngIf=\"!(isImage||isAudio||isVideo)\">\n <ng-container *ngFor=\"let item of _ImageTypeOption; let i=index\">\n <i class=\"fs-1\" [ngClass]=\"item.icon\" *ngIf=\"item.type===type\"></i>\n </ng-container>\n </ng-container>\n </a>\n</div>\n\n<ng-template #content let-modal>\n <div class=\"modal-header\">\n <div class=\"d-flex justify-content-end w-100 fs-3\">\n <i class=\"mx-2 fa fa fa-repeat\" aria-hidden=\"true\" title=\"\u53F3\u65CB\u8F6C\" role=\"button\" (click)=\"RotateRight()\"></i>\n <i class=\"mx-2 fa fa-search-minus\" aria-hidden=\"true\" title=\"\u7F29\u5C0F\" role=\"button\" (click)=\"zoomOut()\"></i>\n <i class=\"mx-2 fa fa-search-plus\" aria-hidden=\"true\" title=\"\u653E\u5927\" role=\"button\" (click)=\"zoomIn()\"></i>\n <i class=\"mx-2 fa fa-times\" aria-hidden=\"true\" role=\"button\" (click)=\"modal.dismiss('Cross click')\"></i>\n </div>\n </div> \n <div class=\"modal-body d-flex justify-content-center align-items-center \">\n <img width=\"400\" class=\"modal-body-preview\" [src]=\"src\" [style.transform]=\"'scale('+zoom/10+') rotate('+rotate+'deg)'\" >\n </div>\n</ng-template>", styles: [".image_box{text-align:center;position:relative}.image_box img{width:100%}.image_box .img_box:hover .option_box{display:flex}.image_box .option_box{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000040;align-items:center;justify-content:center;display:none;transition:all .2s linear}.image_box .option_box i{cursor:pointer;font-size:18px;color:#fff}.modal-body-preview{transition:all .2s}::ng-deep .dignite-preview .modal-content{background-color:transparent;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }] }); }
|
|
240
237
|
}
|
|
241
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePreviewComponent, decorators: [{
|
|
242
239
|
type: Component,
|
|
@@ -254,39 +251,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
254
251
|
}] } });
|
|
255
252
|
|
|
256
253
|
class FileEditComponent {
|
|
257
|
-
_FileApiService;
|
|
258
254
|
constructor(_FileApiService) {
|
|
259
255
|
this._FileApiService = _FileApiService;
|
|
256
|
+
/**是否多选 */
|
|
257
|
+
this._multiple = true;
|
|
258
|
+
/**文件数据--已上传的数据 */
|
|
259
|
+
this._fileData = [];
|
|
260
|
+
/** 跟随表单提交--已提交的数据,或选择的数据源--回调*/
|
|
261
|
+
this.fileDataChange = new EventEmitter();
|
|
262
|
+
/**文件大小限制
|
|
263
|
+
* @param 1mb
|
|
264
|
+
*/
|
|
265
|
+
this.sizeLimit = 1048576;
|
|
266
|
+
/**文件表格数据 */
|
|
267
|
+
this.filesTableData = [];
|
|
268
|
+
/** 待删除已上传的文件们*/
|
|
269
|
+
this.deleteTheUploadedFiles = [];
|
|
260
270
|
}
|
|
261
|
-
/**是否多选 */
|
|
262
|
-
_multiple = true;
|
|
263
271
|
set multiple(v) {
|
|
264
272
|
this._multiple = v;
|
|
265
273
|
if (v) { }
|
|
266
274
|
}
|
|
267
|
-
/**文件数据--已上传的数据 */
|
|
268
|
-
_fileData = [];
|
|
269
275
|
set fileData(v) {
|
|
270
276
|
this._fileData = v;
|
|
271
277
|
if (v.length > 0) {
|
|
272
278
|
this.getFileChange({ target: { files: v } });
|
|
273
279
|
}
|
|
274
280
|
}
|
|
275
|
-
/** 跟随表单提交--已提交的数据,或选择的数据源--回调*/
|
|
276
|
-
fileDataChange = new EventEmitter();
|
|
277
|
-
/**文件大小限制
|
|
278
|
-
* @param 1mb
|
|
279
|
-
*/
|
|
280
|
-
sizeLimit = 1048576;
|
|
281
281
|
set limit(v) {
|
|
282
282
|
this.sizeLimit = v;
|
|
283
283
|
}
|
|
284
|
-
/**文件表格数据 */
|
|
285
|
-
filesTableData = [];
|
|
286
|
-
/** 待删除已上传的文件们*/
|
|
287
|
-
deleteTheUploadedFiles = [];
|
|
288
|
-
/**获取文件选择框的元素 */
|
|
289
|
-
fileEdit;
|
|
290
284
|
/**获取文件信息改变 */
|
|
291
285
|
async getFileChange(event) {
|
|
292
286
|
let files = new Array(...event.target.files);
|
|
@@ -330,8 +324,8 @@ class FileEditComponent {
|
|
|
330
324
|
resolve(files);
|
|
331
325
|
});
|
|
332
326
|
}
|
|
333
|
-
static
|
|
334
|
-
static
|
|
327
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileEditComponent, deps: [{ token: FileApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
328
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileEditComponent, selector: "fe-file-edit", inputs: { multiple: "multiple", fileData: "fileData", limit: "limit" }, outputs: { fileDataChange: "fileDataChange" }, viewQueries: [{ propertyName: "fileEdit", first: true, predicate: ["fileEdit"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"input-group mb-2\">\n <input type=\"file\" class=\"form-control\" #fileEdit [multiple]=\"_multiple\" (change)=\"getFileChange($event)\">\n</div>\n\n<table class=\"table\" *ngIf=\"filesTableData.length>0\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of filesTableData;let i =index\">\n <tr>\n <td>\n <fe-file-preview [width]=\"'80px'\" [src]=\"item.src\" [name]=\"item.name\" [type]=\"item.type\" [preview]=\"true\"></fe-file-preview>\n </td>\n <th scope=\"row\">\n <div>{{item.name}}</div>\n <div class=\"form-text text-danger\" *ngIf=\"item.size > sizeLimit\">\n {{'FileExplorer::ExceedsMaximumSize' |\n abpLocalization:_FileApiService.formatFileSize(sizeLimit)}}</div>\n </th>\n <td>{{item.fileSize}}</td>\n <td>\n <button class=\"btn btn-sm p-0 btn-light \" (click.stop)=\"deleteFileTableItem(i,item)\">\n <i class=\"fas fa-trash p-2\"></i>\n </button>\n </td>\n </tr>\n </ng-container>\n </tbody>\n</table>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: FilePreviewComponent, selector: "fe-file-preview", inputs: ["width", "src", "preview", "type", "name"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
335
329
|
}
|
|
336
330
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileEditComponent, decorators: [{
|
|
337
331
|
type: Component,
|
|
@@ -350,53 +344,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
350
344
|
}] } });
|
|
351
345
|
|
|
352
346
|
let FileDescriptorService$1 = class FileDescriptorService {
|
|
353
|
-
restService;
|
|
354
|
-
apiName = 'FileExplorer';
|
|
355
|
-
create = (input, config) => this.restService.request({
|
|
356
|
-
method: 'POST',
|
|
357
|
-
url: '/api/file-explorer/files',
|
|
358
|
-
params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
|
|
359
|
-
body: input.file,
|
|
360
|
-
}, { apiName: this.apiName, ...config });
|
|
361
|
-
delete = (id, config) => this.restService.request({
|
|
362
|
-
method: 'DELETE',
|
|
363
|
-
url: `/api/file-explorer/files/${id}`,
|
|
364
|
-
}, { apiName: this.apiName, ...config });
|
|
365
|
-
download = (containerName, blobName, fileName, config) => this.restService.request({
|
|
366
|
-
method: 'GET',
|
|
367
|
-
url: `/api/file-explorer/files/download/${containerName}/${blobName}`,
|
|
368
|
-
params: { fileName },
|
|
369
|
-
}, { apiName: this.apiName, ...config });
|
|
370
|
-
get = (id, config) => this.restService.request({
|
|
371
|
-
method: 'GET',
|
|
372
|
-
url: `/api/file-explorer/files/${id}`,
|
|
373
|
-
}, { apiName: this.apiName, ...config });
|
|
374
|
-
getFileContainerConfiguration = (containerName, config) => this.restService.request({
|
|
375
|
-
method: 'GET',
|
|
376
|
-
url: '/api/file-explorer/files/configuration',
|
|
377
|
-
params: { containerName },
|
|
378
|
-
}, { apiName: this.apiName, ...config });
|
|
379
|
-
getList = (input, config) => this.restService.request({
|
|
380
|
-
method: 'GET',
|
|
381
|
-
url: '/api/file-explorer/files',
|
|
382
|
-
params: { containerName: input.containerName, directoryId: input.directoryId, creatorId: input.creatorId, filter: input.filter, entityId: input.entityId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
|
|
383
|
-
}, { apiName: this.apiName, ...config });
|
|
384
|
-
getStream = (containerName, blobName, imageResize, config) => this.restService.request({
|
|
385
|
-
method: 'GET',
|
|
386
|
-
responseType: 'blob',
|
|
387
|
-
url: `/api/file-explorer/files/${containerName}/${blobName}`,
|
|
388
|
-
params: { width: imageResize.width, height: imageResize.height },
|
|
389
|
-
}, { apiName: this.apiName, ...config });
|
|
390
|
-
update = (id, input, config) => this.restService.request({
|
|
391
|
-
method: 'PUT',
|
|
392
|
-
url: `/api/file-explorer/files/${id}`,
|
|
393
|
-
body: input,
|
|
394
|
-
}, { apiName: this.apiName, ...config });
|
|
395
347
|
constructor(restService) {
|
|
396
348
|
this.restService = restService;
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
349
|
+
this.apiName = 'FileExplorer';
|
|
350
|
+
this.create = (input, config) => this.restService.request({
|
|
351
|
+
method: 'POST',
|
|
352
|
+
url: '/api/file-explorer/files',
|
|
353
|
+
params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
|
|
354
|
+
body: input.file,
|
|
355
|
+
}, { apiName: this.apiName, ...config });
|
|
356
|
+
this.delete = (id, config) => this.restService.request({
|
|
357
|
+
method: 'DELETE',
|
|
358
|
+
url: `/api/file-explorer/files/${id}`,
|
|
359
|
+
}, { apiName: this.apiName, ...config });
|
|
360
|
+
this.download = (containerName, blobName, fileName, config) => this.restService.request({
|
|
361
|
+
method: 'GET',
|
|
362
|
+
url: `/api/file-explorer/files/download/${containerName}/${blobName}`,
|
|
363
|
+
params: { fileName },
|
|
364
|
+
}, { apiName: this.apiName, ...config });
|
|
365
|
+
this.get = (id, config) => this.restService.request({
|
|
366
|
+
method: 'GET',
|
|
367
|
+
url: `/api/file-explorer/files/${id}`,
|
|
368
|
+
}, { apiName: this.apiName, ...config });
|
|
369
|
+
this.getFileContainerConfiguration = (containerName, config) => this.restService.request({
|
|
370
|
+
method: 'GET',
|
|
371
|
+
url: '/api/file-explorer/files/configuration',
|
|
372
|
+
params: { containerName },
|
|
373
|
+
}, { apiName: this.apiName, ...config });
|
|
374
|
+
this.getList = (input, config) => this.restService.request({
|
|
375
|
+
method: 'GET',
|
|
376
|
+
url: '/api/file-explorer/files',
|
|
377
|
+
params: { containerName: input.containerName, directoryId: input.directoryId, creatorId: input.creatorId, filter: input.filter, entityId: input.entityId, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
|
|
378
|
+
}, { apiName: this.apiName, ...config });
|
|
379
|
+
this.getStream = (containerName, blobName, imageResize, config) => this.restService.request({
|
|
380
|
+
method: 'GET',
|
|
381
|
+
responseType: 'blob',
|
|
382
|
+
url: `/api/file-explorer/files/${containerName}/${blobName}`,
|
|
383
|
+
params: { width: imageResize.width, height: imageResize.height },
|
|
384
|
+
}, { apiName: this.apiName, ...config });
|
|
385
|
+
this.update = (id, input, config) => this.restService.request({
|
|
386
|
+
method: 'PUT',
|
|
387
|
+
url: `/api/file-explorer/files/${id}`,
|
|
388
|
+
body: input,
|
|
389
|
+
}, { apiName: this.apiName, ...config });
|
|
390
|
+
}
|
|
391
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDescriptorService, deps: [{ token: i3.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
392
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDescriptorService, providedIn: 'root' }); }
|
|
400
393
|
};
|
|
401
394
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDescriptorService$1, decorators: [{
|
|
402
395
|
type: Injectable,
|
|
@@ -411,41 +404,40 @@ var index$e = /*#__PURE__*/Object.freeze({
|
|
|
411
404
|
});
|
|
412
405
|
|
|
413
406
|
class FileDescriptorService {
|
|
414
|
-
restService;
|
|
415
|
-
apiName = 'FileExplorer';
|
|
416
|
-
create = (input, config) => this.restService.request({
|
|
417
|
-
method: 'POST',
|
|
418
|
-
url: '/api/file-explorer/directories',
|
|
419
|
-
body: input,
|
|
420
|
-
}, { apiName: this.apiName, ...config });
|
|
421
|
-
delete = (id, config) => this.restService.request({
|
|
422
|
-
method: 'DELETE',
|
|
423
|
-
url: `/api/file-explorer/directories/${id}`,
|
|
424
|
-
}, { apiName: this.apiName, ...config });
|
|
425
|
-
get = (id, config) => this.restService.request({
|
|
426
|
-
method: 'GET',
|
|
427
|
-
url: `/api/file-explorer/directories/${id}`,
|
|
428
|
-
}, { apiName: this.apiName, ...config });
|
|
429
|
-
getList = (input, config) => this.restService.request({
|
|
430
|
-
method: 'GET',
|
|
431
|
-
url: '/api/file-explorer/directories',
|
|
432
|
-
params: { containerName: input.containerName },
|
|
433
|
-
}, { apiName: this.apiName, ...config });
|
|
434
|
-
move = (id, input, config) => this.restService.request({
|
|
435
|
-
method: 'PUT',
|
|
436
|
-
url: `/api/file-explorer/directories/${id}/move`,
|
|
437
|
-
body: input,
|
|
438
|
-
}, { apiName: this.apiName, ...config });
|
|
439
|
-
update = (id, input, config) => this.restService.request({
|
|
440
|
-
method: 'PUT',
|
|
441
|
-
url: `/api/file-explorer/directories/${id}`,
|
|
442
|
-
body: input,
|
|
443
|
-
}, { apiName: this.apiName, ...config });
|
|
444
407
|
constructor(restService) {
|
|
445
408
|
this.restService = restService;
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
409
|
+
this.apiName = 'FileExplorer';
|
|
410
|
+
this.create = (input, config) => this.restService.request({
|
|
411
|
+
method: 'POST',
|
|
412
|
+
url: '/api/file-explorer/directories',
|
|
413
|
+
body: input,
|
|
414
|
+
}, { apiName: this.apiName, ...config });
|
|
415
|
+
this.delete = (id, config) => this.restService.request({
|
|
416
|
+
method: 'DELETE',
|
|
417
|
+
url: `/api/file-explorer/directories/${id}`,
|
|
418
|
+
}, { apiName: this.apiName, ...config });
|
|
419
|
+
this.get = (id, config) => this.restService.request({
|
|
420
|
+
method: 'GET',
|
|
421
|
+
url: `/api/file-explorer/directories/${id}`,
|
|
422
|
+
}, { apiName: this.apiName, ...config });
|
|
423
|
+
this.getList = (input, config) => this.restService.request({
|
|
424
|
+
method: 'GET',
|
|
425
|
+
url: '/api/file-explorer/directories',
|
|
426
|
+
params: { containerName: input.containerName },
|
|
427
|
+
}, { apiName: this.apiName, ...config });
|
|
428
|
+
this.move = (id, input, config) => this.restService.request({
|
|
429
|
+
method: 'PUT',
|
|
430
|
+
url: `/api/file-explorer/directories/${id}/move`,
|
|
431
|
+
body: input,
|
|
432
|
+
}, { apiName: this.apiName, ...config });
|
|
433
|
+
this.update = (id, input, config) => this.restService.request({
|
|
434
|
+
method: 'PUT',
|
|
435
|
+
url: `/api/file-explorer/directories/${id}`,
|
|
436
|
+
body: input,
|
|
437
|
+
}, { apiName: this.apiName, ...config });
|
|
438
|
+
}
|
|
439
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDescriptorService, deps: [{ token: i3.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
440
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDescriptorService, providedIn: 'root' }); }
|
|
449
441
|
}
|
|
450
442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDescriptorService, decorators: [{
|
|
451
443
|
type: Injectable,
|
|
@@ -461,44 +453,44 @@ var index$d = /*#__PURE__*/Object.freeze({
|
|
|
461
453
|
|
|
462
454
|
var that$1;
|
|
463
455
|
class FileModalTreeComponent {
|
|
464
|
-
_DescriptorService;
|
|
465
|
-
fb;
|
|
466
|
-
toaster;
|
|
467
|
-
_FileApiService;
|
|
468
|
-
_LocalizationService;
|
|
469
456
|
constructor(_DescriptorService, fb, toaster, _FileApiService, _LocalizationService) {
|
|
470
457
|
this._DescriptorService = _DescriptorService;
|
|
471
458
|
this.fb = fb;
|
|
472
459
|
this.toaster = toaster;
|
|
473
460
|
this._FileApiService = _FileApiService;
|
|
474
461
|
this._LocalizationService = _LocalizationService;
|
|
462
|
+
/**文件分组列表 */
|
|
463
|
+
this.fileGroupList = [];
|
|
464
|
+
/**选择的tree节点 */
|
|
465
|
+
this._theSelectedTreeNode = '';
|
|
466
|
+
/**正在编辑的节点 */
|
|
467
|
+
this.theNodeBeingEdited = '';
|
|
468
|
+
/**已展开的节点 */
|
|
469
|
+
this.anExpandedNode = [];
|
|
470
|
+
/**tree节点选择回调 */
|
|
471
|
+
this.nodeClick = new EventEmitter();
|
|
472
|
+
this.handleClick = (event) => event.stopPropagation();
|
|
473
|
+
/**判断节点是否选中 */
|
|
474
|
+
this.isNodeSelected = (el) => el.key === this._theSelectedTreeNode?.key;
|
|
475
|
+
/**分组 */
|
|
476
|
+
/**模态框-状态-是否打开 */
|
|
477
|
+
this.ModalDescriptorOpen = false;
|
|
478
|
+
/**模态框-descriptor-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
479
|
+
this.ModalDescriptorBusy = false;
|
|
475
480
|
that$1 = this;
|
|
476
481
|
}
|
|
477
|
-
/**文件分组列表 */
|
|
478
|
-
fileGroupList = [];
|
|
479
|
-
/**选择的tree节点 */
|
|
480
|
-
_theSelectedTreeNode = '';
|
|
481
482
|
set theSelectedTreeNode(v) {
|
|
482
483
|
this._theSelectedTreeNode = v;
|
|
483
484
|
if (v.length > 0) {
|
|
484
485
|
this.loadData();
|
|
485
486
|
}
|
|
486
487
|
}
|
|
487
|
-
/**正在编辑的节点 */
|
|
488
|
-
theNodeBeingEdited = '';
|
|
489
|
-
/**已展开的节点 */
|
|
490
|
-
anExpandedNode = [];
|
|
491
|
-
/**图片容器 */
|
|
492
|
-
_fileContainerName;
|
|
493
|
-
/**tree节点选择回调 */
|
|
494
|
-
nodeClick = new EventEmitter();
|
|
495
488
|
set fileContainerName(v) {
|
|
496
489
|
if (v) {
|
|
497
490
|
this._fileContainerName = v;
|
|
498
491
|
this.loadData();
|
|
499
492
|
}
|
|
500
493
|
}
|
|
501
|
-
handleClick = (event) => event.stopPropagation();
|
|
502
494
|
loadData() {
|
|
503
495
|
if (this._fileContainerName) {
|
|
504
496
|
this.getFileGroupList();
|
|
@@ -549,8 +541,6 @@ class FileModalTreeComponent {
|
|
|
549
541
|
this._theSelectedTreeNode = event.node;
|
|
550
542
|
this.nodeClick.emit(event.node);
|
|
551
543
|
}
|
|
552
|
-
/**判断节点是否选中 */
|
|
553
|
-
isNodeSelected = (el) => el.key === this._theSelectedTreeNode?.key;
|
|
554
544
|
/**点击展开树节点图标触发 */
|
|
555
545
|
nzExpandChange(event) {
|
|
556
546
|
let anExpandedNode = this.anExpandedNode;
|
|
@@ -587,15 +577,6 @@ class FileModalTreeComponent {
|
|
|
587
577
|
this.getFileGroupList();
|
|
588
578
|
});
|
|
589
579
|
}
|
|
590
|
-
/**分组 */
|
|
591
|
-
/**模态框-状态-是否打开 */
|
|
592
|
-
ModalDescriptorOpen = false;
|
|
593
|
-
/**模态框-descriptor-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
594
|
-
ModalDescriptorBusy = false;
|
|
595
|
-
/**模态框-descriptor-表单 */
|
|
596
|
-
ModalDescriptorForm;
|
|
597
|
-
/**模态框-descriptor-表单--控件模板-动态赋值表单控件 */
|
|
598
|
-
ModalFormDescriptorSubmit;
|
|
599
580
|
/**模态框-descriptor-状态改变回调 */
|
|
600
581
|
ModalDescriptorVisibleChange(event) {
|
|
601
582
|
if (!event) {
|
|
@@ -619,12 +600,12 @@ class FileModalTreeComponent {
|
|
|
619
600
|
this.getFileGroupList();
|
|
620
601
|
});
|
|
621
602
|
}
|
|
622
|
-
static
|
|
623
|
-
static
|
|
603
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalTreeComponent, deps: [{ token: FileDescriptorService }, { token: i1.FormBuilder }, { token: i2$1.ToasterService }, { token: FileApiService }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
604
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileModalTreeComponent, selector: "fe-file-modal-tree", inputs: { theSelectedTreeNode: "theSelectedTreeNode", fileContainerName: "fileContainerName" }, outputs: { nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "ModalFormDescriptorSubmit", first: true, predicate: ["ModalFormDescriptorSubmit"], descendants: true }], ngImport: i0, template: "<div class=\"card-header p-0 mb-1 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'FileExplorer::MyDirectories' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-light btn-sm ms-2\" (click.stop)=\"addDescriptorBtn()\"><i\n class=\"fas fa-plus-circle\" aria-hidden=\"true\"></i></button>\n</div>\n<nz-tree [nzData]=\"fileGroupList\" class=\"ng-zorro-antd-tree\" nzDraggable nzBlockNode nzShowIcon\n [nzExpandedIcon]=\"multiExpandedIconTpl\" (nzOnDrop)=\"nzEvent($event)\" [nzBeforeDrop]=\"beforeDrop\"\n (nzClick)=\"activeNode($event)\" (nzExpandChange)=\"nzExpandChange($event)\" [nzTreeTemplate]=\"nzTreeTemplate\">\n <ng-template #nzTreeTemplate let-node let-origin=\"origin\">\n <div class=\"custom-node d-inline-block ng-star-inserted dropdown\" [title]=\"node.title\">\n <div #dropdown=\"ngbDropdown\" class=\"d-inline-block\" ngbDropdown placement=\"bottom\" container=\"body\">\n <div class=\"btn-group\" [class.selected]=\"isNodeSelected(node)\">\n <button class=\"btn btn-sm p-0 px-1\">{{ node.title }}</button>\n <button class=\"btn btn-sm p-0\" (click)=\"handleClick($event)\" ngbDropdownToggle\n [class.dropdown-toggle]=\"false\" aria-hidden=\"true\">\n <i class=\"fas fa-caret-down text-muted p-1\"></i>\n </button>\n </div>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click.stop)=\"addDescriptorBtn(node)\">{{'FileExplorer::NewDirectory' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"addDescriptorBtn(node,true)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deleteDescriptorBtn(node)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #multiExpandedIconTpl let-node let-origin=\"origin\">\n <ng-container *ngIf=\"node.children.length > 0\">\n <i [class]=\"node.isExpanded ? 'fas fa-caret-down' : 'fas fa-caret-right'\"></i>\n </ng-container>\n </ng-template>\n</nz-tree>\n\n\n<abp-modal [(visible)]=\"ModalDescriptorOpen\" [busy]=\"ModalDescriptorBusy\"\n (visibleChange)=\"ModalDescriptorVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{theNodeBeingEdited?('AbpUi::Edit' | abpLocalization):('FileExplorer::NewDirectory' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"ModalDescriptorForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"ModalDescriptorForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #ModalFormDescriptorSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'FileExplorer::DirectoryName' | abpLocalization}}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"ModalFormDescriptorSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i3$1.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3$1.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2$1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i8.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i8.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i8.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i8.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i8.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i9.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckBoxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
624
605
|
}
|
|
625
606
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalTreeComponent, decorators: [{
|
|
626
607
|
type: Component,
|
|
627
|
-
args: [{ selector: 'fe-file-modal-tree', template: "<div class=\"card-header p-0 mb-1 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'FileExplorer::MyDirectories' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-light btn-sm ms-2\" (click.stop)=\"addDescriptorBtn()\"><i\n class=\"fas fa-plus-circle\" aria-hidden=\"true\"></i></button>\n</div>\n<nz-tree [nzData]=\"fileGroupList\" class=\"ng-zorro-antd-tree\" nzDraggable nzBlockNode nzShowIcon\n [nzExpandedIcon]=\"multiExpandedIconTpl\" (nzOnDrop)=\"nzEvent($event)\" [nzBeforeDrop]=\"beforeDrop\"\n (nzClick)=\"activeNode($event)\" (nzExpandChange)=\"nzExpandChange($event)\" [nzTreeTemplate]=\"nzTreeTemplate\">\n <ng-template #nzTreeTemplate let-node let-origin=\"origin\">\n <div class=\"custom-node d-inline-block ng-star-inserted dropdown\" [title]=\"node.title\">\n <div #dropdown=\"ngbDropdown\" class=\"d-inline-block\" ngbDropdown placement=\"bottom\" container=\"body\">\n <div class=\"btn-group\" [class.selected]=\"isNodeSelected(node)\">\n <button class=\"btn btn-sm p-0 px-1\">{{ node.title }}</button>\n <button class=\"btn btn-sm p-0\" (click)=\"handleClick($event)\" ngbDropdownToggle\n [class.dropdown-toggle]=\"false\" aria-hidden=\"true\">\n <i class=\"fas fa-caret-down text-muted p-1\"></i>\n </button>\n </div>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click.stop)=\"addDescriptorBtn(node)\">{{'FileExplorer::NewDirectory' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"addDescriptorBtn(node,true)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deleteDescriptorBtn(node)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #multiExpandedIconTpl let-node let-origin=\"origin\">\n <ng-container *ngIf=\"node.children.length > 0\">\n <i [class]=\"node.isExpanded ? 'fas fa-caret-down' : 'fas fa-caret-right'\"></i>\n </ng-container>\n </ng-template>\n</nz-tree>\n\n\n<abp-modal [(visible)]=\"ModalDescriptorOpen\" [busy]=\"ModalDescriptorBusy\"\n (visibleChange)=\"ModalDescriptorVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{theNodeBeingEdited?('AbpUi::Edit' | abpLocalization):('FileExplorer::NewDirectory' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"ModalDescriptorForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"ModalDescriptorForm\"\n (
|
|
608
|
+
args: [{ selector: 'fe-file-modal-tree', template: "<div class=\"card-header p-0 mb-1 d-flex justify-content-between align-items-center\">\n <h6 class=\"h6 mb-0\">{{'FileExplorer::MyDirectories' | abpLocalization}}</h6>\n <button type=\"button\" class=\"btn btn-light btn-sm ms-2\" (click.stop)=\"addDescriptorBtn()\"><i\n class=\"fas fa-plus-circle\" aria-hidden=\"true\"></i></button>\n</div>\n<nz-tree [nzData]=\"fileGroupList\" class=\"ng-zorro-antd-tree\" nzDraggable nzBlockNode nzShowIcon\n [nzExpandedIcon]=\"multiExpandedIconTpl\" (nzOnDrop)=\"nzEvent($event)\" [nzBeforeDrop]=\"beforeDrop\"\n (nzClick)=\"activeNode($event)\" (nzExpandChange)=\"nzExpandChange($event)\" [nzTreeTemplate]=\"nzTreeTemplate\">\n <ng-template #nzTreeTemplate let-node let-origin=\"origin\">\n <div class=\"custom-node d-inline-block ng-star-inserted dropdown\" [title]=\"node.title\">\n <div #dropdown=\"ngbDropdown\" class=\"d-inline-block\" ngbDropdown placement=\"bottom\" container=\"body\">\n <div class=\"btn-group\" [class.selected]=\"isNodeSelected(node)\">\n <button class=\"btn btn-sm p-0 px-1\">{{ node.title }}</button>\n <button class=\"btn btn-sm p-0\" (click)=\"handleClick($event)\" ngbDropdownToggle\n [class.dropdown-toggle]=\"false\" aria-hidden=\"true\">\n <i class=\"fas fa-caret-down text-muted p-1\"></i>\n </button>\n </div>\n <div ngbDropdownMenu>\n <button ngbDropdownItem\n (click.stop)=\"addDescriptorBtn(node)\">{{'FileExplorer::NewDirectory' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"addDescriptorBtn(node,true)\">{{'AbpUi::Edit' | abpLocalization}}</button>\n <button ngbDropdownItem\n (click.stop)=\"deleteDescriptorBtn(node)\">{{'AbpUi::Delete' | abpLocalization}}</button>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #multiExpandedIconTpl let-node let-origin=\"origin\">\n <ng-container *ngIf=\"node.children.length > 0\">\n <i [class]=\"node.isExpanded ? 'fas fa-caret-down' : 'fas fa-caret-right'\"></i>\n </ng-container>\n </ng-template>\n</nz-tree>\n\n\n<abp-modal [(visible)]=\"ModalDescriptorOpen\" [busy]=\"ModalDescriptorBusy\"\n (visibleChange)=\"ModalDescriptorVisibleChange($event)\">\n <ng-template #abpHeader>\n <h3>{{theNodeBeingEdited?('AbpUi::Edit' | abpLocalization):('FileExplorer::NewDirectory' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"ModalDescriptorForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"ModalDescriptorForm\"\n (keydown.enter)=\"$event.preventDefault()\" (submit)=\"createOrEditSave()\">\n <button type=\"submit\" #ModalFormDescriptorSubmit style=\"display: none\"></button>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{'FileExplorer::DirectoryName' | abpLocalization}}</label>\n <input type=\"email\" class=\"form-control\" formControlName=\"name\">\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"ModalFormDescriptorSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>" }]
|
|
628
609
|
}], ctorParameters: () => [{ type: FileDescriptorService }, { type: i1.FormBuilder }, { type: i2$1.ToasterService }, { type: FileApiService }, { type: i3.LocalizationService }], propDecorators: { theSelectedTreeNode: [{
|
|
629
610
|
type: Input
|
|
630
611
|
}], nodeClick: [{
|
|
@@ -638,13 +619,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
638
619
|
|
|
639
620
|
var that;
|
|
640
621
|
class FileModalComponent {
|
|
641
|
-
_FileService;
|
|
642
|
-
toaster;
|
|
643
|
-
list;
|
|
644
|
-
_FileApiService;
|
|
645
|
-
restService;
|
|
646
|
-
confirmation;
|
|
647
|
-
_LocalizationService;
|
|
648
622
|
constructor(_FileService, toaster, list, _FileApiService, restService, confirmation, _LocalizationService) {
|
|
649
623
|
this._FileService = _FileService;
|
|
650
624
|
this.toaster = toaster;
|
|
@@ -653,35 +627,75 @@ class FileModalComponent {
|
|
|
653
627
|
this.restService = restService;
|
|
654
628
|
this.confirmation = confirmation;
|
|
655
629
|
this._LocalizationService = _LocalizationService;
|
|
630
|
+
this._FileDescriptorService = inject(FileDescriptorService$1);
|
|
631
|
+
/**目录的权限名称 */
|
|
632
|
+
this.createDirectoryPermissionName = null;
|
|
633
|
+
/**是否多选 */
|
|
634
|
+
this._multiple = false;
|
|
635
|
+
/**文件大小限制
|
|
636
|
+
* @param 1mb
|
|
637
|
+
*/
|
|
638
|
+
this.sizeLimit = 1048576;
|
|
639
|
+
/**模态框状态回调 */
|
|
640
|
+
this.visibleChange = new EventEmitter();
|
|
641
|
+
/**模态框-状态-是否打开 */
|
|
642
|
+
this.ModalOpen = false;
|
|
643
|
+
/**模态框-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
644
|
+
this.ModalBusy = false;
|
|
645
|
+
/**dignite-file-modal-tree */
|
|
646
|
+
/**选择的tree节点 */
|
|
647
|
+
this._theSelectedTreeNode = '';
|
|
648
|
+
/**图片上传-要上传图片的状态文件列表 */
|
|
649
|
+
this.uploadPictureStatusList = [];
|
|
650
|
+
/**文件表格-数据*/
|
|
651
|
+
this.data = {
|
|
652
|
+
items: [],
|
|
653
|
+
totalCount: 0,
|
|
654
|
+
};
|
|
655
|
+
/**文件表格-条件*/
|
|
656
|
+
this.filters = {};
|
|
657
|
+
/**文件表格-表格自带选择类型 */
|
|
658
|
+
this.SelectionType = SelectionType;
|
|
659
|
+
/**文件表格-选择的表格数据项 */
|
|
660
|
+
this.selectedTable = [];
|
|
661
|
+
/**当前选择的table项 id */
|
|
662
|
+
this.nowSelectId = '';
|
|
663
|
+
/**选择文件回调 */
|
|
664
|
+
this.selectFilefn = new EventEmitter();
|
|
665
|
+
/**一个布尔or函数,可用于检查是否要根据条件选择特定行。 */
|
|
666
|
+
this.selectCheck = (row, column, value) => {
|
|
667
|
+
this.nowSelectId = row.id;
|
|
668
|
+
return true;
|
|
669
|
+
};
|
|
670
|
+
/**判断row是否选中 */
|
|
671
|
+
this.selectedcheckbox = (id) => {
|
|
672
|
+
return this.selectedTable.some(el => el.id == id);
|
|
673
|
+
};
|
|
674
|
+
/**创建图片的接口,代理中的file类型不匹配,切换为any类型 */
|
|
675
|
+
this.createFile = (input, config) => this.restService.request({
|
|
676
|
+
method: 'POST',
|
|
677
|
+
url: '/api/file-explorer/files',
|
|
678
|
+
params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
|
|
679
|
+
body: input.file,
|
|
680
|
+
}, { apiName: 'FileExplorer', ...config });
|
|
656
681
|
that = this;
|
|
657
682
|
}
|
|
658
|
-
_FileDescriptorService = inject(FileDescriptorService$1);
|
|
659
683
|
/**获取目录配置 */
|
|
660
684
|
getFilesConfiguration() {
|
|
661
685
|
this._FileDescriptorService.getFileContainerConfiguration(this._fileContainerName).subscribe(res => {
|
|
662
686
|
this.createDirectoryPermissionName = res.createDirectoryPermissionName;
|
|
663
687
|
});
|
|
664
688
|
}
|
|
665
|
-
/**目录的权限名称 */
|
|
666
|
-
createDirectoryPermissionName = null;
|
|
667
|
-
/**图片容器 */
|
|
668
|
-
_fileContainerName;
|
|
669
689
|
set fileContainerName(v) {
|
|
670
690
|
if (v) {
|
|
671
691
|
this._fileContainerName = v;
|
|
672
692
|
this.loadData();
|
|
673
693
|
}
|
|
674
694
|
}
|
|
675
|
-
/**是否多选 */
|
|
676
|
-
_multiple = false;
|
|
677
695
|
set multiple(v) {
|
|
678
696
|
this._multiple = v;
|
|
679
697
|
if (v) { }
|
|
680
698
|
}
|
|
681
|
-
/**文件大小限制
|
|
682
|
-
* @param 1mb
|
|
683
|
-
*/
|
|
684
|
-
sizeLimit = 1048576;
|
|
685
699
|
set limit(v) {
|
|
686
700
|
this.sizeLimit = v;
|
|
687
701
|
}
|
|
@@ -692,12 +706,6 @@ class FileModalComponent {
|
|
|
692
706
|
this.loadData();
|
|
693
707
|
}
|
|
694
708
|
}
|
|
695
|
-
/**模态框状态回调 */
|
|
696
|
-
visibleChange = new EventEmitter();
|
|
697
|
-
/**模态框-状态-是否打开 */
|
|
698
|
-
ModalOpen = false;
|
|
699
|
-
/**模态框-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
700
|
-
ModalBusy = false;
|
|
701
709
|
/**模态框-状态改变回调 */
|
|
702
710
|
ModalVisibleChange(event) {
|
|
703
711
|
if (!event) {
|
|
@@ -711,9 +719,6 @@ class FileModalComponent {
|
|
|
711
719
|
this.selectFilefn.emit(selectedTablearr);
|
|
712
720
|
this.ModalVisibleChange(false);
|
|
713
721
|
}
|
|
714
|
-
/**dignite-file-modal-tree */
|
|
715
|
-
/**选择的tree节点 */
|
|
716
|
-
_theSelectedTreeNode = '';
|
|
717
722
|
/**初始化数据 */
|
|
718
723
|
loadData() {
|
|
719
724
|
if (this.ModalOpen && this._fileContainerName) {
|
|
@@ -726,8 +731,6 @@ class FileModalComponent {
|
|
|
726
731
|
this._theSelectedTreeNode = event;
|
|
727
732
|
this.list.get();
|
|
728
733
|
}
|
|
729
|
-
/**图片上传-要上传图片的状态文件列表 */
|
|
730
|
-
uploadPictureStatusList = [];
|
|
731
734
|
/**图片上传-获取文件信息改变 */
|
|
732
735
|
async getFileChange(event) {
|
|
733
736
|
let files = new Array(...event.target.files);
|
|
@@ -777,28 +780,11 @@ class FileModalComponent {
|
|
|
777
780
|
});
|
|
778
781
|
});
|
|
779
782
|
}
|
|
780
|
-
/**文件表格-数据*/
|
|
781
|
-
data = {
|
|
782
|
-
items: [],
|
|
783
|
-
totalCount: 0,
|
|
784
|
-
};
|
|
785
|
-
/**文件表格-条件*/
|
|
786
|
-
filters = {};
|
|
787
|
-
/**文件表格-表格自带选择类型 */
|
|
788
|
-
SelectionType = SelectionType;
|
|
789
|
-
/**文件表格-选择的表格数据项 */
|
|
790
|
-
selectedTable = [];
|
|
791
|
-
/**已选定的文件 */
|
|
792
|
-
selectPickerFile;
|
|
793
783
|
ngOnChanges(changes) {
|
|
794
784
|
//Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here.
|
|
795
785
|
//Add '${implements OnChanges}' to the class.
|
|
796
786
|
this.selectedTable = this._FileApiService.deepClone(this.selectPickerFile);
|
|
797
787
|
}
|
|
798
|
-
/**当前选择的table项 id */
|
|
799
|
-
nowSelectId = '';
|
|
800
|
-
/**选择文件回调 */
|
|
801
|
-
selectFilefn = new EventEmitter();
|
|
802
788
|
/**文件表格-获取表格数据 */
|
|
803
789
|
hookToQuery() {
|
|
804
790
|
const getData = (query) => this._FileService.getList({
|
|
@@ -835,15 +821,6 @@ class FileModalComponent {
|
|
|
835
821
|
return false;
|
|
836
822
|
});
|
|
837
823
|
}
|
|
838
|
-
/**一个布尔or函数,可用于检查是否要根据条件选择特定行。 */
|
|
839
|
-
selectCheck = (row, column, value) => {
|
|
840
|
-
this.nowSelectId = row.id;
|
|
841
|
-
return true;
|
|
842
|
-
};
|
|
843
|
-
/**判断row是否选中 */
|
|
844
|
-
selectedcheckbox = (id) => {
|
|
845
|
-
return this.selectedTable.some(el => el.id == id);
|
|
846
|
-
};
|
|
847
824
|
/**删除图片 */
|
|
848
825
|
deleteFile(file) {
|
|
849
826
|
this.confirmation
|
|
@@ -861,22 +838,15 @@ class FileModalComponent {
|
|
|
861
838
|
closeFileStatusModal() {
|
|
862
839
|
this.uploadPictureStatusList = [];
|
|
863
840
|
}
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
method: 'POST',
|
|
867
|
-
url: '/api/file-explorer/files',
|
|
868
|
-
params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
|
|
869
|
-
body: input.file,
|
|
870
|
-
}, { apiName: 'FileExplorer', ...config });
|
|
871
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalComponent, deps: [{ token: FileDescriptorService$1 }, { token: i2$1.ToasterService }, { token: i3.ListService }, { token: FileApiService }, { token: i3.RestService }, { token: i2$1.ConfirmationService }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
872
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileModalComponent, selector: "fe-file-modal", inputs: { fileContainerName: "fileContainerName", multiple: "multiple", limit: "limit", visible: "visible", selectPickerFile: "selectPickerFile" }, outputs: { visibleChange: "visibleChange", selectFilefn: "selectFilefn" }, providers: [
|
|
841
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalComponent, deps: [{ token: FileDescriptorService$1 }, { token: i2$1.ToasterService }, { token: i3.ListService }, { token: FileApiService }, { token: i3.RestService }, { token: i2$1.ConfirmationService }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
842
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileModalComponent, selector: "fe-file-modal", inputs: { fileContainerName: "fileContainerName", multiple: "multiple", limit: "limit", visible: "visible", selectPickerFile: "selectPickerFile" }, outputs: { visibleChange: "visibleChange", selectFilefn: "selectFilefn" }, providers: [
|
|
873
843
|
// [Required]
|
|
874
844
|
ListService,
|
|
875
845
|
// [Optional]
|
|
876
846
|
// Provide this token if you want a different debounce time.
|
|
877
847
|
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
878
848
|
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
879
|
-
], usesOnChanges: true, ngImport: i0, template: "<abp-modal [(visible)]=\"ModalOpen\" (visibleChange)=\"ModalVisibleChange($event)\"\n [options]=\"{ size: 'xl', scrollable: false }\">\n <ng-template #abpHeader>\n <h3>{{'FileExplorer::FileExplorer' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <div class=\"row file-explorer-modal-body file-modal\">\n <div class=\"col-3\" *ngIf=\"createDirectoryPermissionName\" style=\"overflow: auto; height: calc(100vh - 240px)\">\n <fe-file-modal-tree [theSelectedTreeNode]=\"_theSelectedTreeNode\" (nodeClick)=\"_nodeClick($event)\"\n [fileContainerName]=\"_fileContainerName\"></fe-file-modal-tree>\n </div>\n <div [class]=\"createDirectoryPermissionName?'col-9':'col-12'\" style=\"height: calc(100vh - 240px)\">\n <div class=\"mb-2 d-flex justify-content-between align-items-center\">\n <div class=\"btn-link\" role=button style=\"flex: 2\" (click)=\"lookAllFile()\">{{'FileExplorer::AllFiles' | abpLocalization}}</div>\n <div class=\"input-group form-file\" style=\"flex: 2\">\n <input type=\"file\" class=\"form-control\" #fileEdit [multiple]=\"_multiple\" \n (change)=\"getFileChange($event)\" />\n <!-- accept=\".jpg,.jpeg,.png,.gif,.webp\" -->\n </div>\n </div>\n <div>\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\" columnMode=\"flex\"\n [columns]=\"columns\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [scrollbarV]=\"true\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [selected]=\"selectedTable\"\n [selectCheck]=\"selectCheck\" [selectionType]=\"_multiple?SelectionType.multiClick:SelectionType.single\" (select)=\"onSelectTableItem($event)\">\n <ngx-datatable-column [width]=\"50\" prop=\"id\" [sortable]=\"false\" [canAutoResize]=\"false\" [draggable]=\"false\"\n [resizeable]=\"false\">\n <ng-template ngx-datatable-header-template let-value=\"value\" let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\">\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"allRowsSelected\"\n (change)=\"selectFn(!allRowsSelected)\" />\n </ng-template>\n <ng-template ngx-datatable-cell-template let-row=\"row\" let-value=\"value\" let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\">\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"selectedcheckbox(value)\"\n (change)=\"onCheckboxChangeFn($event)\" />\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [flexGrow]=\"2\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <fe-file-preview [width]=\"'80px'\" [src]=\"row.url\" [name]=\"row.name\" [type]=\"row.mimeType\" [preview]=\"true\"></fe-file-preview>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::FileName' | abpLocalization\" prop=\"name\" [flexGrow]=\"4\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::FileSize' | abpLocalization\" prop=\"size\" [flexGrow]=\"1.5\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ _FileApiService.formatFileSize(value) }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::Directory' | abpLocalization\" prop=\"cellName\" [flexGrow]=\"1\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::CreationTime' | abpLocalization\" prop=\"creationTime\" [flexGrow]=\"2\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'YYYY/MM/dd HH:mm:s' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [flexGrow]=\"1\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteFile(row)\">\n <i class=\"fas fa-trash text-primary p-2\"></i>\n </button>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n <div *ngIf=\"uploadPictureStatusList.length > 0\"\n class=\"position-fixed bottom-0 end-0 shadow-lg file-status-modal m-5\"\n style=\"border-radius: 10px\">\n <div class=\"card p-1\">\n <div class=\"card-header d-flex align-items-center justify-content-between p-0 py-1 border-bottom\">\n <div>{{'FileExplorer::UploadFiles' | abpLocalization}}</div>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click.stop)=\"closeFileStatusModal()\"></button>\n </div>\n <div class=\"card-body\">\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of uploadPictureStatusList; let i = index\">\n <tr>\n <th scope=\"row\">\n <div>{{ item.name }}</div>\n <div class=\"form-text text-danger\" *ngIf=\"item.size > sizeLimit\">\n {{'FileExplorer::ExceedsMaximumSize' | abpLocalization:_FileApiService.formatFileSize(sizeLimit)}}\n </div>\n </th>\n <td>{{ item.fileSize }}</td>\n <td>\n <i *ngIf=\"item.status === 1\" class=\"fas fa-check text-primary\"></i>\n <i *ngIf=\"item.status === 2\" class=\"fas fa-times-circle text-danger\"></i>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"modalSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .file-modal .container-height{height:calc(100vh - 284px)}::ng-deep .file-modal .file-status-modal{background:#fff}::ng-deep .file-modal .file-status-modal .card-body{max-height:300px;overflow-y:auto}::ng-deep .file-modal .ngx-datatable.material.single-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.single-selection .datatable-body-row.active .datatable-row-group,::ng-deep .file-modal .ngx-datatable.material.multi-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.multi-selection .datatable-body-row.active .datatable-row-group,::ng-deep .file-modal .ngx-datatable.material.multi-click-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.multi-click-selection .datatable-body-row.active .datatable-row-group{background-color:transparent!important}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper{padding:0}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .custom-node{width:100%}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .selected{background-color:var(--lpx-brand)!important}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .selected .btn{color:var(--lpx-navbar-color)}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}::ng-deep .file-modal .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell,::ng-deep .file-modal .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell{overflow:initial;line-break:anywhere}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i2$1.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2$1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: FileModalTreeComponent, selector: "fe-file-modal-tree", inputs: ["theSelectedTreeNode", "fileContainerName"], outputs: ["nodeClick"] }, { kind: "component", type: FilePreviewComponent, selector: "fe-file-preview", inputs: ["width", "src", "preview", "type", "name"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
|
|
849
|
+
], usesOnChanges: true, ngImport: i0, template: "<abp-modal [(visible)]=\"ModalOpen\" (visibleChange)=\"ModalVisibleChange($event)\"\n [options]=\"{ size: 'xl', scrollable: false }\">\n <ng-template #abpHeader>\n <h3>{{'FileExplorer::FileExplorer' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <div class=\"row file-explorer-modal-body file-modal\">\n <div class=\"col-3\" *ngIf=\"createDirectoryPermissionName\" style=\"overflow: auto; height: calc(100vh - 240px)\">\n <fe-file-modal-tree [theSelectedTreeNode]=\"_theSelectedTreeNode\" (nodeClick)=\"_nodeClick($event)\"\n [fileContainerName]=\"_fileContainerName\"></fe-file-modal-tree>\n </div>\n <div [class]=\"createDirectoryPermissionName?'col-9':'col-12'\" style=\"height: calc(100vh - 240px)\">\n <div class=\"mb-2 d-flex justify-content-between align-items-center\">\n <div class=\"btn-link\" role=button style=\"flex: 2\" (click)=\"lookAllFile()\">{{'FileExplorer::AllFiles' | abpLocalization}}</div>\n <div class=\"input-group form-file\" style=\"flex: 2\">\n <input type=\"file\" class=\"form-control\" #fileEdit [multiple]=\"_multiple\" \n (change)=\"getFileChange($event)\" />\n </div>\n </div>\n <div>\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\" columnMode=\"flex\"\n [columns]=\"columns\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [scrollbarV]=\"true\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [selected]=\"selectedTable\"\n [selectCheck]=\"selectCheck\" [selectionType]=\"_multiple?SelectionType.multiClick:SelectionType.single\" (select)=\"onSelectTableItem($event)\">\n <ngx-datatable-column [width]=\"50\" prop=\"id\" [sortable]=\"false\" [canAutoResize]=\"false\" [draggable]=\"false\"\n [resizeable]=\"false\">\n <ng-template ngx-datatable-header-template let-value=\"value\" let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\">\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"allRowsSelected\"\n (change)=\"selectFn(!allRowsSelected)\" />\n </ng-template>\n <ng-template ngx-datatable-cell-template let-row=\"row\" let-value=\"value\" let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\">\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"selectedcheckbox(value)\"\n (change)=\"onCheckboxChangeFn($event)\" />\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [flexGrow]=\"2\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <fe-file-preview [width]=\"'80px'\" [src]=\"row.url\" [name]=\"row.name\" [type]=\"row.mimeType\" [preview]=\"true\"></fe-file-preview>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::FileName' | abpLocalization\" prop=\"name\" [flexGrow]=\"4\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::FileSize' | abpLocalization\" prop=\"size\" [flexGrow]=\"1.5\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ _FileApiService.formatFileSize(value) }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::Directory' | abpLocalization\" prop=\"cellName\" [flexGrow]=\"1\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::CreationTime' | abpLocalization\" prop=\"creationTime\" [flexGrow]=\"2\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'YYYY/MM/dd HH:mm:s' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [flexGrow]=\"1\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteFile(row)\">\n <i class=\"fas fa-trash text-primary p-2\"></i>\n </button>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n <div *ngIf=\"uploadPictureStatusList.length > 0\"\n class=\"position-fixed bottom-0 end-0 shadow-lg file-status-modal m-5\"\n style=\"border-radius: 10px\">\n <div class=\"card p-1\">\n <div class=\"card-header d-flex align-items-center justify-content-between p-0 py-1 border-bottom\">\n <div>{{'FileExplorer::UploadFiles' | abpLocalization}}</div>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click.stop)=\"closeFileStatusModal()\"></button>\n </div>\n <div class=\"card-body\">\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of uploadPictureStatusList; let i = index\">\n <tr>\n <th scope=\"row\">\n <div>{{ item.name }}</div>\n <div class=\"form-text text-danger\" *ngIf=\"item.size > sizeLimit\">\n {{'FileExplorer::ExceedsMaximumSize' | abpLocalization:_FileApiService.formatFileSize(sizeLimit)}}\n </div>\n </th>\n <td>{{ item.fileSize }}</td>\n <td>\n <i *ngIf=\"item.status === 1\" class=\"fas fa-check text-primary\"></i>\n <i *ngIf=\"item.status === 2\" class=\"fas fa-times-circle text-danger\"></i>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"modalSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .file-modal .container-height{height:calc(100vh - 284px)}::ng-deep .file-modal .file-status-modal{background:#fff}::ng-deep .file-modal .file-status-modal .card-body{max-height:300px;overflow-y:auto}::ng-deep .file-modal .ngx-datatable.material.single-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.single-selection .datatable-body-row.active .datatable-row-group,::ng-deep .file-modal .ngx-datatable.material.multi-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.multi-selection .datatable-body-row.active .datatable-row-group,::ng-deep .file-modal .ngx-datatable.material.multi-click-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.multi-click-selection .datatable-body-row.active .datatable-row-group{background-color:transparent!important}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper{padding:0}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .custom-node{width:100%}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .selected{background-color:var(--lpx-brand)!important}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .selected .btn{color:var(--lpx-navbar-color)}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}::ng-deep .file-modal .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell,::ng-deep .file-modal .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell{overflow:initial;line-break:anywhere}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i2$1.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i2$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i2$1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: FileModalTreeComponent, selector: "fe-file-modal-tree", inputs: ["theSelectedTreeNode", "fileContainerName"], outputs: ["nodeClick"] }, { kind: "component", type: FilePreviewComponent, selector: "fe-file-preview", inputs: ["width", "src", "preview", "type", "name"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
880
850
|
}
|
|
881
851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalComponent, decorators: [{
|
|
882
852
|
type: Component,
|
|
@@ -887,7 +857,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
887
857
|
// Provide this token if you want a different debounce time.
|
|
888
858
|
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
889
859
|
{ provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
|
|
890
|
-
], template: "<abp-modal [(visible)]=\"ModalOpen\" (visibleChange)=\"ModalVisibleChange($event)\"\n [options]=\"{ size: 'xl', scrollable: false }\">\n <ng-template #abpHeader>\n <h3>{{'FileExplorer::FileExplorer' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <div class=\"row file-explorer-modal-body file-modal\">\n <div class=\"col-3\" *ngIf=\"createDirectoryPermissionName\" style=\"overflow: auto; height: calc(100vh - 240px)\">\n <fe-file-modal-tree [theSelectedTreeNode]=\"_theSelectedTreeNode\" (nodeClick)=\"_nodeClick($event)\"\n [fileContainerName]=\"_fileContainerName\"></fe-file-modal-tree>\n </div>\n <div [class]=\"createDirectoryPermissionName?'col-9':'col-12'\" style=\"height: calc(100vh - 240px)\">\n <div class=\"mb-2 d-flex justify-content-between align-items-center\">\n <div class=\"btn-link\" role=button style=\"flex: 2\" (click)=\"lookAllFile()\">{{'FileExplorer::AllFiles' | abpLocalization}}</div>\n <div class=\"input-group form-file\" style=\"flex: 2\">\n <input type=\"file\" class=\"form-control\" #fileEdit [multiple]=\"_multiple\" \n (change)=\"getFileChange($event)\" />\n
|
|
860
|
+
], template: "<abp-modal [(visible)]=\"ModalOpen\" (visibleChange)=\"ModalVisibleChange($event)\"\n [options]=\"{ size: 'xl', scrollable: false }\">\n <ng-template #abpHeader>\n <h3>{{'FileExplorer::FileExplorer' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <div class=\"row file-explorer-modal-body file-modal\">\n <div class=\"col-3\" *ngIf=\"createDirectoryPermissionName\" style=\"overflow: auto; height: calc(100vh - 240px)\">\n <fe-file-modal-tree [theSelectedTreeNode]=\"_theSelectedTreeNode\" (nodeClick)=\"_nodeClick($event)\"\n [fileContainerName]=\"_fileContainerName\"></fe-file-modal-tree>\n </div>\n <div [class]=\"createDirectoryPermissionName?'col-9':'col-12'\" style=\"height: calc(100vh - 240px)\">\n <div class=\"mb-2 d-flex justify-content-between align-items-center\">\n <div class=\"btn-link\" role=button style=\"flex: 2\" (click)=\"lookAllFile()\">{{'FileExplorer::AllFiles' | abpLocalization}}</div>\n <div class=\"input-group form-file\" style=\"flex: 2\">\n <input type=\"file\" class=\"form-control\" #fileEdit [multiple]=\"_multiple\" \n (change)=\"getFileChange($event)\" />\n </div>\n </div>\n <div>\n <ngx-datatable class=\"material container-height\" [rows]=\"data.items\" [list]=\"list\" columnMode=\"flex\"\n [columns]=\"columns\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [scrollbarV]=\"true\"\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [selected]=\"selectedTable\"\n [selectCheck]=\"selectCheck\" [selectionType]=\"_multiple?SelectionType.multiClick:SelectionType.single\" (select)=\"onSelectTableItem($event)\">\n <ngx-datatable-column [width]=\"50\" prop=\"id\" [sortable]=\"false\" [canAutoResize]=\"false\" [draggable]=\"false\"\n [resizeable]=\"false\">\n <ng-template ngx-datatable-header-template let-value=\"value\" let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\">\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"allRowsSelected\"\n (change)=\"selectFn(!allRowsSelected)\" />\n </ng-template>\n <ng-template ngx-datatable-cell-template let-row=\"row\" let-value=\"value\" let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\">\n <input type=\"checkbox\" class=\"form-check-input\" [checked]=\"selectedcheckbox(value)\"\n (change)=\"onCheckboxChangeFn($event)\" />\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [flexGrow]=\"2\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <fe-file-preview [width]=\"'80px'\" [src]=\"row.url\" [name]=\"row.name\" [type]=\"row.mimeType\" [preview]=\"true\"></fe-file-preview>\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::FileName' | abpLocalization\" prop=\"name\" [flexGrow]=\"4\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::FileSize' | abpLocalization\" prop=\"size\" [flexGrow]=\"1.5\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ _FileApiService.formatFileSize(value) }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::Directory' | abpLocalization\" prop=\"cellName\" [flexGrow]=\"1\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [name]=\"'FileExplorer::CreationTime' | abpLocalization\" prop=\"creationTime\" [flexGrow]=\"2\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n {{ value | date : 'YYYY/MM/dd HH:mm:s' }}\n </ng-template>\n </ngx-datatable-column>\n <ngx-datatable-column [flexGrow]=\"1\">\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n <button class=\"btn btn-sm btn-light p-0\" (click.stop)=\"deleteFile(row)\">\n <i class=\"fas fa-trash text-primary p-2\"></i>\n </button>\n </ng-template>\n </ngx-datatable-column>\n </ngx-datatable>\n </div>\n <div *ngIf=\"uploadPictureStatusList.length > 0\"\n class=\"position-fixed bottom-0 end-0 shadow-lg file-status-modal m-5\"\n style=\"border-radius: 10px\">\n <div class=\"card p-1\">\n <div class=\"card-header d-flex align-items-center justify-content-between p-0 py-1 border-bottom\">\n <div>{{'FileExplorer::UploadFiles' | abpLocalization}}</div>\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click.stop)=\"closeFileStatusModal()\"></button>\n </div>\n <div class=\"card-body\">\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of uploadPictureStatusList; let i = index\">\n <tr>\n <th scope=\"row\">\n <div>{{ item.name }}</div>\n <div class=\"form-text text-danger\" *ngIf=\"item.size > sizeLimit\">\n {{'FileExplorer::ExceedsMaximumSize' | abpLocalization:_FileApiService.formatFileSize(sizeLimit)}}\n </div>\n </th>\n <td>{{ item.fileSize }}</td>\n <td>\n <i *ngIf=\"item.status === 1\" class=\"fas fa-check text-primary\"></i>\n <i *ngIf=\"item.status === 2\" class=\"fas fa-times-circle text-danger\"></i>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"modalSave()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .file-modal .container-height{height:calc(100vh - 284px)}::ng-deep .file-modal .file-status-modal{background:#fff}::ng-deep .file-modal .file-status-modal .card-body{max-height:300px;overflow-y:auto}::ng-deep .file-modal .ngx-datatable.material.single-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.single-selection .datatable-body-row.active .datatable-row-group,::ng-deep .file-modal .ngx-datatable.material.multi-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.multi-selection .datatable-body-row.active .datatable-row-group,::ng-deep .file-modal .ngx-datatable.material.multi-click-selection .datatable-body-row.active,::ng-deep .file-modal .ngx-datatable.material.multi-click-selection .datatable-body-row.active .datatable-row-group{background-color:transparent!important}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper{padding:0}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .custom-node{width:100%}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .selected{background-color:var(--lpx-brand)!important}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper .selected .btn{color:var(--lpx-navbar-color)}::ng-deep .file-modal .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}::ng-deep .file-modal .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell,::ng-deep .file-modal .ngx-datatable.material .datatable-body .datatable-body-row .datatable-body-cell{overflow:initial;line-break:anywhere}\n"] }]
|
|
891
861
|
}], ctorParameters: () => [{ type: FileDescriptorService$1 }, { type: i2$1.ToasterService }, { type: i3.ListService }, { type: FileApiService }, { type: i3.RestService }, { type: i2$1.ConfirmationService }, { type: i3.LocalizationService }], propDecorators: { fileContainerName: [{
|
|
892
862
|
type: Input
|
|
893
863
|
}], multiple: [{
|
|
@@ -904,31 +874,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
904
874
|
type: Output
|
|
905
875
|
}] } });
|
|
906
876
|
|
|
877
|
+
/* eslint-disable @angular-eslint/component-selector */
|
|
907
878
|
class FilePickerComponent {
|
|
908
|
-
_FileApiService;
|
|
909
879
|
constructor(_FileApiService) {
|
|
910
880
|
this._FileApiService = _FileApiService;
|
|
881
|
+
/**是否多选 */
|
|
882
|
+
this._multiple = false;
|
|
883
|
+
/**图片容器 */
|
|
884
|
+
this._fileContainerName = 'Images';
|
|
885
|
+
this.selectedFileChange = new EventEmitter();
|
|
886
|
+
this._fileShowTable = [];
|
|
887
|
+
/**模态框-状态-是否打开 */
|
|
888
|
+
this.ModalOpen = false;
|
|
911
889
|
}
|
|
912
|
-
/**是否多选 */
|
|
913
|
-
_multiple = false;
|
|
914
890
|
set multiple(v) {
|
|
915
891
|
this._multiple = v;
|
|
916
892
|
}
|
|
917
|
-
/**图片容器 */
|
|
918
|
-
_fileContainerName = 'images';
|
|
919
893
|
set fileContainerName(v) {
|
|
920
894
|
this._fileContainerName = v;
|
|
921
895
|
}
|
|
922
|
-
/**已选定的文件 */
|
|
923
|
-
selectFormFile;
|
|
924
896
|
ngOnChanges(changes) {
|
|
925
897
|
let selectFormFilengOnChanges = changes.selectFormFile['currentValue'];
|
|
926
898
|
if (selectFormFilengOnChanges.length > 0) {
|
|
927
899
|
this._fileShowTable = selectFormFilengOnChanges;
|
|
928
900
|
}
|
|
929
901
|
}
|
|
930
|
-
selectedFileChange = new EventEmitter();
|
|
931
|
-
_fileShowTable = [];
|
|
932
902
|
/**表格选择的文件回调 */
|
|
933
903
|
_selectFilefn(event) {
|
|
934
904
|
let _fileShowTable = this._FileApiService.deepClone(event);
|
|
@@ -936,8 +906,6 @@ class FilePickerComponent {
|
|
|
936
906
|
this.selectFormFile = _fileShowTable;
|
|
937
907
|
this.selectedFileChange.emit(_fileShowTable);
|
|
938
908
|
}
|
|
939
|
-
/**模态框-状态-是否打开 */
|
|
940
|
-
ModalOpen = false;
|
|
941
909
|
/**删除文件表格项 */
|
|
942
910
|
deleteFileTableItem(i, file) {
|
|
943
911
|
this._fileShowTable.splice(i, 1);
|
|
@@ -945,8 +913,8 @@ class FilePickerComponent {
|
|
|
945
913
|
this.selectedFileChange.emit([]);
|
|
946
914
|
this.selectedFileChange.emit(this.selectFormFile);
|
|
947
915
|
}
|
|
948
|
-
static
|
|
949
|
-
static
|
|
916
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, deps: [{ token: FileApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
917
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FilePickerComponent, selector: "fe-file-picker", inputs: { multiple: "multiple", fileContainerName: "fileContainerName", selectFormFile: "selectFormFile" }, outputs: { selectedFileChange: "selectedFileChange" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"btn btn-sm btn-primary ms-2 float-end\" type=\"button\" (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" [multiple]=\"_multiple\" (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">{{'FileExplorer::FileName' | abpLocalization}}</th>\n <th scope=\"col\">{{'FileExplorer::FileSize' | abpLocalization}}</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let item of _fileShowTable;let i =index\">\n <tr>\n <td>\n <fe-file-preview [width]=\"'80px'\" [src]=\"item.url||item.Url\" [name]=\"item.name||item.Name\" [type]=\"item.mimeType||item.MimeType\" [preview]=\"true\"></fe-file-preview>\n </td>\n <th scope=\"row\">\n <div>{{item.name||item.Name}}</div>\n </th>\n <td >{{_FileApiService.formatFileSize(item.Size||item.size)}}</td>\n <td>\n <button class=\"btn btn-sm p-0 btn-light \" (click.stop)=\"deleteFileTableItem(i,item)\">\n <i class=\"fas fa-trash p-2\"></i>\n </button>\n </td>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "component", type: FileModalComponent, selector: "fe-file-modal", inputs: ["fileContainerName", "multiple", "limit", "visible", "selectPickerFile"], outputs: ["visibleChange", "selectFilefn"] }, { kind: "component", type: FilePreviewComponent, selector: "fe-file-preview", inputs: ["width", "src", "preview", "type", "name"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
950
918
|
}
|
|
951
919
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
952
920
|
type: Component,
|
|
@@ -962,28 +930,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
962
930
|
}] } });
|
|
963
931
|
|
|
964
932
|
class FileDomeComponent {
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
fileDataToBeSubmitted;
|
|
973
|
-
FileApiService = inject(FileApiService);
|
|
933
|
+
constructor() {
|
|
934
|
+
/**跟随表单提交--已提交的数据,或选择的数据源 */
|
|
935
|
+
this.fileSubmittedData = [];
|
|
936
|
+
this.FileApiService = inject(FileApiService);
|
|
937
|
+
/**选择文件-弹窗的-已选定的文件 */
|
|
938
|
+
this.selectedFileGroup = [];
|
|
939
|
+
}
|
|
974
940
|
/**跟随表单提交--数据发生改变回调 */
|
|
975
941
|
fileDataChange(event) {
|
|
976
|
-
console.log(event, '跟随表单提交--数据发生改变回调', this.FileApiService.deepClone(event));
|
|
977
942
|
this.fileDataToBeSubmitted = event;
|
|
978
943
|
}
|
|
979
|
-
/**选择文件-弹窗的-已选定的文件 */
|
|
980
|
-
selectedFileGroup = [];
|
|
981
944
|
/**_selectedFile改变回调 */
|
|
982
945
|
_selectedFileChange(event) {
|
|
983
946
|
this.selectedFileGroup = event;
|
|
984
947
|
}
|
|
985
|
-
static
|
|
986
|
-
static
|
|
948
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
949
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileDomeComponent, selector: "fe-file-dome", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"card\">\r\n <div class=\"card-header py-2 border-bottom\">Send file stream with form</div>\r\n <div class=\"card-body\">\r\n <fe-file-edit [(fileData)]=\"fileSubmittedData\" (fileDataChange)=\"fileDataChange($event)\"></fe-file-edit>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col\">\r\n <div class=\"card\">\r\n <div class=\"card-header py-2 border-bottom\">Send file stream with form</div>\r\n <div class=\"card-body\">\r\n <fe-file-picker [selectFormFile]=\"selectedFileGroup\" fileContainerName=\"SampleContainer\" (selectedFileChange)=\"_selectedFileChange($event)\" ></fe-file-picker>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: FileEditComponent, selector: "fe-file-edit", inputs: ["multiple", "fileData", "limit"], outputs: ["fileDataChange"] }, { kind: "component", type: FilePickerComponent, selector: "fe-file-picker", inputs: ["multiple", "fileContainerName", "selectFormFile"], outputs: ["selectedFileChange"] }] }); }
|
|
987
950
|
}
|
|
988
951
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDomeComponent, decorators: [{
|
|
989
952
|
type: Component,
|
|
@@ -997,9 +960,9 @@ const routes = [
|
|
|
997
960
|
},
|
|
998
961
|
];
|
|
999
962
|
class FileExplorerRoutingModule {
|
|
1000
|
-
static
|
|
1001
|
-
static
|
|
1002
|
-
static
|
|
963
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
964
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
965
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
1003
966
|
}
|
|
1004
967
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, decorators: [{
|
|
1005
968
|
type: NgModule,
|
|
@@ -1010,11 +973,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1010
973
|
}] });
|
|
1011
974
|
|
|
1012
975
|
class FileExplorerConfig {
|
|
1013
|
-
/**文件容器名称 */
|
|
1014
|
-
'FileExplorer.FileContainerName' = ['', [Validators.required]];
|
|
1015
|
-
/**多选 */
|
|
1016
|
-
'FileExplorer.UploadFileMultiple' = [false, []];
|
|
1017
976
|
constructor(data) {
|
|
977
|
+
/**文件容器名称 */
|
|
978
|
+
this['FileExplorer.FileContainerName'] = ['', [Validators.required]];
|
|
979
|
+
/**多选 */
|
|
980
|
+
this['FileExplorer.UploadFileMultiple'] = [false, []];
|
|
1018
981
|
if (data) {
|
|
1019
982
|
for (const key in data) {
|
|
1020
983
|
if (data.hasOwnProperty(key)) {
|
|
@@ -1026,24 +989,17 @@ class FileExplorerConfig {
|
|
|
1026
989
|
}
|
|
1027
990
|
|
|
1028
991
|
class FileExplorerConfigComponent {
|
|
1029
|
-
fb;
|
|
1030
992
|
constructor(fb) {
|
|
1031
993
|
this.fb = fb;
|
|
1032
994
|
}
|
|
1033
|
-
/**表单控件类型 */
|
|
1034
|
-
_type;
|
|
1035
995
|
set type(v) {
|
|
1036
996
|
this._type = v;
|
|
1037
997
|
this.dataLoaded();
|
|
1038
998
|
}
|
|
1039
|
-
/**表单实体 */
|
|
1040
|
-
_Entity;
|
|
1041
999
|
set Entity(v) {
|
|
1042
1000
|
this._Entity = v;
|
|
1043
1001
|
this.dataLoaded();
|
|
1044
1002
|
}
|
|
1045
|
-
/**选择的表单信息 */
|
|
1046
|
-
_selected;
|
|
1047
1003
|
set selected(v) {
|
|
1048
1004
|
this._selected = v;
|
|
1049
1005
|
this.dataLoaded();
|
|
@@ -1051,7 +1007,6 @@ class FileExplorerConfigComponent {
|
|
|
1051
1007
|
get formConfiguration() {
|
|
1052
1008
|
return this._Entity.get('formConfiguration');
|
|
1053
1009
|
}
|
|
1054
|
-
submitclick;
|
|
1055
1010
|
async dataLoaded() {
|
|
1056
1011
|
if (this._Entity && this._type) {
|
|
1057
1012
|
await this.AfterInit();
|
|
@@ -1069,8 +1024,8 @@ class FileExplorerConfigComponent {
|
|
|
1069
1024
|
resolve(true);
|
|
1070
1025
|
});
|
|
1071
1026
|
}
|
|
1072
|
-
static
|
|
1073
|
-
static
|
|
1027
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerConfigComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1028
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileExplorerConfigComponent, selector: "fe-file-explorer-config", inputs: { type: "type", Entity: "Entity", selected: "selected" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpDynamicFormsFileExplorer::FileContainerName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"FileExplorer.FileContainerName\">\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" formControlName=\"FileExplorer.UploadFileMultiple\" id=\"flexRadioDefault1\">\n <label class=\"form-check-label\" for=\"flexRadioDefault1\">\n {{'DigniteAbpDynamicFormsFileExplorer::UploadFileMultiple' | abpLocalization}}\n </label>\n </div>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i3$1.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3$1.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
|
|
1074
1029
|
}
|
|
1075
1030
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerConfigComponent, decorators: [{
|
|
1076
1031
|
type: Component,
|
|
@@ -1087,39 +1042,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1087
1042
|
}] } });
|
|
1088
1043
|
|
|
1089
1044
|
class FileExplorerControlComponent {
|
|
1090
|
-
fb;
|
|
1091
1045
|
constructor(fb) {
|
|
1092
1046
|
this.fb = fb;
|
|
1047
|
+
/**字段配置列表 */
|
|
1048
|
+
this._fields = '';
|
|
1049
|
+
/**字段配置 */
|
|
1050
|
+
this.formConfiguration = '';
|
|
1051
|
+
/**文件容器名称 */
|
|
1052
|
+
this.FileContainerName = '';
|
|
1053
|
+
/**选择文件-弹窗的-已选定的文件 */
|
|
1054
|
+
this.selectedFileGroup = [];
|
|
1093
1055
|
}
|
|
1094
|
-
/**表单实体 */
|
|
1095
|
-
_entity;
|
|
1096
1056
|
set entity(v) {
|
|
1097
1057
|
this._entity = v;
|
|
1098
1058
|
if (v)
|
|
1099
1059
|
this.dataLoaded();
|
|
1100
1060
|
}
|
|
1101
|
-
/**字段配置列表 */
|
|
1102
|
-
_fields = '';
|
|
1103
1061
|
set fields(v) {
|
|
1104
1062
|
this._fields = v;
|
|
1105
1063
|
if (v)
|
|
1106
1064
|
this.dataLoaded();
|
|
1107
1065
|
}
|
|
1108
|
-
/**父级字段名称,用于为表单设置控件赋值 */
|
|
1109
|
-
_parentFiledName;
|
|
1110
1066
|
set parentFiledName(v) {
|
|
1111
1067
|
this._parentFiledName = v;
|
|
1112
1068
|
if (v)
|
|
1113
1069
|
this.dataLoaded();
|
|
1114
1070
|
}
|
|
1115
|
-
/**父级字段名称,用于为表单设置控件赋值 */
|
|
1116
|
-
_selected;
|
|
1117
1071
|
set selected(v) {
|
|
1118
1072
|
this._selected = v;
|
|
1119
1073
|
if (v && v.length > 0)
|
|
1120
1074
|
this.dataLoaded();
|
|
1121
1075
|
}
|
|
1122
|
-
submitclick;
|
|
1123
1076
|
get extraProperties() {
|
|
1124
1077
|
return this._entity.get('extraProperties');
|
|
1125
1078
|
}
|
|
@@ -1130,10 +1083,6 @@ class FileExplorerControlComponent {
|
|
|
1130
1083
|
this.submitclick.nativeElement.click();
|
|
1131
1084
|
}
|
|
1132
1085
|
}
|
|
1133
|
-
/**字段配置 */
|
|
1134
|
-
formConfiguration = '';
|
|
1135
|
-
/**文件容器名称 */
|
|
1136
|
-
FileContainerName = '';
|
|
1137
1086
|
AfterInit() {
|
|
1138
1087
|
return new Promise((resolve, rejects) => {
|
|
1139
1088
|
let ValidatorsArray = [];
|
|
@@ -1150,8 +1099,6 @@ class FileExplorerControlComponent {
|
|
|
1150
1099
|
resolve(true);
|
|
1151
1100
|
});
|
|
1152
1101
|
}
|
|
1153
|
-
/**选择文件-弹窗的-已选定的文件 */
|
|
1154
|
-
selectedFileGroup = [];
|
|
1155
1102
|
/**_selectedFile改变回调 */
|
|
1156
1103
|
_selectedFileChange(event) {
|
|
1157
1104
|
this.selectedFileGroup = event;
|
|
@@ -1160,8 +1107,8 @@ class FileExplorerControlComponent {
|
|
|
1160
1107
|
obj[fieldName] = event;
|
|
1161
1108
|
this.extraProperties.patchValue(obj);
|
|
1162
1109
|
}
|
|
1163
|
-
static
|
|
1164
|
-
static
|
|
1110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerControlComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1111
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: FileExplorerControlComponent, selector: "fe-file-explorer-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <fe-file-picker [selectFormFile]=\"selectedFileGroup\" [multiple]=\"formConfiguration['FileExplorer.UploadFileMultiple']\"\n (selectedFileChange)=\"_selectedFileChange($event)\" [fileContainerName]=\"FileContainerName\"></fe-file-picker>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3$1.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: FilePickerComponent, selector: "fe-file-picker", inputs: ["multiple", "fileContainerName", "selectFormFile"], outputs: ["selectedFileChange"] }] }); }
|
|
1165
1112
|
}
|
|
1166
1113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerControlComponent, decorators: [{
|
|
1167
1114
|
type: Component,
|
|
@@ -1200,8 +1147,8 @@ function AddFieldControlGroup(array = []) {
|
|
|
1200
1147
|
}
|
|
1201
1148
|
|
|
1202
1149
|
class FileExplorerModule {
|
|
1203
|
-
static
|
|
1204
|
-
static
|
|
1150
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1151
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, declarations: [FileEditComponent,
|
|
1205
1152
|
FilePickerComponent,
|
|
1206
1153
|
FileModalComponent,
|
|
1207
1154
|
FileModalTreeComponent,
|
|
@@ -1220,15 +1167,15 @@ class FileExplorerModule {
|
|
|
1220
1167
|
FileModalComponent,
|
|
1221
1168
|
FileModalTreeComponent,
|
|
1222
1169
|
FileDomeComponent,
|
|
1223
|
-
FilePreviewComponent] });
|
|
1224
|
-
static
|
|
1170
|
+
FilePreviewComponent] }); }
|
|
1171
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, imports: [FormsModule,
|
|
1225
1172
|
CoreModule,
|
|
1226
1173
|
ThemeSharedModule,
|
|
1227
1174
|
ReactiveFormsModule,
|
|
1228
1175
|
NgbDropdownModule,
|
|
1229
1176
|
NzTreeModule,
|
|
1230
1177
|
NgxValidateCoreModule,
|
|
1231
|
-
FileExplorerRoutingModule] });
|
|
1178
|
+
FileExplorerRoutingModule] }); }
|
|
1232
1179
|
}
|
|
1233
1180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, decorators: [{
|
|
1234
1181
|
type: NgModule,
|