@rs-pk/asset-management 1.0.25 → 1.0.26

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 (176) hide show
  1. package/README.md +24 -24
  2. package/bundles/rs-pk-asset-management.umd.js +6436 -6436
  3. package/bundles/rs-pk-asset-management.umd.js.map +1 -1
  4. package/bundles/rs-pk-asset-management.umd.min.js +2 -2
  5. package/bundles/rs-pk-asset-management.umd.min.js.map +1 -1
  6. package/esm2015/lib/asset-management.component.js +169 -169
  7. package/esm2015/lib/asset-management.module.js +178 -178
  8. package/esm2015/lib/asset-management.service.js +45 -45
  9. package/esm2015/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +146 -146
  10. package/esm2015/lib/components/partial/asset-dialog/asset-dialog.component.js +398 -398
  11. package/esm2015/lib/components/partial/asset-item/asset-item.component.js +316 -316
  12. package/esm2015/lib/components/partial/asset-list/asset-list.component.js +285 -285
  13. package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +110 -110
  14. package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +119 -119
  15. package/esm2015/lib/components/partial/breadcrumb/breadcrumb.component.js +121 -121
  16. package/esm2015/lib/components/partial/delete-dialog/delete-dialog.component.js +139 -139
  17. package/esm2015/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +151 -151
  18. package/esm2015/lib/components/partial/file-item/file-item.component.js +181 -181
  19. package/esm2015/lib/components/partial/file-list/file-list.component.js +73 -73
  20. package/esm2015/lib/components/partial/folder-item/folder-item.component.js +126 -126
  21. package/esm2015/lib/components/partial/folder-list/folder-list.component.js +81 -81
  22. package/esm2015/lib/components/partial/node-details/node-details.component.js +417 -417
  23. package/esm2015/lib/components/partial/node-tree/node-tree.component.js +330 -330
  24. package/esm2015/lib/components/partial/search-box/search-box.component.js +158 -158
  25. package/esm2015/lib/components/partial/sort-items/sort-items.component.js +99 -99
  26. package/esm2015/lib/components/partial/upload-dialog/upload-dialog.component.js +141 -141
  27. package/esm2015/lib/components/partial/upload-file/upload-file.component.js +85 -85
  28. package/esm2015/lib/components/ui/drag-to-resize/drag-to-resize.component.js +96 -96
  29. package/esm2015/lib/components/ui/input-file/input-file.component.js +49 -49
  30. package/esm2015/lib/components/ui/modal/modal.component.js +34 -34
  31. package/esm2015/lib/components/ui/search-not-found/search-not-found.component.js +41 -41
  32. package/esm2015/lib/configs/admin.config.js +22 -22
  33. package/esm2015/lib/contanst/data-image.js +20 -20
  34. package/esm2015/lib/contanst/index.js +6 -6
  35. package/esm2015/lib/datasources/index.js +6 -6
  36. package/esm2015/lib/datasources/node-tree.datasource.js +179 -179
  37. package/esm2015/lib/directives/dialogTrigger.directive.js +47 -47
  38. package/esm2015/lib/directives/directives.module.js +20 -20
  39. package/esm2015/lib/directives/dnd.directive.js +57 -57
  40. package/esm2015/lib/models/asset-file.model.js +57 -57
  41. package/esm2015/lib/models/asset.model.js +151 -151
  42. package/esm2015/lib/models/file-type.enum.js +11 -11
  43. package/esm2015/lib/models/file.model.js +91 -91
  44. package/esm2015/lib/models/index.js +12 -12
  45. package/esm2015/lib/models/node-tree.model.js +32 -32
  46. package/esm2015/lib/models/sort.enum.js +23 -23
  47. package/esm2015/lib/pipes/datetime.pipe.js +79 -79
  48. package/esm2015/lib/pipes/file-size.pipe.js +54 -54
  49. package/esm2015/lib/services/asset.service.js +229 -229
  50. package/esm2015/lib/services/base.service.js +49 -49
  51. package/esm2015/lib/services/env-config.service.js +18 -18
  52. package/esm2015/lib/services/file.service.js +106 -106
  53. package/esm2015/lib/services/index.js +11 -11
  54. package/esm2015/lib/services/node-tree.service.js +212 -212
  55. package/esm2015/lib/services/upload-assets.service.js +178 -178
  56. package/esm2015/lib/store/actions.action.js +125 -125
  57. package/esm2015/lib/store/index.js +7 -7
  58. package/esm2015/lib/store/reducer.js +115 -115
  59. package/esm2015/public-api.js +34 -34
  60. package/esm2015/rs-pk-asset-management.js +16 -16
  61. package/esm5/lib/asset-management.component.js +184 -184
  62. package/esm5/lib/asset-management.module.js +179 -179
  63. package/esm5/lib/asset-management.service.js +54 -54
  64. package/esm5/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +164 -164
  65. package/esm5/lib/components/partial/asset-dialog/asset-dialog.component.js +440 -440
  66. package/esm5/lib/components/partial/asset-item/asset-item.component.js +350 -350
  67. package/esm5/lib/components/partial/asset-list/asset-list.component.js +318 -318
  68. package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +125 -125
  69. package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +137 -137
  70. package/esm5/lib/components/partial/breadcrumb/breadcrumb.component.js +143 -143
  71. package/esm5/lib/components/partial/delete-dialog/delete-dialog.component.js +154 -154
  72. package/esm5/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +169 -169
  73. package/esm5/lib/components/partial/file-item/file-item.component.js +206 -206
  74. package/esm5/lib/components/partial/file-list/file-list.component.js +93 -93
  75. package/esm5/lib/components/partial/folder-item/folder-item.component.js +138 -138
  76. package/esm5/lib/components/partial/folder-list/folder-list.component.js +94 -94
  77. package/esm5/lib/components/partial/node-details/node-details.component.js +458 -458
  78. package/esm5/lib/components/partial/node-tree/node-tree.component.js +413 -413
  79. package/esm5/lib/components/partial/search-box/search-box.component.js +184 -184
  80. package/esm5/lib/components/partial/sort-items/sort-items.component.js +107 -107
  81. package/esm5/lib/components/partial/upload-dialog/upload-dialog.component.js +156 -156
  82. package/esm5/lib/components/partial/upload-file/upload-file.component.js +102 -102
  83. package/esm5/lib/components/ui/drag-to-resize/drag-to-resize.component.js +117 -117
  84. package/esm5/lib/components/ui/input-file/input-file.component.js +55 -55
  85. package/esm5/lib/components/ui/modal/modal.component.js +39 -39
  86. package/esm5/lib/components/ui/search-not-found/search-not-found.component.js +43 -43
  87. package/esm5/lib/configs/admin.config.js +22 -22
  88. package/esm5/lib/contanst/data-image.js +20 -20
  89. package/esm5/lib/contanst/index.js +6 -6
  90. package/esm5/lib/datasources/index.js +6 -6
  91. package/esm5/lib/datasources/node-tree.datasource.js +239 -239
  92. package/esm5/lib/directives/dialogTrigger.directive.js +53 -53
  93. package/esm5/lib/directives/directives.module.js +25 -25
  94. package/esm5/lib/directives/dnd.directive.js +80 -80
  95. package/esm5/lib/models/asset-file.model.js +69 -69
  96. package/esm5/lib/models/asset.model.js +170 -170
  97. package/esm5/lib/models/file-type.enum.js +11 -11
  98. package/esm5/lib/models/file.model.js +99 -99
  99. package/esm5/lib/models/index.js +12 -12
  100. package/esm5/lib/models/node-tree.model.js +37 -37
  101. package/esm5/lib/models/sort.enum.js +23 -23
  102. package/esm5/lib/pipes/datetime.pipe.js +83 -83
  103. package/esm5/lib/pipes/file-size.pipe.js +63 -63
  104. package/esm5/lib/services/asset.service.js +279 -279
  105. package/esm5/lib/services/base.service.js +57 -57
  106. package/esm5/lib/services/env-config.service.js +18 -18
  107. package/esm5/lib/services/file.service.js +127 -127
  108. package/esm5/lib/services/index.js +11 -11
  109. package/esm5/lib/services/node-tree.service.js +278 -278
  110. package/esm5/lib/services/upload-assets.service.js +207 -207
  111. package/esm5/lib/store/actions.action.js +143 -143
  112. package/esm5/lib/store/index.js +7 -7
  113. package/esm5/lib/store/reducer.js +116 -116
  114. package/esm5/public-api.js +34 -34
  115. package/esm5/rs-pk-asset-management.js +16 -16
  116. package/fesm2015/rs-pk-asset-management.js +5635 -5635
  117. package/fesm2015/rs-pk-asset-management.js.map +1 -1
  118. package/fesm5/rs-pk-asset-management.js +6441 -6441
  119. package/fesm5/rs-pk-asset-management.js.map +1 -1
  120. package/lib/asset-management.component.d.ts +25 -25
  121. package/lib/asset-management.module.d.ts +5 -5
  122. package/lib/asset-management.service.d.ts +7 -7
  123. package/lib/components/partial/add-folder-dialog/add-folder-dialog.component.d.ts +27 -27
  124. package/lib/components/partial/asset-dialog/asset-dialog.component.d.ts +65 -65
  125. package/lib/components/partial/asset-item/asset-item.component.d.ts +40 -40
  126. package/lib/components/partial/asset-list/asset-list.component.d.ts +27 -27
  127. package/lib/components/partial/asset-management-dialog/asset-management-dialog.component.d.ts +17 -17
  128. package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +23 -23
  129. package/lib/components/partial/breadcrumb/breadcrumb.component.d.ts +18 -18
  130. package/lib/components/partial/delete-dialog/delete-dialog.component.d.ts +24 -24
  131. package/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.d.ts +28 -28
  132. package/lib/components/partial/file-item/file-item.component.d.ts +36 -36
  133. package/lib/components/partial/file-list/file-list.component.d.ts +15 -15
  134. package/lib/components/partial/folder-item/folder-item.component.d.ts +17 -17
  135. package/lib/components/partial/folder-list/folder-list.component.d.ts +14 -14
  136. package/lib/components/partial/node-details/node-details.component.d.ts +32 -32
  137. package/lib/components/partial/node-tree/node-tree.component.d.ts +34 -34
  138. package/lib/components/partial/search-box/search-box.component.d.ts +18 -18
  139. package/lib/components/partial/sort-items/sort-items.component.d.ts +21 -21
  140. package/lib/components/partial/upload-dialog/upload-dialog.component.d.ts +25 -25
  141. package/lib/components/partial/upload-file/upload-file.component.d.ts +16 -16
  142. package/lib/components/ui/drag-to-resize/drag-to-resize.component.d.ts +15 -15
  143. package/lib/components/ui/input-file/input-file.component.d.ts +9 -9
  144. package/lib/components/ui/modal/modal.component.d.ts +7 -7
  145. package/lib/components/ui/search-not-found/search-not-found.component.d.ts +8 -8
  146. package/lib/configs/admin.config.d.ts +3 -3
  147. package/lib/contanst/data-image.d.ts +6 -6
  148. package/lib/contanst/index.d.ts +1 -1
  149. package/lib/datasources/index.d.ts +1 -1
  150. package/lib/datasources/node-tree.datasource.d.ts +24 -24
  151. package/lib/directives/dialogTrigger.directive.d.ts +7 -7
  152. package/lib/directives/directives.module.d.ts +5 -5
  153. package/lib/directives/dnd.directive.d.ts +7 -7
  154. package/lib/models/asset-file.model.d.ts +26 -26
  155. package/lib/models/asset.model.d.ts +73 -73
  156. package/lib/models/file-type.enum.d.ts +4 -4
  157. package/lib/models/file.model.d.ts +41 -41
  158. package/lib/models/index.d.ts +7 -7
  159. package/lib/models/node-tree.model.d.ts +9 -9
  160. package/lib/models/sort.enum.d.ts +9 -9
  161. package/lib/pipes/datetime.pipe.d.ts +13 -13
  162. package/lib/pipes/file-size.pipe.d.ts +5 -5
  163. package/lib/services/asset.service.d.ts +36 -36
  164. package/lib/services/base.service.d.ts +20 -20
  165. package/lib/services/env-config.service.d.ts +7 -7
  166. package/lib/services/file.service.d.ts +13 -13
  167. package/lib/services/index.d.ts +6 -6
  168. package/lib/services/node-tree.service.d.ts +24 -24
  169. package/lib/services/upload-assets.service.d.ts +34 -34
  170. package/lib/store/actions.action.d.ts +51 -51
  171. package/lib/store/index.d.ts +2 -2
  172. package/lib/store/reducer.d.ts +18 -18
  173. package/package.json +1 -2
  174. package/public-api.d.ts +26 -26
  175. package/rs-pk-asset-management.d.ts +12 -12
  176. package/rs-pk-asset-management.metadata.json +1 -1
