@apipass/inputs 1.0.158 → 1.0.160

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.
@@ -9,6 +9,14 @@ export declare class AceEditorComponent implements ControlValueAccessor, OnInit,
9
9
  private readonly zone;
10
10
  textChanged: EventEmitter<any>;
11
11
  textChange: EventEmitter<any>;
12
+ beforeDropEvent: EventEmitter<{
13
+ event: DragEvent;
14
+ draggedText: string;
15
+ }>;
16
+ afterDropEvent: EventEmitter<{
17
+ event: DragEvent;
18
+ draggedText: string;
19
+ }>;
12
20
  style: any;
13
21
  _options: any;
14
22
  _readOnly: false;
@@ -20,6 +28,7 @@ export declare class AceEditorComponent implements ControlValueAccessor, OnInit,
20
28
  _text: string;
21
29
  oldText: any;
22
30
  timeoutSaving: any;
31
+ draggedText: string;
23
32
  constructor(elementRef: ElementRef, zone: NgZone);
24
33
  ngOnInit(): void;
25
34
  ngOnDestroy(): void;
@@ -51,5 +60,5 @@ export declare class AceEditorComponent implements ControlValueAccessor, OnInit,
51
60
  setDurationBeforeCallback(num: number): void;
52
61
  getEditor(): any;
53
62
  static ɵfac: i0.ɵɵFactoryDeclaration<AceEditorComponent, never>;
