@wemake4u/feel-editor 1.0.0 → 1.0.2

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.
@@ -6,8 +6,9 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
6
  import FeelEditor from '@bpmn-io/feel-editor';
7
7
  import { lineNumbers, EditorView } from '@codemirror/view';
8
8
  import { keymap } from '@codemirror/view';
9
- import { indentLess, indentMore } from '@codemirror/commands';
9
+ import { indentLess, indentMore, history, historyKeymap } from '@codemirror/commands';
10
10
  import * as state from '@codemirror/state';
11
+ import { getDefaultBuiltins } from '../utils/parseBuiltins';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@angular/common";
13
14
  export class FeelEditorComponent {
@@ -128,8 +129,8 @@ export class FeelEditorComponent {
128
129
  readOnly: (this._readonly || this._disabled),
129
130
  dialect: this.dialect,
130
131
  value: this._value,
131
- builtins: this._builtins,
132
- variables: this._variables,
132
+ builtins: this.getBuiltins() ?? undefined,
133
+ variables: this._variables ?? undefined,
133
134
  onChange: (value) => {
134
135
  this._value = value;
135
136
  this.onChange(value);
@@ -139,7 +140,7 @@ export class FeelEditorComponent {
139
140
  onLint: (issues) => this.lint.emit(issues),
140
141
  extensions: [...(this._lineNumbers ? [lineNumbers()] : []), EditorView.lineWrapping],
141
142
  });
142
- this.configureKeymap(this._editor);
143
+ this.configureEditor(this._editor);
143
144
  this.editorContainerRef?.nativeElement.classList.toggle('disabled', this._disabled);
144
145
  }
145
146
  destroyEditor() {
@@ -152,10 +153,10 @@ export class FeelEditorComponent {
152
153
  this.destroyEditor();
153
154
  this.createEditor();
154
155
  }
155
- configureKeymap(editor) {
156
+ configureEditor(editor) {
156
157
  if (!editor._cmEditor)
157
158
  return;
158
- const tabKeymap = keymap.of([
159
+ const customKeymap = keymap.of([
159
160
  {
160
161
  key: "Shift-+",
161
162
  run: indentMore
@@ -166,9 +167,19 @@ export class FeelEditorComponent {
166
167
  }
167
168
  ]);
168
169
  editor._cmEditor.dispatch({
169
- effects: state.StateEffect.appendConfig.of(tabKeymap)
170
+ effects: state.StateEffect.appendConfig.of([
171
+ history(),
172
+ keymap.of(historyKeymap),
173
+ customKeymap
174
+ ])
170
175
  });
171
176
  }
177
+ getBuiltins() {
178
+ if (Array.isArray(this._builtins)) {
179
+ return [...getDefaultBuiltins(), ...this._builtins];
180
+ }
181
+ return this._builtins;
182
+ }
172
183
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeelEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
173
184
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeelEditorComponent, isStandalone: true, selector: "feel-editor", inputs: { embedded: "embedded", minHeight: "minHeight", maxHeight: "maxHeight", disabled: "disabled", readonly: "readonly", lineNumbers: "lineNumbers", placeholder: "placeholder", value: "value", dialect: "dialect", builtins: "builtins", variables: "variables" }, outputs: { change: "change", keydown: "keydown", lint: "lint" }, providers: [
174
185
  {
@@ -219,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
219
230
  }], variables: [{
220
231
  type: Input
221
232
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlbC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmVlbC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ZlZWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZlZWwtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9mZWVsLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0Q7QUFFbEQsT0FBTyxFQUNMLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsU0FBUyxFQUNoRCxZQUFZLEVBQzNCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxVQUFzRCxNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0QsT0FBTyxLQUFLLEtBQUssTUFBTSxtQkFBbUIsQ0FBQzs7O0FBZ0IzQyxNQUFNLE9BQU8sbUJBQW1CO0lBQ2tCLGtCQUFrQixDQUFjO0lBRXRFLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3BDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUM1QyxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUVsQyxRQUFRLEdBQVksS0FBSyxD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akUsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBDLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFPRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFhRixXQUFXO3NCQURkLEtBQUs7Z0JBYUYsS0FBSztzQkFEUixLQUFLO2dCQVVGLE9BQU87c0JBRFYsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGVzL2ZlZWwtZWRpdG9yLmQudHNcIiAvPlxyXG5cclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZFxyXG4gICwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IEZlZWxFZGl0b3IsIHsgRmVlbERpYWxlY3QsIEZlZWxCdWlsdGluLCBGZWVsVmFyaWFibGUgfSBmcm9tICdAYnBtbi1pby9mZWVsLWVkaXRvcic7XHJcbmltcG9ydCB7IGxpbmVOdW1iZXJzLCBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XHJcbmltcG9ydCB7IGtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBpbmRlbnRMZXNzLCBpbmRlbnRNb3JlIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnXHJcbmltcG9ydCAqIGFzIHN0YXRlIGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZmVlbC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmVlbC1lZGl0b3IuY29tcG9uZW50LmNzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGZWVsRWRpdG9yQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWVsRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvckNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGVkaXRvckNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkga2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgbGludCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGVtYmVkZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWluSGVpZ2h0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heEhlaWdodD86IHN0cmluZztcclxuXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCA9PT0gdmFsdWUpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlZnJlc2hFZGl0b3IoKTtcclxuICB9XHJcblxyXG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5fcmVhZG9ubHkgPT09IHZhbHVlKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLl9yZWFkb25seSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWZyZXNoRWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZU51bWJlcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGluZU51bWJlcnM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBsaW5lTnVtYmVycyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuX2xpbmVOdW1iZXJzID09PSB2YWx1ZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5fbGluZU51bWJlcnMgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVmcmVzaEVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xyXG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0UGxhY2Vob2xkZXIodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpYWxlY3QoKTogRmVlbERpYWxlY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RpYWxlY3Q7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBkaWFsZWN0KHZhbHVlOiBGZWVsRGlhbGVjdCkge1xyXG4gICAgaWYgKHRoaXMuX2RpYWxlY3QgPT09IHZhbHVlKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLl9kaWFsZWN0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlZnJlc2hFZGl0b3IoKTtcclxuICB9XHJcblxyXG4gIGdldCBidWlsdGlucygpOiBGZWVsQnVpbHRpbltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9idWlsdGlucztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGJ1aWx0aW5zKHZhbHVlOiBGZWVsQnVpbHRpbltdIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fYnVpbHRpbnMgPT09IHZhbHVlKVxyXG4gICAgICByZXR1cm47ICAgIFxyXG4gICAgdGhpcy5fYnVpbHRpbnMgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVmcmVzaEVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhcmlhYmxlcygpOiBGZWVsVmFyaWFibGVbXSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFyaWFibGVzKHZhbHVlOiBGZWVsVmFyaWFibGVbXSB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fdmFyaWFibGVzID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XHJcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYXJpYWJsZXModmFsdWUgfHwgW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1ZpZXdJbml0ID0gdHJ1ZTtcclxuICAgIHRoaXMuY3JlYXRlRWRpdG9yKCk7ICAgIFxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICcnO1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xyXG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBQcml2YXRlIE1lbWJlcnNcclxuXHJcbiAgcHJpdmF0ZSBpc1ZpZXdJbml0ID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2VkaXRvcj86IEZlZWxFZGl0b3I7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XHJcblxyXG4gIHByaXZhdGUgX3JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2xpbmVOdW1iZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwcml2YXRlIF9kaWFsZWN0OiBGZWVsRGlhbGVjdCA9IFwiZXhwcmVzc2lvblwiO1xyXG5cclxuICBwcml2YXRlIF9idWlsdGluczogRmVlbEJ1aWx0aW5bXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBfdmFyaWFibGVzOiBGZWVsVmFyaWFibGVbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFZGl0b3IoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNWaWV3SW5pdCB8fCAhdGhpcy5lZGl0b3JDb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9lZGl0b3IgPSBuZXcgRmVlbEVkaXRvcih7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5lZGl0b3JDb250YWluZXJSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuX3BsYWNlaG9sZGVyLFxyXG4gICAgICByZWFkT25seTogKHRoaXMuX3JlYWRvbmx5IHx8IHRoaXMuX2Rpc2FibGVkKSxcclxuICAgICAgZGlhbGVjdDogdGhpcy5kaWFsZWN0LFxyXG4gICAgICB2YWx1ZTogdGhpcy5fdmFsdWUsXHJcbiAgICAgIGJ1aWx0aW5zOiB0aGlzLl9idWlsdGlucyxcclxuICAgICAgdmFyaWFibGVzOiB0aGlzLl92YXJpYWJsZXMsXHJcbiAgICAgIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmtleWRvd24uZW1pdChldmVudCksXHJcbiAgICAgIG9uTGludDogKGlzc3VlczogYW55W10pID0+IHRoaXMubGludC5lbWl0KGlzc3VlcyksXHJcbiAgICAgIGV4dGVuc2lvbnM6IFsuLi4odGhpcy5fbGluZU51bWJlcnMgPyBbbGluZU51bWJlcnMoKV0gOiBbXSksIEVkaXRvclZpZXcubGluZVdyYXBwaW5nXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29uZmlndXJlS2V5bWFwKHRoaXMuX2VkaXRvcik7XHJcblxyXG4gICAgdGhpcy5lZGl0b3JDb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnZGlzYWJsZWQnLCB0aGlzLl9kaXNhYmxlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlc3Ryb3lFZGl0b3IoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XHJcbiAgICAgIHRoaXMuX2VkaXRvciA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5lZGl0b3JDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAnJztcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hFZGl0b3IoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3lFZGl0b3IoKTtcclxuICAgIHRoaXMuY3JlYXRlRWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbmZpZ3VyZUtleW1hcChlZGl0b3I6IGFueSkge1xyXG5cclxuICAgIGlmICghZWRpdG9yLl9jbUVkaXRvcilcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRhYktleW1hcCA9IGtleW1hcC5vZihbXHJcbiAgICAgIHtcclxuICAgICAgICBrZXk6IFwiU2hpZnQtK1wiLFxyXG4gICAgICAgIHJ1bjogaW5kZW50TW9yZVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAga2V5OiBcIlNoaWZ0LS1cIixcclxuICAgICAgICBydW46IGluZGVudExlc3NcclxuICAgICAgfVxyXG4gICAgXSk7XHJcblxyXG4gICAgZWRpdG9yLl9jbUVkaXRvci5kaXNwYXRjaCh7XHJcbiAgICAgIGVmZmVjdHM6IHN0YXRlLlN0YXRlRWZmZWN0LmFwcGVuZENvbmZpZy5vZih0YWJLZXltYXApXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXYgI2VkaXRvckNvbnRhaW5lclxyXG4gICAgIGNsYXNzPVwiZmVlbC1lZGl0b3ItY29udGFpbmVyXCJcclxuICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAgW25nQ2xhc3NdPVwiZW1iZWRkZWQgPyAnZmVlbC1lZGl0b3ItZW1iZWRkZWQnIDogJ2ZlZWwtZWRpdG9yLXN0YW5kYWxvbmUnXCJcclxuICAgICBbc3R5bGUubWluLWhlaWdodF09XCJtaW5IZWlnaHRcIlxyXG4gICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiPlxyXG48L2Rpdj5cclxuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlbC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmVlbC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ZlZWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZlZWwtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9mZWVsLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0Q7QUFFbEQsT0FBTyxFQUNMLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsU0FBUyxFQUNoRCxZQUFZLEVBQzNCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxVQUFzRCxNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRixPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFnQjVELE1BQU0sT0FBTyxtQkFBbUI7SUFDa0Isa0JBQWtCLENBQWM7SUFFdEUsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDcEMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFp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QkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrSkM1Qkgsa1JBT0Esa1JEY1ksWUFBWSw0SEFBRSxtQkFBbUI7OzRGQVNoQyxtQkFBbUI7a0JBZC9CLFNBQVM7K0JBQ0UsYUFBYSxjQUdYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxhQUNqQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBRytDLGtCQUFrQjtzQkFBakUsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBDLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFPRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFhRixXQUFXO3NCQURkLEtBQUs7Z0JBYUYsS0FBSztzQkFEUixLQUFLO2dCQVVGLE9BQU87c0JBRFYsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGVzL2ZlZWwtZWRpdG9yLmQudHNcIiAvPlxyXG5cclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZFxyXG4gICwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IEZlZWxFZGl0b3IsIHsgRmVlbERpYWxlY3QsIEZlZWxCdWlsdGluLCBGZWVsVmFyaWFibGUgfSBmcm9tICdAYnBtbi1pby9mZWVsLWVkaXRvcic7XHJcbmltcG9ydCB7IGxpbmVOdW1iZXJzLCBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XHJcbmltcG9ydCB7IGtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBpbmRlbnRMZXNzLCBpbmRlbnRNb3JlLCBoaXN0b3J5LCBoaXN0b3J5S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnXHJcbmltcG9ydCAqIGFzIHN0YXRlIGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHsgZ2V0RGVmYXVsdEJ1aWx0aW5zIH0gZnJvbSAnLi4vdXRpbHMvcGFyc2VCdWlsdGlucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZlZWwtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmVlbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZlZWwtZWRpdG9yLmNvbXBvbmVudC5jc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmVlbEVkaXRvckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVlbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGtleWRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGxpbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICBASW5wdXQoKSBlbWJlZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbkhlaWdodD86IHN0cmluZztcclxuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmc7XHJcblxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgPT09IHZhbHVlKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWZyZXNoRWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuX3JlYWRvbmx5ID09PSB2YWx1ZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5fcmVhZG9ubHkgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVmcmVzaEVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmVOdW1iZXJzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpbmVOdW1iZXJzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgbGluZU51bWJlcnModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLl9saW5lTnVtYmVycyA9PT0gdmFsdWUpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMuX2xpbmVOdW1iZXJzID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlZnJlc2hFZGl0b3IoKTtcclxuICB9XHJcblxyXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcclxuICAgICAgdGhpcy5fZWRpdG9yLnNldFBsYWNlaG9sZGVyKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBkaWFsZWN0KCk6IEZlZWxEaWFsZWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9kaWFsZWN0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlhbGVjdCh2YWx1ZTogRmVlbERpYWxlY3QpIHtcclxuICAgIGlmICh0aGlzLl9kaWFsZWN0ID09PSB2YWx1ZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5fZGlhbGVjdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWZyZXNoRWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYnVpbHRpbnMoKTogRmVlbEJ1aWx0aW5bXSB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2J1aWx0aW5zO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYnVpbHRpbnModmFsdWU6IEZlZWxCdWlsdGluW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fYnVpbHRpbnMgPT09IHZhbHVlKVxyXG4gICAgICByZXR1cm47ICAgIFxyXG4gICAgdGhpcy5fYnVpbHRpbnMgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVmcmVzaEVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhcmlhYmxlcygpOiBGZWVsVmFyaWFibGVbXSB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlcztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhcmlhYmxlcyh2YWx1ZTogRmVlbFZhcmlhYmxlW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl92YXJpYWJsZXMgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcclxuICAgICAgdGhpcy5fZWRpdG9yLnNldFZhcmlhYmxlcyh2YWx1ZSB8fCBbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzVmlld0luaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5jcmVhdGVFZGl0b3IoKTsgICAgXHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgJyc7XHJcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XHJcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFByaXZhdGUgTWVtYmVyc1xyXG5cclxuICBwcml2YXRlIGlzVmlld0luaXQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfZWRpdG9yPzogRmVlbEVkaXRvcjtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWUgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfbGluZU51bWJlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHByaXZhdGUgX2RpYWxlY3Q6IEZlZWxEaWFsZWN0ID0gXCJleHByZXNzaW9uXCI7XHJcblxyXG4gIHByaXZhdGUgX2J1aWx0aW5zOiBGZWVsQnVpbHRpbltdIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBfdmFyaWFibGVzOiBGZWVsVmFyaWFibGVbXSB8IG51bGwgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRWRpdG9yKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzVmlld0luaXQgfHwgIXRoaXMuZWRpdG9yQ29udGFpbmVyUmVmPy5uYXRpdmVFbGVtZW50KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZWRpdG9yID0gbmV3IEZlZWxFZGl0b3Ioe1xyXG4gICAgICBjb250YWluZXI6IHRoaXMuZWRpdG9yQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLl9wbGFjZWhvbGRlcixcclxuICAgICAgcmVhZE9ubHk6ICh0aGlzLl9yZWFkb25seSB8fCB0aGlzLl9kaXNhYmxlZCksXHJcbiAgICAgIGRpYWxlY3Q6IHRoaXMuZGlhbGVjdCxcclxuICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxyXG4gICAgICBidWlsdGluczogdGhpcy5nZXRCdWlsdGlucygpID8/IHVuZGVmaW5lZCxcclxuICAgICAgdmFyaWFibGVzOiB0aGlzLl92YXJpYWJsZXMgPz8gdW5kZWZpbmVkLFxyXG4gICAgICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB9LFxyXG4gICAgICBvbktleURvd246IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5rZXlkb3duLmVtaXQoZXZlbnQpLFxyXG4gICAgICBvbkxpbnQ6IChpc3N1ZXM6IGFueVtdKSA9PiB0aGlzLmxpbnQuZW1pdChpc3N1ZXMpLFxyXG4gICAgICBleHRlbnNpb25zOiBbLi4uKHRoaXMuX2xpbmVOdW1iZXJzID8gW2xpbmVOdW1iZXJzKCldIDogW10pLCBFZGl0b3JWaWV3LmxpbmVXcmFwcGluZ10sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ3VyZUVkaXRvcih0aGlzLl9lZGl0b3IpO1xyXG5cclxuICAgIHRoaXMuZWRpdG9yQ29udGFpbmVyUmVmPy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ2Rpc2FibGVkJywgdGhpcy5fZGlzYWJsZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95RWRpdG9yKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xyXG4gICAgICB0aGlzLl9lZGl0b3IgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuZWRpdG9yQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoRWRpdG9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95RWRpdG9yKCk7XHJcbiAgICB0aGlzLmNyZWF0ZUVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25maWd1cmVFZGl0b3IoZWRpdG9yOiBhbnkpIHtcclxuXHJcbiAgICBpZiAoIWVkaXRvci5fY21FZGl0b3IpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjdXN0b21LZXltYXAgPSBrZXltYXAub2YoW1xyXG4gICAgICB7XHJcbiAgICAgICAga2V5OiBcIlNoaWZ0LStcIixcclxuICAgICAgICBydW46IGluZGVudE1vcmVcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGtleTogXCJTaGlmdC0tXCIsXHJcbiAgICAgICAgcnVuOiBpbmRlbnRMZXNzXHJcbiAgICAgIH1cclxuICAgIF0pO1xyXG5cclxuICAgIGVkaXRvci5fY21FZGl0b3IuZGlzcGF0Y2goe1xyXG4gICAgICBlZmZlY3RzOiBzdGF0ZS5TdGF0ZUVmZmVjdC5hcHBlbmRDb25maWcub2YoW1xyXG4gICAgICAgIGhpc3RvcnkoKSxcclxuICAgICAgICBrZXltYXAub2YoaGlzdG9yeUtleW1hcCksXHJcbiAgICAgICAgY3VzdG9tS2V5bWFwXHJcbiAgICAgIF0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnVpbHRpbnMoKVxyXG4gIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2J1aWx0aW5zKSkge1xyXG4gICAgICByZXR1cm4gWy4uLmdldERlZmF1bHRCdWlsdGlucygpLCAuLi50aGlzLl9idWlsdGluc107XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2J1aWx0aW5zO1xyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIiwiPGRpdiAjZWRpdG9yQ29udGFpbmVyXHJcbiAgICAgY2xhc3M9XCJmZWVsLWVkaXRvci1jb250YWluZXJcIlxyXG4gICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcclxuICAgICBbbmdDbGFzc109XCJlbWJlZGRlZCA/ICdmZWVsLWVkaXRvci1lbWJlZGRlZCcgOiAnZmVlbC1lZGl0b3Itc3RhbmRhbG9uZSdcIlxyXG4gICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cIm1pbkhlaWdodFwiXHJcbiAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { domify } from 'min-dom';
2
+ import defaultBuiltins from '../assets/builtins.json';
3
+ export function parseBuiltins(builtins) {
4
+ return builtins.map(parseBuiltin);
5
+ }
6
+ export function parseBuiltin(builtin) {
7
+ const { name, description } = builtin;
8
+ const match = name.match(/^([\w\s]+)\((.*)\)$/);
9
+ const functionName = match ? match[1] : "";
10
+ const functionArguments = match ? match[2] : "";
11
+ const params = functionArguments ? functionArguments.split(', ').map((name) => ({ name })) : [];
12
+ return {
13
+ name: functionName,
14
+ type: 'function',
15
+ params,
16
+ info: () => {
17
+ return domify(`<div class="description">${description}<div>`);
18
+ },
19
+ boost: 0
20
+ };
21
+ }
22
+ export function getDefaultBuiltins() {
23
+ return parseBuiltins(defaultBuiltins);
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VCdWlsdGlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZlZWwtZWRpdG9yL3NyYy9saWIvdXRpbHMvcGFyc2VCdWlsdGlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWpDLE9BQU8sZUFBZSxNQUFNLHlCQUF5QixDQUFDO0FBT3RELE1BQU0sVUFBVSxhQUFhLENBQUMsUUFBdUI7SUFDbkQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQW9CO0lBRS9DLE1BQU0sRUFDSixJQUFJLEVBQ0osV0FBVyxFQUNaLEdBQUcsT0FBTyxDQUFDO0lBRVosTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRS9DLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFeEcsT0FBTztRQUNMLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU07UUFDTixJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ1QsT0FBTyxNQUFNLENBQUMsNEJBQTRCLFdBQVcsT0FBTyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELEtBQUssRUFBRSxDQUFDO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkb21pZnkgfSBmcm9tICdtaW4tZG9tJztcclxuaW1wb3J0IHsgRmVlbEJ1aWx0aW4gfSBmcm9tICdAYnBtbi1pby9mZWVsLWVkaXRvcic7XHJcbmltcG9ydCBkZWZhdWx0QnVpbHRpbnMgZnJvbSAnLi4vYXNzZXRzL2J1aWx0aW5zLmpzb24nO1xyXG5cclxuaW50ZXJmYWNlIEJ1aWx0aW5JbmZvIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQnVpbHRpbnMoYnVpbHRpbnM6IEJ1aWx0aW5JbmZvW10pOiBGZWVsQnVpbHRpbltdIHtcclxuICByZXR1cm4gYnVpbHRpbnMubWFwKHBhcnNlQnVpbHRpbik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJ1aWx0aW4oYnVpbHRpbjogQnVpbHRpbkluZm8pOiBGZWVsQnVpbHRpbiB7XHJcblxyXG4gIGNvbnN0IHtcclxuICAgIG5hbWUsXHJcbiAgICBkZXNjcmlwdGlvblxyXG4gIH0gPSBidWlsdGluO1xyXG5cclxuICBjb25zdCBtYXRjaCA9IG5hbWUubWF0Y2goL14oW1xcd1xcc10rKVxcKCguKilcXCkkLyk7XHJcbiAgY29uc3QgZnVuY3Rpb25OYW1lID0gbWF0Y2ggPyBtYXRjaFsxXSA6IFwiXCI7XHJcbiAgY29uc3QgZnVuY3Rpb25Bcmd1bWVudHMgPSBtYXRjaCA/IG1hdGNoWzJdOiBcIlwiO1xyXG5cclxuICBjb25zdCBwYXJhbXMgPSBmdW5jdGlvbkFyZ3VtZW50cyA/IGZ1bmN0aW9uQXJndW1lbnRzLnNwbGl0KCcsICcpLm1hcCgobmFtZTogc3RyaW5nKSA9PiAoeyBuYW1lIH0pKSA6IFtdO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogZnVuY3Rpb25OYW1lLFxyXG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcclxuICAgIHBhcmFtcyxcclxuICAgIGluZm86ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGRvbWlmeShgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+JHtkZXNjcmlwdGlvbn08ZGl2PmApO1xyXG4gICAgfSxcclxuICAgIGJvb3N0OiAwXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRCdWlsdGlucygpOiBGZWVsQnVpbHRpbltdIHtcclxuICByZXR1cm4gcGFyc2VCdWlsdGlucyhkZWZhdWx0QnVpbHRpbnMpO1xyXG59XHJcbiJdfQ==