@memberjunction/ng-deep-diff 2.65.0 → 2.67.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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OnInit,
|
|
1
|
+
import { OnInit, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { DeepDiffResult, DiffChangeType, DiffChange } from '@memberjunction/global';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export interface DeepDiffItem extends DiffChange {
|
|
@@ -7,24 +7,37 @@ export interface DeepDiffItem extends DiffChange {
|
|
|
7
7
|
children: DeepDiffItem[];
|
|
8
8
|
parentPath: string;
|
|
9
9
|
}
|
|
10
|
-
export declare class DeepDiffComponent implements OnInit
|
|
10
|
+
export declare class DeepDiffComponent implements OnInit {
|
|
11
11
|
private cdr;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
private _oldValue;
|
|
13
|
+
private _newValue;
|
|
14
|
+
private _showUnchanged;
|
|
15
|
+
private _maxDepth;
|
|
16
|
+
private _maxStringLength;
|
|
17
|
+
get oldValue(): any;
|
|
18
|
+
set oldValue(value: any);
|
|
19
|
+
get newValue(): any;
|
|
20
|
+
set newValue(value: any);
|
|
21
|
+
get showUnchanged(): boolean;
|
|
22
|
+
set showUnchanged(value: boolean);
|
|
23
|
+
get maxDepth(): number;
|
|
24
|
+
set maxDepth(value: number);
|
|
25
|
+
get maxStringLength(): number;
|
|
26
|
+
set maxStringLength(value: number);
|
|
14
27
|
title: string;
|
|
15
28
|
showSummary: boolean;
|
|
16
|
-
showUnchanged: boolean;
|
|
17
29
|
expandAll: boolean;
|
|
18
|
-
|
|
19
|
-
maxStringLength: number;
|
|
30
|
+
truncateValues: boolean;
|
|
20
31
|
diffResult: DeepDiffResult | null;
|
|
21
32
|
diffItems: DeepDiffItem[];
|
|
22
33
|
filter: string;
|
|
23
34
|
filterType: 'all' | 'added' | 'removed' | 'modified' | 'unchanged';
|
|
35
|
+
expandedValuesMap: {
|
|
36
|
+
[key: string]: boolean;
|
|
37
|
+
};
|
|
24
38
|
private differ;
|
|
25
39
|
constructor(cdr: ChangeDetectorRef);
|
|
26
40
|
ngOnInit(): void;
|
|
27
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
28
41
|
private updateDifferConfig;
|
|
29
42
|
private generateDiff;
|
|
30
43
|
private buildHierarchicalItems;
|
|
@@ -34,10 +47,15 @@ export declare class DeepDiffComponent implements OnInit, OnChanges {
|
|
|
34
47
|
get filteredItems(): DeepDiffItem[];
|
|
35
48
|
getIcon(type: DiffChangeType): string;
|
|
36
49
|
getTypeClass(type: DiffChangeType): string;
|
|
37
|
-
formatValue(value: any): string;
|
|
50
|
+
formatValue(value: any, path: string): string;
|
|
51
|
+
isValueTruncated(value: any, path: string): boolean;
|
|
52
|
+
toggleValueExpansion(path: string, event: Event): void;
|
|
53
|
+
private getObjectSize;
|
|
38
54
|
copyToClipboard(text: string): void;
|
|
55
|
+
isExpanded(path: string): boolean;
|
|
56
|
+
copyValueToClipboard(value: any, event: Event): void;
|
|
39
57
|
exportDiff(): void;
|
|
40
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<DeepDiffComponent, never>;
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DeepDiffComponent, "mj-deep-diff", never, { "oldValue": { "alias": "oldValue"; "required": false; }; "newValue": { "alias": "newValue"; "required": false; }; "
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DeepDiffComponent, "mj-deep-diff", never, { "oldValue": { "alias": "oldValue"; "required": false; }; "newValue": { "alias": "newValue"; "required": false; }; "showUnchanged": { "alias": "showUnchanged"; "required": false; }; "maxDepth": { "alias": "maxDepth"; "required": false; }; "maxStringLength": { "alias": "maxStringLength"; "required": false; }; "title": { "alias": "title"; "required": false; }; "showSummary": { "alias": "showSummary"; "required": false; }; "expandAll": { "alias": "expandAll"; "required": false; }; "truncateValues": { "alias": "truncateValues"; "required": false; }; }, {}, never, never, false, never>;
|
|
42
60
|
}
|
|
43
61
|
//# sourceMappingURL=deep-diff.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-diff.component.d.ts","sourceRoot":"","sources":["../../src/lib/deep-diff.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"deep-diff.component.d.ts","sourceRoot":"","sources":["../../src/lib/deep-diff.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AACrG,OAAO,EAAc,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;;AAEhG,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAMa,iBAAkB,YAAW,MAAM;IAoElC,OAAO,CAAC,GAAG;IAnEvB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,gBAAgB,CAAe;IAEvC,IACI,QAAQ,IAAI,GAAG,CAElB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAGtB;IAED,IACI,QAAQ,IAAI,GAAG,CAElB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAGtB;IAED,IACI,aAAa,IAAI,OAAO,CAE3B;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAI/B;IAED,IACI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAIzB;IAED,IACI,eAAe,IAAI,MAAM,CAE5B;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAIhC;IAEQ,KAAK,EAAE,MAAM,CAAwB;IACrC,WAAW,EAAE,OAAO,CAAQ;IAC5B,SAAS,EAAE,OAAO,CAAS;IAC3B,cAAc,EAAE,OAAO,CAAQ;IAExC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAQ;IACzC,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,MAAM,EAAE,MAAM,CAAM;IACpB,UAAU,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAS;IAC3E,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAM;IAEnD,OAAO,CAAC,MAAM,CAAa;gBAEP,GAAG,EAAE,iBAAiB;IAQ1C,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,sBAAsB;IAqC9B,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKpC,cAAc,IAAI,IAAI;IAatB,gBAAgB,IAAI,IAAI;IAaxB,IAAI,aAAa,IAAI,YAAY,EAAE,CAiClC;IAED,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAUrC,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAU1C,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IA+B7C,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAqBnD,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAatD,OAAO,CAAC,aAAa;IAOrB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMnC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAuBpD,UAAU,IAAI,IAAI;yCA5UP,iBAAiB;2CAAjB,iBAAiB;CAwV7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { DeepDiffer, DiffChangeType } from '@memberjunction/global';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
@@ -101,52 +101,139 @@ function DeepDiffComponent_ng_template_34_Conditional_2_Template(rf, ctx) { if (
|
|
|
101
101
|
function DeepDiffComponent_ng_template_34_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
102
102
|
i0.ɵɵelement(0, "span", 42);
|
|
103
103
|
} }
|
|
104
|
+
function DeepDiffComponent_ng_template_34_Conditional_11_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
106
|
+
i0.ɵɵelementStart(0, "button", 57);
|
|
107
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_11_Conditional_8_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const item_r6 = i0.ɵɵnextContext(2).item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleValueExpansion(item_r6.path + "_old", $event)); });
|
|
108
|
+
i0.ɵɵelement(1, "i", 58);
|
|
109
|
+
i0.ɵɵelementEnd();
|
|
110
|
+
} if (rf & 2) {
|
|
111
|
+
const item_r6 = i0.ɵɵnextContext(2).item;
|
|
112
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
113
|
+
i0.ɵɵpropertyInterpolate("title", ctx_r1.isExpanded(item_r6.path + "_old") ? "Collapse" : "Expand");
|
|
114
|
+
i0.ɵɵadvance();
|
|
115
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isExpanded(item_r6.path + "_old") ? "fa-compress-alt" : "fa-expand-alt");
|
|
116
|
+
} }
|
|
117
|
+
function DeepDiffComponent_ng_template_34_Conditional_11_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
119
|
+
i0.ɵɵelementStart(0, "button", 57);
|
|
120
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_11_Conditional_16_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const item_r6 = i0.ɵɵnextContext(2).item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleValueExpansion(item_r6.path + "_new", $event)); });
|
|
121
|
+
i0.ɵɵelement(1, "i", 58);
|
|
122
|
+
i0.ɵɵelementEnd();
|
|
123
|
+
} if (rf & 2) {
|
|
124
|
+
const item_r6 = i0.ɵɵnextContext(2).item;
|
|
125
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
126
|
+
i0.ɵɵpropertyInterpolate("title", ctx_r1.isExpanded(item_r6.path + "_new") ? "Collapse" : "Expand");
|
|
127
|
+
i0.ɵɵadvance();
|
|
128
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isExpanded(item_r6.path + "_new") ? "fa-compress-alt" : "fa-expand-alt");
|
|
129
|
+
} }
|
|
104
130
|
function DeepDiffComponent_ng_template_34_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
105
132
|
i0.ɵɵelementStart(0, "div", 48)(1, "div", 51)(2, "span", 52);
|
|
106
133
|
i0.ɵɵtext(3, "Old:");
|
|
107
134
|
i0.ɵɵelementEnd();
|
|
108
135
|
i0.ɵɵelementStart(4, "code", 53);
|
|
109
136
|
i0.ɵɵtext(5);
|
|
110
|
-
i0.ɵɵelementEnd()();
|
|
111
|
-
i0.ɵɵelementStart(6, "div", 54)(7, "span", 52);
|
|
112
|
-
i0.ɵɵtext(8, "New:");
|
|
113
137
|
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵelementStart(
|
|
115
|
-
i0.ɵɵ
|
|
116
|
-
i0.ɵɵ
|
|
138
|
+
i0.ɵɵelementStart(6, "button", 54);
|
|
139
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_11_Template_button_click_6_listener($event) { i0.ɵɵrestoreView(_r7); const item_r6 = i0.ɵɵnextContext().item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyValueToClipboard(item_r6.oldValue, $event)); });
|
|
140
|
+
i0.ɵɵelement(7, "i", 47);
|
|
141
|
+
i0.ɵɵelementEnd();
|
|
142
|
+
i0.ɵɵtemplate(8, DeepDiffComponent_ng_template_34_Conditional_11_Conditional_8_Template, 2, 2, "button", 55);
|
|
143
|
+
i0.ɵɵelementEnd();
|
|
144
|
+
i0.ɵɵelementStart(9, "div", 56)(10, "span", 52);
|
|
145
|
+
i0.ɵɵtext(11, "New:");
|
|
146
|
+
i0.ɵɵelementEnd();
|
|
147
|
+
i0.ɵɵelementStart(12, "code", 53);
|
|
148
|
+
i0.ɵɵtext(13);
|
|
149
|
+
i0.ɵɵelementEnd();
|
|
150
|
+
i0.ɵɵelementStart(14, "button", 54);
|
|
151
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_11_Template_button_click_14_listener($event) { i0.ɵɵrestoreView(_r7); const item_r6 = i0.ɵɵnextContext().item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyValueToClipboard(item_r6.newValue, $event)); });
|
|
152
|
+
i0.ɵɵelement(15, "i", 47);
|
|
153
|
+
i0.ɵɵelementEnd();
|
|
154
|
+
i0.ɵɵtemplate(16, DeepDiffComponent_ng_template_34_Conditional_11_Conditional_16_Template, 2, 2, "button", 55);
|
|
155
|
+
i0.ɵɵelementEnd()();
|
|
117
156
|
} if (rf & 2) {
|
|
118
157
|
const item_r6 = i0.ɵɵnextContext().item;
|
|
119
158
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
120
159
|
i0.ɵɵadvance(5);
|
|
121
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.oldValue));
|
|
160
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.oldValue, item_r6.path + "_old"));
|
|
161
|
+
i0.ɵɵadvance(3);
|
|
162
|
+
i0.ɵɵconditional(ctx_r1.isValueTruncated(item_r6.oldValue, item_r6.path + "_old") || ctx_r1.isExpanded(item_r6.path + "_old") ? 8 : -1);
|
|
122
163
|
i0.ɵɵadvance(5);
|
|
123
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.newValue));
|
|
164
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.newValue, item_r6.path + "_new"));
|
|
165
|
+
i0.ɵɵadvance(3);
|
|
166
|
+
i0.ɵɵconditional(ctx_r1.isValueTruncated(item_r6.newValue, item_r6.path + "_new") || ctx_r1.isExpanded(item_r6.path + "_new") ? 16 : -1);
|
|
167
|
+
} }
|
|
168
|
+
function DeepDiffComponent_ng_template_34_Conditional_12_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
169
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
170
|
+
i0.ɵɵelementStart(0, "button", 57);
|
|
171
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_12_Conditional_8_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r11); const item_r6 = i0.ɵɵnextContext(2).item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleValueExpansion(item_r6.path, $event)); });
|
|
172
|
+
i0.ɵɵelement(1, "i", 58);
|
|
173
|
+
i0.ɵɵelementEnd();
|
|
174
|
+
} if (rf & 2) {
|
|
175
|
+
const item_r6 = i0.ɵɵnextContext(2).item;
|
|
176
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
177
|
+
i0.ɵɵpropertyInterpolate("title", ctx_r1.isExpanded(item_r6.path) ? "Collapse" : "Expand");
|
|
178
|
+
i0.ɵɵadvance();
|
|
179
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isExpanded(item_r6.path) ? "fa-compress-alt" : "fa-expand-alt");
|
|
124
180
|
} }
|
|
125
181
|
function DeepDiffComponent_ng_template_34_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
126
|
-
|
|
182
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
183
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "div", 56)(2, "span", 52);
|
|
127
184
|
i0.ɵɵtext(3, "Value:");
|
|
128
185
|
i0.ɵɵelementEnd();
|
|
129
186
|
i0.ɵɵelementStart(4, "code", 53);
|
|
130
187
|
i0.ɵɵtext(5);
|
|
131
|
-
i0.ɵɵelementEnd()
|
|
188
|
+
i0.ɵɵelementEnd();
|
|
189
|
+
i0.ɵɵelementStart(6, "button", 54);
|
|
190
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_12_Template_button_click_6_listener($event) { i0.ɵɵrestoreView(_r10); const item_r6 = i0.ɵɵnextContext().item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyValueToClipboard(item_r6.newValue, $event)); });
|
|
191
|
+
i0.ɵɵelement(7, "i", 47);
|
|
192
|
+
i0.ɵɵelementEnd();
|
|
193
|
+
i0.ɵɵtemplate(8, DeepDiffComponent_ng_template_34_Conditional_12_Conditional_8_Template, 2, 2, "button", 55);
|
|
194
|
+
i0.ɵɵelementEnd()();
|
|
132
195
|
} if (rf & 2) {
|
|
133
196
|
const item_r6 = i0.ɵɵnextContext().item;
|
|
134
197
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
135
198
|
i0.ɵɵadvance(5);
|
|
136
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.newValue));
|
|
199
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.newValue, item_r6.path));
|
|
200
|
+
i0.ɵɵadvance(3);
|
|
201
|
+
i0.ɵɵconditional(ctx_r1.isValueTruncated(item_r6.newValue, item_r6.path) || ctx_r1.isExpanded(item_r6.path) ? 8 : -1);
|
|
202
|
+
} }
|
|
203
|
+
function DeepDiffComponent_ng_template_34_Conditional_13_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
204
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
205
|
+
i0.ɵɵelementStart(0, "button", 57);
|
|
206
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_13_Conditional_8_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const item_r6 = i0.ɵɵnextContext(2).item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleValueExpansion(item_r6.path, $event)); });
|
|
207
|
+
i0.ɵɵelement(1, "i", 58);
|
|
208
|
+
i0.ɵɵelementEnd();
|
|
209
|
+
} if (rf & 2) {
|
|
210
|
+
const item_r6 = i0.ɵɵnextContext(2).item;
|
|
211
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
212
|
+
i0.ɵɵpropertyInterpolate("title", ctx_r1.isExpanded(item_r6.path) ? "Collapse" : "Expand");
|
|
213
|
+
i0.ɵɵadvance();
|
|
214
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isExpanded(item_r6.path) ? "fa-compress-alt" : "fa-expand-alt");
|
|
137
215
|
} }
|
|
138
216
|
function DeepDiffComponent_ng_template_34_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
217
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
139
218
|
i0.ɵɵelementStart(0, "div", 48)(1, "div", 51)(2, "span", 52);
|
|
140
219
|
i0.ɵɵtext(3, "Value:");
|
|
141
220
|
i0.ɵɵelementEnd();
|
|
142
221
|
i0.ɵɵelementStart(4, "code", 53);
|
|
143
222
|
i0.ɵɵtext(5);
|
|
144
|
-
i0.ɵɵelementEnd()
|
|
223
|
+
i0.ɵɵelementEnd();
|
|
224
|
+
i0.ɵɵelementStart(6, "button", 54);
|
|
225
|
+
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Conditional_13_Template_button_click_6_listener($event) { i0.ɵɵrestoreView(_r12); const item_r6 = i0.ɵɵnextContext().item; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyValueToClipboard(item_r6.oldValue, $event)); });
|
|
226
|
+
i0.ɵɵelement(7, "i", 47);
|
|
227
|
+
i0.ɵɵelementEnd();
|
|
228
|
+
i0.ɵɵtemplate(8, DeepDiffComponent_ng_template_34_Conditional_13_Conditional_8_Template, 2, 2, "button", 55);
|
|
229
|
+
i0.ɵɵelementEnd()();
|
|
145
230
|
} if (rf & 2) {
|
|
146
231
|
const item_r6 = i0.ɵɵnextContext().item;
|
|
147
232
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
148
233
|
i0.ɵɵadvance(5);
|
|
149
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.oldValue));
|
|
234
|
+
i0.ɵɵtextInterpolate(ctx_r1.formatValue(item_r6.oldValue, item_r6.path));
|
|
235
|
+
i0.ɵɵadvance(3);
|
|
236
|
+
i0.ɵɵconditional(ctx_r1.isValueTruncated(item_r6.oldValue, item_r6.path) || ctx_r1.isExpanded(item_r6.path) ? 8 : -1);
|
|
150
237
|
} }
|
|
151
238
|
function DeepDiffComponent_ng_template_34_Conditional_14_For_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
152
239
|
i0.ɵɵelementContainer(0);
|
|
@@ -154,11 +241,11 @@ function DeepDiffComponent_ng_template_34_Conditional_14_For_2_ng_container_0_Te
|
|
|
154
241
|
function DeepDiffComponent_ng_template_34_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
155
242
|
i0.ɵɵtemplate(0, DeepDiffComponent_ng_template_34_Conditional_14_For_2_ng_container_0_Template, 1, 0, "ng-container", 38);
|
|
156
243
|
} if (rf & 2) {
|
|
157
|
-
const
|
|
158
|
-
const
|
|
244
|
+
const child_r14 = ctx.$implicit;
|
|
245
|
+
const level_r15 = i0.ɵɵnextContext(2).level;
|
|
159
246
|
i0.ɵɵnextContext();
|
|
160
247
|
const diffItem_r4 = i0.ɵɵreference(35);
|
|
161
|
-
i0.ɵɵproperty("ngTemplateOutlet", diffItem_r4)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1,
|
|
248
|
+
i0.ɵɵproperty("ngTemplateOutlet", diffItem_r4)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, child_r14, level_r15 + 1));
|
|
162
249
|
} }
|
|
163
250
|
function DeepDiffComponent_ng_template_34_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
164
251
|
i0.ɵɵelementStart(0, "div", 49);
|
|
@@ -185,14 +272,14 @@ function DeepDiffComponent_ng_template_34_Template(rf, ctx) { if (rf & 1) {
|
|
|
185
272
|
i0.ɵɵlistener("click", function DeepDiffComponent_ng_template_34_Template_button_click_9_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).item; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.copyToClipboard(item_r6.path); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
186
273
|
i0.ɵɵelement(10, "i", 47);
|
|
187
274
|
i0.ɵɵelementEnd()();
|
|
188
|
-
i0.ɵɵtemplate(11, DeepDiffComponent_ng_template_34_Conditional_11_Template,
|
|
275
|
+
i0.ɵɵtemplate(11, DeepDiffComponent_ng_template_34_Conditional_11_Template, 17, 4, "div", 48)(12, DeepDiffComponent_ng_template_34_Conditional_12_Template, 9, 2, "div", 48)(13, DeepDiffComponent_ng_template_34_Conditional_13_Template, 9, 2, "div", 48)(14, DeepDiffComponent_ng_template_34_Conditional_14_Template, 3, 0, "div", 49);
|
|
189
276
|
i0.ɵɵelementEnd();
|
|
190
277
|
} if (rf & 2) {
|
|
191
278
|
const item_r6 = ctx.item;
|
|
192
|
-
const
|
|
279
|
+
const level_r15 = ctx.level;
|
|
193
280
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
194
281
|
i0.ɵɵclassMap(ctx_r1.getTypeClass(item_r6.type));
|
|
195
|
-
i0.ɵɵstyleProp("padding-left",
|
|
282
|
+
i0.ɵɵstyleProp("padding-left", level_r15 * 24, "px");
|
|
196
283
|
i0.ɵɵadvance(2);
|
|
197
284
|
i0.ɵɵconditional(item_r6.children.length > 0 ? 2 : 3);
|
|
198
285
|
i0.ɵɵadvance(2);
|
|
@@ -208,18 +295,58 @@ function DeepDiffComponent_ng_template_34_Template(rf, ctx) { if (rf & 1) {
|
|
|
208
295
|
} }
|
|
209
296
|
export class DeepDiffComponent {
|
|
210
297
|
cdr;
|
|
211
|
-
|
|
212
|
-
|
|
298
|
+
_oldValue;
|
|
299
|
+
_newValue;
|
|
300
|
+
_showUnchanged = false;
|
|
301
|
+
_maxDepth = 10;
|
|
302
|
+
_maxStringLength = 100;
|
|
303
|
+
get oldValue() {
|
|
304
|
+
return this._oldValue;
|
|
305
|
+
}
|
|
306
|
+
set oldValue(value) {
|
|
307
|
+
this._oldValue = value;
|
|
308
|
+
this.generateDiff();
|
|
309
|
+
}
|
|
310
|
+
get newValue() {
|
|
311
|
+
return this._newValue;
|
|
312
|
+
}
|
|
313
|
+
set newValue(value) {
|
|
314
|
+
this._newValue = value;
|
|
315
|
+
this.generateDiff();
|
|
316
|
+
}
|
|
317
|
+
get showUnchanged() {
|
|
318
|
+
return this._showUnchanged;
|
|
319
|
+
}
|
|
320
|
+
set showUnchanged(value) {
|
|
321
|
+
this._showUnchanged = value;
|
|
322
|
+
this.updateDifferConfig();
|
|
323
|
+
this.generateDiff();
|
|
324
|
+
}
|
|
325
|
+
get maxDepth() {
|
|
326
|
+
return this._maxDepth;
|
|
327
|
+
}
|
|
328
|
+
set maxDepth(value) {
|
|
329
|
+
this._maxDepth = value;
|
|
330
|
+
this.updateDifferConfig();
|
|
331
|
+
this.generateDiff();
|
|
332
|
+
}
|
|
333
|
+
get maxStringLength() {
|
|
334
|
+
return this._maxStringLength;
|
|
335
|
+
}
|
|
336
|
+
set maxStringLength(value) {
|
|
337
|
+
this._maxStringLength = value;
|
|
338
|
+
this.updateDifferConfig();
|
|
339
|
+
this.generateDiff();
|
|
340
|
+
}
|
|
213
341
|
title = 'Deep Diff Analysis';
|
|
214
342
|
showSummary = true;
|
|
215
|
-
showUnchanged = false;
|
|
216
343
|
expandAll = false;
|
|
217
|
-
|
|
218
|
-
maxStringLength = 100;
|
|
344
|
+
truncateValues = true;
|
|
219
345
|
diffResult = null;
|
|
220
346
|
diffItems = [];
|
|
221
347
|
filter = '';
|
|
222
348
|
filterType = 'all';
|
|
349
|
+
expandedValuesMap = {};
|
|
223
350
|
differ;
|
|
224
351
|
constructor(cdr) {
|
|
225
352
|
this.cdr = cdr;
|
|
@@ -232,13 +359,6 @@ export class DeepDiffComponent {
|
|
|
232
359
|
ngOnInit() {
|
|
233
360
|
this.generateDiff();
|
|
234
361
|
}
|
|
235
|
-
ngOnChanges(changes) {
|
|
236
|
-
if (changes['oldValue'] || changes['newValue'] || changes['showUnchanged'] ||
|
|
237
|
-
changes['maxDepth'] || changes['maxStringLength']) {
|
|
238
|
-
this.updateDifferConfig();
|
|
239
|
-
this.generateDiff();
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
362
|
updateDifferConfig() {
|
|
243
363
|
this.differ.updateConfig({
|
|
244
364
|
includeUnchanged: this.showUnchanged,
|
|
@@ -366,20 +486,28 @@ export class DeepDiffComponent {
|
|
|
366
486
|
default: return '';
|
|
367
487
|
}
|
|
368
488
|
}
|
|
369
|
-
formatValue(value) {
|
|
489
|
+
formatValue(value, path) {
|
|
370
490
|
if (value === undefined)
|
|
371
491
|
return 'undefined';
|
|
372
492
|
if (value === null)
|
|
373
493
|
return 'null';
|
|
494
|
+
const isExpanded = !!this.expandedValuesMap[path];
|
|
495
|
+
const shouldTruncate = this.truncateValues && !isExpanded;
|
|
374
496
|
if (typeof value === 'string') {
|
|
375
|
-
|
|
376
|
-
`"${value.substring(0, this.maxStringLength)}..."
|
|
377
|
-
|
|
497
|
+
if (shouldTruncate && value.length > this.maxStringLength) {
|
|
498
|
+
return `"${value.substring(0, this.maxStringLength)}..."`;
|
|
499
|
+
}
|
|
500
|
+
return `"${value}"`;
|
|
378
501
|
}
|
|
379
502
|
if (typeof value === 'object') {
|
|
380
503
|
try {
|
|
381
504
|
const json = JSON.stringify(value, null, 2);
|
|
382
|
-
|
|
505
|
+
if (shouldTruncate && json.length > 200) {
|
|
506
|
+
// Show a preview for objects
|
|
507
|
+
const preview = JSON.stringify(value).substring(0, 50);
|
|
508
|
+
return `${preview}... (${this.getObjectSize(value)} properties)`;
|
|
509
|
+
}
|
|
510
|
+
return json;
|
|
383
511
|
}
|
|
384
512
|
catch {
|
|
385
513
|
return String(value);
|
|
@@ -387,11 +515,72 @@ export class DeepDiffComponent {
|
|
|
387
515
|
}
|
|
388
516
|
return String(value);
|
|
389
517
|
}
|
|
518
|
+
isValueTruncated(value, path) {
|
|
519
|
+
if (!this.truncateValues || this.expandedValuesMap[path]) {
|
|
520
|
+
return false;
|
|
521
|
+
}
|
|
522
|
+
if (typeof value === 'string') {
|
|
523
|
+
return value.length > this.maxStringLength;
|
|
524
|
+
}
|
|
525
|
+
if (typeof value === 'object' && value !== null) {
|
|
526
|
+
try {
|
|
527
|
+
const json = JSON.stringify(value, null, 2);
|
|
528
|
+
return json.length > 200;
|
|
529
|
+
}
|
|
530
|
+
catch {
|
|
531
|
+
return false;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
return false;
|
|
535
|
+
}
|
|
536
|
+
toggleValueExpansion(path, event) {
|
|
537
|
+
event.stopPropagation();
|
|
538
|
+
// Create a new object to trigger change detection
|
|
539
|
+
this.expandedValuesMap = {
|
|
540
|
+
...this.expandedValuesMap,
|
|
541
|
+
[path]: !this.expandedValuesMap[path]
|
|
542
|
+
};
|
|
543
|
+
// Force change detection
|
|
544
|
+
this.cdr.markForCheck();
|
|
545
|
+
}
|
|
546
|
+
getObjectSize(obj) {
|
|
547
|
+
if (Array.isArray(obj)) {
|
|
548
|
+
return obj.length;
|
|
549
|
+
}
|
|
550
|
+
return Object.keys(obj).length;
|
|
551
|
+
}
|
|
390
552
|
copyToClipboard(text) {
|
|
391
553
|
navigator.clipboard.writeText(text).then(() => {
|
|
392
554
|
// Could add a toast notification here
|
|
393
555
|
});
|
|
394
556
|
}
|
|
557
|
+
isExpanded(path) {
|
|
558
|
+
return !!this.expandedValuesMap[path];
|
|
559
|
+
}
|
|
560
|
+
copyValueToClipboard(value, event) {
|
|
561
|
+
event.stopPropagation();
|
|
562
|
+
let textToCopy;
|
|
563
|
+
if (value === undefined) {
|
|
564
|
+
textToCopy = 'undefined';
|
|
565
|
+
}
|
|
566
|
+
else if (value === null) {
|
|
567
|
+
textToCopy = 'null';
|
|
568
|
+
}
|
|
569
|
+
else if (typeof value === 'object') {
|
|
570
|
+
try {
|
|
571
|
+
textToCopy = JSON.stringify(value, null, 2);
|
|
572
|
+
}
|
|
573
|
+
catch {
|
|
574
|
+
textToCopy = String(value);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
textToCopy = String(value);
|
|
579
|
+
}
|
|
580
|
+
navigator.clipboard.writeText(textToCopy).then(() => {
|
|
581
|
+
// Could add a toast notification here
|
|
582
|
+
});
|
|
583
|
+
}
|
|
395
584
|
exportDiff() {
|
|
396
585
|
if (!this.diffResult)
|
|
397
586
|
return;
|
|
@@ -404,7 +593,7 @@ export class DeepDiffComponent {
|
|
|
404
593
|
URL.revokeObjectURL(url);
|
|
405
594
|
}
|
|
406
595
|
static ɵfac = function DeepDiffComponent_Factory(t) { return new (t || DeepDiffComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
407
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DeepDiffComponent, selectors: [["mj-deep-diff"]], inputs: { oldValue: "oldValue", newValue: "newValue",
|
|
596
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DeepDiffComponent, selectors: [["mj-deep-diff"]], inputs: { oldValue: "oldValue", newValue: "newValue", showUnchanged: "showUnchanged", maxDepth: "maxDepth", maxStringLength: "maxStringLength", title: "title", showSummary: "showSummary", expandAll: "expandAll", truncateValues: "truncateValues" }, decls: 36, vars: 13, consts: [["diffItem", ""], [1, "deep-diff-container"], [1, "diff-header"], [1, "header-content"], [1, "diff-title"], [1, "fa-solid", "fa-code-branch"], [1, "header-actions"], ["title", "Expand All", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-expand"], ["title", "Collapse All", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-compress"], ["title", "Export Diff", 1, "btn-icon", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "diff-summary"], [1, "diff-filters"], [1, "filter-search"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Filter by path or description...", 1, "filter-input", 3, "ngModelChange", "ngModel"], [1, "filter-types"], [1, "filter-btn", 3, "click"], [1, "filter-btn", "added", 3, "click"], [1, "fa-solid", "fa-plus-circle"], [1, "filter-btn", "removed", 3, "click"], [1, "fa-solid", "fa-minus-circle"], [1, "filter-btn", "modified", 3, "click"], [1, "fa-solid", "fa-edit"], [1, "diff-content"], [1, "empty-state"], [1, "diff-tree"], [1, "summary-item", "added"], [1, "count"], [1, "label"], [1, "summary-item", "removed"], [1, "summary-item", "modified"], [1, "summary-item", "unchanged"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-code-compare", "fa-3x"], [1, "fa-solid", "fa-filter", "fa-3x"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "diff-item"], [1, "item-header", 3, "click"], [1, "fa-solid", "fa-chevron-right", "expand-icon", 3, "expanded"], [1, "expand-spacer"], [1, "fa-solid", "type-icon", 3, "ngClass"], [1, "item-path"], [1, "item-description"], ["title", "Copy path", 1, "btn-copy", 3, "click"], [1, "fa-solid", "fa-copy"], [1, "value-details"], [1, "item-children"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "value-row", "old"], [1, "value-label"], [1, "value-content"], ["title", "Copy value", 1, "btn-copy", 3, "click"], [1, "btn-expand-value", 3, "title"], [1, "value-row", "new"], [1, "btn-expand-value", 3, "click", "title"], [1, "fa-solid", 3, "ngClass"]], template: function DeepDiffComponent_Template(rf, ctx) { if (rf & 1) {
|
|
408
597
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
409
598
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "h2", 4);
|
|
410
599
|
i0.ɵɵelement(4, "i", 5);
|
|
@@ -471,27 +660,29 @@ export class DeepDiffComponent {
|
|
|
471
660
|
i0.ɵɵclassProp("active", ctx.filterType === "modified");
|
|
472
661
|
i0.ɵɵadvance(4);
|
|
473
662
|
i0.ɵɵconditional(!ctx.diffResult ? 31 : ctx.filteredItems.length === 0 ? 32 : 33);
|
|
474
|
-
} }, dependencies: [i1.NgClass, i1.NgTemplateOutlet, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel], styles: ["\n\n.deep-diff-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n\n\n.diff-header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n padding: 20px;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.diff-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.diff-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #3498db;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 14px;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.btn-icon[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.diff-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n}\n\n.summary-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: white;\n border-radius: 20px;\n font-size: 14px;\n border: 1px solid #e9ecef;\n transition: all 0.2s ease;\n}\n\n.summary-item[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.summary-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.summary-item[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 16px;\n}\n\n.summary-item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 13px;\n}\n\n.summary-item.added[_ngcontent-%COMP%] {\n border-color: #d4edda;\n background: #f4fdf6;\n}\n\n.summary-item.added[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.added[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.summary-item.removed[_ngcontent-%COMP%] {\n border-color: #f8d7da;\n background: #fef5f6;\n}\n\n.summary-item.removed[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.removed[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.summary-item.modified[_ngcontent-%COMP%] {\n border-color: #cce5ff;\n background: #f0f7ff;\n}\n\n.summary-item.modified[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.modified[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #007bff;\n}\n\n.summary-item.unchanged[_ngcontent-%COMP%] {\n border-color: #e2e3e5;\n background: #f8f9fa;\n}\n\n.summary-item.unchanged[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.unchanged[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #6c757d;\n}\n\n\n\n.diff-filters[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n display: flex;\n gap: 16px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.filter-search[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 250px;\n position: relative;\n}\n\n.filter-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #6c757d;\n font-size: 14px;\n}\n\n.filter-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px 8px 36px;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n font-size: 14px;\n transition: all 0.2s ease;\n}\n\n.filter-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.filter-types[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: #3498db;\n color: white;\n border-color: #3498db;\n}\n\n.filter-btn.added.active[_ngcontent-%COMP%] {\n background: #28a745;\n border-color: #28a745;\n}\n\n.filter-btn.removed.active[_ngcontent-%COMP%] {\n background: #dc3545;\n border-color: #dc3545;\n}\n\n.filter-btn.modified.active[_ngcontent-%COMP%] {\n background: #007bff;\n border-color: #007bff;\n}\n\n\n\n.diff-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n background: white;\n padding: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n color: #6c757d;\n gap: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.2;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n}\n\n\n\n.diff-tree[_ngcontent-%COMP%] {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n}\n\n.diff-item[_ngcontent-%COMP%] {\n margin-bottom: 2px;\n transition: all 0.2s ease;\n}\n\n.item-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n\n.item-header[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #6c757d;\n transition: transform 0.2s ease;\n width: 12px;\n flex-shrink: 0;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.expand-spacer[_ngcontent-%COMP%] {\n width: 12px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.item-path[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #2c3e50;\n margin-right: 8px;\n word-break: break-word;\n}\n\n.item-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 12px;\n flex: 1;\n}\n\n.btn-copy[_ngcontent-%COMP%] {\n opacity: 0;\n background: none;\n border: none;\n color: #6c757d;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.item-header[_ngcontent-%COMP%]:hover .btn-copy[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.btn-copy[_ngcontent-%COMP%]:hover {\n background: #e9ecef;\n color: #495057;\n}\n\n\n\n.diff-item.added[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.diff-item.removed[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.diff-item.modified[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #007bff;\n}\n\n.diff-item.unchanged[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #6c757d;\n}\n\n\n\n.value-details[_ngcontent-%COMP%] {\n margin: 8px 0 0 44px;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n}\n\n.value-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-bottom: 8px;\n align-items: flex-start;\n}\n\n.value-row[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.value-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #495057;\n min-width: 40px;\n font-size: 12px;\n padding-top: 2px;\n}\n\n.value-content[_ngcontent-%COMP%] {\n flex: 1;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 12px;\n line-height: 1.5;\n color: #2c3e50;\n background: white;\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.value-row.old[_ngcontent-%COMP%] .value-content[_ngcontent-%COMP%] {\n background: #fef5f6;\n border-color: #f8d7da;\n color: #721c24;\n}\n\n.value-row.new[_ngcontent-%COMP%] .value-content[_ngcontent-%COMP%] {\n background: #f4fdf6;\n border-color: #d4edda;\n color: #155724;\n}\n\n\n\n.item-children[_ngcontent-%COMP%] {\n margin-top: 2px;\n position: relative;\n}\n\n.item-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 6px;\n top: 0;\n bottom: 0;\n width: 1px;\n background: #e9ecef;\n}\n\n\n\n@media (max-width: 768px) {\n .diff-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n }\n\n .diff-filters[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-search[_ngcontent-%COMP%] {\n min-width: 100%;\n }\n\n .filter-types[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n\n .value-details[_ngcontent-%COMP%] {\n margin-left: 20px;\n }\n}"] });
|
|
663
|
+
} }, dependencies: [i1.NgClass, i1.NgTemplateOutlet, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel], styles: ["\n\n.deep-diff-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n\n\n.diff-header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n padding: 20px;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.diff-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.diff-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #3498db;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 14px;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.btn-icon[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.diff-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n}\n\n.summary-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: white;\n border-radius: 20px;\n font-size: 14px;\n border: 1px solid #e9ecef;\n transition: all 0.2s ease;\n}\n\n.summary-item[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.summary-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.summary-item[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 16px;\n}\n\n.summary-item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 13px;\n}\n\n.summary-item.added[_ngcontent-%COMP%] {\n border-color: #d4edda;\n background: #f4fdf6;\n}\n\n.summary-item.added[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.added[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.summary-item.removed[_ngcontent-%COMP%] {\n border-color: #f8d7da;\n background: #fef5f6;\n}\n\n.summary-item.removed[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.removed[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.summary-item.modified[_ngcontent-%COMP%] {\n border-color: #cce5ff;\n background: #f0f7ff;\n}\n\n.summary-item.modified[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.modified[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #007bff;\n}\n\n.summary-item.unchanged[_ngcontent-%COMP%] {\n border-color: #e2e3e5;\n background: #f8f9fa;\n}\n\n.summary-item.unchanged[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.summary-item.unchanged[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n color: #6c757d;\n}\n\n\n\n.diff-filters[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n display: flex;\n gap: 16px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.filter-search[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 250px;\n position: relative;\n}\n\n.filter-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #6c757d;\n font-size: 14px;\n}\n\n.filter-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px 8px 36px;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n font-size: 14px;\n transition: all 0.2s ease;\n}\n\n.filter-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.filter-types[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: #3498db;\n color: white;\n border-color: #3498db;\n}\n\n.filter-btn.added.active[_ngcontent-%COMP%] {\n background: #28a745;\n border-color: #28a745;\n}\n\n.filter-btn.removed.active[_ngcontent-%COMP%] {\n background: #dc3545;\n border-color: #dc3545;\n}\n\n.filter-btn.modified.active[_ngcontent-%COMP%] {\n background: #007bff;\n border-color: #007bff;\n}\n\n\n\n.diff-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n background: white;\n padding: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n color: #6c757d;\n gap: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.2;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n}\n\n\n\n.diff-tree[_ngcontent-%COMP%] {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n}\n\n.diff-item[_ngcontent-%COMP%] {\n margin-bottom: 2px;\n transition: all 0.2s ease;\n}\n\n.item-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n\n.item-header[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #6c757d;\n transition: transform 0.2s ease;\n width: 12px;\n flex-shrink: 0;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.expand-spacer[_ngcontent-%COMP%] {\n width: 12px;\n flex-shrink: 0;\n}\n\n.type-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.item-path[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #2c3e50;\n margin-right: 8px;\n word-break: break-word;\n}\n\n.item-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 12px;\n flex: 1;\n}\n\n.btn-copy[_ngcontent-%COMP%] {\n opacity: 0;\n background: none;\n border: none;\n color: #6c757d;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.item-header[_ngcontent-%COMP%]:hover .btn-copy[_ngcontent-%COMP%], \n.value-row[_ngcontent-%COMP%]:hover .btn-copy[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.btn-copy[_ngcontent-%COMP%]:hover {\n background: #e9ecef;\n color: #495057;\n}\n\n\n\n.value-row[_ngcontent-%COMP%] .btn-copy[_ngcontent-%COMP%] {\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n\n\n.diff-item.added[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.diff-item.removed[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.diff-item.modified[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #007bff;\n}\n\n.diff-item.unchanged[_ngcontent-%COMP%] .type-icon[_ngcontent-%COMP%] {\n color: #6c757d;\n}\n\n\n\n.value-details[_ngcontent-%COMP%] {\n margin: 8px 0 0 44px;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n}\n\n.value-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-bottom: 8px;\n align-items: flex-start;\n position: relative;\n}\n\n.value-row[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.value-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #495057;\n min-width: 40px;\n font-size: 12px;\n padding-top: 2px;\n}\n\n.value-content[_ngcontent-%COMP%] {\n flex: 1;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 12px;\n line-height: 1.5;\n color: #2c3e50;\n background: white;\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.value-row.old[_ngcontent-%COMP%] .value-content[_ngcontent-%COMP%] {\n background: #fef5f6;\n border-color: #f8d7da;\n color: #721c24;\n}\n\n.value-row.new[_ngcontent-%COMP%] .value-content[_ngcontent-%COMP%] {\n background: #f4fdf6;\n border-color: #d4edda;\n color: #155724;\n}\n\n\n\n.btn-expand-value[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid #dee2e6;\n color: #6c757d;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n font-size: 11px;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.btn-expand-value[_ngcontent-%COMP%]:hover {\n background: #e9ecef;\n color: #495057;\n border-color: #adb5bd;\n}\n\n.btn-expand-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.item-children[_ngcontent-%COMP%] {\n margin-top: 2px;\n position: relative;\n}\n\n.item-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 6px;\n top: 0;\n bottom: 0;\n width: 1px;\n background: #e9ecef;\n}\n\n\n\n@media (max-width: 768px) {\n .diff-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n }\n\n .diff-filters[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-search[_ngcontent-%COMP%] {\n min-width: 100%;\n }\n\n .filter-types[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n\n .value-details[_ngcontent-%COMP%] {\n margin-left: 20px;\n }\n}"], changeDetection: 0 });
|
|
475
664
|
}
|
|
476
665
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DeepDiffComponent, [{
|
|
477
666
|
type: Component,
|
|
478
|
-
args: [{ selector: 'mj-deep-diff', template: "<div class=\"deep-diff-container\">\n <!-- Header -->\n <div class=\"diff-header\">\n <div class=\"header-content\">\n <h2 class=\"diff-title\">\n <i class=\"fa-solid fa-code-branch\"></i>\n {{ title }}\n </h2>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"expandAllItems()\" title=\"Expand All\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"collapseAllItems()\" title=\"Collapse All\">\n <i class=\"fa-solid fa-compress\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"exportDiff()\" title=\"Export Diff\" [disabled]=\"!diffResult\">\n <i class=\"fa-solid fa-download\"></i>\n </button>\n </div>\n </div>\n\n <!-- Summary -->\n @if (showSummary && diffResult) {\n <div class=\"diff-summary\">\n <div class=\"summary-item added\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span class=\"count\">{{ diffResult.summary.added }}</span>\n <span class=\"label\">Added</span>\n </div>\n <div class=\"summary-item removed\">\n <i class=\"fa-solid fa-minus-circle\"></i>\n <span class=\"count\">{{ diffResult.summary.removed }}</span>\n <span class=\"label\">Removed</span>\n </div>\n <div class=\"summary-item modified\">\n <i class=\"fa-solid fa-edit\"></i>\n <span class=\"count\">{{ diffResult.summary.modified }}</span>\n <span class=\"label\">Modified</span>\n </div>\n @if (showUnchanged) {\n <div class=\"summary-item unchanged\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span class=\"count\">{{ diffResult.summary.unchanged }}</span>\n <span class=\"label\">Unchanged</span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Filters -->\n <div class=\"diff-filters\">\n <div class=\"filter-search\">\n <i class=\"fa-solid fa-search\"></i>\n <input \n type=\"text\" \n [(ngModel)]=\"filter\" \n placeholder=\"Filter by path or description...\"\n class=\"filter-input\">\n </div>\n <div class=\"filter-types\">\n <button \n class=\"filter-btn\"\n [class.active]=\"filterType === 'all'\"\n (click)=\"filterType = 'all'\">\n All Changes\n </button>\n <button \n class=\"filter-btn added\"\n [class.active]=\"filterType === 'added'\"\n (click)=\"filterType = 'added'\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n Added\n </button>\n <button \n class=\"filter-btn removed\"\n [class.active]=\"filterType === 'removed'\"\n (click)=\"filterType = 'removed'\">\n <i class=\"fa-solid fa-minus-circle\"></i>\n Removed\n </button>\n <button \n class=\"filter-btn modified\"\n [class.active]=\"filterType === 'modified'\"\n (click)=\"filterType = 'modified'\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </button>\n </div>\n </div>\n\n <!-- Diff Content -->\n <div class=\"diff-content\">\n @if (!diffResult) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-code-compare fa-3x\"></i>\n <p>No data to compare</p>\n </div>\n } @else if (filteredItems.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-filter fa-3x\"></i>\n <p>No changes match your filter criteria</p>\n </div>\n } @else {\n <div class=\"diff-tree\">\n @for (item of filteredItems; track item.path) {\n <ng-container *ngTemplateOutlet=\"diffItem; context: { item: item, level: 0 }\"></ng-container>\n }\n </div>\n }\n </div>\n</div>\n\n<!-- Recursive Template for Diff Items -->\n<ng-template #diffItem let-item=\"item\" let-level=\"level\">\n <div class=\"diff-item\" [class]=\"getTypeClass(item.type)\" [style.padding-left.px]=\"level * 24\">\n <div class=\"item-header\" (click)=\"toggleItem(item)\">\n @if (item.children.length > 0) {\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"item.isExpanded\"></i>\n } @else {\n <span class=\"expand-spacer\"></span>\n }\n \n <i class=\"fa-solid type-icon\" [ngClass]=\"getIcon(item.type)\"></i>\n \n <span class=\"item-path\">{{ item.path }}</span>\n \n <span class=\"item-description\">{{ item.description }}</span>\n \n <button class=\"btn-copy\" (click)=\"copyToClipboard(item.path); $event.stopPropagation()\" title=\"Copy path\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n\n <!-- Value Details -->\n @if (item.type === 'modified') {\n <div class=\"value-details\">\n <div class=\"value-row old\">\n <span class=\"value-label\">Old:</span>\n <code class=\"value-content\">{{ formatValue(item.oldValue) }}</code>\n </div>\n <div class=\"value-row new\">\n <span class=\"value-label\">New:</span>\n <code class=\"value-content\">{{ formatValue(item.newValue) }}</code>\n </div>\n </div>\n } @else if (item.type === 'added') {\n <div class=\"value-details\">\n <div class=\"value-row new\">\n <span class=\"value-label\">Value:</span>\n <code class=\"value-content\">{{ formatValue(item.newValue) }}</code>\n </div>\n </div>\n } @else if (item.type === 'removed') {\n <div class=\"value-details\">\n <div class=\"value-row old\">\n <span class=\"value-label\">Value:</span>\n <code class=\"value-content\">{{ formatValue(item.oldValue) }}</code>\n </div>\n </div>\n }\n\n <!-- Children -->\n @if (item.isExpanded && item.children.length > 0) {\n <div class=\"item-children\">\n @for (child of item.children; track child.path) {\n <ng-container *ngTemplateOutlet=\"diffItem; context: { item: child, level: level + 1 }\"></ng-container>\n }\n </div>\n }\n </div>\n</ng-template>", styles: ["/* Deep Diff Component Styles */\n.deep-diff-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n/* Header */\n.diff-header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n padding: 20px;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.diff-title {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.diff-title i {\n color: #3498db;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 14px;\n}\n\n.btn-icon:hover:not(:disabled) {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.btn-icon:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Summary */\n.diff-summary {\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n}\n\n.summary-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: white;\n border-radius: 20px;\n font-size: 14px;\n border: 1px solid #e9ecef;\n transition: all 0.2s ease;\n}\n\n.summary-item:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.summary-item i {\n font-size: 16px;\n}\n\n.summary-item .count {\n font-weight: 600;\n font-size: 16px;\n}\n\n.summary-item .label {\n color: #6c757d;\n font-size: 13px;\n}\n\n.summary-item.added {\n border-color: #d4edda;\n background: #f4fdf6;\n}\n\n.summary-item.added i,\n.summary-item.added .count {\n color: #28a745;\n}\n\n.summary-item.removed {\n border-color: #f8d7da;\n background: #fef5f6;\n}\n\n.summary-item.removed i,\n.summary-item.removed .count {\n color: #dc3545;\n}\n\n.summary-item.modified {\n border-color: #cce5ff;\n background: #f0f7ff;\n}\n\n.summary-item.modified i,\n.summary-item.modified .count {\n color: #007bff;\n}\n\n.summary-item.unchanged {\n border-color: #e2e3e5;\n background: #f8f9fa;\n}\n\n.summary-item.unchanged i,\n.summary-item.unchanged .count {\n color: #6c757d;\n}\n\n/* Filters */\n.diff-filters {\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n display: flex;\n gap: 16px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.filter-search {\n flex: 1;\n min-width: 250px;\n position: relative;\n}\n\n.filter-search i {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #6c757d;\n font-size: 14px;\n}\n\n.filter-input {\n width: 100%;\n padding: 8px 12px 8px 36px;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n font-size: 14px;\n transition: all 0.2s ease;\n}\n\n.filter-input:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.filter-types {\n display: flex;\n gap: 8px;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n}\n\n.filter-btn.active {\n background: #3498db;\n color: white;\n border-color: #3498db;\n}\n\n.filter-btn.added.active {\n background: #28a745;\n border-color: #28a745;\n}\n\n.filter-btn.removed.active {\n background: #dc3545;\n border-color: #dc3545;\n}\n\n.filter-btn.modified.active {\n background: #007bff;\n border-color: #007bff;\n}\n\n/* Content Area */\n.diff-content {\n flex: 1;\n overflow-y: auto;\n background: white;\n padding: 16px;\n}\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n color: #6c757d;\n gap: 16px;\n}\n\n.empty-state i {\n opacity: 0.2;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 16px;\n}\n\n/* Diff Tree */\n.diff-tree {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n}\n\n.diff-item {\n margin-bottom: 2px;\n transition: all 0.2s ease;\n}\n\n.item-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n\n.item-header:hover {\n background: #f8f9fa;\n}\n\n.expand-icon {\n font-size: 10px;\n color: #6c757d;\n transition: transform 0.2s ease;\n width: 12px;\n flex-shrink: 0;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.expand-spacer {\n width: 12px;\n flex-shrink: 0;\n}\n\n.type-icon {\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.item-path {\n font-weight: 600;\n color: #2c3e50;\n margin-right: 8px;\n word-break: break-word;\n}\n\n.item-description {\n color: #6c757d;\n font-size: 12px;\n flex: 1;\n}\n\n.btn-copy {\n opacity: 0;\n background: none;\n border: none;\n color: #6c757d;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.item-header:hover .btn-copy {\n opacity: 1;\n}\n\n.btn-copy:hover {\n background: #e9ecef;\n color: #495057;\n}\n\n/* Type-specific styling */\n.diff-item.added .type-icon {\n color: #28a745;\n}\n\n.diff-item.removed .type-icon {\n color: #dc3545;\n}\n\n.diff-item.modified .type-icon {\n color: #007bff;\n}\n\n.diff-item.unchanged .type-icon {\n color: #6c757d;\n}\n\n/* Value Details */\n.value-details {\n margin: 8px 0 0 44px;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n}\n\n.value-row {\n display: flex;\n gap: 12px;\n margin-bottom: 8px;\n align-items: flex-start;\n}\n\n.value-row:last-child {\n margin-bottom: 0;\n}\n\n.value-label {\n font-weight: 600;\n color: #495057;\n min-width: 40px;\n font-size: 12px;\n padding-top: 2px;\n}\n\n.value-content {\n flex: 1;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 12px;\n line-height: 1.5;\n color: #2c3e50;\n background: white;\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.value-row.old .value-content {\n background: #fef5f6;\n border-color: #f8d7da;\n color: #721c24;\n}\n\n.value-row.new .value-content {\n background: #f4fdf6;\n border-color: #d4edda;\n color: #155724;\n}\n\n/* Children */\n.item-children {\n margin-top: 2px;\n position: relative;\n}\n\n.item-children::before {\n content: '';\n position: absolute;\n left: 6px;\n top: 0;\n bottom: 0;\n width: 1px;\n background: #e9ecef;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .diff-header {\n padding: 16px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n }\n\n .diff-filters {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-search {\n min-width: 100%;\n }\n\n .filter-types {\n flex-wrap: wrap;\n }\n\n .value-details {\n margin-left: 20px;\n }\n}"] }]
|
|
667
|
+
args: [{ selector: 'mj-deep-diff', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"deep-diff-container\">\n <!-- Header -->\n <div class=\"diff-header\">\n <div class=\"header-content\">\n <h2 class=\"diff-title\">\n <i class=\"fa-solid fa-code-branch\"></i>\n {{ title }}\n </h2>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"expandAllItems()\" title=\"Expand All\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"collapseAllItems()\" title=\"Collapse All\">\n <i class=\"fa-solid fa-compress\"></i>\n </button>\n <button class=\"btn-icon\" (click)=\"exportDiff()\" title=\"Export Diff\" [disabled]=\"!diffResult\">\n <i class=\"fa-solid fa-download\"></i>\n </button>\n </div>\n </div>\n\n <!-- Summary -->\n @if (showSummary && diffResult) {\n <div class=\"diff-summary\">\n <div class=\"summary-item added\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span class=\"count\">{{ diffResult.summary.added }}</span>\n <span class=\"label\">Added</span>\n </div>\n <div class=\"summary-item removed\">\n <i class=\"fa-solid fa-minus-circle\"></i>\n <span class=\"count\">{{ diffResult.summary.removed }}</span>\n <span class=\"label\">Removed</span>\n </div>\n <div class=\"summary-item modified\">\n <i class=\"fa-solid fa-edit\"></i>\n <span class=\"count\">{{ diffResult.summary.modified }}</span>\n <span class=\"label\">Modified</span>\n </div>\n @if (showUnchanged) {\n <div class=\"summary-item unchanged\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span class=\"count\">{{ diffResult.summary.unchanged }}</span>\n <span class=\"label\">Unchanged</span>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Filters -->\n <div class=\"diff-filters\">\n <div class=\"filter-search\">\n <i class=\"fa-solid fa-search\"></i>\n <input \n type=\"text\" \n [(ngModel)]=\"filter\" \n placeholder=\"Filter by path or description...\"\n class=\"filter-input\">\n </div>\n <div class=\"filter-types\">\n <button \n class=\"filter-btn\"\n [class.active]=\"filterType === 'all'\"\n (click)=\"filterType = 'all'\">\n All Changes\n </button>\n <button \n class=\"filter-btn added\"\n [class.active]=\"filterType === 'added'\"\n (click)=\"filterType = 'added'\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n Added\n </button>\n <button \n class=\"filter-btn removed\"\n [class.active]=\"filterType === 'removed'\"\n (click)=\"filterType = 'removed'\">\n <i class=\"fa-solid fa-minus-circle\"></i>\n Removed\n </button>\n <button \n class=\"filter-btn modified\"\n [class.active]=\"filterType === 'modified'\"\n (click)=\"filterType = 'modified'\">\n <i class=\"fa-solid fa-edit\"></i>\n Modified\n </button>\n </div>\n </div>\n\n <!-- Diff Content -->\n <div class=\"diff-content\">\n @if (!diffResult) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-code-compare fa-3x\"></i>\n <p>No data to compare</p>\n </div>\n } @else if (filteredItems.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-filter fa-3x\"></i>\n <p>No changes match your filter criteria</p>\n </div>\n } @else {\n <div class=\"diff-tree\">\n @for (item of filteredItems; track item.path) {\n <ng-container *ngTemplateOutlet=\"diffItem; context: { item: item, level: 0 }\"></ng-container>\n }\n </div>\n }\n </div>\n</div>\n\n<!-- Recursive Template for Diff Items -->\n<ng-template #diffItem let-item=\"item\" let-level=\"level\">\n <div class=\"diff-item\" [class]=\"getTypeClass(item.type)\" [style.padding-left.px]=\"level * 24\">\n <div class=\"item-header\" (click)=\"toggleItem(item)\">\n @if (item.children.length > 0) {\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"item.isExpanded\"></i>\n } @else {\n <span class=\"expand-spacer\"></span>\n }\n \n <i class=\"fa-solid type-icon\" [ngClass]=\"getIcon(item.type)\"></i>\n \n <span class=\"item-path\">{{ item.path }}</span>\n \n <span class=\"item-description\">{{ item.description }}</span>\n \n <button class=\"btn-copy\" (click)=\"copyToClipboard(item.path); $event.stopPropagation()\" title=\"Copy path\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n\n <!-- Value Details -->\n @if (item.type === 'modified') {\n <div class=\"value-details\">\n <div class=\"value-row old\">\n <span class=\"value-label\">Old:</span>\n <code class=\"value-content\">{{ formatValue(item.oldValue, item.path + '_old') }}</code>\n <button class=\"btn-copy\" (click)=\"copyValueToClipboard(item.oldValue, $event)\" title=\"Copy value\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n @if (isValueTruncated(item.oldValue, item.path + '_old') || isExpanded(item.path + '_old')) {\n <button class=\"btn-expand-value\" \n (click)=\"toggleValueExpansion(item.path + '_old', $event)\" \n title=\"{{ isExpanded(item.path + '_old') ? 'Collapse' : 'Expand' }}\">\n <i class=\"fa-solid\" \n [ngClass]=\"isExpanded(item.path + '_old') ? 'fa-compress-alt' : 'fa-expand-alt'\"></i>\n </button>\n }\n </div>\n <div class=\"value-row new\">\n <span class=\"value-label\">New:</span>\n <code class=\"value-content\">{{ formatValue(item.newValue, item.path + '_new') }}</code>\n <button class=\"btn-copy\" (click)=\"copyValueToClipboard(item.newValue, $event)\" title=\"Copy value\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n @if (isValueTruncated(item.newValue, item.path + '_new') || isExpanded(item.path + '_new')) {\n <button class=\"btn-expand-value\" \n (click)=\"toggleValueExpansion(item.path + '_new', $event)\"\n title=\"{{ isExpanded(item.path + '_new') ? 'Collapse' : 'Expand' }}\">\n <i class=\"fa-solid\" \n [ngClass]=\"isExpanded(item.path + '_new') ? 'fa-compress-alt' : 'fa-expand-alt'\"></i>\n </button>\n }\n </div>\n </div>\n } @else if (item.type === 'added') {\n <div class=\"value-details\">\n <div class=\"value-row new\">\n <span class=\"value-label\">Value:</span>\n <code class=\"value-content\">{{ formatValue(item.newValue, item.path) }}</code>\n <button class=\"btn-copy\" (click)=\"copyValueToClipboard(item.newValue, $event)\" title=\"Copy value\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n @if (isValueTruncated(item.newValue, item.path) || isExpanded(item.path)) {\n <button class=\"btn-expand-value\" \n (click)=\"toggleValueExpansion(item.path, $event)\"\n title=\"{{ isExpanded(item.path) ? 'Collapse' : 'Expand' }}\">\n <i class=\"fa-solid\" \n [ngClass]=\"isExpanded(item.path) ? 'fa-compress-alt' : 'fa-expand-alt'\"></i>\n </button>\n }\n </div>\n </div>\n } @else if (item.type === 'removed') {\n <div class=\"value-details\">\n <div class=\"value-row old\">\n <span class=\"value-label\">Value:</span>\n <code class=\"value-content\">{{ formatValue(item.oldValue, item.path) }}</code>\n <button class=\"btn-copy\" (click)=\"copyValueToClipboard(item.oldValue, $event)\" title=\"Copy value\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n @if (isValueTruncated(item.oldValue, item.path) || isExpanded(item.path)) {\n <button class=\"btn-expand-value\" \n (click)=\"toggleValueExpansion(item.path, $event)\"\n title=\"{{ isExpanded(item.path) ? 'Collapse' : 'Expand' }}\">\n <i class=\"fa-solid\" \n [ngClass]=\"isExpanded(item.path) ? 'fa-compress-alt' : 'fa-expand-alt'\"></i>\n </button>\n }\n </div>\n </div>\n }\n\n <!-- Children -->\n @if (item.isExpanded && item.children.length > 0) {\n <div class=\"item-children\">\n @for (child of item.children; track child.path) {\n <ng-container *ngTemplateOutlet=\"diffItem; context: { item: child, level: level + 1 }\"></ng-container>\n }\n </div>\n }\n </div>\n</ng-template>", styles: ["/* Deep Diff Component Styles */\n.deep-diff-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n/* Header */\n.diff-header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n padding: 20px;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.diff-title {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.diff-title i {\n color: #3498db;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 14px;\n}\n\n.btn-icon:hover:not(:disabled) {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.btn-icon:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Summary */\n.diff-summary {\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n}\n\n.summary-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: white;\n border-radius: 20px;\n font-size: 14px;\n border: 1px solid #e9ecef;\n transition: all 0.2s ease;\n}\n\n.summary-item:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.summary-item i {\n font-size: 16px;\n}\n\n.summary-item .count {\n font-weight: 600;\n font-size: 16px;\n}\n\n.summary-item .label {\n color: #6c757d;\n font-size: 13px;\n}\n\n.summary-item.added {\n border-color: #d4edda;\n background: #f4fdf6;\n}\n\n.summary-item.added i,\n.summary-item.added .count {\n color: #28a745;\n}\n\n.summary-item.removed {\n border-color: #f8d7da;\n background: #fef5f6;\n}\n\n.summary-item.removed i,\n.summary-item.removed .count {\n color: #dc3545;\n}\n\n.summary-item.modified {\n border-color: #cce5ff;\n background: #f0f7ff;\n}\n\n.summary-item.modified i,\n.summary-item.modified .count {\n color: #007bff;\n}\n\n.summary-item.unchanged {\n border-color: #e2e3e5;\n background: #f8f9fa;\n}\n\n.summary-item.unchanged i,\n.summary-item.unchanged .count {\n color: #6c757d;\n}\n\n/* Filters */\n.diff-filters {\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e9ecef;\n display: flex;\n gap: 16px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.filter-search {\n flex: 1;\n min-width: 250px;\n position: relative;\n}\n\n.filter-search i {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #6c757d;\n font-size: 14px;\n}\n\n.filter-input {\n width: 100%;\n padding: 8px 12px 8px 36px;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n font-size: 14px;\n transition: all 0.2s ease;\n}\n\n.filter-input:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.filter-types {\n display: flex;\n gap: 8px;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n}\n\n.filter-btn.active {\n background: #3498db;\n color: white;\n border-color: #3498db;\n}\n\n.filter-btn.added.active {\n background: #28a745;\n border-color: #28a745;\n}\n\n.filter-btn.removed.active {\n background: #dc3545;\n border-color: #dc3545;\n}\n\n.filter-btn.modified.active {\n background: #007bff;\n border-color: #007bff;\n}\n\n/* Content Area */\n.diff-content {\n flex: 1;\n overflow-y: auto;\n background: white;\n padding: 16px;\n}\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n color: #6c757d;\n gap: 16px;\n}\n\n.empty-state i {\n opacity: 0.2;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 16px;\n}\n\n/* Diff Tree */\n.diff-tree {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n}\n\n.diff-item {\n margin-bottom: 2px;\n transition: all 0.2s ease;\n}\n\n.item-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n}\n\n.item-header:hover {\n background: #f8f9fa;\n}\n\n.expand-icon {\n font-size: 10px;\n color: #6c757d;\n transition: transform 0.2s ease;\n width: 12px;\n flex-shrink: 0;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.expand-spacer {\n width: 12px;\n flex-shrink: 0;\n}\n\n.type-icon {\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.item-path {\n font-weight: 600;\n color: #2c3e50;\n margin-right: 8px;\n word-break: break-word;\n}\n\n.item-description {\n color: #6c757d;\n font-size: 12px;\n flex: 1;\n}\n\n.btn-copy {\n opacity: 0;\n background: none;\n border: none;\n color: #6c757d;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.item-header:hover .btn-copy,\n.value-row:hover .btn-copy {\n opacity: 1;\n}\n\n.btn-copy:hover {\n background: #e9ecef;\n color: #495057;\n}\n\n/* Value row copy button */\n.value-row .btn-copy {\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n/* Type-specific styling */\n.diff-item.added .type-icon {\n color: #28a745;\n}\n\n.diff-item.removed .type-icon {\n color: #dc3545;\n}\n\n.diff-item.modified .type-icon {\n color: #007bff;\n}\n\n.diff-item.unchanged .type-icon {\n color: #6c757d;\n}\n\n/* Value Details */\n.value-details {\n margin: 8px 0 0 44px;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n}\n\n.value-row {\n display: flex;\n gap: 12px;\n margin-bottom: 8px;\n align-items: flex-start;\n position: relative;\n}\n\n.value-row:last-child {\n margin-bottom: 0;\n}\n\n.value-label {\n font-weight: 600;\n color: #495057;\n min-width: 40px;\n font-size: 12px;\n padding-top: 2px;\n}\n\n.value-content {\n flex: 1;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 12px;\n line-height: 1.5;\n color: #2c3e50;\n background: white;\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid #dee2e6;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.value-row.old .value-content {\n background: #fef5f6;\n border-color: #f8d7da;\n color: #721c24;\n}\n\n.value-row.new .value-content {\n background: #f4fdf6;\n border-color: #d4edda;\n color: #155724;\n}\n\n/* Expand/Collapse Value Button */\n.btn-expand-value {\n background: none;\n border: 1px solid #dee2e6;\n color: #6c757d;\n cursor: pointer;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n font-size: 11px;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.btn-expand-value:hover {\n background: #e9ecef;\n color: #495057;\n border-color: #adb5bd;\n}\n\n.btn-expand-value i {\n font-size: 10px;\n}\n\n/* Children */\n.item-children {\n margin-top: 2px;\n position: relative;\n}\n\n.item-children::before {\n content: '';\n position: absolute;\n left: 6px;\n top: 0;\n bottom: 0;\n width: 1px;\n background: #e9ecef;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .diff-header {\n padding: 16px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n }\n\n .diff-filters {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-search {\n min-width: 100%;\n }\n\n .filter-types {\n flex-wrap: wrap;\n }\n\n .value-details {\n margin-left: 20px;\n }\n}"] }]
|
|
479
668
|
}], () => [{ type: i0.ChangeDetectorRef }], { oldValue: [{
|
|
480
669
|
type: Input
|
|
481
670
|
}], newValue: [{
|
|
482
671
|
type: Input
|
|
672
|
+
}], showUnchanged: [{
|
|
673
|
+
type: Input
|
|
674
|
+
}], maxDepth: [{
|
|
675
|
+
type: Input
|
|
676
|
+
}], maxStringLength: [{
|
|
677
|
+
type: Input
|
|
483
678
|
}], title: [{
|
|
484
679
|
type: Input
|
|
485
680
|
}], showSummary: [{
|
|
486
681
|
type: Input
|
|
487
|
-
}], showUnchanged: [{
|
|
488
|
-
type: Input
|
|
489
682
|
}], expandAll: [{
|
|
490
683
|
type: Input
|
|
491
|
-
}],
|
|
492
|
-
type: Input
|
|
493
|
-
}], maxStringLength: [{
|
|
684
|
+
}], truncateValues: [{
|
|
494
685
|
type: Input
|
|
495
686
|
}] }); })();
|
|
496
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DeepDiffComponent, { className: "DeepDiffComponent", filePath: "src/lib/deep-diff.component.ts", lineNumber:
|
|
687
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DeepDiffComponent, { className: "DeepDiffComponent", filePath: "src/lib/deep-diff.component.ts", lineNumber: 17 }); })();
|
|
497
688
|
//# sourceMappingURL=deep-diff.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-diff.component.js","sourceRoot":"","sources":["../../src/lib/deep-diff.component.ts","../../src/lib/deep-diff.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deep-diff.component.js","sourceRoot":"","sources":["../../src/lib/deep-diff.component.ts","../../src/lib/deep-diff.component.html"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-deep-diff",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.67.0",
|
|
4
4
|
"description": "MemberJunction: Generic Angular component to display the differences between two objects, using the non-visual functionality from the @memberjunction/global package",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"@angular/core": "18.0.2"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@memberjunction/core": "2.
|
|
27
|
-
"@memberjunction/global": "2.
|
|
26
|
+
"@memberjunction/core": "2.67.0",
|
|
27
|
+
"@memberjunction/global": "2.67.0",
|
|
28
28
|
"tslib": "^2.3.0"
|
|
29
29
|
},
|
|
30
30
|
"sideEffects": false
|