ang-jsoneditor
Version:
[](https://travis-ci.org/mariohmol/ang-jsoneditor)
1 lines • 17.8 kB
Source Map (JSON)
{"version":3,"file":"ang-jsoneditor.mjs","sources":["../../../projects/ang-jsoneditor/src/lib/jsoneditoroptions.ts","../../../projects/ang-jsoneditor/src/lib/jsoneditor.component.ts","../../../projects/ang-jsoneditor/src/public-api.ts","../../../projects/ang-jsoneditor/src/ang-jsoneditor.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n\nexport type JsonEditorMode = 'tree' | 'view' | 'form' | 'code' | 'text';\n\nexport interface JsonEditorTreeNode {\n field: String,\n value: String,\n path: String[]\n}\n\nexport interface IError {\n path: (string | number)[];\n message: string;\n}\n\nexport class JsonEditorOptions {\n public ace: any;\n public ajv: Object;\n\n\n /**\n * {function} onChange Callback method, triggered\n on change of contents.\n Does not pass the contents itself.\n See also `onChangeJSON` and\n `onChangeText`.\n */\n public onChange: () => void;\n\n /**\n * // {function} onChangeJSON Callback method, triggered\n// in modes on change of contents,\n// passing the changed contents\n// as JSON.\n// Only applicable for modes\n// 'tree', 'view', and 'form'.\n */\n public onChangeJSON?: () => void;\n\n\n public onNodeName: () => void;\n public onCreateMenu: (items: Array<any>, node: object) => Array<any>;\n public onColorPicker: () => void;\n\n /**\n // {function} onChangeText Callback method, triggered\n // in modes on change of contents,\n // passing the changed contents\n // as stringified JSON.\n */\n public onChangeText: (jsonstr: string) => void;\n\n\n /**\n * {function} onSelectionChange Callback method,\n triggered on node selection change\n Only applicable for modes\n 'tree', 'view', and 'form'\n */\n public onSelectionChange: () => void;\n\n /**\n * {function} onTextSelectionChange Callback method,\n triggered on text selection change\n Only applicable for modes\n */\n public onTextSelectionChange: () => void;\n\n\n /**\n * // {function} onEvent Callback method, triggered\n // when an event occurs in\n // a JSON field or value.\n // Only applicable for\n // modes 'form', 'tree' and\n // 'view'\n */\n public onEvent: () => void;\n\n /**\n * // * {function} onFocus Callback method, triggered\n// when the editor comes into focus,\n// passing an object {type, target},\n// Applicable for all modes\n */\n public onFocus: () => void;\n\n // * {function} onBlur Callback method, triggered\n // when the editor goes out of focus,\n // passing an object {type, target},\n // Applicable for all modes\n public onBlur: () => void;\n\n /**\n * // * {function} onClassName Callback method, triggered\n// when a Node DOM is rendered. Function returns\n// a css class name to be set on a node.\n// Only applicable for\n// modes 'form', 'tree' and\n// 'view'\n */\n public onClassName: (node: JsonEditorTreeNode) => void;\n\n public onEditable: (node: JsonEditorTreeNode | {}) => boolean | { field: boolean, value: boolean };\n\n /**\n * {function} onError Callback method, triggered\n when an error occurs\n */\n public onError: (error: any) => void;\n public onModeChange: (newMode: JsonEditorMode, oldMode: JsonEditorMode) => void;\n public onValidate: (json: Object) => IError[];\n public onValidationError: (errors: object[]) => void;\n\n public enableSort: boolean;\n public enableTransform: boolean;\n public escapeUnicode: boolean;\n public expandAll?: boolean;\n public sortObjectKeys: boolean;\n public history: boolean;\n public mode: JsonEditorMode;\n public modes: JsonEditorMode[];\n public name: String;\n public schema: Object;\n public search: boolean;\n public indentation: Number;\n public templates: Object;\n public theme: Number;\n public language: String;\n public languages: Object;\n public limitDragging: boolean;\n\n /**\n * Adds main menu bar - Contains format, sort, transform, search etc. functionality. True\n * by default. Applicable in all types of mode.\n */\n public mainMenuBar: boolean;\n\n /**\n * Adds navigation bar to the menu - the navigation bar visualize the current position on\n * the tree structure as well as allows breadcrumbs navigation.\n * True by default.\n * Only applicable when mode is 'tree', 'form' or 'view'.\n */\n public navigationBar: boolean;\n\n /**\n * Adds status bar to the bottom of the editor - the status bar shows the cursor position\n * and a count of the selected characters.\n * True by default.\n * Only applicable when mode is 'code' or 'text'.\n */\n public statusBar: boolean;\n\n constructor() {\n this.enableSort = true;\n this.enableTransform = true;\n this.escapeUnicode = false;\n this.expandAll = false;\n this.sortObjectKeys = false;\n this.history = true;\n this.mode = 'tree';\n this.search = true;\n this.indentation = 2;\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-output-native */\n\nimport JSONEditor from 'jsoneditor';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IError, JsonEditorMode, JsonEditorOptions, JsonEditorTreeNode } from './jsoneditoroptions';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'json-editor',\n standalone: true,\n template: `<div [id]=\"id\" #jsonEditorContainer></div>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => JsonEditorComponent),\n multi: true\n }\n ],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class JsonEditorComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @ViewChild('jsonEditorContainer', { static: true }) jsonEditorContainer: ElementRef;\n @Input() options: JsonEditorOptions = new JsonEditorOptions();\n @Output()\n change: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n jsonChange: EventEmitter<any> = new EventEmitter<any>();\n @Input() debug = false;\n public optionsChanged = false;\n\n disabled = false;\n isFocused = false;\n\n public id = 'angjsoneditor' + Math.floor(Math.random() * 1000000);\n private _data: Object = {};\n private editor: JSONEditor;\n\n constructor() { }\n\n @Input('data')\n set data(value: Object) {\n this._data = value;\n if (this.editor) {\n this.editor.destroy();\n this.ngOnInit();\n }\n }\n\n ngOnInit() {\n let optionsBefore = this.options;\n if (!this.optionsChanged && this.editor) {\n //TODO: check if this is needed\n optionsBefore = (this.editor as any).options;\n }\n\n if (!this.options.onChangeJSON && this.jsonChange) {\n this.options.onChangeJSON = this.onChangeJSON;\n }\n if (!this.options.onChange && this.change) {\n this.options.onChange = this.onChange;\n }\n const optionsCopy = Object.assign({}, optionsBefore);\n\n // expandAll is an option only supported by ang-jsoneditor and not by the the original jsoneditor.\n delete optionsCopy.expandAll;\n if (this.debug) {\n console.log(optionsCopy, this._data);\n }\n if (!this.jsonEditorContainer.nativeElement) {\n console.error(`Can't find the ElementRef reference for jsoneditor)`);\n }\n\n if (\n optionsCopy.mode === 'text' || optionsCopy.mode === 'code' ||\n (\n optionsCopy.modes &&\n (optionsCopy.modes.indexOf('text') !== -1 || optionsCopy.modes.indexOf('code') !== -1)\n )\n ) {\n optionsCopy.onChangeJSON = undefined;\n }\n this.editor = new JSONEditor(this.jsonEditorContainer.nativeElement, optionsCopy as any, this._data);\n\n if (this.options.expandAll) {\n this.editor.expandAll();\n }\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n\n /**\n * ngModel\n * ControlValueAccessor\n */\n\n // ControlValueAccessor implementation\n writeValue(value: any) {\n this.data = value;\n }\n\n // Implemented as part of ControlValueAccessor\n registerOnChange(fn: any) {\n this.onChangeModel = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onChange = () => {\n if (this.editor) {\n try {\n const json = this.editor.get();\n this.onChangeModel(json);\n this.change.emit(json);\n } catch (error) {\n if (this.debug) {\n console.log(error);\n }\n }\n }\n }\n\n public onChangeJSON = () => {\n if (this.editor) {\n try {\n this.jsonChange.emit(this.editor.get());\n } catch (error) {\n if (this.debug) {\n console.log(error);\n }\n }\n }\n }\n\n\n /**\n * JSON EDITOR FUNCTIONS\n */\n\n public collapseAll() {\n this.editor.collapseAll();\n }\n\n public expandAll() {\n this.editor.expandAll();\n }\n\n public focus() {\n this.editor.focus();\n }\n\n public get(): JSON {\n return this.editor.get();\n }\n\n public getMode(): JsonEditorMode {\n return this.editor.getMode() as JsonEditorMode;\n }\n\n public getName(): string {\n return this.editor.getName()!;\n }\n\n public getText(): string {\n return this.editor.getText();\n }\n\n public set(json: JSON) {\n this.editor.set(json);\n }\n\n public setMode(mode: JsonEditorMode) {\n this.editor.setMode(mode);\n }\n\n public setName(name: string) {\n this.editor.setName(name);\n }\n\n public setSelection(start: any, end: any) {\n this.editor.setSelection(start, end);\n }\n\n public getSelection(): any {\n return this.editor.getSelection();\n }\n\n public getValidateSchema(): any {\n //TODO: check if this is needed\n return (this.editor as any).validateSchema;\n }\n\n public setSchema(schema: any, schemaRefs: any) {\n this.editor.setSchema(schema, schemaRefs);\n }\n\n public search(query: string) {\n //TODO: check if this is needed\n (this.editor as any).search(query);\n }\n\n public setOptions(newOptions: JsonEditorOptions) {\n if (this.editor) {\n this.editor.destroy();\n }\n this.optionsChanged = true;\n this.options = newOptions;\n this.ngOnInit();\n }\n\n public update(json: JSON) {\n this.editor.update(json);\n }\n\n public destroy() {\n this.editor.destroy();\n }\n\n public getEditor(){\n //TODO: made it any because of the missing type definition\n return this.editor as any;\n }\n\n public isValidJson() {\n try {\n JSON.parse(this.getText());\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n private onTouched = () => {\n };\n\n // Implemented as part of ControlValueAccessor.\n private onChangeModel = (e: any) => {\n };\n}\n\nexport { JsonEditorOptions, JsonEditorMode, JsonEditorTreeNode, IError };\n","/*\n * Public API Surface of my-lib\n */\n\nexport * from './lib/jsoneditor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}