@dignite-ng/expand.file-explorer 0.0.3 → 0.0.4

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.
Files changed (131) hide show
  1. package/config/{src/enums/index.ts → enums/index.d.ts} +1 -1
  2. package/config/enums/route-names.d.ts +3 -0
  3. package/config/file-config.module.d.ts +8 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/{src/providers/index.ts → providers/index.d.ts} +1 -1
  6. package/config/providers/route.provider.d.ts +8 -0
  7. package/config/{src/public-api.ts → public-api.d.ts} +3 -3
  8. package/esm2022/config/dignite-ng-expand.file-explorer-config.mjs +5 -0
  9. package/esm2022/config/enums/index.mjs +2 -0
  10. package/esm2022/config/enums/route-names.mjs +2 -0
  11. package/esm2022/config/file-config.module.mjs +19 -0
  12. package/esm2022/config/providers/index.mjs +2 -0
  13. package/esm2022/config/providers/route.provider.mjs +24 -0
  14. package/esm2022/config/public-api.mjs +4 -0
  15. package/esm2022/dignite-ng-expand.file-explorer.mjs +5 -0
  16. package/esm2022/lib/components/dome/file-dome.component.mjs +32 -0
  17. package/esm2022/lib/components/file-edit/file-edit.component.mjs +102 -0
  18. package/esm2022/lib/components/file-modal/file-modal.component.mjs +271 -0
  19. package/esm2022/lib/components/file-modal-tree/file-modal-tree.component.mjs +195 -0
  20. package/esm2022/lib/components/file-picker/file-picker.component.mjs +57 -0
  21. package/esm2022/lib/components/index.mjs +6 -0
  22. package/esm2022/lib/file-explorer-routing.module.mjs +25 -0
  23. package/esm2022/lib/file-explorer.module.mjs +83 -0
  24. package/esm2022/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.mjs +48 -0
  25. package/esm2022/lib/proxy/dignite/file-explorer/directories/index.mjs +3 -0
  26. package/esm2022/lib/proxy/dignite/file-explorer/directories/models.mjs +2 -0
  27. package/esm2022/lib/proxy/dignite/file-explorer/files/file-descriptor.service.mjs +60 -0
  28. package/esm2022/lib/proxy/dignite/file-explorer/files/index.mjs +3 -0
  29. package/esm2022/lib/proxy/dignite/file-explorer/files/models.mjs +2 -0
  30. package/esm2022/lib/proxy/dignite/file-explorer/index.mjs +4 -0
  31. package/esm2022/lib/proxy/dignite/index.mjs +3 -0
  32. package/esm2022/lib/proxy/index.mjs +5 -0
  33. package/esm2022/lib/proxy/microsoft/asp-net-core/index.mjs +3 -0
  34. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/index.mjs +2 -0
  35. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/models.mjs +2 -0
  36. package/esm2022/lib/proxy/microsoft/extensions/index.mjs +3 -0
  37. package/esm2022/lib/proxy/microsoft/extensions/primitives/index.mjs +2 -0
  38. package/esm2022/lib/proxy/microsoft/extensions/primitives/models.mjs +2 -0
  39. package/esm2022/lib/proxy/microsoft/index.mjs +5 -0
  40. package/esm2022/lib/proxy/microsoft/net/http/headers/index.mjs +2 -0
  41. package/esm2022/lib/proxy/microsoft/net/http/headers/models.mjs +2 -0
  42. package/esm2022/lib/proxy/microsoft/net/http/index.mjs +3 -0
  43. package/esm2022/lib/proxy/microsoft/net/index.mjs +3 -0
  44. package/esm2022/lib/proxy/volo/abp/content/index.mjs +2 -0
  45. package/esm2022/lib/proxy/volo/abp/content/models.mjs +2 -0
  46. package/esm2022/lib/proxy/volo/abp/index.mjs +3 -0
  47. package/esm2022/lib/proxy/volo/index.mjs +3 -0
  48. package/esm2022/lib/services/file-api.service.mjs +66 -0
  49. package/esm2022/lib/services/index.mjs +2 -0
  50. package/esm2022/public-api.mjs +8 -0
  51. package/fesm2022/dignite-ng-expand.file-explorer-config.mjs +47 -0
  52. package/fesm2022/dignite-ng-expand.file-explorer-config.mjs.map +1 -0
  53. package/fesm2022/dignite-ng-expand.file-explorer.mjs +972 -0
  54. package/fesm2022/dignite-ng-expand.file-explorer.mjs.map +1 -0
  55. package/index.d.ts +5 -0
  56. package/lib/components/dome/file-dome.component.d.ts +19 -0
  57. package/lib/components/file-edit/file-edit.component.d.ts +38 -0
  58. package/lib/components/file-modal/file-modal.component.d.ts +93 -0
  59. package/lib/components/file-modal-tree/file-modal-tree.component.d.ts +66 -0
  60. package/lib/components/file-picker/file-picker.component.d.ts +23 -0
  61. package/lib/components/index.d.ts +5 -0
  62. package/lib/file-explorer-routing.module.d.ts +7 -0
  63. package/lib/file-explorer.module.d.ts +18 -0
  64. package/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.d.ts +17 -0
  65. package/{src/lib/proxy/dignite/file-explorer/directories/models.ts → lib/proxy/dignite/file-explorer/directories/models.d.ts} +29 -35
  66. package/lib/proxy/dignite/file-explorer/files/file-descriptor.service.d.ts +20 -0
  67. package/lib/proxy/dignite/file-explorer/files/models.d.ts +50 -0
  68. package/{src/lib/proxy/microsoft/asp-net-core/mvc/models.ts → lib/proxy/microsoft/asp-net-core/mvc/models.d.ts} +10 -12
  69. package/lib/proxy/microsoft/extensions/primitives/models.d.ts +8 -0
  70. package/{src/lib/proxy/microsoft/net/http/headers/models.ts → lib/proxy/microsoft/net/http/headers/models.d.ts} +6 -7
  71. package/lib/proxy/volo/abp/content/models.d.ts +5 -0
  72. package/lib/services/file-api.service.d.ts +14 -0
  73. package/lib/services/index.d.ts +1 -0
  74. package/package.json +21 -2
  75. package/{src/public-api.ts → public-api.d.ts} +0 -5
  76. package/config/ng-package.json +0 -7
  77. package/config/src/enums/route-names.ts +0 -15
  78. package/config/src/file-config.module.ts +0 -12
  79. package/config/src/providers/route.provider.ts +0 -26
  80. package/ng-package.json +0 -7
  81. package/src/lib/components/dome/file-dome.component.html +0 -18
  82. package/src/lib/components/dome/file-dome.component.scss +0 -0
  83. package/src/lib/components/dome/file-dome.component.spec.ts +0 -21
  84. package/src/lib/components/dome/file-dome.component.ts +0 -33
  85. package/src/lib/components/file-edit/file-edit.component.html +0 -29
  86. package/src/lib/components/file-edit/file-edit.component.scss +0 -0
  87. package/src/lib/components/file-edit/file-edit.component.spec.ts +0 -21
  88. package/src/lib/components/file-edit/file-edit.component.ts +0 -98
  89. package/src/lib/components/file-modal/file-modal.component.html +0 -112
  90. package/src/lib/components/file-modal/file-modal.component.scss +0 -56
  91. package/src/lib/components/file-modal/file-modal.component.spec.ts +0 -21
  92. package/src/lib/components/file-modal/file-modal.component.ts +0 -284
  93. package/src/lib/components/file-modal-tree/file-modal-tree.component.html +0 -63
  94. package/src/lib/components/file-modal-tree/file-modal-tree.component.scss +0 -0
  95. package/src/lib/components/file-modal-tree/file-modal-tree.component.spec.ts +0 -21
  96. package/src/lib/components/file-modal-tree/file-modal-tree.component.ts +0 -207
  97. package/src/lib/components/file-picker/file-picker.component.html +0 -28
  98. package/src/lib/components/file-picker/file-picker.component.scss +0 -0
  99. package/src/lib/components/file-picker/file-picker.component.spec.ts +0 -21
  100. package/src/lib/components/file-picker/file-picker.component.ts +0 -58
  101. package/src/lib/components/index.ts +0 -5
  102. package/src/lib/file-explorer-routing.module.ts +0 -18
  103. package/src/lib/file-explorer.module.ts +0 -46
  104. package/src/lib/proxy/README.md +0 -17
  105. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +0 -65
  106. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +0 -86
  107. package/src/lib/proxy/dignite/file-explorer/files/models.ts +0 -58
  108. package/src/lib/proxy/generate-proxy.json +0 -11810
  109. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +0 -9
  110. package/src/lib/proxy/volo/abp/content/models.ts +0 -6
  111. package/src/lib/services/file-api.service.ts +0 -59
  112. package/src/lib/services/index.ts +0 -1
  113. package/tsconfig.lib.json +0 -14
  114. package/tsconfig.lib.prod.json +0 -10
  115. package/tsconfig.spec.json +0 -14
  116. /package/{src/lib/proxy/dignite/file-explorer/directories/index.ts → lib/proxy/dignite/file-explorer/directories/index.d.ts} +0 -0
  117. /package/{src/lib/proxy/dignite/file-explorer/files/index.ts → lib/proxy/dignite/file-explorer/files/index.d.ts} +0 -0
  118. /package/{src/lib/proxy/dignite/file-explorer/index.ts → lib/proxy/dignite/file-explorer/index.d.ts} +0 -0
  119. /package/{src/lib/proxy/dignite/index.ts → lib/proxy/dignite/index.d.ts} +0 -0
  120. /package/{src/lib/proxy/index.ts → lib/proxy/index.d.ts} +0 -0
  121. /package/{src/lib/proxy/microsoft/asp-net-core/index.ts → lib/proxy/microsoft/asp-net-core/index.d.ts} +0 -0
  122. /package/{src/lib/proxy/microsoft/asp-net-core/mvc/index.ts → lib/proxy/microsoft/asp-net-core/mvc/index.d.ts} +0 -0
  123. /package/{src/lib/proxy/microsoft/extensions/index.ts → lib/proxy/microsoft/extensions/index.d.ts} +0 -0
  124. /package/{src/lib/proxy/microsoft/extensions/primitives/index.ts → lib/proxy/microsoft/extensions/primitives/index.d.ts} +0 -0
  125. /package/{src/lib/proxy/microsoft/index.ts → lib/proxy/microsoft/index.d.ts} +0 -0
  126. /package/{src/lib/proxy/microsoft/net/http/headers/index.ts → lib/proxy/microsoft/net/http/headers/index.d.ts} +0 -0
  127. /package/{src/lib/proxy/microsoft/net/http/index.ts → lib/proxy/microsoft/net/http/index.d.ts} +0 -0
  128. /package/{src/lib/proxy/microsoft/net/index.ts → lib/proxy/microsoft/net/index.d.ts} +0 -0
  129. /package/{src/lib/proxy/volo/abp/content/index.ts → lib/proxy/volo/abp/content/index.d.ts} +0 -0
  130. /package/{src/lib/proxy/volo/abp/index.ts → lib/proxy/volo/abp/index.d.ts} +0 -0
  131. /package/{src/lib/proxy/volo/index.ts → lib/proxy/volo/index.d.ts} +0 -0
