nxt-json-view 16.0.0-alpha.6 → 16.0.0
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/esm2022/lib/json-view/json-view.component.mjs +19 -0
- package/esm2022/lib/json-view-item/json-view-item.component.mjs +106 -0
- package/esm2022/lib/json-view.module.mjs +28 -0
- package/{esm2020 → esm2022}/lib/utils/interfaces.mjs +1 -1
- package/{esm2020 → esm2022}/lib/utils/utils.mjs +24 -24
- package/{esm2020 → esm2022}/nxt-json-view.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +2 -2
- package/{fesm2015 → fesm2022}/nxt-json-view.mjs +157 -157
- package/{fesm2015 → fesm2022}/nxt-json-view.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/json-view/json-view.component.d.ts +12 -12
- package/lib/json-view-item/json-view-item.component.d.ts +34 -34
- package/lib/json-view.module.d.ts +9 -9
- package/lib/utils/interfaces.d.ts +5 -5
- package/lib/utils/utils.d.ts +12 -12
- package/package.json +7 -13
- package/public-api.d.ts +3 -3
- package/esm2020/lib/json-view/json-view.component.mjs +0 -18
- package/esm2020/lib/json-view-item/json-view-item.component.mjs +0 -105
- package/esm2020/lib/json-view.module.mjs +0 -27
- package/fesm2020/nxt-json-view.mjs +0 -174
- package/fesm2020/nxt-json-view.mjs.map +0 -1
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import * as i1 from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from '@angular/core';
|
|
4
|
-
import { Component, ViewEncapsulation, Input, NgModule } from '@angular/core';
|
|
5
|
-
|
|
6
|
-
/** @internal */
|
|
7
|
-
function isObject(value) {
|
|
8
|
-
return value !== null && typeof value === 'object';
|
|
9
|
-
}
|
|
10
|
-
/** @internal */
|
|
11
|
-
function isArray(value) {
|
|
12
|
-
return Array.isArray(value);
|
|
13
|
-
}
|
|
14
|
-
/** @internal */
|
|
15
|
-
function isUndefined(value) {
|
|
16
|
-
return typeof value === 'undefined';
|
|
17
|
-
}
|
|
18
|
-
/** @internal */
|
|
19
|
-
function isString(value) {
|
|
20
|
-
return typeof value === 'string';
|
|
21
|
-
}
|
|
22
|
-
/** @internal */
|
|
23
|
-
function isNumber(value) {
|
|
24
|
-
return typeof value === 'number';
|
|
25
|
-
}
|
|
26
|
-
/** @internal */
|
|
27
|
-
function isBoolean(value) {
|
|
28
|
-
return typeof value === 'boolean';
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/** @internal */
|
|
32
|
-
class JsonViewItemComponent {
|
|
33
|
-
constructor() {
|
|
34
|
-
this.level = 0;
|
|
35
|
-
this.isOpen = false;
|
|
36
|
-
this.hasChildren = false;
|
|
37
|
-
this.isObject = false;
|
|
38
|
-
this.isArray = false;
|
|
39
|
-
this.isInit = false;
|
|
40
|
-
this._levelLabels = {};
|
|
41
|
-
}
|
|
42
|
-
set data(data) {
|
|
43
|
-
this._data = data;
|
|
44
|
-
if (this.isInit) {
|
|
45
|
-
this.init();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
get data() {
|
|
49
|
-
return this._data;
|
|
50
|
-
}
|
|
51
|
-
ngOnInit() {
|
|
52
|
-
this.init();
|
|
53
|
-
this.isInit = true;
|
|
54
|
-
}
|
|
55
|
-
init() {
|
|
56
|
-
this.levelLabelHandle();
|
|
57
|
-
this.levelOpenHandle();
|
|
58
|
-
this.childrenKeysHandle();
|
|
59
|
-
this.dataHandle();
|
|
60
|
-
}
|
|
61
|
-
levelLabelHandle() {
|
|
62
|
-
if (this.levelLabels !== undefined) {
|
|
63
|
-
this._levelLabels = this.levelLabels[this.level] || {};
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
levelOpenHandle() {
|
|
67
|
-
if (!isUndefined(this.levelOpen) && (this.level <= this.levelOpen)) {
|
|
68
|
-
this.isOpen = true;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
childrenKeysHandle() {
|
|
72
|
-
if (isObject(this.data)) {
|
|
73
|
-
this.childrenKeys = Object.keys(this.data);
|
|
74
|
-
if (this.childrenKeys && this.childrenKeys.length) {
|
|
75
|
-
this.hasChildren = true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
dataHandle() {
|
|
80
|
-
if (isObject(this.data)) {
|
|
81
|
-
this.isObject = true;
|
|
82
|
-
this.dataType = 'Object';
|
|
83
|
-
if (isArray(this.data)) {
|
|
84
|
-
this.isArray = true;
|
|
85
|
-
this.dataType = 'Array';
|
|
86
|
-
}
|
|
87
|
-
if (this.key && this._levelLabels[this.key]) {
|
|
88
|
-
this.dataType = this._levelLabels[this.key];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this.value = this.data;
|
|
93
|
-
if (isString(this.data)) {
|
|
94
|
-
this.valueType = 'string';
|
|
95
|
-
}
|
|
96
|
-
else if (isNumber(this.data)) {
|
|
97
|
-
this.valueType = 'number';
|
|
98
|
-
}
|
|
99
|
-
else if (isBoolean(this.data)) {
|
|
100
|
-
this.valueType = 'boolean';
|
|
101
|
-
}
|
|
102
|
-
else if (null === this.data) {
|
|
103
|
-
this.valueType = 'null';
|
|
104
|
-
this.value = 'null';
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
toggle() {
|
|
109
|
-
if (!(this.childrenKeys && this.childrenKeys.length)) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
this.isOpen = !this.isOpen;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
JsonViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
JsonViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: JsonViewItemComponent, selector: "nxt-json-view-item", inputs: { data: "data", key: "key", level: "level", levelOpen: "levelOpen", levelLabels: "levelLabels" }, ngImport: i0, template: "<div class=\"json-view\">\n <a (click)=\"toggle()\">\n <span class=\"toggler\"\n [ngClass]=\"{'collapse': isOpen, 'expand': !isOpen}\"\n [style.visibility]=\"hasChildren?'visible':'hidden'\"></span>\n <span class=\"key\"\n *ngIf=\"key\">\n <span>{{key}}</span>\n <span>: </span>\n </span>\n <span class=\"value\">\n <span *ngIf=\"isObject\">\n {{ dataType }}\n <span *ngIf=\"isArray\">[ {{ $any(data)?.length }} ]</span>\n </span>\n <span *ngIf=\"!isObject && valueType\"\n [ngClass]=\"valueType\">{{ value }}</span>\n </span>\n </a>\n <div class=\"children\"\n *ngIf=\"hasChildren && isOpen\">\n <nxt-json-view-item *ngFor=\"let _key of childrenKeys\"\n [data]=\"data[_key]\"\n [key]=\"_key\"\n [level]=\"level+1\"\n [levelOpen]=\"levelOpen\"\n [levelLabels]=\"levelLabels\"></nxt-json-view-item>\n </div>\n</div>\n", styles: [".json-view a{cursor:pointer;text-decoration:none}.json-view .toggler{width:1em;padding:0;display:block;text-align:center;float:left}.json-view .collapse:before{content:\"-\"}.json-view .expand:before{content:\"+\"}.json-view .key{color:var(--nxt-json-view-color-key, #92278f)}.json-view .value{color:var(--nxt-json-view-color-value, #000000)}.json-view .value .string{color:var(--nxt-json-view-color-string, #3ab54a)}.json-view .value .number{color:var(--nxt-json-view-color-number, #25aae2)}.json-view .value .boolean{color:var(--nxt-json-view-color-boolean, #aa0d91)}.json-view .value .null{color:var(--nxt-json-view-color-null, #f1592a)}.json-view .children{margin-left:1em}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: JsonViewItemComponent, selector: "nxt-json-view-item", inputs: ["data", "key", "level", "levelOpen", "levelLabels"] }] });
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewItemComponent, decorators: [{
|
|
118
|
-
type: Component,
|
|
119
|
-
args: [{ selector: 'nxt-json-view-item', encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"json-view\">\n <a (click)=\"toggle()\">\n <span class=\"toggler\"\n [ngClass]=\"{'collapse': isOpen, 'expand': !isOpen}\"\n [style.visibility]=\"hasChildren?'visible':'hidden'\"></span>\n <span class=\"key\"\n *ngIf=\"key\">\n <span>{{key}}</span>\n <span>: </span>\n </span>\n <span class=\"value\">\n <span *ngIf=\"isObject\">\n {{ dataType }}\n <span *ngIf=\"isArray\">[ {{ $any(data)?.length }} ]</span>\n </span>\n <span *ngIf=\"!isObject && valueType\"\n [ngClass]=\"valueType\">{{ value }}</span>\n </span>\n </a>\n <div class=\"children\"\n *ngIf=\"hasChildren && isOpen\">\n <nxt-json-view-item *ngFor=\"let _key of childrenKeys\"\n [data]=\"data[_key]\"\n [key]=\"_key\"\n [level]=\"level+1\"\n [levelOpen]=\"levelOpen\"\n [levelLabels]=\"levelLabels\"></nxt-json-view-item>\n </div>\n</div>\n", styles: [".json-view a{cursor:pointer;text-decoration:none}.json-view .toggler{width:1em;padding:0;display:block;text-align:center;float:left}.json-view .collapse:before{content:\"-\"}.json-view .expand:before{content:\"+\"}.json-view .key{color:var(--nxt-json-view-color-key, #92278f)}.json-view .value{color:var(--nxt-json-view-color-value, #000000)}.json-view .value .string{color:var(--nxt-json-view-color-string, #3ab54a)}.json-view .value .number{color:var(--nxt-json-view-color-number, #25aae2)}.json-view .value .boolean{color:var(--nxt-json-view-color-boolean, #aa0d91)}.json-view .value .null{color:var(--nxt-json-view-color-null, #f1592a)}.json-view .children{margin-left:1em}\n"] }]
|
|
120
|
-
}], propDecorators: { data: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], key: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], level: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], levelOpen: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], levelLabels: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}] } });
|
|
131
|
-
|
|
132
|
-
class JsonViewComponent {
|
|
133
|
-
}
|
|
134
|
-
JsonViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
-
JsonViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: JsonViewComponent, selector: "nxt-json-view", inputs: { data: "data", levelOpen: "levelOpen", levelLabels: "levelLabels" }, ngImport: i0, template: "<div class=\"nxt-json-view\">\n <nxt-json-view-item [data]=\"data\"\n [level]=\"0\"\n [levelOpen]=\"levelOpen\"\n [levelLabels]=\"levelLabels\"\n class=\"json-view\"></nxt-json-view-item>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: JsonViewItemComponent, selector: "nxt-json-view-item", inputs: ["data", "key", "level", "levelOpen", "levelLabels"] }] });
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewComponent, decorators: [{
|
|
137
|
-
type: Component,
|
|
138
|
-
args: [{ selector: 'nxt-json-view', encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"nxt-json-view\">\n <nxt-json-view-item [data]=\"data\"\n [level]=\"0\"\n [levelOpen]=\"levelOpen\"\n [levelLabels]=\"levelLabels\"\n class=\"json-view\"></nxt-json-view-item>\n</div>\n" }]
|
|
139
|
-
}], propDecorators: { data: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], levelOpen: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], levelLabels: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}] } });
|
|
146
|
-
|
|
147
|
-
class JsonViewModule {
|
|
148
|
-
}
|
|
149
|
-
JsonViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
150
|
-
JsonViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: JsonViewModule, declarations: [JsonViewItemComponent,
|
|
151
|
-
JsonViewComponent], imports: [CommonModule], exports: [JsonViewComponent] });
|
|
152
|
-
JsonViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewModule, imports: [CommonModule] });
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JsonViewModule, decorators: [{
|
|
154
|
-
type: NgModule,
|
|
155
|
-
args: [{
|
|
156
|
-
declarations: [
|
|
157
|
-
JsonViewItemComponent,
|
|
158
|
-
JsonViewComponent
|
|
159
|
-
],
|
|
160
|
-
imports: [
|
|
161
|
-
CommonModule
|
|
162
|
-
],
|
|
163
|
-
exports: [
|
|
164
|
-
JsonViewComponent
|
|
165
|
-
]
|
|
166
|
-
}]
|
|
167
|
-
}] });
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Generated bundle index. Do not edit.
|
|
171
|
-
*/
|
|
172
|
-
|
|
173
|
-
export { JsonViewComponent, JsonViewModule };
|
|
174
|
-
//# sourceMappingURL=nxt-json-view.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nxt-json-view.mjs","sources":["../../../packages/json-view/src/lib/utils/utils.ts","../../../packages/json-view/src/lib/json-view-item/json-view-item.component.ts","../../../packages/json-view/src/lib/json-view-item/json-view-item.component.html","../../../packages/json-view/src/lib/json-view/json-view.component.ts","../../../packages/json-view/src/lib/json-view/json-view.component.html","../../../packages/json-view/src/lib/json-view.module.ts","../../../packages/json-view/src/nxt-json-view.ts"],"sourcesContent":["/** @internal */\nexport function isObject(value: any): value is object {\n return value !== null && typeof value === 'object'\n}\n\n/** @internal */\nexport function isArray(value: any): value is unknown[] {\n return Array.isArray(value)\n}\n\n/** @internal */\nexport function isUndefined<T>(value: T | undefined): value is undefined {\n return typeof value === 'undefined'\n}\n\n/** @internal */\nexport function isString(value: any): value is string {\n return typeof value === 'string'\n}\n\n/** @internal */\nexport function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n\n/** @internal */\nexport function isBoolean(value: any): value is boolean {\n return typeof value === 'boolean'\n}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'\nimport { LevelLabels } from '../utils/interfaces'\nimport { isArray, isBoolean, isNumber, isObject, isString, isUndefined } from '../utils/utils'\n\n/** @internal */\n@Component({\n selector: 'nxt-json-view-item',\n templateUrl: './json-view-item.component.html',\n styleUrls: ['./json-view-item.component.scss'],\n encapsulation: ViewEncapsulation.Emulated\n})\nexport class JsonViewItemComponent implements OnInit {\n private _data?: any\n @Input()\n set data(data: any | undefined) {\n this._data = data\n if (this.isInit) {\n this.init()\n }\n }\n get data(): any | undefined {\n return this._data\n }\n @Input() key?: string\n @Input() level: number = 0\n @Input() levelOpen?: number\n @Input() levelLabels?: LevelLabels\n\n isOpen: boolean = false\n childrenKeys?: string[]\n hasChildren: boolean = false\n dataType?: string\n value: any\n valueType?: string\n isObject: boolean = false\n isArray: boolean = false\n isInit: boolean = false\n _levelLabels: { [key: string]: string } = {}\n\n ngOnInit() {\n this.init()\n this.isInit = true\n }\n\n init() {\n this.levelLabelHandle()\n this.levelOpenHandle()\n this.childrenKeysHandle()\n this.dataHandle()\n }\n\n levelLabelHandle() {\n if (this.levelLabels !== undefined) {\n this._levelLabels = this.levelLabels[this.level] || {}\n }\n }\n\n levelOpenHandle() {\n if (!isUndefined(this.levelOpen) && (this.level <= this.levelOpen)) {\n this.isOpen = true\n }\n }\n\n childrenKeysHandle() {\n if (isObject(this.data)) {\n this.childrenKeys = Object.keys(this.data)\n if (this.childrenKeys && this.childrenKeys.length) {\n this.hasChildren = true\n }\n }\n }\n\n dataHandle() {\n if (isObject(this.data)) {\n this.isObject = true\n this.dataType = 'Object'\n if (isArray(this.data)) {\n this.isArray = true\n this.dataType = 'Array'\n }\n if (this.key && this._levelLabels[this.key]) {\n this.dataType = this._levelLabels[this.key]\n }\n } else {\n this.value = this.data\n if (isString(this.data)) {\n this.valueType = 'string'\n } else if (isNumber(this.data)) {\n this.valueType = 'number'\n } else if (isBoolean(this.data)) {\n this.valueType = 'boolean'\n } else if (null === this.data) {\n this.valueType = 'null'\n this.value = 'null'\n }\n }\n }\n\n toggle() {\n if (!(this.childrenKeys && this.childrenKeys.length)) {\n return\n }\n this.isOpen = !this.isOpen\n }\n\n}\n","<div class=\"json-view\">\n <a (click)=\"toggle()\">\n <span class=\"toggler\"\n [ngClass]=\"{'collapse': isOpen, 'expand': !isOpen}\"\n [style.visibility]=\"hasChildren?'visible':'hidden'\"></span>\n <span class=\"key\"\n *ngIf=\"key\">\n <span>{{key}}</span>\n <span>: </span>\n </span>\n <span class=\"value\">\n <span *ngIf=\"isObject\">\n {{ dataType }}\n <span *ngIf=\"isArray\">[ {{ $any(data)?.length }} ]</span>\n </span>\n <span *ngIf=\"!isObject && valueType\"\n [ngClass]=\"valueType\">{{ value }}</span>\n </span>\n </a>\n <div class=\"children\"\n *ngIf=\"hasChildren && isOpen\">\n <nxt-json-view-item *ngFor=\"let _key of childrenKeys\"\n [data]=\"data[_key]\"\n [key]=\"_key\"\n [level]=\"level+1\"\n [levelOpen]=\"levelOpen\"\n [levelLabels]=\"levelLabels\"></nxt-json-view-item>\n </div>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core'\nimport { LevelLabels } from '../utils/interfaces'\n\n@Component({\n selector: 'nxt-json-view',\n templateUrl: './json-view.component.html',\n styleUrls: ['./json-view.component.scss'],\n encapsulation: ViewEncapsulation.Emulated\n})\nexport class JsonViewComponent {\n /** JSON data, any valid JSON object */\n @Input() data: any\n /** Initial number of levels to be expanded */\n @Input() levelOpen?: number\n /** Custom labels for elements within the hierarcy */\n @Input() levelLabels?: LevelLabels\n}\n","<div class=\"nxt-json-view\">\n <nxt-json-view-item [data]=\"data\"\n [level]=\"0\"\n [levelOpen]=\"levelOpen\"\n [levelLabels]=\"levelLabels\"\n class=\"json-view\"></nxt-json-view-item>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { JsonViewItemComponent } from './json-view-item/json-view-item.component'\nimport { JsonViewComponent } from './json-view/json-view.component'\n\n@NgModule({\n declarations: [\n JsonViewItemComponent,\n JsonViewComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n JsonViewComponent\n ]\n})\nexport class JsonViewModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.JsonViewItemComponent"],"mappings":"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"}
|