@echo-blue/ng-jsoneditor 18.0.5
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.
- package/.editorconfig +13 -0
- package/.eslintrc.json +86 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/.github/workflows/npm-publish.yml +26 -0
- package/.travis.yml +24 -0
- package/LICENSE +21 -0
- package/README.md +188 -0
- package/angular.json +132 -0
- package/e2e/app.e2e-spec.ts +17 -0
- package/e2e/app.po.ts +11 -0
- package/e2e/tsconfig.e2e.json +12 -0
- package/package.json +73 -0
- package/projects/ng-jsoneditor/.eslintrc.json +37 -0
- package/projects/ng-jsoneditor/README.md +184 -0
- package/projects/ng-jsoneditor/ng-package.json +7 -0
- package/projects/ng-jsoneditor/package.json +28 -0
- package/projects/ng-jsoneditor/src/lib/jsoneditor.component.spec.ts +26 -0
- package/projects/ng-jsoneditor/src/lib/jsoneditor.component.ts +258 -0
- package/projects/ng-jsoneditor/src/lib/jsoneditoroptions.ts +166 -0
- package/projects/ng-jsoneditor/src/public-api.ts +5 -0
- package/projects/ng-jsoneditor/tsconfig.lib.json +14 -0
- package/projects/ng-jsoneditor/tsconfig.lib.prod.json +10 -0
- package/projects/ng-jsoneditor/tsconfig.spec.json +29 -0
- package/renovate.json +38 -0
- package/src/app/app.component.css +0 -0
- package/src/app/app.component.html +6 -0
- package/src/app/app.component.spec.ts +27 -0
- package/src/app/app.component.ts +13 -0
- package/src/app/app.config.ts +8 -0
- package/src/app/app.routes.ts +7 -0
- package/src/app/demo/demo.component.css +1 -0
- package/src/app/demo/demo.component.html +65 -0
- package/src/app/demo/demo.component.spec.ts +32 -0
- package/src/app/demo/demo.component.ts +211 -0
- package/src/app/demo/schema.value.ts +111 -0
- package/src/app/demo/show.component.ts +15 -0
- package/src/assets/.gitkeep +0 -0
- package/src/assets/printDemo.png +0 -0
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +8 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +14 -0
- package/src/main.ts +6 -0
- package/src/styles.scss +2 -0
- package/tsconfig.json +53 -0
- package/tsconfig.spec.json +27 -0
- package/vitest.config.mts +36 -0
- package/vitest.setup.ts +14 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Editor configuration, see http://editorconfig.org
|
|
2
|
+
root = true
|
|
3
|
+
|
|
4
|
+
[*]
|
|
5
|
+
charset = utf-8
|
|
6
|
+
indent_style = space
|
|
7
|
+
indent_size = 2
|
|
8
|
+
insert_final_newline = true
|
|
9
|
+
trim_trailing_whitespace = true
|
|
10
|
+
|
|
11
|
+
[*.md]
|
|
12
|
+
max_line_length = off
|
|
13
|
+
trim_trailing_whitespace = false
|
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"ignorePatterns": [
|
|
4
|
+
"projects/**/*"
|
|
5
|
+
],
|
|
6
|
+
"overrides": [
|
|
7
|
+
{
|
|
8
|
+
"files": [
|
|
9
|
+
"*.ts"
|
|
10
|
+
],
|
|
11
|
+
"parserOptions": {
|
|
12
|
+
"project": [
|
|
13
|
+
"tsconfig.json",
|
|
14
|
+
"e2e/tsconfig.json"
|
|
15
|
+
],
|
|
16
|
+
"createDefaultProgram": true
|
|
17
|
+
},
|
|
18
|
+
"extends": [
|
|
19
|
+
"plugin:@angular-eslint/ng-cli-compat",
|
|
20
|
+
"plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
|
|
21
|
+
"plugin:@angular-eslint/template/process-inline-templates"
|
|
22
|
+
],
|
|
23
|
+
"rules": {
|
|
24
|
+
"@angular-eslint/component-selector": [
|
|
25
|
+
"error",
|
|
26
|
+
{
|
|
27
|
+
"type": "element",
|
|
28
|
+
"prefix": "app",
|
|
29
|
+
"style": "kebab-case"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"@angular-eslint/directive-selector": [
|
|
33
|
+
"error",
|
|
34
|
+
{
|
|
35
|
+
"type": "attribute",
|
|
36
|
+
"prefix": "app",
|
|
37
|
+
"style": "camelCase"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"@typescript-eslint/consistent-type-definitions": "error",
|
|
41
|
+
"@typescript-eslint/dot-notation": "off",
|
|
42
|
+
"@typescript-eslint/explicit-member-accessibility": [
|
|
43
|
+
"off",
|
|
44
|
+
{
|
|
45
|
+
"accessibility": "explicit"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"@typescript-eslint/member-delimiter-style": [
|
|
49
|
+
"off",
|
|
50
|
+
{
|
|
51
|
+
"multiline": {
|
|
52
|
+
"delimiter": "none",
|
|
53
|
+
"requireLast": true
|
|
54
|
+
},
|
|
55
|
+
"singleline": {
|
|
56
|
+
"delimiter": "semi",
|
|
57
|
+
"requireLast": false
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"@typescript-eslint/no-use-before-define": "error",
|
|
62
|
+
"@typescript-eslint/semi": [
|
|
63
|
+
"off",
|
|
64
|
+
null
|
|
65
|
+
],
|
|
66
|
+
"brace-style": [
|
|
67
|
+
"error",
|
|
68
|
+
"1tbs"
|
|
69
|
+
],
|
|
70
|
+
"id-blacklist": "off",
|
|
71
|
+
"id-match": "off",
|
|
72
|
+
"no-underscore-dangle": "off",
|
|
73
|
+
"valid-typeof": "error"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"files": [
|
|
78
|
+
"*.html"
|
|
79
|
+
],
|
|
80
|
+
"extends": [
|
|
81
|
+
"plugin:@angular-eslint/template/recommended"
|
|
82
|
+
],
|
|
83
|
+
"rules": {}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
2. Click on '....'
|
|
17
|
+
3. Scroll down to '....'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
**Expected behavior**
|
|
21
|
+
A clear and concise description of what you expected to happen.
|
|
22
|
+
|
|
23
|
+
**Console and Error stack trace**
|
|
24
|
+
If applicable, add screenshots to help explain your problem.
|
|
25
|
+
Use debug mode to see in your console the data and options passed to jsoneditor. Copy this and paste in your issue when reporting bugs. Copy the stacktrace as well!
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<json-editor [debug]="true" [options]="editorOptionsData" [data]="dataStructure"></json-editor>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
**Screenshots**
|
|
33
|
+
If applicable, add screenshots to help explain your problem.
|
|
34
|
+
|
|
35
|
+
**Desktop (please complete the following information):**
|
|
36
|
+
- OS: [e.g. iOS]
|
|
37
|
+
- Browser [e.g. chrome, safari]
|
|
38
|
+
- Ng Version [run `ng version` and paste here]
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
**Additional context**
|
|
42
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
|
2
|
+
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
|
3
|
+
|
|
4
|
+
name: Node.js Package
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
release:
|
|
8
|
+
types: [published]
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
id-token: write
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v6
|
|
18
|
+
- uses: actions/setup-node@v6
|
|
19
|
+
with:
|
|
20
|
+
node-version: 24
|
|
21
|
+
registry-url: 'https://registry.npmjs.org'
|
|
22
|
+
- run: npm ci
|
|
23
|
+
- run: npm test
|
|
24
|
+
- run: npm publish --access public
|
|
25
|
+
env:
|
|
26
|
+
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
|
package/.travis.yml
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
language: node_js
|
|
2
|
+
node_js:
|
|
3
|
+
- "10.13"
|
|
4
|
+
addons:
|
|
5
|
+
chrome: stable
|
|
6
|
+
services:
|
|
7
|
+
- xvfb
|
|
8
|
+
before_script:
|
|
9
|
+
- "export DISPLAY=:99.0"
|
|
10
|
+
# - "sh -e /etc/init.d/xvfb start"
|
|
11
|
+
- sleep 3 # give xvfb some time to start
|
|
12
|
+
- npm run build:lib build:app
|
|
13
|
+
- sleep 3 # give Web server some time to bind to sockets, etc
|
|
14
|
+
|
|
15
|
+
before_install:
|
|
16
|
+
- npm install -g typescript webdriver-manager ng-packagr @angular/cli@9.0.2
|
|
17
|
+
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"
|
|
18
|
+
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &
|
|
19
|
+
|
|
20
|
+
install:
|
|
21
|
+
- npm install
|
|
22
|
+
- webdriver-manager update
|
|
23
|
+
- node node_modules/protractor/bin/webdriver-manager update
|
|
24
|
+
- node_modules/protractor/bin/webdriver-manager update
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 David Herges
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Angular Json Editor
|
|
2
|
+
|
|
3
|
+
[](https://travis-ci.org/mariohmol/ang-jsoneditor)
|
|
4
|
+
|
|
5
|
+
Angular Json Editor (wrapper for [jsoneditor](https://github.com/josdejong/jsoneditor)). View/Edit Json file with formatting.
|
|
6
|
+
|
|
7
|
+
[StackBlitz template](https://stackblitz.com/edit/ang-jsoneditor)
|
|
8
|
+
|
|
9
|
+
Working with latest Angular 18.
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
To install this library with npm, run below command:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
$ npm install --save jsoneditor @echo-blue/ng-jsoneditor
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Example:
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<json-editor [options]="editorOptions" [data]="data" (change)="getData($event)"></json-editor>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
### Configuration
|
|
30
|
+
|
|
31
|
+
Import the standalone component as below:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { Component, ViewChild } from '@angular/core';
|
|
35
|
+
import { JsonEditorComponent, JsonEditorOptions } from '@echo-blue/ng-jsoneditor';
|
|
36
|
+
|
|
37
|
+
@Component({
|
|
38
|
+
selector: 'app-root',
|
|
39
|
+
template: '<json-editor [options]="editorOptions" [data]="data"></json-editor>',
|
|
40
|
+
styleUrls: ['./app.component.css'],
|
|
41
|
+
imports: [JsonEditorComponent]
|
|
42
|
+
})
|
|
43
|
+
export class AppComponent {
|
|
44
|
+
public editorOptions: JsonEditorOptions;
|
|
45
|
+
public data: any;
|
|
46
|
+
// optional
|
|
47
|
+
@ViewChild(JsonEditorComponent, { static: false }) editor: JsonEditorComponent;
|
|
48
|
+
|
|
49
|
+
constructor() {
|
|
50
|
+
this.editorOptions = new JsonEditorOptions()
|
|
51
|
+
this.editorOptions.modes = ['code', 'text', 'tree', 'view']; // set all allowed modes
|
|
52
|
+
//this.options.mode = 'code'; //set only one mode
|
|
53
|
+
|
|
54
|
+
this.data = {"products":[{"name":"car","product":[{"name":"honda","model":[{"id":"civic","name":"civic"},{"id":"accord","name":"accord"},{"id":"crv","name":"crv"},{"id":"pilot","name":"pilot"},{"id":"odyssey","name":"odyssey"}]}]}]}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
Note : For better styling, add below line to your main style.css file
|
|
60
|
+
|
|
61
|
+
```js
|
|
62
|
+
@import "~jsoneditor/dist/jsoneditor.min.css";
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Forms
|
|
67
|
+
|
|
68
|
+
Build it integrated with ReactiveForms:
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
this.form = this.fb.group({
|
|
72
|
+
myinput: [this.data]
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
```html
|
|
76
|
+
<form [formGroup]="form" (submit)="submit()">
|
|
77
|
+
<json-editor [options]="editorOptions2" formControlName="myinput">
|
|
78
|
+
</json-editor>
|
|
79
|
+
</form>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Extra Features
|
|
83
|
+
|
|
84
|
+
Besides all the
|
|
85
|
+
[configuration options](https://github.com/josdejong/jsoneditor/blob/master/docs/api.md)
|
|
86
|
+
from the original jsoneditor, Angular Json Editor supports one additional option:
|
|
87
|
+
|
|
88
|
+
_expandAll_ - to automatically expand all nodes upon json loaded with the _data_ input.
|
|
89
|
+
|
|
90
|
+
# Troubleshoot
|
|
91
|
+
|
|
92
|
+
If you have issue with the height of the component, you can try one of those solutions:
|
|
93
|
+
|
|
94
|
+
When you import CSS:
|
|
95
|
+
|
|
96
|
+
```css
|
|
97
|
+
@import "~jsoneditor/dist/jsoneditor.min.css";
|
|
98
|
+
textarea.jsoneditor-text{min-height:350px;}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Or Customizing the CSS:
|
|
102
|
+
|
|
103
|
+
```css
|
|
104
|
+
:host ::ng-deep json-editor,
|
|
105
|
+
:host ::ng-deep json-editor .jsoneditor,
|
|
106
|
+
:host ::ng-deep json-editor > div,
|
|
107
|
+
:host ::ng-deep json-editor jsoneditor-outer {
|
|
108
|
+
height: 500px;
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Or as a inner style in component:
|
|
113
|
+
|
|
114
|
+
```html
|
|
115
|
+
<json-editor class="col-md-12" #editorExample style="min-height: 300px;" [options]="editorOptionsData" [data]="dataStructure"></json-editor>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
For code view you can change the height using this example:
|
|
119
|
+
```css
|
|
120
|
+
.ace_editor.ace-jsoneditor {
|
|
121
|
+
min-height: 500px;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Use debug mode to see in your console the data and options passed to jsoneditor. Copy this and paste in your issue when reporting bugs.
|
|
126
|
+
|
|
127
|
+
```html
|
|
128
|
+
<json-editor [debug]="true" [options]="editorOptionsData" [data]="dataStructure"></json-editor>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## JSONOptions missing params
|
|
132
|
+
|
|
133
|
+
If you find youself trying to use an custom option that is not mapped here, you can do:
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
let editorOptions: JsonEditorOptions = new JsonEditorOptions(); (<any>this.editorOptions).templates = [{menu options objects as in json editor documentation}]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
See the [issue](https://github.com/mariohmol/ang-jsoneditor/issues/57)
|
|
140
|
+
|
|
141
|
+
## Internet Explorer
|
|
142
|
+
|
|
143
|
+
If you want to support IE, please follow this guide:
|
|
144
|
+
* https://github.com/mariohmol/ang-jsoneditor/issues/44#issuecomment-508650610
|
|
145
|
+
|
|
146
|
+
## Multiple editors
|
|
147
|
+
|
|
148
|
+
To use multiple jsoneditors in your view you cannot use the same editor options.
|
|
149
|
+
|
|
150
|
+
You should have something like:
|
|
151
|
+
|
|
152
|
+
```html
|
|
153
|
+
<div *ngFor="let prd of data.products" class="w-100-p p-24" >
|
|
154
|
+
<json-editor [options]="makeOptions()" [data]="prd" (change)="showJson($event)"></json-editor>
|
|
155
|
+
</div>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
makeOptions = () => {
|
|
160
|
+
return new JsonEditorOptions();
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
# Demo
|
|
165
|
+
|
|
166
|
+
Demo component files are included in Git Project.
|
|
167
|
+
|
|
168
|
+
Demo Project with a lot of different implementations (ngInit, change event and others):
|
|
169
|
+
[https://github.com/mariohmol/ang-jsoneditor/tree/master/src/app/demo)
|
|
170
|
+
|
|
171
|
+
When publishing it to npm, look over this docs: https://docs.npmjs.com/misc/developers
|
|
172
|
+
|
|
173
|
+
# Testing
|
|
174
|
+
|
|
175
|
+
Unit tests now run with [Vitest](https://vitest.dev/). Use `npm run test:dev` for an interactive watch mode during development or `npm run test:unit` for a single CI-friendly execution. The legacy Karma/Jasmine setup has been removed.
|
|
176
|
+
|
|
177
|
+
# Collaborate
|
|
178
|
+
|
|
179
|
+
Fork, clone this repo and install dependencies.
|
|
180
|
+
This project just works with webpack 4 (dont change to 5):
|
|
181
|
+
|
|
182
|
+
```sh
|
|
183
|
+
npm i -g rimraf
|
|
184
|
+
npm i
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
# License
|
|
188
|
+
MIT(./LICENSE)
|
package/angular.json
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"newProjectRoot": "projects",
|
|
5
|
+
"projects": {
|
|
6
|
+
"ng-jsoneditor-demo": {
|
|
7
|
+
"projectType": "application",
|
|
8
|
+
"schematics": {
|
|
9
|
+
"@schematics/angular:component": {
|
|
10
|
+
"style": "scss"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"root": "",
|
|
14
|
+
"sourceRoot": "src",
|
|
15
|
+
"prefix": "app",
|
|
16
|
+
"architect": {
|
|
17
|
+
"build": {
|
|
18
|
+
"builder": "@angular-devkit/build-angular:application",
|
|
19
|
+
"options": {
|
|
20
|
+
"outputPath": "dist/ng-jsoneditor-demo",
|
|
21
|
+
"index": "src/index.html",
|
|
22
|
+
"browser": "src/main.ts",
|
|
23
|
+
"polyfills": [
|
|
24
|
+
"zone.js"
|
|
25
|
+
],
|
|
26
|
+
"tsConfig": "tsconfig.json",
|
|
27
|
+
"inlineStyleLanguage": "scss",
|
|
28
|
+
"assets": [
|
|
29
|
+
"src/favicon.ico",
|
|
30
|
+
"src/assets"
|
|
31
|
+
],
|
|
32
|
+
"styles": [
|
|
33
|
+
"src/styles.scss"
|
|
34
|
+
],
|
|
35
|
+
"scripts": []
|
|
36
|
+
},
|
|
37
|
+
"configurations": {
|
|
38
|
+
"production": {
|
|
39
|
+
"budgets": [
|
|
40
|
+
{
|
|
41
|
+
"type": "initial",
|
|
42
|
+
"maximumWarning": "500kb",
|
|
43
|
+
"maximumError": "2mb"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "anyComponentStyle",
|
|
47
|
+
"maximumWarning": "2kb",
|
|
48
|
+
"maximumError": "4kb"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"outputHashing": "all"
|
|
52
|
+
},
|
|
53
|
+
"development": {
|
|
54
|
+
"optimization": false,
|
|
55
|
+
"extractLicenses": false,
|
|
56
|
+
"sourceMap": true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"defaultConfiguration": "production"
|
|
60
|
+
},
|
|
61
|
+
"serve": {
|
|
62
|
+
"builder": "@angular-devkit/build-angular:dev-server",
|
|
63
|
+
"configurations": {
|
|
64
|
+
"production": {
|
|
65
|
+
"buildTarget": "ng-jsoneditor-demo:build:production"
|
|
66
|
+
},
|
|
67
|
+
"development": {
|
|
68
|
+
"buildTarget": "ng-jsoneditor-demo:build:development"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"defaultConfiguration": "development"
|
|
72
|
+
},
|
|
73
|
+
"extract-i18n": {
|
|
74
|
+
"builder": "@angular-devkit/build-angular:extract-i18n",
|
|
75
|
+
"options": {
|
|
76
|
+
"buildTarget": "ng-jsoneditor-demo:build"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"test": {
|
|
80
|
+
"builder": "@angular-devkit/architect:run-script",
|
|
81
|
+
"options": {
|
|
82
|
+
"script": "test:unit"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"@echo-blue/ng-jsoneditor": {
|
|
88
|
+
"projectType": "library",
|
|
89
|
+
"root": "projects/ng-jsoneditor",
|
|
90
|
+
"sourceRoot": "projects/ng-jsoneditor/src",
|
|
91
|
+
"prefix": "lib",
|
|
92
|
+
"architect": {
|
|
93
|
+
"build": {
|
|
94
|
+
"builder": "@angular-devkit/build-angular:ng-packagr",
|
|
95
|
+
"options": {
|
|
96
|
+
"project": "projects/ng-jsoneditor/ng-package.json"
|
|
97
|
+
},
|
|
98
|
+
"configurations": {
|
|
99
|
+
"production": {
|
|
100
|
+
"tsConfig": "projects/ng-jsoneditor/tsconfig.lib.prod.json"
|
|
101
|
+
},
|
|
102
|
+
"development": {
|
|
103
|
+
"tsConfig": "projects/ng-jsoneditor/tsconfig.lib.json"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"defaultConfiguration": "production"
|
|
107
|
+
},
|
|
108
|
+
"test": {
|
|
109
|
+
"builder": "@angular-devkit/architect:run-script",
|
|
110
|
+
"options": {
|
|
111
|
+
"script": "test:unit"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"schematics": {
|
|
118
|
+
"@schematics/angular:component": {
|
|
119
|
+
"prefix": "app",
|
|
120
|
+
"style": "css"
|
|
121
|
+
},
|
|
122
|
+
"@schematics/angular:directive": {
|
|
123
|
+
"prefix": "app"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"cli": {
|
|
127
|
+
"schematicCollections": [
|
|
128
|
+
"@angular-eslint/schematics"
|
|
129
|
+
],
|
|
130
|
+
"analytics": false
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgPackagedPage } from './app.po';
|
|
2
|
+
|
|
3
|
+
describe('ng-packaged App', () => {
|
|
4
|
+
let page: NgPackagedPage;
|
|
5
|
+
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
page = new NgPackagedPage();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it('should display message saying app works', () => {
|
|
11
|
+
page.navigateTo();
|
|
12
|
+
page.getParagraphText()
|
|
13
|
+
.then(t => {
|
|
14
|
+
expect(t).toEqual('Welcome to Angular Json Editor');
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
});
|
package/e2e/app.po.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@echo-blue/ng-jsoneditor",
|
|
3
|
+
"version": "18.0.5",
|
|
4
|
+
"private": false,
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/echo-blue/ng-jsoneditor"
|
|
8
|
+
},
|
|
9
|
+
"author": "https://www.linkedin.com/in/mariomol",
|
|
10
|
+
"contributors": [
|
|
11
|
+
"https://github.com/echo-blue"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"ng": "ng",
|
|
16
|
+
"start": "ng serve",
|
|
17
|
+
"build": "ng build",
|
|
18
|
+
"build:app": "npm run build:lib && ng build",
|
|
19
|
+
"build:lib": "ng build --project ng-jsoneditor",
|
|
20
|
+
"watch": "npm run build:lib -- --watch",
|
|
21
|
+
"build:full": "npm run build:lib && npm run build:app",
|
|
22
|
+
"publishnpm": "cp README.md projects/ng-jsoneditor/README.md && npm run build:lib && cd dist/ng-jsoneditor && npm publish",
|
|
23
|
+
"unpublish": "npm deprecate -f 'ng-jsoneditor@18.0.5' 'this package has been deprecated'",
|
|
24
|
+
"test": "npm run test:unit",
|
|
25
|
+
"test:dev": "vitest",
|
|
26
|
+
"test:unit": "vitest run",
|
|
27
|
+
"lint": "ng lint",
|
|
28
|
+
"e2e": "ng e2e",
|
|
29
|
+
"ports": "lsof -i tcp:4201",
|
|
30
|
+
"reinstall": "rm package-lock.json && rm -rf node_modules && npm i",
|
|
31
|
+
"rebuildsass": "npm rebuild node-sass"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@angular/common": "^18.2.14",
|
|
35
|
+
"@angular/compiler": "^18.2.14",
|
|
36
|
+
"@angular/core": "^18.2.14",
|
|
37
|
+
"@angular/forms": "^18.2.14",
|
|
38
|
+
"@angular/platform-browser": "^18.2.14",
|
|
39
|
+
"@angular/platform-browser-dynamic": "^18.2.14",
|
|
40
|
+
"@angular/router": "^18.2.14",
|
|
41
|
+
"jsoneditor": "*",
|
|
42
|
+
"ng-packagr": "^18.2.1",
|
|
43
|
+
"rxjs": "*",
|
|
44
|
+
"tslib": "^2.3.0",
|
|
45
|
+
"webpack": "^5.88.2",
|
|
46
|
+
"zone.js": "~0.14.2"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@analogjs/vite-plugin-angular": "^2.3.1",
|
|
50
|
+
"@angular-devkit/build-angular": "^18.2.21",
|
|
51
|
+
"@angular-devkit/schematics": "^18.2.21",
|
|
52
|
+
"@angular-eslint/builder": "^18.4.3",
|
|
53
|
+
"@angular-eslint/eslint-plugin": "^18.4.3",
|
|
54
|
+
"@angular-eslint/eslint-plugin-template": "^18.4.3",
|
|
55
|
+
"@angular-eslint/schematics": "^18.4.3",
|
|
56
|
+
"@angular-eslint/template-parser": "^18.4.3",
|
|
57
|
+
"@angular/cli": "^18.2.21",
|
|
58
|
+
"@angular/compiler-cli": "^18.2.14",
|
|
59
|
+
"@angular/language-service": "^18.2.14",
|
|
60
|
+
"@types/jsoneditor": "^9.9.3",
|
|
61
|
+
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
62
|
+
"@typescript-eslint/parser": "^7.2.0",
|
|
63
|
+
"cpr": "^3.0.1",
|
|
64
|
+
"eslint": "^8.57.0",
|
|
65
|
+
"eslint-plugin-import": "latest",
|
|
66
|
+
"eslint-plugin-jsdoc": "latest",
|
|
67
|
+
"eslint-plugin-prefer-arrow": "latest",
|
|
68
|
+
"jsdom": "^29.0.0",
|
|
69
|
+
"typescript": "5.5.4",
|
|
70
|
+
"vite": "^8.0.0",
|
|
71
|
+
"vitest": "^4.1.0"
|
|
72
|
+
}
|
|
73
|
+
}
|