@firestitch/text-editor 12.1.0 → 12.3.0

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.
@@ -1,10 +1,11 @@
1
- import { EventEmitter, OnInit, ElementRef } from '@angular/core';
1
+ import { EventEmitter, OnInit, ElementRef, OnDestroy } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
3
  import { EditorComponent } from 'ngx-monaco-editor';
4
4
  import { FsTextEditorConfig } from '../../interfaces/config.interface';
5
5
  import * as i0 from "@angular/core";
6
- export declare class FsTextEditorComponent implements OnInit, ControlValueAccessor {
6
+ export declare class FsTextEditorComponent implements OnInit, OnDestroy, ControlValueAccessor {
7
7
  private _element;
8
+ private _document;
8
9
  config: FsTextEditorConfig;
9
10
  scrollable: boolean;
10
11
  init: EventEmitter<any>;
@@ -13,12 +14,14 @@ export declare class FsTextEditorComponent implements OnInit, ControlValueAccess
13
14
  defaultConfig: FsTextEditorConfig;
14
15
  onChange: (_: any) => void;
15
16
  onTouched: () => void;
17
+ private _window;
16
18
  get monaco(): any;
17
- constructor(_element: ElementRef);
19
+ constructor(_element: ElementRef, _document: Document);
18
20
  readonly LINE_HEIGHT = 18;
19
21
  private _editorRef;
20
22
  private _value;
21
23
  ngOnInit(): void;
24
+ ngOnDestroy(): void;
22
25
  get value(): string;
23
26
  onEditorInit(event: any): void;
24
27
  writeValue(value: any): void;
@@ -1,9 +1,12 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { NgxMonacoEditorConfig } from 'ngx-monaco-editor';
1
3
  import * as i0 from "@angular/core";
2
4
  import * as i1 from "./components/text-editor/text-editor.component";
3
5
  import * as i2 from "@angular/common";
4
6
  import * as i3 from "ngx-monaco-editor";
5
7
  import * as i4 from "@angular/forms";
6
8
  export declare class FsTextEditorModule {
9
+ static forRoot(config?: NgxMonacoEditorConfig): ModuleWithProviders<FsTextEditorModule>;
7
10
  static ɵfac: i0.ɵɵFactoryDeclaration<FsTextEditorModule, never>;
8
11
  static ɵmod: i0.ɵɵNgModuleDeclaration<FsTextEditorModule, [typeof i1.FsTextEditorComponent], [typeof i2.CommonModule, typeof i3.MonacoEditorModule, typeof i4.FormsModule], [typeof i1.FsTextEditorComponent]>;
9
12
  static ɵinj: i0.ɵɵInjectorDeclaration<FsTextEditorModule>;
@@ -1,4 +1,4 @@
1
- import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
2
- export interface FsTextEditorConfig extends IStandaloneEditorConstructionOptions {
1
+ import { editor } from 'monaco-editor';
2
+ export interface FsTextEditorConfig extends editor.IStandaloneEditorConstructionOptions {
3
3
  autoHeight?: boolean;
4
4
  }
@@ -27,8 +27,9 @@
27
27
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
28
28
 
29
29
  var FsTextEditorComponent = /** @class */ (function () {
30
- function FsTextEditorComponent(_element) {
30
+ function FsTextEditorComponent(_element, _document) {
31
31
  this._element = _element;
32
+ this._document = _document;
32
33
  this.config = {};
33
34
  this.scrollable = false;
34
35
  this.init = new i0.EventEmitter();
@@ -48,12 +49,13 @@
48
49
  };
49
50
  this.onChange = function (_) { };
50
51
  this.onTouched = function () { };
52
+ this._window = this._document.defaultView;
51
53
  this.LINE_HEIGHT = 18;
52
54
  this._value = '';
53
55
  }
54
56
  Object.defineProperty(FsTextEditorComponent.prototype, "monaco", {
55
57
  get: function () {
56
- return window.monaco;
58
+ return this._window.monaco;
57
59
  },
58
60
  enumerable: false,
59
61
  configurable: true
@@ -65,6 +67,10 @@
65
67
  this.config = Object.assign({}, this.defaultConfig, this.config);
66
68
  }
67
69
  };
70
+ FsTextEditorComponent.prototype.ngOnDestroy = function () {
71
+ // must be there to cleanup https://github.com/microsoft/monaco-editor/issues/827
72
+ this._window.define = null;
73
+ };
68
74
  Object.defineProperty(FsTextEditorComponent.prototype, "value", {
69
75
  get: function () {
70
76
  return this._value;
@@ -140,7 +146,7 @@
140
146
  };
141
147
  return FsTextEditorComponent;
142
148
  }());
143
- FsTextEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsTextEditorComponent, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
149
+ FsTextEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsTextEditorComponent, deps: [{ token: i0__namespace.ElementRef }, { token: common.DOCUMENT }], target: i0__namespace.ɵɵFactoryTarget.Component });
144
150
  FsTextEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTextEditorComponent, selector: "fs-text-editor", inputs: { config: "config", scrollable: "scrollable" }, outputs: { init: "init", blur: "blur" }, providers: [{
145
151
  provide: i2.NG_VALUE_ACCESSOR,
146
152
  useExisting: i0.forwardRef(function () { return FsTextEditorComponent; }),
@@ -158,7 +164,12 @@
158
164
  multi: true
159
165
  }]
160
166
  }]
161
- }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }]; }, propDecorators: { config: [{
167
+ }], ctorParameters: function () {
168
+ return [{ type: i0__namespace.ElementRef }, { type: Document, decorators: [{
169
+ type: i0.Inject,
170
+ args: [common.DOCUMENT]
171
+ }] }];
172
+ }, propDecorators: { config: [{
162
173
  type: i0.Input
163
174
  }], scrollable: [{
164
175
  type: i0.Input
@@ -174,6 +185,14 @@
174
185
  var FsTextEditorModule = /** @class */ (function () {
175
186
  function FsTextEditorModule() {
176
187
  }
188
+ FsTextEditorModule.forRoot = function (config) {
189
+ return {
190
+ ngModule: FsTextEditorModule,
191
+ providers: [
192
+ i1.MonacoEditorModule.forRoot(config).providers,
193
+ ],
194
+ };
195
+ };
177
196
  return FsTextEditorModule;
178
197
  }());
179
198
  FsTextEditorModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsTextEditorModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-text-editor.umd.js","sources":["../../src/app/components/text-editor/text-editor.component.ts","../../src/app/components/text-editor/text-editor.component.html","../../src/app/fs-text-editor.module.ts","../../src/public_api.ts","../../src/firestitch-text-editor.ts"],"sourcesContent":["import { Component, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild, ElementRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { EditorComponent } from 'ngx-monaco-editor';\n\nimport ICodeEditor = monaco.editor.ICodeEditor;\n\nimport { FsTextEditorConfig } from '../../interfaces/config.interface';\n\n\n@Component({\n selector: 'fs-text-editor',\n templateUrl: 'text-editor.component.html',\n styleUrls: [ 'text-editor.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsTextEditorComponent),\n multi: true\n }]\n})\nexport class FsTextEditorComponent implements OnInit, ControlValueAccessor {\n\n @Input() public config: FsTextEditorConfig = {};\n @Input() public scrollable = false;\n\n @Output() public init = new EventEmitter();\n @Output() public blur = new EventEmitter();\n @ViewChild(EditorComponent, { static: true }) _editorContainer: EditorComponent;\n\n public defaultConfig: FsTextEditorConfig = {\n minimap: {\n enabled: false\n },\n theme: 'vs-dark',\n automaticLayout: false,\n scrollBeyondLastLine: false,\n autoHeight: true,\n scrollbar: {\n vertical: 'hidden'\n },\n hideCursorInOverviewRuler: true\n };\n\n public onChange = (_: any) => {};\n public onTouched = () => {};\n\n public get monaco() {\n return (<any>window).monaco;\n };\n\n constructor(private _element: ElementRef) {};\n\n public readonly LINE_HEIGHT = 18;\n\n private _editorRef: ICodeEditor;\n private _value = '';\n\n public ngOnInit() {\n\n if (this.config) {\n this.config = Object.assign({}, this.defaultConfig, this.config);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public onEditorInit(event) {\n // Timeout allows the content to fully load to and calculate height\n setTimeout(() => {\n this._editorRef = event;\n this._initEditor();\n this.init.next(event);\n\n if (!this.scrollable) {\n this._disableScroll();\n }\n });\n }\n\n public writeValue(value: any): void {\n this._value = value || '';\n }\n\n public changed(e) {\n if (this._value !== e) {\n this._value = e;\n this.onChange(e);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private _initEditor() {\n if (this._editorRef && this.config.autoHeight) {\n this._updateEditorHeight();\n\n this._editorRef.onDidChangeModelContent((e) => {\n this._updateEditorHeight();\n });\n\n this._editorRef.onDidBlurEditorText(() => {\n this.blur.next();\n });\n }\n }\n\n private _updateEditorHeight() {\n\n const editorDomNode = this._editorRef.getDomNode();\n\n if (!editorDomNode) {\n return;\n }\n\n const container = editorDomNode.getElementsByClassName('view-lines')[0] as HTMLElement;\n const lineHeight = container.firstChild\n ? (container.firstChild as HTMLElement).offsetHeight\n : this.LINE_HEIGHT;\n\n const editorModel = this._editorRef.getModel();\n\n if (!editorModel) {\n return;\n }\n\n const nextHeight = this._editorRef.getModel().getLineCount() * lineHeight;\n\n // set the height and redo layout\n editorDomNode.style.height = nextHeight + 'px';\n this.updateLayout();\n }\n\n public updateLayout(): void {\n this._editorRef.layout();\n }\n\n private _disableScroll() {\n const node = this._editorRef.getDomNode();\n\n node.addEventListener('wheel', (e) => {\n e.stopPropagation();\n }, true);\n }\n}\n","<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\nimport { FsTextEditorComponent } from './components/text-editor/text-editor.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MonacoEditorModule,\n FormsModule,\n ],\n exports: [\n FsTextEditorComponent,\n ],\n entryComponents: [\n ],\n declarations: [\n FsTextEditorComponent,\n ]\n})\nexport class FsTextEditorModule {\n\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nimport { from } from 'rxjs';\n\nexport { FsTextEditorModule } from './app/fs-text-editor.module';\n\nexport { FsTextEditorConfig } from './app/interfaces/config.interface';\n\n\nexport { FsTextEditorComponent } from './app/components/text-editor/text-editor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","NG_VALUE_ACCESSOR","forwardRef","EditorComponent","Component","Input","Output","ViewChild","CommonModule","MonacoEditorModule","FormsModule","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-text-editor.umd.js","sources":["../../src/app/components/text-editor/text-editor.component.ts","../../src/app/components/text-editor/text-editor.component.html","../../src/app/fs-text-editor.module.ts","../../src/public_api.ts","../../src/firestitch-text-editor.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ElementRef,\n OnDestroy,\n Inject,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DOCUMENT } from '@angular/common';\n\nimport { EditorComponent } from 'ngx-monaco-editor';\nimport { editor } from 'monaco-editor';\n\nimport { FsTextEditorConfig } from '../../interfaces/config.interface';\n\n\n@Component({\n selector: 'fs-text-editor',\n templateUrl: 'text-editor.component.html',\n styleUrls: [ 'text-editor.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsTextEditorComponent),\n multi: true\n }]\n})\nexport class FsTextEditorComponent implements OnInit, OnDestroy, ControlValueAccessor {\n\n @Input() public config: FsTextEditorConfig = {};\n @Input() public scrollable = false;\n\n @Output() public init = new EventEmitter();\n @Output() public blur = new EventEmitter();\n @ViewChild(EditorComponent, { static: true }) _editorContainer: EditorComponent;\n\n public defaultConfig: FsTextEditorConfig = {\n minimap: {\n enabled: false\n },\n theme: 'vs-dark',\n automaticLayout: false,\n scrollBeyondLastLine: false,\n autoHeight: true,\n scrollbar: {\n vertical: 'hidden'\n },\n hideCursorInOverviewRuler: true\n };\n\n public onChange = (_: any) => {};\n public onTouched = () => {};\n\n private _window: any = this._document.defaultView;\n\n public get monaco() {\n return this._window.monaco;\n };\n\n constructor(\n private _element: ElementRef,\n @Inject(DOCUMENT)\n private _document: Document,\n ) {};\n\n public readonly LINE_HEIGHT = 18;\n\n private _editorRef: editor.ICodeEditor;\n private _value = '';\n\n public ngOnInit() {\n\n if (this.config) {\n this.config = Object.assign({}, this.defaultConfig, this.config);\n }\n }\n\n public ngOnDestroy() {\n // must be there to cleanup https://github.com/microsoft/monaco-editor/issues/827\n this._window.define = null;\n }\n\n get value() {\n return this._value;\n }\n\n public onEditorInit(event) {\n // Timeout allows the content to fully load to and calculate height\n setTimeout(() => {\n this._editorRef = event;\n this._initEditor();\n this.init.next(event);\n\n if (!this.scrollable) {\n this._disableScroll();\n }\n });\n }\n\n public writeValue(value: any): void {\n this._value = value || '';\n }\n\n public changed(e) {\n if (this._value !== e) {\n this._value = e;\n this.onChange(e);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private _initEditor() {\n if (this._editorRef && this.config.autoHeight) {\n this._updateEditorHeight();\n\n this._editorRef.onDidChangeModelContent((e) => {\n this._updateEditorHeight();\n });\n\n this._editorRef.onDidBlurEditorText(() => {\n this.blur.next();\n });\n }\n }\n\n private _updateEditorHeight() {\n\n const editorDomNode = this._editorRef.getDomNode();\n\n if (!editorDomNode) {\n return;\n }\n\n const container = editorDomNode.getElementsByClassName('view-lines')[0] as HTMLElement;\n const lineHeight = container.firstChild\n ? (container.firstChild as HTMLElement).offsetHeight\n : this.LINE_HEIGHT;\n\n const editorModel = this._editorRef.getModel();\n\n if (!editorModel) {\n return;\n }\n\n const nextHeight = this._editorRef.getModel().getLineCount() * lineHeight;\n\n // set the height and redo layout\n editorDomNode.style.height = nextHeight + 'px';\n this.updateLayout();\n }\n\n public updateLayout(): void {\n this._editorRef.layout();\n }\n\n private _disableScroll() {\n const node = this._editorRef.getDomNode();\n\n node.addEventListener('wheel', (e) => {\n e.stopPropagation();\n }, true);\n }\n}\n","<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MonacoEditorModule, NgxMonacoEditorConfig } from 'ngx-monaco-editor';\nimport { FsTextEditorComponent } from './components/text-editor/text-editor.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MonacoEditorModule,\n FormsModule,\n ],\n exports: [\n FsTextEditorComponent,\n ],\n entryComponents: [\n ],\n declarations: [\n FsTextEditorComponent,\n ]\n})\nexport class FsTextEditorModule {\n static forRoot(config?: NgxMonacoEditorConfig): ModuleWithProviders<FsTextEditorModule> {\n return {\n ngModule: FsTextEditorModule,\n providers: [\n MonacoEditorModule.forRoot(config).providers,\n ],\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nimport { from } from 'rxjs';\n\nexport { FsTextEditorModule } from './app/fs-text-editor.module';\n\nexport { FsTextEditorConfig } from './app/interfaces/config.interface';\n\n\nexport { FsTextEditorComponent } from './app/components/text-editor/text-editor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","DOCUMENT","NG_VALUE_ACCESSOR","forwardRef","EditorComponent","Component","Inject","Input","Output","ViewChild","MonacoEditorModule","CommonModule","FormsModule","NgModule"],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output, ViewChild, ElementRef } from '@angular/core';
1
+ import { Component, EventEmitter, forwardRef, Input, Output, ViewChild, ElementRef, Inject, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { DOCUMENT } from '@angular/common';
3
4
  import { EditorComponent } from 'ngx-monaco-editor';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "ngx-monaco-editor";
6
7
  import * as i2 from "@angular/forms";
7
8
  export class FsTextEditorComponent {
8
- constructor(_element) {
9
+ constructor(_element, _document) {
9
10
  this._element = _element;
11
+ this._document = _document;
10
12
  this.config = {};
11
13
  this.scrollable = false;
12
14
  this.init = new EventEmitter();
@@ -26,11 +28,12 @@ export class FsTextEditorComponent {
26
28
  };
27
29
  this.onChange = (_) => { };
28
30
  this.onTouched = () => { };
31
+ this._window = this._document.defaultView;
29
32
  this.LINE_HEIGHT = 18;
30
33
  this._value = '';
31
34
  }
32
35
  get monaco() {
33
- return window.monaco;
36
+ return this._window.monaco;
34
37
  }
35
38
  ;
36
39
  ;
@@ -39,6 +42,10 @@ export class FsTextEditorComponent {
39
42
  this.config = Object.assign({}, this.defaultConfig, this.config);
40
43
  }
41
44
  }
45
+ ngOnDestroy() {
46
+ // must be there to cleanup https://github.com/microsoft/monaco-editor/issues/827
47
+ this._window.define = null;
48
+ }
42
49
  get value() {
43
50
  return this._value;
44
51
  }
@@ -107,7 +114,7 @@ export class FsTextEditorComponent {
107
114
  }, true);
108
115
  }
109
116
  }
110
- FsTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
117
+ FsTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
111
118
  FsTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTextEditorComponent, selector: "fs-text-editor", inputs: { config: "config", scrollable: "scrollable" }, outputs: { init: "init", blur: "blur" }, providers: [{
112
119
  provide: NG_VALUE_ACCESSOR,
113
120
  useExisting: forwardRef(() => FsTextEditorComponent),
@@ -125,7 +132,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
125
132
  multi: true
126
133
  }]
127
134
  }]