@@ -0,0 +1,195 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { of } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../proxy/dignite/file-explorer/directories";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@abp/ng.theme.shared";
8
+ import * as i4 from "../../services/file-api.service";
9
+ import * as i5 from "@abp/ng.core";
10
+ import * as i6 from "@angular/common";
11
+ import * as i7 from "@ngx-validate/core";
12
+ import * as i8 from "@ng-bootstrap/ng-bootstrap";
13
+ import * as i9 from "ng-zorro-antd/tree";
14
+ var that;
15
+ class FileModalTreeComponent {
16
+ _DescriptorService;
17
+ fb;
18
+ toaster;
19
+ _FileApiService;
20
+ _LocalizationService;
21
+ constructor(_DescriptorService, fb, toaster, _FileApiService, _LocalizationService) {
22
+ this._DescriptorService = _DescriptorService;
23
+ this.fb = fb;
24
+ this.toaster = toaster;
25
+ this._FileApiService = _FileApiService;
26
+ this._LocalizationService = _LocalizationService;
27
+ that = this;
28
+ }
29
+ /**文件分组列表 */
30
+ fileGroupList = [];
31
+ /**选择的tree节点 */
32
+ _theSelectedTreeNode = '';
33
+ set theSelectedTreeNode(v) {
34
+ this._theSelectedTreeNode = v;
35
+ if (v.length > 0) {
36
+ this.loadData();
37
+ }
38
+ }
39
+ /**正在编辑的节点 */
40
+ theNodeBeingEdited = '';
41
+ /**已展开的节点 */
42
+ anExpandedNode = [];
43
+ /**图片容器 */
44
+ _fileContainerName;
45
+ /**tree节点选择回调 */
46
+ nodeClick = new EventEmitter();
47
+ set fileContainerName(v) {
48
+ if (v) {
49
+ this._fileContainerName = v;
50
+ this.loadData();
51
+ }
52
+ }
53
+ handleClick = (event) => event.stopPropagation();
54
+ loadData() {
55
+ if (this._fileContainerName) {
56
+ this.getFileGroupList();
57
+ }
58
+ }
59
+ /**获取文件分组 */
60
+ getFileGroupList() {
61
+ this._DescriptorService.getList({
62
+ containerName: this._fileContainerName,
63
+ }).subscribe(async (res) => {
64
+ this.fileGroupList = await this.setTheValueOfTheNodeRecursively(res.items);
65
+ });
66
+ }
67
+ /**递归设置节点的值 */
68
+ setTheValueOfTheNodeRecursively(array) {
69
+ return new Promise((reslove, rejects) => {
70
+ array.forEach((el) => {
71
+ el.title = el.name;
72
+ el.key = el.id;
73
+ el.expanded = this.anExpandedNode.includes(el.key);
74
+ if (el.children.length > 0) {
75
+ this.setTheValueOfTheNodeRecursively(el.children);
76
+ }
77
+ });
78
+ reslove(array);
79
+ });
80
+ }
81
+ /**tree-拖拽 */
82
+ nzEvent(event) {
83
+ }
84
+ /**tree-拖拽 -验证*/
85
+ beforeDrop(arg) {
86
+ if (arg.pos === 0 || arg.pos === 1) {
87
+ that._DescriptorService.move(arg.dragNode.key, {
88
+ "parentId": arg.pos === 1 ? (arg.node.parentNode?.key || '') : arg.node.key,
89
+ "order": arg.pos === 1 ? arg.node.origin.order + 1 : arg.node.origin.children.length + 1
90
+ }).subscribe(res => {
91
+ // that.toaster.success("拖拽完成");
92
+ that.getFileGroupList();
93
+ });
94
+ return of(true);
95
+ }
96
+ else {
97
+ return of(false);
98
+ }
99
+ }
100
+ /**tree--选择节点 */
101
+ activeNode(event) {
102
+ this._theSelectedTreeNode = event.node;
103
+ this.nodeClick.emit(event.node);
104
+ }
105
+ /**判断节点是否选中 */
106
+ isNodeSelected = (el) => el.key === this._theSelectedTreeNode?.key;
107
+ /**点击展开树节点图标触发 */
108
+ nzExpandChange(event) {
109
+ let anExpandedNode = this.anExpandedNode;
110
+ if (anExpandedNode.includes(event.node.key)) {
111
+ anExpandedNode = anExpandedNode.filter(key => key !== event.node.key);
112
+ }
113
+ else {
114
+ anExpandedNode.push(event.node.key);
115
+ }
116
+ this.anExpandedNode = anExpandedNode;
117
+ }
118
+ /**增加分组 */
119
+ addDescriptorBtn(items = '', edit = false) {
120
+ this.ModalDescriptorOpen = true;
121
+ this.ModalDescriptorForm = this.fb.group({
122
+ containerName: [this._fileContainerName || '', Validators.required],
123
+ name: ['', Validators.required],
124
+ parentId: [items?.key || '', Validators.required],
125
+ });
126
+ /**编辑 */
127
+ if (edit) {
128
+ this.theNodeBeingEdited = items.origin;
129
+ this.ModalDescriptorForm.patchValue({
130
+ name: items.origin.name
131
+ });
132
+ }
133
+ }
134
+ /**删除分组 */
135
+ deleteDescriptorBtn(node) {
136
+ this._DescriptorService.delete(node.key).subscribe(res => {
137
+ // this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
138
+ this.ModalDescriptorOpen = false;
139
+ if (this.theNodeBeingEdited.key == node.key)
140
+ this.theNodeBeingEdited = '';
141
+ this.getFileGroupList();
142
+ });
143
+ }
144
+ /**分组 */
145
+ /**模态框-状态-是否打开 */
146
+ ModalDescriptorOpen = false;
147
+ /**模态框-descriptor-繁忙状态-用于确定模态的繁忙状态是否为真 */
148
+ ModalDescriptorBusy = false;
149
+ /**模态框-descriptor-表单 */
150
+ ModalDescriptorForm;
151
+ /**模态框-descriptor-表单--控件模板-动态赋值表单控件 */
152
+ ModalFormDescriptorSubmit;
153
+ /**模态框-descriptor-状态改变回调 */
154
+ ModalDescriptorVisibleChange(event) {
155
+ if (!event) {
156
+ this.ModalDescriptorForm = undefined;
157
+ this.theNodeBeingEdited = '';
158
+ return;
159
+ }
160
+ }
161
+ /**f分组模态框保存 */
162
+ createOrEditSave() {
163
+ let input = this.ModalDescriptorForm.value;
164
+ if (this.theNodeBeingEdited) {
165
+ this._DescriptorService.update(this.theNodeBeingEdited.key, input).subscribe(res => {
166
+ // this.toaster.success("保存成功");
167
+ this.ModalDescriptorOpen = false;
168
+ this.getFileGroupList();
169
+ });
170
+ return;
171
+ }
172
+ this._DescriptorService.create(input).subscribe(res => {
173
+ // this.toaster.success("保存成功");
174
+ this.ModalDescriptorOpen = false;
175
+ this.getFileGroupList();
176
+ });
177
+ }
178
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileModalTreeComponent, deps: [{ token: i1.FileDescriptorService }, { token: i2.FormBuilder }, { token: i3.ToasterService }, { token: i4.FileApiService }, { token: i5.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
179
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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 (ngSubmit)=\"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: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i5.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.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: ["disabled"] }, { 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: i5.LocalizationPipe, name: "abpLocalization" }] });
180
+ }
181
+ export { FileModalTreeComponent };
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileModalTreeComponent, decorators: [{
183
+ type: Component,
184
+ 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 (ngSubmit)=\"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>" }]
185
+ }], ctorParameters: function () { return [{ type: i1.FileDescriptorService }, { type: i2.FormBuilder }, { type: i3.ToasterService }, { type: i4.FileApiService }, { type: i5.LocalizationService }]; }, propDecorators: { theSelectedTreeNode: [{
186
+ type: Input
187
+ }], nodeClick: [{
188
+ type: Output
189
+ }], fileContainerName: [{
190
+ type: Input
191
+ }], ModalFormDescriptorSubmit: [{
192
+ type: ViewChild,
193
+ args: ['ModalFormDescriptorSubmit', { static: false }]
194
+ }] } });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZpbGUtZXhwbG9yZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbW9kYWwtdHJlZS9maWxlLW1vZGFsLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tb2RhbC10cmVlL2ZpbGUtbW9kYWwtdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRSxPQUFPLEVBQUcsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQUczQixJQUFJLElBQUksQ0FBQztBQUNULE1BS2Esc0JBQXNCO0lBRXZCO0lBQ0E7SUFDQTtJQUNEO0lBQ0E7SUFMVCxZQUNVLGtCQUEyRCxFQUMzRCxFQUFlLEVBQ2YsT0FBdUIsRUFDeEIsZUFBK0IsRUFDL0Isb0JBQXlDO1FBSnhDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBeUM7UUFDM0QsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBRWhELElBQUksR0FBRyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsWUFBWTtJQUNaLGFBQWEsR0FBVSxFQUFFLENBQUM7SUFFMUIsZUFBZTtJQUNmLG9CQUFvQixHQUFRLEVBQUUsQ0FBQztJQUMvQixJQUNXLG1CQUFtQixDQUFDLENB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QVM7K0JBQ0Usb0JBQW9CO2tPQXFCbkIsbUJBQW1CO3NCQUQ3QixLQUFLO2dCQWtCSSxTQUFTO3NCQUFsQixNQUFNO2dCQUlJLGlCQUFpQjtzQkFEM0IsS0FBSztnQkEwSHFELHlCQUF5QjtzQkFBbkYsU0FBUzt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnpGb3JtYXRFbWl0RXZlbnQgfSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xuaW1wb3J0ICogYXMgRGVzY3JpcHRvclNlcnZpY2UgZnJvbSAnLi4vLi4vcHJveHkvZGlnbml0ZS9maWxlLWV4cGxvcmVyL2RpcmVjdG9yaWVzJztcbmltcG9ydCB7ICBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IE56Rm9ybWF0QmVmb3JlRHJvcEV2ZW50IH0gZnJvbSAnbmctem9ycm8tYW50ZC90cmVlJztcbmltcG9ydCB7ICBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsZUFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xudmFyIHRoYXQ7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmZS1maWxlLW1vZGFsLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1tb2RhbC10cmVlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsZU1vZGFsVHJlZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX0Rlc2NyaXB0b3JTZXJ2aWNlOiBEZXNjcmlwdG9yU2VydmljZS5GaWxlRGVzY3JpcHRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX0ZpbGVBcGlTZXJ2aWNlOiBGaWxlQXBpU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICkge1xuICAgIHRoYXQgPSB0aGlzXG4gIH1cblxuICAvKirmlofku7bliIbnu4TliJfooaggKi9cbiAgZmlsZUdyb3VwTGlzdDogYW55W10gPSBbXTtcblxuICAvKirpgInmi6nnmoR0cmVl6IqC54K5ICovXG4gIF90aGVTZWxlY3RlZFRyZWVOb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aGVTZWxlY3RlZFRyZWVOb2RlKHY6IGFueSkge1xuICAgIHRoaXMuX3RoZVNlbGVjdGVkVHJlZU5vZGUgPSB2O1xuICAgIGlmICh2Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKVxuICAgIH1cbiAgfVxuXG4gIC8qKuato+WcqOe8lui+keeahOiKgueCuSAqL1xuICB0aGVOb2RlQmVpbmdFZGl0ZWQ6IGFueSA9ICcnO1xuXG4gIC8qKuW3suWxleW8gOeahOiKgueCuSAqL1xuICBhbkV4cGFuZGVkTm9kZTogYW55W10gPSBbXTtcblxuICAvKirlm77niYflrrnlmaggKi9cbiAgX2ZpbGVDb250YWluZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqdHJlZeiKgueCuemAieaLqeWbnuiwgyAqL1xuICBAT3V0cHV0KCkgbm9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmaWxlQ29udGFpbmVyTmFtZSh2OiBzdHJpbmcpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fZmlsZUNvbnRhaW5lck5hbWUgPSB2O1xuICAgICAgdGhpcy5sb2FkRGF0YSgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gIGxvYWREYXRhKCkge1xuICAgIGlmICh0aGlzLl9maWxlQ29udGFpbmVyTmFtZSkge1xuICAgICAgdGhpcy5nZXRGaWxlR3JvdXBMaXN0KClcbiAgICB9XG4gIH1cblxuXG4gIC8qKuiOt+WPluaWh+S7tuWIhue7hCAqL1xuICBnZXRGaWxlR3JvdXBMaXN0KCkge1xuICAgIHRoaXMuX0Rlc2NyaXB0b3JTZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgY29udGFpbmVyTmFtZTogdGhpcy5fZmlsZUNvbnRhaW5lck5hbWUsXG4gICAgfSkuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcbiAgICAgIHRoaXMuZmlsZUdyb3VwTGlzdCA9IGF3YWl0IHRoaXMuc2V0VGhlVmFsdWVPZlRoZU5vZGVSZWN1cnNpdmVseShyZXMuaXRlbXMpXG4gICAgfSlcbiAgfVxuICBcbiAgLyoq6YCS5b2S6K6+572u6IqC54K555qE5YC8ICovXG4gIHNldFRoZVZhbHVlT2ZUaGVOb2RlUmVjdXJzaXZlbHkoYXJyYXk6IGFueVtdKTogYW55IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc2xvdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIGFycmF5LmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGVsLnRpdGxlID0gZWwubmFtZVxuICAgICAgICBlbC5rZXkgPSBlbC5pZFxuICAgICAgICBlbC5leHBhbmRlZCA9IHRoaXMuYW5FeHBhbmRlZE5vZGUuaW5jbHVkZXMoZWwua2V5KVxuICAgICAgICBpZiAoZWwuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc2V0VGhlVmFsdWVPZlRoZU5vZGVSZWN1cnNpdmVseShlbC5jaGlsZHJlbilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJlc2xvdmUoYXJyYXkpXG4gICAgfSlcbiAgfVxuXG4gIC8qKnRyZWUt5ouW5ou9ICovXG4gIG56RXZlbnQoZXZlbnQ6IE56Rm9ybWF0RW1pdEV2ZW50KTogdm9pZCB7XG4gIH1cblxuICAvKip0cmVlLeaLluaLvSAt6aqM6K+BKi9cbiAgYmVmb3JlRHJvcChhcmc6IE56Rm9ybWF0QmVmb3JlRHJvcEV2ZW50KSB7XG4gICAgaWYgKGFyZy5wb3MgPT09IDAgfHwgYXJnLnBvcyA9PT0gMSkge1xuICAgICAgdGhhdC5fRGVzY3JpcHRvclNlcnZpY2UubW92ZShhcmcuZHJhZ05vZGUua2V5LCB7XG4gICAgICAgIFwicGFyZW50SWRcIjogYXJnLnBvcyA9PT0gMSA/IChhcmcubm9kZS5wYXJlbnROb2RlPy5rZXl8fCcnKSA6IGFyZy5ub2RlLmtleSxcbiAgICAgICAgXCJvcmRlclwiOiBhcmcucG9zID09PSAxID8gYXJnLm5vZGUub3JpZ2luLm9yZGVyICsgMSA6IGFyZy5ub2RlLm9yaWdpbi5jaGlsZHJlbi5sZW5ndGggKyAxXG4gICAgICB9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgLy8gdGhhdC50b2FzdGVyLnN1Y2Nlc3MoXCLmi5bmi73lrozmiJBcIik7XG4gICAgICAgIHRoYXQuZ2V0RmlsZUdyb3VwTGlzdCgpXG4gICAgICB9KVxuICAgICAgcmV0dXJuIG9mKHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqdHJlZS0t6YCJ5oup6IqC54K5ICovXG4gIGFjdGl2ZU5vZGUoZXZlbnQpIHtcbiAgICB0aGlzLl90aGVTZWxlY3RlZFRyZWVOb2RlID0gZXZlbnQubm9kZVxuICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoZXZlbnQubm9kZSlcbiAgfVxuXG4gIC8qKuWIpOaWreiKgueCueaYr+WQpumAieS4rSAqL1xuICBpc05vZGVTZWxlY3RlZCA9IChlbCkgPT4gZWwua2V5ID09PSB0aGlzLl90aGVTZWxlY3RlZFRyZWVOb2RlPy5rZXlcblxuICAvKirngrnlh7vlsZXlvIDmoJHoioLngrnlm77moIfop6blj5EgKi9cbiAgbnpFeHBhbmRDaGFuZ2UoZXZlbnQpIHtcbiAgICBsZXQgYW5FeHBhbmRlZE5vZGUgPSB0aGlzLmFuRXhwYW5kZWROb2RlXG4gICAgaWYgKGFuRXhwYW5kZWROb2RlLmluY2x1ZGVzKGV2ZW50Lm5vZGUua2V5KSkge1xuICAgICAgYW5FeHBhbmRlZE5vZGUgPSBhbkV4cGFuZGVkTm9kZS5maWx0ZXIoa2V5ID0+IGtleSAhPT0gZXZlbnQubm9kZS5rZXkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFuRXhwYW5kZWROb2RlLnB1c2goZXZlbnQubm9kZS5rZXkpXG4gICAgfVxuICAgIHRoaXMuYW5FeHBhbmRlZE5vZGUgPSBhbkV4cGFuZGVkTm9kZVxuICB9XG5cblxuICAvKirlop7liqDliIbnu4QgKi9cbiAgYWRkRGVzY3JpcHRvckJ0bihpdGVtczogYW55ID0gJycsIGVkaXQgPSBmYWxzZSkge1xuICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yT3BlbiA9IHRydWVcbiAgICB0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNvbnRhaW5lck5hbWU6IFt0aGlzLl9maWxlQ29udGFpbmVyTmFtZSB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcGFyZW50SWQ6IFtpdGVtcz8ua2V5IHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICB9KVxuICAgIC8qKue8lui+kSAqL1xuICAgIGlmIChlZGl0KSB7XG4gICAgICB0aGlzLnRoZU5vZGVCZWluZ0VkaXRlZCA9IGl0ZW1zLm9yaWdpblxuICAgICAgdGhpcy5Nb2RhbERlc2NyaXB0b3JGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBuYW1lOiBpdGVtcy5vcmlnaW4ubmFtZVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKirliKDpmaTliIbnu4QgKi9cbiAgZGVsZXRlRGVzY3JpcHRvckJ0bihub2RlKSB7XG4gICAgdGhpcy5fRGVzY3JpcHRvclNlcnZpY2UuZGVsZXRlKG5vZGUua2V5KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIC8vIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvck9wZW4gPSBmYWxzZVxuICAgICAgaWYgKHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkLmtleSA9PSBub2RlLmtleSkgdGhpcy50aGVOb2RlQmVpbmdFZGl0ZWQgPSAnJ1xuICAgICAgdGhpcy5nZXRGaWxlR3JvdXBMaXN0KClcbiAgICB9KVxuICB9XG5cbiAgXG5cbiAgLyoq5YiG57uEICovXG4gIC8qKuaooeaAgeahhi3nirbmgIEt5piv5ZCm5omT5byAICovXG4gIE1vZGFsRGVzY3JpcHRvck9wZW46IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKuaooeaAgeahhi1kZXNjcmlwdG9yLee5geW/meeKtuaAgS3nlKjkuo7noa7lrprmqKHmgIHnmoTnuYHlv5nnirbmgIHmmK/lkKbkuLrnnJ8gKi9cbiAgTW9kYWxEZXNjcmlwdG9yQnVzeTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoq5qih5oCB5qGGLWRlc2NyaXB0b3It6KGo5Y2VICovXG4gIE1vZGFsRGVzY3JpcHRvckZvcm06IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgXG4gIC8qKuaooeaAgeahhi1kZXNjcmlwdG9yLeihqOWNlS0t5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xuICBAVmlld0NoaWxkKCdNb2RhbEZvcm1EZXNjcmlwdG9yU3VibWl0JywgeyBzdGF0aWM6IGZhbHNlIH0pIE1vZGFsRm9ybURlc2NyaXB0b3JTdWJtaXQ6IEVsZW1lbnRSZWY7XG5cbiAgLyoq5qih5oCB5qGGLWRlc2NyaXB0b3It54q25oCB5pS55Y+Y5Zue6LCDICovXG4gIE1vZGFsRGVzY3JpcHRvclZpc2libGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0gPSB1bmRlZmluZWRcbiAgICAgIHRoaXMudGhlTm9kZUJlaW5nRWRpdGVkID0gJydcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIC8qKmbliIbnu4TmqKHmgIHmoYbkv53lrZggKi9cbiAgY3JlYXRlT3JFZGl0U2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLk1vZGFsRGVzY3JpcHRvckZvcm0udmFsdWVcbiAgICBpZiAodGhpcy50aGVOb2RlQmVpbmdFZGl0ZWQpIHtcbiAgICAgIHRoaXMuX0Rlc2NyaXB0b3JTZXJ2aWNlLnVwZGF0ZSh0aGlzLnRoZU5vZGVCZWluZ0VkaXRlZC5rZXksIGlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgLy8gdGhpcy50b2FzdGVyLnN1Y2Nlc3MoXCLkv53lrZjmiJDlip9cIik7XG4gICAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yT3BlbiA9IGZhbHNlXG4gICAgICAgIHRoaXMuZ2V0RmlsZUdyb3VwTGlzdCgpXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuX0Rlc2NyaXB0b3JTZXJ2aWNlLmNyZWF0ZShpbnB1dCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAvLyB0aGlzLnRvYXN0ZXIuc3VjY2VzcyhcIuS/neWtmOaIkOWKn1wiKTtcbiAgICAgIHRoaXMuTW9kYWxEZXNjcmlwdG9yT3BlbiA9IGZhbHNlXG4gICAgICB0aGlzLmdldEZpbGVHcm91cExpc3QoKVxuICAgIH0pXG4gIH1cblxuXG5cblxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyICBwLTAgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGg2IGNsYXNzPVwiaDYgbWItMFwiPnt7J0ZpbGVFeHBsb3Jlcjo6TXlEaXJlY3RvcmllcycgfCBhYnBMb2NhbGl6YXRpb259fTwvaDY+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtcy0yXCIgKGNsaWNrLnN0b3ApPVwiYWRkRGVzY3JpcHRvckJ0bigpXCI+PGlcbiAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYnV0dG9uPlxuPC9kaXY+XG48bnotdHJlZSBbbnpEYXRhXT1cImZpbGVHcm91cExpc3RcIiBjbGFzcz1cIm5nLXpvcnJvLWFudGQtdHJlZVwiIG56RHJhZ2dhYmxlIG56QmxvY2tOb2RlIG56U2hvd0ljb25cbiAgICBbbnpFeHBhbmRlZEljb25dPVwibXVsdGlFeHBhbmRlZEljb25UcGxcIiAobnpPbkRyb3ApPVwibnpFdmVudCgkZXZlbnQpXCIgW256QmVmb3JlRHJvcF09XCJiZWZvcmVEcm9wXCJcbiAgICAobnpDbGljayk9XCJhY3RpdmVOb2RlKCRldmVudClcIiAobnpFeHBhbmRDaGFuZ2UpPVwibnpFeHBhbmRDaGFuZ2UoJGV2ZW50KVwiIFtuelRyZWVUZW1wbGF0ZV09XCJuelRyZWVUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjbnpUcmVlVGVtcGxhdGUgbGV0LW5vZGUgbGV0LW9yaWdpbj1cIm9yaWdpblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLW5vZGUgZC1pbmxpbmUtYmxvY2sgICBuZy1zdGFyLWluc2VydGVkIGRyb3Bkb3duXCIgW3RpdGxlXT1cIm5vZGUudGl0bGVcIj5cbiAgICAgICAgICAgIDxkaXYgI2Ryb3Bkb3duPVwibmdiRHJvcGRvd25cIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCIgbmdiRHJvcGRvd24gcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNOb2RlU2VsZWN0ZWQobm9kZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gIHAtMCBweC0xXCI+e3sgbm9kZS50aXRsZSB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSAgcC0wXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiBuZ2JEcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRyb3Bkb3duLXRvZ2dsZV09XCJmYWxzZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtZG93biB0ZXh0LW11dGVkIHAtMVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJhZGREZXNjcmlwdG9yQnRuKG5vZGUpXCI+e3snRmlsZUV4cGxvcmVyOjpOZXdEaXJlY3RvcnknIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImFkZERlc2NyaXB0b3JCdG4obm9kZSx0cnVlKVwiPnt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJkZWxldGVEZXNjcmlwdG9yQnRuKG5vZGUpXCI+e3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNtdWx0aUV4cGFuZGVkSWNvblRwbCBsZXQtbm9kZSBsZXQtb3JpZ2luPVwib3JpZ2luXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJub2RlLmlzRXhwYW5kZWQgPyAnZmFzIGZhLWNhcmV0LWRvd24nIDogJ2ZhcyBmYS1jYXJldC1yaWdodCdcIj48L2k+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L256LXRyZWU+XG5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cIk1vZGFsRGVzY3JpcHRvck9wZW5cIiBbYnVzeV09XCJNb2RhbERlc2NyaXB0b3JCdXN5XCJcbiAgICAodmlzaWJsZUNoYW5nZSk9XCJNb2RhbERlc2NyaXB0b3JWaXNpYmxlQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cbiAgICAgICAgPGgzPnt7dGhlTm9kZUJlaW5nRWRpdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0ZpbGVFeHBsb3Jlcjo6TmV3RGlyZWN0b3J5JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kYWxEZXNjcmlwdG9yRm9ybTsgZWxzZSBsb2FkZXJSZWZcIj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwic2l0ZXMtbW9kYWwtZm9ybVwiICNteUZvcm09XCJuZ0Zvcm1cIiBbZm9ybUdyb3VwXT1cIk1vZGFsRGVzY3JpcHRvckZvcm1cIlxuICAgICAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJjcmVhdGVPckVkaXRTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjTW9kYWxGb3JtRGVzY3JpcHRvclN1Ym1pdCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snRmlsZUV4cGxvcmVyOjpEaXJlY3RvcnlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCJcbiAgICAgICAgICAgIChjbGljayk9XCJNb2RhbEZvcm1EZXNjcmlwdG9yU3VibWl0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
@@ -0,0 +1,57 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/file-api.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@abp/ng.core";
6
+ import * as i4 from "../file-modal/file-modal.component";
7
+ class FilePickerComponent {
8
+ _FileApiService;
9
+ constructor(_FileApiService) {
10
+ this._FileApiService = _FileApiService;
11
+ }
12
+ /**图片容器 */
13
+ _fileContainerName = 'images';
14
+ set fileContainerName(v) {
15
+ this._fileContainerName = v;
16
+ }
17
+ /**已选定的文件 */
18
+ selectFormFile;
19
+ ngOnChanges(changes) {
20
+ let selectFormFilengOnChanges = changes.selectFormFile['currentValue'];
21
+ if (selectFormFilengOnChanges.length > 0) {
22
+ this._fileShowTable = selectFormFilengOnChanges;
23
+ }
24
+ }
25
+ selectedFileChange = new EventEmitter();
26
+ _fileShowTable = [];
27
+ /**表格选择的文件回调 */
28
+ _selectFilefn(event) {
29
+ let _fileShowTable = this._FileApiService.deepClone(event);
30
+ this._fileShowTable = _fileShowTable;
31
+ this.selectFormFile = _fileShowTable;
32
+ this.selectedFileChange.emit(_fileShowTable);
33
+ }
34
+ /**模态框-状态-是否打开 */
35
+ ModalOpen = false;
36
+ /**删除文件表格项 */
37
+ deleteFileTableItem(i, file) {
38
+ this._fileShowTable.splice(i, 1);
39
+ this.selectFormFile = this._fileShowTable;
40
+ this.selectedFileChange.emit([]);
41
+ this.selectedFileChange.emit(this.selectFormFile);
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerComponent, deps: [{ token: i1.FileApiService }], target: i0.ɵɵFactoryTarget.Component });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilePickerComponent, selector: "fe-file-picker", inputs: { fileContainerName: "fileContainerName", selectFormFile: "selectFormFile" }, outputs: { selectedFileChange: "selectedFileChange" }, usesOnChanges: true, ngImport: i0, template: "<button class=\"btn btn-sm btn-primary ms-2\" type=\"button\" (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\">\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 _fileShowTable;let i =index\">\n <tr>\n <th scope=\"row\">\n <div>{{item.name}}</div>\n </th>\n <td >{{_FileApiService.formatFileSize(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: i4.FileModalComponent, selector: "fe-file-modal", inputs: ["fileContainerName", "multiple", "limit", "visible", "selectPickerFile"], outputs: ["visibleChange", "selectFilefn"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
45
+ }
46
+ export { FilePickerComponent };
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'fe-file-picker', template: "<button class=\"btn btn-sm btn-primary ms-2\" type=\"button\" (click.stop)=\"ModalOpen = true\">{{'FileExplorer::SelectFile' | abpLocalization}}</button>\n<fe-file-modal [(visible)]=\"ModalOpen\" [selectPickerFile]=\"selectFormFile\" (selectFilefn)=\"_selectFilefn($event)\" [fileContainerName]=\"_fileContainerName\"></fe-file-modal>\n<table class=\"table\" *ngIf=\"_fileShowTable.length>0\">\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 _fileShowTable;let i =index\">\n <tr>\n <th scope=\"row\">\n <div>{{item.name}}</div>\n </th>\n <td >{{_FileApiService.formatFileSize(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" }]
50
+ }], ctorParameters: function () { return [{ type: i1.FileApiService }]; }, propDecorators: { fileContainerName: [{
51
+ type: Input
52
+ }], selectFormFile: [{
53
+ type: Input
54
+ }], selectedFileChange: [{
55
+ type: Output
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsZS1leHBsb3Jlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBOEMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUcxSSxNQUthLG1CQUFtQjtJQUlwQjtJQURWLFlBQ1UsZUFBK0I7UUFBL0Isb0JBQWUsR0FBZixlQUFlLENBQWdCO0lBRXpDLENBQUM7SUFHRCxVQUFVO0lBQ1Ysa0JBQWtCLEdBQVcsUUFBUSxDQUFBO0lBQ3JDLElBQ1csaUJBQWlCLENBQUMsQ0FBUztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO0lBQ0gsY0FBYyxDQUFNO0lBRTdCLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLHlCQUF5QixHQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDcEUsSUFBRyx5QkFBeUIsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUMseUJBQXlCLENBQUE7U0FDOUM7SUFDSCxDQUFDO0lBRVMsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUVqRCxjQUFjLEdBQVUsRUFBRSxDQUFBO0lBRTFCLGVBQWU7SUFDZixhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLGNBQWMsR0FBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6RCxJQUFJLENBQUMsY0FBYyxHQUFFLGNBQWMsQ0FBQTtRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFDLGNBQWMsQ0FBQTtRQUNsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsU0FBUyxHQUFZLEtBQUssQ0FBQTtJQUUxQixhQUFhO0lBQ2IsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLElBQUk7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7d0dBL0NVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHdOQ1JoQyw0dUNBNEJBOztTRHBCYSxtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7cUdBZ0JmLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQVNJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsZUFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLWFwaS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmUtZmlsZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXBpY2tlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXN7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9GaWxlQXBpU2VydmljZTogRmlsZUFwaVNlcnZpY2UsXG4gICkge1xuICB9XG5cblxuICAvKirlm77niYflrrnlmaggKi9cbiAgX2ZpbGVDb250YWluZXJOYW1lOiBzdHJpbmcgPSAnaW1hZ2VzJ1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZpbGVDb250YWluZXJOYW1lKHY6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpbGVDb250YWluZXJOYW1lID0gdjtcbiAgfVxuXG4gIC8qKuW3sumAieWumueahOaWh+S7tiAqL1xuICBASW5wdXQoKSBzZWxlY3RGb3JtRmlsZTphbnlbXVxuIFxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdEZvcm1GaWxlbmdPbkNoYW5nZXM9Y2hhbmdlcy5zZWxlY3RGb3JtRmlsZVsnY3VycmVudFZhbHVlJ11cbiAgICBpZihzZWxlY3RGb3JtRmlsZW5nT25DaGFuZ2VzLmxlbmd0aD4wKXtcbiAgICAgIHRoaXMuX2ZpbGVTaG93VGFibGU9c2VsZWN0Rm9ybUZpbGVuZ09uQ2hhbmdlc1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBfZmlsZVNob3dUYWJsZTogYW55W10gPSBbXVxuXG4gIC8qKuihqOagvOmAieaLqeeahOaWh+S7tuWbnuiwgyAqL1xuICBfc2VsZWN0RmlsZWZuKGV2ZW50OiBhbnlbXSkge1xuICAgIGxldCBfZmlsZVNob3dUYWJsZT0gdGhpcy5fRmlsZUFwaVNlcnZpY2UuZGVlcENsb25lKGV2ZW50KVxuICAgIHRoaXMuX2ZpbGVTaG93VGFibGUgPV9maWxlU2hvd1RhYmxlXG4gICAgdGhpcy5zZWxlY3RGb3JtRmlsZT1fZmlsZVNob3dUYWJsZVxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlQ2hhbmdlLmVtaXQoX2ZpbGVTaG93VGFibGUpXG4gIH1cblxuICAvKirmqKHmgIHmoYYt54q25oCBLeaYr+WQpuaJk+W8gCAqL1xuICBNb2RhbE9wZW46IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKuWIoOmZpOaWh+S7tuihqOagvOmhuSAqL1xuICBkZWxldGVGaWxlVGFibGVJdGVtKGksIGZpbGUpIHtcbiAgICB0aGlzLl9maWxlU2hvd1RhYmxlLnNwbGljZShpLCAxKVxuICAgIHRoaXMuc2VsZWN0Rm9ybUZpbGU9dGhpcy5fZmlsZVNob3dUYWJsZVxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlQ2hhbmdlLmVtaXQoW10pXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdEZvcm1GaWxlKVxuICB9XG5cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IG1zLTJcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrLnN0b3ApPVwiTW9kYWxPcGVuID0gdHJ1ZVwiPnt7J0ZpbGVFeHBsb3Jlcjo6U2VsZWN0RmlsZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuPGZlLWZpbGUtbW9kYWwgWyh2aXNpYmxlKV09XCJNb2RhbE9wZW5cIiBbc2VsZWN0UGlja2VyRmlsZV09XCJzZWxlY3RGb3JtRmlsZVwiICAoc2VsZWN0RmlsZWZuKT1cIl9zZWxlY3RGaWxlZm4oJGV2ZW50KVwiIFtmaWxlQ29udGFpbmVyTmFtZV09XCJfZmlsZUNvbnRhaW5lck5hbWVcIj48L2ZlLWZpbGUtbW9kYWw+XG48dGFibGUgY2xhc3M9XCJ0YWJsZVwiICpuZ0lmPVwiX2ZpbGVTaG93VGFibGUubGVuZ3RoPjBcIj5cbiAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7J0ZpbGVFeHBsb3Jlcjo6RmlsZU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L3RoPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+e3snRmlsZUV4cGxvcmVyOjpGaWxlU2l6ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvdGg+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48L3RoPlxuICAgICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9maWxlU2hvd1RhYmxlO2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7aXRlbS5uYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCA+e3tfRmlsZUFwaVNlcnZpY2UuZm9ybWF0RmlsZVNpemUoaXRlbS5zaXplKX19PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIHAtMCBidG4tbGlnaHQgXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlRmlsZVRhYmxlSXRlbShpLGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaCBwLTJcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC90YWJsZT5cblxuXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './dome/file-dome.component';
2
+ export * from './file-edit/file-edit.component';
3
+ export * from './file-modal/file-modal.component';
4
+ export * from './file-modal-tree/file-modal-tree.component';
5
+ export * from './file-picker/file-picker.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWxlLWV4cGxvcmVyL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMscUNBQXFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvbWUvZmlsZS1kb21lLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLWVkaXQvZmlsZS1lZGl0LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLW1vZGFsL2ZpbGUtbW9kYWwuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtbW9kYWwtdHJlZS9maWxlLW1vZGFsLXRyZWUuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtcGlja2VyL2ZpbGUtcGlja2VyLmNvbXBvbmVudCciXX0=
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { FileDomeComponent } from './components/dome/file-dome.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ const routes = [
7
+ {
8
+ path: 'file-dome',
9
+ component: FileDomeComponent
10
+ },
11
+ ];
12
+ class FileExplorerRoutingModule {
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
16
+ }
17
+ export { FileExplorerRoutingModule };
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerRoutingModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [RouterModule.forChild(routes)],
22
+ exports: [RouterModule]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1leHBsb3Jlci1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2ZpbGUtZXhwbG9yZXIvc3JjL2xpYi9maWxlLWV4cGxvcmVyLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFFMUUsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixTQUFTLEVBQUUsaUJBQWlCO0tBQy9CO0NBQ0EsQ0FBQztBQUVGLE1BSWEseUJBQXlCO3dHQUF6Qix5QkFBeUI7eUdBQXpCLHlCQUF5Qix3Q0FGMUIsWUFBWTt5R0FFWCx5QkFBeUIsWUFIMUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTs7U0FFWCx5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFKckMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRmlsZURvbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZG9tZS9maWxlLWRvbWUuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnZmlsZS1kb21lJyxcbiAgICBjb21wb25lbnQ6IEZpbGVEb21lQ29tcG9uZW50XG59LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZUV4cGxvcmVyUm91dGluZ01vZHVsZSB7IFxuICBcbn1cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CoreModule, LIST_QUERY_DEBOUNCE_TIME, ListService } from '@abp/ng.core';
3
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
6
+ import { NzTreeModule } from 'ng-zorro-antd/tree';
7
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
8
+ import { FileExplorerRoutingModule } from './file-explorer-routing.module';
9
+ import { FileEditComponent, FilePickerComponent, FileModalComponent, FileModalTreeComponent, FileDomeComponent } from './components';
10
+ import * as i0 from "@angular/core";
11
+ class FileExplorerModule {
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerModule, declarations: [FileEditComponent,
14
+ FilePickerComponent,
15
+ FileModalComponent,
16
+ FileModalTreeComponent,
17
+ FileDomeComponent], imports: [FormsModule,
18
+ CoreModule,
19
+ ThemeSharedModule,
20
+ ReactiveFormsModule,
21
+ NgbDropdownModule,
22
+ NzTreeModule,
23
+ NgxValidateCoreModule,
24
+ FileExplorerRoutingModule], exports: [FileEditComponent,
25
+ FilePickerComponent,
26
+ FileModalComponent,
27
+ FileModalTreeComponent,
28
+ FileDomeComponent] });
29
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerModule, providers: [
30
+ // [Required]
31
+ ListService,
32
+ // [Optional]
33
+ // Provide this token if you want a different debounce time.
34
+ // Default is 300. Cannot be 0. Any value below 100 is not recommended.
35
+ { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
36
+ ], imports: [FormsModule,
37
+ CoreModule,
38
+ ThemeSharedModule,
39
+ ReactiveFormsModule,
40
+ NgbDropdownModule,
41
+ NzTreeModule,
42
+ NgxValidateCoreModule,
43
+ FileExplorerRoutingModule] });
44
+ }
45
+ export { FileExplorerModule };
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileExplorerModule, decorators: [{
47
+ type: NgModule,
48
+ args: [{
49
+ declarations: [
50
+ FileEditComponent,
51
+ FilePickerComponent,
52
+ FileModalComponent,
53
+ FileModalTreeComponent,
54
+ FileDomeComponent,
55
+ ],
56
+ imports: [
57
+ FormsModule,
58
+ CoreModule,
59
+ ThemeSharedModule,
60
+ ReactiveFormsModule,
61
+ NgbDropdownModule,
62
+ NzTreeModule,
63
+ NgxValidateCoreModule,
64
+ FileExplorerRoutingModule,
65
+ ],
66
+ exports: [
67
+ FileEditComponent,
68
+ FilePickerComponent,
69
+ FileModalComponent,
70
+ FileModalTreeComponent,
71
+ FileDomeComponent
72
+ ],
73
+ providers: [
74
+ // [Required]
75
+ ListService,
76
+ // [Optional]
77
+ // Provide this token if you want a different debounce time.
78
+ // Default is 300. Cannot be 0. Any value below 100 is not recommended.
79
+ { provide: LIST_QUERY_DEBOUNCE_TIME, useValue: 500 },
80
+ ],
81
+ }]
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1leHBsb3Jlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9maWxlLWV4cGxvcmVyL3NyYy9saWIvZmlsZS1leHBsb3Jlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFDckksTUFrQ2Esa0JBQWtCO3dHQUFsQixrQkFBa0I7eUdBQWxCLGtCQUFrQixpQkFoQzNCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixpQkFBaUIsYUFHakIsV0FBVztZQUNYLFVBQVU7WUFDVixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1oscUJBQXFCO1lBQ3JCLHlCQUF5QixhQUd6QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsaUJBQWlCO3lHQVdSLGtCQUFrQixhQVRsQjtZQUNULGFBQWE7WUFDYixXQUFXO1lBQ1gsYUFBYTtZQUNiLDREQUE0RDtZQUM1RCx1RUFBdUU7WUFDdkUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtTQUNyRCxZQXZCQyxXQUFXO1lBQ1gsVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixxQkFBcUI7WUFDckIseUJBQXlCOztTQWtCaEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBbEM5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7cUJBQ2xCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYiw0REFBNEQ7d0JBQzVELHVFQUF1RTt3QkFDdkUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtxQkFDckQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCBMaXN0U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOelRyZWVNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3RyZWUnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcbmltcG9ydCB7IEZpbGVFeHBsb3JlclJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2ZpbGUtZXhwbG9yZXItcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgRmlsZUVkaXRDb21wb25lbnQsIEZpbGVQaWNrZXJDb21wb25lbnQsIEZpbGVNb2RhbENvbXBvbmVudCwgRmlsZU1vZGFsVHJlZUNvbXBvbmVudCwgRmlsZURvbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRmlsZUVkaXRDb21wb25lbnQsXG4gICAgRmlsZVBpY2tlckNvbXBvbmVudCxcbiAgICBGaWxlTW9kYWxDb21wb25lbnQsXG4gICAgRmlsZU1vZGFsVHJlZUNvbXBvbmVudCxcbiAgICBGaWxlRG9tZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcbiAgICBOelRyZWVNb2R1bGUsXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxuICAgIEZpbGVFeHBsb3JlclJvdXRpbmdNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGaWxlRWRpdENvbXBvbmVudCxcbiAgICBGaWxlUGlja2VyQ29tcG9uZW50LFxuICAgIEZpbGVNb2RhbENvbXBvbmVudCxcbiAgICBGaWxlTW9kYWxUcmVlQ29tcG9uZW50LFxuICAgIEZpbGVEb21lQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIC8vIFtSZXF1aXJlZF1cbiAgICBMaXN0U2VydmljZSxcbiAgICAvLyBbT3B0aW9uYWxdXG4gICAgLy8gUHJvdmlkZSB0aGlzIHRva2VuIGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGRlYm91bmNlIHRpbWUuXG4gICAgLy8gRGVmYXVsdCBpcyAzMDAuIENhbm5vdCBiZSAwLiBBbnkgdmFsdWUgYmVsb3cgMTAwIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICB7IHByb3ZpZGU6IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSwgdXNlVmFsdWU6IDUwMCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRXhwbG9yZXJNb2R1bGUge1xuXG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@abp/ng.core";
4
+ class FileDescriptorService {
5
+ restService;
6
+ apiName = 'FileExplorer';
7
+ create = (input, config) => this.restService.request({
8
+ method: 'POST',
9
+ url: '/api/file-explorer/directories',
10
+ body: input,
11
+ }, { apiName: this.apiName, ...config });
12
+ delete = (id, config) => this.restService.request({
13
+ method: 'DELETE',
14
+ url: `/api/file-explorer/directories/${id}`,
15
+ }, { apiName: this.apiName, ...config });
16
+ get = (id, config) => this.restService.request({
17
+ method: 'GET',
18
+ url: `/api/file-explorer/directories/${id}`,
19
+ }, { apiName: this.apiName, ...config });
20
+ getList = (input, config) => this.restService.request({
21
+ method: 'GET',
22
+ url: '/api/file-explorer/directories',
23
+ params: { containerName: input.containerName },
24
+ }, { apiName: this.apiName, ...config });
25
+ move = (id, input, config) => this.restService.request({
26
+ method: 'PUT',
27
+ url: `/api/file-explorer/directories/${id}/move`,
28
+ body: input,
29
+ }, { apiName: this.apiName, ...config });
30
+ update = (id, input, config) => this.restService.request({
31
+ method: 'PUT',
32
+ url: `/api/file-explorer/directories/${id}`,
33
+ body: input,
34
+ }, { apiName: this.apiName, ...config });
35
+ constructor(restService) {
36
+ this.restService = restService;
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDescriptorService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDescriptorService, providedIn: 'root' });
40
+ }
41
+ export { FileDescriptorService };
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDescriptorService, decorators: [{
43
+ type: Injectable,
44
+ args: [{
45
+ providedIn: 'root',
46
+ }]
47
+ }], ctorParameters: function () { return [{ type: i1.RestService }]; } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kZXNjcmlwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWxlLWV4cGxvcmVyL3NyYy9saWIvcHJveHkvZGlnbml0ZS9maWxlLWV4cGxvcmVyL2RpcmVjdG9yaWVzL2ZpbGUtZGVzY3JpcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUUzQyxNQUdhLHFCQUFxQjtJQXVEWjtJQXREcEIsT0FBTyxHQUFHLGNBQWMsQ0FBQztJQUd6QixNQUFNLEdBQUcsQ0FBQyxLQUEyQixFQUFFLE1BQTZCLEVBQUUsRUFBRSxDQUN0RSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBOEI7UUFDcEQsTUFBTSxFQUFFLE1BQU07UUFDZCxHQUFHLEVBQUUsZ0NBQWdDO1FBQ3JDLElBQUksRUFBRSxLQUFLO0tBQ1osRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUd2QyxNQUFNLEdBQUcsQ0FBQyxFQUFVLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFZO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLEdBQUcsRUFBRSxrQ0FBa0MsRUFBRSxFQUFFO0tBQzVDLEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFHdkMsR0FBRyxHQUFHLENBQUMsRUFBVSxFQUFFLE1BQTZCLEVBQUUsRUFBRSxDQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBOEI7UUFDcEQsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUUsa0NBQWtDLEVBQUUsRUFBRTtLQUM1QyxFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBR3ZDLE9BQU8sR0FBRyxDQUFDLEtBQTBCLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFrRDtRQUN4RSxNQUFNLEVBQUUsS0FBSztRQUNiLEdBQUcsRUFBRSxnQ0FBZ0M7UUFDckMsTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUU7S0FDL0MsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUd2QyxJQUFJLEdBQUcsQ0FBQyxFQUFVLEVBQUUsS0FBeUIsRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FDOUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQThCO1FBQ3BELE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFLGtDQUFrQyxFQUFFLE9BQU87UUFDaEQsSUFBSSxFQUFFLEtBQUs7S0FDWixFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBR3ZDLE1BQU0sR0FBRyxDQUFDLEVBQVUsRUFBRSxLQUEyQixFQUFFLE1BQTZCLEVBQUUsRUFBRSxDQUNsRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBOEI7UUFDcEQsTUFBTSxFQUFFLEtBQUs7UUFDYixHQUFHLEVBQUUsa0NBQWtDLEVBQUUsRUFBRTtRQUMzQyxJQUFJLEVBQUUsS0FBSztLQUNaLEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFdkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBRyxDQUFDO3dHQXZEckMscUJBQXFCOzRHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7U0FFUCxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENyZWF0ZURpcmVjdG9yeUlucHV0LCBEaXJlY3RvcnlEZXNjcmlwdG9yRHRvLCBEaXJlY3RvcnlEZXNjcmlwdG9ySW5mb0R0bywgR2V0RGlyZWN0b3JpZXNJbnB1dCwgTW92ZURpcmVjdG9yeUlucHV0LCBVcGRhdGVEaXJlY3RvcnlJbnB1dCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UsIFJlc3QgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVEZXNjcmlwdG9yU2VydmljZSB7XHJcbiAgYXBpTmFtZSA9ICdGaWxlRXhwbG9yZXInO1xyXG4gIFxyXG5cclxuICBjcmVhdGUgPSAoaW5wdXQ6IENyZWF0ZURpcmVjdG9yeUlucHV0LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIERpcmVjdG9yeURlc2NyaXB0b3JEdG8+KHtcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIHVybDogJy9hcGkvZmlsZS1leHBsb3Jlci9kaXJlY3RvcmllcycsXHJcbiAgICAgIGJvZHk6IGlucHV0LFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuICBcclxuXHJcbiAgZGVsZXRlID0gKGlkOiBzdHJpbmcsIGNvbmZpZz86IFBhcnRpYWw8UmVzdC5Db25maWc+KSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgdm9pZD4oe1xyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxyXG4gICAgICB1cmw6IGAvYXBpL2ZpbGUtZXhwbG9yZXIvZGlyZWN0b3JpZXMvJHtpZH1gLFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuICBcclxuXHJcbiAgZ2V0ID0gKGlkOiBzdHJpbmcsIGNvbmZpZz86IFBhcnRpYWw8UmVzdC5Db25maWc+KSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgRGlyZWN0b3J5RGVzY3JpcHRvckR0bz4oe1xyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICB1cmw6IGAvYXBpL2ZpbGUtZXhwbG9yZXIvZGlyZWN0b3JpZXMvJHtpZH1gLFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuICBcclxuXHJcbiAgZ2V0TGlzdCA9IChpbnB1dDogR2V0RGlyZWN0b3JpZXNJbnB1dCwgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBQYWdlZFJlc3VsdER0bzxEaXJlY3RvcnlEZXNjcmlwdG9ySW5mb0R0bz4+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgdXJsOiAnL2FwaS9maWxlLWV4cGxvcmVyL2RpcmVjdG9yaWVzJyxcclxuICAgICAgcGFyYW1zOiB7IGNvbnRhaW5lck5hbWU6IGlucHV0LmNvbnRhaW5lck5hbWUgfSxcclxuICAgIH0sXHJcbiAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSwuLi5jb25maWcgfSk7XHJcbiAgXHJcblxyXG4gIG1vdmUgPSAoaWQ6IHN0cmluZywgaW5wdXQ6IE1vdmVEaXJlY3RvcnlJbnB1dCwgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBEaXJlY3RvcnlEZXNjcmlwdG9yRHRvPih7XHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIHVybDogYC9hcGkvZmlsZS1leHBsb3Jlci9kaXJlY3Rvcmllcy8ke2lkfS9tb3ZlYCxcclxuICAgICAgYm9keTogaW5wdXQsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG4gIFxyXG5cclxuICB1cGRhdGUgPSAoaWQ6IHN0cmluZywgaW5wdXQ6IFVwZGF0ZURpcmVjdG9yeUlucHV0LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIERpcmVjdG9yeURlc2NyaXB0b3JEdG8+KHtcclxuICAgICAgbWV0aG9kOiAnUFVUJyxcclxuICAgICAgdXJsOiBgL2FwaS9maWxlLWV4cGxvcmVyL2RpcmVjdG9yaWVzLyR7aWR9YCxcclxuICAgICAgYm9keTogaW5wdXQsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSkge31cclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './file-descriptor.service';
2
+ export * from './models';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWxlLWV4cGxvcmVyL3NyYy9saWIvcHJveHkvZGlnbml0ZS9maWxlLWV4cGxvcmVyL2RpcmVjdG9yaWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtZGVzY3JpcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmlsZS1leHBsb3Jlci9zcmMvbGliL3Byb3h5L2RpZ25pdGUvZmlsZS1leHBsb3Jlci9kaXJlY3Rvcmllcy9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0ZW5zaWJsZUF1ZGl0ZWRFbnRpdHlEdG8sIEV4dGVuc2libGVFbnRpdHlEdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEaXJlY3RvcnlJbnB1dCB7XHJcbiAgY29udGFpbmVyTmFtZTogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBwYXJlbnRJZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlEZXNjcmlwdG9yRHRvIGV4dGVuZHMgRXh0ZW5zaWJsZUF1ZGl0ZWRFbnRpdHlEdG88c3RyaW5nPiB7XHJcbiAgY29udGFpbmVyTmFtZT86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIG9yZGVyOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5RGVzY3JpcHRvckluZm9EdG8gZXh0ZW5kcyBFeHRlbnNpYmxlRW50aXR5RHRvPHN0cmluZz4ge1xyXG4gIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBwYXJlbnRJZD86IHN0cmluZztcclxuICBvcmRlcjogbnVtYmVyO1xyXG4gIGNoaWxkcmVuOiBEaXJlY3RvcnlEZXNjcmlwdG9ySW5mb0R0b1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdldERpcmVjdG9yaWVzSW5wdXQge1xyXG4gIGNvbnRhaW5lck5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb3ZlRGlyZWN0b3J5SW5wdXQge1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIG9yZGVyOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlRGlyZWN0b3J5SW5wdXQge1xyXG4gIG5hbWU6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@abp/ng.core";
4
+ class FileDescriptorService {
5
+ restService;
6
+ apiName = 'FileExplorer';
7
+ create = (input, config) => this.restService.request({
8
+ method: 'POST',
9
+ url: '/api/file-explorer/files',
10
+ params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
11
+ body: input.file,
12
+ }, { apiName: this.apiName, ...config });
13
+ delete = (id, config) => this.restService.request({
14
+ method: 'DELETE',
15
+ url: `/api/file-explorer/files/${id}`,
16
+ }, { apiName: this.apiName, ...config });
17
+ download = (containerName, blobName, fileName, config) => this.restService.request({
18
+ method: 'GET',
19
+ url: `/api/file-explorer/files/download/${containerName}/${blobName}`,
20
+ params: { fileName },
21
+ }, { apiName: this.apiName, ...config });
22
+ get = (id, config) => this.restService.request({
23
+ method: 'GET',
24
+ url: `/api/file-explorer/files/${id}`,
25
+ }, { apiName: this.apiName, ...config });
26
+ getFileContainerConfiguration = (containerName, config) => this.restService.request({
27
+ method: 'GET',
28
+ url: '/api/file-explorer/files/configuration',
29
+ params: { containerName },
30
+ }, { apiName: this.apiName, ...config });
31
+ getList = (input, config) => this.restService.request({
32
+ method: 'GET',
33
+ url: '/api/file-explorer/files',
34
+ 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 },
35
+ }, { apiName: this.apiName, ...config });
36
+ getStream = (containerName, blobName, imageResize, config) => this.restService.request({
37
+ method: 'GET',
38
+ responseType: 'blob',
39
+ url: `/api/file-explorer/files/${containerName}/${blobName}`,
40
+ params: { width: imageResize.width, height: imageResize.height },
41
+ }, { apiName: this.apiName, ...config });
42
+ update = (id, input, config) => this.restService.request({
43
+ method: 'PUT',
44
+ url: `/api/file-explorer/files/${id}`,
45
+ body: input,
46
+ }, { apiName: this.apiName, ...config });
47
+ constructor(restService) {
48
+ this.restService = restService;
49
+ }
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDescriptorService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable });
51
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDescriptorService, providedIn: 'root' });
52
+ }
53
+ export { FileDescriptorService };
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDescriptorService, decorators: [{
55
+ type: Injectable,
56
+ args: [{
57
+ providedIn: 'root',
58
+ }]
59
+ }], ctorParameters: function () { return [{ type: i1.RestService }]; } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kZXNjcmlwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9maWxlLWV4cGxvcmVyL3NyYy9saWIvcHJveHkvZGlnbml0ZS9maWxlLWV4cGxvcmVyL2ZpbGVzL2ZpbGUtZGVzY3JpcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQyxNQUdhLHFCQUFxQjtJQTJFWjtJQTFFcEIsT0FBTyxHQUFHLGNBQWMsQ0FBQztJQUd6QixNQUFNLEdBQUcsQ0FBQyxLQUFzQixFQUFFLE1BQTZCLEVBQUUsRUFBRSxDQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBeUI7UUFDL0MsTUFBTSxFQUFFLE1BQU07UUFDZCxHQUFHLEVBQUUsMEJBQTBCO1FBQy9CLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ2xJLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtLQUNqQixFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBR3ZDLE1BQU0sR0FBRyxDQUFDLEVBQVUsRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVk7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxFQUFFLDRCQUE0QixFQUFFLEVBQUU7S0FDdEMsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUd2QyxRQUFR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QTNFckMscUJBQXFCOzRHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7U0FFUCxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENyZWF0ZUZpbGVJbnB1dCwgRmlsZUNvbnRhaW5lckNvbmZpZ3VyYXRpb25EdG8sIEZpbGVEZXNjcmlwdG9yRHRvLCBHZXRGaWxlc0lucHV0LCBJbWFnZVJlc2l6ZUlucHV0LCBVcGRhdGVGaWxlSW5wdXQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBQYWdlZFJlc3VsdER0byB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBGaWxlUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vbWljcm9zb2Z0L2FzcC1uZXQtY29yZS9tdmMvbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlRGVzY3JpcHRvclNlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnRmlsZUV4cGxvcmVyJztcclxuICBcclxuXHJcbiAgY3JlYXRlID0gKGlucHV0OiBDcmVhdGVGaWxlSW5wdXQsIGNvbmZpZz86IFBhcnRpYWw8UmVzdC5Db25maWc+KSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgRmlsZURlc2NyaXB0b3JEdG8+KHtcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIHVybDogJy9hcGkvZmlsZS1leHBsb3Jlci9maWxlcycsXHJcbiAgICAgIHBhcmFtczogeyBjb250YWluZXJOYW1lOiBpbnB1dC5jb250YWluZXJOYW1lLCBjZWxsTmFtZTogaW5wdXQuY2VsbE5hbWUsIGRpcmVjdG9yeUlkOiBpbnB1dC5kaXJlY3RvcnlJZCwgZW50aXR5SWQ6IGlucHV0LmVudGl0eUlkIH0sXHJcbiAgICAgIGJvZHk6IGlucHV0LmZpbGUsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG4gIFxyXG5cclxuICBkZWxldGUgPSAoaWQ6IHN0cmluZywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCB2b2lkPih7XHJcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXHJcbiAgICAgIHVybDogYC9hcGkvZmlsZS1leHBsb3Jlci9maWxlcy8ke2lkfWAsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG4gIFxyXG5cclxuICBkb3dubG9hZCA9IChjb250YWluZXJOYW1lOiBzdHJpbmcsIGJsb2JOYW1lOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcsIGNvbmZpZz86IFBhcnRpYWw8UmVzdC5Db25maWc+KSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgRmlsZVJlc3VsdD4oe1xyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICB1cmw6IGAvYXBpL2ZpbGUtZXhwbG9yZXIvZmlsZXMvZG93bmxvYWQvJHtjb250YWluZXJOYW1lfS8ke2Jsb2JOYW1lfWAsXHJcbiAgICAgIHBhcmFtczogeyBmaWxlTmFtZSB9LFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuICBcclxuXHJcbiAgZ2V0ID0gKGlkOiBzdHJpbmcsIGNvbmZpZz86IFBhcnRpYWw8UmVzdC5Db25maWc+KSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgRmlsZURlc2NyaXB0b3JEdG8+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgdXJsOiBgL2FwaS9maWxlLWV4cGxvcmVyL2ZpbGVzLyR7aWR9YCxcclxuICAgIH0sXHJcbiAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSwuLi5jb25maWcgfSk7XHJcbiAgXHJcblxyXG4gIGdldEZpbGVDb250YWluZXJDb25maWd1cmF0aW9uID0gKGNvbnRhaW5lck5hbWU6IHN0cmluZywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBGaWxlQ29udGFpbmVyQ29uZmlndXJhdGlvbkR0bz4oe1xyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICB1cmw6ICcvYXBpL2ZpbGUtZXhwbG9yZXIvZmlsZXMvY29uZmlndXJhdGlvbicsXHJcbiAgICAgIHBhcmFtczogeyBjb250YWluZXJOYW1lIH0sXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG4gIFxyXG5cclxuICBnZXRMaXN0ID0gKGlucHV0OiBHZXRGaWxlc0lucHV0LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIFBhZ2VkUmVzdWx0RHRvPEZpbGVEZXNjcmlwdG9yRHRvPj4oe1xyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICB1cmw6ICcvYXBpL2ZpbGUtZXhwbG9yZXIvZmlsZXMnLFxyXG4gICAgICBwYXJhbXM6IHsgY29udGFpbmVyTmFtZTogaW5wdXQuY29udGFpbmVyTmFtZSwgZGlyZWN0b3J5SWQ6IGlucHV0LmRpcmVjdG9yeUlkLCBjcmVhdG9ySWQ6IGlucHV0LmNyZWF0b3JJZCwgZmlsdGVyOiBpbnB1dC5maWx0ZXIsIGVudGl0eUlkOiBpbnB1dC5lbnRpdHlJZCwgc29ydGluZzogaW5wdXQuc29ydGluZywgc2tpcENvdW50OiBpbnB1dC5za2lwQ291bnQsIG1heFJlc3VsdENvdW50OiBpbnB1dC5tYXhSZXN1bHRDb3VudCB9LFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuICBcclxuXHJcbiAgZ2V0U3RyZWFtID0gKGNvbnRhaW5lck5hbWU6IHN0cmluZywgYmxvYk5hbWU6IHN0cmluZywgaW1hZ2VSZXNpemU/OiBJbWFnZVJlc2l6ZUlucHV0LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIEJsb2I+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgIHVybDogYC9hcGkvZmlsZS1leHBsb3Jlci9maWxlcy8ke2NvbnRhaW5lck5hbWV9LyR7YmxvYk5hbWV9YCxcclxuICAgICAgcGFyYW1zOiB7IHdpZHRoOiBpbWFnZVJlc2l6ZS53aWR0aCwgaGVpZ2h0OiBpbWFnZVJlc2l6ZS5oZWlnaHQgfSxcclxuICAgIH0sXHJcbiAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSwuLi5jb25maWcgfSk7XHJcbiAgXHJcblxyXG4gIHVwZGF0ZSA9IChpZDogc3RyaW5nLCBpbnB1dDogVXBkYXRlRmlsZUlucHV0LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIEZpbGVEZXNjcmlwdG9yRHRvPih7XHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIHVybDogYC9hcGkvZmlsZS1leHBsb3Jlci9maWxlcy8ke2lkfWAsXHJcbiAgICAgIGJvZHk6IGlucHV0LFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UpIHt9XHJcbn1cclxuIl19