@dignite-ng/expand.file-explorer 0.0.22 → 0.0.28
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 +57 -68
- package/esm2022/lib/components/file-modal-tree/file-modal-tree.component.mjs +23 -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 +240 -292
- 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,
|
|
@@ -459,46 +451,47 @@ var index$d = /*#__PURE__*/Object.freeze({
|
|
|
459
451
|
FileDescriptorService: FileDescriptorService
|
|
460
452
|
});
|
|
461
453
|
|
|
454
|
+
/* eslint-disable @angular-eslint/component-selector */
|
|
462
455
|
var that$1;
|
|
463
456
|
class FileModalTreeComponent {
|
|
464
|
-
_DescriptorService;
|
|
465
|
-
fb;
|
|
466
|
-
toaster;
|
|
467
|
-
_FileApiService;
|
|
468
|
-
_LocalizationService;
|
|
469
457
|
constructor(_DescriptorService, fb, toaster, _FileApiService, _LocalizationService) {
|
|
470
458
|
this._DescriptorService = _DescriptorService;
|
|
471
459
|
this.fb = fb;
|
|
472
460
|
this.toaster = toaster;
|
|
473
461
|
this._FileApiService = _FileApiService;
|
|
474
462
|
this._LocalizationService = _LocalizationService;
|
|
463
|
+
/**文件分组列表 */
|
|
464
|
+
this.fileGroupList = [];
|
|
465
|
+
/**选择的tree节点 */
|
|
466
|
+
this._theSelectedTreeNode = '';
|
|
467
|
+
/**正在编辑的节点 */
|
|
468
|
+
this.theNodeBeingEdited = '';
|
|
469
|
+
/**已展开的节点 */
|
|
470
|
+
this.anExpandedNode = [];
|
|
471
|
+
/**tree节点选择回调 */
|
|
472
|
+
this.nodeClick = new EventEmitter();
|
|
473
|
+
this.handleClick = (event) => event.stopPropagation();
|
|
474
|
+
/**判断节点是否选中 */
|
|
475
|
+
this.isNodeSelected = (el) => el.key === this._theSelectedTreeNode?.key;
|
|
476
|
+
/**分组 */
|
|
477
|
+
/**模态框-状态-是否打开 */
|
|
478
|
+
this.ModalDescriptorOpen = false;
|
|
479
|
+
/**模态框-descriptor-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
480
|
+
this.ModalDescriptorBusy = false;
|
|
475
481
|
that$1 = this;
|
|
476
482
|
}
|
|
477
|
-
/**文件分组列表 */
|
|
478
|
-
fileGroupList = [];
|
|
479
|
-
/**选择的tree节点 */
|
|
480
|
-
_theSelectedTreeNode = '';
|
|
481
483
|
set theSelectedTreeNode(v) {
|
|
482
484
|
this._theSelectedTreeNode = v;
|
|
483
485
|
if (v.length > 0) {
|
|
484
486
|
this.loadData();
|
|
485
487
|
}
|
|
486
488
|
}
|
|
487
|
-
/**正在编辑的节点 */
|
|
488
|
-
theNodeBeingEdited = '';
|
|
489
|
-
/**已展开的节点 */
|
|
490
|
-
anExpandedNode = [];
|
|
491
|
-
/**图片容器 */
|
|
492
|
-
_fileContainerName;
|
|
493
|
-
/**tree节点选择回调 */
|
|
494
|
-
nodeClick = new EventEmitter();
|
|
495
489
|
set fileContainerName(v) {
|
|
496
490
|
if (v) {
|
|
497
491
|
this._fileContainerName = v;
|
|
498
492
|
this.loadData();
|
|
499
493
|
}
|
|
500
494
|
}
|
|
501
|
-
handleClick = (event) => event.stopPropagation();
|
|
502
495
|
loadData() {
|
|
503
496
|
if (this._fileContainerName) {
|
|
504
497
|
this.getFileGroupList();
|
|
@@ -549,8 +542,6 @@ class FileModalTreeComponent {
|
|
|
549
542
|
this._theSelectedTreeNode = event.node;
|
|
550
543
|
this.nodeClick.emit(event.node);
|
|
551
544
|
}
|
|
552
|
-
/**判断节点是否选中 */
|
|
553
|
-
isNodeSelected = (el) => el.key === this._theSelectedTreeNode?.key;
|
|
554
545
|
/**点击展开树节点图标触发 */
|
|
555
546
|
nzExpandChange(event) {
|
|
556
547
|
let anExpandedNode = this.anExpandedNode;
|
|
@@ -587,15 +578,6 @@ class FileModalTreeComponent {
|
|
|
587
578
|
this.getFileGroupList();
|
|
588
579
|
});
|
|
589
580
|
}
|
|
590
|
-
/**分组 */
|
|
591
|
-
/**模态框-状态-是否打开 */
|
|
592
|
-
ModalDescriptorOpen = false;
|
|
593
|
-
/**模态框-descriptor-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
594
|
-
ModalDescriptorBusy = false;
|
|
595
|
-
/**模态框-descriptor-表单 */
|
|
596
|
-
ModalDescriptorForm;
|
|
597
|
-
/**模态框-descriptor-表单--控件模板-动态赋值表单控件 */
|
|
598
|
-
ModalFormDescriptorSubmit;
|
|
599
581
|
/**模态框-descriptor-状态改变回调 */
|
|
600
582
|
ModalDescriptorVisibleChange(event) {
|
|
601
583
|
if (!event) {
|
|
@@ -619,12 +601,12 @@ class FileModalTreeComponent {
|
|
|
619
601
|
this.getFileGroupList();
|
|
620
602
|
});
|
|
621
603
|
}
|
|
622
|
-
static
|
|
623
|
-
static
|
|
604
|
+
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 }); }
|
|
605
|
+
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
606
|
}
|
|
625
607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalTreeComponent, decorators: [{
|
|
626
608
|
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 (
|
|
609
|
+
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
610
|
}], ctorParameters: () => [{ type: FileDescriptorService }, { type: i1.FormBuilder }, { type: i2$1.ToasterService }, { type: FileApiService }, { type: i3.LocalizationService }], propDecorators: { theSelectedTreeNode: [{
|
|
629
611
|
type: Input
|
|
630
612
|
}], nodeClick: [{
|
|
@@ -638,13 +620,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
638
620
|
|
|
639
621
|
var that;
|
|
640
622
|
class FileModalComponent {
|
|
641
|
-
_FileService;
|
|
642
|
-
toaster;
|
|
643
|
-
list;
|
|
644
|
-
_FileApiService;
|
|
645
|
-
restService;
|
|
646
|
-
confirmation;
|
|
647
|
-
_LocalizationService;
|
|
648
623
|
constructor(_FileService, toaster, list, _FileApiService, restService, confirmation, _LocalizationService) {
|
|
649
624
|
this._FileService = _FileService;
|
|
650
625
|
this.toaster = toaster;
|
|
@@ -653,35 +628,75 @@ class FileModalComponent {
|
|
|
653
628
|
this.restService = restService;
|
|
654
629
|
this.confirmation = confirmation;
|
|
655
630
|
this._LocalizationService = _LocalizationService;
|
|
631
|
+
this._FileDescriptorService = inject(FileDescriptorService$1);
|
|
632
|
+
/**目录的权限名称 */
|
|
633
|
+
this.createDirectoryPermissionName = null;
|
|
634
|
+
/**是否多选 */
|
|
635
|
+
this._multiple = false;
|
|
636
|
+
/**文件大小限制
|
|
637
|
+
* @param 1mb
|
|
638
|
+
*/
|
|
639
|
+
this.sizeLimit = 1048576;
|
|
640
|
+
/**模态框状态回调 */
|
|
641
|
+
this.visibleChange = new EventEmitter();
|
|
642
|
+
/**模态框-状态-是否打开 */
|
|
643
|
+
this.ModalOpen = false;
|
|
644
|
+
/**模态框-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
645
|
+
this.ModalBusy = false;
|
|
646
|
+
/**dignite-file-modal-tree */
|
|
647
|
+
/**选择的tree节点 */
|
|
648
|
+
this._theSelectedTreeNode = '';
|
|
649
|
+
/**图片上传-要上传图片的状态文件列表 */
|
|
650
|
+
this.uploadPictureStatusList = [];
|
|
651
|
+
/**文件表格-数据*/
|
|
652
|
+
this.data = {
|
|
653
|
+
items: [],
|
|
654
|
+
totalCount: 0,
|
|
655
|
+
};
|
|
656
|
+
/**文件表格-条件*/
|
|
657
|
+
this.filters = {};
|
|
658
|
+
/**文件表格-表格自带选择类型 */
|
|
659
|
+
this.SelectionType = SelectionType;
|
|
660
|
+
/**文件表格-选择的表格数据项 */
|
|
661
|
+
this.selectedTable = [];
|
|
662
|
+
/**当前选择的table项 id */
|
|
663
|
+
this.nowSelectId = '';
|
|
664
|
+
/**选择文件回调 */
|
|
665
|
+
this.selectFilefn = new EventEmitter();
|
|
666
|
+
/**一个布尔or函数,可用于检查是否要根据条件选择特定行。 */
|
|
667
|
+
this.selectCheck = (row, column, value) => {
|
|
668
|
+
this.nowSelectId = row.id;
|
|
669
|
+
return true;
|
|
670
|
+
};
|
|
671
|
+
/**判断row是否选中 */
|
|
672
|
+
this.selectedcheckbox = (id) => {
|
|
673
|
+
return this.selectedTable.some(el => el.id == id);
|
|
674
|
+
};
|
|
675
|
+
/**创建图片的接口,代理中的file类型不匹配,切换为any类型 */
|
|
676
|
+
this.createFile = (input, config) => this.restService.request({
|
|
677
|
+
method: 'POST',
|
|
678
|
+
url: '/api/file-explorer/files',
|
|
679
|
+
params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
|
|
680
|
+
body: input.file,
|
|
681
|
+
}, { apiName: 'FileExplorer', ...config });
|
|
656
682
|
that = this;
|
|
657
683
|
}
|
|
658
|
-
_FileDescriptorService = inject(FileDescriptorService$1);
|
|
659
684
|
/**获取目录配置 */
|
|
660
685
|
getFilesConfiguration() {
|
|
661
686
|
this._FileDescriptorService.getFileContainerConfiguration(this._fileContainerName).subscribe(res => {
|
|
662
|
-
this.createDirectoryPermissionName = res
|
|
687
|
+
this.createDirectoryPermissionName = res?.createDirectoryPermissionName;
|
|
663
688
|
});
|
|
664
689
|
}
|
|
665
|
-
/**目录的权限名称 */
|
|
666
|
-
createDirectoryPermissionName = null;
|
|
667
|
-
/**图片容器 */
|
|
668
|
-
_fileContainerName;
|
|
669
690
|
set fileContainerName(v) {
|
|
670
691
|
if (v) {
|
|
671
692
|
this._fileContainerName = v;
|
|
672
693
|
this.loadData();
|
|
673
694
|
}
|
|
674
695
|
}
|
|
675
|
-
/**是否多选 */
|
|
676
|
-
_multiple = false;
|
|
677
696
|
set multiple(v) {
|
|
678
697
|
this._multiple = v;
|
|
679
698
|
if (v) { }
|
|
680
699
|
}
|
|
681
|
-
/**文件大小限制
|
|
682
|
-
* @param 1mb
|
|
683
|
-
*/
|
|
684
|
-
sizeLimit = 1048576;
|
|
685
700
|
set limit(v) {
|
|
686
701
|
this.sizeLimit = v;
|
|
687
702
|
}
|
|
@@ -692,12 +707,6 @@ class FileModalComponent {
|
|
|
692
707
|
this.loadData();
|
|
693
708
|
}
|
|
694
709
|
}
|
|
695
|
-
/**模态框状态回调 */
|
|
696
|
-
visibleChange = new EventEmitter();
|
|
697
|
-
/**模态框-状态-是否打开 */
|
|
698
|
-
ModalOpen = false;
|
|
699
|
-
/**模态框-繁忙状态-用于确定模态的繁忙状态是否为真 */
|
|
700
|
-
ModalBusy = false;
|
|
701
710
|
/**模态框-状态改变回调 */
|
|
702
711
|
ModalVisibleChange(event) {
|
|
703
712
|
if (!event) {
|
|
@@ -711,9 +720,6 @@ class FileModalComponent {
|
|
|
711
720
|
this.selectFilefn.emit(selectedTablearr);
|
|
712
721
|
this.ModalVisibleChange(false);
|
|
713
722
|
}
|
|
714
|
-
/**dignite-file-modal-tree */
|
|
715
|
-
/**选择的tree节点 */
|
|
716
|
-
_theSelectedTreeNode = '';
|
|
717
723
|
/**初始化数据 */
|
|
718
724
|
loadData() {
|
|
719
725
|
if (this.ModalOpen && this._fileContainerName) {
|
|
@@ -726,8 +732,6 @@ class FileModalComponent {
|
|
|
726
732
|
this._theSelectedTreeNode = event;
|
|
727
733
|
this.list.get();
|
|
728
734
|
}
|
|
729
|
-
/**图片上传-要上传图片的状态文件列表 */
|
|
730
|
-
uploadPictureStatusList = [];
|
|
731
735
|
/**图片上传-获取文件信息改变 */
|
|
732
736
|
async getFileChange(event) {
|
|
733
737
|
let files = new Array(...event.target.files);
|
|
@@ -777,28 +781,11 @@ class FileModalComponent {
|
|
|
777
781
|
});
|
|
778
782
|
});
|
|
779
783
|
}
|
|
780
|
-
/**文件表格-数据*/
|
|
781
|
-
data = {
|
|
782
|
-
items: [],
|
|
783
|
-
totalCount: 0,
|
|
784
|
-
};
|
|
785
|
-
/**文件表格-条件*/
|
|
786
|
-
filters = {};
|
|
787
|
-
/**文件表格-表格自带选择类型 */
|
|
788
|
-
SelectionType = SelectionType;
|
|
789
|
-
/**文件表格-选择的表格数据项 */
|
|
790
|
-
selectedTable = [];
|
|
791
|
-
/**已选定的文件 */
|
|
792
|
-
selectPickerFile;
|
|
793
784
|
ngOnChanges(changes) {
|
|
794
785
|
//Called before any other lifecycle hook. Use it to inject dependencies, but avoid any serious work here.
|
|
795
786
|
//Add '${implements OnChanges}' to the class.
|
|
796
787
|
this.selectedTable = this._FileApiService.deepClone(this.selectPickerFile);
|
|
797
788
|
}
|
|
798
|
-
/**当前选择的table项 id */
|
|
799
|
-
nowSelectId = '';
|
|
800
|
-
/**选择文件回调 */
|
|
801
|
-
selectFilefn = new EventEmitter();
|
|
802
789
|
/**文件表格-获取表格数据 */
|
|
803
790
|
hookToQuery() {
|
|
804
791
|
const getData = (query) => this._FileService.getList({
|
|
@@ -835,15 +822,6 @@ class FileModalComponent {
|
|
|
835
822
|
return false;
|
|
836
823
|
});
|
|
837
824
|
}
|
|
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
825
|
/**删除图片 */
|
|
848
826
|
deleteFile(file) {
|
|
849
827
|
this.confirmation
|
|
@@ -861,22 +839,15 @@ class FileModalComponent {
|
|
|
861
839
|
closeFileStatusModal() {
|
|
862
840
|
this.uploadPictureStatusList = [];
|
|
863
841
|
}
|
|
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: [
|
|
842
|
+
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 }); }
|
|
843
|
+
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
844
|
// [Required]
|
|
874
845
|
ListService,
|
|
875
846
|
// [Optional]
|
|
876
847
|
// Provide this token if you want a different debounce time.
|
|
877
848
|
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
878
849
|
{ 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" }] });
|
|
850
|
+
], 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
851
|
}
|
|
881
852
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileModalComponent, decorators: [{
|
|
882
853
|
type: Component,
|
|
@@ -887,7 +858,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
887
858
|
// Provide this token if you want a different debounce time.
|
|
888
859
|
// Default is 300. Cannot be 0. Any value below 100 is not recommended.
|
|
889
860
|
{ 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
|
|
861
|
+
], 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
862
|
}], 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
863
|
type: Input
|
|
893
864
|
}], multiple: [{
|
|
@@ -904,31 +875,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
904
875
|
type: Output
|
|
905
876
|
}] } });
|
|
906
877
|
|
|
878
|
+
/* eslint-disable @angular-eslint/component-selector */
|
|
907
879
|
class FilePickerComponent {
|
|
908
|
-
_FileApiService;
|
|
909
880
|
constructor(_FileApiService) {
|
|
910
881
|
this._FileApiService = _FileApiService;
|
|
882
|
+
/**是否多选 */
|
|
883
|
+
this._multiple = false;
|
|
884
|
+
/**图片容器 */
|
|
885
|
+
this._fileContainerName = 'Images';
|
|
886
|
+
this.selectedFileChange = new EventEmitter();
|
|
887
|
+
this._fileShowTable = [];
|
|
888
|
+
/**模态框-状态-是否打开 */
|
|
889
|
+
this.ModalOpen = false;
|
|
911
890
|
}
|
|
912
|
-
/**是否多选 */
|
|
913
|
-
_multiple = false;
|
|
914
891
|
set multiple(v) {
|
|
915
892
|
this._multiple = v;
|
|
916
893
|
}
|
|
917
|
-
/**图片容器 */
|
|
918
|
-
_fileContainerName = 'images';
|
|
919
894
|
set fileContainerName(v) {
|
|
920
895
|
this._fileContainerName = v;
|
|
921
896
|
}
|
|
922
|
-
/**已选定的文件 */
|
|
923
|
-
selectFormFile;
|
|
924
897
|
ngOnChanges(changes) {
|
|
925
898
|
let selectFormFilengOnChanges = changes.selectFormFile['currentValue'];
|
|
926
899
|
if (selectFormFilengOnChanges.length > 0) {
|
|
927
900
|
this._fileShowTable = selectFormFilengOnChanges;
|
|
928
901
|
}
|
|
929
902
|
}
|
|
930
|
-
selectedFileChange = new EventEmitter();
|
|
931
|
-
_fileShowTable = [];
|
|
932
903
|
/**表格选择的文件回调 */
|
|
933
904
|
_selectFilefn(event) {
|
|
934
905
|
let _fileShowTable = this._FileApiService.deepClone(event);
|
|
@@ -936,8 +907,6 @@ class FilePickerComponent {
|
|
|
936
907
|
this.selectFormFile = _fileShowTable;
|
|
937
908
|
this.selectedFileChange.emit(_fileShowTable);
|
|
938
909
|
}
|
|
939
|
-
/**模态框-状态-是否打开 */
|
|
940
|
-
ModalOpen = false;
|
|
941
910
|
/**删除文件表格项 */
|
|
942
911
|
deleteFileTableItem(i, file) {
|
|
943
912
|
this._fileShowTable.splice(i, 1);
|
|
@@ -945,8 +914,8 @@ class FilePickerComponent {
|
|
|
945
914
|
this.selectedFileChange.emit([]);
|
|
946
915
|
this.selectedFileChange.emit(this.selectFormFile);
|
|
947
916
|
}
|
|
948
|
-
static
|
|
949
|
-
static
|
|
917
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, deps: [{ token: FileApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
918
|
+
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
919
|
}
|
|
951
920
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
952
921
|
type: Component,
|
|
@@ -962,28 +931,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
962
931
|
}] } });
|
|
963
932
|
|
|
964
933
|
class FileDomeComponent {
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
fileDataToBeSubmitted;
|
|
973
|
-
FileApiService = inject(FileApiService);
|
|
934
|
+
constructor() {
|
|
935
|
+
/**跟随表单提交--已提交的数据,或选择的数据源 */
|
|
936
|
+
this.fileSubmittedData = [];
|
|
937
|
+
this.FileApiService = inject(FileApiService);
|
|
938
|
+
/**选择文件-弹窗的-已选定的文件 */
|
|
939
|
+
this.selectedFileGroup = [];
|
|
940
|
+
}
|
|
974
941
|
/**跟随表单提交--数据发生改变回调 */
|
|
975
942
|
fileDataChange(event) {
|
|
976
|
-
console.log(event, '跟随表单提交--数据发生改变回调', this.FileApiService.deepClone(event));
|
|
977
943
|
this.fileDataToBeSubmitted = event;
|
|
978
944
|
}
|
|
979
|
-
/**选择文件-弹窗的-已选定的文件 */
|
|
980
|
-
selectedFileGroup = [];
|
|
981
945
|
/**_selectedFile改变回调 */
|
|
982
946
|
_selectedFileChange(event) {
|
|
983
947
|
this.selectedFileGroup = event;
|
|
984
948
|
}
|
|
985
|
-
static
|
|
986
|
-
static
|
|
949
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
950
|
+
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
951
|
}
|
|
988
952
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileDomeComponent, decorators: [{
|
|
989
953
|
type: Component,
|
|
@@ -997,9 +961,9 @@ const routes = [
|
|
|
997
961
|
},
|
|
998
962
|
];
|
|
999
963
|
class FileExplorerRoutingModule {
|
|
1000
|
-
static
|
|
1001
|
-
static
|
|
1002
|
-
static
|
|
964
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
965
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
|
|
966
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
1003
967
|
}
|
|
1004
968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerRoutingModule, decorators: [{
|
|
1005
969
|
type: NgModule,
|
|
@@ -1010,11 +974,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1010
974
|
}] });
|
|
1011
975
|
|
|
1012
976
|
class FileExplorerConfig {
|
|
1013
|
-
/**文件容器名称 */
|
|
1014
|
-
'FileExplorer.FileContainerName' = ['', [Validators.required]];
|
|
1015
|
-
/**多选 */
|
|
1016
|
-
'FileExplorer.UploadFileMultiple' = [false, []];
|
|
1017
977
|
constructor(data) {
|
|
978
|
+
/**文件容器名称 */
|
|
979
|
+
this['FileExplorer.FileContainerName'] = ['', [Validators.required]];
|
|
980
|
+
/**多选 */
|
|
981
|
+
this['FileExplorer.UploadFileMultiple'] = [false, []];
|
|
1018
982
|
if (data) {
|
|
1019
983
|
for (const key in data) {
|
|
1020
984
|
if (data.hasOwnProperty(key)) {
|
|
@@ -1026,24 +990,17 @@ class FileExplorerConfig {
|
|
|
1026
990
|
}
|
|
1027
991
|
|
|
1028
992
|
class FileExplorerConfigComponent {
|
|
1029
|
-
fb;
|
|
1030
993
|
constructor(fb) {
|
|
1031
994
|
this.fb = fb;
|
|
1032
995
|
}
|
|
1033
|
-
/**表单控件类型 */
|
|
1034
|
-
_type;
|
|
1035
996
|
set type(v) {
|
|
1036
997
|
this._type = v;
|
|
1037
998
|
this.dataLoaded();
|
|
1038
999
|
}
|
|
1039
|
-
/**表单实体 */
|
|
1040
|
-
_Entity;
|
|
1041
1000
|
set Entity(v) {
|
|
1042
1001
|
this._Entity = v;
|
|
1043
1002
|
this.dataLoaded();
|
|
1044
1003
|
}
|
|
1045
|
-
/**选择的表单信息 */
|
|
1046
|
-
_selected;
|
|
1047
1004
|
set selected(v) {
|
|
1048
1005
|
this._selected = v;
|
|
1049
1006
|
this.dataLoaded();
|
|
@@ -1051,7 +1008,6 @@ class FileExplorerConfigComponent {
|
|
|
1051
1008
|
get formConfiguration() {
|
|
1052
1009
|
return this._Entity.get('formConfiguration');
|
|
1053
1010
|
}
|
|
1054
|
-
submitclick;
|
|
1055
1011
|
async dataLoaded() {
|
|
1056
1012
|
if (this._Entity && this._type) {
|
|
1057
1013
|
await this.AfterInit();
|
|
@@ -1069,8 +1025,8 @@ class FileExplorerConfigComponent {
|
|
|
1069
1025
|
resolve(true);
|
|
1070
1026
|
});
|
|
1071
1027
|
}
|
|
1072
|
-
static
|
|
1073
|
-
static
|
|
1028
|
+
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 }); }
|
|
1029
|
+
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
1030
|
}
|
|
1075
1031
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerConfigComponent, decorators: [{
|
|
1076
1032
|
type: Component,
|
|
@@ -1087,39 +1043,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
|
|
|
1087
1043
|
}] } });
|
|
1088
1044
|
|
|
1089
1045
|
class FileExplorerControlComponent {
|
|
1090
|
-
fb;
|
|
1091
1046
|
constructor(fb) {
|
|
1092
1047
|
this.fb = fb;
|
|
1048
|
+
/**字段配置列表 */
|
|
1049
|
+
this._fields = '';
|
|
1050
|
+
/**字段配置 */
|
|
1051
|
+
this.formConfiguration = '';
|
|
1052
|
+
/**文件容器名称 */
|
|
1053
|
+
this.FileContainerName = '';
|
|
1054
|
+
/**选择文件-弹窗的-已选定的文件 */
|
|
1055
|
+
this.selectedFileGroup = [];
|
|
1093
1056
|
}
|
|
1094
|
-
/**表单实体 */
|
|
1095
|
-
_entity;
|
|
1096
1057
|
set entity(v) {
|
|
1097
1058
|
this._entity = v;
|
|
1098
1059
|
if (v)
|
|
1099
1060
|
this.dataLoaded();
|
|
1100
1061
|
}
|
|
1101
|
-
/**字段配置列表 */
|
|
1102
|
-
_fields = '';
|
|
1103
1062
|
set fields(v) {
|
|
1104
1063
|
this._fields = v;
|
|
1105
1064
|
if (v)
|
|
1106
1065
|
this.dataLoaded();
|
|
1107
1066
|
}
|
|
1108
|
-
/**父级字段名称,用于为表单设置控件赋值 */
|
|
1109
|
-
_parentFiledName;
|
|
1110
1067
|
set parentFiledName(v) {
|
|
1111
1068
|
this._parentFiledName = v;
|
|
1112
1069
|
if (v)
|
|
1113
1070
|
this.dataLoaded();
|
|
1114
1071
|
}
|
|
1115
|
-
/**父级字段名称,用于为表单设置控件赋值 */
|
|
1116
|
-
_selected;
|
|
1117
1072
|
set selected(v) {
|
|
1118
1073
|
this._selected = v;
|
|
1119
1074
|
if (v && v.length > 0)
|
|
1120
1075
|
this.dataLoaded();
|
|
1121
1076
|
}
|
|
1122
|
-
submitclick;
|
|
1123
1077
|
get extraProperties() {
|
|
1124
1078
|
return this._entity.get('extraProperties');
|
|
1125
1079
|
}
|
|
@@ -1130,10 +1084,6 @@ class FileExplorerControlComponent {
|
|
|
1130
1084
|
this.submitclick.nativeElement.click();
|
|
1131
1085
|
}
|
|
1132
1086
|
}
|
|
1133
|
-
/**字段配置 */
|
|
1134
|
-
formConfiguration = '';
|
|
1135
|
-
/**文件容器名称 */
|
|
1136
|
-
FileContainerName = '';
|
|
1137
1087
|
AfterInit() {
|
|
1138
1088
|
return new Promise((resolve, rejects) => {
|
|
1139
1089
|
let ValidatorsArray = [];
|
|
@@ -1150,8 +1100,6 @@ class FileExplorerControlComponent {
|
|
|
1150
1100
|
resolve(true);
|
|
1151
1101
|
});
|
|
1152
1102
|
}
|
|
1153
|
-
/**选择文件-弹窗的-已选定的文件 */
|
|
1154
|
-
selectedFileGroup = [];
|
|
1155
1103
|
/**_selectedFile改变回调 */
|
|
1156
1104
|
_selectedFileChange(event) {
|
|
1157
1105
|
this.selectedFileGroup = event;
|
|
@@ -1160,8 +1108,8 @@ class FileExplorerControlComponent {
|
|
|
1160
1108
|
obj[fieldName] = event;
|
|
1161
1109
|
this.extraProperties.patchValue(obj);
|
|
1162
1110
|
}
|
|
1163
|
-
static
|
|
1164
|
-
static
|
|
1111
|
+
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 }); }
|
|
1112
|
+
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
1113
|
}
|
|
1166
1114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerControlComponent, decorators: [{
|
|
1167
1115
|
type: Component,
|
|
@@ -1200,8 +1148,8 @@ function AddFieldControlGroup(array = []) {
|
|
|
1200
1148
|
}
|
|
1201
1149
|
|
|
1202
1150
|
class FileExplorerModule {
|
|
1203
|
-
static
|
|
1204
|
-
static
|
|
1151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1152
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, declarations: [FileEditComponent,
|
|
1205
1153
|
FilePickerComponent,
|
|
1206
1154
|
FileModalComponent,
|
|
1207
1155
|
FileModalTreeComponent,
|
|
@@ -1220,15 +1168,15 @@ class FileExplorerModule {
|
|
|
1220
1168
|
FileModalComponent,
|
|
1221
1169
|
FileModalTreeComponent,
|
|
1222
1170
|
FileDomeComponent,
|
|
1223
|
-
FilePreviewComponent] });
|
|
1224
|
-
static
|
|
1171
|
+
FilePreviewComponent] }); }
|
|
1172
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, imports: [FormsModule,
|
|
1225
1173
|
CoreModule,
|
|
1226
1174
|
ThemeSharedModule,
|
|
1227
1175
|
ReactiveFormsModule,
|
|
1228
1176
|
NgbDropdownModule,
|
|
1229
1177
|
NzTreeModule,
|
|
1230
1178
|
NgxValidateCoreModule,
|
|
1231
|
-
FileExplorerRoutingModule] });
|
|
1179
|
+
FileExplorerRoutingModule] }); }
|
|
1232
1180
|
}
|
|
1233
1181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: FileExplorerModule, decorators: [{
|
|
1234
1182
|
type: NgModule,
|