128
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
135
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Document, decorators: [{
136
+ type: Inject,
137
+ args: [DOCUMENT]
138
+ }] }]; }, propDecorators: { config: [{
129
139
  type: Input
130
140
  }], scrollable: [{
131
141
  type: Input
@@ -137,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
137
147
  type: ViewChild,
138
148
  args: [EditorComponent, { static: true }]
139
149
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFpQnBELE1BQU0sT0FBTyxxQkFBcUI7SUE4QmhDLFlBQW9CLFFBQW9CO1FBQXBCLGFBQVEsR0FBUixRQUFRLENBQVk7UUE1QnhCLFdBQU0sR0FBdUIsRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbEIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEMsa0JBQWEsR0FBdUI7WUFDekMsT0FBTyxFQUFFO2dCQUNQLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7WUFDRCxLQUFLLEVBQUUsU0FBUztZQUNoQixlQUFlLEVBQUUsS0FBSztZQUN0QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNELHlCQUF5QixFQUFFLElBQUk7U0FDaEMsQ0FBQztRQUVLLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxD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RVcsSUFBSTtzQkFBcEIsTUFBTTtnQkFDVSxJQUFJO3NCQUFwQixNQUFNO2dCQUN1QyxnQkFBZ0I7c0JBQTdELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnbmd4LW1vbmFjby1lZGl0b3InO1xuXG5pbXBvcnQgSUNvZGVFZGl0b3IgPSBtb25hY28uZWRpdG9yLklDb2RlRWRpdG9yO1xuXG5pbXBvcnQgeyBGc1RleHRFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLXRleHQtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAndGV4dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnIF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGc1RleHRFZGl0b3JDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIEZzVGV4dEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZyA9IHt9O1xuICBASW5wdXQoKSBwdWJsaWMgc2Nyb2xsYWJsZSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgaW5pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKEVkaXRvckNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgX2VkaXRvckNvbnRhaW5lcjogRWRpdG9yQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBkZWZhdWx0Q29uZmlnOiBGc1RleHRFZGl0b3JDb25maWcgPSB7XG4gICAgbWluaW1hcDoge1xuICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICB9LFxuICAgIHRoZW1lOiAndnMtZGFyaycsXG4gICAgYXV0b21hdGljTGF5b3V0OiBmYWxzZSxcbiAgICBzY3JvbGxCZXlvbmRMYXN0TGluZTogZmFsc2UsXG4gICAgYXV0b0hlaWdodDogdHJ1ZSxcbiAgICBzY3JvbGxiYXI6IHtcbiAgICAgIHZlcnRpY2FsOiAnaGlkZGVuJ1xuICAgIH0sXG4gICAgaGlkZUN1cnNvckluT3ZlcnZpZXdSdWxlcjogdHJ1ZVxuICB9O1xuXG4gIHB1YmxpYyBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcHVibGljIGdldCBtb25hY28oKSB7XG4gICAgcmV0dXJuICg8YW55PndpbmRvdykubW9uYWNvO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYpIHt9O1xuXG4gIHB1YmxpYyByZWFkb25seSBMSU5FX0hFSUdIVCA9IDE4O1xuXG4gIHByaXZhdGUgX2VkaXRvclJlZjogSUNvZGVFZGl0b3I7XG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuXG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdENvbmZpZywgdGhpcy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb25FZGl0b3JJbml0KGV2ZW50KSB7XG4gICAgLy8gVGltZW91dCBhbGxvd3MgdGhlIGNvbnRlbnQgdG8gZnVsbHkgbG9hZCB0byBhbmQgY2FsY3VsYXRlIGhlaWdodFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZWRpdG9yUmVmID0gZXZlbnQ7XG4gICAgICB0aGlzLl9pbml0RWRpdG9yKCk7XG4gICAgICB0aGlzLmluaXQubmV4dChldmVudCk7XG5cbiAgICAgIGlmICghdGhpcy5zY3JvbGxhYmxlKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVTY3JvbGwoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZWQoZSkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBlO1xuICAgICAgdGhpcy5vbkNoYW5nZShlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVkaXRvcigpIHtcbiAgICBpZiAodGhpcy5fZWRpdG9yUmVmICYmIHRoaXMuY29uZmlnLmF1dG9IZWlnaHQpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUVkaXRvckhlaWdodCgpO1xuXG4gICAgICB0aGlzLl9lZGl0b3JSZWYub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGUpID0+IHtcbiAgICAgICAgdGhpcy5fdXBkYXRlRWRpdG9ySGVpZ2h0KCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fZWRpdG9yUmVmLm9uRGlkQmx1ckVkaXRvclRleHQoKCkgPT4ge1xuICAgICAgICB0aGlzLmJsdXIubmV4dCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRWRpdG9ySGVpZ2h0KCkge1xuXG4gICAgY29uc3QgZWRpdG9yRG9tTm9kZSA9IHRoaXMuX2VkaXRvclJlZi5nZXREb21Ob2RlKCk7XG5cbiAgICBpZiAoIWVkaXRvckRvbU5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBlZGl0b3JEb21Ob2RlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3ZpZXctbGluZXMnKVswXSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gY29udGFpbmVyLmZpcnN0Q2hpbGRcbiAgICA/IChjb250YWluZXIuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0SGVpZ2h0XG4gICAgOiB0aGlzLkxJTkVfSEVJR0hUO1xuXG4gICAgY29uc3QgZWRpdG9yTW9kZWwgPSB0aGlzLl9lZGl0b3JSZWYuZ2V0TW9kZWwoKTtcblxuICAgIGlmICghZWRpdG9yTW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0SGVpZ2h0ID0gdGhpcy5fZWRpdG9yUmVmLmdldE1vZGVsKCkuZ2V0TGluZUNvdW50KCkgKiBsaW5lSGVpZ2h0O1xuXG4gICAgLy8gc2V0IHRoZSBoZWlnaHQgYW5kIHJlZG8gbGF5b3V0XG4gICAgZWRpdG9yRG9tTm9kZS5zdHlsZS5oZWlnaHQgPSBuZXh0SGVpZ2h0ICsgJ3B4JztcbiAgICB0aGlzLnVwZGF0ZUxheW91dCgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxheW91dCgpOiB2b2lkIHtcbiAgICB0aGlzLl9lZGl0b3JSZWYubGF5b3V0KCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlU2Nyb2xsKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLl9lZGl0b3JSZWYuZ2V0RG9tTm9kZSgpO1xuXG4gICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChlKSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sIHRydWUpO1xuICB9XG59XG4iLCI8bmd4LW1vbmFjby1lZGl0b3JcbiAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VkKCRldmVudClcIlxuICBbb3B0aW9uc109XCJjb25maWdcIlxuICAob25Jbml0KT1cIm9uRWRpdG9ySW5pdCgkZXZlbnQpXCI+XG48L25neC1tb25hY28tZWRpdG9yPlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQWdCcEQsTUFBTSxPQUFPLHFCQUFxQjtJQWdDaEMsWUFDVSxRQUFvQixFQUVwQixTQUFtQjtRQUZuQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBRXBCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFqQ2IsV0FBTSxHQUF1QixFQUFFLENBQUM7UUFDaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVsQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdwQyxrQkFBYSxHQUF1QjtZQUN6QyxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLEtBQUs7YUFDZjtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsVUFBVSxFQUFFLElBQUk7WUFDaEIsU0FBUyxFQUFFO2dCQUNULFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0QseUJBQXlCLEVBQUUsSUFBSTtTQUNoQyxDQUFDO1FBRUssYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUIsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUVwQixZQUFPLEdBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFZbEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFHekIsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQUxqQixDQUFDO0lBUkosSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBQUEsQ0FBQztJQU1FLENBQUM7SUFPRSxRQUFRO1FBRWIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQUs7UUFDdkIsbUVBQW1FO1FBQ25FLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDN0MsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFFM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBRXpCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkQsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQ3ZGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVO1lBQ3ZDLENBQUMsQ0FBRSxTQUFTLENBQUMsVUFBMEIsQ0FBQyxZQUFZO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRW5CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFL0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUUxRSxpQ0FBaUM7UUFDakMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7bUhBN0lVLHFCQUFxQiw0Q0FrQ3RCLFFBQVE7dUdBbENQLHFCQUFxQiwwSUFOckIsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztZQUNwRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsNEVBU1MsZUFBZSw4REN0QzVCLHdLQU1BOzRGRHlCYSxxQkFBcUI7a0JBVmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsU0FBUyxFQUFFLENBQUUsNEJBQTRCLENBQUU7b0JBQzNDLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO2lCQUNIO21GQW9Dc0IsUUFBUTswQkFEMUIsTUFBTTsyQkFBQyxRQUFROzRDQWhDRixNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBRVcsSUFBSTtzQkFBcEIsTUFBTTtnQkFDVSxJQUFJO3NCQUFwQixNQUFNO2dCQUN1QyxnQkFBZ0I7c0JBQTdELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBJbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICduZ3gtbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQgeyBlZGl0b3IgfSBmcm9tICdtb25hY28tZWRpdG9yJztcblxuaW1wb3J0IHsgRnNUZXh0RWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy10ZXh0LWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAndGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJ3RleHQtZWRpdG9yLmNvbXBvbmVudC5zY3NzJyBdLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRnNUZXh0RWRpdG9yQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBGc1RleHRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZyA9IHt9O1xuICBASW5wdXQoKSBwdWJsaWMgc2Nyb2xsYWJsZSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgaW5pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKEVkaXRvckNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgX2VkaXRvckNvbnRhaW5lcjogRWRpdG9yQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBkZWZhdWx0Q29uZmlnOiBGc1RleHRFZGl0b3JDb25maWcgPSB7XG4gICAgbWluaW1hcDoge1xuICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICB9LFxuICAgIHRoZW1lOiAndnMtZGFyaycsXG4gICAgYXV0b21hdGljTGF5b3V0OiBmYWxzZSxcbiAgICBzY3JvbGxCZXlvbmRMYXN0TGluZTogZmFsc2UsXG4gICAgYXV0b0hlaWdodDogdHJ1ZSxcbiAgICBzY3JvbGxiYXI6IHtcbiAgICAgIHZlcnRpY2FsOiAnaGlkZGVuJ1xuICAgIH0sXG4gICAgaGlkZUN1cnNvckluT3ZlcnZpZXdSdWxlcjogdHJ1ZVxuICB9O1xuXG4gIHB1YmxpYyBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBfd2luZG93OiBhbnkgPSB0aGlzLl9kb2N1bWVudC5kZWZhdWx0VmlldztcblxuICBwdWJsaWMgZ2V0IG1vbmFjbygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2luZG93Lm1vbmFjbztcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpXG4gICAgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9O1xuXG4gIHB1YmxpYyByZWFkb25seSBMSU5FX0hFSUdIVCA9IDE4O1xuXG4gIHByaXZhdGUgX2VkaXRvclJlZjogZWRpdG9yLklDb2RlRWRpdG9yO1xuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcblxuICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRDb25maWcsIHRoaXMuY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gbXVzdCBiZSB0aGVyZSB0byBjbGVhbnVwIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvbW9uYWNvLWVkaXRvci9pc3N1ZXMvODI3XG4gICAgdGhpcy5fd2luZG93LmRlZmluZSA9IG51bGw7XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uRWRpdG9ySW5pdChldmVudCkge1xuICAgIC8vIFRpbWVvdXQgYWxsb3dzIHRoZSBjb250ZW50IHRvIGZ1bGx5IGxvYWQgdG8gYW5kIGNhbGN1bGF0ZSBoZWlnaHRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2VkaXRvclJlZiA9IGV2ZW50O1xuICAgICAgdGhpcy5faW5pdEVkaXRvcigpO1xuICAgICAgdGhpcy5pbml0Lm5leHQoZXZlbnQpO1xuXG4gICAgICBpZiAoIXRoaXMuc2Nyb2xsYWJsZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VkKGUpIHtcbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IGUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gZTtcbiAgICAgIHRoaXMub25DaGFuZ2UoZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFZGl0b3IoKSB7XG4gICAgaWYgKHRoaXMuX2VkaXRvclJlZiAmJiB0aGlzLmNvbmZpZy5hdXRvSGVpZ2h0KSB7XG4gICAgICB0aGlzLl91cGRhdGVFZGl0b3JIZWlnaHQoKTtcblxuICAgICAgdGhpcy5fZWRpdG9yUmVmLm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KChlKSA9PiB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUVkaXRvckhlaWdodCgpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2VkaXRvclJlZi5vbkRpZEJsdXJFZGl0b3JUZXh0KCgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVyLm5leHQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUVkaXRvckhlaWdodCgpIHtcblxuICAgIGNvbnN0IGVkaXRvckRvbU5vZGUgPSB0aGlzLl9lZGl0b3JSZWYuZ2V0RG9tTm9kZSgpO1xuXG4gICAgaWYgKCFlZGl0b3JEb21Ob2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gZWRpdG9yRG9tTm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd2aWV3LWxpbmVzJylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgbGluZUhlaWdodCA9IGNvbnRhaW5lci5maXJzdENoaWxkXG4gICAgPyAoY29udGFpbmVyLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldEhlaWdodFxuICAgIDogdGhpcy5MSU5FX0hFSUdIVDtcblxuICAgIGNvbnN0IGVkaXRvck1vZGVsID0gdGhpcy5fZWRpdG9yUmVmLmdldE1vZGVsKCk7XG5cbiAgICBpZiAoIWVkaXRvck1vZGVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dEhlaWdodCA9IHRoaXMuX2VkaXRvclJlZi5nZXRNb2RlbCgpLmdldExpbmVDb3VudCgpICogbGluZUhlaWdodDtcblxuICAgIC8vIHNldCB0aGUgaGVpZ2h0IGFuZCByZWRvIGxheW91dFxuICAgIGVkaXRvckRvbU5vZGUuc3R5bGUuaGVpZ2h0ID0gbmV4dEhlaWdodCArICdweCc7XG4gICAgdGhpcy51cGRhdGVMYXlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYXlvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdG9yUmVmLmxheW91dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZVNjcm9sbCgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5fZWRpdG9yUmVmLmdldERvbU5vZGUoKTtcblxuICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZSkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9LCB0cnVlKTtcbiAgfVxufVxuIiwiPG5neC1tb25hY28tZWRpdG9yXG4gIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlZCgkZXZlbnQpXCJcbiAgW29wdGlvbnNdPVwiY29uZmlnXCJcbiAgKG9uSW5pdCk9XCJvbkVkaXRvckluaXQoJGV2ZW50KVwiPlxuPC9uZ3gtbW9uYWNvLWVkaXRvcj5cbiJdfQ==
@@ -5,6 +5,14 @@ import { MonacoEditorModule } from 'ngx-monaco-editor';
5
5
  import { FsTextEditorComponent } from './components/text-editor/text-editor.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class FsTextEditorModule {
8
+ static forRoot(config) {
9
+ return {
10
+ ngModule: FsTextEditorModule,
11
+ providers: [
12
+ MonacoEditorModule.forRoot(config).providers,
13
+ ],
14
+ };
15
+ }
8
16
  }
9
17
  FsTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
18
  FsTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorModule, declarations: [FsTextEditorComponent], imports: [CommonModule,
@@ -32,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
32
40
  ]
33
41
  }]