54
- static ɵcmp: i0.ɵɵComponentDeclaration<AceEditorComponent, "ace-editor", never, { "style": { "alias": "style"; "required": false; }; "options": { "alias": "options"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "text": { "alias": "text"; "required": false; }; "autoUpdateContent": { "alias": "autoUpdateContent"; "required": false; }; "durationBeforeCallback": { "alias": "durationBeforeCallback"; "required": false; }; }, { "textChanged": "textChanged"; "textChange": "textChange"; }, never, never, false, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<AceEditorComponent, "ace-editor", never, { "style": { "alias": "style"; "required": false; }; "options": { "alias": "options"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "text": { "alias": "text"; "required": false; }; "autoUpdateContent": { "alias": "autoUpdateContent"; "required": false; }; "durationBeforeCallback": { "alias": "durationBeforeCallback"; "required": false; }; }, { "textChanged": "textChanged"; "textChange": "textChange"; "beforeDropEvent": "beforeDropEvent"; "afterDropEvent": "afterDropEvent"; }, never, never, false, never>;
55
64
  }
@@ -7,6 +7,8 @@ class AceEditorComponent {
7
7
  zone;
8
8
  textChanged = new EventEmitter();
9
9
  textChange = new EventEmitter();
10
+ beforeDropEvent = new EventEmitter();
11
+ afterDropEvent = new EventEmitter();
10
12
  style = {};
11
13
  _options = {};
12
14
  _readOnly = false;
@@ -18,6 +20,7 @@ class AceEditorComponent {
18
20
  _text = '';
19
21
  oldText;
20
22
  timeoutSaving;
23
+ draggedText = '';
21
24
  constructor(elementRef, zone) {
22
25
  this.zone = zone;
23
26
  const el = elementRef.nativeElement;
@@ -25,6 +28,18 @@ class AceEditorComponent {
25
28
  this._editor = ace.edit(el);
26
29
  });
27
30
  this._editor.$blockScrolling = Infinity;
31
+ el.addEventListener('drop', (event) => {
32
+ setTimeout(() => {
33
+ event.preventDefault();
34
+ this.beforeDropEvent.emit({ event, draggedText: this.draggedText });
35
+ if (this.draggedText) {
36
+ const dropPosition = this.getEditor().renderer.screenToTextCoordinates(event.clientX, event.clientY);
37
+ this.getEditor().session.insert(dropPosition, this.draggedText);
38
+ this.draggedText = undefined;
39
+ }
40
+ this.afterDropEvent.emit({ event, draggedText: this.draggedText });
41
+ });
42
+ });
28
43
  }
29
44
  ngOnInit() {
30
45
  this.init();
@@ -190,7 +205,7 @@ class AceEditorComponent {
190
205
  return this._editor;
191
206
  }
192
207
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AceEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
193
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AceEditorComponent, selector: "ace-editor", inputs: { style: "style", options: "options", readOnly: "readOnly", theme: "theme", mode: "mode", value: "value", text: "text", autoUpdateContent: "autoUpdateContent", durationBeforeCallback: "durationBeforeCallback" }, outputs: { textChanged: "textChanged", textChange: "textChange" }, providers: [{
208
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AceEditorComponent, selector: "ace-editor", inputs: { style: "style", options: "options", readOnly: "readOnly", theme: "theme", mode: "mode", value: "value", text: "text", autoUpdateContent: "autoUpdateContent", durationBeforeCallback: "durationBeforeCallback" }, outputs: { textChanged: "textChanged", textChange: "textChange", beforeDropEvent: "beforeDropEvent", afterDropEvent: "afterDropEvent" }, providers: [{
194
209
  provide: NG_VALUE_ACCESSOR,
195
210
  useExisting: forwardRef(() => AceEditorComponent),
196
211
  multi: true
@@ -208,6 +223,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
208
223
  type: Output
209
224
  }], textChange: [{
210
225
  type: Output
226
+ }], beforeDropEvent: [{
227
+ type: Output
228
+ }], afterDropEvent: [{
229
+ type: Output
211
230
  }], style: [{
212
231
  type: Input
213
232
  }], options: [{
@@ -227,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
227
246
  }], durationBeforeCallback: [{
228
247
  type: Input
229
248
  }] } });
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9hY2UtZWRpdG9yL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLE9BQU8sQ0FBQTtBQUNkLE9BQU8scUJBQXFCLENBQUE7O0FBTTVCLE1BVWEsa0JBQWtCO0lBa0J5QjtJQWhCNUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsS0FBSyxHQUFRLEVBQUUsQ0FBQTtJQUV4QixRQUFRLEdBQVEsRUFBRSxDQUFBO0lBQ2xCLFNBQVMsR0FBVSxLQUFLLENBQUE7SUFDeEIsTUFBTSxHQUFHLFNBQVMsQ0FBQTtJQUNsQixLQUFLLEdBQUcsTUFBTSxDQUFBO0lBQ2Qsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLE9BQU8sQ0FBSztJQUNaLHVCQUF1QixHQUFHLENBQUMsQ0FBQTtJQUMzQixLQUFLLEdBQUcsRUFBRSxDQUFBO0lBRVYsT0FBTyxDQUFLO0lBQ1osYUFBYSxDQUFLO0lBRWxCLFlBQWEsVUFBc0IsRUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0IsQ0FB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UU8sc0JBQXNCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0ICdicmFjZSdcbmltcG9ydCAnYnJhY2UvdGhlbWUvbW9ub2thaSdcbmltcG9ydCB7IEFjZSB9IGZyb20gJ2FjZS1idWlsZHMnO1xuaW1wb3J0IENvbXBsZXRpb24gPSBBY2UuQ29tcGxldGlvbjtcblxuZGVjbGFyZSBsZXQgYWNlOiBhbnlcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNlLWVkaXRvcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJ2FjZS1lZGl0b3Iuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWNlRWRpdG9yQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBBY2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBPdXRwdXQoKSB0ZXh0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgdGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBASW5wdXQoKSBzdHlsZTogYW55ID0ge31cblxuICBfb3B0aW9uczogYW55ID0ge31cbiAgX3JlYWRPbmx5OiBmYWxzZSA9IGZhbHNlXG4gIF90aGVtZSA9ICdtb25va2FpJ1xuICBfbW9kZSA9ICdodG1sJ1xuICBfYXV0b1VwZGF0ZUNvbnRlbnQgPSB0cnVlXG4gIF9lZGl0b3I6IGFueVxuICBfZHVyYXRpb25CZWZvcmVDYWxsYmFjayA9IDBcbiAgX3RleHQgPSAnJ1xuXG4gIG9sZFRleHQ6IGFueVxuICB0aW1lb3V0U2F2aW5nOiBhbnlcblxuICBjb25zdHJ1Y3RvciAoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmUpIHtcbiAgICBjb25zdCBlbCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9lZGl0b3IgPSBhY2UuZWRpdChlbClcbiAgICB9KVxuICAgIHRoaXMuX2VkaXRvci4kYmxvY2tTY3JvbGxpbmcgPSBJbmZpbml0eVxuICB9XG5cbiAgbmdPbkluaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdCgpXG4gICAgdGhpcy5pbml0RXZlbnRzKClcbiAgfVxuXG4gIG5nT25EZXN0cm95ICgpOiB2b2lkIHtcbiAgICB0aGlzLl9lZGl0b3IuZGVzdHJveSgpXG4gIH1cblxuICBpbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLl9lZGl0b3Iuc2V0S2V5Ym9hcmRIYW5kbGVyKCdhY2Uva2V5Ym9hcmQvdnNjb2RlJylcbiAgICB0aGlzLnNldE9wdGlvbnMoe1xuICAgICAgZW5hYmxlQmFzaWNBdXRvY29tcGxldGlvbjogdHJ1ZSxcbiAgICAgIGF1dG9TY3JvbGxFZGl0b3JJbnRvVmlldzogdHJ1ZSxcbiAgICAgIGVuYWJsZUxpdmVBdXRvY29tcGxldGlvbjogdHJ1ZVxuICAgIH0pXG4gICAgdGhpcy5zZXRUaGVtZSh0aGlzLl90aGVtZSlcbiAgICB0aGlzLnNldE1vZGUodGhpcy5fbW9kZSlcbiAgICB0aGlzLnNldFJlYWRPbmx5KHRoaXMuX3JlYWRPbmx5KVxuICAgIGNvbnN0IGNvbXBsZXRlckluZGV4ID0gdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMuZmluZEluZGV4KChjb21wbGV0ZXI6IHsgaWQ6IHN0cmluZyB9KSA9PiBjb21wbGV0ZXIuaWQgPT09ICdhcGlwYXNzLWNvbXBsZXRpb25zJylcbiAgICBpZiAoY29tcGxldGVySW5kZXggPiAtMSkgeyAvLyBvbmx5IHNwbGljZSBhcnJheSB3aGVuIGl0ZW0gaXMgZm91bmRcbiAgICAgIHRoaXMuX2VkaXRvci5jb21wbGV0ZXJzLnNwbGljZShjb21wbGV0ZXJJbmRleCwgMSk7IC8vIDJuZCBwYXJhbWV0ZXIgbWVhbnMgcmVtb3ZlIG9uZSBpdGVtIG9ubHlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VzdG9tQ29tcGxldGlvbnMoY3VzdG9tQ29tcGxldGlvbnM6IENvbXBsZXRpb25bXSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBsZXRlciA9IHRoaXMuX2VkaXRvci5jb21wbGV0ZXJzLmZpbmQoKGNvbXBsZXRlcjogeyBpZDogc3RyaW5nIH0pID0+IGNvbXBsZXRlci5pZCA9PT0gJ2FwaXBhc3MtY29tcGxldGlvbnMnKVxuICAgIGlmICghY29tcGxldGVyKSB7XG4gICAgICB0aGlzLnNldE9wdGlvbnMoe1xuICAgICAgICBlbmFibGVCYXNpY0F1dG9jb21wbGV0aW9uOiB0cnVlLFxuICAgICAgICBhdXRvU2Nyb2xsRWRpdG9ySW50b1ZpZXc6IHRydWUsXG4gICAgICAgIGVuYWJsZUxpdmVBdXRvY29tcGxldGlvbjogdHJ1ZVxuICAgICAgfSlcbiAgICAgIHRoaXMuX2VkaXRvci5jb21wbGV0ZXJzLnB1c2goe1xuICAgICAgICBpZDogJ2FwaXBhc3MtY29tcGxldGlvbnMnLFxuICAgICAgICBnZXRDb21wbGV0aW9uczogZnVuY3Rpb24oZWRpdG9yLCBzZXNzaW9uLCBwb3MsIHByZWZpeCwgY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayhudWxsLCBjdXN0b21Db21wbGV0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21wbGV0ZXIuZ2V0Q29tcGxldGlvbnMgPSAoZWRpdG9yLCBzZXNzaW9uLCBwb3MsIHByZWZpeCwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgY2FsbGJhY2sobnVsbCwgY3VzdG9tQ29tcGxldGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGluaXRFdmVudHMgKCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRvci5vbignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVUZXh0KClcbiAgICB9KVxuICAgIHRoaXMuX2VkaXRvci5vbigncGFzdGUnLCAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVRleHQoKVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVUZXh0ICgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWwgPSB0aGlzLl9lZGl0b3IuZ2V0VmFsdWUoKVxuICAgIGlmIChuZXdWYWwgPT09IHRoaXMub2xkVGV4dCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICghdGhpcy5fZHVyYXRpb25CZWZvcmVDYWxsYmFjaykge1xuICAgICAgdGhpcy5fdGV4dCA9IG5ld1ZhbFxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMudGV4dENoYW5nZS5lbWl0KG5ld1ZhbClcbiAgICAgICAgdGhpcy50ZXh0Q2hhbmdlZC5lbWl0KG5ld1ZhbClcbiAgICAgIH0pXG4gICAgICB0aGlzLl9vbkNoYW5nZShuZXdWYWwpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnRpbWVvdXRTYXZpbmcpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFNhdmluZylcbiAgICAgIH1cblxuICAgICAgdGhpcy50aW1lb3V0U2F2aW5nID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3RleHQgPSBuZXdWYWxcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy50ZXh0Q2hhbmdlLmVtaXQobmV3VmFsKVxuICAgICAgICAgIHRoaXMudGV4dENoYW5nZWQuZW1pdChuZXdWYWwpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMudGltZW91dFNhdmluZyA9IG51bGxcbiAgICAgIH0sIHRoaXMuX2R1cmF0aW9uQmVmb3JlQ2FsbGJhY2spXG4gICAgfVxuICAgIHRoaXMub2xkVGV4dCA9IG5ld1ZhbFxuICB9XG5cbiAgQElucHV0KCkgc2V0IG9wdGlvbnMgKG9wdGlvbnM6IGFueSkge1xuICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKVxuICB9XG5cbiAgc2V0T3B0aW9ucyAob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnNcbiAgICB0aGlzLl9lZGl0b3Iuc2V0T3B0aW9ucyhvcHRpb25zIHx8IHt9KVxuICB9XG5cbiAgQElucHV0KCkgc2V0IHJlYWRPbmx5IChyZWFkT25seTogYW55KSB7XG4gICAgdGhpcy5zZXRSZWFkT25seShyZWFkT25seSlcbiAgfVxuXG4gIHNldFJlYWRPbmx5IChyZWFkT25seTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fcmVhZE9ubHkgPSByZWFkT25seVxuICAgIHRoaXMuX2VkaXRvci5zZXRSZWFkT25seShyZWFkT25seSlcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB0aGVtZSAodGhlbWU6IGFueSkge1xuICAgIHRoaXMuc2V0VGhlbWUodGhlbWUpXG4gIH1cblxuICBzZXRUaGVtZSAodGhlbWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3RoZW1lID0gdGhlbWVcbiAgICB0aGlzLl9lZGl0b3Iuc2V0VGhlbWUoYGFjZS90aGVtZS8ke3RoZW1lfWApXG4gIH1cblxuICBASW5wdXQoKSBzZXQgbW9kZSAobW9kZTogYW55KSB7XG4gICAgdGhpcy5zZXRNb2RlKG1vZGUpXG4gIH1cblxuICBzZXRNb2RlIChtb2RlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RlID0gbW9kZVxuICAgIGlmICh0eXBlb2YgdGhpcy5fbW9kZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5nZXRTZXNzaW9uKCkuc2V0TW9kZSh0aGlzLl9tb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZ2V0U2Vzc2lvbigpLnNldE1vZGUoYGFjZS9tb2RlLyR7dGhpcy5fbW9kZX1gKVxuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZSAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUgKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFRleHQodmFsdWUpXG4gIH1cblxuICB3cml0ZVZhbHVlICh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZXRUZXh0KHZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlIChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmblxuICB9XG5cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQgKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmblxuICB9XG5cbiAgZ2V0IHRleHQgKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RleHRcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB0ZXh0ICh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFRleHQodGV4dClcbiAgfVxuXG4gIHNldFRleHQgKHRleHQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0ZXh0ID09PSBudWxsIHx8IHRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGV4dCA9ICcnXG4gICAgfVxuICAgIGlmICh0aGlzLl90ZXh0ICE9PSB0ZXh0ICYmIHRoaXMuX2F1dG9VcGRhdGVDb250ZW50KSB7XG4gICAgICB0aGlzLl90ZXh0ID0gdGV4dFxuICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHRleHQpXG4gICAgICB0aGlzLl9vbkNoYW5nZSh0ZXh0KVxuICAgICAgdGhpcy5fZWRpdG9yLmNsZWFyU2VsZWN0aW9uKClcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBzZXQgYXV0b1VwZGF0ZUNvbnRlbnQgKHN0YXR1czogYW55KSB7XG4gICAgdGhpcy5zZXRBdXRvVXBkYXRlQ29udGVudChzdGF0dXMpXG4gIH1cblxuICBzZXRBdXRvVXBkYXRlQ29udGVudCAoc3RhdHVzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9hdXRvVXBkYXRlQ29udGVudCA9IHN0YXR1c1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGR1cmF0aW9uQmVmb3JlQ2FsbGJhY2sgKG51bTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXREdXJhdGlvbkJlZm9yZUNhbGxiYWNrKG51bSlcbiAgfVxuXG4gIHNldER1cmF0aW9uQmVmb3JlQ2FsbGJhY2sgKG51bTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fZHVyYXRpb25CZWZvcmVDYWxsYmFjayA9IG51bVxuICB9XG5cbiAgZ2V0RWRpdG9yICgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3JcbiAgfVxuXG59XG4iXX0=
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9hY2UtZWRpdG9yL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLE9BQU8sQ0FBQTtBQUNkLE9BQU8scUJBQXFCLENBQUE7O0FBTTVCLE1BVWEsa0JBQWtCO0lBc0J5QjtJQXBCNUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDL0IsZUFBZSxHQUE0RCxJQUFJLFlBQVksRUFBNkMsQ0FBQTtJQUN4SSxjQUFjLEdBQTRELElBQUksWUFBWSxFQUE2QyxDQUFBO0lBQ3hJLEtBQUssR0FBUSxFQUFFLENBQUE7SUFFeEIsUUFBUSxHQUFRLEVBQUUsQ0FBQTtJQUNsQixTQUFTLEdBQVUsS0FBSyxDQUFBO0lBQ3hCLE1BQU0sR0FBRyxTQUFTLENBQUE7SUFDbEIsS0FBSyxHQUFHLE1BQU0sQ0FBQTtJQUNkLGtCQUFrQixHQUFHLElBQUksQ0FBQTtJQUN6QixPQUFPLENBQUs7SUFDWix1QkFBdUIsR0FBRyxDQUFDLENBQUE7SUFDM0IsS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUVWLE9BQU8sQ0FBSztJQUNaLGFBQWEsQ0FBSztJQUVYLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFFaEMsWUFBYSxVQUFzQixFQUFtQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFBO1FBQ25DLElBQUksQ0FBQyxJ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QUcsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCx5QkFBeUIsQ0FBRSxHQUFXO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUE7SUFDcEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQzt1R0F6T1Usa0JBQWtCOzJGQUFsQixrQkFBa0IsMFlBTmxCLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDakQsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLDBCQU5RLEVBQUU7O1NBUUQsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBVjlCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLEVBQUUsYUFFRCxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO3NIQUlRLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQXlITyxPQUFPO3NCQUFuQixLQUFLO2dCQVNPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBU08sS0FBSztzQkFBakIsS0FBSztnQkFTTyxJQUFJO3NCQUFoQixLQUFLO2dCQWtCRixLQUFLO3NCQURSLEtBQUs7Z0JBNEJGLElBQUk7c0JBRFAsS0FBSztnQkFpQk8saUJBQWlCO3NCQUE3QixLQUFLO2dCQVFPLHNCQUFzQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCAnYnJhY2UnXG5pbXBvcnQgJ2JyYWNlL3RoZW1lL21vbm9rYWknXG5pbXBvcnQgeyBBY2UgfSBmcm9tICdhY2UtYnVpbGRzJztcbmltcG9ydCBDb21wbGV0aW9uID0gQWNlLkNvbXBsZXRpb247XG5cbmRlY2xhcmUgbGV0IGFjZTogYW55XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjZS1lZGl0b3InLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogWydhY2UtZWRpdG9yLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFjZUVkaXRvckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgQWNlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAT3V0cHV0KCkgdGV4dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHRleHRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGJlZm9yZURyb3BFdmVudDogRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IERyYWdFdmVudCwgZHJhZ2dlZFRleHQ6IHN0cmluZyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBldmVudDogRHJhZ0V2ZW50LCBkcmFnZ2VkVGV4dDogc3RyaW5nIH0+KClcbiAgQE91dHB1dCgpIGFmdGVyRHJvcEV2ZW50OiBFdmVudEVtaXR0ZXI8eyBldmVudDogRHJhZ0V2ZW50LCBkcmFnZ2VkVGV4dDogc3RyaW5nIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGV2ZW50OiBEcmFnRXZlbnQsIGRyYWdnZWRUZXh0OiBzdHJpbmcgfT4oKVxuICBASW5wdXQoKSBzdHlsZTogYW55ID0ge31cblxuICBfb3B0aW9uczogYW55ID0ge31cbiAgX3JlYWRPbmx5OiBmYWxzZSA9IGZhbHNlXG4gIF90aGVtZSA9ICdtb25va2FpJ1xuICBfbW9kZSA9ICdodG1sJ1xuICBfYXV0b1VwZGF0ZUNvbnRlbnQgPSB0cnVlXG4gIF9lZGl0b3I6IGFueVxuICBfZHVyYXRpb25CZWZvcmVDYWxsYmFjayA9IDBcbiAgX3RleHQgPSAnJ1xuXG4gIG9sZFRleHQ6IGFueVxuICB0aW1lb3V0U2F2aW5nOiBhbnlcblxuICBwdWJsaWMgZHJhZ2dlZFRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yIChlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSkge1xuICAgIGNvbnN0IGVsID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2VkaXRvciA9IGFjZS5lZGl0KGVsKVxuICAgIH0pXG4gICAgdGhpcy5fZWRpdG9yLiRibG9ja1Njcm9sbGluZyA9IEluZmluaXR5XG5cbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmJlZm9yZURyb3BFdmVudC5lbWl0KHsgZXZlbnQsIGRyYWdnZWRUZXh0OiB0aGlzLmRyYWdnZWRUZXh0IH0pXG4gICAgICAgIGlmICh0aGlzLmRyYWdnZWRUZXh0KSB7XG4gICAgICAgICAgY29uc3QgZHJvcFBvc2l0aW9uID0gdGhpcy5nZXRFZGl0b3IoKS5yZW5kZXJlci5zY3JlZW5Ub1RleHRDb29yZGluYXRlcyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgICB0aGlzLmdldEVkaXRvcigpLnNlc3Npb24uaW5zZXJ0KGRyb3BQb3NpdGlvbiwgdGhpcy5kcmFnZ2VkVGV4dCk7XG4gICAgICAgICAgdGhpcy5kcmFnZ2VkVGV4dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFmdGVyRHJvcEV2ZW50LmVtaXQoeyBldmVudCwgZHJhZ2dlZFRleHQ6IHRoaXMuZHJhZ2dlZFRleHQgfSlcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0KClcbiAgICB0aGlzLmluaXRFdmVudHMoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3kgKCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRvci5kZXN0cm95KClcbiAgfVxuXG4gIGluaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRvci5zZXRLZXlib2FyZEhhbmRsZXIoJ2FjZS9rZXlib2FyZC92c2NvZGUnKVxuICAgIHRoaXMuc2V0T3B0aW9ucyh7XG4gICAgICBlbmFibGVCYXNpY0F1dG9jb21wbGV0aW9uOiB0cnVlLFxuICAgICAgYXV0b1Njcm9sbEVkaXRvckludG9WaWV3OiB0cnVlLFxuICAgICAgZW5hYmxlTGl2ZUF1dG9jb21wbGV0aW9uOiB0cnVlXG4gICAgfSlcbiAgICB0aGlzLnNldFRoZW1lKHRoaXMuX3RoZW1lKVxuICAgIHRoaXMuc2V0TW9kZSh0aGlzLl9tb2RlKVxuICAgIHRoaXMuc2V0UmVhZE9ubHkodGhpcy5fcmVhZE9ubHkpXG4gICAgY29uc3QgY29tcGxldGVySW5kZXggPSB0aGlzLl9lZGl0b3IuY29tcGxldGVycy5maW5kSW5kZXgoKGNvbXBsZXRlcjogeyBpZDogc3RyaW5nIH0pID0+IGNvbXBsZXRlci5pZCA9PT0gJ2FwaXBhc3MtY29tcGxldGlvbnMnKVxuICAgIGlmIChjb21wbGV0ZXJJbmRleCA+IC0xKSB7IC8vIG9ubHkgc3BsaWNlIGFycmF5IHdoZW4gaXRlbSBpcyBmb3VuZFxuICAgICAgdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMuc3BsaWNlKGNvbXBsZXRlckluZGV4LCAxKTsgLy8gMm5kIHBhcmFtZXRlciBtZWFucyByZW1vdmUgb25lIGl0ZW0gb25seVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXN0b21Db21wbGV0aW9ucyhjdXN0b21Db21wbGV0aW9uczogQ29tcGxldGlvbltdKTogdm9pZCB7XG4gICAgY29uc3QgY29tcGxldGVyID0gdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMuZmluZCgoY29tcGxldGVyOiB7IGlkOiBzdHJpbmcgfSkgPT4gY29tcGxldGVyLmlkID09PSAnYXBpcGFzcy1jb21wbGV0aW9ucycpXG4gICAgaWYgKCFjb21wbGV0ZXIpIHtcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyh7XG4gICAgICAgIGVuYWJsZUJhc2ljQXV0b2NvbXBsZXRpb246IHRydWUsXG4gICAgICAgIGF1dG9TY3JvbGxFZGl0b3JJbnRvVmlldzogdHJ1ZSxcbiAgICAgICAgZW5hYmxlTGl2ZUF1dG9jb21wbGV0aW9uOiB0cnVlXG4gICAgICB9KVxuICAgICAgdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMucHVzaCh7XG4gICAgICAgIGlkOiAnYXBpcGFzcy1jb21wbGV0aW9ucycsXG4gICAgICAgIGdldENvbXBsZXRpb25zOiBmdW5jdGlvbihlZGl0b3IsIHNlc3Npb24sIHBvcywgcHJlZml4LCBjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGN1c3RvbUNvbXBsZXRpb25zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBsZXRlci5nZXRDb21wbGV0aW9ucyA9IChlZGl0b3IsIHNlc3Npb24sIHBvcywgcHJlZml4LCBjYWxsYmFjaykgPT4ge1xuICAgICAgICBjYWxsYmFjayhudWxsLCBjdXN0b21Db21wbGV0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5pdEV2ZW50cyAoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVRleHQoKVxuICAgIH0pXG4gICAgdGhpcy5fZWRpdG9yLm9uKCdwYXN0ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVGV4dCgpXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZVRleHQgKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpXG4gICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy5vbGRUZXh0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kdXJhdGlvbkJlZm9yZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLl90ZXh0ID0gbmV3VmFsXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy50ZXh0Q2hhbmdlLmVtaXQobmV3VmFsKVxuICAgICAgICB0aGlzLnRleHRDaGFuZ2VkLmVtaXQobmV3VmFsKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX29uQ2hhbmdlKG5ld1ZhbClcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudGltZW91dFNhdmluZykge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0U2F2aW5nKVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRpbWVvdXRTYXZpbmcgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fdGV4dCA9IG5ld1ZhbFxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRleHRDaGFuZ2UuZW1pdChuZXdWYWwpXG4gICAgICAgICAgdGhpcy50ZXh0Q2hhbmdlZC5lbWl0KG5ld1ZhbClcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy50aW1lb3V0U2F2aW5nID0gbnVsbFxuICAgICAgfSwgdGhpcy5fZHVyYXRpb25CZWZvcmVDYWxsYmFjaylcbiAgICB9XG4gICAgdGhpcy5vbGRUZXh0ID0gbmV3VmFsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgb3B0aW9ucyAob3B0aW9uczogYW55KSB7XG4gICAgdGhpcy5zZXRPcHRpb25zKG9wdGlvbnMpXG4gIH1cblxuICBzZXRPcHRpb25zIChvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMuX2VkaXRvci5zZXRPcHRpb25zKG9wdGlvbnMgfHwge30pXG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVhZE9ubHkgKHJlYWRPbmx5OiBhbnkpIHtcbiAgICB0aGlzLnNldFJlYWRPbmx5KHJlYWRPbmx5KVxuICB9XG5cbiAgc2V0UmVhZE9ubHkgKHJlYWRPbmx5OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWFkT25seSA9IHJlYWRPbmx5XG4gICAgdGhpcy5fZWRpdG9yLnNldFJlYWRPbmx5KHJlYWRPbmx5KVxuICB9XG5cbiAgQElucHV0KCkgc2V0IHRoZW1lICh0aGVtZTogYW55KSB7XG4gICAgdGhpcy5zZXRUaGVtZSh0aGVtZSlcbiAgfVxuXG4gIHNldFRoZW1lICh0aGVtZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fdGhlbWUgPSB0aGVtZVxuICAgIHRoaXMuX2VkaXRvci5zZXRUaGVtZShgYWNlL3RoZW1lLyR7dGhlbWV9YClcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtb2RlIChtb2RlOiBhbnkpIHtcbiAgICB0aGlzLnNldE1vZGUobW9kZSlcbiAgfVxuXG4gIHNldE1vZGUgKG1vZGU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX21vZGUgPSBtb2RlXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9tb2RlID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy5fZWRpdG9yLmdldFNlc3Npb24oKS5zZXRNb2RlKHRoaXMuX21vZGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VkaXRvci5nZXRTZXNzaW9uKCkuc2V0TW9kZShgYWNlL21vZGUvJHt0aGlzLl9tb2RlfWApXG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRleHRcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0VGV4dCh2YWx1ZSlcbiAgfVxuXG4gIHdyaXRlVmFsdWUgKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNldFRleHQodmFsdWUpXG4gIH1cblxuICBwcml2YXRlIF9vbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UgKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuXG4gIH1cblxuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZCAoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICBnZXQgdGV4dCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dFxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHRleHQgKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuc2V0VGV4dCh0ZXh0KVxuICB9XG5cbiAgc2V0VGV4dCAodGV4dDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRleHQgPT09IG51bGwgfHwgdGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0ZXh0ID0gJydcbiAgICB9XG4gICAgaWYgKHRoaXMuX3RleHQgIT09IHRleHQgJiYgdGhpcy5fYXV0b1VwZGF0ZUNvbnRlbnQpIHtcbiAgICAgIHRoaXMuX3RleHQgPSB0ZXh0XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGV4dClcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRleHQpXG4gICAgICB0aGlzLl9lZGl0b3IuY2xlYXJTZWxlY3Rpb24oKVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhdXRvVXBkYXRlQ29udGVudCAoc3RhdHVzOiBhbnkpIHtcbiAgICB0aGlzLnNldEF1dG9VcGRhdGVDb250ZW50KHN0YXR1cylcbiAgfVxuXG4gIHNldEF1dG9VcGRhdGVDb250ZW50IChzdGF0dXM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX2F1dG9VcGRhdGVDb250ZW50ID0gc3RhdHVzXG4gIH1cblxuICBASW5wdXQoKSBzZXQgZHVyYXRpb25CZWZvcmVDYWxsYmFjayAobnVtOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldER1cmF0aW9uQmVmb3JlQ2FsbGJhY2sobnVtKVxuICB9XG5cbiAgc2V0RHVyYXRpb25CZWZvcmVDYWxsYmFjayAobnVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9kdXJhdGlvbkJlZm9yZUNhbGxiYWNrID0gbnVtXG4gIH1cblxuICBnZXRFZGl0b3IgKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvclxuICB9XG5cbn1cbiJdfQ==
@@ -1053,6 +1053,8 @@ class AceEditorComponent {
1053
1053
  zone;
1054
1054
  textChanged = new EventEmitter();
1055
1055
  textChange = new EventEmitter();
1056
+ beforeDropEvent = new EventEmitter();
1057
+ afterDropEvent = new EventEmitter();
1056
1058
  style = {};
1057
1059
  _options = {};
1058
1060
  _readOnly = false;
@@ -1064,6 +1066,7 @@ class AceEditorComponent {
1064
1066
  _text = '';
1065
1067
  oldText;
1066
1068
  timeoutSaving;
1069
+ draggedText = '';
1067
1070
  constructor(elementRef, zone) {
1068
1071
  this.zone = zone;
1069
1072
  const el = elementRef.nativeElement;
@@ -1071,6 +1074,18 @@ class AceEditorComponent {
1071
1074
  this._editor = ace.edit(el);
1072
1075
  });
1073
1076
  this._editor.$blockScrolling = Infinity;
1077
+ el.addEventListener('drop', (event) => {
1078
+ setTimeout(() => {
1079
+ event.preventDefault();
1080
+ this.beforeDropEvent.emit({ event, draggedText: this.draggedText });
1081
+ if (this.draggedText) {
1082
+ const dropPosition = this.getEditor().renderer.screenToTextCoordinates(event.clientX, event.clientY);
1083
+ this.getEditor().session.insert(dropPosition, this.draggedText);
1084
+ this.draggedText = undefined;
1085
+ }
1086
+ this.afterDropEvent.emit({ event, draggedText: this.draggedText });
1087
+ });
1088
+ });
1074
1089
  }
1075
1090
  ngOnInit() {
1076
1091
  this.init();
@@ -1236,7 +1251,7 @@ class AceEditorComponent {
1236
1251
  return this._editor;
1237
1252
  }
1238
1253
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: AceEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1239
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AceEditorComponent, selector: "ace-editor", inputs: { style: "style", options: "options", readOnly: "readOnly", theme: "theme", mode: "mode", value: "value", text: "text", autoUpdateContent: "autoUpdateContent", durationBeforeCallback: "durationBeforeCallback" }, outputs: { textChanged: "textChanged", textChange: "textChange" }, providers: [{
1254
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: AceEditorComponent, selector: "ace-editor", inputs: { style: "style", options: "options", readOnly: "readOnly", theme: "theme", mode: "mode", value: "value", text: "text", autoUpdateContent: "autoUpdateContent", durationBeforeCallback: "durationBeforeCallback" }, outputs: { textChanged: "textChanged", textChange: "textChange", beforeDropEvent: "beforeDropEvent", afterDropEvent: "afterDropEvent" }, providers: [{
1240
1255
  provide: NG_VALUE_ACCESSOR,
1241
1256
  useExisting: forwardRef(() => AceEditorComponent),
1242
1257
  multi: true
@@ -1253,6 +1268,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1253
1268
  type: Output
1254
1269
  }], textChange: [{
1255
1270
  type: Output
1271
+ }], beforeDropEvent: [{
1272
+ type: Output
1273
+ }], afterDropEvent: [{
1274
+ type: Output
1256
1275
  }], style: [{
1257
1276
  type: Input
1258
1277
  }], options: [{