@@ -1,151 +1,151 @@
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 { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
7
- import { takeUntil } from 'rxjs/operators';
8
- import { Subject } from 'rxjs';
9
- import { FileService } from '../../../services/file.service';
10
- import { FormBuilder, FormControl, Validators, } from '@angular/forms';
11
- /**
12
- * @record
13
- */
14
- function IData() { }
15
- if (false) {
16
- /** @type {?} */
17
- IData.prototype.assetId;
18
- /** @type {?} */
19
- IData.prototype.name;
20
- }
21
- export class EditFolderDialogComponent {
22
- /**
23
- * @param {?} fb
24
- * @param {?} data
25
- * @param {?} dialogRef
26
- * @param {?} fileService
27
- */
28
- constructor(fb, data, dialogRef, fileService) {
29
- this.fb = fb;
30
- this.data = data;
31
- this.dialogRef = dialogRef;
32
- this.fileService = fileService;
33
- this.isLoading = false;
34
- this.errorMessage = '';
35
- this.value = '';
36
- this.destroy$ = new Subject();
37
- this.form = new FormControl();
38
- this.formGroup = this.fb.group({
39
- name: [this.data.name, [
40
- Validators.maxLength(200),
41
- Validators.required
42
- ]],
43
- });
44
- }
45
- /**
46
- * @return {?}
47
- */
48
- ngOnInit() { }
49
- /**
50
- * @return {?}
51
- */
52
- get disabled() {
53
- const { value: name } = this.formGroup.controls.name;
54
- return (!name ||
55
- !!this.errorMessage ||
56
- name.toLowerCase().trim() === this.data.name.toLowerCase() ||
57
- this.isLoading);
58
- }
59
- /**
60
- * @param {?} _event
61
- * @return {?}
62
- */
63
- onChange(_event) {
64
- this.errorMessage = '';
65
- }
66
- /**
67
- * @return {?}
68
- */
69
- editFolder() {
70
- const { value: name } = this.formGroup.controls.name;
71
- this.isLoading = true;
72
- this.fileService
73
- .updateFile({
74
- assetId: this.data.assetId,
75
- fileName: name.trim(),
76
- })
77
- .pipe(takeUntil(this.destroy$))
78
- .subscribe((/**
79
- * @param {?} _res
80
- * @return {?}
81
- */
82
- (_res) => this.closeDialog(true)), (/**
83
- * @param {?} err
84
- * @return {?}
85
- */
86
- err => {
87
- this.isLoading = false;
88
- this.errorMessage = err.ResponseMessage;
89
- }));
90
- }
91
- /**
92
- * @param {?=} res
93
- * @return {?}
94
- */
95
- closeDialog(res) {
96
- this.dialogRef.close(res);
97
- }
98
- /**
99
- * @return {?}
100
- */
101
- ngOnDestroy() {
102
- this.destroy$.next(true);
103
- this.destroy$.complete();
104
- }
105
- }
106
- EditFolderDialogComponent.decorators = [
107
- { type: Component, args: [{
108
- selector: 'lib-edit-folder-dialog',
109
- template: "<lib-modal heading=\"Rename folder\">\r\n <ng-container content>\r\n <form (ngSubmit)=\"editFolder()\" [formGroup]=\"formGroup\" #form=\"ngForm\">\r\n <input\r\n matInput\r\n required\r\n autocomplete=\"off\"\r\n formControlName=\"name\"\r\n (input)=\"onChange($event)\"\r\n placeholder=\"Enter your folder name\"\r\n pattern=\".*\\S+.*\"\r\n />\r\n <mat-error *ngIf=\"formGroup?.controls?.name?.errors?.pattern\">\r\n This field does not allow only whitespace\r\n </mat-error>\r\n <mat-error *ngIf=\"formGroup?.controls?.name?.errors?.maxlength\">\r\n The character limit is 200 characters\r\n </mat-error>\r\n <mat-error *ngIf=\"errorMessage\">{{ errorMessage }}</mat-error>\r\n </form>\r\n </ng-container>\r\n <ng-container actions>\r\n <button mat-raised-button mat-dialog-close>Cancel</button>\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"editFolder()\"\r\n [class.loading]=\"isLoading\"\r\n [disabled]=\"disabled || !formGroup?.valid\"\r\n >\r\n <ng-container *ngIf=\"isLoading\">\r\n <mat-spinner [diameter]=\"20\"></mat-spinner>\r\n </ng-container>\r\n <span>Update</span>\r\n </button>\r\n </ng-container>\r\n</lib-modal>\r\n",
110
- 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}"]
111
- }] }
112
- ];
113
- /** @nocollapse */
114
- EditFolderDialogComponent.ctorParameters = () => [
115
- { type: FormBuilder },
116
- { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
117
- { type: MatDialogRef },
118
- { type: FileService }
119
- ];
120
- if (false) {
121
- /** @type {?} */
122
- EditFolderDialogComponent.prototype.isLoading;
123
- /** @type {?} */
124
- EditFolderDialogComponent.prototype.errorMessage;
125
- /** @type {?} */
126
- EditFolderDialogComponent.prototype.value;
127
- /**
128
- * @type {?}
129
- * @private
130
- */
131
- EditFolderDialogComponent.prototype.destroy$;
132
- /** @type {?} */
133
- EditFolderDialogComponent.prototype.formGroup;
134
- /** @type {?} */
135
- EditFolderDialogComponent.prototype.form;
136
- /**
137
- * @type {?}
138
- * @private
139
- */
140
- EditFolderDialogComponent.prototype.fb;
141
- /** @type {?} */
142
- EditFolderDialogComponent.prototype.data;
143
- /** @type {?} */
144
- EditFolderDialogComponent.prototype.dialogRef;
145
- /**
146
- * @type {?}
147
- * @private
148
- */
149
- EditFolderDialogComponent.prototype.fileService;
150
- }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9lZGl0LWZvbGRlci1kaWFsb2cvZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLG9CQUdDOzs7SUFGQyx3QkFBZ0I7O0lBQ2hCLHFCQUFhOztBQVFmLE1BQU0sT0FBTyx5QkFBeUI7Ozs7Ozs7SUFPcEMsWUFDVSxFQUFlLEVBQ1MsSUFBVyxFQUNwQyxTQUFrRCxFQUNqRCxXQUF3QjtRQUh4QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ1MsU0FBSSxHQUFKLElBQUksQ0FBTztRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUF5QztRQUNqRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVYzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ3JCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO29CQUN6QixVQUFVLENBQUMsUUFBUTtpQkFDcEIsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxRQUFRLEtBQUksQ0FBQzs7OztJQUViLElBQUksUUFBUTtjQUNKLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUk7UUFDcEQsT0FBTyxDQUNMLENBQUMsSUFBSTtZQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzFELElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELFVBQVU7Y0FDRixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXO2FBQ2IsVUFBVSxDQUFDO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUzs7OztRQUNSLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Ozs7UUFDbEQsR0FBRyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDMUMsQ0FBQyxFQUNGLENBQUM7SUFDTixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7WUFuRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLDB6Q0FBa0Q7O2FBRW5EOzs7O1lBZkMsV0FBVzs0Q0F5QlIsTUFBTSxTQUFDLGVBQWU7WUEvQmxCLFlBQVk7WUFHWixXQUFXOzs7O0lBb0JsQiw4Q0FBeUI7O0lBQ3pCLGlEQUF5Qjs7SUFDekIsMENBQWtCOzs7OztJQUNsQiw2Q0FBbUQ7O0lBQ25ELDhDQUE0Qjs7SUFDNUIseUNBQTZDOzs7OztJQUUzQyx1Q0FBdUI7O0lBQ3ZCLHlDQUEyQzs7SUFDM0MsOENBQXlEOzs7OztJQUN6RCxnREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQXNzZXRVcGRhdGVkUmVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtQ29udHJvbCxcclxuICBGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbnRlcmZhY2UgSURhdGEge1xyXG4gIGFzc2V0SWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkaXQtZm9sZGVyLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZm9sZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0Rm9sZGVyRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgcHVibGljIHZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBmb3JtOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IElEYXRhLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVkaXRGb2xkZXJEaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBmaWxlU2VydmljZTogRmlsZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IFt0aGlzLmRhdGEubmFtZSwgW1xyXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCksXHJcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxyXG4gICAgICBdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICBjb25zdCB7IHZhbHVlOiBuYW1lIH0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5uYW1lO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgIW5hbWUgfHxcclxuICAgICAgISF0aGlzLmVycm9yTWVzc2FnZSB8fFxyXG4gICAgICBuYW1lLnRvTG93ZXJDYXNlKCkudHJpbSgpID09PSB0aGlzLmRhdGEubmFtZS50b0xvd2VyQ2FzZSgpIHx8XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoX2V2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcclxuICB9XHJcblxyXG4gIGVkaXRGb2xkZXIoKSB7XHJcbiAgICBjb25zdCB7IHZhbHVlOiBuYW1lIH0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5uYW1lO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5maWxlU2VydmljZVxyXG4gICAgICAudXBkYXRlRmlsZSh7XHJcbiAgICAgICAgYXNzZXRJZDogdGhpcy5kYXRhLmFzc2V0SWQsXHJcbiAgICAgICAgZmlsZU5hbWU6IG5hbWUudHJpbSgpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKF9yZXM6IElBc3NldFVwZGF0ZWRSZXMpID0+IHRoaXMuY2xvc2VEaWFsb2codHJ1ZSksXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5SZXNwb25zZU1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2cocmVzPzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
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 { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
7
+ import { takeUntil } from 'rxjs/operators';
8
+ import { Subject } from 'rxjs';
9
+ import { FileService } from '../../../services/file.service';
10
+ import { FormBuilder, FormControl, Validators, } from '@angular/forms';
11
+ /**
12
+ * @record
13
+ */
14
+ function IData() { }
15
+ if (false) {
16
+ /** @type {?} */
17
+ IData.prototype.assetId;
18
+ /** @type {?} */
19
+ IData.prototype.name;
20
+ }
21
+ export class EditFolderDialogComponent {
22
+ /**
23
+ * @param {?} fb
24
+ * @param {?} data
25
+ * @param {?} dialogRef
26
+ * @param {?} fileService
27
+ */
28
+ constructor(fb, data, dialogRef, fileService) {
29
+ this.fb = fb;
30
+ this.data = data;
31
+ this.dialogRef = dialogRef;
32
+ this.fileService = fileService;
33
+ this.isLoading = false;
34
+ this.errorMessage = '';
35
+ this.value = '';
36
+ this.destroy$ = new Subject();
37
+ this.form = new FormControl();
38
+ this.formGroup = this.fb.group({
39
+ name: [this.data.name, [
40
+ Validators.maxLength(200),
41
+ Validators.required
42
+ ]],
43
+ });
44
+ }
45
+ /**
46
+ * @return {?}
47
+ */
48
+ ngOnInit() { }
49
+ /**
50
+ * @return {?}
51
+ */
52
+ get disabled() {
53
+ const { value: name } = this.formGroup.controls.name;
54
+ return (!name ||
55
+ !!this.errorMessage ||
56
+ name.toLowerCase().trim() === this.data.name.toLowerCase() ||
57
+ this.isLoading);
58
+ }
59
+ /**
60
+ * @param {?} _event
61
+ * @return {?}
62
+ */
63
+ onChange(_event) {
64
+ this.errorMessage = '';
65
+ }
66
+ /**
67
+ * @return {?}
68
+ */
69
+ editFolder() {
70
+ const { value: name } = this.formGroup.controls.name;
71
+ this.isLoading = true;
72
+ this.fileService
73
+ .updateFile({
74
+ assetId: this.data.assetId,
75
+ fileName: name.trim(),
76
+ })
77
+ .pipe(takeUntil(this.destroy$))
78
+ .subscribe((/**
79
+ * @param {?} _res
80
+ * @return {?}
81
+ */
82
+ (_res) => this.closeDialog(true)), (/**
83
+ * @param {?} err
84
+ * @return {?}
85
+ */
86
+ err => {
87
+ this.isLoading = false;
88
+ this.errorMessage = err.ResponseMessage;
89
+ }));
90
+ }
91
+ /**
92
+ * @param {?=} res
93
+ * @return {?}
94
+ */
95
+ closeDialog(res) {
96
+ this.dialogRef.close(res);
97
+ }
98
+ /**
99
+ * @return {?}
100
+ */
101
+ ngOnDestroy() {
102
+ this.destroy$.next(true);
103
+ this.destroy$.complete();
104
+ }
105
+ }
106
+ EditFolderDialogComponent.decorators = [
107
+ { type: Component, args: [{
108
+ selector: 'lib-edit-folder-dialog',
109
+ template: "<lib-modal heading=\"Rename folder\">\n <ng-container content>\n <form (ngSubmit)=\"editFolder()\" [formGroup]=\"formGroup\" #form=\"ngForm\">\n <input\n matInput\n required\n autocomplete=\"off\"\n formControlName=\"name\"\n (input)=\"onChange($event)\"\n placeholder=\"Enter your folder name\"\n pattern=\".*\\S+.*\"\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=\"formGroup?.controls?.name?.errors?.maxlength\">\n The character limit is 200 characters\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)=\"editFolder()\"\n [class.loading]=\"isLoading\"\n [disabled]=\"disabled || !formGroup?.valid\"\n >\n <ng-container *ngIf=\"isLoading\">\n <mat-spinner [diameter]=\"20\"></mat-spinner>\n </ng-container>\n <span>Update</span>\n </button>\n </ng-container>\n</lib-modal>\n",
110
+ 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}"]
111
+ }] }
112
+ ];
113
+ /** @nocollapse */
114
+ EditFolderDialogComponent.ctorParameters = () => [
115
+ { type: FormBuilder },
116
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
117
+ { type: MatDialogRef },
118
+ { type: FileService }
119
+ ];
120
+ if (false) {
121
+ /** @type {?} */
122
+ EditFolderDialogComponent.prototype.isLoading;
123
+ /** @type {?} */
124
+ EditFolderDialogComponent.prototype.errorMessage;
125
+ /** @type {?} */
126
+ EditFolderDialogComponent.prototype.value;
127
+ /**
128
+ * @type {?}
129
+ * @private
130
+ */
131
+ EditFolderDialogComponent.prototype.destroy$;
132
+ /** @type {?} */
133
+ EditFolderDialogComponent.prototype.formGroup;
134
+ /** @type {?} */
135
+ EditFolderDialogComponent.prototype.form;
136
+ /**
137
+ * @type {?}
138
+ * @private
139
+ */
140
+ EditFolderDialogComponent.prototype.fb;
141
+ /** @type {?} */
142
+ EditFolderDialogComponent.prototype.data;
143
+ /** @type {?} */
144
+ EditFolderDialogComponent.prototype.dialogRef;
145
+ /**
146
+ * @type {?}
147
+ * @private
148
+ */
149
+ EditFolderDialogComponent.prototype.fileService;
150
+ }
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9lZGl0LWZvbGRlci1kaWFsb2cvZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLG9CQUdDOzs7SUFGQyx3QkFBZ0I7O0lBQ2hCLHFCQUFhOztBQVFmLE1BQU0sT0FBTyx5QkFBeUI7Ozs7Ozs7SUFPcEMsWUFDVSxFQUFlLEVBQ1MsSUFBVyxFQUNwQyxTQUFrRCxFQUNqRCxXQUF3QjtRQUh4QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ1MsU0FBSSxHQUFKLElBQUksQ0FBTztRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUF5QztRQUNqRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVYzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ3JCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO29CQUN6QixVQUFVLENBQUMsUUFBUTtpQkFDcEIsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxRQUFRLEtBQUksQ0FBQzs7OztJQUViLElBQUksUUFBUTtjQUNKLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUk7UUFDcEQsT0FBTyxDQUNMLENBQUMsSUFBSTtZQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzFELElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELFVBQVU7Y0FDRixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXO2FBQ2IsVUFBVSxDQUFDO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUzs7OztRQUNSLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Ozs7UUFDbEQsR0FBRyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDMUMsQ0FBQyxFQUNGLENBQUM7SUFDTixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7WUFuRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLGd2Q0FBa0Q7O2FBRW5EOzs7O1lBZkMsV0FBVzs0Q0F5QlIsTUFBTSxTQUFDLGVBQWU7WUEvQmxCLFlBQVk7WUFHWixXQUFXOzs7O0lBb0JsQiw4Q0FBeUI7O0lBQ3pCLGlEQUF5Qjs7SUFDekIsMENBQWtCOzs7OztJQUNsQiw2Q0FBbUQ7O0lBQ25ELDhDQUE0Qjs7SUFDNUIseUNBQTZDOzs7OztJQUUzQyx1Q0FBdUI7O0lBQ3ZCLHlDQUEyQzs7SUFDM0MsOENBQXlEOzs7OztJQUN6RCxnREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IElBc3NldFVwZGF0ZWRSZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW50ZXJmYWNlIElEYXRhIHtcbiAgYXNzZXRJZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lZGl0LWZvbGRlci1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRGb2xkZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgdmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGZvcm06IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogSURhdGEsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVkaXRGb2xkZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgZmlsZVNlcnZpY2U6IEZpbGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbdGhpcy5kYXRhLm5hbWUsIFtcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgXV0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIGNvbnN0IHsgdmFsdWU6IG5hbWUgfSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLm5hbWU7XG4gICAgcmV0dXJuIChcbiAgICAgICFuYW1lIHx8XG4gICAgICAhIXRoaXMuZXJyb3JNZXNzYWdlIHx8XG4gICAgICBuYW1lLnRvTG93ZXJDYXNlKCkudHJpbSgpID09PSB0aGlzLmRhdGEubmFtZS50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICB0aGlzLmlzTG9hZGluZ1xuICAgICk7XG4gIH1cblxuICBvbkNoYW5nZShfZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgfVxuXG4gIGVkaXRGb2xkZXIoKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogbmFtZSB9ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMubmFtZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5maWxlU2VydmljZVxuICAgICAgLnVwZGF0ZUZpbGUoe1xuICAgICAgICBhc3NldElkOiB0aGlzLmRhdGEuYXNzZXRJZCxcbiAgICAgICAgZmlsZU5hbWU6IG5hbWUudHJpbSgpLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChfcmVzOiBJQXNzZXRVcGRhdGVkUmVzKSA9PiB0aGlzLmNsb3NlRGlhbG9nKHRydWUpLFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnIuUmVzcG9uc2VNZXNzYWdlO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgY2xvc2VEaWFsb2cocmVzPzogYm9vbGVhbikge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=