@rs-pk/asset-management 1.0.22 → 1.0.24

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 +6444 -6327
  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 +164 -152
  7. package/esm2015/lib/asset-management.module.js +178 -179
  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 -395
  11. package/esm2015/lib/components/partial/asset-item/asset-item.component.js +316 -299
  12. package/esm2015/lib/components/partial/asset-list/asset-list.component.js +285 -273
  13. package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +123 -109
  14. package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +119 -100
  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 -114
  21. package/esm2015/lib/components/partial/folder-list/folder-list.component.js +81 -69
  22. package/esm2015/lib/components/partial/node-details/node-details.component.js +417 -403
  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 +149 -149
  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 +179 -167
  62. package/esm5/lib/asset-management.module.js +179 -180
  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 -437
  66. package/esm5/lib/components/partial/asset-item/asset-item.component.js +350 -333
  67. package/esm5/lib/components/partial/asset-list/asset-list.component.js +318 -306
  68. package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +138 -124
  69. package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +137 -115
  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 -126
  76. package/esm5/lib/components/partial/folder-list/folder-list.component.js +94 -82
  77. package/esm5/lib/components/partial/node-details/node-details.component.js +458 -444
  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 +168 -168
  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 +5642 -5528
  117. package/fesm2015/rs-pk-asset-management.js.map +1 -1
  118. package/fesm5/rs-pk-asset-management.js +6448 -6331
  119. package/fesm5/rs-pk-asset-management.js.map +1 -1
  120. package/lib/asset-management.component.d.ts +25 -22
  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 -60
  125. package/lib/components/partial/asset-item/asset-item.component.d.ts +40 -37
  126. package/lib/components/partial/asset-list/asset-list.component.d.ts +27 -24
  127. package/lib/components/partial/asset-management-dialog/asset-management-dialog.component.d.ts +20 -17
  128. package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +23 -19
  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 -14
  135. package/lib/components/partial/folder-list/folder-list.component.d.ts +14 -11
  136. package/lib/components/partial/node-details/node-details.component.d.ts +32 -29
  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 +68 -68
  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 -1
  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,164 +1,164 @@
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
- var AddFolderDialogComponent = /** @class */ (function () {
20
- function AddFolderDialogComponent(fb, data, dialogRef, fileService) {
21
- this.fb = fb;
22
- this.data = data;
23
- this.dialogRef = dialogRef;
24
- this.fileService = fileService;
25
- this.isLoading = false;
26
- this.errorMessage = '';
27
- this.value = '';
28
- this.destroy$ = new Subject();
29
- this.form = new FormControl();
30
- this.formGroup = this.fb.group({
31
- name: ['', [
32
- Validators.maxLength(200),
33
- Validators.required
34
- ]],
35
- });
36
- }
37
- /**
38
- * @return {?}
39
- */
40
- AddFolderDialogComponent.prototype.ngOnInit = /**
41
- * @return {?}
42
- */
43
- function () { };
44
- Object.defineProperty(AddFolderDialogComponent.prototype, "disabled", {
45
- get: /**
46
- * @return {?}
47
- */
48
- function () {
49
- var name = this.formGroup.controls.name.value;
50
- return !name || !!this.errorMessage || this.isLoading;
51
- },
52
- enumerable: true,
53
- configurable: true
54
- });
55
- /**
56
- * @param {?} _event
57
- * @return {?}
58
- */
59
- AddFolderDialogComponent.prototype.onChange = /**
60
- * @param {?} _event
61
- * @return {?}
62
- */
63
- function (_event) {
64
- this.errorMessage = '';
65
- };
66
- /**
67
- * @return {?}
68
- */
69
- AddFolderDialogComponent.prototype.addFolder = /**
70
- * @return {?}
71
- */
72
- function () {
73
- var _this = this;
74
- var name = this.formGroup.controls.name.value;
75
- this.isLoading = true;
76
- this.fileService
77
- .addFolder({
78
- parentAssetId: this.data.currentAssetId,
79
- folderName: name.trim(),
80
- })
81
- .pipe(takeUntil(this.destroy$))
82
- .subscribe((/**
83
- * @param {?} _res
84
- * @return {?}
85
- */
86
- function (_res) { return _this.closeDialog(true); }), (/**
87
- * @param {?} err
88
- * @return {?}
89
- */
90
- function (err) {
91
- _this.isLoading = false;
92
- _this.errorMessage = err.ResponseMessage;
93
- }));
94
- };
95
- /**
96
- * @param {?=} res
97
- * @return {?}
98
- */
99
- AddFolderDialogComponent.prototype.closeDialog = /**
100
- * @param {?=} res
101
- * @return {?}
102
- */
103
- function (res) {
104
- this.dialogRef.close(res);
105
- };
106
- /**
107
- * @return {?}
108
- */
109
- AddFolderDialogComponent.prototype.ngOnDestroy = /**
110
- * @return {?}
111
- */
112
- function () {
113
- this.destroy$.next(true);
114
- this.destroy$.complete();
115
- };
116
- AddFolderDialogComponent.decorators = [
117
- { type: Component, args: [{
118
- selector: 'lib-add-folder-dialog',
119
- 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=\"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)=\"addFolder()\"\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>Add</span>\n </button>\n </ng-container>\n</lib-modal>\n",
120
- 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}"]
121
- }] }
122
- ];
123
- /** @nocollapse */
124
- AddFolderDialogComponent.ctorParameters = function () { return [
125
- { type: FormBuilder },
126
- { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
127
- { type: MatDialogRef },
128
- { type: FileService }
129
- ]; };
130
- return AddFolderDialogComponent;
131
- }());
132
- export { AddFolderDialogComponent };
133
- if (false) {
134
- /** @type {?} */
135
- AddFolderDialogComponent.prototype.isLoading;
136
- /** @type {?} */
137
- AddFolderDialogComponent.prototype.errorMessage;
138
- /** @type {?} */
139
- AddFolderDialogComponent.prototype.value;
140
- /**
141
- * @type {?}
142
- * @private
143
- */
144
- AddFolderDialogComponent.prototype.destroy$;
145
- /** @type {?} */
146
- AddFolderDialogComponent.prototype.formGroup;
147
- /** @type {?} */
148
- AddFolderDialogComponent.prototype.form;
149
- /**
150
- * @type {?}
151
- * @private
152
- */
153
- AddFolderDialogComponent.prototype.fb;
154
- /** @type {?} */
155
- AddFolderDialogComponent.prototype.data;
156
- /** @type {?} */
157
- AddFolderDialogComponent.prototype.dialogRef;
158
- /**
159
- * @type {?}
160
- * @private
161
- */
162
- AddFolderDialogComponent.prototype.fileService;
163
- }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZvbGRlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJzLXBrL2Fzc2V0LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wYXJ0aWFsL2FkZC1mb2xkZXItZGlhbG9nL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBRTdELG9CQUVDOzs7SUFEQywrQkFBdUI7O0FBR3pCO0lBWUUsa0NBQ1UsRUFBZSxFQUNTLElBQVcsRUFDcEMsU0FBaUQsRUFDaEQsV0FBd0I7UUFIeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNTLFNBQUksR0FBSixJQUFJLENBQU87UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBd0M7UUFDaEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFWM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTVDLFNBQUksR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQU8zQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDVCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztvQkFDekIsVUFBVSxDQUFDLFFBQVE7aUJBQ3BCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsMkNBQVE7OztJQUFSLGNBQVksQ0FBQztJQUViLHNCQUFJLDhDQUFROzs7O1FBQVo7WUFDVSxJQUFBLHlDQUFXO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4RCxDQUFDOzs7T0FBQTs7Ozs7SUFFRCwyQ0FBUTs7OztJQUFSLFVBQVMsTUFBYTtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7O0lBRUQsNENBQVM7OztJQUFUO1FBQUEsaUJBZ0JDO1FBZlMsSUFBQSx5Q0FBVztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVzthQUNiLFNBQVMsQ0FBQztZQUNULGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDeEIsQ0FBQzthQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVM7Ozs7UUFDUixVQUFDLElBQW1CLElBQUssT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUF0QixDQUFzQjs7OztRQUMvQyxVQUFBLEdBQUc7WUFDRCxLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDMUMsQ0FBQyxFQUNGLENBQUM7SUFDTixDQUFDOzs7OztJQUVELDhDQUFXOzs7O0lBQVgsVUFBWSxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCw4Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2dCQTlERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsMHVDQUFpRDs7aUJBRWxEOzs7O2dCQW5CQyxXQUFXO2dEQTZCUixNQUFNLFNBQUMsZUFBZTtnQkF4QmxCLFlBQVk7Z0JBSVosV0FBVzs7SUFxRXBCLCtCQUFDO0NBQUEsQUEvREQsSUErREM7U0ExRFksd0JBQXdCOzs7SUFDbkMsNkNBQXlCOztJQUN6QixnREFBeUI7O0lBQ3pCLHlDQUFrQjs7Ozs7SUFDbEIsNENBQW1EOztJQUNuRCw2Q0FBNEI7O0lBQzVCLHdDQUE2Qzs7Ozs7SUFFM0Msc0NBQXVCOztJQUN2Qix3Q0FBMkM7O0lBQzNDLDZDQUF3RDs7Ozs7SUFDeEQsK0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUFkZEZvbGRlclJlcyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpbGUuc2VydmljZSc7XG5cbmludGVyZmFjZSBJRGF0YSB7XG4gIGN1cnJlbnRBc3NldElkOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hZGQtZm9sZGVyLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZm9sZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkZEZvbGRlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlID0gJyc7XG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZm9ybTogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBJRGF0YSxcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QWRkRm9sZGVyRGlhbG9nQ29tcG9uZW50PixcbiAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBGaWxlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBbXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCksXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF1dLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICBjb25zdCB7IHZhbHVlOiBuYW1lIH0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5uYW1lO1xuICAgIHJldHVybiAhbmFtZSB8fCAhIXRoaXMuZXJyb3JNZXNzYWdlIHx8IHRoaXMuaXNMb2FkaW5nO1xuICB9XG5cbiAgb25DaGFuZ2UoX2V2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gIH1cblxuICBhZGRGb2xkZXIoKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogbmFtZSB9ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMubmFtZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5maWxlU2VydmljZVxuICAgICAgLmFkZEZvbGRlcih7XG4gICAgICAgIHBhcmVudEFzc2V0SWQ6IHRoaXMuZGF0YS5jdXJyZW50QXNzZXRJZCxcbiAgICAgICAgZm9sZGVyTmFtZTogbmFtZS50cmltKCksXG4gICAgICB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKF9yZXM6IElBZGRGb2xkZXJSZXMpID0+IHRoaXMuY2xvc2VEaWFsb2codHJ1ZSksXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5SZXNwb25zZU1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBjbG9zZURpYWxvZyhyZXM/OiBib29sZWFuKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
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
+ var AddFolderDialogComponent = /** @class */ (function () {
20
+ function AddFolderDialogComponent(fb, data, dialogRef, fileService) {
21
+ this.fb = fb;
22
+ this.data = data;
23
+ this.dialogRef = dialogRef;
24
+ this.fileService = fileService;
25
+ this.isLoading = false;
26
+ this.errorMessage = '';
27
+ this.value = '';
28
+ this.destroy$ = new Subject();
29
+ this.form = new FormControl();
30
+ this.formGroup = this.fb.group({
31
+ name: ['', [
32
+ Validators.maxLength(200),
33
+ Validators.required
34
+ ]],
35
+ });
36
+ }
37
+ /**
38
+ * @return {?}
39
+ */
40
+ AddFolderDialogComponent.prototype.ngOnInit = /**
41
+ * @return {?}
42
+ */
43
+ function () { };
44
+ Object.defineProperty(AddFolderDialogComponent.prototype, "disabled", {
45
+ get: /**
46
+ * @return {?}
47
+ */
48
+ function () {
49
+ var name = this.formGroup.controls.name.value;
50
+ return !name || !!this.errorMessage || this.isLoading;
51
+ },
52
+ enumerable: true,
53
+ configurable: true
54
+ });
55
+ /**
56
+ * @param {?} _event
57
+ * @return {?}
58
+ */
59
+ AddFolderDialogComponent.prototype.onChange = /**
60
+ * @param {?} _event
61
+ * @return {?}
62
+ */
63
+ function (_event) {
64
+ this.errorMessage = '';
65
+ };
66
+ /**
67
+ * @return {?}
68
+ */
69
+ AddFolderDialogComponent.prototype.addFolder = /**
70
+ * @return {?}
71
+ */
72
+ function () {
73
+ var _this = this;
74
+ var name = this.formGroup.controls.name.value;
75
+ this.isLoading = true;
76
+ this.fileService
77
+ .addFolder({
78
+ parentAssetId: this.data.currentAssetId,
79
+ folderName: name.trim(),
80
+ })
81
+ .pipe(takeUntil(this.destroy$))
82
+ .subscribe((/**
83
+ * @param {?} _res
84
+ * @return {?}
85
+ */
86
+ function (_res) { return _this.closeDialog(true); }), (/**
87
+ * @param {?} err
88
+ * @return {?}
89
+ */
90
+ function (err) {
91
+ _this.isLoading = false;
92
+ _this.errorMessage = err.ResponseMessage;
93
+ }));
94
+ };
95
+ /**
96
+ * @param {?=} res
97
+ * @return {?}
98
+ */
99
+ AddFolderDialogComponent.prototype.closeDialog = /**
100
+ * @param {?=} res
101
+ * @return {?}
102
+ */
103
+ function (res) {
104
+ this.dialogRef.close(res);
105
+ };
106
+ /**
107
+ * @return {?}
108
+ */
109
+ AddFolderDialogComponent.prototype.ngOnDestroy = /**
110
+ * @return {?}
111
+ */
112
+ function () {
113
+ this.destroy$.next(true);
114
+ this.destroy$.complete();
115
+ };
116
+ AddFolderDialogComponent.decorators = [
117
+ { type: Component, args: [{
118
+ selector: 'lib-add-folder-dialog',
119
+ template: "<lib-modal heading=\"Add a folder\">\r\n <ng-container content>\r\n <form (ngSubmit)=\"addFolder()\" [formGroup]=\"formGroup\" #form=\"ngForm\">\r\n <input\r\n (input)=\"onChange($event)\"\r\n matInput\r\n placeholder=\"Enter your folder name\"\r\n autocomplete=\"off\"\r\n required\r\n pattern=\".*\\S+.*\"\r\n formControlName=\"name\"\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)=\"addFolder()\"\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>Add</span>\r\n </button>\r\n </ng-container>\r\n</lib-modal>\r\n",
120
+ 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}"]
121
+ }] }
122
+ ];
123
+ /** @nocollapse */
124
+ AddFolderDialogComponent.ctorParameters = function () { return [
125
+ { type: FormBuilder },
126
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
127
+ { type: MatDialogRef },
128
+ { type: FileService }
129
+ ]; };
130
+ return AddFolderDialogComponent;
131
+ }());
132
+ export { AddFolderDialogComponent };
133
+ if (false) {
134
+ /** @type {?} */
135
+ AddFolderDialogComponent.prototype.isLoading;
136
+ /** @type {?} */
137
+ AddFolderDialogComponent.prototype.errorMessage;
138
+ /** @type {?} */
139
+ AddFolderDialogComponent.prototype.value;
140
+ /**
141
+ * @type {?}
142
+ * @private
143
+ */
144
+ AddFolderDialogComponent.prototype.destroy$;
145
+ /** @type {?} */
146
+ AddFolderDialogComponent.prototype.formGroup;
147
+ /** @type {?} */
148
+ AddFolderDialogComponent.prototype.form;
149
+ /**
150
+ * @type {?}
151
+ * @private
152
+ */
153
+ AddFolderDialogComponent.prototype.fb;
154
+ /** @type {?} */
155
+ AddFolderDialogComponent.prototype.data;
156
+ /** @type {?} */
157
+ AddFolderDialogComponent.prototype.dialogRef;
158
+ /**
159
+ * @type {?}
160
+ * @private
161
+ */
162
+ AddFolderDialogComponent.prototype.fileService;
163
+ }
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZvbGRlci1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJzLXBrL2Fzc2V0LW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wYXJ0aWFsL2FkZC1mb2xkZXItZGlhbG9nL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBRTdELG9CQUVDOzs7SUFEQywrQkFBdUI7O0FBR3pCO0lBWUUsa0NBQ1UsRUFBZSxFQUNTLElBQVcsRUFDcEMsU0FBaUQsRUFDaEQsV0FBd0I7UUFIeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNTLFNBQUksR0FBSixJQUFJLENBQU87UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBd0M7UUFDaEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFWM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTVDLFNBQUksR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQU8zQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDVCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztvQkFDekIsVUFBVSxDQUFDLFFBQVE7aUJBQ3BCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsMkNBQVE7OztJQUFSLGNBQVksQ0FBQztJQUViLHNCQUFJLDhDQUFROzs7O1FBQVo7WUFDVSxJQUFBLHlDQUFXO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4RCxDQUFDOzs7T0FBQTs7Ozs7SUFFRCwyQ0FBUTs7OztJQUFSLFVBQVMsTUFBYTtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7O0lBRUQsNENBQVM7OztJQUFUO1FBQUEsaUJBZ0JDO1FBZlMsSUFBQSx5Q0FBVztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVzthQUNiLFNBQVMsQ0FBQztZQUNULGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDeEIsQ0FBQzthQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVM7Ozs7UUFDUixVQUFDLElBQW1CLElBQUssT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUF0QixDQUFzQjs7OztRQUMvQyxVQUFBLEdBQUc7WUFDRCxLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDMUMsQ0FBQyxFQUNGLENBQUM7SUFDTixDQUFDOzs7OztJQUVELDhDQUFXOzs7O0lBQVgsVUFBWSxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCw4Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2dCQTlERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsb3pDQUFpRDs7aUJBRWxEOzs7O2dCQW5CQyxXQUFXO2dEQTZCUixNQUFNLFNBQUMsZUFBZTtnQkF4QmxCLFlBQVk7Z0JBSVosV0FBVzs7SUFxRXBCLCtCQUFDO0NBQUEsQUEvREQsSUErREM7U0ExRFksd0JBQXdCOzs7SUFDbkMsNkNBQXlCOztJQUN6QixnREFBeUI7O0lBQ3pCLHlDQUFrQjs7Ozs7SUFDbEIsNENBQW1EOztJQUNuRCw2Q0FBNEI7O0lBQzVCLHdDQUE2Qzs7Ozs7SUFFM0Msc0NBQXVCOztJQUN2Qix3Q0FBMkM7O0lBQzNDLDZDQUF3RDs7Ozs7SUFDeEQsK0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJQWRkRm9sZGVyUmVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWxlLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIElEYXRhIHtcclxuICBjdXJyZW50QXNzZXRJZDogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hZGQtZm9sZGVyLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtZm9sZGVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkRm9sZGVyRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgcHVibGljIHZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBmb3JtOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IElEYXRhLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFkZEZvbGRlckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBGaWxlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBbXHJcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKSxcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgIF1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIGNvbnN0IHsgdmFsdWU6IG5hbWUgfSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLm5hbWU7XHJcbiAgICByZXR1cm4gIW5hbWUgfHwgISF0aGlzLmVycm9yTWVzc2FnZSB8fCB0aGlzLmlzTG9hZGluZztcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKF9ldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgfVxyXG5cclxuICBhZGRGb2xkZXIoKSB7XHJcbiAgICBjb25zdCB7IHZhbHVlOiBuYW1lIH0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5uYW1lO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5maWxlU2VydmljZVxyXG4gICAgICAuYWRkRm9sZGVyKHtcclxuICAgICAgICBwYXJlbnRBc3NldElkOiB0aGlzLmRhdGEuY3VycmVudEFzc2V0SWQsXHJcbiAgICAgICAgZm9sZGVyTmFtZTogbmFtZS50cmltKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAoX3JlczogSUFkZEZvbGRlclJlcykgPT4gdGhpcy5jbG9zZURpYWxvZyh0cnVlKSxcclxuICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyLlJlc3BvbnNlTWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZyhyZXM/OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==