@sd-angular/core 0.0.1041 → 0.0.1045

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 (97) hide show
  1. package/assets/scss/quill-mention/quill-mention.css +55 -0
  2. package/assets/scss/sd-core.scss +1 -0
  3. package/autocomplete/src/lib/autocomplete.component.d.ts +1 -1
  4. package/bundles/sd-angular-core-autocomplete.umd.js +4 -1
  5. package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
  6. package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
  7. package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
  8. package/bundles/sd-angular-core-chip.umd.js +1 -1
  9. package/bundles/sd-angular-core-chip.umd.min.js +1 -1
  10. package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
  11. package/bundles/sd-angular-core-comment.umd.js +17 -16
  12. package/bundles/sd-angular-core-comment.umd.js.map +1 -1
  13. package/bundles/sd-angular-core-comment.umd.min.js +2 -2
  14. package/bundles/sd-angular-core-comment.umd.min.js.map +1 -1
  15. package/bundles/sd-angular-core-editor.umd.js +73 -18
  16. package/bundles/sd-angular-core-editor.umd.js.map +1 -1
  17. package/bundles/sd-angular-core-editor.umd.min.js +2 -2
  18. package/bundles/sd-angular-core-editor.umd.min.js.map +1 -1
  19. package/bundles/sd-angular-core-form.umd.js +6 -4
  20. package/bundles/sd-angular-core-form.umd.js.map +1 -1
  21. package/bundles/sd-angular-core-form.umd.min.js +1 -1
  22. package/bundles/sd-angular-core-form.umd.min.js.map +1 -1
  23. package/bundles/sd-angular-core-modal-custom.umd.js +487 -0
  24. package/bundles/sd-angular-core-modal-custom.umd.js.map +1 -0
  25. package/bundles/sd-angular-core-modal-custom.umd.min.js +16 -0
  26. package/bundles/sd-angular-core-modal-custom.umd.min.js.map +1 -0
  27. package/bundles/sd-angular-core-modal-resizable.umd.js +487 -0
  28. package/bundles/sd-angular-core-modal-resizable.umd.js.map +1 -0
  29. package/bundles/sd-angular-core-modal-resizable.umd.min.js +16 -0
  30. package/bundles/sd-angular-core-modal-resizable.umd.min.js.map +1 -0
  31. package/bundles/sd-angular-core-setting.umd.js +1 -1
  32. package/bundles/sd-angular-core-setting.umd.js.map +1 -1
  33. package/bundles/sd-angular-core-setting.umd.min.js +1 -1
  34. package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
  35. package/bundles/sd-angular-core.umd.js +4 -4
  36. package/bundles/sd-angular-core.umd.min.js +1 -1
  37. package/bundles/sd-angular-core.umd.min.js.map +1 -1
  38. package/chip/sd-angular-core-chip.metadata.json +1 -1
  39. package/comment/sd-angular-core-comment.metadata.json +1 -1
  40. package/comment/src/lib/comment.model.d.ts +11 -0
  41. package/editor/sd-angular-core-editor.metadata.json +1 -1
  42. package/editor/src/lib/editor.component.d.ts +17 -3
  43. package/esm2015/autocomplete/src/lib/autocomplete.component.js +6 -3
  44. package/esm2015/chip/src/lib/chip.component.js +1 -1
  45. package/esm2015/comment/src/lib/comment.component.js +5 -5
  46. package/esm2015/comment/src/lib/comment.model.js +1 -1
  47. package/esm2015/comment/src/lib/comment.module.js +3 -1
  48. package/esm2015/editor/src/lib/editor.component.js +70 -14
  49. package/esm2015/editor/src/lib/editor.module.js +4 -2
  50. package/esm2015/form/src/lib/form.module.js +4 -1
  51. package/esm2015/modal-custom/index.js +2 -0
  52. package/esm2015/modal-custom/sd-angular-core-modal-custom.js +5 -0
  53. package/esm2015/modal-custom/src/lib/modal-custom/modal-custom.component.js +123 -0
  54. package/esm2015/modal-custom/src/lib/modal-custom.module.js +30 -0
  55. package/esm2015/modal-custom/src/public-api.js +6 -0
  56. package/esm2015/modal-resizable/index.js +2 -0
  57. package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +5 -0
  58. package/esm2015/modal-resizable/src/lib/modal-resizable/modal-resizable.component.js +123 -0
  59. package/esm2015/modal-resizable/src/lib/modal-resizable.module.js +30 -0
  60. package/esm2015/modal-resizable/src/public-api.js +6 -0
  61. package/esm2015/public-api.js +2 -1
  62. package/esm2015/setting/src/lib/setting.service.js +2 -2
  63. package/fesm2015/sd-angular-core-autocomplete.js +5 -2
  64. package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
  65. package/fesm2015/sd-angular-core-chip.js +1 -1
  66. package/fesm2015/sd-angular-core-comment.js +6 -4
  67. package/fesm2015/sd-angular-core-comment.js.map +1 -1
  68. package/fesm2015/sd-angular-core-editor.js +72 -15
  69. package/fesm2015/sd-angular-core-editor.js.map +1 -1
  70. package/fesm2015/sd-angular-core-form.js +3 -0
  71. package/fesm2015/sd-angular-core-form.js.map +1 -1
  72. package/fesm2015/sd-angular-core-modal-custom.js +161 -0
  73. package/fesm2015/sd-angular-core-modal-custom.js.map +1 -0
  74. package/fesm2015/sd-angular-core-modal-resizable.js +161 -0
  75. package/fesm2015/sd-angular-core-modal-resizable.js.map +1 -0
  76. package/fesm2015/sd-angular-core-setting.js +1 -1
  77. package/fesm2015/sd-angular-core-setting.js.map +1 -1
  78. package/fesm2015/sd-angular-core.js +1 -0
  79. package/fesm2015/sd-angular-core.js.map +1 -1
  80. package/form/sd-angular-core-form.metadata.json +1 -1
  81. package/modal-custom/index.d.ts +1 -0
  82. package/modal-custom/package.json +12 -0
  83. package/modal-custom/sd-angular-core-modal-custom.d.ts +4 -0
  84. package/modal-custom/sd-angular-core-modal-custom.metadata.json +1 -0
  85. package/modal-custom/src/lib/modal-custom/modal-custom.component.d.ts +31 -0
  86. package/modal-custom/src/lib/modal-custom.module.d.ts +2 -0
  87. package/modal-custom/src/public-api.d.ts +2 -0
  88. package/modal-resizable/index.d.ts +1 -0
  89. package/modal-resizable/package.json +12 -0
  90. package/modal-resizable/sd-angular-core-modal-resizable.d.ts +4 -0
  91. package/modal-resizable/sd-angular-core-modal-resizable.metadata.json +1 -0
  92. package/modal-resizable/src/lib/modal-resizable/modal-resizable.component.d.ts +31 -0
  93. package/modal-resizable/src/lib/modal-resizable.module.d.ts +2 -0
  94. package/modal-resizable/src/public-api.d.ts +2 -0
  95. package/package.json +3 -2
  96. package/public-api.d.ts +1 -0
  97. package/{sd-angular-core-0.0.1041.tgz → sd-angular-core-0.0.1045.tgz} +0 -0