34
42
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdGV4dC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9mcy10ZXh0LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQWlCdkYsTUFBTSxPQUFPLGtCQUFrQjs7Z0hBQWxCLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQUgzQixxQkFBcUIsYUFWckIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXLGFBR1gscUJBQXFCO2lIQVFaLGtCQUFrQixZQWRwQjtZQUNQLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsV0FBVztTQUNaOzRGQVVVLGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7b0JBQ0QsZUFBZSxFQUFFLEVBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmd4LW1vbmFjby1lZGl0b3InO1xuaW1wb3J0IHsgRnNUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTW9uYWNvRWRpdG9yTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNUZXh0RWRpdG9yQ29tcG9uZW50LFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNUZXh0RWRpdG9yQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZzVGV4dEVkaXRvck1vZHVsZSB7XG5cbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdGV4dC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9mcy10ZXh0LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQXlCLE1BQU0sbUJBQW1CLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBa0J2RixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEI7UUFDM0MsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNULGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTO2FBQzdDO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dIQVJVLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQUgzQixxQkFBcUIsYUFWckIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXLGFBR1gscUJBQXFCO2lIQVFaLGtCQUFrQixZQWRwQjtZQUNQLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsV0FBVztTQUNaOzRGQVVVLGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7b0JBQ0QsZUFBZSxFQUFFLEVBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlLCBOZ3hNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICduZ3gtbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1vbmFjb0VkaXRvck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZzVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZzVGV4dEVkaXRvckNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGc1RleHRFZGl0b3JNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBOZ3hNb25hY29FZGl0b3JDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEZzVGV4dEVkaXRvck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnNUZXh0RWRpdG9yTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1vbmFjb0VkaXRvck1vZHVsZS5mb3JSb290KGNvbmZpZykucHJvdmlkZXJzLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0gbW9uYWNvLmVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnM7XG5cblxuZXhwb3J0IGludGVyZmFjZSBGc1RleHRFZGl0b3JDb25maWcgZXh0ZW5kcyBJU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnMge1xuICBhdXRvSGVpZ2h0PzogYm9vbGVhblxufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZGl0b3IgfSBmcm9tICdtb25hY28tZWRpdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBGc1RleHRFZGl0b3JDb25maWcgZXh0ZW5kcyBlZGl0b3IuSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zIHtcbiAgYXV0b0hlaWdodD86IGJvb2xlYW5cbn1cbiJdfQ==
@@ -1,14 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, forwardRef, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
2
+ import { EventEmitter, forwardRef, Component, Inject, Input, Output, ViewChild, NgModule } from '@angular/core';
3
+ import { DOCUMENT, CommonModule } from '@angular/common';
4
4
  import * as i2 from '@angular/forms';
