nuxeo-development-framework 5.4.7 → 5.4.8

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 (24) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +80 -26
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
  4. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
  5. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +6 -3
  6. package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
  7. package/esm2015/lib/components/documents/services/documents.service.js +27 -4
  8. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
  9. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +1 -1
  10. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +7 -3
  11. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
  12. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  13. package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +19 -5
  14. package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +21 -8
  15. package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +1 -1
  16. package/fesm2015/nuxeo-development-framework.js +79 -27
  17. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  18. package/lib/components/documents/components/document-upload/document-upload.component.d.ts +2 -1
  19. package/lib/components/documents/services/documents.service.d.ts +1 -1
  20. package/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.d.ts +2 -1
  21. package/lib/components/reports/ndf-reports/base/base-custom-report.d.ts +13 -4
  22. package/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.d.ts +1 -0
  23. package/lib/components/reports/ndf-reports/models/custom-definition.d.ts +1 -0
  24. package/package.json +1 -1
@@ -166,12 +166,35 @@ export class DocumentsService {
166
166
  throw err;
167
167
  }));
168
168
  }
169
- uploadBatch(files) {
169
+ uploadBatch(files, extraHeaders = {}) {
170
170
  return combineLatest([
171
171
  ...files.map((file) => {
172
172
  const nuxeoBlob = this.nuxeoService.createBlob(file);
173
- return from(this.nuxeoService.nuxeoClient.batchUpload().upload(nuxeoBlob));
174
- }),
173
+ const fileName = file.name;
174
+ const batch = this.nuxeoService.nuxeoClient.batchUpload();
175
+ if (Object.keys(extraHeaders).length != 0) {
176
+ return from(batch.upload(nuxeoBlob).then((uploaded) => {
177
+ // Custom reupload with headers
178
+ const formData = new FormData();
179
+ const namedFile = new File([nuxeoBlob.content], fileName, {
180
+ type: nuxeoBlob.content.type,
181
+ });
182
+ formData.append('file', namedFile);
183
+ return this.nuxeoService.nuxeoClient._http({
184
+ method: 'POST',
185
+ url: `${this.environment.nuxeo}/api/v1/upload/${uploaded.batch._batchId}/${uploaded.blob.fileIdx}`,
186
+ body: formData,
187
+ headers: Object.assign(Object.assign({}, extraHeaders), { 'X-File-Name': file.name, 'X-File-Type': file.type, 'X-Batch-No-Drop': true }),
188
+ }).then(() => ({
189
+ batchId: uploaded.batch._batchId,
190
+ fileIdx: uploaded.blob.fileIdx,
191
+ }));
192
+ }));
193
+ }
194
+ else {
195
+ return from(this.nuxeoService.nuxeoClient.batchUpload().upload(nuxeoBlob));
196
+ }
197
+ })
175
198
  ]).pipe(map((uploadedFiles) => {
176
199
  files.forEach((file, i) => {
177
200
  uploadedFiles[i].title = file.name;
@@ -220,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
220
243
  type: Inject,
221
244
  args: ['environment']
222
245
  }] }]; } });
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFNUQsY0FBYztBQUlkLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBZ0MsRUFDaEMsYUFBK0IsRUFBaUMsV0FBVztRQUYzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQVJyRixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU8vQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFlBQVk7SUFDZCxDQUFD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O2FBQy9CLEtBQUssaUJBRUYsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJO1lBQzVELHNDQUFzQztZQUN0Qyx3QkFBd0IsRUFBRSxVQUFVLElBQ2pDLE1BQU0sR0FFWDtZQUNFLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTztTQUMzRCxDQUNGLENBQ0osQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQ3ZFLENBQUM7WUFDRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzhHQXBWVSxnQkFBZ0IsNEdBU3dCLGFBQWE7a0hBVHJELGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVTZDLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9hZGFwdGVycy9hZGFwdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNDb25zdGFudHMgfSBmcm9tICcuLi9jb25zdGFudHMvZG9jdW1lbnRzJztcclxuXHJcbi8qKiBAaWdub3JlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNTZXJ2aWNlIHtcclxuICB2YWx1ZSA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xyXG4gIHB1YmxpYyBnZXR1cGRhdGVkRG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHJlRmV0Y2ggPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIGluY29taW5nQ29uc3RhbnQ7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudHNBZGFwdGVyOiBBZGFwdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSwgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIHRoaXMuaW5jb21pbmdDb25zdGFudCA9XHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5teUNvbmZpZ3VyYXRpb25bJ2NvcnJlc3BvbmRhbmNlJ11bJ2luY29taW5nJ107XHJcbiAgICAvLyB9LCAyMDAwKTtcclxuICB9XHJcblxyXG4gIGluZm9ybVZhbHVlKHZhbHVlKSB7XHJcbiAgICBsZXQgYXJyID0gW107XHJcbiAgICBhcnIucHVzaCh2YWx1ZSk7XHJcbiAgICB0aGlzLnZhbHVlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBnZXREb2N1bWVudCh1aWQsIGhlYWRlcnM/KSB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVwb3NpdG9yeSgpXHJcbiAgICAgICAgLmhlYWRlcnMoe1xyXG4gICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yLGNvcnI6Y2MsY3RzX2NvbW1vbjpkZXBhcnRtZW50LGNvcnI6b3duZXInLFxyXG4gICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncyxwZXJtaXNzaW9ucycsXHJcbiAgICAgICAgICAuLi5oZWFkZXJzXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZmV0Y2godWlkKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIGkgY29tbWVudGVkIHRoaXMgc2luY2UgaSBhbSBhZGFwdGluZyBpbiBkYXRhIGNvbWluZyBpbnNpZGUgdGhlIHBhZ2Ugbm90IGhlcmVcclxuICAgICAgICAvLyByZXR1cm4gdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oZGF0YSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcyk7XHJcbiAgICAgICAgZGVsZXRlIGRhdGEuX251eGVvO1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhLl9yZXBvc2l0b3J5O1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnRBdHRhY2htZW50c1dpdGhBZ2dyZWdhdGlvbihwYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQucmVwb3NpdG9yeSgpLnF1ZXJ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBhZ2VQcm92aWRlcjpcclxuICAgICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5kb2N1bWVudEF0dGFjaG1lbnRzV2l0aEFnZ3JlZ2F0aW9uXHJcbiAgICAgICAgICAgICAgLm5hbWUsXHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOlxyXG4gICAgICAgICAgICBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmRvY3VtZW50QXR0YWNobWVudHNXaXRoQWdncmVnYXRpb25cclxuICAgICAgICAgICAgICAuaGVhZGVycyxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdXBkYXRlRG9jdW1lbnQoZG9jLCBwYXJhbXMgPSB7fSkge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAnZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxjb21tOmNvbW1pdHRlZUlkLGNvbW06bWVldGluZ0lkJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC51cGRhdGUoZG9jLCBwYXJhbXMpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGRhdGEsIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgY3JlYXRlVmVyc2lvbihkb2NJZCwgdmVyc2lvbiA9ICdtYWpvcicsIGN1c3RvbUFwaT8gLCBjdXN0b21QYXJhbXM/KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oY3VzdG9tQXBpID8gY3VzdG9tQXBpIDogRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMuY3JlYXRlVmVyc2lvbiAsIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoY3VzdG9tUGFyYW1zID8gY3VzdG9tUGFyYW1zIDoge3ZlcnNpb24sfSlcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU1lbW9WZXJzaW9uKGRvY0lkLCB2ZXJzaW9uID0gJ21ham9yJyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmNyZWF0ZU1lbW9WZXJzaW9uLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIHZlcnNpb24sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZlcnNpb25zKGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMuZ2V0VmVyc2lvbnMpXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgdGhpcy5pbmNvbWluZ0NvbnN0YW50LmF0dGFjaG1lbnRzKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGxvY2tEb2N1bWVudChkb2NJZCwgbW9kZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmxvY2spXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgbW9kZTogbW9kZSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3IsY29ycjpvd25lcixjdHNfY29tbW9uOmRlcGFydG1lbnQnLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgICAvL3JlbW92ZSBhZGFwdGUgc2luY2UgaXQgaXMgY291c2luZyBjb25mbGljdHMgd2hlbiBlbWl0aW5nIG91dCBzaWRlIGFuZCByZWFkYXB0aW5nIGFnYWluIG91dHNpZGVcclxuICAgICAgICAvLyB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICB9XHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVubG9ja0RvY3VtZW50KGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMudW5sb2NrKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoaXRlbSkgPT57XHJcbiAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgLy9yZW1vdmUgYWRhcHRlIHNpbmNlIGl0IGlzIGNvdXNpbmcgY29uZmxpY3RzIHdoZW4gZW1pdGluZyBvdXQgc2lkZSBhbmQgcmVhZGFwdGluZyBhZ2FpbiBvdXRzaWRlXHJcbiAgICAgICAgLy8gdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcylcclxuICAgICAgfVxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2NrTWVtb0RvY3VtZW50KGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMubG9ja01lbW8pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKGl0ZW0gPT4gIHtyZXR1cm4gaXRlbX0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1bmxvY2tNZW1vRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy51bmxvY2tNZW1vKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtID0+ICB7cmV0dXJuIGl0ZW19KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRG9jdW1lbnQocGF0aDogYW55KSB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCkuZGVsZXRlKHBhdGgpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQmF0Y2goZmlsZXMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICAuLi5maWxlcy5tYXAoKGZpbGUpID0+IHtcclxuICAgICAgICBjb25zdCBudXhlb0Jsb2IgPSB0aGlzLm51eGVvU2VydmljZS5jcmVhdGVCbG9iKGZpbGUpO1xyXG4gICAgICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQuYmF0Y2hVcGxvYWQoKS51cGxvYWQobnV4ZW9CbG9iKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKCh1cGxvYWRlZEZpbGVzOiBhbnkpID0+IHtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlLCBpKSA9PiB7XHJcbiAgICAgICAgICB1cGxvYWRlZEZpbGVzW2ldLnRpdGxlID0gZmlsZS5uYW1lO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB1cGxvYWRlZEZpbGVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgY3JlYXRlRG9jKHVwbG9hZGVkRmlsZSwgcGF0aCwgcGFyYW1zLCBkb2NQYXJhbXMgPSB7fSkge1xyXG4gICAgY29uc3QgZG9jID0ge1xyXG4gICAgICAnZW50aXR5LXR5cGUnOiAnZG9jdW1lbnQnLFxyXG4gICAgICBuYW1lOiB1cGxvYWRlZEZpbGUudGl0bGUsXHJcbiAgICAgIHR5cGU6ICdmaWxlJyxcclxuICAgICAgLi4uZG9jUGFyYW1zLFxyXG4gICAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgdGl0bGU6IHVwbG9hZGVkRmlsZS50aXRsZSxcclxuICAgICAgICBjb250ZW50OiB1cGxvYWRlZEZpbGUuYmxvYixcclxuICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHJlcG8gPSB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCk7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgcmVwby5jcmVhdGUoYCR7cGF0aH1gLCB7XHJcbiAgICAgICAgLi4uZG9jLFxyXG4gICAgICAgIHByb3BlcnRpZXM6IHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdE91dChcclxuICAgICAgICAgIGRvYy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkc1xyXG4gICAgICAgICksXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB1cGxvYWREb2N1bWVudChmaWxlLCBwYXRoLCBwYXJhbXMsIGRvY1BhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZEJhdGNoKGZpbGUpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgodXBsb2FkZWRGaWxlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRG9jKHVwbG9hZGVkRmlsZSwgcGF0aCwgcGFyYW1zLCBkb2NQYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGNyZWF0ZWREb2N1bWVudCkgPT4gY3JlYXRlZERvY3VtZW50KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBnZXREb2N1bWVudHMoYW5jZXN0b3JJZCwgcHJvdmlkZXIsIHBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5yZXBvc2l0b3J5KClcclxuICAgICAgICAvLyAuZW5yaWNoZXIoJ2RvY3VtZW50JywgJ2FjbHMnKVxyXG4gICAgICAgIC5xdWVyeShcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcGFnZVByb3ZpZGVyOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyW3Byb3ZpZGVyXS5uYW1lLFxyXG4gICAgICAgICAgICAvLyBjdF9hdHRhY2htZW50X2RvY1JlZklkOiBhbmNlc3RvcklkLFxyXG4gICAgICAgICAgICBDdHNDb21tb25fY29ycmVzcG9uZGVuY2U6IGFuY2VzdG9ySWQsXHJcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXJbcHJvdmlkZXJdLmhlYWRlcnMsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGRhdGEuZW50cmllcy5tYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCB0aGlzLmluY29taW5nQ29uc3RhbnQuYXR0YWNobWVudHMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFNUQsY0FBYztBQUlkLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBZ0MsRUFDaEMsYUFBK0IsRUFBaUMsV0FBVztRQUYzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQVJyRixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU8vQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFlBQVk7SUFDZCxDQUFD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QUNILENBQUM7SUFDSixDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDNUMsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQzFCLFVBQVUsRUFBRTtZQUNiLGdDQUFnQzthQUMvQixLQUFLLGlCQUVGLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSTtZQUM1RCxzQ0FBc0M7WUFDdEMsd0JBQXdCLEVBQUUsVUFBVSxJQUNqQyxNQUFNLEdBRVg7WUFDRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU87U0FDM0QsQ0FDRixDQUNKLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUN2RSxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs4R0FuWFUsZ0JBQWdCLDRHQVN3QixhQUFhO2tIQVRyRCxnQkFBZ0IsY0FGZixNQUFNOzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVU2QyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvYWRhcHRlcnMvYWRhcHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcblxyXG4vKiogQGlnbm9yZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzU2VydmljZSB7XHJcbiAgdmFsdWUgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcclxuICBwdWJsaWMgZ2V0dXBkYXRlZERvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICByZUZldGNoID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBpbmNvbWluZ0NvbnN0YW50O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgZG9jdW1lbnRzQWRhcHRlcjogQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudFxyXG4gICkge1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICB0aGlzLmluY29taW5nQ29uc3RhbnQgPVxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uWydjb3JyZXNwb25kYW5jZSddWydpbmNvbWluZyddO1xyXG4gICAgLy8gfSwgMjAwMCk7XHJcbiAgfVxyXG5cclxuICBpbmZvcm1WYWx1ZSh2YWx1ZSkge1xyXG4gICAgbGV0IGFyciA9IFtdO1xyXG4gICAgYXJyLnB1c2godmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZS5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnQodWlkLCBoZWFkZXJzPykge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcixjb3JyOmNjLGN0c19jb21tb246ZGVwYXJ0bWVudCxjb3JyOm93bmVyJyxcclxuICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MscGVybWlzc2lvbnMnLFxyXG4gICAgICAgICAgLi4uaGVhZGVyc1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmZldGNoKHVpZClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpIGNvbW1lbnRlZCB0aGlzIHNpbmNlIGkgYW0gYWRhcHRpbmcgaW4gZGF0YSBjb21pbmcgaW5zaWRlIHRoZSBwYWdlIG5vdCBoZXJlXHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGRhdGEsIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpO1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhLl9udXhlbztcclxuICAgICAgICBkZWxldGUgZGF0YS5fcmVwb3NpdG9yeTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGdldERvY3VtZW50QXR0YWNobWVudHNXaXRoQWdncmVnYXRpb24ocGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKS5xdWVyeShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYWdlUHJvdmlkZXI6XHJcbiAgICAgICAgICAgIERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuZG9jdW1lbnRBdHRhY2htZW50c1dpdGhBZ2dyZWdhdGlvblxyXG4gICAgICAgICAgICAgIC5uYW1lLFxyXG4gICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGVhZGVyczpcclxuICAgICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5kb2N1bWVudEF0dGFjaG1lbnRzV2l0aEFnZ3JlZ2F0aW9uXHJcbiAgICAgICAgICAgICAgLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZURvY3VtZW50KGRvYywgcGFyYW1zID0ge30pIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5yZXBvc2l0b3J5KClcclxuICAgICAgICAuaGVhZGVycyh7XHJcbiAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgJ2ZldGNoLWRvY3VtZW50JzogJ2xvY2ssY29tbTpjb21taXR0ZWVJZCxjb21tOm1lZXRpbmdJZCcsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudXBkYXRlKGRvYywgcGFyYW1zKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihkYXRhLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGNyZWF0ZVZlcnNpb24oZG9jSWQsIHZlcnNpb24gPSAnbWFqb3InLCBjdXN0b21BcGk/LCBjdXN0b21QYXJhbXM/KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oY3VzdG9tQXBpID8gY3VzdG9tQXBpIDogRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMuY3JlYXRlVmVyc2lvbiwge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcyhjdXN0b21QYXJhbXMgPyBjdXN0b21QYXJhbXMgOiB7IHZlcnNpb24sIH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVNZW1vVmVyc2lvbihkb2NJZCwgdmVyc2lvbiA9ICdtYWpvcicpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5jcmVhdGVNZW1vVmVyc2lvbiwge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgICB2ZXJzaW9uLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWZXJzaW9ucyhkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmdldFZlcnNpb25zKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIHRoaXMuaW5jb21pbmdDb25zdGFudC5hdHRhY2htZW50cylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBsb2NrRG9jdW1lbnQoZG9jSWQsIG1vZGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5sb2NrKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIG1vZGU6IG1vZGUsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yLGNvcnI6b3duZXIsY3RzX2NvbW1vbjpkZXBhcnRtZW50JyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgICAgLy9yZW1vdmUgYWRhcHRlIHNpbmNlIGl0IGlzIGNvdXNpbmcgY29uZmxpY3RzIHdoZW4gZW1pdGluZyBvdXQgc2lkZSBhbmQgcmVhZGFwdGluZyBhZ2FpbiBvdXRzaWRlXHJcbiAgICAgICAgLy8gdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcylcclxuICAgICAgfVxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1bmxvY2tEb2N1bWVudChkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLnVubG9jaylcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcygpXHJcbiAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcicsXHJcbiAgICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgICAvL3JlbW92ZSBhZGFwdGUgc2luY2UgaXQgaXMgY291c2luZyBjb25mbGljdHMgd2hlbiBlbWl0aW5nIG91dCBzaWRlIGFuZCByZWFkYXB0aW5nIGFnYWluIG91dHNpZGVcclxuICAgICAgICAvLyB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICB9XHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvY2tNZW1vRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5sb2NrTWVtbylcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcygpXHJcbiAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcicsXHJcbiAgICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoaXRlbSA9PiAge3JldHVybiBpdGVtfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVubG9ja01lbW9Eb2N1bWVudChkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLnVubG9ja01lbW8pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKGl0ZW0gPT4gIHtyZXR1cm4gaXRlbX0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVEb2N1bWVudChwYXRoOiBhbnkpIHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKS5kZWxldGUocGF0aCkpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAgIHVwbG9hZEJhdGNoKGZpbGVzLCBleHRyYUhlYWRlcnMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIC4uLmZpbGVzLm1hcCgoZmlsZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG51eGVvQmxvYiA9IHRoaXMubnV4ZW9TZXJ2aWNlLmNyZWF0ZUJsb2IoZmlsZSk7XHJcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWU7XHJcbiAgICAgICAgY29uc3QgYmF0Y2ggPSB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5iYXRjaFVwbG9hZCgpO1xyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhleHRyYUhlYWRlcnMpLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgYmF0Y2gudXBsb2FkKG51eGVvQmxvYikudGhlbigodXBsb2FkZWQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIEN1c3RvbSByZXVwbG9hZCB3aXRoIGhlYWRlcnNcclxuICAgICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5hbWVkRmlsZSA9IG5ldyBGaWxlKFtudXhlb0Jsb2IuY29udGVudF0sIGZpbGVOYW1lLCB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBudXhlb0Jsb2IuY29udGVudC50eXBlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIG5hbWVkRmlsZSk7XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5faHR0cCh7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30vYXBpL3YxL3VwbG9hZC8ke3VwbG9hZGVkLmJhdGNoLl9iYXRjaElkfS8ke3VwbG9hZGVkLmJsb2IuZmlsZUlkeH1gLFxyXG4gICAgICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLmV4dHJhSGVhZGVycyxcclxuICAgICAgICAgICAgICAgICAgJ1gtRmlsZS1OYW1lJzpmaWxlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICdYLUZpbGUtVHlwZSc6ZmlsZS50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAnWC1CYXRjaC1Oby1Ecm9wJzogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KS50aGVuKCgpID0+ICh7XHJcbiAgICAgICAgICAgICAgICBiYXRjaElkOiB1cGxvYWRlZC5iYXRjaC5fYmF0Y2hJZCxcclxuICAgICAgICAgICAgICAgIGZpbGVJZHg6IHVwbG9hZGVkLmJsb2IuZmlsZUlkeCxcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQuYmF0Y2hVcGxvYWQoKS51cGxvYWQobnV4ZW9CbG9iKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICBdKS5waXBlKFxyXG4gICAgICBtYXAoKHVwbG9hZGVkRmlsZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSwgaSkgPT4ge1xyXG4gICAgICAgICAgdXBsb2FkZWRGaWxlc1tpXS50aXRsZSA9IGZpbGUubmFtZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdXBsb2FkZWRGaWxlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVEb2ModXBsb2FkZWRGaWxlLCBwYXRoLCBwYXJhbXMsIGRvY1BhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBkb2MgPSB7XHJcbiAgICAgICdlbnRpdHktdHlwZSc6ICdkb2N1bWVudCcsXHJcbiAgICAgIG5hbWU6IHVwbG9hZGVkRmlsZS50aXRsZSxcclxuICAgICAgdHlwZTogJ2ZpbGUnLFxyXG4gICAgICAuLi5kb2NQYXJhbXMsXHJcbiAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICB0aXRsZTogdXBsb2FkZWRGaWxlLnRpdGxlLFxyXG4gICAgICAgIGNvbnRlbnQ6IHVwbG9hZGVkRmlsZS5ibG9iLFxyXG4gICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVwbyA9IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKTtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICByZXBvLmNyZWF0ZShgJHtwYXRofWAsIHtcclxuICAgICAgICAuLi5kb2MsXHJcbiAgICAgICAgcHJvcGVydGllczogdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgZG9jLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzXHJcbiAgICAgICAgKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwbG9hZERvY3VtZW50KGZpbGUsIHBhdGgsIHBhcmFtcywgZG9jUGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkQmF0Y2goZmlsZSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKCh1cGxvYWRlZEZpbGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEb2ModXBsb2FkZWRGaWxlLCBwYXRoLCBwYXJhbXMsIGRvY1BhcmFtcykucGlwZShcclxuICAgICAgICAgIG1hcCgoY3JlYXRlZERvY3VtZW50KSA9PiBjcmVhdGVkRG9jdW1lbnQpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGdldERvY3VtZW50cyhhbmNlc3RvcklkLCBwcm92aWRlciwgcGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC8vIC5lbnJpY2hlcignZG9jdW1lbnQnLCAnYWNscycpXHJcbiAgICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBwYWdlUHJvdmlkZXI6IERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXJbcHJvdmlkZXJdLm5hbWUsXHJcbiAgICAgICAgICAgIC8vIGN0X2F0dGFjaG1lbnRfZG9jUmVmSWQ6IGFuY2VzdG9ySWQsXHJcbiAgICAgICAgICAgIEN0c0NvbW1vbl9jb3JyZXNwb25kZW5jZTogYW5jZXN0b3JJZCxcclxuICAgICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaGVhZGVyczogRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlcltwcm92aWRlcl0uaGVhZGVycyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIHRoaXMuaW5jb21pbmdDb25zdGFudC5hdHRhY2htZW50cylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -173,7 +173,7 @@ export class DynamicFieldsRendererComponent {
173
173
  }
