{"version":3,"file":"ace-editor-ng.mjs","sources":["../../src/directive.ts","../../src/component.ts","../../src/module.ts","../../ace-editor-ng.ts"],"sourcesContent":["import { Directive, EventEmitter, Output, ElementRef, Input, OnInit, OnDestroy, NgZone } from \"@angular/core\";\r\nimport \"brace\";\r\nimport \"brace/theme/monokai\";\r\n\r\n\r\ndeclare var ace: any;\r\n\r\n@Directive({\r\n    selector: '[ace-editor]'\r\n})\r\nexport class AceEditorDirective implements OnInit, OnDestroy {\r\n    @Output() textChanged = new EventEmitter();\r\n    @Output() textChange = new EventEmitter();\r\n    _options: any = {};\r\n    _readOnly: boolean = false;\r\n    _theme: string = \"monokai\";\r\n    _mode: any = \"html\";\r\n    _autoUpdateContent: boolean = true;\r\n    _durationBeforeCallback: number = 0;\r\n    _text: string = \"\";\r\n    editor: any;\r\n    oldText: any;\r\n    timeoutSaving: any;\r\n\r\n    constructor(elementRef: ElementRef, private zone: NgZone) {\r\n        let el = elementRef.nativeElement;\r\n        this.zone.runOutsideAngular(() => {\r\n            this.editor = ace[\"edit\"](el);\r\n        });\r\n        this.editor.$blockScrolling = Infinity;\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.init();\r\n        this.initEvents();\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.editor.destroy();\r\n    }\r\n\r\n    init() {\r\n        this.editor.setOptions(this._options || {});\r\n        this.editor.setTheme(`ace/theme/${this._theme}`);\r\n        this.setMode(this._mode);\r\n        this.editor.setReadOnly(this._readOnly);\r\n    }\r\n\r\n    initEvents() {\r\n        this.editor.on('change', () => this.updateText());\r\n        this.editor.on('paste', () => this.updateText());\r\n    }\r\n\r\n    updateText() {\r\n        let newVal = this.editor.getValue();\r\n        if (newVal === this.oldText) {\r\n            return;\r\n        }\r\n        if (!this._durationBeforeCallback) {\r\n            this._text = newVal;\r\n            this.zone.run(() => {\r\n                this.textChange.emit(newVal);\r\n                this.textChanged.emit(newVal);\r\n            });\r\n        } else {\r\n            if (this.timeoutSaving != null) {\r\n                clearTimeout(this.timeoutSaving);\r\n            }\r\n\r\n            this.timeoutSaving = setTimeout(() => {\r\n                this._text = newVal;\r\n                this.zone.run(() => {\r\n                    this.textChange.emit(newVal);\r\n                    this.textChanged.emit(newVal);\r\n                });\r\n                this.timeoutSaving = null;\r\n            }, this._durationBeforeCallback);\r\n        }\r\n        this.oldText = newVal;\r\n    }\r\n\r\n    @Input() set options(options: any) {\r\n        this._options = options;\r\n        this.editor.setOptions(options || {});\r\n    }\r\n\r\n    @Input() set readOnly(readOnly: any) {\r\n        this._readOnly = readOnly;\r\n        this.editor.setReadOnly(readOnly);\r\n    }\r\n\r\n    @Input() set theme(theme: any) {\r\n        this._theme = theme;\r\n        this.editor.setTheme(`ace/theme/${theme}`);\r\n    }\r\n\r\n    @Input() set mode(mode: any) {\r\n        this.setMode(mode);\r\n    }\r\n\r\n    setMode(mode: any) {\r\n        this._mode = mode;\r\n        if (typeof this._mode === 'object') {\r\n            this.editor.getSession().setMode(this._mode);\r\n        } else {\r\n            this.editor.getSession().setMode(`ace/mode/${this._mode}`);\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    get text() {\r\n        return this._text;\r\n    }\r\n\r\n    set text(text: string) {\r\n        this.setText(text);\r\n    }\r\n\r\n    setText(text: any) {\r\n        if (this._text !== text) {\r\n            if (text === null || text === undefined) {\r\n                text = \"\";\r\n            }\r\n\r\n            if (this._autoUpdateContent === true) {\r\n                this._text = text;\r\n                this.editor.setValue(text);\r\n                this.editor.clearSelection();\r\n            }\r\n        }\r\n    }\r\n\r\n    @Input() set autoUpdateContent(status: any) {\r\n        this._autoUpdateContent = status;\r\n    }\r\n\r\n    @Input() set durationBeforeCallback(num: number) {\r\n        this.setDurationBeforeCallback(num);\r\n    }\r\n\r\n    setDurationBeforeCallback(num: number) {\r\n        this._durationBeforeCallback = num;\r\n    }\r\n\r\n    get aceEditor() {\r\n        return this.editor;\r\n    }\r\n}\r\n","import { Component, EventEmitter, Output, ElementRef, Input, forwardRef, OnInit, OnDestroy, NgZone } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport \"brace\";\r\nimport \"brace/theme/monokai\";\r\n\r\ndeclare var ace: any;\r\n\r\n@Component({\r\n    selector: 'ace-editor',\r\n    template: '',\r\n    styles: [':host { display:block;width:100%; }'],\r\n    providers: [{\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => AceEditorComponent),\r\n        multi: true\r\n    }]\r\n})\r\nexport class AceEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {\r\n    @Output() textChanged = new EventEmitter();\r\n    @Output() textChange = new EventEmitter();\r\n    @Input() style: any = {};\r\n    _options: any = {};\r\n    _readOnly: boolean = false;\r\n    _theme: string = \"monokai\";\r\n    _mode: any = \"html\";\r\n    _autoUpdateContent: boolean = true;\r\n    _editor: any;\r\n    _durationBeforeCallback: number = 0;\r\n    _text: string = \"\";\r\n    oldText: any;\r\n    timeoutSaving: any;\r\n\r\n    constructor(elementRef: ElementRef, private zone: NgZone) {\r\n        let el = elementRef.nativeElement;\r\n        this.zone.runOutsideAngular(() => {\r\n            this._editor = ace['edit'](el);\r\n        });\r\n        this._editor.$blockScrolling = Infinity;\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.init();\r\n        this.initEvents();\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this._editor.destroy();\r\n    }\r\n\r\n    init() {\r\n        this.setOptions(this._options || {});\r\n        this.setTheme(this._theme);\r\n        this.setMode(this._mode);\r\n        this.setReadOnly(this._readOnly);\r\n    }\r\n\r\n    initEvents() {\r\n        this._editor.on('change', () => this.updateText());\r\n        this._editor.on('paste', () => this.updateText());\r\n    }\r\n\r\n    updateText() {\r\n        let newVal = this._editor.getValue();\r\n        if (newVal === this.oldText) {\r\n            return;\r\n        }\r\n        if (!this._durationBeforeCallback) {\r\n            this._text = newVal;\r\n            this.zone.run(() => {\r\n                this.textChange.emit(newVal);\r\n                this.textChanged.emit(newVal);\r\n            });\r\n            this._onChange(newVal);\r\n        } else {\r\n            if (this.timeoutSaving) {\r\n                clearTimeout(this.timeoutSaving);\r\n            }\r\n\r\n            this.timeoutSaving = setTimeout(() => {\r\n                this._text = newVal;\r\n                this.zone.run(() => {\r\n                    this.textChange.emit(newVal);\r\n                    this.textChanged.emit(newVal);\r\n                });\r\n                this.timeoutSaving = null;\r\n            }, this._durationBeforeCallback);\r\n        }\r\n        this.oldText = newVal;\r\n    }\r\n\r\n    @Input() set options(options: any) {\r\n        this.setOptions(options);\r\n    }\r\n\r\n    setOptions(options: any) {\r\n        this._options = options;\r\n        this._editor.setOptions(options || {});\r\n    }\r\n\r\n    @Input() set readOnly(readOnly: any) {\r\n        this.setReadOnly(readOnly);\r\n    }\r\n\r\n    setReadOnly(readOnly: any) {\r\n        this._readOnly = readOnly;\r\n        this._editor.setReadOnly(readOnly);\r\n    }\r\n\r\n    @Input() set theme(theme: any) {\r\n        this.setTheme(theme);\r\n    }\r\n\r\n    setTheme(theme: any) {\r\n        this._theme = theme;\r\n        this._editor.setTheme(`ace/theme/${theme}`);\r\n    }\r\n\r\n    @Input() set mode(mode: any) {\r\n        this.setMode(mode);\r\n    }\r\n\r\n    setMode(mode: any) {\r\n        this._mode = mode;\r\n        if (typeof this._mode === 'object') {\r\n            this._editor.getSession().setMode(this._mode);\r\n        } else {\r\n            this._editor.getSession().setMode(`ace/mode/${this._mode}`);\r\n        }\r\n    }\r\n\r\n    get value() {\r\n        return this.text;\r\n    }\r\n\r\n    @Input()\r\n    set value(value: string) {\r\n        this.setText(value);\r\n    }\r\n\r\n    writeValue(value: any) {\r\n        this.setText(value);\r\n    }\r\n\r\n    private _onChange = (_: any) => {\r\n    };\r\n\r\n    registerOnChange(fn: any) {\r\n        this._onChange = fn;\r\n    }\r\n    \r\n    registerOnTouched(fn: any) {}\r\n\r\n    get text() {\r\n        return this._text;\r\n    }\r\n\r\n    @Input()\r\n    set text(text: string) {\r\n        this.setText(text);\r\n    }\r\n\r\n    setText(text: any) {\r\n        if (text === null || text === undefined) {\r\n            text = \"\";\r\n        }\r\n        if (this._text !== text && this._autoUpdateContent === true) {\r\n            this._text = text;\r\n            this._editor.setValue(text);\r\n            this._onChange(text);\r\n            this._editor.clearSelection();\r\n        }\r\n    }\r\n\r\n    @Input() set autoUpdateContent(status: any) {\r\n        this.setAutoUpdateContent(status);\r\n    }\r\n\r\n    setAutoUpdateContent(status: any) {\r\n        this._autoUpdateContent = status;\r\n    }\r\n\r\n    @Input() set durationBeforeCallback(num: number) {\r\n        this.setDurationBeforeCallback(num);\r\n    }\r\n\r\n    setDurationBeforeCallback(num: number) {\r\n        this._durationBeforeCallback = num;\r\n    }\r\n\r\n    getEditor() {\r\n        return this._editor;\r\n    }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {AceEditorComponent} from \"./component\";\r\nimport {AceEditorDirective} from \"./directive\";\r\n\r\nconst list = [\r\n    AceEditorComponent,\r\n    AceEditorDirective\r\n]\r\n\r\n@NgModule({\r\n    declarations: [\r\n        ...list\r\n    ],\r\n    imports: [],\r\n    providers: [],\r\n    exports: list\r\n})\r\nexport class AceEditorModule {\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}