5
5
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
6
  import * as i1 from 'ngx-monaco-editor';
7
7
  import { EditorComponent, MonacoEditorModule } from 'ngx-monaco-editor';
8
8
 
9
9
  class FsTextEditorComponent {
10
- constructor(_element) {
10
+ constructor(_element, _document) {
11
11
  this._element = _element;
12
+ this._document = _document;
12
13
  this.config = {};
13
14
  this.scrollable = false;
14
15
  this.init = new EventEmitter();
@@ -28,11 +29,12 @@ class FsTextEditorComponent {
28
29
  };
29
30
  this.onChange = (_) => { };
30
31
  this.onTouched = () => { };
32
+ this._window = this._document.defaultView;
31
33
  this.LINE_HEIGHT = 18;
32
34
  this._value = '';
33
35
  }
34
36
  get monaco() {
35
- return window.monaco;
37
+ return this._window.monaco;
36
38
  }
37
39
  ;
38
40
  ;
@@ -41,6 +43,10 @@ class FsTextEditorComponent {
41
43
  this.config = Object.assign({}, this.defaultConfig, this.config);
42
44
  }
43
45
  }
46
+ ngOnDestroy() {
47
+ // must be there to cleanup https://github.com/microsoft/monaco-editor/issues/827
48
+ this._window.define = null;
49
+ }
44
50
  get value() {
45
51
  return this._value;
46
52
  }
@@ -109,7 +115,7 @@ class FsTextEditorComponent {
109
115
  }, true);