@@ -1,9 +1,12 @@
1
- import { OnInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
1
+ import { OnInit, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import { QuillEditorComponent } from 'ngx-quill';
3
3
  import { FormControl, FormGroup, NgForm } from '@angular/forms';
4
- export declare class SdEditor implements OnInit {
4
+ import { SdApiService } from '@sd-angular/core/api';
5
+ import 'quill-mention';
6
+ export declare class SdEditor implements OnInit, AfterViewInit, OnDestroy {
5
7
  #private;
6
8
  private ref;
9
+ private sdApiService;
7
10
  id: string;
8
11
  editor: QuillEditorComponent;
9
12
  label: string;
@@ -22,10 +25,16 @@ export declare class SdEditor implements OnInit {
22
25
  domain: string;
23
26
  urlUploadImage: string;
24
27
  set form(val: NgForm | FormGroup);
28
+ toolbar: any;
25
29
  enableHTMLButton: boolean;
26
30
  showHtmlEditor: boolean;
27
31
  modelHTML: string;
28
32
  quillEvent: any;
33
+ mentionValues: {
34
+ id: string;
35
+ value: string;
36
+ link?: string;
37
+ }[];
29
38
  quillConfig: {
30
39
  toolbar: {
31
40
  container: (string[] | {
@@ -54,6 +63,11 @@ export declare class SdEditor implements OnInit {
54
63
  align: any[];
55
64
  }[])[];
56
65
  };
66
+ mention: {
67
+ allowedChars: RegExp;
68
+ mentionDenotationChars: string[];
69
+ source: (searchTerm: any, renderList: any, mentionChar: any) => void;
70
+ };
57
71
  keyboard: {
58
72
  bindings: {
59
73
  enter: {
@@ -65,7 +79,7 @@ export declare class SdEditor implements OnInit {
65
79
  };
66
80
  textLength: number;
67
81
  sdChange: EventEmitter<string>;
68
- constructor(ref: ChangeDetectorRef);
82
+ constructor(ref: ChangeDetectorRef, sdApiService: SdApiService);
69
83
  ngOnInit(): void;
70
84
  ngAfterViewInit(): void;
71
85
  ngOnDestroy(): void;
@@ -3,7 +3,7 @@ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { Component, Input, ViewChild, Output, EventEmitter, ChangeDetectorRef, ContentChild, ChangeDetectionStrategy } from '@angular/core';
4
4
  import { startWith, switchMap, debounceTime, map, finalize } from 'rxjs/operators';
5
5
  import * as uuid from 'uuid';
6
- import { FormControl, NgForm, Validators } from '@angular/forms';
6
+ import { NgForm, Validators } from '@angular/forms';
7
7
  import { BehaviorSubject, combineLatest, defer, from, of, Subscription } from 'rxjs';
8
8
  import { SdAutocompleteDisplayDefDirective } from './autocomplete-display-def.directive';
9
9
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
@@ -26,7 +26,7 @@ export class SdAutocomplete {
26
26
  _delay.set(this, 0); // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm
27
27
  _name.set(this, uuid.v4());
28
28
  this.loading = false;
29
- this.inputControl = new FormControl();
29
+ this.inputControl = new SdFormControl();
30
30
  this.formControl = new SdFormControl();
31
31
  this.matcher = new SdAutocompleteErrotStateMatcher(this.formControl);
32
32
  _form.set(this, void 0);
@@ -175,6 +175,9 @@ export class SdAutocomplete {
175
175
  __classPrivateFieldGet(this, _subscription).add(this.formControl.touchedChanges.subscribe(() => {
176
176
  this.ref.markForCheck();
177
177
  }));
178
+ __classPrivateFieldGet(this, _subscription).add(this.inputControl.touchedChanges.subscribe(() => {
179
+ this.ref.markForCheck();
180
+ }));
178
181
  this.filteredItems = combineLatest([
179
182
  __classPrivateFieldGet(this, _itemsChanges).asObservable(),
180
183
  this.inputControl.valueChanges.pipe(debounceTime(__classPrivateFieldGet(this, _delay)))
@@ -284,4 +287,4 @@ SdAutocomplete.propDecorators = {
284
287
  input: [{ type: ViewChild, args: ['input',] }],
285
288
  sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }]
286
289
  };
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2F1dG9jb21wbGV0ZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUlaLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUUsTUFBTSwrQkFBK0I7SUFDbkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBQ2pELFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDOztRQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFD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LEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLHNEQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRyxJQUFJLENBQUMsWUFBWSxvQ0FBSyxJQUFJLG1DQUFJLElBQUksQ0FBQyxXQUFXLG1DQUFJLElBQUksQ0FBQyxLQUFLLG1DQUFJLEVBQUUsR0FBQSxDQUFDLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQsZUFBZTs7UUFDYixtRkFBWSxVQUFVLHNDQUFhLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDdkQsQ0FBQztJQUVELFdBQVc7O1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLG1GQUFZLGFBQWEsc0NBQWE7SUFDeEMsQ0FBQzs7OztZQXhMRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IseXBGQUE0QztnQkFFNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUE1QkMsaUJBQWlCOzs7a0NBOEJoQixTQUFTLFNBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7bUJBTWxFLEtBQUs7bUJBU0wsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBR0wsS0FBSztvQkFZTCxLQUFLO29CQUtMLEtBQUs7cUNBS0wsWUFBWSxTQUFDLGlDQUFpQzt5QkFDOUMsS0FBSztxQkFDTCxNQUFNOzBCQUNOLE1BQU07dUJBQ04sTUFBTTt1QkFHTixLQUFLO3VCQVdMLEtBQUs7bUNBU0wsS0FBSyxTQUFDLHFCQUFxQjtvQkFLM0IsU0FBUyxTQUFDLE9BQU87cUJBQ2pCLFlBQVksU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIGRlYm91bmNlVGltZSwgbWFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLWRpc3BsYXktZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sLCBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5jbGFzcyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBhdXRvY29tcGxldGVUcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNtb2RlbDogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICAjZGVsYXkgPSAwOyAvLyBTYXUga2hv4bqjbmcgdGjhu51pIGdpYW4gZGVsYXkgbuG6v3Uga2jDtG5nIGPDsyB0aGF5IMSR4buVaSB0aMOsIHRow6wgbeG7m2kgYuG6r3QgxJHhuqd1IHRo4buxYyBoaeG7h24gZ+G7jWkgaMOgbVxyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpbnB1dENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgbWF0Y2hlciA9IG5ldyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyKHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTAwO1xyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBjb250cm9sUGxhY2VIb2xkZXIyOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoU2RBdXRvY29tcGxldGVEaXNwbGF5RGVmRGlyZWN0aXZlKSBhdXRvY29tcGxldGVEaXNwbGF5RGVmOiBTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3B0aW9uYWxcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcclxuICBAQ29udGVudENoaWxkKFNkVmlld0RlZkRpcmVjdGl2ZSkgc2RWaWV3OiBTZFZpZXdEZWZEaXJlY3RpdmU7XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWQ6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgI2NhY2hlOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlbXVxyXG4gIH0gPSB7fTtcclxuICAjaXRlbToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC50b3VjaGVkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KGRhdGEsIHRoaXMudmFsdWVGaWVsZCkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2l0ZW1bdmFsXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiB2YWwsXHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLmRpc3BsYXlGaWVsZF06IHZhbFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zLmZpbmQoZSA9PiBlW3RoaXMudmFsdWVGaWVsZF0gPT09IHZhbCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKCcnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jb250cm9sUGxhY2VIb2xkZXIgPSB0aGlzLnNlbGVjdGVkLnBpcGUobWFwKGl0ZW0gPT4gaXRlbT8uW3RoaXMuZGlzcGxheUZpZWxkXSA/PyBpdGVtID8/IHRoaXMucGxhY2Vob2xkZXIgPz8gdGhpcy5sYWJlbCA/PyAnJykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gIH1cclxuICBvblNlbGVjdCA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0pID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgKGl0ZW0pID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBpdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSBpdGVtPy5bdGhpcy52YWx1ZUZpZWxkXSB8fCBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSB2YWwpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgLy8gdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnNkVmlldz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkICYmICF0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8ub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIgPSAoJGV2ZW50PzogYW55KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgIGlmICh0aGlzLiNtb2RlbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQWN0aW9uID0gKCRldmVudDogRXZlbnQpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/LmNsb3NlUGFuZWwoKTtcclxuICAgIHRoaXMuYWN0aW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2F1dG9jb21wbGV0ZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUlaLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkYsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RSxNQUFNLCtCQUErQjtJQUNuQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFDakQsWUFBWSxDQUFDLE9BQTJCLEVBQUUsSUFBd0M7O1FBQ2hGLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFD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QVksU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIGRlYm91bmNlVGltZSwgbWFwLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLWRpc3BsYXktZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sLCBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5jbGFzcyBTZEF1dG9jb21wbGV0ZUVycm90U3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7IH1cclxuICBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XHJcbiAgICByZXR1cm4gISEodGhpcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgdGhpcy5mb3JtQ29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZEF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBhdXRvY29tcGxldGVUcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNtb2RlbDogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICAjZGVsYXkgPSAwOyAvLyBTYXUga2hv4bqjbmcgdGjhu51pIGdpYW4gZGVsYXkgbuG6v3Uga2jDtG5nIGPDsyB0aGF5IMSR4buVaSB0aMOsIHRow6wgbeG7m2kgYuG6r3QgxJHhuqd1IHRo4buxYyBoaeG7h24gZ+G7jWkgaMOgbVxyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpbnB1dENvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIGZvcm1Db250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICBtYXRjaGVyID0gbmV3IFNkQXV0b2NvbXBsZXRlRXJyb3RTdGF0ZU1hdGNoZXIodGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgI2l0ZW1zQ2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10gfCBTZWFyY2hGdW5jPihbXSk7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiB1bmRlZmluZWQgfCBhbnlbXSB8IFNlYXJjaEZ1bmMpIHtcclxuICAgIGlmICghaXRlbXMpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoW10pO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMubmV4dChpdGVtcy5maWx0ZXIoZSA9PiBlICE9PSBudWxsICYmIGUgIT09IHVuZGVmaW5lZCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMpO1xyXG4gICAgICB0aGlzLiNkZWxheSA9IDUwMDtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbGltaXQgPSAxMDA7XHJcblxyXG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGNvbnRyb2xQbGFjZUhvbGRlcjogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIGNvbnRyb2xQbGFjZUhvbGRlcjI6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IHVuZGVmaW5lZCB8IG51bWJlciB8IHN0cmluZykge1xyXG4gICAgdGhpcy4jbW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZChTZEF1dG9jb21wbGV0ZURpc3BsYXlEZWZEaXJlY3RpdmUpIGF1dG9jb21wbGV0ZURpc3BsYXlEZWY6IFNkQXV0b2NvbXBsZXRlRGlzcGxheURlZkRpcmVjdGl2ZTtcclxuICBASW5wdXQoKSBhY3Rpb25JY29uOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLmVuYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gICNpdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnRvdWNoZWRDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmlucHV0Q29udHJvbC50b3VjaGVkQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLiNkZWxheSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKFtpdGVtcywgc2VhcmNoVGV4dF0pID0+IHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0IHx8ICcnO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXMoc2VhcmNoVGV4dCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmdW5jIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9icyA9IGZ1bmNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gb2JzLnBpcGUobWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdID0gZGF0YSB8fCBbXTtcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdLCB0aGlzLnZhbHVlRmllbGQpKTtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICAgICAgICAgIH0pLCBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zXHJcbiAgICAgICAgICAgIC5zZWFyY2goc2VhcmNoVGV4dCwgW3RoaXMudmFsdWVGaWVsZCwgdGhpcy5kaXNwbGF5RmllbGRdKVxyXG4gICAgICAgICAgICAucGFnaW5nKHRoaXMubGltaXQpXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodmFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLiNpdGVtW3ZhbF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZih0aGlzLiNpdGVtW3ZhbF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgICBjb25zdCBmdW5jID0gaXRlbXModmFsLCB0cnVlKTtcclxuICAgICAgICAgICAgICBpZiAoZnVuYyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIG9icyA9IGRlZmVyKCgpID0+IGZyb20oZnVuYykpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvYnMgPSBmdW5jXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBvYnMucGlwZShtYXAoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2l0ZW0sIEFycmF5LnRvT2JqZWN0KGRhdGEsIHRoaXMudmFsdWVGaWVsZCkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2l0ZW1bdmFsXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiB2YWwsXHJcbiAgICAgICAgICAgICAgICAgIFt0aGlzLmRpc3BsYXlGaWVsZF06IHZhbFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zLmZpbmQoZSA9PiBlW3RoaXMudmFsdWVGaWVsZF0gPT09IHZhbCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKCcnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5jb250cm9sUGxhY2VIb2xkZXIgPSB0aGlzLnNlbGVjdGVkLnBpcGUobWFwKGl0ZW0gPT4gaXRlbT8uW3RoaXMuZGlzcGxheUZpZWxkXSA/PyBpdGVtID8/IHRoaXMucGxhY2Vob2xkZXIgPz8gdGhpcy5sYWJlbCA/PyAnJykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gIH1cclxuICBvblNlbGVjdCA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0pID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgKGl0ZW0pID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSBpdGVtKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSBpdGVtPy5bdGhpcy52YWx1ZUZpZWxkXSB8fCBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLnZhbHVlICE9PSB2YWwpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0Q29udHJvbC5zZXRWYWx1ZSgnJywge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgLy8gdGhpcy5pbnB1dENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5wdXRDb250cm9sLnNldFZhbHVlKCcnLCB7XHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGljayA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnNkVmlldz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkICYmICF0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYmx1ciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlcj8ub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIgPSAoJGV2ZW50PzogYW55KSA9PiB7XHJcbiAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnB1dENvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgIGlmICh0aGlzLiNtb2RlbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQWN0aW9uID0gKCRldmVudDogRXZlbnQpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXI/LmNsb3NlUGFuZWwoKTtcclxuICAgIHRoaXMuYWN0aW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBTZWFyY2hGdW5jID0gKHNlYXJjaFRleHQ/OiBzdHJpbmcgfCBudW1iZXIsIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjsiXX0=
@@ -274,7 +274,7 @@ SdChip.decorators = [
274
274
  { type: Component, args: [{
275
275
  selector: 'sd-chip',
276
276
  template: "<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !autocompleteTrigger?.panelOpen && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value}\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"c-md\" [ngClass]=\"{'c-sm': size === 'sm'}\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-chip-list [formControl]=\"formControl\" #chipList>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <mat-chip *ngIf=\"item\" [selectable]=\"selectable\" [removable]=\"true\" (removed)=\"onRemove(item)\"\r\n [selected]=\"item.isSelected\" (selectionChange)=\"select(item)\" [disabled]=\"inputControl.disabled\"\r\n (click)=\"item.isSelected = !item.isSelected\">\r\n <ng-container *ngIf=\"sdChipDisplay?.templateRef\">\r\n <ng-container *ngTemplateOutlet=\"sdChipDisplay.templateRef;context:{item: item}\">\r\n </ng-container>\r\n </ng-container>\r\n <span *ngIf=\"!sdChipDisplay?.templateRef\">{{item[displayField] || item[valueField]}}</span>\r\n <mat-icon *ngIf=\"!inputControl.disabled && item | sdRemovableChip:removable\" matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n </ng-container>\r\n <input #autocompleteTrigger [formControl]=\"inputControl\" [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"onAdd($event)\" autocomplete=\"off\" [errorStateMatcher]=\"matcher\" (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" matInput #input>\r\n </mat-chip-list>\r\n <mat-error *ngIf=\"formControl?.errors?.minItem\">\r\n {{formControl?.errors?.minItem}}\r\n </mat-error>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" (optionSelected)=\"onSelect($event)\">\r\n <mat-option *ngFor=\"let item of filteredItems | async\" [value]=\"item\">\r\n {{item[displayField]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </ng-template>\r\n</div>",
277
- styles: [":host{display:block;padding-top:5px}:host ::ng-deep mat-form-field.c-md .mat-form-field-infix{min-height:43.5px;padding:2px 0}:host ::ng-deep mat-form-field.c-md .mat-standard-chip{min-height:26px;padding:7px 10px}:host ::ng-deep mat-form-field.c-md .mat-standard-chip.mat-chip-with-trailing-icon{padding:7px 7px 7px 10px}"]
277
+ styles: [":host{display:block;padding-top:5px}:host ::ng-deep mat-form-field.c-md .mat-form-field-infix{min-height:43.5px;padding:2px 0}:host ::ng-deep mat-form-field.c-md .mat-standard-chip{min-height:26px;padding:7px 10px}:host ::ng-deep mat-form-field.c-md .mat-standard-chip.mat-chip-with-trailing-icon{padding:7px 7px 7px 10px}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}"]
278
278
  },] }
279
279
  ];
280
280
  SdChip.ctorParameters = () => [
@@ -9,11 +9,11 @@ export class SdComment {
9
9
  _items.set(this, new BehaviorSubject([]));
10
10
  _send.set(this, new BehaviorSubject(''));
11
11
  this.onSend = () => {
12
- var _a, _b;
12
+ var _a, _b, _c;
13
13
  if (this.message) {
14
14
  (_b = (_a = this.commentOption) === null || _a === void 0 ? void 0 : _a.event) === null || _b === void 0 ? void 0 : _b.onSend(this.message);
15
15
  this.message = null;
16
- this.textarea.focus();
16
+ (_c = this.textarea) === null || _c === void 0 ? void 0 : _c.focus();
17
17
  }
18
18
  };
19
19
  _load.set(this, () => __awaiter(this, void 0, void 0, function* () {
@@ -51,9 +51,9 @@ _items = new WeakMap(), _send = new WeakMap(), _load = new WeakMap();
51
51
  SdComment.decorators = [
52
52
  { type: Component, args: [{
53
53
  selector: 'sd-comment',
54
- template: "<div class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"c-title\">{{'Comments' | sdTranslate}} <a href=\"javascript:;\">({{count | async}})</a></div>\r\n </div>\r\n <div class=\"c-body\">\r\n <ng-container *ngFor=\"let item of items | async\">\r\n <div class=\"d-flex my-8\">\r\n <div class=\"c-avatar mr-12\">\r\n <img height=\"32\" width=\"32px\" [src]=\"item.picture\">\r\n </div>\r\n <div class=\"c-comment\">\r\n <div class=\"c-info mb-4\">\r\n {{'By' | sdTranslate}}\r\n <span class=\"c-creator ml-2\">\r\n {{item.creator}}\r\n </span>\r\n <ng-container *ngIf=\"item.createdDate\">\r\n <span class=\"mx-4\">\u2022</span>\r\n <span [matTooltip]=\"item.createdDate | date:'dd/MM/yyyy HH:mm'\">{{item.createdDate | sdTimeDifferent:'dd/MM/yyyy HH:mm':'hour' | async}}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"c-content\" [innerHtml]=\"item.content\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"c-footer p-16\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <sd-textarea [(model)]=\"message\" rows=\"1\" autoHeight></sd-textarea>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <sd-button class=\"float-right\" title=\"G\u1EEDi\" (action)=\"onSend()\" [disabled]=\"!message\" color=\"primary\" type=\"fill\" size=\"sm\">\r\n </sd-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>",
54
+ template: "<div class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"c-title\">{{'Comments' | sdTranslate}} <a href=\"javascript:;\">({{count | async}})</a></div>\r\n </div>\r\n <div class=\"c-body\">\r\n <ng-container *ngFor=\"let item of items | async\">\r\n <div class=\"d-flex my-8\">\r\n <div class=\"c-avatar mr-12\">\r\n <img height=\"32\" width=\"32px\" [src]=\"item.picture\">\r\n </div>\r\n <div class=\"c-comment\">\r\n <div class=\"c-info mb-4\">\r\n {{'By' | sdTranslate}}\r\n <span class=\"c-creator ml-2\">\r\n {{item.creator}}\r\n </span>\r\n <ng-container *ngIf=\"item.createdDate\">\r\n <span class=\"mx-4\">\u2022</span>\r\n <span\r\n [matTooltip]=\"item.createdDate | date:'dd/MM/yyyy HH:mm'\">{{item.createdDate | sdTimeDifferent:'dd/MM/yyyy HH:mm':'hour' | async}}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"c-content\" [innerHtml]=\"item.content\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"c-footer p-16\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <ng-container *ngIf=\"commentOption?.editor?.enabled else noUseEditor\">\r\n <div class=\"mb-8\">\r\n <sd-editor [(model)]=\"message\" [styles]=\"commentOption?.editor?.styles\"\r\n [toolbar]=\"commentOption?.editor?.toolbar\"\r\n [urlUploadImage]=\"commentOption?.editor?.urlUploadImage\"\r\n [mentionValues]=\"commentOption?.editor?.mentionValues\"></sd-editor>\r\n </div>\r\n </ng-container>\r\n <ng-template #noUseEditor>\r\n <sd-textarea [(model)]=\"message\" rows=\"1\" autoHeight></sd-textarea>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <sd-button class=\"float-right\" title=\"G\u1EEDi\" (action)=\"onSend()\" [disabled]=\"!message\" color=\"primary\" type=\"fill\"\r\n size=\"sm\">\r\n </sd-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
55
55
  changeDetection: ChangeDetectionStrategy.OnPush,
56
- styles: [".c-container{display:flex;flex-direction:column;height:100%}.c-container .c-header{align-items:center;background-color:#fff;display:flex;height:40px;padding:0 16px}.c-container .c-header .c-title{font-weight:500}.c-container .c-body{background:#f8f9fa;flex:1;overflow-y:hidden;padding:16px}.c-container .c-body:hover{overflow-y:auto}.c-container .c-body .c-comment{background:#fff;border:1px solid #f2f2f2;border-radius:4px;padding:12px 16px}.c-container .c-body .c-comment .c-info{color:#757575}.c-container .c-body .c-comment .c-info .c-creator{color:#000;font-weight:500}.c-container .c-footer{background:#fff;min-height:120px}"]
56
+ styles: [".c-container{display:flex;flex-direction:column;height:100%}.c-container .c-header{align-items:center;background-color:#fff;display:flex;height:40px;padding:0 16px}.c-container .c-header .c-title{font-weight:500}.c-container .c-body{background:#f8f9fa;flex:1;overflow-y:hidden;padding:16px}.c-container .c-body:hover{overflow-y:auto}.c-container .c-body .c-comment{background:#fff;border:1px solid #f2f2f2;border-radius:4px;flex:1;overflow-wrap:break-word;padding:12px 16px;white-space:pre-wrap;word-break:break-all}.c-container .c-body .c-comment .c-info{color:#757575}.c-container .c-body .c-comment .c-info .c-creator{color:#000;font-weight:500}.c-container .c-footer{background:#fff;min-height:120px}"]
57
57
  },] }
58
58
  ];
59
59
  SdComment.ctorParameters = () => [];
@@ -61,4 +61,4 @@ SdComment.propDecorators = {
61
61
  textarea: [{ type: ViewChild, args: [SdTextarea,] }],
62
62
  option: [{ type: Input }]
63
63
  };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBUWhELE1BQU0sT0FBTyxTQUFTO0lBYXBCO1FBWEEsaUJBQVMsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLEVBQUM7UUFDNUMsZ0JBQVEsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLEVBQUM7UUEwQnhDLFdBQU0sR0FBRyxHQUFHLEVBQUU7O1lBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixZQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLEtBQUssMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsZ0JBQVEsR0FBUyxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBTyxZQUFZLE9BQU8sRUFBRTtnQkFDOUIsT0FBTyxNQUFNLE9BQU8sQ0FBQzthQUN0QjtZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQSxFQUFBO1FBRUQsV0FBTSxHQUFHLEdBQVMsRUFBRTtZQUNsQixxQ0FBWSxJQUFJLENBQUMsTUFBTSx5Q0FBQSxJQUFJLENBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQSxDQUFBO0lBbENELENBQUM7SUFURCxJQUFhLE1BQU0sQ0FBQyxNQUF1QjtRQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUFBLENBQUM7SUFPRixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxxQ0FBWSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTs7Z0JBQUMsT0FBQSxpQ0FDakIsQ0FBQyxLQUNKLE9BQU8sUUFBRSxDQUFDLENBQUMsT0FBTyxtQ0FBSSwyRUFBMkUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUM1RyxDQUFBO2FBQUEsQ0FBQyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELFdBQVc7SUFDWCxDQUFDO0lBQ0QsZUFBZTtJQUNmLENBQUM7Ozs7WUFqQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0Qiw4bURBQXVDO2dCQUV2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7Ozs7dUJBRUUsU0FBUyxTQUFDLFVBQVU7cUJBSXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgSW5wdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkVGV4dGFyZWEgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3RleHRhcmVhJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb21tZW50LCBTZENvbW1lbnRPcHRpb24gfSBmcm9tICcuL2NvbW1lbnQubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWNvbW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb21tZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQ29tbWVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFNkVGV4dGFyZWEpIHRleHRhcmVhOiBTZFRleHRhcmVhO1xyXG4gICNpdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tbWVudFtdPihbXSk7XHJcbiAgI3NlbmQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIGNvbW1lbnRPcHRpb246IFNkQ29tbWVudE9wdGlvbjtcclxuICBASW5wdXQoKSBzZXQgb3B0aW9uKG9wdGlvbjogU2RDb21tZW50T3B0aW9uKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRPcHRpb24gPSBvcHRpb247XHJcbiAgICB0aGlzLnJlbG9hZCgpO1xyXG4gIH07XHJcblxyXG4gIGl0ZW1zOiBPYnNlcnZhYmxlPENvbW1lbnRbXT47XHJcbiAgY291bnQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuI2l0ZW1zLnBpcGUobWFwKGl0ZW1zID0+IHtcclxuICAgICAgcmV0dXJuIGl0ZW1zLm1hcChlID0+ICh7XHJcbiAgICAgICAgLi4uZSxcclxuICAgICAgICBwaWN0dXJlOiBlLnBpY3R1cmUgPz8gYGh0dHBzOi8vdWktYXZhdGFycy5jb20vYXBpLz9zaXplPTMyJnJvdW5kZWQ9dHJ1ZSZiYWNrZ3JvdW5kPXJhbmRvbSZuYW1lPSR7ZS5jcmVhdG9yfWBcclxuICAgICAgfSkpXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmNvdW50ID0gdGhpcy5pdGVtcy5waXBlKG1hcChpdGVtcyA9PiBpdGVtcy5sZW5ndGgpKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG9uU2VuZCA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLm1lc3NhZ2UpIHtcclxuICAgICAgdGhpcy5jb21tZW50T3B0aW9uPy5ldmVudD8ub25TZW5kKHRoaXMubWVzc2FnZSk7XHJcbiAgICAgIHRoaXMubWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGV4dGFyZWEuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNsb2FkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgeyBpdGVtcyB9ID0gdGhpcy5jb21tZW50T3B0aW9uO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IGl0ZW1zKCk7XHJcbiAgICBpZiAocmVzdWx0cyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHJlc3VsdHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHJlbG9hZCA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMuI2l0ZW1zLm5leHQoYXdhaXQgdGhpcy4jbG9hZCgpKTtcclxuICB9XHJcbn0iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBU2hELE1BQU0sT0FBTyxTQUFTO0lBYXBCO1FBWEEsaUJBQVMsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLEVBQUM7UUFDNUMsZ0JBQVEsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLEVBQUM7UUEwQnhDLFdBQU0sR0FBRyxHQUFHLEVBQUU7O1lBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixZQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLEtBQUssMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLEtBQUssR0FBRzthQUN4QjtRQUNILENBQUMsQ0FBQTtRQUVELGdCQUFRLEdBQVMsRUFBRTtZQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUN4QixJQUFJLE9BQU8sWUFBWSxPQUFPLEVBQUU7Z0JBQzlCLE9BQU8sTUFBTSxPQUFPLENBQUM7YUFDdEI7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUEsRUFBQTtRQUVELFdBQU0sR0FBRyxHQUFTLEVBQUU7WUFDbEIscUNBQVksSUFBSSxDQUFDLE1BQU0seUNBQUEsSUFBSSxDQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUEsQ0FBQTtJQWxDRCxDQUFDO0lBVEQsSUFBYSxNQUFNLENBQUMsTUFBdUI7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBT0YsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcscUNBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7O2dCQUFDLE9BQUEsaUNBQ2pCLENBQUMsS0FDSixPQUFPLFFBQUUsQ0FBQyxDQUFDLE9BQU8sbUNBQUksMkVBQTJFLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFDNUcsQ0FBQTthQUFBLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxXQUFXO0lBQ1gsQ0FBQztJQUNELGVBQWU7SUFDZixDQUFDOzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIseXRFQUF1QztnQkFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7O3VCQUVFLFNBQVMsU0FBQyxVQUFVO3FCQUlwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIElucHV0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZFRleHRhcmVhIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90ZXh0YXJlYSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tbWVudCwgU2RDb21tZW50T3B0aW9uIH0gZnJvbSAnLi9jb21tZW50Lm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtY29tbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbW1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RDb21tZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoU2RUZXh0YXJlYSkgdGV4dGFyZWE6IFNkVGV4dGFyZWE7XHJcbiAgI2l0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb21tZW50W10+KFtdKTtcclxuICAjc2VuZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgY29tbWVudE9wdGlvbjogU2RDb21tZW50T3B0aW9uO1xyXG4gIEBJbnB1dCgpIHNldCBvcHRpb24ob3B0aW9uOiBTZENvbW1lbnRPcHRpb24pIHtcclxuICAgIHRoaXMuY29tbWVudE9wdGlvbiA9IG9wdGlvbjtcclxuICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgfTtcclxuXHJcbiAgaXRlbXM6IE9ic2VydmFibGU8Q29tbWVudFtdPjtcclxuICBjb3VudDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1zID0gdGhpcy4jaXRlbXMucGlwZShtYXAoaXRlbXMgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbXMubWFwKGUgPT4gKHtcclxuICAgICAgICAuLi5lLFxyXG4gICAgICAgIHBpY3R1cmU6IGUucGljdHVyZSA/PyBgaHR0cHM6Ly91aS1hdmF0YXJzLmNvbS9hcGkvP3NpemU9MzImcm91bmRlZD10cnVlJmJhY2tncm91bmQ9cmFuZG9tJm5hbWU9JHtlLmNyZWF0b3J9YFxyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuICAgIHRoaXMuY291bnQgPSB0aGlzLml0ZW1zLnBpcGUobWFwKGl0ZW1zID0+IGl0ZW1zLmxlbmd0aCkpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgb25TZW5kID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMubWVzc2FnZSkge1xyXG4gICAgICB0aGlzLmNvbW1lbnRPcHRpb24/LmV2ZW50Py5vblNlbmQodGhpcy5tZXNzYWdlKTtcclxuICAgICAgdGhpcy5tZXNzYWdlID0gbnVsbDtcclxuICAgICAgdGhpcy50ZXh0YXJlYT8uZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNsb2FkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgeyBpdGVtcyB9ID0gdGhpcy5jb21tZW50T3B0aW9uO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IGl0ZW1zKCk7XHJcbiAgICBpZiAocmVzdWx0cyBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHJlc3VsdHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHJlbG9hZCA9IGFzeW5jICgpID0+IHtcclxuICAgIHRoaXMuI2l0ZW1zLm5leHQoYXdhaXQgdGhpcy4jbG9hZCgpKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1lbnQvIiwic291cmNlcyI6WyJzcmMvbGliL2NvbW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZENvbW1lbnRPcHRpb24ge1xyXG4gIGl0ZW1zOiAoKSA9PiBDb21tZW50W10gfCBQcm9taXNlPENvbW1lbnRbXT47XHJcbiAgZXZlbnQ6IHtcclxuICAgIG9uU2VuZDogKHRleHQ6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50IGV4dGVuZHMgQmFzZUNvbW1lbnQge1xyXG4gIGNoaWxkcmVuOiBDb21tZW50THYyW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBCYXNlQ29tbWVudCB7XHJcbiAgY3JlYXRvcjogc3RyaW5nO1xyXG4gIGNyZWF0ZWREYXRlOiBzdHJpbmcgfCBEYXRlO1xyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICBwaWN0dXJlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBDb21tZW50THYyIGV4dGVuZHMgQmFzZUNvbW1lbnQge1xyXG4gIGNoaWxkcmVuOiBDb21tZW50THYzW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBDb21tZW50THYzIGV4dGVuZHMgQmFzZUNvbW1lbnQge1xyXG5cclxufVxyXG5cclxuXHJcblxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NvbW1lbnQvIiwic291cmNlcyI6WyJzcmMvbGliL2NvbW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZENvbW1lbnRPcHRpb24ge1xyXG4gIGl0ZW1zOiAoKSA9PiBDb21tZW50W10gfCBQcm9taXNlPENvbW1lbnRbXT47XHJcbiAgZXZlbnQ6IHtcclxuICAgIG9uU2VuZDogKHRleHQ6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxyXG4gIH07XHJcbiAgZWRpdG9yPzoge1xyXG4gICAgZW5hYmxlZD86IGJvb2xlYW47XHJcbiAgICB0b29sYmFyPzogYW55O1xyXG4gICAgdXJsVXBsb2FkSW1hZ2U/OiBzdHJpbmc7XHJcbiAgICBzdHlsZXM/OiBhbnk7XHJcbiAgICBtZW50aW9uVmFsdWVzPzogeyBpZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBsaW5rPzogc3RyaW5nIH1bXTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnQgZXh0ZW5kcyBCYXNlQ29tbWVudCB7XHJcbiAgY2hpbGRyZW46IENvbW1lbnRMdjJbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIEJhc2VDb21tZW50IHtcclxuICBjcmVhdG9yOiBzdHJpbmc7XHJcbiAgY3JlYXRlZERhdGU6IHN0cmluZyB8IERhdGU7XHJcbiAgY29udGVudDogc3RyaW5nO1xyXG4gIHBpY3R1cmU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbW1lbnRMdjIgZXh0ZW5kcyBCYXNlQ29tbWVudCB7XHJcbiAgY2hpbGRyZW46IENvbW1lbnRMdjNbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbW1lbnRMdjMgZXh0ZW5kcyBCYXNlQ29tbWVudCB7XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==
@@ -9,6 +9,7 @@ import { SdInputModule } from '@sd-angular/core/input';
9
9
  import { SdTextareaModule } from '@sd-angular/core/textarea';
10
10
  import { SdUtilityModule } from '@sd-angular/core/utility';
11
11
  import { MatTooltipModule } from '@angular/material/tooltip';
12
+ import { SdEditorModule } from '@sd-angular/core/editor';
12
13
  export class SdCommentModule {
13
14
  }
14
15
  SdCommentModule.decorators = [
@@ -22,6 +23,7 @@ SdCommentModule.decorators = [
22
23
  SdButtonModule,
23
24
  SdInputModule,
24
25
  SdTextareaModule,
26
+ SdEditorModule,
25
27
  SdUtilityModule,
26
28
  SdTranslateModule
27
29
  ],
@@ -34,4 +36,4 @@ SdCommentModule.decorators = [
34
36
  providers: []
35
37
  },] }
36
38
  ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXdCN0QsTUFBTSxPQUFPLGVBQWU7OztZQXRCM0IsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtvQkFDakIsY0FBYztvQkFDZCxhQUFhO29CQUNiLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixpQkFBaUI7aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixTQUFTO2lCQUNWO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxTQUFTO2lCQUNWO2dCQUNELFNBQVMsRUFBRSxFQUNWO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBTZENvbW1lbnQgfSBmcm9tICcuL2NvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RCdXR0b25Nb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2J1dHRvbic7XHJcbmltcG9ydCB7IFNkSW5wdXRNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2lucHV0JztcclxuaW1wb3J0IHsgU2RUZXh0YXJlYU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgU2RUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBTZEJ1dHRvbk1vZHVsZSxcclxuICAgIFNkSW5wdXRNb2R1bGUsXHJcbiAgICBTZFRleHRhcmVhTW9kdWxlLFxyXG4gICAgU2RVdGlsaXR5TW9kdWxlLFxyXG4gICAgU2RUcmFuc2xhdGVNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU2RDb21tZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTZENvbW1lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQ29tbWVudE1vZHVsZSB7IH1cclxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUF5QnZELE1BQU0sT0FBTyxlQUFlOzs7WUF2QjNCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixpQkFBaUI7aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixTQUFTO2lCQUNWO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxTQUFTO2lCQUNWO2dCQUNELFNBQVMsRUFBRSxFQUNWO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdHJhbnNsYXRlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBTZENvbW1lbnQgfSBmcm9tICcuL2NvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RCdXR0b25Nb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2J1dHRvbic7XHJcbmltcG9ydCB7IFNkSW5wdXRNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2lucHV0JztcclxuaW1wb3J0IHsgU2RUZXh0YXJlYU1vZHVsZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7U2RFZGl0b3JNb2R1bGV9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvZWRpdG9yJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBTZFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIFNkQnV0dG9uTW9kdWxlLFxyXG4gICAgU2RJbnB1dE1vZHVsZSxcclxuICAgIFNkVGV4dGFyZWFNb2R1bGUsXHJcbiAgICBTZEVkaXRvck1vZHVsZSxcclxuICAgIFNkVXRpbGl0eU1vZHVsZSxcclxuICAgIFNkVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNkQ29tbWVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2RDb21tZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZENvbW1lbnRNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -1,13 +1,16 @@
1
- var _name, _subscription, _model, _form, _updateValidator;
1
+ var _name, _subscription, _model, _form, _updateValidator, _uploadImage;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
4
4
  import * as uuid from 'uuid';
5
5
  import { FormControl, NgForm, Validators } from '@angular/forms';
6
6
  import { Constants } from './constant';
7
7
  import { Subscription } from 'rxjs';
8
+ import { SdApiService } from '@sd-angular/core/api';
9
+ import 'quill-mention';
8
10
  export class SdEditor {
9
- constructor(ref) {
11
+ constructor(ref, sdApiService) {
10
12
  this.ref = ref;
13
+ this.sdApiService = sdApiService;
11
14
  _name.set(this, `N${uuid.v4()}`);
12
15
  this.id = `I${uuid.v4()}`;
13
16
  _subscription.set(this, new Subscription());
@@ -41,6 +44,35 @@ export class SdEditor {
41
44
  ['link', 'image', 'video'] // link and image, video
42
45
  ]
43
46
  },
47
+ mention: {
48
+ allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
49
+ mentionDenotationChars: ['@'],
50
+ source: (searchTerm, renderList, mentionChar) => {
51
+ if (this.mentionValues) {
52
+ let values;
53
+ if (mentionChar === '@') {
54
+ values = this.mentionValues;
55
+ }
56
+ else {
57
+ values = [];
58
+ }
59
+ if (searchTerm.length === 0) {
60
+ renderList(values, searchTerm);
61
+ }
62
+ else {
63
+ const matches = [];
64
+ // tslint:disable-next-line:prefer-for-of
65
+ for (let i = 0; i < values.length; i++) {
66
+ // tslint:disable-next-line:no-bitwise
67
+ if (~values[i].value.toLowerCase().indexOf(searchTerm.toLowerCase())) {
68
+ matches.push(values[i]);
69
+ }
70
+ }
71
+ renderList(matches, searchTerm);
72
+ }
73
+ }
74
+ },
75
+ },
44
76
  keyboard: {
45
77
  bindings: {
46
78
  enter: {
@@ -90,6 +122,7 @@ export class SdEditor {
90
122
  // // }
91
123
  // // this.formControl.setValue(html);
92
124
  // });
125
+ const self = this;
93
126
  quill.getModule('toolbar').addHandler('image', function () {
94
127
  let fileInput = this.container.querySelector('input.ql-image[type=file]');
95
128
  if (fileInput == null) {
@@ -106,14 +139,15 @@ export class SdEditor {
106
139
  const formData = new FormData();
107
140
  formData.append(Constants.FILE, files[0]);
108
141
  this.quill.enable(false);
109
- // self.apiService.post(self.domain, self.urlUploadImage, formData).subscribe((resp: any) => {
110
- // this.quill.enable(true);
111
- // this.quill.editor.insertEmbed(range.index, 'image', resp.data.imageUrl || resp.data.publish_url);
112
- // const content = this.quill.getContents();
113
- // this.quill.setContents(content);
114
- // this.quill.setSelection(range.index + 1, (Quill as any).sources.SILENT);
115
- // fileInput.value = '';
116
- // });
142
+ /*this.apiService.post(this.domain + this.urlUploadImage, formData).subscribe((resp: any) => {
143
+ this.quill.enable(true);
144
+ this.quill.editor.insertEmbed(range.index, 'image', resp.data.imageUrl || resp.data.publish_url || resp.url);
145
+ const content = this.quill.getContents();
146
+ this.quill.setContents(content);
147
+ this.quill.setSelection(range.index + 1, 'silent');
148
+ fileInput.value = '';
149
+ });*/
150
+ __classPrivateFieldGet(self, _uploadImage).call(self, formData, quill, range, fileInput);
117
151
  });
118
152
  this.container.appendChild(fileInput);
119
153
  }
@@ -127,6 +161,21 @@ export class SdEditor {
127
161
  this.onClickShowHtmlEditor = () => {
128
162
  this.showHtmlEditor = !this.showHtmlEditor;
129
163
  };
164
+ _uploadImage.set(this, (formData, quill, range, fileInput) => {
165
+ if (!this.urlUploadImage) {
166
+ this.urlUploadImage = '/partner/v2/merchandise/file/uploaduserfile';
167
+ }
168
+ // this.domain = 'https://api-commerce-qc.vinid.dev';
169
+ this.sdApiService.post(this.urlUploadImage, formData).then((resp) => {
170
+ var _a, _b;
171
+ quill.enable(true);
172
+ quill.editor.insertEmbed(range.index, 'image', ((_a = resp === null || resp === void 0 ? void 0 : resp.data) === null || _a === void 0 ? void 0 : _a.imageUrl) || ((_b = resp === null || resp === void 0 ? void 0 : resp.data) === null || _b === void 0 ? void 0 : _b.publish_url) || (resp === null || resp === void 0 ? void 0 : resp.url) || '');
173
+ const content = quill.getContents();
174
+ quill.setContents(content);
175
+ quill.setSelection(range.index + 1, 'silent');
176
+ fileInput.value = '';
177
+ });
178
+ });
130
179
  }
131
180
  set model(val) {
132
181
  __classPrivateFieldSet(this, _model, val);
@@ -170,6 +219,10 @@ export class SdEditor {
170
219
  ngOnInit() {
171
220
  var _a;
172
221
  (_a = __classPrivateFieldGet(this, _form)) === null || _a === void 0 ? void 0 : _a.addControl(__classPrivateFieldGet(this, _name), this.formControl);
222
+ if (this.toolbar) {
223
+ this.quillConfig.toolbar.container = this.toolbar;
224
+ console.log('toolbar', this.quillConfig);
225
+ }
173
226
  }
174
227
  ngAfterViewInit() {
175
228
  __classPrivateFieldGet(this, _subscription).add(this.formControl.valueChanges.subscribe((val) => {
@@ -183,16 +236,17 @@ export class SdEditor {
183
236
  __classPrivateFieldGet(this, _subscription).unsubscribe();
184
237
  }
185
238
  }
186
- _name = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _form = new WeakMap(), _updateValidator = new WeakMap();
239
+ _name = new WeakMap(), _subscription = new WeakMap(), _model = new WeakMap(), _form = new WeakMap(), _updateValidator = new WeakMap(), _uploadImage = new WeakMap();
187
240
  SdEditor.decorators = [
188
241
  { type: Component, args: [{
189
242
  selector: 'sd-editor',
190
- template: "<label *ngIf=\"label\" class=\"d-block T14M\">{{label}} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label>\r\n<ng-container *ngIf=\"!formControl.disabled && !showHtmlEditor\">\r\n <quill-editor #editor [styles]=\"styles\" (onEditorCreated)=\"editorInit($event)\" [ngModel]=\"formControl.value\"\r\n (ngModelChange)=\"onModelChange($event)\" [id]=\"id\" [modules]=\"quillConfig\" [placeholder]=\"placeholder\"\r\n [maxLength]=\"maxlength\">\r\n </quill-editor>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.required\">\r\n {{'This field is required' | sdTranslate}}\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.minlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{minlength}}</strong>\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </span>\r\n</ng-container>\r\n<ng-container *ngIf=\"formControl.disabled\">\r\n <div [innerHtml]=\"formControl.value\"></div>\r\n</ng-container>\r\n<ng-container *ngIf=\"enableHTMLButton\">\r\n <sd-textarea [(model)]=\"modelHTML\" *ngIf=\"showHtmlEditor\" rows=\"20\"\r\n (modelChange)=\"onModelChange($event)\"></sd-textarea>\r\n <sd-button\r\n title=\"{{showHtmlEditor?'\u1EA8n':'Hi\u1EC7n'}} m\u00E3 HTML\"\r\n class=\"mr-8\"\r\n fontSet=\"material-icons-outlined\"\r\n (action)=\"onClickShowHtmlEditor()\"\r\n type=\"light\"\r\n ></sd-button>\r\n</ng-container>\r\n",
243
+ template: "<label *ngIf=\"label\" class=\"d-block T14M\">{{label}} <span class=\"text-danger mb-2\" *ngIf=\"required\">*</span></label>\r\n<ng-container *ngIf=\"!formControl.disabled && !showHtmlEditor\">\r\n <quill-editor #editor [styles]=\"styles\" (onEditorCreated)=\"editorInit($event)\" [ngModel]=\"formControl.value\"\r\n (ngModelChange)=\"onModelChange($event)\" [id]=\"id\" [modules]=\"quillConfig\" [placeholder]=\"placeholder\"\r\n [maxLength]=\"maxlength\" >\r\n </quill-editor>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.required\">\r\n {{'This field is required' | sdTranslate}}\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.minlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{minlength}}</strong>\r\n </span>\r\n <span class=\"d-block text-danger mt-5\" *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </span>\r\n</ng-container>\r\n<ng-container *ngIf=\"formControl.disabled\">\r\n <div [innerHtml]=\"formControl.value\"></div>\r\n</ng-container>\r\n<ng-container *ngIf=\"enableHTMLButton\">\r\n <sd-textarea [(model)]=\"modelHTML\" *ngIf=\"showHtmlEditor\" rows=\"20\"\r\n (modelChange)=\"onModelChange($event)\"></sd-textarea>\r\n <sd-button\r\n title=\"{{showHtmlEditor?'\u1EA8n':'Hi\u1EC7n'}} m\u00E3 HTML\"\r\n class=\"mr-8\"\r\n fontSet=\"material-icons-outlined\"\r\n (action)=\"onClickShowHtmlEditor()\"\r\n type=\"light\"\r\n ></sd-button>\r\n</ng-container>\r\n",
191
244
  styles: [""]
192
245
  },] }
193
246
  ];
194
247
  SdEditor.ctorParameters = () => [
195
- { type: ChangeDetectorRef }
248
+ { type: ChangeDetectorRef },
249
+ { type: SdApiService }
196
250
  ];
197
251
  SdEditor.propDecorators = {
198
252
  editor: [{ type: ViewChild, args: ['editor',] }],
@@ -208,7 +262,9 @@ SdEditor.propDecorators = {
208
262
  domain: [{ type: Input }],
209
263
  urlUploadImage: [{ type: Input }],
210
264
  form: [{ type: Input }],
265
+ toolbar: [{ type: Input }],
211
266
  enableHTMLButton: [{ type: Input }],
267
+ mentionValues: [{ type: Input }],
212
268
  sdChange: [{ type: Output }]
213
269
  };
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNHLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxXQUFXLEVBQWEsTUFBTSxFQUFlLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU9sQyxNQUFNLE9BQU8sUUFBUTtJQWlIbkIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoSDFDLGdCQUFRLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUM7UUFDeEIsT0FBRSxHQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDN0Isd0JBQWdCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFHbkMseUJBQWU7UUFtQmYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQXFCUCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFMUMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFekIsV0FBTSxHQUFRLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUV2QixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRXJCLHdCQUFpQjtRQVdS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SSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVzs7UUFDVCxtRkFBWSxhQUFhLHNDQUFhO1FBQ3RDLDRDQUFtQixXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7O1lBdklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsbWtEQUFzQzs7YUFFdkM7OztZQVhrRSxpQkFBaUI7OztxQkFnQmpGLFNBQVMsU0FBQyxRQUFRO29CQUNsQixLQUFLO29CQUVMLEtBQUs7dUJBU0wsS0FBSzt3QkFXTCxLQUFLO3lCQU9MLEtBQUssU0FBQyxXQUFXO3lCQU9qQixLQUFLLFNBQUMsV0FBVzswQkFLakIsTUFBTTswQkFFTixLQUFLO3FCQUVMLEtBQUs7cUJBSUwsS0FBSzs2QkFDTCxLQUFLO21CQUVMLEtBQUs7K0JBVUwsS0FBSzt1QkE0Q0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UXVpbGxFZGl0b3JDb21wb25lbnR9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0NvbnN0YW50c30gZnJvbSAnLi9jb25zdGFudCc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRWRpdG9yIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAjbmFtZSA9IGBOJHt1dWlkLnY0KCl9YDtcclxuICBpZDogc3RyaW5nID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJykgZWRpdG9yOiBRdWlsbEVkaXRvckNvbXBvbmVudDtcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gICNtb2RlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jbW9kZWwgPSB2YWw7XHJcbiAgICB0aGlzLm1vZGVsSFRNTCA9IHZhbDtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy4jbW9kZWwsIHtcclxuICAgICAgZW1pdEV2ZW50OiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlcXVpcmVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBwUmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMucmVxdWlyZWQgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBtaW5sZW5ndGg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCdtaW5sZW5ndGgnKSBzZXQgX21pbmxlbmd0aCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5taW5sZW5ndGggPSArdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBtYXhsZW5ndGg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCdtYXhsZW5ndGgnKSBzZXQgX21heGxlbmd0aCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5tYXhsZW5ndGggPSArdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBzdHlsZXM6IGFueSA9IHtoZWlnaHQ6ICcyNTBweCd9O1xyXG5cclxuICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBASW5wdXQoKSBkb21haW4gPSAnJztcclxuICBASW5wdXQoKSB1cmxVcGxvYWRJbWFnZTogc3RyaW5nO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBlbmFibGVIVE1MQnV0dG9uID0gZmFsc2U7XHJcbiAgc2hvd0h0bWxFZGl0b3IgPSBmYWxzZTtcclxuICBtb2RlbEhUTUw6IHN0cmluZztcclxuXHJcbiAgcXVpbGxFdmVudDogYW55O1xyXG5cclxuICBxdWlsbENvbmZpZyA9IHtcclxuICAgIC8vIHRvb2xiYXI6ICcudG9vbGJhcicsXHJcbiAgICB0b29sYmFyOiB7XHJcbiAgICAgIGNvbnRhaW5lcjogW1xyXG4gICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZSddLCAgICAgICAgLy8gdG9nZ2xlZCBidXR0b25zXHJcbiAgICAgICAgWydibG9ja3F1b3RlJywgJ2NvZGUtYmxvY2snXSxcclxuXHJcbiAgICAgICAgW3snaGVhZGVyJzogMX0sIHsnaGVhZGVyJzogMn1dLCAgICAgICAgICAgICAgIC8vIGN1c3RvbSBidXR0b24gdmFsdWVzXHJcbiAgICAgICAgW3snbGlzdCc6ICdvcmRlcmVkJ30sIHsnbGlzdCc6ICdidWxsZXQnfV0sXHJcbiAgICAgICAgW3snc2NyaXB0JzogJ3N1Yid9LCB7J3NjcmlwdCc6ICdzdXBlcid9XSwgICAgICAvLyBzdXBlcnNjcmlwdC9zdWJzY3JpcHRcclxuICAgICAgICBbeydpbmRlbnQnOiAnLTEnfSwgeydpbmRlbnQnOiAnKzEnfV0sICAgICAgICAgIC8vIG91dGRlbnQvaW5kZW50XHJcbiAgICAgICAgW3snZGlyZWN0aW9uJzogJ3J0bCd9XSwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCBkaXJlY3Rpb25cclxuXHJcbiAgICAgICAgW3snc2l6ZSc6IFsnc21hbGwnLCBmYWxzZSwgJ2xhcmdlJywgJ2h1Z2UnXX1dLCAgLy8gY3VzdG9tIGRyb3Bkb3duXHJcbiAgICAgICAgW3snaGVhZGVyJzogWzEsIDIsIDMsIDQsIDUsIDYsIGZhbHNlXX1dLFxyXG5cclxuICAgICAgICBbeydjb2xvcic6IFtdfSwgeydiYWNrZ3JvdW5kJzogW119XSwgICAgICAgICAgLy8gZHJvcGRvd24gd2l0aCBkZWZhdWx0cyBmcm9tIHRoZW1lXHJcbiAgICAgICAgW3snZm9udCc6IFtdfV0sXHJcbiAgICAgICAgW3snYWxpZ24nOiBbXX1dLFxyXG5cclxuICAgICAgICBbJ2NsZWFuJ10sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZm9ybWF0dGluZyBidXR0b25cclxuXHJcbiAgICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10gICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGluayBhbmQgaW1hZ2UsIHZpZGVvXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICBrZXlib2FyZDoge1xyXG4gICAgICBiaW5kaW5nczoge1xyXG4gICAgICAgIGVudGVyOiB7XHJcbiAgICAgICAgICBrZXk6IDEzLFxyXG4gICAgICAgICAgaGFuZGxlcjogKHJhbmdlLCBjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHRleHRMZW5ndGg6IG51bWJlciA9IDA7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWlubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW5sZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGVkaXRvckluaXQgPSAocXVpbGwpID0+IHtcclxuICAgIHRoaXMucXVpbGxFdmVudCA9IHF1aWxsO1xyXG4gICAgLy8gY29uc3QgdHh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICAvLyB0eHRBcmVhLnN0eWxlLmNzc1RleHQgPVxyXG4gICAgLy8gICAnd2lkdGg6IDEwMCU7bWFyZ2luOiAwcHg7YmFja2dyb3VuZDogcmdiKDI5LCAyOSwgMjkpOycgK1xyXG4gICAgLy8gICAnYm94LXNpemluZzogYm9yZGVyLWJveDtjb2xvcjogcmdiKDIwNCwgMjA0LCAyMDQpOycgK1xyXG4gICAgLy8gICAnZm9udC1zaXplOiAxNXB4O291dGxpbmU6IG5vbmU7cGFkZGluZzogMjBweDsnICtcclxuICAgIC8vICAgJ2xpbmUtaGVpZ2h0OiAyNHB4O2ZvbnQtZmFtaWx5OiBDb25zb2xhcywgTWVubG8sIE1vbmFjbywgJnF1b3Q7Q291cmllciBOZXcmcXVvdDssIG1vbm9zcGFjZTsnICtcclxuICAgIC8vICAgJ3Bvc2l0aW9uOiBhYnNvbHV0ZTt0b3A6IDA7Ym90dG9tOiAwO2JvcmRlcjogbm9uZTtkaXNwbGF5Om5vbmUnO1xyXG5cclxuICAgIC8vIGNvbnN0IGh0bWxFZGl0b3IgPSBxdWlsbC5hZGRDb250YWluZXIoJ3FsLWN1c3RvbScpO1xyXG4gICAgLy8gaHRtbEVkaXRvci5hcHBlbmRDaGlsZCh0eHRBcmVhKTtcclxuXHJcbiAgICAvLyBjb25zdCBteUVkaXRvciA9IHF1aWxsLmNvbnRhaW5lcjtcclxuICAgIC8vIHF1aWxsLm9uKCd0ZXh0LWNoYW5nZScsIChkZWx0YSwgb2xkRGVsdGEsIHNvdXJjZSkgPT4ge1xyXG4gICAgLy8gICBjb25zdCBodG1sID0gbXlFZGl0b3IuY2hpbGRyZW5bMF0uaW5uZXJIVE1MO1xyXG4gICAgLy8gICB0eHRBcmVhLnZhbHVlID0gaHRtbDtcclxuICAgIC8vICAgLy8gaWYgKHF1aWxsLmdldExlbmd0aCgpID4gdGhpcy5tYXhsZW5ndGgpIHtcclxuICAgIC8vICAgLy8gICBxdWlsbC5kZWxldGVUZXh0KHRoaXMubWF4bGVuZ3RoLCBxdWlsbC5nZXRMZW5ndGgoKSk7XHJcbiAgICAvLyAgIC8vIH1cclxuICAgIC8vICAgLy8gdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShodG1sKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIHF1aWxsLmdldE1vZHVsZSgndG9vbGJhcicpLmFkZEhhbmRsZXIoJ2ltYWdlJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBsZXQgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpO1xyXG5cclxuICAgICAgaWYgKGZpbGVJbnB1dCA9PSBudWxsKSB7XHJcbiAgICAgICAgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wLCBpbWFnZS94LWljb24nKTtcclxuICAgICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtaW1hZ2UnKTtcclxuICAgICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlSW5wdXQuZmlsZXM7XHJcbiAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xyXG4gICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5xdWlsbC5lbmFibGUoZmFsc2UpO1xyXG4gICAgICAgICAgLy8gc2VsZi5hcGlTZXJ2aWNlLnBvc3Qoc2VsZi5kb21haW4sIHNlbGYudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnF1aWxsLmVuYWJsZSh0cnVlKTtcclxuICAgICAgICAgIC8vICAgdGhpcy5xdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3AuZGF0YS5pbWFnZVVybCB8fCByZXNwLmRhdGEucHVibGlzaF91cmwpO1xyXG4gICAgICAgICAgLy8gICBjb25zdCBjb250ZW50ID0gdGhpcy5xdWlsbC5nZXRDb250ZW50cygpO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGNvbnRlbnQpO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnF1aWxsLnNldFNlbGVjdGlvbihyYW5nZS5pbmRleCArIDEsIChRdWlsbCBhcyBhbnkpLnNvdXJjZXMuU0lMRU5UKTtcclxuICAgICAgICAgIC8vICAgZmlsZUlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChmaWxlSW5wdXQpO1xyXG4gICAgICB9XHJcbiAgICAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uTW9kZWxDaGFuZ2UgPSAodmFsOiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcclxuICAgIHRoaXMubW9kZWxIVE1MID0gdmFsO1xyXG4gIH1cclxuICBvbkNsaWNrU2hvd0h0bWxFZGl0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNob3dIdG1sRWRpdG9yID0gIXRoaXMuc2hvd0h0bWxFZGl0b3I7XHJcbiAgfVxyXG59XHJcbiJdfQ==
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsV0FBVyxFQUFhLE1BQU0sRUFBZSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sZUFBZSxDQUFDO0FBT3ZCLE1BQU0sT0FBTyxRQUFRO0lBK0luQixZQUNVLEdBQXNCLEVBQ3RCLFlBQTBCO1FBRDFCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBaEpwQyxnQkFBUSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFDO1FBQ3hCLE9BQUUsR0FBVyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzdCLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBR25DLHlCQUFlO1FBbUJmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFxQlAsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTFDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLFdBQU0sR0FBUSxFQUFDLE1B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QUNyRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7O1FBQ1QsbUZBQVksYUFBYSxzQ0FBYTtRQUN0Qyw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztZQTVLRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLG9rREFBc0M7O2FBRXZDOzs7WUFmQyxpQkFBaUI7WUFRWCxZQUFZOzs7cUJBWWpCLFNBQVMsU0FBQyxRQUFRO29CQUNsQixLQUFLO29CQUVMLEtBQUs7dUJBU0wsS0FBSzt3QkFXTCxLQUFLO3lCQU9MLEtBQUssU0FBQyxXQUFXO3lCQU9qQixLQUFLLFNBQUMsV0FBVzswQkFLakIsTUFBTTswQkFFTixLQUFLO3FCQUVMLEtBQUs7cUJBSUwsS0FBSzs2QkFDTCxLQUFLO21CQUVMLEtBQUs7c0JBVUwsS0FBSzsrQkFDTCxLQUFLOzRCQUtMLEtBQUs7dUJBb0VMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UXVpbGxFZGl0b3JDb21wb25lbnR9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0NvbnN0YW50c30gZnJvbSAnLi9jb25zdGFudCc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtTZEFwaVNlcnZpY2V9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvYXBpJztcclxuaW1wb3J0ICdxdWlsbC1tZW50aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICNuYW1lID0gYE4ke3V1aWQudjQoKX1gO1xyXG4gIGlkOiBzdHJpbmcgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAVmlld0NoaWxkKCdlZGl0b3InKSBlZGl0b3I6IFF1aWxsRWRpdG9yQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgI21vZGVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbDtcclxuICAgIHRoaXMubW9kZWxIVE1MID0gdmFsO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbCwge1xyXG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHBSZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIG1pbmxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoJ21pbmxlbmd0aCcpIHNldCBfbWlubGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1pbmxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIG1heGxlbmd0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoJ21heGxlbmd0aCcpIHNldCBfbWF4bGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1heGxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIHN0eWxlczogYW55ID0ge2hlaWdodDogJzI1MHB4J307XHJcblxyXG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIEBJbnB1dCgpIGRvbWFpbiA9ICcnO1xyXG4gIEBJbnB1dCgpIHVybFVwbG9hZEltYWdlOiBzdHJpbmc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHRvb2xiYXI6IGFueTtcclxuICBASW5wdXQoKSBlbmFibGVIVE1MQnV0dG9uID0gZmFsc2U7XHJcbiAgc2hvd0h0bWxFZGl0b3IgPSBmYWxzZTtcclxuICBtb2RlbEhUTUw6IHN0cmluZztcclxuXHJcbiAgcXVpbGxFdmVudDogYW55O1xyXG4gIEBJbnB1dCgpIG1lbnRpb25WYWx1ZXM6IHsgaWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbGluaz86IHN0cmluZyB9W107XHJcblxyXG4gIHF1aWxsQ29uZmlnID0ge1xyXG4gICAgLy8gdG9vbGJhcjogJy50b29sYmFyJyxcclxuICAgIHRvb2xiYXI6IHtcclxuICAgICAgY29udGFpbmVyOiBbXHJcbiAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sICAgICAgICAvLyB0b2dnbGVkIGJ1dHRvbnNcclxuICAgICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxyXG5cclxuICAgICAgICBbeydoZWFkZXInOiAxfSwgeydoZWFkZXInOiAyfV0sICAgICAgICAgICAgICAgLy8gY3VzdG9tIGJ1dHRvbiB2YWx1ZXNcclxuICAgICAgICBbeydsaXN0JzogJ29yZGVyZWQnfSwgeydsaXN0JzogJ2J1bGxldCd9XSxcclxuICAgICAgICBbeydzY3JpcHQnOiAnc3ViJ30sIHsnc2NyaXB0JzogJ3N1cGVyJ31dLCAgICAgIC8vIHN1cGVyc2NyaXB0L3N1YnNjcmlwdFxyXG4gICAgICAgIFt7J2luZGVudCc6ICctMSd9LCB7J2luZGVudCc6ICcrMSd9XSwgICAgICAgICAgLy8gb3V0ZGVudC9pbmRlbnRcclxuICAgICAgICBbeydkaXJlY3Rpb24nOiAncnRsJ31dLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0IGRpcmVjdGlvblxyXG5cclxuICAgICAgICBbeydzaXplJzogWydzbWFsbCcsIGZhbHNlLCAnbGFyZ2UnLCAnaHVnZSddfV0sICAvLyBjdXN0b20gZHJvcGRvd25cclxuICAgICAgICBbeydoZWFkZXInOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdfV0sXHJcblxyXG4gICAgICAgIFt7J2NvbG9yJzogW119LCB7J2JhY2tncm91bmQnOiBbXX1dLCAgICAgICAgICAvLyBkcm9wZG93biB3aXRoIGRlZmF1bHRzIGZyb20gdGhlbWVcclxuICAgICAgICBbeydmb250JzogW119XSxcclxuICAgICAgICBbeydhbGlnbic6IFtdfV0sXHJcblxyXG4gICAgICAgIFsnY2xlYW4nXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBmb3JtYXR0aW5nIGJ1dHRvblxyXG5cclxuICAgICAgICBbJ2xpbmsnLCAnaW1hZ2UnLCAndmlkZW8nXSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5rIGFuZCBpbWFnZSwgdmlkZW9cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIG1lbnRpb246IHtcclxuICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxyXG4gICAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnXSxcclxuICAgICAgc291cmNlOiAoc2VhcmNoVGVybSwgcmVuZGVyTGlzdCwgbWVudGlvbkNoYXIpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5tZW50aW9uVmFsdWVzKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWVzO1xyXG4gICAgICAgICAgaWYgKG1lbnRpb25DaGFyID09PSAnQCcpIHtcclxuICAgICAgICAgICAgdmFsdWVzID0gdGhpcy5tZW50aW9uVmFsdWVzO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzID0gW107XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJlbmRlckxpc3QodmFsdWVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBbXTtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1mb3Itb2ZcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxyXG4gICAgICAgICAgICAgIGlmICh+dmFsdWVzW2ldLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2godmFsdWVzW2ldKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAga2V5Ym9hcmQ6IHtcclxuICAgICAgYmluZGluZ3M6IHtcclxuICAgICAgICBlbnRlcjoge1xyXG4gICAgICAgICAga2V5OiAxMyxcclxuICAgICAgICAgIGhhbmRsZXI6IChyYW5nZSwgY29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuICB0ZXh0TGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2RBcGlTZXJ2aWNlOiBTZEFwaVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgIGlmICh0aGlzLnRvb2xiYXIpIHtcclxuICAgICAgdGhpcy5xdWlsbENvbmZpZy50b29sYmFyLmNvbnRhaW5lciA9IHRoaXMudG9vbGJhcjtcclxuICAgICAgY29uc29sZS5sb2coJ3Rvb2xiYXInLCB0aGlzLnF1aWxsQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pbmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWlubGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBlZGl0b3JJbml0ID0gKHF1aWxsKSA9PiB7XHJcbiAgICB0aGlzLnF1aWxsRXZlbnQgPSBxdWlsbDtcclxuICAgIC8vIGNvbnN0IHR4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xyXG4gICAgLy8gdHh0QXJlYS5zdHlsZS5jc3NUZXh0ID1cclxuICAgIC8vICAgJ3dpZHRoOiAxMDAlO21hcmdpbjogMHB4O2JhY2tncm91bmQ6IHJnYigyOSwgMjksIDI5KTsnICtcclxuICAgIC8vICAgJ2JveC1zaXppbmc6IGJvcmRlci1ib3g7Y29sb3I6IHJnYigyMDQsIDIwNCwgMjA0KTsnICtcclxuICAgIC8vICAgJ2ZvbnQtc2l6ZTogMTVweDtvdXRsaW5lOiBub25lO3BhZGRpbmc6IDIwcHg7JyArXHJcbiAgICAvLyAgICdsaW5lLWhlaWdodDogMjRweDtmb250LWZhbWlseTogQ29uc29sYXMsIE1lbmxvLCBNb25hY28sICZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCBtb25vc3BhY2U7JyArXHJcbiAgICAvLyAgICdwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2JvdHRvbTogMDtib3JkZXI6IG5vbmU7ZGlzcGxheTpub25lJztcclxuXHJcbiAgICAvLyBjb25zdCBodG1sRWRpdG9yID0gcXVpbGwuYWRkQ29udGFpbmVyKCdxbC1jdXN0b20nKTtcclxuICAgIC8vIGh0bWxFZGl0b3IuYXBwZW5kQ2hpbGQodHh0QXJlYSk7XHJcblxyXG4gICAgLy8gY29uc3QgbXlFZGl0b3IgPSBxdWlsbC5jb250YWluZXI7XHJcbiAgICAvLyBxdWlsbC5vbigndGV4dC1jaGFuZ2UnLCAoZGVsdGEsIG9sZERlbHRhLCBzb3VyY2UpID0+IHtcclxuICAgIC8vICAgY29uc3QgaHRtbCA9IG15RWRpdG9yLmNoaWxkcmVuWzBdLmlubmVySFRNTDtcclxuICAgIC8vICAgdHh0QXJlYS52YWx1ZSA9IGh0bWw7XHJcbiAgICAvLyAgIC8vIGlmIChxdWlsbC5nZXRMZW5ndGgoKSA+IHRoaXMubWF4bGVuZ3RoKSB7XHJcbiAgICAvLyAgIC8vICAgcXVpbGwuZGVsZXRlVGV4dCh0aGlzLm1heGxlbmd0aCwgcXVpbGwuZ2V0TGVuZ3RoKCkpO1xyXG4gICAgLy8gICAvLyB9XHJcbiAgICAvLyAgIC8vIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoaHRtbCk7XHJcbiAgICAvLyB9KTtcclxuXHJcbiAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgIHF1aWxsLmdldE1vZHVsZSgndG9vbGJhcicpLmFkZEhhbmRsZXIoJ2ltYWdlJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICBsZXQgZmlsZUlucHV0ID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcignaW5wdXQucWwtaW1hZ2VbdHlwZT1maWxlXScpO1xyXG5cclxuICAgICAgaWYgKGZpbGVJbnB1dCA9PSBudWxsKSB7XHJcbiAgICAgICAgZmlsZUlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBmaWxlSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgQ29uc3RhbnRzLkZJTEUpO1xyXG4gICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS9wbmcsIGltYWdlL2dpZiwgaW1hZ2UvanBlZywgaW1hZ2UvYm1wLCBpbWFnZS94LWljb24nKTtcclxuICAgICAgICBmaWxlSW5wdXQuY2xhc3NMaXN0LmFkZCgncWwtaW1hZ2UnKTtcclxuICAgICAgICBmaWxlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBmaWxlSW5wdXQuZmlsZXM7XHJcbiAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKHRydWUpO1xyXG4gICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKENvbnN0YW50cy5GSUxFLCBmaWxlc1swXSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5xdWlsbC5lbmFibGUoZmFsc2UpO1xyXG4gICAgICAgICAgLyp0aGlzLmFwaVNlcnZpY2UucG9zdCh0aGlzLmRvbWFpbiArIHRoaXMudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS5zdWJzY3JpYmUoKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnF1aWxsLmVuYWJsZSh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5xdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3AuZGF0YS5pbWFnZVVybCB8fCByZXNwLmRhdGEucHVibGlzaF91cmwgfHwgIHJlc3AudXJsKTtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucXVpbGwuZ2V0Q29udGVudHMoKTtcclxuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhjb250ZW50KTtcclxuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRTZWxlY3Rpb24ocmFuZ2UuaW5kZXggKyAxLCAnc2lsZW50Jyk7XHJcbiAgICAgICAgICAgIGZpbGVJbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgfSk7Ki9cclxuICAgICAgICAgIHNlbGYuI3VwbG9hZEltYWdlKGZvcm1EYXRhLCBxdWlsbCwgcmFuZ2UsIGZpbGVJbnB1dCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoZmlsZUlucHV0KTtcclxuICAgICAgfVxyXG4gICAgICBmaWxlSW5wdXQuY2xpY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Nb2RlbENoYW5nZSA9ICh2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwpO1xyXG4gICAgdGhpcy5tb2RlbEhUTUwgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU2hvd0h0bWxFZGl0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNob3dIdG1sRWRpdG9yID0gIXRoaXMuc2hvd0h0bWxFZGl0b3I7XHJcbiAgfVxyXG5cclxuICAjdXBsb2FkSW1hZ2UgPSAoZm9ybURhdGEsIHF1aWxsLCByYW5nZSwgZmlsZUlucHV0KSA9PiB7XHJcbiAgICBpZiAoIXRoaXMudXJsVXBsb2FkSW1hZ2UpIHtcclxuICAgICAgdGhpcy51cmxVcGxvYWRJbWFnZSA9ICcvcGFydG5lci92Mi9tZXJjaGFuZGlzZS9maWxlL3VwbG9hZHVzZXJmaWxlJztcclxuICAgIH1cclxuICAgIC8vIHRoaXMuZG9tYWluID0gJ2h0dHBzOi8vYXBpLWNvbW1lcmNlLXFjLnZpbmlkLmRldic7XHJcbiAgICB0aGlzLnNkQXBpU2VydmljZS5wb3N0KHRoaXMudXJsVXBsb2FkSW1hZ2UsIGZvcm1EYXRhKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgcXVpbGwuZW5hYmxlKHRydWUpO1xyXG4gICAgICBxdWlsbC5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIHJlc3A/LmRhdGE/LmltYWdlVXJsIHx8IHJlc3A/LmRhdGE/LnB1Ymxpc2hfdXJsIHx8IHJlc3A/LnVybCB8fCAnJyk7XHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBxdWlsbC5nZXRDb250ZW50cygpO1xyXG4gICAgICBxdWlsbC5zZXRDb250ZW50cyhjb250ZW50KTtcclxuICAgICAgcXVpbGwuc2V0U2VsZWN0aW9uKHJhbmdlLmluZGV4ICsgMSwgJ3NpbGVudCcpO1xyXG4gICAgICBmaWxlSW5wdXQudmFsdWUgPSAnJztcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -6,6 +6,7 @@ import { CommonModule } from '@angular/common';
6
6
  import { SdTranslateModule } from '@sd-angular/core/translate';
7
7
  import { SdButtonModule } from '@sd-angular/core/button';
8
8
  import { SdTextareaModule } from '@sd-angular/core/textarea';
9
+ import { SdApiModule } from '@sd-angular/core/api';
9
10
  export class SdEditorModule {
10
11
  }
11
12
  SdEditorModule.decorators = [
@@ -18,10 +19,11 @@ SdEditorModule.decorators = [
18
19
  QuillModule.forRoot(),
19
20
  SdTranslateModule,
20
21
  SdButtonModule,
21
- SdTextareaModule
22
+ SdTextareaModule,
23
+ SdApiModule
22
24
  ],
23
25
  exports: [SdEditor],
24
26
  providers: [],
25
27
  },] }
26
28
  ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBZ0IzRCxNQUFNLE9BQU8sY0FBYzs7O1lBZDFCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hCLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixXQUFXLENBQUMsT0FBTyxFQUFFO29CQUNyQixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsZ0JBQWdCO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxFQUFFO2FBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBRdWlsbE1vZHVsZSB9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZEVkaXRvciB9IGZyb20gJy4vZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNkVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5pbXBvcnQge1NkQnV0dG9uTW9kdWxlfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2J1dHRvbic7XHJcbmltcG9ydCB7U2RUZXh0YXJlYU1vZHVsZX0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90ZXh0YXJlYSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1NkRWRpdG9yXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBRdWlsbE1vZHVsZS5mb3JSb290KCksXHJcbiAgICBTZFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIFNkQnV0dG9uTW9kdWxlLFxyXG4gICAgU2RUZXh0YXJlYU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1NkRWRpdG9yXSxcclxuICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RFZGl0b3JNb2R1bGUgeyB9XHJcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2VkaXRvci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQWlCL0QsTUFBTSxPQUFPLGNBQWM7OztZQWYxQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUN4QixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsV0FBVyxDQUFDLE9BQU8sRUFBRTtvQkFDckIsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLGdCQUFnQjtvQkFDaEIsV0FBVztpQkFDWjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxFQUFFO2FBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBRdWlsbE1vZHVsZSB9IGZyb20gJ25neC1xdWlsbCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZEVkaXRvciB9IGZyb20gJy4vZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNkVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5pbXBvcnQge1NkQnV0dG9uTW9kdWxlfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2J1dHRvbic7XHJcbmltcG9ydCB7U2RUZXh0YXJlYU1vZHVsZX0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90ZXh0YXJlYSc7XHJcbmltcG9ydCB7U2RBcGlNb2R1bGUsIFNkQXBpU2VydmljZX0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9hcGknO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTZEVkaXRvcl0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUXVpbGxNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgU2RUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBTZEJ1dHRvbk1vZHVsZSxcclxuICAgIFNkVGV4dGFyZWFNb2R1bGUsXHJcbiAgICBTZEFwaU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1NkRWRpdG9yXSxcclxuICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RFZGl0b3JNb2R1bGUgeyB9XHJcbiJdfQ==