@apipass/inputs 1.0.148 → 1.0.150

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.
@@ -20,13 +20,11 @@ export declare class AceEditorComponent implements ControlValueAccessor, OnInit,
20
20
  _text: string;
21
21
  oldText: any;
22
22
  timeoutSaving: any;
23
- private _customCompletions;
24
23
  constructor(elementRef: ElementRef, zone: NgZone);
25
24
  ngOnInit(): void;
26
25
  ngOnDestroy(): void;
27
26
  init(): void;
28
- private createCustomCompletions;
29
- set customCompletions(customCompletions: Completion[]);
27
+ setCustomCompletions(customCompletions: Completion[]): void;
30
28
  initEvents(): void;
31
29
  updateText(): void;
32
30
  set options(options: any);
@@ -18,7 +18,6 @@ class AceEditorComponent {
18
18
  _text = '';
19
19
  oldText;
20
20
  timeoutSaving;
21
- _customCompletions = [];
22
21
  constructor(elementRef, zone) {
23
22
  this.zone = zone;
24
23
  const el = elementRef.nativeElement;
@@ -44,17 +43,31 @@ class AceEditorComponent {
44
43
  this.setTheme(this._theme);
45
44
  this.setMode(this._mode);
46
45
  this.setReadOnly(this._readOnly);
47
- this.createCustomCompletions(this._customCompletions);
46
+ const completerIndex = this._editor.completers.findIndex((completer) => completer.id === 'apipass-completions');
47
+ if (completerIndex > -1) { // only splice array when item is found
48
+ this._editor.completers.splice(completerIndex, 1); // 2nd parameter means remove one item only
49
+ }
48
50
  }
49
- createCustomCompletions(customCompletions) {
50
- this._editor.completers.push({
51
- getCompletions: function (editor, session, pos, prefix, callback) {
51
+ setCustomCompletions(customCompletions) {
52
+ const completer = this._editor.completers.find((completer) => completer.id === 'apipass-completions');
53
+ if (!completer) {
54
+ this.setOptions({
55
+ enableBasicAutocompletion: true,
56
+ autoScrollEditorIntoView: true,
57
+ enableLiveAutocompletion: true
58
+ });
59
+ this._editor.completers.push({
60
+ id: 'apipass-completions',
61
+ getCompletions: function (editor, session, pos, prefix, callback) {
62
+ callback(null, customCompletions);
63
+ }
64
+ });
65
+ }
66
+ else {
67
+ completer.getCompletions = (editor, session, pos, prefix, callback) => {
52
68
  callback(null, customCompletions);
53
- }
54
- });
55
- }
56
- set customCompletions(customCompletions) {
57
- this._customCompletions = customCompletions;
69
+ };
70
+ }
58
71
  }
59
72
  initEvents() {
60
73
  this._editor.on('change', () => {
@@ -214,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
214
227
  }], durationBeforeCallback: [{
215
228
  type: Input
216
229
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9hY2UtZWRpdG9yL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLE9BQU8sQ0FBQTtBQUNkLE9BQU8scUJBQXFCLENBQUE7O0FBTTVCLE1BVWEsa0JBQWtCO0lBb0J5QjtJQWxCNUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsS0FBSyxHQUFRLEVBQUUsQ0FBQTtJQUV4QixRQUFRLEdBQVEsRUFBRSxDQUFBO0lBQ2xCLFNBQVMsR0FBVSxLQUFLLENBQUE7SUFDeEIsTUFBTSxHQUFHLFNBQVMsQ0FBQTtJQUNsQixLQUFLLEdBQUcsTUFBTSxDQUFBO0lBQ2Qsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLE9BQU8sQ0FBSztJQUNaLHVCQUF1QixHQUFHLENBQUMsQ0FBQTtJQUMzQixLQUFLLEdBQUcsRUFBRSxDQUFBO0lBRVYsT0FBTyxDQUFLO0lBQ1osYUFBYSxDQUFLO0lBRVYsa0JBQWtCLEdBQWlCLEVBQUUsQ0FBQTtJQUU3QyxZQUFhLFVBQXNCLEVBQW1CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUE7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsSUFBSSxD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RUFBRSxhQUVELENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7c0hBSVEsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFnR08sT0FBTztzQkFBbkIsS0FBSztnQkFTTyxRQUFRO3NCQUFwQixLQUFLO2dCQVNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU08sSUFBSTtzQkFBaEIsS0FBSztnQkFrQkYsS0FBSztzQkFEUixLQUFLO2dCQTRCRixJQUFJO3NCQURQLEtBQUs7Z0JBaUJPLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFRTyxzQkFBc0I7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgJ2JyYWNlJ1xuaW1wb3J0ICdicmFjZS90aGVtZS9tb25va2FpJ1xuaW1wb3J0IHsgQWNlIH0gZnJvbSAnYWNlLWJ1aWxkcyc7XG5pbXBvcnQgQ29tcGxldGlvbiA9IEFjZS5Db21wbGV0aW9uO1xuXG5kZWNsYXJlIGxldCBhY2U6IGFueVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2UtZWRpdG9yJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7IH0nXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFjZUVkaXRvckNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgQWNlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAT3V0cHV0KCkgdGV4dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHRleHRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQElucHV0KCkgc3R5bGU6IGFueSA9IHt9XG5cbiAgX29wdGlvbnM6IGFueSA9IHt9XG4gIF9yZWFkT25seTogZmFsc2UgPSBmYWxzZVxuICBfdGhlbWUgPSAnbW9ub2thaSdcbiAgX21vZGUgPSAnaHRtbCdcbiAgX2F1dG9VcGRhdGVDb250ZW50ID0gdHJ1ZVxuICBfZWRpdG9yOiBhbnlcbiAgX2R1cmF0aW9uQmVmb3JlQ2FsbGJhY2sgPSAwXG4gIF90ZXh0ID0gJydcblxuICBvbGRUZXh0OiBhbnlcbiAgdGltZW91dFNhdmluZzogYW55XG5cbiAgcHJpdmF0ZSBfY3VzdG9tQ29tcGxldGlvbnM6IENvbXBsZXRpb25bXSA9IFtdXG5cbiAgY29uc3RydWN0b3IgKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lKSB7XG4gICAgY29uc3QgZWwgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fZWRpdG9yID0gYWNlLmVkaXQoZWwpXG4gICAgfSlcbiAgICB0aGlzLl9lZGl0b3IuJGJsb2NrU2Nyb2xsaW5nID0gSW5maW5pdHlcbiAgfVxuXG4gIG5nT25Jbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXQoKVxuICAgIHRoaXMuaW5pdEV2ZW50cygpXG4gIH1cblxuICBuZ09uRGVzdHJveSAoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yLmRlc3Ryb3koKVxuICB9XG5cbiAgaW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yLnNldEtleWJvYXJkSGFuZGxlcignYWNlL2tleWJvYXJkL3ZzY29kZScpXG4gICAgdGhpcy5zZXRPcHRpb25zKHtcbiAgICAgIGVuYWJsZUJhc2ljQXV0b2NvbXBsZXRpb246IHRydWUsXG4gICAgICBhdXRvU2Nyb2xsRWRpdG9ySW50b1ZpZXc6IHRydWUsXG4gICAgICBlbmFibGVMaXZlQXV0b2NvbXBsZXRpb246IHRydWVcbiAgICB9KVxuICAgIHRoaXMuc2V0VGhlbWUodGhpcy5fdGhlbWUpXG4gICAgdGhpcy5zZXRNb2RlKHRoaXMuX21vZGUpXG4gICAgdGhpcy5zZXRSZWFkT25seSh0aGlzLl9yZWFkT25seSlcbiAgICB0aGlzLmNyZWF0ZUN1c3RvbUNvbXBsZXRpb25zKHRoaXMuX2N1c3RvbUNvbXBsZXRpb25zKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDdXN0b21Db21wbGV0aW9ucyhjdXN0b21Db21wbGV0aW9uczogQ29tcGxldGlvbltdKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMucHVzaCh7XG4gICAgICBnZXRDb21wbGV0aW9uczogZnVuY3Rpb24oZWRpdG9yLCBzZXNzaW9uLCBwb3MsIHByZWZpeCwgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sobnVsbCwgY3VzdG9tQ29tcGxldGlvbnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0IGN1c3RvbUNvbXBsZXRpb25zKGN1c3RvbUNvbXBsZXRpb25zOiBDb21wbGV0aW9uW10pIHtcbiAgICB0aGlzLl9jdXN0b21Db21wbGV0aW9ucyA9IGN1c3RvbUNvbXBsZXRpb25zXG4gIH1cblxuICBpbml0RXZlbnRzICgpOiB2b2lkIHtcbiAgICB0aGlzLl9lZGl0b3Iub24oJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVGV4dCgpXG4gICAgfSlcbiAgICB0aGlzLl9lZGl0b3Iub24oJ3Bhc3RlJywgKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVUZXh0KClcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlVGV4dCAoKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKClcbiAgICBpZiAobmV3VmFsID09PSB0aGlzLm9sZFRleHQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoIXRoaXMuX2R1cmF0aW9uQmVmb3JlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMuX3RleHQgPSBuZXdWYWxcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnRleHRDaGFuZ2UuZW1pdChuZXdWYWwpXG4gICAgICAgIHRoaXMudGV4dENoYW5nZWQuZW1pdChuZXdWYWwpXG4gICAgICB9KVxuICAgICAgdGhpcy5fb25DaGFuZ2UobmV3VmFsKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy50aW1lb3V0U2F2aW5nKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRTYXZpbmcpXG4gICAgICB9XG5cbiAgICAgIHRoaXMudGltZW91dFNhdmluZyA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLl90ZXh0ID0gbmV3VmFsXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMudGV4dENoYW5nZS5lbWl0KG5ld1ZhbClcbiAgICAgICAgICB0aGlzLnRleHRDaGFuZ2VkLmVtaXQobmV3VmFsKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnRpbWVvdXRTYXZpbmcgPSBudWxsXG4gICAgICB9LCB0aGlzLl9kdXJhdGlvbkJlZm9yZUNhbGxiYWNrKVxuICAgIH1cbiAgICB0aGlzLm9sZFRleHQgPSBuZXdWYWxcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvcHRpb25zIChvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLnNldE9wdGlvbnMob3B0aW9ucylcbiAgfVxuXG4gIHNldE9wdGlvbnMgKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zXG4gICAgdGhpcy5fZWRpdG9yLnNldE9wdGlvbnMob3B0aW9ucyB8fCB7fSlcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZWFkT25seSAocmVhZE9ubHk6IGFueSkge1xuICAgIHRoaXMuc2V0UmVhZE9ubHkocmVhZE9ubHkpXG4gIH1cblxuICBzZXRSZWFkT25seSAocmVhZE9ubHk6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3JlYWRPbmx5ID0gcmVhZE9ubHlcbiAgICB0aGlzLl9lZGl0b3Iuc2V0UmVhZE9ubHkocmVhZE9ubHkpXG4gIH1cblxuICBASW5wdXQoKSBzZXQgdGhlbWUgKHRoZW1lOiBhbnkpIHtcbiAgICB0aGlzLnNldFRoZW1lKHRoZW1lKVxuICB9XG5cbiAgc2V0VGhlbWUgKHRoZW1lOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl90aGVtZSA9IHRoZW1lXG4gICAgdGhpcy5fZWRpdG9yLnNldFRoZW1lKGBhY2UvdGhlbWUvJHt0aGVtZX1gKVxuICB9XG5cbiAgQElucHV0KCkgc2V0IG1vZGUgKG1vZGU6IGFueSkge1xuICAgIHRoaXMuc2V0TW9kZShtb2RlKVxuICB9XG5cbiAgc2V0TW9kZSAobW9kZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fbW9kZSA9IG1vZGVcbiAgICBpZiAodHlwZW9mIHRoaXMuX21vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZ2V0U2Vzc2lvbigpLnNldE1vZGUodGhpcy5fbW9kZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWRpdG9yLmdldFNlc3Npb24oKS5zZXRNb2RlKGBhY2UvbW9kZS8ke3RoaXMuX21vZGV9YClcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUgKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGV4dFxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlICh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRUZXh0KHZhbHVlKVxuICB9XG5cbiAgd3JpdGVWYWx1ZSAodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2V0VGV4dCh2YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSk6IHZvaWQgPT4ge1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZSAoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm5cbiAgfVxuXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkIChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIGdldCB0ZXh0ICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90ZXh0XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgdGV4dCAodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRUZXh0KHRleHQpXG4gIH1cblxuICBzZXRUZXh0ICh0ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGV4dCA9PT0gbnVsbCB8fCB0ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRleHQgPSAnJ1xuICAgIH1cbiAgICBpZiAodGhpcy5fdGV4dCAhPT0gdGV4dCAmJiB0aGlzLl9hdXRvVXBkYXRlQ29udGVudCkge1xuICAgICAgdGhpcy5fdGV4dCA9IHRleHRcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0ZXh0KVxuICAgICAgdGhpcy5fb25DaGFuZ2UodGV4dClcbiAgICAgIHRoaXMuX2VkaXRvci5jbGVhclNlbGVjdGlvbigpXG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgc2V0IGF1dG9VcGRhdGVDb250ZW50IChzdGF0dXM6IGFueSkge1xuICAgIHRoaXMuc2V0QXV0b1VwZGF0ZUNvbnRlbnQoc3RhdHVzKVxuICB9XG5cbiAgc2V0QXV0b1VwZGF0ZUNvbnRlbnQgKHN0YXR1czogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fYXV0b1VwZGF0ZUNvbnRlbnQgPSBzdGF0dXNcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkdXJhdGlvbkJlZm9yZUNhbGxiYWNrIChudW06IG51bWJlcikge1xuICAgIHRoaXMuc2V0RHVyYXRpb25CZWZvcmVDYWxsYmFjayhudW0pXG4gIH1cblxuICBzZXREdXJhdGlvbkJlZm9yZUNhbGxiYWNrIChudW06IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2R1cmF0aW9uQmVmb3JlQ2FsbGJhY2sgPSBudW1cbiAgfVxuXG4gIGdldEVkaXRvciAoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yXG4gIH1cblxufVxuIl19
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9hY2UtZWRpdG9yL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLE9BQU8sQ0FBQTtBQUNkLE9BQU8scUJBQXFCLENBQUE7O0FBTTVCLE1BVWEsa0JBQWtCO0lBa0J5QjtJQWhCNUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDaEMsS0FBSyxHQUFRLEVBQUUsQ0FBQTtJQUV4QixRQUFRLEdBQVEsRUFBRSxDQUFBO0lBQ2xCLFNBQVMsR0FBVSxLQUFLLENBQUE7SUFDeEIsTUFBTSxHQUFHLFNBQVMsQ0FBQTtJQUNsQixLQUFLLEdBQUcsTUFBTSxDQUFBO0lBQ2Qsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLE9BQU8sQ0FBSztJQUNaLHVCQUF1QixHQUFHLENBQUMsQ0FBQTtJQUMzQixLQUFLLEdBQUcsRUFBRSxDQUFBO0lBRVYsT0FBTyxDQUFLO0lBQ1osYUFBYSxDQUFLO0lBRWxCLFlBQWEsVUFBc0IsRUFBbUIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDN0IsQ0FB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UU8sc0JBQXNCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0ICdicmFjZSdcbmltcG9ydCAnYnJhY2UvdGhlbWUvbW9ub2thaSdcbmltcG9ydCB7IEFjZSB9IGZyb20gJ2FjZS1idWlsZHMnO1xuaW1wb3J0IENvbXBsZXRpb24gPSBBY2UuQ29tcGxldGlvbjtcblxuZGVjbGFyZSBsZXQgYWNlOiBhbnlcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNlLWVkaXRvcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTpibG9jazt3aWR0aDoxMDAlOyB9J10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBY2VFZGl0b3JDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIEFjZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQE91dHB1dCgpIHRleHRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB0ZXh0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBJbnB1dCgpIHN0eWxlOiBhbnkgPSB7fVxuXG4gIF9vcHRpb25zOiBhbnkgPSB7fVxuICBfcmVhZE9ubHk6IGZhbHNlID0gZmFsc2VcbiAgX3RoZW1lID0gJ21vbm9rYWknXG4gIF9tb2RlID0gJ2h0bWwnXG4gIF9hdXRvVXBkYXRlQ29udGVudCA9IHRydWVcbiAgX2VkaXRvcjogYW55XG4gIF9kdXJhdGlvbkJlZm9yZUNhbGxiYWNrID0gMFxuICBfdGV4dCA9ICcnXG5cbiAgb2xkVGV4dDogYW55XG4gIHRpbWVvdXRTYXZpbmc6IGFueVxuXG4gIGNvbnN0cnVjdG9yIChlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSkge1xuICAgIGNvbnN0IGVsID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2VkaXRvciA9IGFjZS5lZGl0KGVsKVxuICAgIH0pXG4gICAgdGhpcy5fZWRpdG9yLiRibG9ja1Njcm9sbGluZyA9IEluZmluaXR5XG4gIH1cblxuICBuZ09uSW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0KClcbiAgICB0aGlzLmluaXRFdmVudHMoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3kgKCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRvci5kZXN0cm95KClcbiAgfVxuXG4gIGluaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRvci5zZXRLZXlib2FyZEhhbmRsZXIoJ2FjZS9rZXlib2FyZC92c2NvZGUnKVxuICAgIHRoaXMuc2V0T3B0aW9ucyh7XG4gICAgICBlbmFibGVCYXNpY0F1dG9jb21wbGV0aW9uOiB0cnVlLFxuICAgICAgYXV0b1Njcm9sbEVkaXRvckludG9WaWV3OiB0cnVlLFxuICAgICAgZW5hYmxlTGl2ZUF1dG9jb21wbGV0aW9uOiB0cnVlXG4gICAgfSlcbiAgICB0aGlzLnNldFRoZW1lKHRoaXMuX3RoZW1lKVxuICAgIHRoaXMuc2V0TW9kZSh0aGlzLl9tb2RlKVxuICAgIHRoaXMuc2V0UmVhZE9ubHkodGhpcy5fcmVhZE9ubHkpXG4gICAgY29uc3QgY29tcGxldGVySW5kZXggPSB0aGlzLl9lZGl0b3IuY29tcGxldGVycy5maW5kSW5kZXgoKGNvbXBsZXRlcjogeyBpZDogc3RyaW5nIH0pID0+IGNvbXBsZXRlci5pZCA9PT0gJ2FwaXBhc3MtY29tcGxldGlvbnMnKVxuICAgIGlmIChjb21wbGV0ZXJJbmRleCA+IC0xKSB7IC8vIG9ubHkgc3BsaWNlIGFycmF5IHdoZW4gaXRlbSBpcyBmb3VuZFxuICAgICAgdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMuc3BsaWNlKGNvbXBsZXRlckluZGV4LCAxKTsgLy8gMm5kIHBhcmFtZXRlciBtZWFucyByZW1vdmUgb25lIGl0ZW0gb25seVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXN0b21Db21wbGV0aW9ucyhjdXN0b21Db21wbGV0aW9uczogQ29tcGxldGlvbltdKTogdm9pZCB7XG4gICAgY29uc3QgY29tcGxldGVyID0gdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMuZmluZCgoY29tcGxldGVyOiB7IGlkOiBzdHJpbmcgfSkgPT4gY29tcGxldGVyLmlkID09PSAnYXBpcGFzcy1jb21wbGV0aW9ucycpXG4gICAgaWYgKCFjb21wbGV0ZXIpIHtcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyh7XG4gICAgICAgIGVuYWJsZUJhc2ljQXV0b2NvbXBsZXRpb246IHRydWUsXG4gICAgICAgIGF1dG9TY3JvbGxFZGl0b3JJbnRvVmlldzogdHJ1ZSxcbiAgICAgICAgZW5hYmxlTGl2ZUF1dG9jb21wbGV0aW9uOiB0cnVlXG4gICAgICB9KVxuICAgICAgdGhpcy5fZWRpdG9yLmNvbXBsZXRlcnMucHVzaCh7XG4gICAgICAgIGlkOiAnYXBpcGFzcy1jb21wbGV0aW9ucycsXG4gICAgICAgIGdldENvbXBsZXRpb25zOiBmdW5jdGlvbihlZGl0b3IsIHNlc3Npb24sIHBvcywgcHJlZml4LCBjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGN1c3RvbUNvbXBsZXRpb25zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBsZXRlci5nZXRDb21wbGV0aW9ucyA9IChlZGl0b3IsIHNlc3Npb24sIHBvcywgcHJlZml4LCBjYWxsYmFjaykgPT4ge1xuICAgICAgICBjYWxsYmFjayhudWxsLCBjdXN0b21Db21wbGV0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5pdEV2ZW50cyAoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVRleHQoKVxuICAgIH0pXG4gICAgdGhpcy5fZWRpdG9yLm9uKCdwYXN0ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVGV4dCgpXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZVRleHQgKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbCA9IHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpXG4gICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy5vbGRUZXh0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kdXJhdGlvbkJlZm9yZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLl90ZXh0ID0gbmV3VmFsXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy50ZXh0Q2hhbmdlLmVtaXQobmV3VmFsKVxuICAgICAgICB0aGlzLnRleHRDaGFuZ2VkLmVtaXQobmV3VmFsKVxuICAgICAgfSlcbiAgICAgIHRoaXMuX29uQ2hhbmdlKG5ld1ZhbClcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudGltZW91dFNhdmluZykge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0U2F2aW5nKVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRpbWVvdXRTYXZpbmcgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fdGV4dCA9IG5ld1ZhbFxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRleHRDaGFuZ2UuZW1pdChuZXdWYWwpXG4gICAgICAgICAgdGhpcy50ZXh0Q2hhbmdlZC5lbWl0KG5ld1ZhbClcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy50aW1lb3V0U2F2aW5nID0gbnVsbFxuICAgICAgfSwgdGhpcy5fZHVyYXRpb25CZWZvcmVDYWxsYmFjaylcbiAgICB9XG4gICAgdGhpcy5vbGRUZXh0ID0gbmV3VmFsXG4gIH1cblxuICBASW5wdXQoKSBzZXQgb3B0aW9ucyAob3B0aW9uczogYW55KSB7XG4gICAgdGhpcy5zZXRPcHRpb25zKG9wdGlvbnMpXG4gIH1cblxuICBzZXRPcHRpb25zIChvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMuX2VkaXRvci5zZXRPcHRpb25zKG9wdGlvbnMgfHwge30pXG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVhZE9ubHkgKHJlYWRPbmx5OiBhbnkpIHtcbiAgICB0aGlzLnNldFJlYWRPbmx5KHJlYWRPbmx5KVxuICB9XG5cbiAgc2V0UmVhZE9ubHkgKHJlYWRPbmx5OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWFkT25seSA9IHJlYWRPbmx5XG4gICAgdGhpcy5fZWRpdG9yLnNldFJlYWRPbmx5KHJlYWRPbmx5KVxuICB9XG5cbiAgQElucHV0KCkgc2V0IHRoZW1lICh0aGVtZTogYW55KSB7XG4gICAgdGhpcy5zZXRUaGVtZSh0aGVtZSlcbiAgfVxuXG4gIHNldFRoZW1lICh0aGVtZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fdGhlbWUgPSB0aGVtZVxuICAgIHRoaXMuX2VkaXRvci5zZXRUaGVtZShgYWNlL3RoZW1lLyR7dGhlbWV9YClcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtb2RlIChtb2RlOiBhbnkpIHtcbiAgICB0aGlzLnNldE1vZGUobW9kZSlcbiAgfVxuXG4gIHNldE1vZGUgKG1vZGU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX21vZGUgPSBtb2RlXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9tb2RlID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy5fZWRpdG9yLmdldFNlc3Npb24oKS5zZXRNb2RlKHRoaXMuX21vZGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VkaXRvci5nZXRTZXNzaW9uKCkuc2V0TW9kZShgYWNlL21vZGUvJHt0aGlzLl9tb2RlfWApXG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRleHRcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2V0VGV4dCh2YWx1ZSlcbiAgfVxuXG4gIHdyaXRlVmFsdWUgKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNldFRleHQodmFsdWUpXG4gIH1cblxuICBwcml2YXRlIF9vbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UgKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuXG4gIH1cblxuICBwcml2YXRlIF9vblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZCAoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICBnZXQgdGV4dCAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dFxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHRleHQgKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuc2V0VGV4dCh0ZXh0KVxuICB9XG5cbiAgc2V0VGV4dCAodGV4dDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRleHQgPT09IG51bGwgfHwgdGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0ZXh0ID0gJydcbiAgICB9XG4gICAgaWYgKHRoaXMuX3RleHQgIT09IHRleHQgJiYgdGhpcy5fYXV0b1VwZGF0ZUNvbnRlbnQpIHtcbiAgICAgIHRoaXMuX3RleHQgPSB0ZXh0XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGV4dClcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRleHQpXG4gICAgICB0aGlzLl9lZGl0b3IuY2xlYXJTZWxlY3Rpb24oKVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhdXRvVXBkYXRlQ29udGVudCAoc3RhdHVzOiBhbnkpIHtcbiAgICB0aGlzLnNldEF1dG9VcGRhdGVDb250ZW50KHN0YXR1cylcbiAgfVxuXG4gIHNldEF1dG9VcGRhdGVDb250ZW50IChzdGF0dXM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX2F1dG9VcGRhdGVDb250ZW50ID0gc3RhdHVzXG4gIH1cblxuICBASW5wdXQoKSBzZXQgZHVyYXRpb25CZWZvcmVDYWxsYmFjayAobnVtOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldER1cmF0aW9uQmVmb3JlQ2FsbGJhY2sobnVtKVxuICB9XG5cbiAgc2V0RHVyYXRpb25CZWZvcmVDYWxsYmFjayAobnVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9kdXJhdGlvbkJlZm9yZUNhbGxiYWNrID0gbnVtXG4gIH1cblxuICBnZXRFZGl0b3IgKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvclxuICB9XG5cbn1cbiJdfQ==
@@ -1063,7 +1063,6 @@ class AceEditorComponent {
1063
1063
  _text = '';
1064
1064
  oldText;
1065
1065
  timeoutSaving;
1066
- _customCompletions = [];
1067
1066
  constructor(elementRef, zone) {
1068
1067
  this.zone = zone;
1069
1068
  const el = elementRef.nativeElement;
@@ -1089,17 +1088,31 @@ class AceEditorComponent {
1089
1088
  this.setTheme(this._theme);
1090
1089
  this.setMode(this._mode);
1091
1090
  this.setReadOnly(this._readOnly);
1092
- this.createCustomCompletions(this._customCompletions);
1093
- }
1094
- createCustomCompletions(customCompletions) {
1095
- this._editor.completers.push({
1096
- getCompletions: function (editor, session, pos, prefix, callback) {
1091
+ const completerIndex = this._editor.completers.findIndex((completer) => completer.id === 'apipass-completions');
1092
+ if (completerIndex > -1) { // only splice array when item is found
1093
+ this._editor.completers.splice(completerIndex, 1); // 2nd parameter means remove one item only
1094
+ }
1095
+ }
1096
+ setCustomCompletions(customCompletions) {
1097
+ const completer = this._editor.completers.find((completer) => completer.id === 'apipass-completions');
1098
+ if (!completer) {
1099
+ this.setOptions({
1100
+ enableBasicAutocompletion: true,
1101
+ autoScrollEditorIntoView: true,
1102
+ enableLiveAutocompletion: true
1103
+ });
1104
+ this._editor.completers.push({
1105
+ id: 'apipass-completions',
1106
+ getCompletions: function (editor, session, pos, prefix, callback) {
1107
+ callback(null, customCompletions);
1108
+ }
1109
+ });
1110
+ }
1111
+ else {
1112
+ completer.getCompletions = (editor, session, pos, prefix, callback) => {
1097
1113
  callback(null, customCompletions);
1098
- }
1099
- });
1100
- }
1101
- set customCompletions(customCompletions) {
1102
- this._customCompletions = customCompletions;
1114
+ };
1115
+ }
1103
1116
  }
1104
1117
  initEvents() {
1105
1118
  this._editor.on('change', () => {