ngx-json-builder
Version:
## About this repository This is a fork of mariohmol's [ang-jsoneditor](https://github.com/mariohmol/ang-jsoneditor) with support for Angular 16. This repository will probably become stale, when the original will be actively maintained again.
1 lines • 18.2 kB
Source Map (JSON)
{"version":3,"file":"ngx-json-builder.mjs","sources":["../../../projects/ngx-json-builder/src/lib/jsoneditor/jsoneditoroptions.ts","../../../projects/ngx-json-builder/src/lib/jsoneditor/jsoneditor.component.ts","../../../projects/ngx-json-builder/src/lib/ngx-json-builder.module.ts","../../../projects/ngx-json-builder/src/public-api.ts","../../../projects/ngx-json-builder/src/ngx-json-builder.ts"],"sourcesContent":["export type JsonEditorMode = 'tree' | 'view' | 'form' | 'code' | 'text';\n\nexport interface JsonEditorTreeNode {\n\tfield: String;\n\tvalue: String;\n\tpath: String[];\n}\n\nexport interface IError {\n\tpath: (string | number)[];\n\tmessage: string;\n}\n\nexport class JsonEditorOptions {\n\tace: any;\n\tajv: Object;\n\n\t/**\n\t * {function} onChange Callback method, triggered\n\t * on change of contents.\n\t * Does not pass the contents itself.\n\t * See also `onChangeJSON` and\n\t * `onChangeText`.\n\t */\n\tonChange: () => void;\n\n\t/**\n\t * {function} onChangeJSON Callback method, triggered\n\t * in modes on change of contents,\n\t * passing the changed contents\n\t * as JSON.\n\t * Only applicable for modes\n\t * 'tree', 'view', and 'form'.\n\t */\n\tonChangeJSON: () => void;\n\n\tonNodeName: () => void;\n\tonCreateMenu: () => void;\n\tonColorPicker: () => void;\n\n\t/**\n\t * {function} onChangeText Callback method, triggered\n\t * in modes on change of contents,\n\t * passing the changed contents\n\t * as stringified JSON.\n\t */\n\tonChangeText: (jsonstr: string) => void;\n\n\t/**\n * {function} onSelectionChange Callback method,\n triggered on node selection change\n Only applicable for modes\n 'tree', 'view', and 'form'\n */\n\tonSelectionChange: () => void;\n\n\t/**\n* {function} onTextSelectionChange Callback method,\n triggered on text selection change\n Only applicable for modes\n*/\n\tonTextSelectionChange: () => void;\n\n\t/**\n\t * {function} onEvent Callback method, triggered\n\t * when an event occurs in\n\t * a JSON field or value.\n\t * Only applicable for\n\t * modes 'form', 'tree' and\n\t * 'view'\n\t */\n\tonEvent: () => void;\n\n\t/**\n\t * * * {function} onFocus Callback method, triggered\n\t * when the editor comes into focus,\n\t * passing an object {type, target},\n\t * Applicable for all modes\n\t */\n\tonFocus: () => void;\n\n\t/**\n\t * {function} onBlur Callback method, triggered\n\t * when the editor goes out of focus,\n\t * passing an object {type, target},\n\t * Applicable for all modes\n\t */\n\tonBlur: () => void;\n\n\t/**\n\t * * * {function} onClassName Callback method, triggered\n\t * when a Node DOM is rendered. Function returns\n\t * a css class name to be set on a node.\n\t * Only applicable for\n\t * modes 'form', 'tree' and\n\t * 'view'\n\t */\n\tonClassName: () => void;\n\n\tonEditable: (\n\t\tnode: JsonEditorTreeNode | {}\n\t) => boolean | { field: boolean; value: boolean };\n\n\t/**\n\t * {function} onError Callback method, triggered\n\t * when an error occurs\n\t */\n\tonError: (error: any) => void;\n\tonModeChange: (newMode: JsonEditorMode, oldMode: JsonEditorMode) => void;\n\tonValidate: (json: Object) => IError[];\n\tonValidationError: (errors: object[]) => void;\n\n\tenableSort: boolean;\n\tenableTransform: boolean;\n\tescapeUnicode: boolean;\n\texpandAll: boolean;\n\tsortObjectKeys: boolean;\n\thistory: boolean;\n\tmode: JsonEditorMode;\n\tmodes: JsonEditorMode[];\n\tname: String;\n\tschema: Object;\n\tsearch: boolean;\n\tindentation: Number;\n\ttemplate: Object;\n\ttheme: Number;\n\tlanguage: String;\n\tlanguages: Object;\n\n\t/**\n\t * Adds main menu bar - Contains format, sort, transform, search etc. functionality. True\n\t * by default. Applicable in all types of mode.\n\t */\n\tmainMenuBar: boolean;\n\n\t/**\n\t * Adds navigation bar to the menu - the navigation bar visualize the current position on\n\t * the tree structure as well as allows breadcrumbs navigation.\n\t * True by default.\n\t * Only applicable when mode is 'tree', 'form' or 'view'.\n\t */\n\tnavigationBar: boolean;\n\n\t/**\n\t * Adds status bar to the bottom of the editor - the status bar shows the cursor position\n\t * and a count of the selected characters.\n\t * True by default.\n\t * Only applicable when mode is 'code' or 'text'.\n\t */\n\tstatusBar: boolean;\n\n\tconstructor() {\n\t\tthis.enableSort = true;\n\t\tthis.enableTransform = true;\n\t\tthis.escapeUnicode = false;\n\t\tthis.expandAll = false;\n\t\tthis.sortObjectKeys = false;\n\t\tthis.history = true;\n\t\tthis.mode = 'tree';\n\t\tthis.search = true;\n\t\tthis.indentation = 2;\n\t}\n}\n","import {\n\tComponent,\n\tElementRef,\n\tInput,\n\tOnInit,\n\tOnDestroy,\n\tViewChild,\n\tOutput,\n\tEventEmitter,\n\tforwardRef,\n\tChangeDetectionStrategy\n} from '@angular/core';\nimport JSONEditor from 'jsoneditor';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n\tJsonEditorOptions,\n\tJsonEditorMode,\n\tJsonEditorTreeNode,\n\tIError\n} from './jsoneditoroptions';\n\n@Component({\n\t// tslint:disable-next-line:component-selector\n\tselector: 'json-editor',\n\ttemplate: `<div [id]=\"id\" #jsonEditorContainer></div>`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => JsonEditorComponent),\n\t\t\tmulti: true\n\t\t}\n\t],\n\tpreserveWhitespaces: false,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class JsonEditorComponent\n\timplements ControlValueAccessor, OnInit, OnDestroy\n{\n\tprivate editor: any;\n\tpublic id = 'angjsoneditor' + Math.floor(Math.random() * 1000000);\n\tdisabled = false;\n\tisFocused = false;\n\n\tpublic optionsChanged = false;\n\n\t@ViewChild('jsonEditorContainer', { static: true })\n\tjsonEditorContainer: ElementRef;\n\n\tprivate _data: Object = {};\n\n\t@Input() options: JsonEditorOptions = new JsonEditorOptions();\n\t@Input('data')\n\tset data(value: Object) {\n\t\tthis._data = value;\n\t\tif (this.editor) {\n\t\t\tthis.editor.destroy();\n\t\t\tthis.ngOnInit();\n\t\t}\n\t}\n\t@Input() debug = false;\n\n\t@Output()\n\tchange: EventEmitter<any> = new EventEmitter<any>();\n\t@Output()\n\tjsonChange: EventEmitter<any> = new EventEmitter<any>();\n\n\tconstructor() {}\n\n\tngOnInit() {\n\t\tlet optionsBefore = this.options;\n\t\tif (!this.optionsChanged && this.editor) {\n\t\t\toptionsBefore = this.editor.options;\n\t\t}\n\n\t\tif (!this.options.onChangeJSON && this.jsonChange) {\n\t\t\tthis.options.onChangeJSON = this.onChangeJSON.bind(this);\n\t\t}\n\t\tif (!this.options.onChange && this.change) {\n\t\t\tthis.options.onChange = this.onChange.bind(this);\n\t\t}\n\t\tconst optionsCopy = Object.assign({}, optionsBefore);\n\n\t\t// expandAll is an option only supported by ngx-json-builder and not by the the original jsoneditor.\n\t\tdelete optionsCopy.expandAll;\n\t\tif (this.debug) {\n\t\t\tconsole.log(optionsCopy, this._data);\n\t\t}\n\t\tif (!this.jsonEditorContainer.nativeElement) {\n\t\t\tconsole.error(\n\t\t\t\t`Can't find the ElementRef reference for jsoneditor)`\n\t\t\t);\n\t\t}\n\n\t\tif (optionsCopy.mode === 'text' || optionsCopy.mode === 'code') {\n\t\t\toptionsCopy.onChangeJSON = null;\n\t\t}\n\t\tthis.editor = new JSONEditor(\n\t\t\tthis.jsonEditorContainer.nativeElement,\n\t\t\toptionsCopy,\n\t\t\tthis._data\n\t\t);\n\n\t\tif (this.options.expandAll) {\n\t\t\tthis.editor.expandAll();\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.destroy();\n\t}\n\n\t/**\n\t * ngModel\n\t * ControlValueAccessor\n\t */\n\n\t// ControlValueAccessor implementation\n\twriteValue(value: any) {\n\t\tthis.data = value;\n\t}\n\n\t// Implemented as part of ControlValueAccessor\n\tregisterOnChange(fn) {\n\t\tthis.onChangeModel = fn;\n\t}\n\n\t// Implemented as part of ControlValueAccessor.\n\tregisterOnTouched(fn) {\n\t\tthis.onTouched = fn;\n\t}\n\n\t// Implemented as part of ControlValueAccessor.\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t// Implemented as part of ControlValueAccessor.\n\tprivate onTouched = () => {};\n\n\t// Implemented as part of ControlValueAccessor.\n\tprivate onChangeModel = (e) => {};\n\n\tpublic onChange(e) {\n\t\tif (this.editor) {\n\t\t\ttry {\n\t\t\t\tconst json = this.editor.get();\n\t\t\t\tthis.onChangeModel(json);\n\t\t\t\tthis.change.emit(json);\n\t\t\t} catch (e) {\n\t\t\t\tif (this.debug) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic onChangeJSON(e) {\n\t\tif (this.editor) {\n\t\t\ttry {\n\t\t\t\tthis.jsonChange.emit(this.editor.get());\n\t\t\t} catch (e) {\n\t\t\t\tif (this.debug) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * JSON EDITOR FUNCTIONS\n\t */\n\n\tpublic collapseAll() {\n\t\tthis.editor.collapseAll();\n\t}\n\n\tpublic expandAll() {\n\t\tthis.editor.expandAll();\n\t}\n\n\tpublic focus() {\n\t\tthis.editor.focus();\n\t}\n\n\tpublic get(): JSON {\n\t\treturn this.editor.get();\n\t}\n\n\tpublic getMode(): JsonEditorMode {\n\t\treturn this.editor.getMode() as JsonEditorMode;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.editor.getName();\n\t}\n\n\tpublic getText(): string {\n\t\treturn this.editor.getText();\n\t}\n\n\tpublic set(json: JSON) {\n\t\tthis.editor.set(json);\n\t}\n\n\tpublic setMode(mode: JsonEditorMode) {\n\t\tthis.editor.setMode(mode);\n\t}\n\n\tpublic setName(name: string) {\n\t\tthis.editor.setName(name);\n\t}\n\n\tpublic setSelection(start, end) {\n\t\tthis.editor.setSelection(start, end);\n\t}\n\n\tpublic getSelection(): any {\n\t\treturn this.editor.getSelection();\n\t}\n\n\tpublic getValidateSchema(): any {\n\t\treturn this.editor.validateSchema;\n\t}\n\n\tpublic setSchema(schema: any, schemaRefs: any) {\n\t\tthis.editor.setSchema(schema, schemaRefs);\n\t}\n\n\tpublic search(query: string) {\n\t\tthis.editor.search(query);\n\t}\n\n\tpublic setOptions(newOptions: JsonEditorOptions) {\n\t\tif (this.editor) {\n\t\t\tthis.editor.destroy();\n\t\t}\n\t\tthis.optionsChanged = true;\n\t\tthis.options = newOptions;\n\t\tthis.ngOnInit();\n\t}\n\n\tpublic update(json: JSON) {\n\t\tthis.editor.update(json);\n\t}\n\n\tpublic destroy() {\n\t\tthis.editor?.destroy();\n\t}\n\n\tpublic getEditor() {\n\t\treturn this.editor;\n\t}\n\n\tpublic isValidJson() {\n\t\ttry {\n\t\t\tJSON.parse(this.getText());\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\nexport { JsonEditorOptions, JsonEditorMode, JsonEditorTreeNode, IError };\n","import { NgModule } from '@angular/core';\nimport { JsonEditorComponent } from './jsoneditor/jsoneditor.component';\n\n@NgModule({\n declarations: [JsonEditorComponent],\n imports: [],\n exports: [JsonEditorComponent],\n})\nexport class NgxJsonBuilderModule {}\n","/*\n * Public API Surface of ngx-json-builder\n */\nexport * from './lib/jsoneditor/jsoneditor.component';\nexport * from './lib/ngx-json-builder.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}