@rs-pk/asset-management 1.0.0
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/README.md +24 -0
- package/bundles/rs-pk-asset-management.umd.js +6474 -0
- package/bundles/rs-pk-asset-management.umd.js.map +1 -0
- package/bundles/rs-pk-asset-management.umd.min.js +16 -0
- package/bundles/rs-pk-asset-management.umd.min.js.map +1 -0
- package/esm2015/lib/asset-management.component.js +147 -0
- package/esm2015/lib/asset-management.module.js +179 -0
- package/esm2015/lib/asset-management.service.js +45 -0
- package/esm2015/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +143 -0
- package/esm2015/lib/components/partial/asset-dialog/asset-dialog.component.js +373 -0
- package/esm2015/lib/components/partial/asset-item/asset-item.component.js +165 -0
- package/esm2015/lib/components/partial/asset-list/asset-list.component.js +239 -0
- package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +108 -0
- package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +100 -0
- package/esm2015/lib/components/partial/breadcrumb/breadcrumb.component.js +115 -0
- package/esm2015/lib/components/partial/delete-dialog/delete-dialog.component.js +139 -0
- package/esm2015/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +148 -0
- package/esm2015/lib/components/partial/file-item/file-item.component.js +136 -0
- package/esm2015/lib/components/partial/file-list/file-list.component.js +72 -0
- package/esm2015/lib/components/partial/folder-item/folder-item.component.js +114 -0
- package/esm2015/lib/components/partial/folder-list/folder-list.component.js +69 -0
- package/esm2015/lib/components/partial/node-details/node-details.component.js +402 -0
- package/esm2015/lib/components/partial/node-tree/node-tree.component.js +330 -0
- package/esm2015/lib/components/partial/search-box/search-box.component.js +158 -0
- package/esm2015/lib/components/partial/sort-items/sort-items.component.js +99 -0
- package/esm2015/lib/components/partial/upload-dialog/upload-dialog.component.js +136 -0
- package/esm2015/lib/components/partial/upload-file/upload-file.component.js +102 -0
- package/esm2015/lib/components/ui/drag-to-resize/drag-to-resize.component.js +96 -0
- package/esm2015/lib/components/ui/input-file/input-file.component.js +49 -0
- package/esm2015/lib/components/ui/modal/modal.component.js +34 -0
- package/esm2015/lib/components/ui/search-not-found/search-not-found.component.js +41 -0
- package/esm2015/lib/configs/admin.config.js +22 -0
- package/esm2015/lib/contanst/data-image.js +12 -0
- package/esm2015/lib/contanst/index.js +6 -0
- package/esm2015/lib/datasources/index.js +6 -0
- package/esm2015/lib/datasources/node-tree.datasource.js +179 -0
- package/esm2015/lib/directives/dialogTrigger.directive.js +47 -0
- package/esm2015/lib/directives/directives.module.js +20 -0
- package/esm2015/lib/directives/dnd.directive.js +57 -0
- package/esm2015/lib/models/asset-file.model.js +57 -0
- package/esm2015/lib/models/asset.model.js +135 -0
- package/esm2015/lib/models/file-type.enum.js +11 -0
- package/esm2015/lib/models/file.model.js +91 -0
- package/esm2015/lib/models/index.js +12 -0
- package/esm2015/lib/models/node-tree.model.js +32 -0
- package/esm2015/lib/models/sort.enum.js +23 -0
- package/esm2015/lib/pipes/datetime.pipe.js +79 -0
- package/esm2015/lib/pipes/file-size.pipe.js +54 -0
- package/esm2015/lib/services/asset.service.js +224 -0
- package/esm2015/lib/services/base.service.js +49 -0
- package/esm2015/lib/services/env-config.service.js +18 -0
- package/esm2015/lib/services/file.service.js +106 -0
- package/esm2015/lib/services/index.js +11 -0
- package/esm2015/lib/services/node-tree.service.js +212 -0
- package/esm2015/lib/services/upload-assets.service.js +203 -0
- package/esm2015/lib/store/actions.action.js +125 -0
- package/esm2015/lib/store/index.js +7 -0
- package/esm2015/lib/store/reducer.js +115 -0
- package/esm2015/public-api.js +34 -0
- package/esm2015/rs-pk-asset-management.js +17 -0
- package/esm5/lib/asset-management.component.js +162 -0
- package/esm5/lib/asset-management.module.js +180 -0
- package/esm5/lib/asset-management.service.js +54 -0
- package/esm5/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +161 -0
- package/esm5/lib/components/partial/asset-dialog/asset-dialog.component.js +417 -0
- package/esm5/lib/components/partial/asset-item/asset-item.component.js +184 -0
- package/esm5/lib/components/partial/asset-list/asset-list.component.js +266 -0
- package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +123 -0
- package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +115 -0
- package/esm5/lib/components/partial/breadcrumb/breadcrumb.component.js +138 -0
- package/esm5/lib/components/partial/delete-dialog/delete-dialog.component.js +154 -0
- package/esm5/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +166 -0
- package/esm5/lib/components/partial/file-item/file-item.component.js +151 -0
- package/esm5/lib/components/partial/file-list/file-list.component.js +93 -0
- package/esm5/lib/components/partial/folder-item/folder-item.component.js +126 -0
- package/esm5/lib/components/partial/folder-list/folder-list.component.js +82 -0
- package/esm5/lib/components/partial/node-details/node-details.component.js +443 -0
- package/esm5/lib/components/partial/node-tree/node-tree.component.js +413 -0
- package/esm5/lib/components/partial/search-box/search-box.component.js +184 -0
- package/esm5/lib/components/partial/sort-items/sort-items.component.js +107 -0
- package/esm5/lib/components/partial/upload-dialog/upload-dialog.component.js +151 -0
- package/esm5/lib/components/partial/upload-file/upload-file.component.js +130 -0
- package/esm5/lib/components/ui/drag-to-resize/drag-to-resize.component.js +117 -0
- package/esm5/lib/components/ui/input-file/input-file.component.js +55 -0
- package/esm5/lib/components/ui/modal/modal.component.js +39 -0
- package/esm5/lib/components/ui/search-not-found/search-not-found.component.js +43 -0
- package/esm5/lib/configs/admin.config.js +22 -0
- package/esm5/lib/contanst/data-image.js +12 -0
- package/esm5/lib/contanst/index.js +6 -0
- package/esm5/lib/datasources/index.js +6 -0
- package/esm5/lib/datasources/node-tree.datasource.js +239 -0
- package/esm5/lib/directives/dialogTrigger.directive.js +53 -0
- package/esm5/lib/directives/directives.module.js +25 -0
- package/esm5/lib/directives/dnd.directive.js +80 -0
- package/esm5/lib/models/asset-file.model.js +69 -0
- package/esm5/lib/models/asset.model.js +154 -0
- package/esm5/lib/models/file-type.enum.js +11 -0
- package/esm5/lib/models/file.model.js +99 -0
- package/esm5/lib/models/index.js +12 -0
- package/esm5/lib/models/node-tree.model.js +37 -0
- package/esm5/lib/models/sort.enum.js +23 -0
- package/esm5/lib/pipes/datetime.pipe.js +83 -0
- package/esm5/lib/pipes/file-size.pipe.js +63 -0
- package/esm5/lib/services/asset.service.js +274 -0
- package/esm5/lib/services/base.service.js +57 -0
- package/esm5/lib/services/env-config.service.js +18 -0
- package/esm5/lib/services/file.service.js +127 -0
- package/esm5/lib/services/index.js +11 -0
- package/esm5/lib/services/node-tree.service.js +278 -0
- package/esm5/lib/services/upload-assets.service.js +260 -0
- package/esm5/lib/store/actions.action.js +143 -0
- package/esm5/lib/store/index.js +7 -0
- package/esm5/lib/store/reducer.js +116 -0
- package/esm5/public-api.js +34 -0
- package/esm5/rs-pk-asset-management.js +17 -0
- package/fesm2015/rs-pk-asset-management.js +5429 -0
- package/fesm2015/rs-pk-asset-management.js.map +1 -0
- package/fesm5/rs-pk-asset-management.js +6244 -0
- package/fesm5/rs-pk-asset-management.js.map +1 -0
- package/lib/asset-management.component.d.ts +21 -0
- package/lib/asset-management.module.d.ts +5 -0
- package/lib/asset-management.service.d.ts +7 -0
- package/lib/components/partial/add-folder-dialog/add-folder-dialog.component.d.ts +27 -0
- package/lib/components/partial/asset-dialog/asset-dialog.component.d.ts +52 -0
- package/lib/components/partial/asset-item/asset-item.component.d.ts +25 -0
- package/lib/components/partial/asset-list/asset-list.component.d.ts +22 -0
- package/lib/components/partial/asset-management-dialog/asset-management-dialog.component.d.ts +17 -0
- package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +19 -0
- package/lib/components/partial/breadcrumb/breadcrumb.component.d.ts +17 -0
- package/lib/components/partial/delete-dialog/delete-dialog.component.d.ts +24 -0
- package/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.d.ts +28 -0
- package/lib/components/partial/file-item/file-item.component.d.ts +27 -0
- package/lib/components/partial/file-list/file-list.component.d.ts +12 -0
- package/lib/components/partial/folder-item/folder-item.component.d.ts +14 -0
- package/lib/components/partial/folder-list/folder-list.component.d.ts +11 -0
- package/lib/components/partial/node-details/node-details.component.d.ts +29 -0
- package/lib/components/partial/node-tree/node-tree.component.d.ts +34 -0
- package/lib/components/partial/search-box/search-box.component.d.ts +18 -0
- package/lib/components/partial/sort-items/sort-items.component.d.ts +21 -0
- package/lib/components/partial/upload-dialog/upload-dialog.component.d.ts +24 -0
- package/lib/components/partial/upload-file/upload-file.component.d.ts +18 -0
- package/lib/components/ui/drag-to-resize/drag-to-resize.component.d.ts +15 -0
- package/lib/components/ui/input-file/input-file.component.d.ts +9 -0
- package/lib/components/ui/modal/modal.component.d.ts +7 -0
- package/lib/components/ui/search-not-found/search-not-found.component.d.ts +8 -0
- package/lib/configs/admin.config.d.ts +3 -0
- package/lib/contanst/data-image.d.ts +3 -0
- package/lib/contanst/index.d.ts +1 -0
- package/lib/datasources/index.d.ts +1 -0
- package/lib/datasources/node-tree.datasource.d.ts +24 -0
- package/lib/directives/dialogTrigger.directive.d.ts +7 -0
- package/lib/directives/directives.module.d.ts +5 -0
- package/lib/directives/dnd.directive.d.ts +7 -0
- package/lib/models/asset-file.model.d.ts +26 -0
- package/lib/models/asset.model.d.ts +61 -0
- package/lib/models/file-type.enum.d.ts +4 -0
- package/lib/models/file.model.d.ts +41 -0
- package/lib/models/index.d.ts +7 -0
- package/lib/models/node-tree.model.d.ts +9 -0
- package/lib/models/sort.enum.d.ts +9 -0
- package/lib/pipes/datetime.pipe.d.ts +13 -0
- package/lib/pipes/file-size.pipe.d.ts +5 -0
- package/lib/services/asset.service.d.ts +35 -0
- package/lib/services/base.service.d.ts +20 -0
- package/lib/services/env-config.service.d.ts +7 -0
- package/lib/services/file.service.d.ts +13 -0
- package/lib/services/index.d.ts +6 -0
- package/lib/services/node-tree.service.d.ts +24 -0
- package/lib/services/upload-assets.service.d.ts +42 -0
- package/lib/store/actions.action.d.ts +51 -0
- package/lib/store/index.d.ts +2 -0
- package/lib/store/reducer.d.ts +18 -0
- package/package.json +28 -0
- package/public-api.d.ts +26 -0
- package/rs-pk-asset-management.d.ts +12 -0
- package/rs-pk-asset-management.metadata.json +1 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
9
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
+
import { MatInputModule } from '@angular/material/input';
|
|
11
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
12
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
13
|
+
import { MatTreeModule } from '@angular/material/tree';
|
|
14
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
15
|
+
import { MatTableModule } from '@angular/material/table';
|
|
16
|
+
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
17
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
18
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
19
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
20
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
21
|
+
import { UploadAssetsService, AssetService, FileService, NodeTreeService, BaseHttpClient } from './services/index';
|
|
22
|
+
import { AssetManagementComponent } from './asset-management.component';
|
|
23
|
+
import { DirectivesModule } from './directives/directives.module';
|
|
24
|
+
// UI
|
|
25
|
+
import { InputFileComponent } from './components/ui//input-file/input-file.component';
|
|
26
|
+
import { ModalComponent } from './components/ui//modal/modal.component';
|
|
27
|
+
import { SearchNotFoundComponent } from './components/ui//search-not-found/search-not-found.component';
|
|
28
|
+
// Partials
|
|
29
|
+
import { FileItemComponent } from './components/partial/file-item/file-item.component';
|
|
30
|
+
import { FileListComponent } from './components/partial/file-list/file-list.component';
|
|
31
|
+
import { UploadFileComponent } from './components/partial/upload-file/upload-file.component';
|
|
32
|
+
import { AddFolderDialogComponent } from './components/partial/add-folder-dialog/add-folder-dialog.component';
|
|
33
|
+
import { EditFolderDialogComponent } from './components/partial/edit-folder-dialog/edit-folder-dialog.component';
|
|
34
|
+
import { DeleteDialogComponent } from './components/partial/delete-dialog/delete-dialog.component';
|
|
35
|
+
import { UploadDialogComponent } from './components/partial/upload-dialog/upload-dialog.component';
|
|
36
|
+
import { FolderItemComponent } from './components/partial/folder-item/folder-item.component';
|
|
37
|
+
import { FolderListComponent } from './components/partial/folder-list/folder-list.component';
|
|
38
|
+
import { AssetListComponent } from './components/partial/asset-list/asset-list.component';
|
|
39
|
+
import { AssetItemComponent } from './components/partial/asset-item/asset-item.component';
|
|
40
|
+
import { AssetManagementDialogComponent } from './components/partial/asset-management-dialog/asset-management-dialog.component';
|
|
41
|
+
import { NodeTreeComponent } from './components/partial/node-tree/node-tree.component';
|
|
42
|
+
import { AssetDialogComponent } from './components/partial/asset-dialog/asset-dialog.component';
|
|
43
|
+
import { BreadcrumbComponent } from './components/partial/breadcrumb/breadcrumb.component';
|
|
44
|
+
import { SearchBoxComponent } from './components/partial/search-box/search-box.component';
|
|
45
|
+
import { SortItemsComponent } from './components/partial/sort-items/sort-items.component';
|
|
46
|
+
import { AssetWrapperComponent } from './components/partial/asset-wrapper/asset-wrapper.component';
|
|
47
|
+
import { NodeDetailsComponent } from './components/partial/node-details/node-details.component';
|
|
48
|
+
import { DragToResizeComponent } from './components/ui/drag-to-resize/drag-to-resize.component';
|
|
49
|
+
// Pipes
|
|
50
|
+
import { FileSizePipe } from './pipes/file-size.pipe';
|
|
51
|
+
import { LocalDatePipe, LocalDateTimePipe } from './pipes/datetime.pipe';
|
|
52
|
+
// SERVICES
|
|
53
|
+
/** @type {?} */
|
|
54
|
+
const SERVICES = [
|
|
55
|
+
UploadAssetsService,
|
|
56
|
+
AssetService,
|
|
57
|
+
FileService,
|
|
58
|
+
NodeTreeService,
|
|
59
|
+
BaseHttpClient
|
|
60
|
+
];
|
|
61
|
+
/** @type {?} */
|
|
62
|
+
const COMPONENTS = [
|
|
63
|
+
// UI
|
|
64
|
+
InputFileComponent,
|
|
65
|
+
ModalComponent,
|
|
66
|
+
SearchNotFoundComponent,
|
|
67
|
+
DragToResizeComponent,
|
|
68
|
+
// Partials
|
|
69
|
+
UploadFileComponent,
|
|
70
|
+
FileItemComponent,
|
|
71
|
+
FileListComponent,
|
|
72
|
+
UploadDialogComponent,
|
|
73
|
+
AddFolderDialogComponent,
|
|
74
|
+
EditFolderDialogComponent,
|
|
75
|
+
DeleteDialogComponent,
|
|
76
|
+
AssetDialogComponent,
|
|
77
|
+
FolderListComponent,
|
|
78
|
+
NodeDetailsComponent,
|
|
79
|
+
FolderItemComponent,
|
|
80
|
+
AssetListComponent,
|
|
81
|
+
AssetItemComponent,
|
|
82
|
+
NodeTreeComponent,
|
|
83
|
+
BreadcrumbComponent,
|
|
84
|
+
SearchBoxComponent,
|
|
85
|
+
SortItemsComponent,
|
|
86
|
+
AssetWrapperComponent,
|
|
87
|
+
AssetManagementDialogComponent,
|
|
88
|
+
];
|
|
89
|
+
/** @type {?} */
|
|
90
|
+
const ENTRY_COMPONENTS = [
|
|
91
|
+
ModalComponent,
|
|
92
|
+
UploadDialogComponent,
|
|
93
|
+
AddFolderDialogComponent,
|
|
94
|
+
EditFolderDialogComponent,
|
|
95
|
+
DeleteDialogComponent,
|
|
96
|
+
AssetDialogComponent,
|
|
97
|
+
AssetManagementDialogComponent,
|
|
98
|
+
];
|
|
99
|
+
/**
|
|
100
|
+
* @param {?} config
|
|
101
|
+
* @return {?}
|
|
102
|
+
*/
|
|
103
|
+
export function AMFactory(config) {
|
|
104
|
+
/** @type {?} */
|
|
105
|
+
const fn = (/**
|
|
106
|
+
* @return {?}
|
|
107
|
+
*/
|
|
108
|
+
() => {
|
|
109
|
+
return new Promise((/**
|
|
110
|
+
* @param {?} res
|
|
111
|
+
* @return {?}
|
|
112
|
+
*/
|
|
113
|
+
res => {
|
|
114
|
+
return setTimeout((/**
|
|
115
|
+
* @return {?}
|
|
116
|
+
*/
|
|
117
|
+
() => res(config)));
|
|
118
|
+
}));
|
|
119
|
+
});
|
|
120
|
+
return fn;
|
|
121
|
+
}
|
|
122
|
+
export class AssetManagementModule {
|
|
123
|
+
constructor() { }
|
|
124
|
+
}
|
|
125
|
+
AssetManagementModule.decorators = [
|
|
126
|
+
{ type: NgModule, args: [{
|
|
127
|
+
declarations: [
|
|
128
|
+
...COMPONENTS,
|
|
129
|
+
AssetManagementComponent,
|
|
130
|
+
FileSizePipe,
|
|
131
|
+
LocalDatePipe,
|
|
132
|
+
LocalDateTimePipe,
|
|
133
|
+
],
|
|
134
|
+
imports: [
|
|
135
|
+
DirectivesModule,
|
|
136
|
+
CommonModule,
|
|
137
|
+
FormsModule,
|
|
138
|
+
ReactiveFormsModule,
|
|
139
|
+
MatDialogModule,
|
|
140
|
+
MatButtonModule,
|
|
141
|
+
MatInputModule,
|
|
142
|
+
MatIconModule,
|
|
143
|
+
MatDialogModule,
|
|
144
|
+
MatButtonModule,
|
|
145
|
+
MatInputModule,
|
|
146
|
+
MatIconModule,
|
|
147
|
+
MatTooltipModule,
|
|
148
|
+
MatPaginatorModule,
|
|
149
|
+
MatTableModule,
|
|
150
|
+
MatProgressBarModule,
|
|
151
|
+
MatMenuModule,
|
|
152
|
+
MatCheckboxModule,
|
|
153
|
+
MatTreeModule,
|
|
154
|
+
MatSelectModule,
|
|
155
|
+
MatProgressSpinnerModule,
|
|
156
|
+
],
|
|
157
|
+
exports: [
|
|
158
|
+
...COMPONENTS,
|
|
159
|
+
AssetManagementComponent,
|
|
160
|
+
DirectivesModule,
|
|
161
|
+
FileSizePipe,
|
|
162
|
+
LocalDatePipe,
|
|
163
|
+
LocalDateTimePipe,
|
|
164
|
+
],
|
|
165
|
+
providers: [
|
|
166
|
+
...SERVICES,
|
|
167
|
+
{
|
|
168
|
+
provide: APP_INITIALIZER,
|
|
169
|
+
useFactory: AMFactory,
|
|
170
|
+
deps: SERVICES,
|
|
171
|
+
multi: true,
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
entryComponents: [...ENTRY_COMPONENTS],
|
|
175
|
+
},] }
|
|
176
|
+
];
|
|
177
|
+
/** @nocollapse */
|
|
178
|
+
AssetManagementModule.ctorParameters = () => [];
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hc3NldC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFDTCxt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RSxJQUFJO3FCQUNaO2lCQUNGO2dCQUNELGVBQWUsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7YUFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5cbmltcG9ydCB7XG4gIFVwbG9hZEFzc2V0c1NlcnZpY2UsXG4gIEFzc2V0U2VydmljZSxcbiAgRmlsZVNlcnZpY2UsXG4gIE5vZGVUcmVlU2VydmljZSxcbiAgQmFzZUh0dHBDbGllbnRcbn0gZnJvbSAnLi9zZXJ2aWNlcy9pbmRleCc7XG5cbmltcG9ydCB7IEFzc2V0TWFuYWdlbWVudENvbXBvbmVudCB9IGZyb20gJy4vYXNzZXQtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XG5cbi8vIFVJXG5pbXBvcnQgeyBJbnB1dEZpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdWkvL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdWkvL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91aS8vc2VhcmNoLW5vdC1mb3VuZC9zZWFyY2gtbm90LWZvdW5kLmNvbXBvbmVudCc7XG5cbi8vIFBhcnRpYWxzXG5pbXBvcnQgeyBGaWxlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL2ZpbGUtaXRlbS9maWxlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhcnRpYWwvZmlsZS1saXN0L2ZpbGUtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRGb2xkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFydGlhbC9hZGQtZm9sZGVyLWRpYWxvZy9hZGQtZm9sZGVyLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdEZvbGRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL2VkaXQtZm9sZGVyLWRpYWxvZy9lZGl0LWZvbGRlci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERlbGV0ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL2RlbGV0ZS1kaWFsb2cvZGVsZXRlLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhcnRpYWwvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2xkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhcnRpYWwvZm9sZGVyLWl0ZW0vZm9sZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvbGRlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFydGlhbC9mb2xkZXItbGlzdC9mb2xkZXItbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzZXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhcnRpYWwvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFydGlhbC9hc3NldC1pdGVtL2Fzc2V0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0TWFuYWdlbWVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL2Fzc2V0LW1hbmFnZW1lbnQtZGlhbG9nL2Fzc2V0LW1hbmFnZW1lbnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL25vZGUtdHJlZS9ub2RlLXRyZWUuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhcnRpYWwvYXNzZXQtZGlhbG9nL2Fzc2V0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhcnRpYWwvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb3J0SXRlbXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFydGlhbC9zb3J0LWl0ZW1zL3NvcnQtaXRlbXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFzc2V0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXJ0aWFsL2Fzc2V0LXdyYXBwZXIvYXNzZXQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLWRldGFpbHMvbm9kZS1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcmFnVG9SZXNpemVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdWkvZHJhZy10by1yZXNpemUvZHJhZy10by1yZXNpemUuY29tcG9uZW50JztcblxuXG4vLyBQaXBlc1xuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcy9maWxlLXNpemUucGlwZSc7XG5pbXBvcnQgeyBBTUNvbmZpZyB9IGZyb20gJy4vc2VydmljZXMvZW52LWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsRGF0ZVBpcGUsIExvY2FsRGF0ZVRpbWVQaXBlIH0gZnJvbSAnLi9waXBlcy9kYXRldGltZS5waXBlJztcblxuLy8gU0VSVklDRVNcbmNvbnN0IFNFUlZJQ0VTID0gW1xuICBVcGxvYWRBc3NldHNTZXJ2aWNlLFxuICBBc3NldFNlcnZpY2UsXG4gIEZpbGVTZXJ2aWNlLFxuICBOb2RlVHJlZVNlcnZpY2UsXG4gIEJhc2VIdHRwQ2xpZW50XG5dO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1xuICAvLyBVSVxuICBJbnB1dEZpbGVDb21wb25lbnQsXG4gIE1vZGFsQ29tcG9uZW50LFxuICBTZWFyY2hOb3RGb3VuZENvbXBvbmVudCxcbiAgRHJhZ1RvUmVzaXplQ29tcG9uZW50LFxuXG4gIC8vIFBhcnRpYWxzXG4gIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gIEZpbGVJdGVtQ29tcG9uZW50LFxuICBGaWxlTGlzdENvbXBvbmVudCxcbiAgVXBsb2FkRGlhbG9nQ29tcG9uZW50LFxuICBBZGRGb2xkZXJEaWFsb2dDb21wb25lbnQsXG4gIEVkaXRGb2xkZXJEaWFsb2dDb21wb25lbnQsXG4gIERlbGV0ZURpYWxvZ0NvbXBvbmVudCxcbiAgQXNzZXREaWFsb2dDb21wb25lbnQsXG4gIEZvbGRlckxpc3RDb21wb25lbnQsXG4gIE5vZGVEZXRhaWxzQ29tcG9uZW50LFxuICBGb2xkZXJJdGVtQ29tcG9uZW50LFxuICBBc3NldExpc3RDb21wb25lbnQsXG4gIEFzc2V0SXRlbUNvbXBvbmVudCxcbiAgTm9kZVRyZWVDb21wb25lbnQsXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gIFNlYXJjaEJveENvbXBvbmVudCxcbiAgU29ydEl0ZW1zQ29tcG9uZW50LFxuICBBc3NldFdyYXBwZXJDb21wb25lbnQsXG4gIEFzc2V0TWFuYWdlbWVudERpYWxvZ0NvbXBvbmVudCxcbl07XG5cbmNvbnN0IEVOVFJZX0NPTVBPTkVOVFMgPSBbXG4gIE1vZGFsQ29tcG9uZW50LFxuICBVcGxvYWREaWFsb2dDb21wb25lbnQsXG4gIEFkZEZvbGRlckRpYWxvZ0NvbXBvbmVudCxcbiAgRWRpdEZvbGRlckRpYWxvZ0NvbXBvbmVudCxcbiAgRGVsZXRlRGlhbG9nQ29tcG9uZW50LFxuICBBc3NldERpYWxvZ0NvbXBvbmVudCxcbiAgQXNzZXRNYW5hZ2VtZW50RGlhbG9nQ29tcG9uZW50LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIEFNRmFjdG9yeShjb25maWc6IEFNQ29uZmlnKSB7XG4gIGNvbnN0IGZuID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXMgPT4ge1xuICAgICAgcmV0dXJuIHNldFRpbWVvdXQoKCkgPT4gcmVzKGNvbmZpZykpO1xuICAgIH0pO1xuICB9O1xuICByZXR1cm4gZm47XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC4uLkNPTVBPTkVOVFMsXG4gICAgQXNzZXRNYW5hZ2VtZW50Q29tcG9uZW50LFxuICAgIEZpbGVTaXplUGlwZSxcbiAgICBMb2NhbERhdGVQaXBlLFxuICAgIExvY2FsRGF0ZVRpbWVQaXBlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgRGlyZWN0aXZlc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0VHJlZU1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uQ09NUE9ORU5UUyxcbiAgICBBc3NldE1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlc01vZHVsZSxcbiAgICBGaWxlU2l6ZVBpcGUsXG4gICAgTG9jYWxEYXRlUGlwZSxcbiAgICBMb2NhbERhdGVUaW1lUGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLi4uU0VSVklDRVMsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogQU1GYWN0b3J5LFxuICAgICAgZGVwczogU0VSVklDRVMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogWy4uLkVOVFJZX0NPTVBPTkVOVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBBc3NldE1hbmFnZW1lbnRNb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Injectable } from '@angular/core';
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/** @type {?} */
|
|
9
|
+
const eventDispatcher = new Subject();
|
|
10
|
+
export class AssetManagementService {
|
|
11
|
+
constructor() {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @return {?}
|
|
15
|
+
*/
|
|
16
|
+
getDispatcher() {
|
|
17
|
+
if (!this._dispatcher) {
|
|
18
|
+
this._dispatcher = eventDispatcher;
|
|
19
|
+
}
|
|
20
|
+
return this._dispatcher;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @param {?} action
|
|
24
|
+
* @return {?}
|
|
25
|
+
*/
|
|
26
|
+
dispatch(action) {
|
|
27
|
+
this.getDispatcher().next(action);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
AssetManagementService.decorators = [
|
|
31
|
+
{ type: Injectable, args: [{
|
|
32
|
+
providedIn: 'root'
|
|
33
|
+
},] }
|
|
34
|
+
];
|
|
35
|
+
/** @nocollapse */
|
|
36
|
+
AssetManagementService.ctorParameters = () => [];
|
|
37
|
+
/** @nocollapse */ AssetManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AssetManagementService_Factory() { return new AssetManagementService(); }, token: AssetManagementService, providedIn: "root" });
|
|
38
|
+
if (false) {
|
|
39
|
+
/**
|
|
40
|
+
* @type {?}
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
AssetManagementService.prototype._dispatcher;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJzLXBrL2Fzc2V0LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvYXNzZXQtbWFuYWdlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7OztNQUd6QixlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQW1CO0FBS3RELE1BQU0sT0FBTyxzQkFBc0I7SUFJakM7SUFDQSxDQUFDOzs7O0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO1NBQ3BDO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLE1BQXVCO1FBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7O1lBcEJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7Ozs7OztJQUdDLDZDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIEFDVElPTlMgZnJvbSAnLi9zdG9yZS9hY3Rpb25zLmFjdGlvbic7XG5cbmNvbnN0IGV2ZW50RGlzcGF0Y2hlciA9IG5ldyBTdWJqZWN0PEFDVElPTlMuQWN0aW9ucz4oKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGdldERpc3BhdGNoZXIoKSB7XG4gICAgaWYgKCF0aGlzLl9kaXNwYXRjaGVyKSB7XG4gICAgICB0aGlzLl9kaXNwYXRjaGVyID0gZXZlbnREaXNwYXRjaGVyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyO1xuICB9XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBBQ1RJT05TLkFjdGlvbnMpIHtcbiAgICB0aGlzLmdldERpc3BhdGNoZXIoKS5uZXh0KGFjdGlvbik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Inject } from '@angular/core';
|
|
6
|
+
import { FormBuilder, FormControl, Validators, } from '@angular/forms';
|
|
7
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import { takeUntil } from 'rxjs/operators';
|
|
10
|
+
import { FileService } from '../../../services/file.service';
|
|
11
|
+
/**
|
|
12
|
+
* @record
|
|
13
|
+
*/
|
|
14
|
+
function IData() { }
|
|
15
|
+
if (false) {
|
|
16
|
+
/** @type {?} */
|
|
17
|
+
IData.prototype.currentAssetId;
|
|
18
|
+
}
|
|
19
|
+
export class AddFolderDialogComponent {
|
|
20
|
+
/**
|
|
21
|
+
* @param {?} fb
|
|
22
|
+
* @param {?} data
|
|
23
|
+
* @param {?} dialogRef
|
|
24
|
+
* @param {?} fileService
|
|
25
|
+
*/
|
|
26
|
+
constructor(fb, data, dialogRef, fileService) {
|
|
27
|
+
this.fb = fb;
|
|
28
|
+
this.data = data;
|
|
29
|
+
this.dialogRef = dialogRef;
|
|
30
|
+
this.fileService = fileService;
|
|
31
|
+
this.isLoading = false;
|
|
32
|
+
this.errorMessage = '';
|
|
33
|
+
this.value = '';
|
|
34
|
+
this.destroy$ = new Subject();
|
|
35
|
+
this.form = new FormControl();
|
|
36
|
+
this.formGroup = this.fb.group({
|
|
37
|
+
name: ['', Validators.compose([Validators.required])],
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
ngOnInit() { }
|
|
44
|
+
/**
|
|
45
|
+
* @return {?}
|
|
46
|
+
*/
|
|
47
|
+
get disabled() {
|
|
48
|
+
const { value: name } = this.formGroup.controls.name;
|
|
49
|
+
return !name || !!this.errorMessage || this.isLoading;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @param {?} _event
|
|
53
|
+
* @return {?}
|
|
54
|
+
*/
|
|
55
|
+
onChange(_event) {
|
|
56
|
+
this.errorMessage = '';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @return {?}
|
|
60
|
+
*/
|
|
61
|
+
addFolder() {
|
|
62
|
+
const { value: name } = this.formGroup.controls.name;
|
|
63
|
+
this.isLoading = true;
|
|
64
|
+
this.fileService
|
|
65
|
+
.addFolder({
|
|
66
|
+
parentAssetId: this.data.currentAssetId,
|
|
67
|
+
folderName: name.trim(),
|
|
68
|
+
})
|
|
69
|
+
.pipe(takeUntil(this.destroy$))
|
|
70
|
+
.subscribe((/**
|
|
71
|
+
* @param {?} _res
|
|
72
|
+
* @return {?}
|
|
73
|
+
*/
|
|
74
|
+
(_res) => this.closeDialog(true)), (/**
|
|
75
|
+
* @param {?} err
|
|
76
|
+
* @return {?}
|
|
77
|
+
*/
|
|
78
|
+
err => {
|
|
79
|
+
this.isLoading = false;
|
|
80
|
+
this.errorMessage = err.ResponseMessage;
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @param {?=} res
|
|
85
|
+
* @return {?}
|
|
86
|
+
*/
|
|
87
|
+
closeDialog(res) {
|
|
88
|
+
this.dialogRef.close(res);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @return {?}
|
|
92
|
+
*/
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
this.destroy$.next(true);
|
|
95
|
+
this.destroy$.complete();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
AddFolderDialogComponent.decorators = [
|
|
99
|
+
{ type: Component, args: [{
|
|
100
|
+
selector: 'lib-add-folder-dialog',
|
|
101
|
+
template: "<lib-modal heading=\"Add a folder\">\n <ng-container content>\n <form (ngSubmit)=\"addFolder()\" [formGroup]=\"formGroup\" #form=\"ngForm\">\n <input\n (input)=\"onChange($event)\"\n matInput\n placeholder=\"Enter your folder name\"\n autocomplete=\"off\"\n required\n pattern=\".*\\S+.*\"\n formControlName=\"name\"\n />\n <mat-error *ngIf=\"formGroup?.controls?.name?.errors?.pattern\">\n This field does not allow only whitespace\n </mat-error>\n <mat-error *ngIf=\"errorMessage\">{{ errorMessage }}</mat-error>\n </form>\n </ng-container>\n <ng-container actions>\n <button mat-raised-button mat-dialog-close>Cancel</button>\n <button\n mat-raised-button\n color=\"primary\"\n (click)=\"addFolder()\"\n [class.loading]=\"isLoading\"\n [disabled]=\"disabled || formGroup?.controls?.name?.errors?.pattern\"\n >\n <ng-container *ngIf=\"isLoading\">\n <mat-spinner [diameter]=\"20\"></mat-spinner>\n </ng-container>\n <span>Add</span>\n </button>\n </ng-container>\n</lib-modal>\n",
|
|
102
|
+
styles: [":host::ng-deep .mat-dialog-title{padding-bottom:0!important}:host::ng-deep form{position:relative}:host::ng-deep form .mat-error{margin-top:0;position:absolute;left:0;bottom:-20px;line-height:15px;font-size:13px}:host::ng-deep .mat-dialog-content{padding-top:24px;padding-bottom:24px}:host::ng-deep .mat-dialog-actions{padding-top:5px}"]
|
|
103
|
+
}] }
|
|
104
|
+
];
|
|
105
|
+
/** @nocollapse */
|
|
106
|
+
AddFolderDialogComponent.ctorParameters = () => [
|
|
107
|
+
{ type: FormBuilder },
|
|
108
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
|
|
109
|
+
{ type: MatDialogRef },
|
|
110
|
+
{ type: FileService }
|
|
111
|
+
];
|
|
112
|
+
if (false) {
|
|
113
|
+
/** @type {?} */
|
|
114
|
+
AddFolderDialogComponent.prototype.isLoading;
|
|
115
|
+
/** @type {?} */
|
|
116
|
+
AddFolderDialogComponent.prototype.errorMessage;
|
|
117
|
+
/** @type {?} */
|
|
118
|
+
AddFolderDialogComponent.prototype.value;
|
|
119
|
+
/**
|
|
120
|
+
* @type {?}
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
AddFolderDialogComponent.prototype.destroy$;
|
|
124
|
+
/** @type {?} */
|
|
125
|
+
AddFolderDialogComponent.prototype.formGroup;
|
|
126
|
+
/** @type {?} */
|
|
127
|
+
AddFolderDialogComponent.prototype.form;
|
|
128
|
+
/**
|
|
129
|
+
* @type {?}
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
AddFolderDialogComponent.prototype.fb;
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
AddFolderDialogComponent.prototype.data;
|
|
135
|
+
/** @type {?} */
|
|
136
|
+
AddFolderDialogComponent.prototype.dialogRef;
|
|
137
|
+
/**
|
|
138
|
+
* @type {?}
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
AddFolderDialogComponent.prototype.fileService;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZvbGRlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJzLXBrL2Fzc2V0LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wYXJ0aWFsL2FkZC1mb2xkZXItZGlhbG9nL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBRTdELG9CQUVDOzs7SUFEQywrQkFBdUI7O0FBUXpCLE1BQU0sT0FBTyx3QkFBd0I7Ozs7Ozs7SUFPbkMsWUFDVSxFQUFlLEVBQ1MsSUFBVyxFQUNwQyxTQUFpRCxFQUNoRCxXQUF3QjtRQUh4QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ1MsU0FBSSxHQUFKLElBQUksQ0FBTztRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUF3QztRQUNoRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVYzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUN0RCxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsUUFBUSxLQUFJLENBQUM7Ozs7SUFFYixJQUFJLFFBQVE7Y0FDSixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQ3BELE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxNQUFhO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Ozs7SUFFRCxTQUFTO2NBQ0QsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVzthQUNiLFNBQVMsQ0FBQztZQUNULGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDeEIsQ0FBQzthQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVM7Ozs7UUFDUixDQUFDLElBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDOzs7O1FBQy9DLEdBQUcsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQzFDLENBQUMsRUFDRixDQUFDO0lBQ04sQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsR0FBYTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7O1lBM0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxzbkNBQWlEOzthQUVsRDs7OztZQW5CQyxXQUFXOzRDQTZCUixNQUFNLFNBQUMsZUFBZTtZQXhCbEIsWUFBWTtZQUlaLFdBQVc7Ozs7SUFZbEIsNkNBQXlCOztJQUN6QixnREFBeUI7O0lBQ3pCLHlDQUFrQjs7Ozs7SUFDbEIsNENBQW1EOztJQUNuRCw2Q0FBNEI7O0lBQzVCLHdDQUE2Qzs7Ozs7SUFFM0Msc0NBQXVCOztJQUN2Qix3Q0FBMkM7O0lBQzNDLDZDQUF3RDs7Ozs7SUFDeEQsK0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUFkZEZvbGRlclJlcyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpbGUuc2VydmljZSc7XG5cbmludGVyZmFjZSBJRGF0YSB7XG4gIGN1cnJlbnRBc3NldElkOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hZGQtZm9sZGVyLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZm9sZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkZEZvbGRlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlID0gJyc7XG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZm9ybTogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBJRGF0YSxcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QWRkRm9sZGVyRGlhbG9nQ29tcG9uZW50PixcbiAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBGaWxlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIGNvbnN0IHsgdmFsdWU6IG5hbWUgfSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLm5hbWU7XG4gICAgcmV0dXJuICFuYW1lIHx8ICEhdGhpcy5lcnJvck1lc3NhZ2UgfHwgdGhpcy5pc0xvYWRpbmc7XG4gIH1cblxuICBvbkNoYW5nZShfZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgfVxuXG4gIGFkZEZvbGRlcigpIHtcbiAgICBjb25zdCB7IHZhbHVlOiBuYW1lIH0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5uYW1lO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmZpbGVTZXJ2aWNlXG4gICAgICAuYWRkRm9sZGVyKHtcbiAgICAgICAgcGFyZW50QXNzZXRJZDogdGhpcy5kYXRhLmN1cnJlbnRBc3NldElkLFxuICAgICAgICBmb2xkZXJOYW1lOiBuYW1lLnRyaW0oKSxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoX3JlczogSUFkZEZvbGRlclJlcykgPT4gdGhpcy5jbG9zZURpYWxvZyh0cnVlKSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyLlJlc3BvbnNlTWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKHJlcz86IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|