110
116
  }
111
117
  }
112
- FsTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
118
+ FsTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
113
119
  FsTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsTextEditorComponent, selector: "fs-text-editor", inputs: { config: "config", scrollable: "scrollable" }, outputs: { init: "init", blur: "blur" }, providers: [{
114
120
  provide: NG_VALUE_ACCESSOR,
115
121
  useExisting: forwardRef(() => FsTextEditorComponent),
@@ -127,7 +133,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
127
133
  multi: true
128
134
  }]
129
135
  }]
130
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
136
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Document, decorators: [{
137
+ type: Inject,
138
+ args: [DOCUMENT]
139
+ }] }]; }, propDecorators: { config: [{
131
140
  type: Input
132
141
  }], scrollable: [{
133
142
  type: Input
@@ -141,6 +150,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
141
150
  }] } });
142
151
 
143
152
  class FsTextEditorModule {
153
+ static forRoot(config) {
154
+ return {
155
+ ngModule: FsTextEditorModule,
156
+ providers: [
157
+ MonacoEditorModule.forRoot(config).providers,
158
+ ],
159
+ };
160
+ }
144
161
  }
145
162
  FsTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
146
163
  FsTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsTextEditorModule, declarations: [FsTextEditorComponent], imports: [CommonModule,
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-text-editor.js","sources":["../../src/app/components/text-editor/text-editor.component.ts","../../src/app/components/text-editor/text-editor.component.html","../../src/app/fs-text-editor.module.ts","../../src/public_api.ts","../../src/firestitch-text-editor.ts"],"sourcesContent":["import { Component, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild, ElementRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { EditorComponent } from 'ngx-monaco-editor';\n\nimport ICodeEditor = monaco.editor.ICodeEditor;\n\nimport { FsTextEditorConfig } from '../../interfaces/config.interface';\n\n\n@Component({\n selector: 'fs-text-editor',\n templateUrl: 'text-editor.component.html',\n styleUrls: [ 'text-editor.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsTextEditorComponent),\n multi: true\n }]\n})\nexport class FsTextEditorComponent implements OnInit, ControlValueAccessor {\n\n @Input() public config: FsTextEditorConfig = {};\n @Input() public scrollable = false;\n\n @Output() public init = new EventEmitter();\n @Output() public blur = new EventEmitter();\n @ViewChild(EditorComponent, { static: true }) _editorContainer: EditorComponent;\n\n public defaultConfig: FsTextEditorConfig = {\n minimap: {\n enabled: false\n },\n theme: 'vs-dark',\n automaticLayout: false,\n scrollBeyondLastLine: false,\n autoHeight: true,\n scrollbar: {\n vertical: 'hidden'\n },\n hideCursorInOverviewRuler: true\n };\n\n public onChange = (_: any) => {};\n public onTouched = () => {};\n\n public get monaco() {\n return (<any>window).monaco;\n };\n\n constructor(private _element: ElementRef) {};\n\n public readonly LINE_HEIGHT = 18;\n\n private _editorRef: ICodeEditor;\n private _value = '';\n\n public ngOnInit() {\n\n if (this.config) {\n this.config = Object.assign({}, this.defaultConfig, this.config);\n }\n }\n\n get value() {\n return this._value;\n }\n\n public onEditorInit(event) {\n // Timeout allows the content to fully load to and calculate height\n setTimeout(() => {\n this._editorRef = event;\n this._initEditor();\n this.init.next(event);\n\n if (!this.scrollable) {\n this._disableScroll();\n }\n });\n }\n\n public writeValue(value: any): void {\n this._value = value || '';\n }\n\n public changed(e) {\n if (this._value !== e) {\n this._value = e;\n this.onChange(e);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private _initEditor() {\n if (this._editorRef && this.config.autoHeight) {\n this._updateEditorHeight();\n\n this._editorRef.onDidChangeModelContent((e) => {\n this._updateEditorHeight();\n });\n\n this._editorRef.onDidBlurEditorText(() => {\n this.blur.next();\n });\n }\n }\n\n private _updateEditorHeight() {\n\n const editorDomNode = this._editorRef.getDomNode();\n\n if (!editorDomNode) {\n return;\n }\n\n const container = editorDomNode.getElementsByClassName('view-lines')[0] as HTMLElement;\n const lineHeight = container.firstChild\n ? (container.firstChild as HTMLElement).offsetHeight\n : this.LINE_HEIGHT;\n\n const editorModel = this._editorRef.getModel();\n\n if (!editorModel) {\n return;\n }\n\n const nextHeight = this._editorRef.getModel().getLineCount() * lineHeight;\n\n // set the height and redo layout\n editorDomNode.style.height = nextHeight + 'px';\n this.updateLayout();\n }\n\n public updateLayout(): void {\n this._editorRef.layout();\n }\n\n private _disableScroll() {\n const node = this._editorRef.getDomNode();\n\n node.addEventListener('wheel', (e) => {\n e.stopPropagation();\n }, true);\n }\n}\n","<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\nimport { FsTextEditorComponent } from './components/text-editor/text-editor.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MonacoEditorModule,\n FormsModule,\n ],\n exports: [\n FsTextEditorComponent,\n ],\n entryComponents: [\n ],\n declarations: [\n FsTextEditorComponent,\n ]\n})\nexport class FsTextEditorModule {\n\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nimport { from } from 'rxjs';\n\nexport { FsTextEditorModule } from './app/fs-text-editor.module';\n\nexport { FsTextEditorConfig } from './app/interfaces/config.interface';\n\n\nexport { FsTextEditorComponent } from './app/components/text-editor/text-editor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-text-editor.js","sources":["../../src/app/components/text-editor/text-editor.component.ts","../../src/app/components/text-editor/text-editor.component.html","../../src/app/fs-text-editor.module.ts","../../src/public_api.ts","../../src/firestitch-text-editor.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ElementRef,\n OnDestroy,\n Inject,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DOCUMENT } from '@angular/common';\n\nimport { EditorComponent } from 'ngx-monaco-editor';\nimport { editor } from 'monaco-editor';\n\nimport { FsTextEditorConfig } from '../../interfaces/config.interface';\n\n\n@Component({\n selector: 'fs-text-editor',\n templateUrl: 'text-editor.component.html',\n styleUrls: [ 'text-editor.component.scss' ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsTextEditorComponent),\n multi: true\n }]\n})\nexport class FsTextEditorComponent implements OnInit, OnDestroy, ControlValueAccessor {\n\n @Input() public config: FsTextEditorConfig = {};\n @Input() public scrollable = false;\n\n @Output() public init = new EventEmitter();\n @Output() public blur = new EventEmitter();\n @ViewChild(EditorComponent, { static: true }) _editorContainer: EditorComponent;\n\n public defaultConfig: FsTextEditorConfig = {\n minimap: {\n enabled: false\n },\n theme: 'vs-dark',\n automaticLayout: false,\n scrollBeyondLastLine: false,\n autoHeight: true,\n scrollbar: {\n vertical: 'hidden'\n },\n hideCursorInOverviewRuler: true\n };\n\n public onChange = (_: any) => {};\n public onTouched = () => {};\n\n private _window: any = this._document.defaultView;\n\n public get monaco() {\n return this._window.monaco;\n };\n\n constructor(\n private _element: ElementRef,\n @Inject(DOCUMENT)\n private _document: Document,\n ) {};\n\n public readonly LINE_HEIGHT = 18;\n\n private _editorRef: editor.ICodeEditor;\n private _value = '';\n\n public ngOnInit() {\n\n if (this.config) {\n this.config = Object.assign({}, this.defaultConfig, this.config);\n }\n }\n\n public ngOnDestroy() {\n // must be there to cleanup https://github.com/microsoft/monaco-editor/issues/827\n this._window.define = null;\n }\n\n get value() {\n return this._value;\n }\n\n public onEditorInit(event) {\n // Timeout allows the content to fully load to and calculate height\n setTimeout(() => {\n this._editorRef = event;\n this._initEditor();\n this.init.next(event);\n\n if (!this.scrollable) {\n this._disableScroll();\n }\n });\n }\n\n public writeValue(value: any): void {\n this._value = value || '';\n }\n\n public changed(e) {\n if (this._value !== e) {\n this._value = e;\n this.onChange(e);\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private _initEditor() {\n if (this._editorRef && this.config.autoHeight) {\n this._updateEditorHeight();\n\n this._editorRef.onDidChangeModelContent((e) => {\n this._updateEditorHeight();\n });\n\n this._editorRef.onDidBlurEditorText(() => {\n this.blur.next();\n });\n }\n }\n\n private _updateEditorHeight() {\n\n const editorDomNode = this._editorRef.getDomNode();\n\n if (!editorDomNode) {\n return;\n }\n\n const container = editorDomNode.getElementsByClassName('view-lines')[0] as HTMLElement;\n const lineHeight = container.firstChild\n ? (container.firstChild as HTMLElement).offsetHeight\n : this.LINE_HEIGHT;\n\n const editorModel = this._editorRef.getModel();\n\n if (!editorModel) {\n return;\n }\n\n const nextHeight = this._editorRef.getModel().getLineCount() * lineHeight;\n\n // set the height and redo layout\n editorDomNode.style.height = nextHeight + 'px';\n this.updateLayout();\n }\n\n public updateLayout(): void {\n this._editorRef.layout();\n }\n\n private _disableScroll() {\n const node = this._editorRef.getDomNode();\n\n node.addEventListener('wheel', (e) => {\n e.stopPropagation();\n }, true);\n }\n}\n","<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MonacoEditorModule, NgxMonacoEditorConfig } from 'ngx-monaco-editor';\nimport { FsTextEditorComponent } from './components/text-editor/text-editor.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MonacoEditorModule,\n FormsModule,\n ],\n exports: [\n FsTextEditorComponent,\n ],\n entryComponents: [\n ],\n declarations: [\n FsTextEditorComponent,\n ]\n})\nexport class FsTextEditorModule {\n static forRoot(config?: NgxMonacoEditorConfig): ModuleWithProviders<FsTextEditorModule> {\n return {\n ngModule: FsTextEditorModule,\n providers: [\n MonacoEditorModule.forRoot(config).providers,\n ],\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nimport { from } from 'rxjs';\n\nexport { FsTextEditorModule } from './app/fs-text-editor.module';\n\nexport { FsTextEditorConfig } from './app/interfaces/config.interface';\n\n\nexport { FsTextEditorComponent } from './app/components/text-editor/text-editor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/text-editor",
3
- "version": "12.1.0",
3
+ "version": "12.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-text-editor"
@@ -17,16 +17,23 @@
17
17
  "url": "https://github.com/Firestitch/ngx-text-editor/issues"
18
18
  },
19
19
  "peerDependencies": {
20
- "ngx-monaco-editor": ">=7.0.0"
20
+ "ngx-monaco-editor": ">=12.0.0"
21
+ },
22
+ "dependencies": {
23
+ "monaco-editor": "^0.33.0",
24
+ "ngx-monaco-editor": "^12.0.0",
25
+ "tslib": "^2.2.0"
21
26
  },
22
27
  "sideEffects": false,
28
+ "overrides": {
29
+ "ngx-monaco-editor": {
30
+ "monaco-editor": "$monaco-editor"
31
+ }
32
+ },
23
33
  "main": "bundles/firestitch-text-editor.umd.js",
24
34
  "module": "fesm2015/firestitch-text-editor.js",
25
35
  "es2015": "fesm2015/firestitch-text-editor.js",
26
36
  "esm2015": "esm2015/firestitch-text-editor.js",
27
37
  "fesm2015": "fesm2015/firestitch-text-editor.js",
28
- "typings": "firestitch-text-editor.d.ts",
29
- "dependencies": {
30
- "tslib": "^2.2.0"
31
- }
38
+ "typings": "firestitch-text-editor.d.ts"
32
39
  }