diff --git a/package-lock.json b/package-lock.json index d648c625..8c274b3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,16 +5,16 @@ "requires": true, "dependencies": { "@mcschema/core": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@mcschema/core/-/core-0.8.4.tgz", - "integrity": "sha512-R61pisk9vk3rU04KGqOqHuimoM0IutDVAXwdhRvHr1JQbFKyIRVR6KC9pMaHo9lxlbX62md29+QT+HUMUTZZUw==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@mcschema/core/-/core-0.9.0.tgz", + "integrity": "sha512-A7sPk/EXMDbq8IfU1Tq6RnwHCD+j1EoLgfqxL4DEZC5QjceprSfmDCZbRoO/4Ak48v8I7mY1GKMGOs0pCzLcsQ==" }, "@mcschema/java-1.16": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@mcschema/java-1.16/-/java-1.16-0.5.4.tgz", - "integrity": "sha512-iFF9EILZ9Kf8SNmidng3gMWjiiSlpaLTOPKuFsw/19mywFsqgqqG0jYX9/ilVbDz8gVUzLvZ+1KFa3jjLmnSXw==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@mcschema/java-1.16/-/java-1.16-0.5.6.tgz", + "integrity": "sha512-NTrvXDrWOQIlkJqiYDEH1DZeCC6moZ0/ks7HI9cAFbHMStIrKjEl2VPjT7HQlg/ZnknnuO4QmqLGsbMoNpimuw==", "requires": { - "@mcschema/core": "^0.8.1" + "@mcschema/core": "^0.9.0" } }, "@mcschema/locales": { diff --git a/package.json b/package.json index ee97848f..f6fc251c 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "author": "Misode", "license": "MIT", "dependencies": { - "@mcschema/core": "^0.8.4", - "@mcschema/java-1.16": "^0.5.4", + "@mcschema/core": "^0.9.0", + "@mcschema/java-1.16": "^0.5.6", "@mcschema/locales": "^0.1.11", "@types/google.analytics": "0.0.40", "@types/split.js": "^1.4.0", diff --git a/src/app/AbstractView.ts b/src/app/AbstractView.ts new file mode 100644 index 00000000..78048fe9 --- /dev/null +++ b/src/app/AbstractView.ts @@ -0,0 +1,18 @@ +import { ModelListener, DataModel } from '@mcschema/core'; + +export abstract class AbstractView implements ModelListener { + model: DataModel + + constructor(model: DataModel) { + this.model = model + this.model.addListener(this) + } + + setModel(model: DataModel) { + this.model.removeListener(this) + this.model = model + this.model.addListener(this) + } + + invalidated(model: DataModel): void {} +} diff --git a/src/app/ErrorsView.ts b/src/app/ErrorsView.ts index 8b124b4c..9664d230 100644 --- a/src/app/ErrorsView.ts +++ b/src/app/ErrorsView.ts @@ -1,9 +1,9 @@ import { - AbstractView, DataModel, Errors, locale, } from '@mcschema/core' +import { AbstractView } from './AbstractView' export class ErrorsView extends AbstractView { target: HTMLElement diff --git a/src/app/SourceView.ts b/src/app/SourceView.ts new file mode 100644 index 00000000..f8f88a35 --- /dev/null +++ b/src/app/SourceView.ts @@ -0,0 +1,44 @@ +import { DataModel, Path, ModelPath } from '@mcschema/core' +import { AbstractView } from './AbstractView' + +type SourceViewOptions = { + indentation?: number | string, + rows?: number +} + +/** + * JSON representation view of the model. + * Renders the result in a