174
174
  }
175
175
  DynamicFieldsRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFieldsRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
- DynamicFieldsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: { form: "form", agencyNameFilter: "agencyNameFilter", countryNameFilter: "countryNameFilter", orgNameFilter: "orgNameFilter", ngoNameFilter: "ngoNameFilter", disableInitSecrecyLevel: "disableInitSecrecyLevel", mode: "mode", fields: "fields" }, outputs: { checkTextSpellCheckerField: "checkTextSpellCheckerField" }, ngImport: i0, template: "<div [formGroup]=\"form\" *ngIf=\"form\">\r\n\t<div class=\"renderer-container\">\r\n\t\t<div class=\"field-container\" *ngFor=\"let field of fields\">\r\n\t\t\t<div class=\"flex gap-x-2 items-center\" *permission=\"{ name: field.permission, entity: field.formControlName }\">\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'text'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel; else showLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-template #showLabel>\r\n\t\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\tid=\"{{ field.formControlName }}\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'number'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel; else showLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-template #showLabel>\r\n\t\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tmin=\"1\"\r\n\t\t\t\t\t\ttype=\"number\"\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'textarea'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<app-dynamic-form-textarea\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-textarea>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'date'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<cts-dynamic-form-hijri-dateitem\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[minHijri]=\"field.minHijri\"\r\n\t\t\t\t\t\t[maxHijri]=\"field.maxHijri\"\r\n\t\t\t\t\t\t[minGreg]=\"field.minGreg\"\r\n\t\t\t\t\t\t[maxGreg]=\"field.maxGreg\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</cts-dynamic-form-hijri-dateitem>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'spellCheckerField'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ndf-spell-checker-text-field\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[placeholder]=\"field.placeholder\"\r\n\t\t\t\t\t\t[fieldType]=\"field.fieldType\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t(checkFromText)=\"checkTextOfSpellCheckField(field.formControlName)\"\r\n\t\t\t\t\t></ndf-spell-checker-text-field>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'dynamic-vocabulary'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[bindLabel]=\"field.bindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[vocabularyType]=\"field.vocabularyType\"\r\n\t\t\t\t\t\t[onlyIds]=\"field.onlyIds\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- <div class=\"single-field mb-3\" *ngIf=\"field.type === 'department-selector'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <app-dynamic-form-department\r\n [formControlName]=\"field.formControlName\"\r\n [placeholder]=\"field.placeholder\"\r\n [pp_departmentNestedTree]=\"field.pp_departmentNestedTree\"\r\n [pp_departmentTree]=\"field.pp_departmentTree\"\r\n [customPrefix]=\"field.customPrefix\"\r\n [customParentProperty]=\"field.customParentProperty\"\r\n [useCustomAddEditAction]=\"field.useCustomAddEditAction\"\r\n >\r\n </app-dynamic-form-department>\r\n </div> -->\r\n\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'translated-vocabulary'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<app-translated-vocabulary-select\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[arbBindLabel]=\"field.arbBindLabel\"\r\n\t\t\t\t\t\t[engBindLabel]=\"field.engBindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[vocbularyId]=\"field.vocbularyId\"\r\n\t\t\t\t\t\t[useFilter]=\"field.useFilter\"\r\n\t\t\t\t\t\t[filter]=\"\r\n\t\t\t\t\t\t\tfield.filter === 'agencyName'\r\n\t\t\t\t\t\t\t\t? agencyNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'countryName'\r\n\t\t\t\t\t\t\t\t? countryNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'orgName'\r\n\t\t\t\t\t\t\t\t? orgNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'ngoName'\r\n\t\t\t\t\t\t\t\t? ngoNameFilter\r\n\t\t\t\t\t\t\t\t: {}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t[params]=\"field.params || {}\"\r\n\t\t\t\t\t\t[getByDirectorySuggestion]=\"field.getByDirectorySuggestion\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-translated-vocabulary-select>\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"field.selectable\">\r\n\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\tfieldsCheckBox;\r\n\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\tcheckBoxTemplate: field.template,\r\n\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- template in client -->\r\n\t\t\t<ng-container *ngIf=\"field.suggest\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\tsuggest;\r\n\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\tfield: field.label,\r\n\t\t\t\t\t\t\tsuggestName: field.suggest,\r\n\t\t\t\t\t\t\tcontrolName: field.formControlName,\r\n\t\t\t\t\t\t\ttemplate: field.suggestTemplate\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #fieldsCheckBox let-checkBoxTemplate=\"checkBoxTemplate\" let-controlName=\"controlName\">\r\n\t<ng-container *ngTemplateOutlet=\"checkBoxTemplate; context: { controlName: controlName }\"> </ng-container>\r\n</ng-template>\r\n\r\n<!-- suggest -->\r\n<ng-template\r\n\t#suggest\r\n\tlet-field=\"field\"\r\n\tlet-suggestName=\"suggestName\"\r\n\tlet-controlName=\"controlName\"\r\n\tlet-template=\"template\"\r\n>\r\n\t<ng-container\r\n\t\t*ngTemplateOutlet=\"\r\n\t\t\ttemplate;\r\n\t\t\tcontext: {\r\n\t\t\t\tfield: field,\r\n\t\t\t\tsuggestName: suggestName,\r\n\t\t\t\tcontrolName: controlName\r\n\t\t\t}\r\n\t\t\"\r\n\t>\r\n\t</ng-container>\r\n</ng-template>\r\n<!-- suggest -->\r\n\r\n<!-- custom label -->\r\n<ng-template #customlabel let-controlName=\"controlName\" let-label=\"label\" let-template=\"template\">\r\n\t<ng-container\r\n\t\t*ngTemplateOutlet=\"\r\n\t\t\ttemplate;\r\n\t\t\tcontext: {\r\n\t\t\t\tlabel: label,\r\n\t\t\t\tcontrolName: controlName\r\n\t\t\t}\r\n\t\t\"\r\n\t>\r\n\t</ng-container>\r\n</ng-template>\r\n<!-- custom label -->\r\n", styles: [".single-field{width:100%}\n"], components: [{ type: i1.DynamicFormTextareaComponent, selector: "app-dynamic-form-textarea", inputs: ["property", "label", "editable", "disabled", "id", "placeholder", "displayEmpty", "horizontalAlign"] }, { type: i2.DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }, { type: i3.SpellCheckerTextFieldComponent, selector: "ndf-spell-checker-text-field", inputs: ["id", "placeholder", "fieldType", "label"], outputs: ["checkFromText"] }, { type: i4.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: i5.TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: ["label", "bindValue", "arbBindLabel", "engBindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "filter", "useFilter", "vocbularyId", "mapingResponse", "params", "getByDirectorySuggestion"], outputs: ["onSelectItems"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }], pipes: { "translate": i9.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
176
+ DynamicFieldsRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFieldsRendererComponent, selector: "app-dynamic-fields-renderer", inputs: { form: "form", agencyNameFilter: "agencyNameFilter", countryNameFilter: "countryNameFilter", orgNameFilter: "orgNameFilter", ngoNameFilter: "ngoNameFilter", disableInitSecrecyLevel: "disableInitSecrecyLevel", mode: "mode", fields: "fields" }, outputs: { checkTextSpellCheckerField: "checkTextSpellCheckerField" }, ngImport: i0, template: "<div [formGroup]=\"form\" *ngIf=\"form\">\r\n\t<div class=\"renderer-container\">\r\n\t\t<div class=\"field-container\" *ngFor=\"let field of fields\">\r\n\t\t\t<div class=\"flex gap-x-2 items-center\" *permission=\"{ name: field.permission, entity: field.formControlName }\">\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'text'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel; else showLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-template #showLabel>\r\n\t\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\tid=\"{{ field.formControlName }}\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'number'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel; else showLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-template #showLabel>\r\n\t\t\t\t\t\t<div class=\"label-style\">\r\n\t\t\t\t\t\t\t{{ field.label | translate }}\r\n\t\t\t\t\t\t\t<span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tmin=\"1\"\r\n\t\t\t\t\t\ttype=\"number\"\r\n\t\t\t\t\t\tclass=\"field-style\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\tplaceholder=\" {{ field.placeholder | translate }}\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'textarea'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<app-dynamic-form-textarea\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-textarea>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'date'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<cts-dynamic-form-hijri-dateitem\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[minHijri]=\"field.minHijri\"\r\n\t\t\t\t\t\t[maxHijri]=\"field.maxHijri\"\r\n\t\t\t\t\t\t[minGreg]=\"field.minGreg\"\r\n\t\t\t\t\t\t[maxGreg]=\"field.maxGreg\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</cts-dynamic-form-hijri-dateitem>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'spellCheckerField'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ndf-spell-checker-text-field\r\n\t\t\t\t\t\t[id]=\"field.formControlName\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[placeholder]=\"field.placeholder\"\r\n\t\t\t\t\t\t[fieldType]=\"field.fieldType\"\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t(checkFromText)=\"checkTextOfSpellCheckField(field.formControlName)\"\r\n\t\t\t\t\t></ndf-spell-checker-text-field>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'dynamic-vocabulary'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[bindLabel]=\"field.bindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[disabled]=\"field.disabled\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[vocabularyType]=\"field.vocabularyType\"\r\n\t\t\t\t\t\t[onlyIds]=\"field.onlyIds\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- <div class=\"single-field mb-3\" *ngIf=\"field.type === 'department-selector'\">\r\n <div class=\"label-style\">\r\n {{ field.label | translate }}\r\n <span class=\"text-red-500\" *ngIf=\"field.required\">*</span>\r\n </div>\r\n <app-dynamic-form-department\r\n [formControlName]=\"field.formControlName\"\r\n [placeholder]=\"field.placeholder\"\r\n [pp_departmentNestedTree]=\"field.pp_departmentNestedTree\"\r\n [pp_departmentTree]=\"field.pp_departmentTree\"\r\n [customPrefix]=\"field.customPrefix\"\r\n [customParentProperty]=\"field.customParentProperty\"\r\n [useCustomAddEditAction]=\"field.useCustomAddEditAction\"\r\n >\r\n </app-dynamic-form-department>\r\n </div> -->\r\n\r\n\t\t\t\t<div class=\"single-field mb-3\" *ngIf=\"field.type === 'translated-vocabulary'\">\r\n\t\t\t\t\t<ng-container *ngIf=\"field.customLabel\">\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\t\tcustomlabel;\r\n\t\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\t\tlabel: field.customLabel,\r\n\t\t\t\t\t\t\t\t\ttemplate: field.customLabelTemplate,\r\n\t\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<app-translated-vocabulary-select\r\n\t\t\t\t\t\t[label]=\"field.label\"\r\n\t\t\t\t\t\t[arbBindLabel]=\"field.arbBindLabel\"\r\n\t\t\t\t\t\t[engBindLabel]=\"field.engBindLabel\"\r\n\t\t\t\t\t\t[bindValue]=\"field.bindValue\"\r\n\t\t\t\t\t\tplaceholder=\"{{ field.placeholder | translate }}\"\r\n\t\t\t\t\t\t[multiple]=\"field.multiple\"\r\n\t\t\t\t\t\t[searchable]=\"field.searchable\"\r\n\t\t\t\t\t\t[closeOnSelect]=\"field.closeOnSelect\"\r\n\t\t\t\t\t\t[hideSelectedItems]=\"field.hideSelectedItems\"\r\n\t\t\t\t\t\t[formControlName]=\"field.formControlName\"\r\n\t\t\t\t\t\t[vocbularyId]=\"field.vocbularyId\"\r\n\t\t\t\t\t\t[useFilter]=\"field.useFilter\"\r\n\t\t\t\t\t\t[filter]=\"\r\n\t\t\t\t\t\t\tfield.filter === 'agencyName'\r\n\t\t\t\t\t\t\t\t? agencyNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'countryName'\r\n\t\t\t\t\t\t\t\t? countryNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'orgName'\r\n\t\t\t\t\t\t\t\t? orgNameFilter\r\n\t\t\t\t\t\t\t\t: field.filter === 'ngoName'\r\n\t\t\t\t\t\t\t\t? ngoNameFilter\r\n\t\t\t\t\t\t\t\t: {}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t[params]=\"field.params || {}\"\r\n\t\t\t\t\t\t[getByDirectorySuggestion]=\"field.getByDirectorySuggestion\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t</app-translated-vocabulary-select>\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"field.selectable\">\r\n\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\t\tfieldsCheckBox;\r\n\t\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\t\tcheckBoxTemplate: field.template,\r\n\t\t\t\t\t\t\t\tcontrolName: field.formControlName\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</div>\r\n\r\n\t\t\t<!-- template in client -->\r\n\t\t\t<ng-container *ngIf=\"field.suggest\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t*ngTemplateOutlet=\"\r\n\t\t\t\t\t\tsuggest;\r\n\t\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t\tfield: field.label,\r\n\t\t\t\t\t\t\tsuggestName: field.suggest,\r\n\t\t\t\t\t\t\tcontrolName: field.formControlName,\r\n\t\t\t\t\t\t\ttemplate: field.suggestTemplate\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #fieldsCheckBox let-checkBoxTemplate=\"checkBoxTemplate\" let-controlName=\"controlName\">\r\n\t<ng-container *ngTemplateOutlet=\"checkBoxTemplate; context: { controlName: controlName }\"> </ng-container>\r\n</ng-template>\r\n\r\n<!-- suggest -->\r\n<ng-template\r\n\t#suggest\r\n\tlet-field=\"field\"\r\n\tlet-suggestName=\"suggestName\"\r\n\tlet-controlName=\"controlName\"\r\n\tlet-template=\"template\"\r\n>\r\n\t<ng-container\r\n\t\t*ngTemplateOutlet=\"\r\n\t\t\ttemplate;\r\n\t\t\tcontext: {\r\n\t\t\t\tfield: field,\r\n\t\t\t\tsuggestName: suggestName,\r\n\t\t\t\tcontrolName: controlName\r\n\t\t\t}\r\n\t\t\"\r\n\t>\r\n\t</ng-container>\r\n</ng-template>\r\n<!-- suggest -->\r\n\r\n<!-- custom label -->\r\n<ng-template #customlabel let-controlName=\"controlName\" let-label=\"label\" let-template=\"template\">\r\n\t<ng-container\r\n\t\t*ngTemplateOutlet=\"\r\n\t\t\ttemplate;\r\n\t\t\tcontext: {\r\n\t\t\t\tlabel: label,\r\n\t\t\t\tcontrolName: controlName\r\n\t\t\t}\r\n\t\t\"\r\n\t>\r\n\t</ng-container>\r\n</ng-template>\r\n<!-- custom label -->\r\n", styles: [".single-field{width:100%}\n"], components: [{ type: i1.DynamicFormTextareaComponent, selector: "app-dynamic-form-textarea", inputs: ["property", "label", "editable", "disabled", "id", "placeholder", "displayEmpty", "horizontalAlign"] }, { type: i2.DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }, { type: i3.SpellCheckerTextFieldComponent, selector: "ndf-spell-checker-text-field", inputs: ["id", "placeholder", "fieldType", "label"], outputs: ["checkFromText"] }, { type: i4.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues", "emitVocabulryRecordOnSelect"], outputs: ["onSelecting"] }, { type: i5.TranslatedVocabularySelectComponent, selector: "app-translated-vocabulary-select", inputs: ["label", "bindValue", "arbBindLabel", "engBindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "filter", "useFilter", "vocbularyId", "mapingResponse", "params", "getByDirectorySuggestion"], outputs: ["onSelectItems"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { type: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }], pipes: { "translate": i9.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
177
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFieldsRendererComponent, decorators: [{
178
178
  type: Component,
179
179
  args: [{
@@ -114,7 +114,7 @@ export class DepartmentFormComponent extends BaseDialogComponent {
114
114
  }
115
115
  }
116
116
  DepartmentFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DepartmentFormComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.CustomToastrService }, { token: i3.DepartmentApiService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
117
- DepartmentFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DepartmentFormComponent, selector: "cts-department-form", usesInheritance: true, ngImport: i0, template: "<ndf-nuxeo-dialog\r\n\tdialogTitle=\"{{\r\n\t\t'department_management.form.' + (updateMode ? 'updateHeader' : 'header')\r\n\t\t\t| translate\r\n\t}}\"\r\n\tpanelClass=\"voc-form\"\r\n>\r\n\t<ng-template #contentTemplate>\r\n\t\t<form [formGroup]=\"departmentForm\" class=\"row voc-form-body\">\r\n\t\t\t<div class=\"col-lg-6 col-12\">\r\n\t\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\t\tformControlName=\"title\"\r\n\t\t\t\t\t[label]=\"'department_management.form.title'\"\r\n\t\t\t\t\t[disabled]=\"updateMode\"\r\n\t\t\t\t\t[preventSpace]=\"true\"\r\n\t\t\t\t></app-dynamic-form-textitem>\r\n\t\t\t\t<div class=\"hint-msg\">\r\n\t\t\t\t\t{{ 'department_management.form.hintMsg' | translate }}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\tformControlName=\"arabicName\"\r\n\t\t\t\t[label]=\"'department_management.form.ArabicName'\"\r\n\t\t\t></app-dynamic-form-textitem>\r\n\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\tformControlName=\"englishName\"\r\n\t\t\t\t[label]=\"'department_management.form.EnglishName'\"\r\n\t\t\t></app-dynamic-form-textitem>\r\n\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t*ngIf=\"data.displayDepTypee\"\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\t[label]=\"'department_management.form.deptTypee'\"\r\n\t\t\t\t[bindLabel]=\"'label'\"\r\n\t\t\t\t[bindValue]=\"'id'\"\r\n\t\t\t\tplaceholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n\t\t\t\t[multiple]=\"false\"\r\n\t\t\t\t[searchable]=\"false\"\r\n\t\t\t\t[closeOnSelect]=\"true\"\r\n\t\t\t\t[hideSelectedItems]=\"false\"\r\n\t\t\t\t[vocabularyType]=\"'VOC_DepartmentType'\"\r\n\t\t\t\tformControlName=\"deptTypee\"\r\n\t\t\t>\r\n\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\tformControlName=\"description\"\r\n\t\t\t\t[label]=\"'department_management.form.Description'\"\r\n\t\t\t></app-dynamic-form-textitem>\r\n\r\n\t\t\t<cts-dynamic-form-slide-toggleitem\r\n\t\t\t\t*ngIf=\"data.displayIsAllowRecExternal\"\r\n\t\t\t\tclass=\"col-lg-6 col-12 isAllowRecExternal\"\r\n\t\t\t\tformControlName=\"isAllowRecExternal\"\r\n\t\t\t\t[label]=\"'department_management.form.isAllowRecExternal'\"\r\n\t\t\t></cts-dynamic-form-slide-toggleitem>\r\n\t\t</form>\r\n\t</ng-template>\r\n\r\n\t<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t\t<button\r\n\t\t\t(click)=\"dialog.executeAction(createDocument)\"\r\n\t\t\t[disabled]=\"\r\n\t\t\t\tscannerUploadButton?.disabled ||\r\n\t\t\t\t!selectedFile?.dynamicData.valid ||\r\n\t\t\t\tfileForm.invalid\r\n\t\t\t\"\r\n\t\t\t[ngClass]=\"{\r\n\t\t\t\t'opacity-30 cursor-not-allowed':\r\n\t\t\t\t\tscannerUploadButton?.disabled ||\r\n\t\t\t\t\t!selectedFile?.dynamicData.valid ||\r\n\t\t\t\t\tfileForm.invalid\r\n\t\t\t}\"\r\n\t\t\tclass=\"submission-button\"\r\n\t\t>\r\n\t\t\t{{\r\n\t\t\t\tuploadMangmentService?.scanCreationFailed\r\n\t\t\t\t\t? ('BUTTONS.TRY_AGAIN' | translate)\r\n\t\t\t\t\t: ('BUTTONS.CREATE' | translate)\r\n\t\t\t}}\r\n\t\t</button>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"!updateMode\"\r\n\t\t\t(click)=\"dialog.executeAction(save)\"\r\n\t\t\t[disabled]=\"departmentForm.invalid\"\r\n\t\t\tclass=\"voc-form-submit\"\r\n\t\t>\r\n\t\t\t{{ 'BUTTONS.SAVE' | translate }}\r\n\t\t</button>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"updateMode\"\r\n\t\t\t(click)=\"dialog.executeAction(update)\"\r\n\t\t\t[disabled]=\"departmentForm.invalid\"\r\n\t\t\tclass=\"voc-form-submit\"\r\n\t\t>\r\n\t\t\t{{ 'BUTTONS.UPDATE' | translate }}\r\n\t\t</button>\r\n\t</ng-template>\r\n</ndf-nuxeo-dialog>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.voc-form{padding:20px}.voc-form .hint-msg{font-size:12px;font-style:italic;margin-top:2px;color:#6a768e}.voc-form .voc-form-hedaer{margin-bottom:8px;font-size:20px;color:#465573}.voc-form .button-group{margin-top:12px;grid-column-gap:6px!important;column-gap:6px!important}.voc-form .button-group cts-button{width:16%}@media (max-width: 992px){.voc-form .button-group cts-button{width:20%}}@media only screen and (max-width: 768px){.voc-form .button-group cts-button{width:28%}}.voc-form .isAllowRecExternal{display:flex;align-items:center;margin-top:26px;overflow:hidden}@media only screen and (max-width: 768px){.voc-form .isAllowRecExternal{font-size:12px}}\n"], components: [{ type: i4.NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: ["dialogTitle", "subTitle", "panelClass", "loaderMode"] }, { type: i5.DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: ["autoComplete", "nativeAutoComplete", "autoComplete_pageProvider", "autoComplete_propertyName", "autoComplete_propertyKey", "autoCompleteValueKey", "autoCompleteType", "tenantId", "emitFullObject", "outsideParams", "type", "property", "label", "editable", "placeholder", "disabled", "displayEmpty", "preventSpace", "id", "maxCharsNum"] }, { type: i6.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: i7.DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i10.TranslatePipe } });
117
+ DepartmentFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DepartmentFormComponent, selector: "cts-department-form", usesInheritance: true, ngImport: i0, template: "<ndf-nuxeo-dialog\r\n\tdialogTitle=\"{{\r\n\t\t'department_management.form.' + (updateMode ? 'updateHeader' : 'header')\r\n\t\t\t| translate\r\n\t}}\"\r\n\tpanelClass=\"voc-form\"\r\n>\r\n\t<ng-template #contentTemplate>\r\n\t\t<form [formGroup]=\"departmentForm\" class=\"row voc-form-body\">\r\n\t\t\t<div class=\"col-lg-6 col-12\">\r\n\t\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\t\tformControlName=\"title\"\r\n\t\t\t\t\t[label]=\"'department_management.form.title'\"\r\n\t\t\t\t\t[disabled]=\"updateMode\"\r\n\t\t\t\t\t[preventSpace]=\"true\"\r\n\t\t\t\t></app-dynamic-form-textitem>\r\n\t\t\t\t<div class=\"hint-msg\">\r\n\t\t\t\t\t{{ 'department_management.form.hintMsg' | translate }}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\tformControlName=\"arabicName\"\r\n\t\t\t\t[label]=\"'department_management.form.ArabicName'\"\r\n\t\t\t></app-dynamic-form-textitem>\r\n\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\tformControlName=\"englishName\"\r\n\t\t\t\t[label]=\"'department_management.form.EnglishName'\"\r\n\t\t\t></app-dynamic-form-textitem>\r\n\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t*ngIf=\"data.displayDepTypee\"\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\t[label]=\"'department_management.form.deptTypee'\"\r\n\t\t\t\t[bindLabel]=\"'label'\"\r\n\t\t\t\t[bindValue]=\"'id'\"\r\n\t\t\t\tplaceholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n\t\t\t\t[multiple]=\"false\"\r\n\t\t\t\t[searchable]=\"false\"\r\n\t\t\t\t[closeOnSelect]=\"true\"\r\n\t\t\t\t[hideSelectedItems]=\"false\"\r\n\t\t\t\t[vocabularyType]=\"'VOC_DepartmentType'\"\r\n\t\t\t\tformControlName=\"deptTypee\"\r\n\t\t\t>\r\n\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t<app-dynamic-form-textitem\r\n\t\t\t\tclass=\"col-lg-6 col-12\"\r\n\t\t\t\tformControlName=\"description\"\r\n\t\t\t\t[label]=\"'department_management.form.Description'\"\r\n\t\t\t></app-dynamic-form-textitem>\r\n\r\n\t\t\t<cts-dynamic-form-slide-toggleitem\r\n\t\t\t\t*ngIf=\"data.displayIsAllowRecExternal\"\r\n\t\t\t\tclass=\"col-lg-6 col-12 isAllowRecExternal\"\r\n\t\t\t\tformControlName=\"isAllowRecExternal\"\r\n\t\t\t\t[label]=\"'department_management.form.isAllowRecExternal'\"\r\n\t\t\t></cts-dynamic-form-slide-toggleitem>\r\n\t\t</form>\r\n\t</ng-template>\r\n\r\n\t<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t\t<button\r\n\t\t\t(click)=\"dialog.executeAction(createDocument)\"\r\n\t\t\t[disabled]=\"\r\n\t\t\t\tscannerUploadButton?.disabled ||\r\n\t\t\t\t!selectedFile?.dynamicData.valid ||\r\n\t\t\t\tfileForm.invalid\r\n\t\t\t\"\r\n\t\t\t[ngClass]=\"{\r\n\t\t\t\t'opacity-30 cursor-not-allowed':\r\n\t\t\t\t\tscannerUploadButton?.disabled ||\r\n\t\t\t\t\t!selectedFile?.dynamicData.valid ||\r\n\t\t\t\t\tfileForm.invalid\r\n\t\t\t}\"\r\n\t\t\tclass=\"submission-button\"\r\n\t\t>\r\n\t\t\t{{\r\n\t\t\t\tuploadMangmentService?.scanCreationFailed\r\n\t\t\t\t\t? ('BUTTONS.TRY_AGAIN' | translate)\r\n\t\t\t\t\t: ('BUTTONS.CREATE' | translate)\r\n\t\t\t}}\r\n\t\t</button>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"!updateMode\"\r\n\t\t\t(click)=\"dialog.executeAction(save)\"\r\n\t\t\t[disabled]=\"departmentForm.invalid\"\r\n\t\t\tclass=\"voc-form-submit\"\r\n\t\t>\r\n\t\t\t{{ 'BUTTONS.SAVE' | translate }}\r\n\t\t</button>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"updateMode\"\r\n\t\t\t(click)=\"dialog.executeAction(update)\"\r\n\t\t\t[disabled]=\"departmentForm.invalid\"\r\n\t\t\tclass=\"voc-form-submit\"\r\n\t\t>\r\n\t\t\t{{ 'BUTTONS.UPDATE' | translate }}\r\n\t\t</button>\r\n\t</ng-template>\r\n</ndf-nuxeo-dialog>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.voc-form{padding:20px}.voc-form .hint-msg{font-size:12px;font-style:italic;margin-top:2px;color:#6a768e}.voc-form .voc-form-hedaer{margin-bottom:8px;font-size:20px;color:#465573}.voc-form .button-group{margin-top:12px;grid-column-gap:6px!important;column-gap:6px!important}.voc-form .button-group cts-button{width:16%}@media (max-width: 992px){.voc-form .button-group cts-button{width:20%}}@media only screen and (max-width: 768px){.voc-form .button-group cts-button{width:28%}}.voc-form .isAllowRecExternal{display:flex;align-items:center;margin-top:26px;overflow:hidden}@media only screen and (max-width: 768px){.voc-form .isAllowRecExternal{font-size:12px}}\n"], components: [{ type: i4.NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: ["dialogTitle", "subTitle", "panelClass", "loaderMode"] }, { type: i5.DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: ["autoComplete", "nativeAutoComplete", "autoComplete_pageProvider", "autoComplete_propertyName", "autoComplete_propertyKey", "autoCompleteValueKey", "autoCompleteType", "tenantId", "emitFullObject", "outsideParams", "type", "property", "label", "editable", "placeholder", "disabled", "displayEmpty", "preventSpace", "id", "maxCharsNum"] }, { type: i6.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues", "emitVocabulryRecordOnSelect"], outputs: ["onSelecting"] }, { type: i7.DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i10.TranslatePipe } });
118
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DepartmentFormComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{
@@ -50,6 +50,7 @@ export class DynamicFormVocabularyItemComponent {
50
50
  this.vocabularyType = '';
51
51
  this.cacheable = true;
52
52
  this.shwoAllValues = true;
53
+ this.emitVocabulryRecordOnSelect = false;
53
54
  /** Event emitted on value is selected */
54
55
  this.onSelecting = new EventEmitter();
55
56
  this.loading = false;
@@ -99,7 +100,8 @@ export class DynamicFormVocabularyItemComponent {
99
100
  }
100
101
  getSelecteditems(selectedItems) {
101
102
  this.propagateChange(this.selection);
102
- this.onSelecting.emit(this.selection);
103
+ const value = this.emitVocabulryRecordOnSelect ? selectedItems : this.selection;
104
+ this.onSelecting.emit(value);
103
105
  }
104
106
  writeValue(value) {
105
107
  // if (value) { removed to allow reseting ui when resetting form
@@ -130,7 +132,7 @@ export class DynamicFormVocabularyItemComponent {
130
132
  }
131
133
  }
132
134
  DynamicFormVocabularyItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormVocabularyItemComponent, deps: [{ token: i1.VocabularyApiService }, { token: i0.ChangeDetectorRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
133
- DynamicFormVocabularyItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: { onlyIds: "onlyIds", bindValue: "bindValue", bindLabel: "bindLabel", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", closeOnSelect: "closeOnSelect", hideSelectedItems: "hideSelectedItems", disabled: "disabled", vocabularyType: "vocabularyType", label: "label", cacheable: "cacheable", shwoAllValues: "shwoAllValues" }, outputs: { onSelecting: "onSelecting" }, viewQueries: [{ propertyName: "DynamicFormSelectItemComponent", first: true, predicate: DynamicFormSelectItemComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger mx-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-selectitem\r\n [voc]=\"true\"\r\n [vocId]=\"vocabularyType\"\r\n [data]=\"data\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [disabled]=\"disabled\"\r\n [hideSelectedItems]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (onSelectItems)=\"getSelecteditems($event)\"\r\n [(ngModel)]=\"selection\"\r\n></app-dynamic-form-selectitem>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ label | translate }} {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: [""], components: [{ type: i3.DynamicFormSelectItemComponent, selector: "app-dynamic-form-selectitem", inputs: ["label", "bindValue", "bindLabel", "data", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "voc", "vocId", "loading"], outputs: ["onSelectItems"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i6.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
135
+ DynamicFormVocabularyItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: { onlyIds: "onlyIds", bindValue: "bindValue", bindLabel: "bindLabel", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", closeOnSelect: "closeOnSelect", hideSelectedItems: "hideSelectedItems", disabled: "disabled", vocabularyType: "vocabularyType", label: "label", cacheable: "cacheable", shwoAllValues: "shwoAllValues", emitVocabulryRecordOnSelect: "emitVocabulryRecordOnSelect" }, outputs: { onSelecting: "onSelecting" }, viewQueries: [{ propertyName: "DynamicFormSelectItemComponent", first: true, predicate: DynamicFormSelectItemComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger mx-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-selectitem\r\n [voc]=\"true\"\r\n [vocId]=\"vocabularyType\"\r\n [data]=\"data\"\r\n [bindLabel]=\"bindLabel\"\r\n [bindValue]=\"bindValue\"\r\n [placeholder]=\"placeholder\"\r\n [multiple]=\"multiple\"\r\n [searchable]=\"searchable\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [disabled]=\"disabled\"\r\n [hideSelectedItems]=\"hideSelectedItems\"\r\n [loading]=\"loading\"\r\n (onSelectItems)=\"getSelecteditems($event)\"\r\n [(ngModel)]=\"selection\"\r\n></app-dynamic-form-selectitem>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ label | translate }} {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: [""], components: [{ type: i3.DynamicFormSelectItemComponent, selector: "app-dynamic-form-selectitem", inputs: ["label", "bindValue", "bindLabel", "data", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "clear", "voc", "vocId", "loading"], outputs: ["onSelectItems"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i6.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
134
136
  __decorate([
135
137
  Cacheable({
136
138
  maxCacheCount: 1000,
@@ -179,7 +181,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
179
181
  type: Input
180
182
  }], shwoAllValues: [{
181
183
  type: Input
184
+ }], emitVocabulryRecordOnSelect: [{
185
+ type: Input
182
186
  }], onSelecting: [{
183
187
  type: Output
184
188
  }], getCacheableVocabularyList: [] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7QUFFOUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFPSCxNQUFNLE9BQU8sa0NBQWtDO0lBb0Q5QyxZQUNTLGFBQW1DLEVBQ25DLEtBQXdCLEVBQ0wsT0FBa0I7UUFGckMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ0wsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQW5EOUMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNELFlBQU8sR0FBYSxFQUFFLENBQUM7UUFPaEMsMEJBQTBCO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsb0JBQW9CO1FBQ1gsZUFBVSxHQUFHLElBQUksQ0FBQztRQUMzQiw2QkFBNkI7UUFDcEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUIsaUNBQWlDO1FBQ3hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNuQyxrQkFBa0I7UUFDVCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLDhCQUE4QjtRQUNyQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUdwQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLHlDQUF5QztRQUMvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdoQixxQ0FBcUM7UUFDckMsb0JBQWUsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNwQixjQUFTLEdBQVEsR0FBRyxFQUFFO1lBQzVCLFNBQVM7UUFDVixDQUFDLENBQUM7UUFtQkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFuQkQsSUFBVyxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQVNELFFBQVE7UUFDUCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDMUM7SUFDRixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQUk7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFOztZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVyQixJQUFJLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxFQUFFO2dCQUN6QixHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDckQ7WUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWE7Z0JBQzlCLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25GLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBT0QsMEJBQTBCLENBQUMsSUFBSTtRQUM5QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQUk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxhQUFhO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZixnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSTtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBYztRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELFVBQVU7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNyRCxPQUFPLEtBQUssQ0FBQztTQUNiO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQXFCLENBQUMsQ0FBQztRQUN4RSxPQUFPLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFDRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxLQUFLO1FBQ0osSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7O2dJQWxJVyxrQ0FBa0M7b0hBQWxDLGtDQUFrQyxxaEJBQ25DLDhCQUE4QixnREM1QzFDLHNqQ0FtQ0E7QURnR0M7SUFMQyxTQUFTLENBQUM7UUFDVixhQUFhLEVBQUUsSUFBSTtRQUNuQixlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLE1BQU0sRUFBRSxLQUFLO0tBQ2IsQ0FBQztvRkFHRDs0RkExRlcsa0NBQWtDO2tCQU45QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFdBQVcsRUFBRSwrQ0FBK0M7b0JBQzVELFNBQVMsRUFBRSxDQUFDLCtDQUErQyxDQUFDO29CQUM1RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDckM7OzBCQXdERSxJQUFJOzswQkFBSSxRQUFROzRDQXJEbEIsOEJBQThCO3NCQUQ3QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJaEMsT0FBTztzQkFBZixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQTJEUCwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T3B0aW9uYWwsXHJcblx0T3V0cHV0LFxyXG5cdFNlbGYsXHJcblx0Vmlld0NoaWxkLFxyXG5cdFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVm9jYWJ1bGFyeUFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi92b2NhYnVsYXJ5L3NlcnZpY2VzL3ZvY2FidWxhcnktYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWNoZWFibGUsIExvY2FsU3RvcmFnZVN0cmF0ZWd5IH0gZnJvbSAndHMtY2FjaGVhYmxlJztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLXNlbGVjdGl0ZW0vZHluYW1pYy1mb3JtLXNlbGVjdGl0ZW0uY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBBIHZvY2FidWxhcnkgZHJvcGRvd24gaW5wdXQgaW50ZWdyYXRlZCB3aXRoIG51eGVvIHZvY2FidWxhcnkgQVBJLFxyXG4gKiB0aGF0IGNhbiBiZSB1c2VkIGluc2lkZSByZWFjdGl2ZSBvciB0ZW1wbGF0ZSBkcml2ZW4gZm9ybXNcclxuICogQHRpdGxlXHJcbiAqIHZvY2FidWxhcnkgZHJvcGRvd25cclxuICogQGV4YW1wbGVcclxuICogPGFwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtXHJcbiAqICAgW2xhYmVsXT1cIidQQVRILlRPLkxBQkVMLlRSQU5TTEFUSU9OJ1wiXHJcbiAqICAgW2JpbmRMYWJlbF09XCInYmluZExhYmVsUHJvcGVydHlOYW1lJ1wiXHJcbiAqICAgW2JpbmRWYWx1ZV09XCInYmluZFZhbHVlUHJvcGVydHlOYW1lJ1wiXHJcbiAqICAgcGxhY2Vob2xkZXI9XCInUEFUSC5UTy5QTEFDRUhPTERFUi5UUkFOU0xBVElPTidcIlxyXG4gKiAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAqICAgW3NlYXJjaGFibGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtjbG9zZU9uU2VsZWN0XT1cInRydWVcIlxyXG4gKiAgIFtoaWRlU2VsZWN0ZWRJdGVtc109XCJmYWxzZVwiXHJcbiAqICAgW3ZvY2FidWxhcnlUeXBlXT1cIidWb2NhYnVsYXJ5S2V5J1wiXHJcbiAqICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gKiA+XHJcbiAqIDwvYXBwLWR5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtVm9jYWJ1bGFyeUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0QFZpZXdDaGlsZChEeW5hbWljRm9ybVNlbGVjdEl0ZW1Db21wb25lbnQpXHJcblx0RHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50OiBEeW5hbWljRm9ybVNlbGVjdEl0ZW1Db21wb25lbnQ7XHJcblxyXG5cdGRhdGEgPSBbXTtcclxuXHRASW5wdXQoKSBvbmx5SWRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cdC8qKiBCaW5kIHZhbHVlIHRvIHByb3BlcnR5IG5hbWUgKi9cclxuXHRASW5wdXQoKSBiaW5kVmFsdWU7XHJcblx0LyoqIEJpbmQgbGFiZWwgdG8gcHJvcGVydHkgbmFtZSAqL1xyXG5cdEBJbnB1dCgpIGJpbmRMYWJlbDtcclxuXHQvKiogUGxhY2Vob2xkZXIgc3RyaW5nICovXHJcblx0QElucHV0KCkgcGxhY2Vob2xkZXI7XHJcblx0LyoqIENhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuXHRASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG5cdC8qKiBJcyBzZWFyY2hhYmxlICovXHJcblx0QElucHV0KCkgc2VhcmNoYWJsZSA9IHRydWU7XHJcblx0LyoqIFNob3VsZCBjbG9zZSBvbiBzZWxlY3QgKi9cclxuXHRASW5wdXQoKSBjbG9zZU9uU2VsZWN0ID0gdHJ1ZTtcclxuXHQvKiogU2hvdWxkIGhpZGUgc2VsZWN0ZWQgaXRlbXMgKi9cclxuXHRASW5wdXQoKSBoaWRlU2VsZWN0ZWRJdGVtcyA9IGZhbHNlO1xyXG5cdC8qKiBpcyBkaXNhYmxlZCAqL1xyXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblx0LyoqIFZvY2FidWxhcnkgbGlzdCBBUEkgS2V5ICovXHJcblx0QElucHV0KCkgdm9jYWJ1bGFyeVR5cGUgPSAnJztcclxuXHQvKiogRmllbGQgTGFiZWwgKi9cclxuXHRASW5wdXQoKSBsYWJlbDtcclxuXHRASW5wdXQoKSBjYWNoZWFibGUgPSB0cnVlO1xyXG5cdEBJbnB1dCgpIHNod29BbGxWYWx1ZXMgPSB0cnVlO1xyXG5cdC8qKiBFdmVudCBlbWl0dGVkIG9uIHZhbHVlIGlzIHNlbGVjdGVkICovXHJcblx0QE91dHB1dCgpIG9uU2VsZWN0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdGxvYWRpbmcgPSBmYWxzZTtcclxuXHRzZWxlY3Rpb247XHJcblxyXG5cdC8vIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdmFsdWUgYWNjZXNzb3JcclxuXHRwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xyXG5cdHZhbGlkYXRlRm46IGFueSA9ICgpID0+IHt9O1xyXG5cdHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcclxuXHRcdC8qRW1wdHkqL1xyXG5cdH07XHJcblx0cHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkIDogZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHNob3dFcnJvcigpOiBib29sZWFuIHtcclxuXHRcdGlmICghdGhpcy5jb250cm9sKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB7IGRpcnR5LCB0b3VjaGVkIH0gPSB0aGlzLmNvbnRyb2w7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuaW52YWxpZCA/IGRpcnR5IHx8IHRvdWNoZWQgOiBmYWxzZTtcclxuXHR9XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHZvY2FidWxhcnlBcGk6IFZvY2FidWxhcnlBcGlTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuXHQpIHtcclxuXHRcdHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMudm9jYWJ1bGFyeVR5cGUpIHtcclxuXHRcdFx0dGhpcy5nZXRMaXNPZk9wdGlvbnModGhpcy52b2NhYnVsYXJ5VHlwZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXRMaXNPZk9wdGlvbnModHlwZSkge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdGNvbnN0IGNhbGxBcGkgPSB0aGlzLmNhY2hlYWJsZSA/IHRoaXMuZ2V0Q2FjaGVhYmxlVm9jYWJ1bGFyeUxpc3QodHlwZSkgOiB0aGlzLmdldFZvY2FidWxhcnlMaXN0KHR5cGUpO1xyXG5cdFx0Y2FsbEFwaS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9ubHlJZHM/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdHJlcyA9IHJlcy5maWx0ZXIoKHEpID0+IHRoaXMub25seUlkcy5pbmNsdWRlcyhxLmlkKSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuZGF0YSA9ICF0aGlzLnNod29BbGxWYWx1ZXNcclxuXHRcdFx0XHQ/IHJlcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlkLmluY2x1ZGVzKCdhcmNoaXZlZCcpICYmICFpdGVtLmlkLmluY2x1ZGVzKCdkcmFmdCcpKVxyXG5cdFx0XHRcdDogcmVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5vYnNvbGV0ZSA9PT0gMCk7XHJcblx0XHRcdHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRAQ2FjaGVhYmxlKHtcclxuXHRcdG1heENhY2hlQ291bnQ6IDEwMDAsXHJcblx0XHRzdG9yYWdlU3RyYXRlZ3k6IExvY2FsU3RvcmFnZVN0cmF0ZWd5LFxyXG5cdFx0bWF4QWdlOiAyMDAwMFxyXG5cdH0pXHJcblx0Z2V0Q2FjaGVhYmxlVm9jYWJ1bGFyeUxpc3QodHlwZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMudm9jYWJ1bGFyeUFwaS5nZXRWb2NhYnVsYXJ5TGlzdCh0eXBlKTtcclxuXHR9XHJcblxyXG5cdGdldFZvY2FidWxhcnlMaXN0KHR5cGUpIHtcclxuXHRcdHJldHVybiB0aGlzLnZvY2FidWxhcnlBcGkuZ2V0Vm9jYWJ1bGFyeUxpc3QodHlwZSk7XHJcblx0fVxyXG5cdGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcykge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3Rpb24pO1xyXG5cdFx0dGhpcy5vblNlbGVjdGluZy5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdHdyaXRlVmFsdWUodmFsdWUpIHtcclxuXHRcdC8vIGlmICh2YWx1ZSkgeyByZW1vdmVkIHRvIGFsbG93IHJlc2V0aW5nIHVpIHdoZW4gcmVzZXR0aW5nIGZvcm1cclxuXHRcdHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcblx0XHQvLyB9XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XHJcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XHJcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0ZUZuKGMpO1xyXG5cdH1cclxuXHRpc1JlcXVpcmVkKCkge1xyXG5cdFx0aWYgKCF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgdmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcblx0XHRyZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuXHR9XHJcblx0aGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG5cdH1cclxuXHRyZXNldCgpIHtcclxuXHRcdHRoaXMuRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50LnJlc2V0KCk7XHJcblx0fVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxyXG4gIDxkaXY+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJzZWxlY3QtbGFiZWxcIlxyXG4gICAgICA+e3sgbGFiZWwgfCB0cmFuc2xhdGVcclxuICAgICAgfX08c3BhbiAqbmdJZj1cImlzUmVxdWlyZWQoKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXgtMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tc2VsZWN0aXRlbVxyXG4gIFt2b2NdPVwidHJ1ZVwiXHJcbiAgW3ZvY0lkXT1cInZvY2FidWxhcnlUeXBlXCJcclxuICBbZGF0YV09XCJkYXRhXCJcclxuICBbYmluZExhYmVsXT1cImJpbmRMYWJlbFwiXHJcbiAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWVcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcclxuICBbY2xvc2VPblNlbGVjdF09XCJjbG9zZU9uU2VsZWN0XCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtoaWRlU2VsZWN0ZWRJdGVtc109XCJoaWRlU2VsZWN0ZWRJdGVtc1wiXHJcbiAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgKG9uU2VsZWN0SXRlbXMpPVwiZ2V0U2VsZWN0ZWRpdGVtcygkZXZlbnQpXCJcclxuICBbKG5nTW9kZWwpXT1cInNlbGVjdGlvblwiXHJcbj48L2FwcC1keW5hbWljLWZvcm0tc2VsZWN0aXRlbT5cclxuPG1hdC1lcnJvclxyXG4gIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1lcnJvci0nXCJcclxuICBjbGFzcz1cImFwcC10ZXh0aXRlbS1lZGl0YWJsZS1lcnJvclwiXHJcbiAgKm5nSWY9XCJoYXNFcnJvcnMoKVwiXHJcbj5cclxuICA8dWw+XHJcbiAgICA8bGkgKm5nSWY9XCJjb250cm9sLmVycm9ycy5yZXF1aXJlZFwiPlxyXG4gICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fSB7eyBcIlZBTElEQVRPUlMuUkVRVUlSRURcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9saT5cclxuICA8L3VsPlxyXG48L21hdC1lcnJvcj5cclxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0vZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7QUFFOUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFPSCxNQUFNLE9BQU8sa0NBQWtDO0lBcUQ5QyxZQUNTLGFBQW1DLEVBQ25DLEtBQXdCLEVBQ0wsT0FBa0I7UUFGckMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ0wsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQXBEOUMsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNELFlBQU8s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QUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkEyRFAsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE9wdGlvbmFsLFxyXG5cdE91dHB1dCxcclxuXHRTZWxmLFxyXG5cdFZpZXdDaGlsZCxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZvY2FidWxhcnlBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdm9jYWJ1bGFyeS9zZXJ2aWNlcy92b2NhYnVsYXJ5LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FjaGVhYmxlLCBMb2NhbFN0b3JhZ2VTdHJhdGVneSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1zZWxlY3RpdGVtL2R5bmFtaWMtZm9ybS1zZWxlY3RpdGVtLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQSB2b2NhYnVsYXJ5IGRyb3Bkb3duIGlucHV0IGludGVncmF0ZWQgd2l0aCBudXhlbyB2b2NhYnVsYXJ5IEFQSSxcclxuICogdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiB2b2NhYnVsYXJ5IGRyb3Bkb3duXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbVxyXG4gKiAgIFtsYWJlbF09XCInUEFUSC5UTy5MQUJFTC5UUkFOU0xBVElPTidcIlxyXG4gKiAgIFtiaW5kTGFiZWxdPVwiJ2JpbmRMYWJlbFByb3BlcnR5TmFtZSdcIlxyXG4gKiAgIFtiaW5kVmFsdWVdPVwiJ2JpbmRWYWx1ZVByb3BlcnR5TmFtZSdcIlxyXG4gKiAgIHBsYWNlaG9sZGVyPVwiJ1BBVEguVE8uUExBQ0VIT0xERVIuVFJBTlNMQVRJT04nXCJcclxuICogICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICogICBbY2xvc2VPblNlbGVjdF09XCJ0cnVlXCJcclxuICogICBbaGlkZVNlbGVjdGVkSXRlbXNdPVwiZmFsc2VcIlxyXG4gKiAgIFt2b2NhYnVsYXJ5VHlwZV09XCInVm9jYWJ1bGFyeUtleSdcIlxyXG4gKiAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRyb2xOYW1lXCJcclxuICogPlxyXG4gKiA8L2FwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVZvY2FidWxhcnlJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBWaWV3Q2hpbGQoRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50KVxyXG5cdER5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudDogRHluYW1pY0Zvcm1TZWxlY3RJdGVtQ29tcG9uZW50O1xyXG5cclxuXHRkYXRhID0gW107XHJcblx0QElucHV0KCkgb25seUlkczogc3RyaW5nW10gPSBbXTtcclxuXHQvKiogQmluZCB2YWx1ZSB0byBwcm9wZXJ0eSBuYW1lICovXHJcblx0QElucHV0KCkgYmluZFZhbHVlO1xyXG5cdC8qKiBCaW5kIGxhYmVsIHRvIHByb3BlcnR5IG5hbWUgKi9cclxuXHRASW5wdXQoKSBiaW5kTGFiZWw7XHJcblx0LyoqIFBsYWNlaG9sZGVyIHN0cmluZyAqL1xyXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG5cdC8qKiBDYW4gc2VsZWN0IG11bHRpcGxlICovXHJcblx0QElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuXHQvKiogSXMgc2VhcmNoYWJsZSAqL1xyXG5cdEBJbnB1dCgpIHNlYXJjaGFibGUgPSB0cnVlO1xyXG5cdC8qKiBTaG91bGQgY2xvc2Ugb24gc2VsZWN0ICovXHJcblx0QElucHV0KCkgY2xvc2VPblNlbGVjdCA9IHRydWU7XHJcblx0LyoqIFNob3VsZCBoaWRlIHNlbGVjdGVkIGl0ZW1zICovXHJcblx0QElucHV0KCkgaGlkZVNlbGVjdGVkSXRlbXMgPSBmYWxzZTtcclxuXHQvKiogaXMgZGlzYWJsZWQgKi9cclxuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cdC8qKiBWb2NhYnVsYXJ5IGxpc3QgQVBJIEtleSAqL1xyXG5cdEBJbnB1dCgpIHZvY2FidWxhcnlUeXBlID0gJyc7XHJcblx0LyoqIEZpZWxkIExhYmVsICovXHJcblx0QElucHV0KCkgbGFiZWw7XHJcblx0QElucHV0KCkgY2FjaGVhYmxlID0gdHJ1ZTtcclxuXHRASW5wdXQoKSBzaHdvQWxsVmFsdWVzID0gdHJ1ZTtcclxuXHRASW5wdXQoKSBlbWl0Vm9jYWJ1bHJ5UmVjb3JkT25TZWxlY3QgPSBmYWxzZTtcclxuXHQvKiogRXZlbnQgZW1pdHRlZCBvbiB2YWx1ZSBpcyBzZWxlY3RlZCAqL1xyXG5cdEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRsb2FkaW5nID0gZmFsc2U7XHJcblx0c2VsZWN0aW9uO1xyXG5cclxuXHQvLyBmdW5jdGlvbiByZWxhdGVkIHRvIHZhbHVlIGFjY2Vzc29yXHJcblx0cHJvcGFnYXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcblx0dmFsaWRhdGVGbjogYW55ID0gKCkgPT4geyB9O1xyXG5cdHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcclxuXHRcdC8qRW1wdHkqL1xyXG5cdH07XHJcblx0cHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbC5pbnZhbGlkIDogZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0IHNob3dFcnJvcigpOiBib29sZWFuIHtcclxuXHRcdGlmICghdGhpcy5jb250cm9sKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB7IGRpcnR5LCB0b3VjaGVkIH0gPSB0aGlzLmNvbnRyb2w7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuaW52YWxpZCA/IGRpcnR5IHx8IHRvdWNoZWQgOiBmYWxzZTtcclxuXHR9XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHZvY2FidWxhcnlBcGk6IFZvY2FidWxhcnlBcGlTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuXHQpIHtcclxuXHRcdHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMudm9jYWJ1bGFyeVR5cGUpIHtcclxuXHRcdFx0dGhpcy5nZXRMaXNPZk9wdGlvbnModGhpcy52b2NhYnVsYXJ5VHlwZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXRMaXNPZk9wdGlvbnModHlwZSkge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdGNvbnN0IGNhbGxBcGkgPSB0aGlzLmNhY2hlYWJsZSA/IHRoaXMuZ2V0Q2FjaGVhYmxlVm9jYWJ1bGFyeUxpc3QodHlwZSkgOiB0aGlzLmdldFZvY2FidWxhcnlMaXN0KHR5cGUpO1xyXG5cdFx0Y2FsbEFwaS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmICh0aGlzLm9ubHlJZHM/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdHJlcyA9IHJlcy5maWx0ZXIoKHEpID0+IHRoaXMub25seUlkcy5pbmNsdWRlcyhxLmlkKSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuZGF0YSA9ICF0aGlzLnNod29BbGxWYWx1ZXNcclxuXHRcdFx0XHQ/IHJlcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlkLmluY2x1ZGVzKCdhcmNoaXZlZCcpICYmICFpdGVtLmlkLmluY2x1ZGVzKCdkcmFmdCcpKVxyXG5cdFx0XHRcdDogcmVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5vYnNvbGV0ZSA9PT0gMCk7XHJcblx0XHRcdHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRAQ2FjaGVhYmxlKHtcclxuXHRcdG1heENhY2hlQ291bnQ6IDEwMDAsXHJcblx0XHRzdG9yYWdlU3RyYXRlZ3k6IExvY2FsU3RvcmFnZVN0cmF0ZWd5LFxyXG5cdFx0bWF4QWdlOiAyMDAwMFxyXG5cdH0pXHJcblx0Z2V0Q2FjaGVhYmxlVm9jYWJ1bGFyeUxpc3QodHlwZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMudm9jYWJ1bGFyeUFwaS5nZXRWb2NhYnVsYXJ5TGlzdCh0eXBlKTtcclxuXHR9XHJcblxyXG5cdGdldFZvY2FidWxhcnlMaXN0KHR5cGUpIHtcclxuXHRcdHJldHVybiB0aGlzLnZvY2FidWxhcnlBcGkuZ2V0Vm9jYWJ1bGFyeUxpc3QodHlwZSk7XHJcblx0fVxyXG5cdGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcykge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3Rpb24pO1xyXG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLmVtaXRWb2NhYnVscnlSZWNvcmRPblNlbGVjdCA/IHNlbGVjdGVkSXRlbXMgOiB0aGlzLnNlbGVjdGlvbjtcclxuXHRcdHRoaXMub25TZWxlY3RpbmcuZW1pdCh2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHR3cml0ZVZhbHVlKHZhbHVlKSB7XHJcblx0XHQvLyBpZiAodmFsdWUpIHsgcmVtb3ZlZCB0byBhbGxvdyByZXNldGluZyB1aSB3aGVuIHJlc2V0dGluZyBmb3JtXHJcblx0XHR0aGlzLnNlbGVjdGlvbiA9IHZhbHVlO1xyXG5cdFx0Ly8gfVxyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPbkNoYW5nZShmbikge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMub25Ub3VjaGVkID0gZm47XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdGVGbihjKTtcclxuXHR9XHJcblx0aXNSZXF1aXJlZCgpIHtcclxuXHRcdGlmICghdGhpcy5jb250cm9sIHx8ICF0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3IpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHZhbGlkYXRvciA9IHRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpO1xyXG5cdFx0cmV0dXJuIHZhbGlkYXRvciAmJiB2YWxpZGF0b3IucmVxdWlyZWQ7XHJcblx0fVxyXG5cdGhhc0Vycm9ycygpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLnNob3dFcnJvcjtcclxuXHR9XHJcblx0cmVzZXQoKSB7XHJcblx0XHR0aGlzLkR5bmFtaWNGb3JtU2VsZWN0SXRlbUNvbXBvbmVudC5yZXNldCgpO1xyXG5cdH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG14LTFcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxhcHAtZHluYW1pYy1mb3JtLXNlbGVjdGl0ZW1cclxuICBbdm9jXT1cInRydWVcIlxyXG4gIFt2b2NJZF09XCJ2b2NhYnVsYXJ5VHlwZVwiXHJcbiAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWxcIlxyXG4gIFtiaW5kVmFsdWVdPVwiYmluZFZhbHVlXCJcclxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXHJcbiAgW2Nsb3NlT25TZWxlY3RdPVwiY2xvc2VPblNlbGVjdFwiXHJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbaGlkZVNlbGVjdGVkSXRlbXNdPVwiaGlkZVNlbGVjdGVkSXRlbXNcIlxyXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gIChvblNlbGVjdEl0ZW1zKT1cImdldFNlbGVjdGVkaXRlbXMoJGV2ZW50KVwiXHJcbiAgWyhuZ01vZGVsKV09XCJzZWxlY3Rpb25cIlxyXG4+PC9hcHAtZHluYW1pYy1mb3JtLXNlbGVjdGl0ZW0+XHJcbjxtYXQtZXJyb3JcclxuICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgY2xhc3M9XCJhcHAtdGV4dGl0ZW0tZWRpdGFibGUtZXJyb3JcIlxyXG4gICpuZ0lmPVwiaGFzRXJyb3JzKClcIlxyXG4+XHJcbiAgPHVsPlxyXG4gICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cclxuICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX0ge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuPC9tYXQtZXJyb3I+XHJcbiJdfQ==
@@ -12,7 +12,7 @@ export class VocabularyWrapperComponent {
12
12
  }
13
13
  }
14
14
  VocabularyWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VocabularyWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- VocabularyWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VocabularyWrapperComponent, selector: "app-vocabulary-wrapper", inputs: { value: "value", vocId: "vocId", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<app-dynamic-form-vocabulary-item *ngIf=\"vocId\"\r\n[bindLabel]=\"'displayLabel'\"\r\n[bindValue]=\"'id'\"\r\n[(ngModel)]=\"value\"\r\n(onSelecting)=\"executeFunction($event)\"\r\n[vocabularyType]=\"vocId\">\r\n</app-dynamic-form-vocabulary-item>\r\n<!-- <div>\r\n {{vocId | json}}\r\n</div> -->\r\n", styles: [""], components: [{ type: i1.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
15
+ VocabularyWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VocabularyWrapperComponent, selector: "app-vocabulary-wrapper", inputs: { value: "value", vocId: "vocId", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<app-dynamic-form-vocabulary-item *ngIf=\"vocId\"\r\n[bindLabel]=\"'displayLabel'\"\r\n[bindValue]=\"'id'\"\r\n[(ngModel)]=\"value\"\r\n(onSelecting)=\"executeFunction($event)\"\r\n[vocabularyType]=\"vocId\">\r\n</app-dynamic-form-vocabulary-item>\r\n<!-- <div>\r\n {{vocId | json}}\r\n</div> -->\r\n", styles: [""], components: [{ type: i1.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues", "emitVocabulryRecordOnSelect"], outputs: ["onSelecting"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VocabularyWrapperComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{
@@ -84,7 +84,7 @@ export class FilterComponent {
84
84
  }
85
85
  }
86
86
  FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilterComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
87
- FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilterComponent, selector: "cts-filter", inputs: { fields: "fields", filterTitle: "filterTitle" }, outputs: { onFiltering: "onFiltering" }, ngImport: i0, template: "<div class=\"filter-wrapper\">\r\n <div class=\"filter-title\">\r\n <!-- {{filterTitle | translate}} -->\r\n </div>\r\n <div class=\"iner-filter-wrapper\" *ngIf=\"filterForm\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"single-control-wrapper\" *ngFor=\"let field of fields\">\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'text'\">\r\n <app-dynamic-form-textitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n >\r\n </app-dynamic-form-textitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'dropdown'\">\r\n <app-dynamic-form-vocabulary-item\r\n [shwoAllValues]=\"field.shwoAllValues ? field.shwoAllValues : false\"\r\n [label]=\"field.label\"\r\n [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n [placeholder]=\"field.placeholder | translate\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'rang'\">\r\n <cts-dynamic-form-hijri-dateitem [label]=\"field.label\" [formControlName]=\"field.formControlName\"[range]=\"true\" [vertical]=\"false\" >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'department'\">\r\n <app-dynamic-form-department\r\n [label]=\"field.label\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'toggle'\">\r\n <cts-dynamic-form-slide-toggleitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'date'\">\r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </form>\r\n \r\n </div>\r\n <div class=\"form-actions\">\r\n <button class=\"my-button mx-2\" type=\"button\" (click)=\"filter()\"> {{'FILTER' | translate}}</button>\r\n <button class=\"my-button reset mx-2\" type=\"button\" (click)=\"reset()\"> {{'reset' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.filter-wrapper .filter-title{font-size:18px;font-weight:bold;margin-bottom:15px}.filter-wrapper .iner-filter-wrapper{height:320px;overflow:auto;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;padding:15px 15px 0}.filter-wrapper .iner-filter-wrapper .single-control-wrapper{margin-bottom:15px}.filter-wrapper .form-actions{display:flex;justify-content:flex-start;align-content:center;padding:10px 15px}.filter-wrapper .form-actions .filter{border:none;background-color:transparent;font-weight:bold;width:80px;height:40px;background-image:linear-gradient(to bottom,#0dbab5,#2e62df);color:#fff;border-radius:5px}\n"], components: [{ type: i2.DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: ["autoComplete", "nativeAutoComplete", "autoComplete_pageProvider", "autoComplete_propertyName", "autoComplete_propertyKey", "autoCompleteValueKey", "autoCompleteType", "tenantId", "emitFullObject", "outsideParams", "type", "property", "label", "editable", "placeholder", "disabled", "displayEmpty", "preventSpace", "id", "maxCharsNum"] }, { type: i3.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: i4.DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }, { type: i5.DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: ["treeview", "treeViewAsFormControl", "placeholder", "multiple", "searchable", "label", "defaultSelect", "displayDepTypee", "displayIsAllowRecExternal", "pp_departmentNestedTree", "pp_departmentTree", "customPrefix", "useCustomAddEditAction", "customParentProperty", "customParams", "disabled", "nodesExpandedByDefault", "fixedParentNode", "showTreeActions"], outputs: ["onSelecting", "actionClicked", "onDataLoad"] }, { type: i6.DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i8.TranslatePipe } });
87
+ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilterComponent, selector: "cts-filter", inputs: { fields: "fields", filterTitle: "filterTitle" }, outputs: { onFiltering: "onFiltering" }, ngImport: i0, template: "<div class=\"filter-wrapper\">\r\n <div class=\"filter-title\">\r\n <!-- {{filterTitle | translate}} -->\r\n </div>\r\n <div class=\"iner-filter-wrapper\" *ngIf=\"filterForm\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"single-control-wrapper\" *ngFor=\"let field of fields\">\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'text'\">\r\n <app-dynamic-form-textitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n >\r\n </app-dynamic-form-textitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'dropdown'\">\r\n <app-dynamic-form-vocabulary-item\r\n [shwoAllValues]=\"field.shwoAllValues ? field.shwoAllValues : false\"\r\n [label]=\"field.label\"\r\n [bindLabel]=\"field.bindLabel\"\r\n [bindValue]=\"field.bindValue\"\r\n [placeholder]=\"field.placeholder | translate\"\r\n [multiple]=\"field.multiple\"\r\n [searchable]=\"field.searchable\"\r\n [closeOnSelect]=\"field.closeOnSelect\"\r\n [hideSelectedItems]=\"field.hideSelectedItems\"\r\n [vocabularyType]=\"field.vocabularyType\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'rang'\">\r\n <cts-dynamic-form-hijri-dateitem [label]=\"field.label\" [formControlName]=\"field.formControlName\"[range]=\"true\" [vertical]=\"false\" >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'department'\">\r\n <app-dynamic-form-department\r\n [label]=\"field.label\"\r\n placeholder=\"{{ 'CREATE.PLACE_HOLDER' | translate }} {{\r\n field.placeholder | translate\r\n }}\"\r\n [formControlName]=\"field.formControlName\"\r\n >\r\n </app-dynamic-form-department>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'toggle'\">\r\n <cts-dynamic-form-slide-toggleitem\r\n [label]=\"field.label\"\r\n [formControlName]=\"field.formControlName\"\r\n ></cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n\r\n <div class=\"control\" *ngIf=\"field.type === 'date'\">\r\n <cts-dynamic-form-hijri-dateitem\r\n [formControlName]=\"field.formControlName\"\r\n [label]=\"field.label\"\r\n >\r\n </cts-dynamic-form-hijri-dateitem>\r\n </div>\r\n \r\n\r\n </div>\r\n\r\n </form>\r\n \r\n </div>\r\n <div class=\"form-actions\">\r\n <button class=\"my-button mx-2\" type=\"button\" (click)=\"filter()\"> {{'FILTER' | translate}}</button>\r\n <button class=\"my-button reset mx-2\" type=\"button\" (click)=\"reset()\"> {{'reset' | translate}}</button>\r\n </div>\r\n</div>\r\n\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.filter-wrapper .filter-title{font-size:18px;font-weight:bold;margin-bottom:15px}.filter-wrapper .iner-filter-wrapper{height:320px;overflow:auto;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;padding:15px 15px 0}.filter-wrapper .iner-filter-wrapper .single-control-wrapper{margin-bottom:15px}.filter-wrapper .form-actions{display:flex;justify-content:flex-start;align-content:center;padding:10px 15px}.filter-wrapper .form-actions .filter{border:none;background-color:transparent;font-weight:bold;width:80px;height:40px;background-image:linear-gradient(to bottom,#0dbab5,#2e62df);color:#fff;border-radius:5px}\n"], components: [{ type: i2.DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: ["autoComplete", "nativeAutoComplete", "autoComplete_pageProvider", "autoComplete_propertyName", "autoComplete_propertyKey", "autoCompleteValueKey", "autoCompleteType", "tenantId", "emitFullObject", "outsideParams", "type", "property", "label", "editable", "placeholder", "disabled", "displayEmpty", "preventSpace", "id", "maxCharsNum"] }, { type: i3.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["onlyIds", "bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues", "emitVocabulryRecordOnSelect"], outputs: ["onSelecting"] }, { type: i4.DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: ["minHijri", "maxHijri", "minGreg", "maxGreg", "label", "isDisabled", "range", "vertical", "isReadOnly", "placeholder", "emitOnBlur"], outputs: ["valueChanged"] }, { type: i5.DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: ["treeview", "treeViewAsFormControl", "placeholder", "multiple", "searchable", "label", "defaultSelect", "displayDepTypee", "displayIsAllowRecExternal", "pp_departmentNestedTree", "pp_departmentTree", "customPrefix", "useCustomAddEditAction", "customParentProperty", "customParams", "disabled", "nodesExpandedByDefault", "fixedParentNode", "showTreeActions"], outputs: ["onSelecting", "actionClicked", "onDataLoad"] }, { type: i6.DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i8.TranslatePipe } });
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilterComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{