@boldreports/angular-reporting-components 6.1.46 → 6.1.48
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/dist/README.md +31 -0
- package/dist/package.json +59 -0
- package/ng-package.json +10 -0
- package/package.json +53 -59
- package/src/core.ts +415 -0
- package/src/index.ts +6 -0
- package/src/reportdesigner.component.ts +106 -0
- package/src/reportdesigner.module.ts +17 -0
- package/src/reports.module.ts +20 -0
- package/src/reportviewer.component.ts +110 -0
- package/src/reportviewer.module.ts +17 -0
- package/tsconfig.json +37 -0
- /package/{boldreports-angular-reporting-components.d.ts → dist/boldreports-angular-reporting-components.d.ts} +0 -0
- /package/{core.d.ts → dist/core.d.ts} +0 -0
- /package/{esm2020 → dist/esm2020}/boldreports-angular-reporting-components.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/core.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/index.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/reportdesigner.component.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/reportdesigner.module.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/reports.module.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/reportviewer.component.mjs +0 -0
- /package/{esm2020 → dist/esm2020}/reportviewer.module.mjs +0 -0
- /package/{fesm2015 → dist/fesm2015}/boldreports-angular-reporting-components.mjs +0 -0
- /package/{fesm2015 → dist/fesm2015}/boldreports-angular-reporting-components.mjs.map +0 -0
- /package/{fesm2020 → dist/fesm2020}/boldreports-angular-reporting-components.mjs +0 -0
- /package/{fesm2020 → dist/fesm2020}/boldreports-angular-reporting-components.mjs.map +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{reportdesigner.component.d.ts → dist/reportdesigner.component.d.ts} +0 -0
- /package/{reportdesigner.module.d.ts → dist/reportdesigner.module.d.ts} +0 -0
- /package/{reports.module.d.ts → dist/reports.module.d.ts} +0 -0
- /package/{reportviewer.component.d.ts → dist/reportviewer.component.d.ts} +0 -0
- /package/{reportviewer.module.d.ts → dist/reportviewer.module.d.ts} +0 -0
package/dist/README.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## Bold Reports Angular UI Components
|
|
2
|
+
|
|
3
|
+
The `Bold Reports` UI components contains [Angular Report Viewer](https://www.boldreports.com/embedded-reporting/angular-report-viewer?utm_source=npm&utm_medium=listing&utm_campaign=boldreports-report-viewer-angular-npm) and [Angular Report Designer](https://www.boldreports.com/embedded-reporting/angular-report-designer?utm_source=npm&utm_medium=listing&utm_campaign=boldreports-report-designer-angular-npm) reporting components for enterprise web development. Empower your web application with feature-rich report preview, edit, and customization capabilities that allow you to explore data easily and make real-time decisions. Effortlessly print and export reports.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
## Demos
|
|
8
|
+
|
|
9
|
+
### Online Demos
|
|
10
|
+
|
|
11
|
+
Take a look at the `Bold Reports Angular` live demo [here](https://demos.boldreports.com/home/).
|
|
12
|
+
|
|
13
|
+
## Documentation
|
|
14
|
+
|
|
15
|
+
For complete `Bold Reports Angular` documentation, please visit [https://documentation.boldreports.com/angular/](https://documentation.boldreports.com/angular/?utm_source=npm&utm_medium=listing&utm_campaign=boldreports-angular-npm)
|
|
16
|
+
|
|
17
|
+
### Offline Demos
|
|
18
|
+
|
|
19
|
+
Download our Angular Reporting Platform installer from [here](https://www.boldreports.com/pricing/?utm_source=npm&utm_medium=listing&utm_campaign=boldreports-angular-npm).
|
|
20
|
+
|
|
21
|
+
## Support
|
|
22
|
+
|
|
23
|
+
In case of any questions regarding the use of `Bold Reports Angular`, please [contact us](mailto:support@boldreports.com) by sending your queries.
|
|
24
|
+
|
|
25
|
+
## Release Notes
|
|
26
|
+
|
|
27
|
+
Refer to the online `Bold Reports Angular Product` [Release Notes](https://www.boldreports.com/release-history/?utm_source=npm&utm_medium=listing&utm_campaign=boldreports-angular-npm).
|
|
28
|
+
|
|
29
|
+
## License Information
|
|
30
|
+
|
|
31
|
+
For licensing information about `Bold Reports Angular`, Take a look at the Syncfusion License Agreements from [here](https://www.boldreports.com/terms-of-use?utm_source=npm&utm_medium=listing&utm_campaign=boldreports-angular-npm).
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@boldreports/angular-reporting-components",
|
|
3
|
+
"version": "2.2.23",
|
|
4
|
+
"description": "The Bold Reports by Syncfuion components for Angular contains ReportViewer and ReportDesigner reporting components for enterprise web development",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/boldreports/angular-reporting-components.git"
|
|
8
|
+
},
|
|
9
|
+
"author": "Syncfusion Inc",
|
|
10
|
+
"license": "SEE LICENSE IN README.md",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"Bold Reports",
|
|
13
|
+
"Bold Report Viewer",
|
|
14
|
+
"Bold Report Designer",
|
|
15
|
+
"Report Viewer",
|
|
16
|
+
"Report Designer",
|
|
17
|
+
"Report Editor",
|
|
18
|
+
"Report Builder",
|
|
19
|
+
"SSRS",
|
|
20
|
+
"Angular Components",
|
|
21
|
+
"Reporting Tool",
|
|
22
|
+
"Syncfusion",
|
|
23
|
+
"UI Components",
|
|
24
|
+
"Web",
|
|
25
|
+
"Reports",
|
|
26
|
+
"RDL",
|
|
27
|
+
"RDLC",
|
|
28
|
+
"RDLC Viewer",
|
|
29
|
+
"RDL Viewer"
|
|
30
|
+
],
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/boldreports/angular-reporting-components/issues"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@boldreports/javascript-reporting-controls": "1.0.5",
|
|
36
|
+
"tslib": "^2.3.0"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://boldreports.com",
|
|
39
|
+
"sideEffects": true,
|
|
40
|
+
"module": "fesm2015/boldreports-angular-reporting-components.mjs",
|
|
41
|
+
"es2020": "fesm2020/boldreports-angular-reporting-components.mjs",
|
|
42
|
+
"esm2020": "esm2020/boldreports-angular-reporting-components.mjs",
|
|
43
|
+
"fesm2020": "fesm2020/boldreports-angular-reporting-components.mjs",
|
|
44
|
+
"fesm2015": "fesm2015/boldreports-angular-reporting-components.mjs",
|
|
45
|
+
"typings": "boldreports-angular-reporting-components.d.ts",
|
|
46
|
+
"exports": {
|
|
47
|
+
"./package.json": {
|
|
48
|
+
"default": "./package.json"
|
|
49
|
+
},
|
|
50
|
+
".": {
|
|
51
|
+
"types": "./boldreports-angular-reporting-components.d.ts",
|
|
52
|
+
"esm2020": "./esm2020/boldreports-angular-reporting-components.mjs",
|
|
53
|
+
"es2020": "./fesm2020/boldreports-angular-reporting-components.mjs",
|
|
54
|
+
"es2015": "./fesm2015/boldreports-angular-reporting-components.mjs",
|
|
55
|
+
"node": "./fesm2015/boldreports-angular-reporting-components.mjs",
|
|
56
|
+
"default": "./fesm2020/boldreports-angular-reporting-components.mjs"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
package/ng-package.json
ADDED
package/package.json
CHANGED
|
@@ -1,59 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"es2015": "./fesm2015/boldreports-angular-reporting-components.mjs",
|
|
55
|
-
"node": "./fesm2015/boldreports-angular-reporting-components.mjs",
|
|
56
|
-
"default": "./fesm2020/boldreports-angular-reporting-components.mjs"
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@boldreports/angular-reporting-components",
|
|
3
|
+
"version": "6.1.48",
|
|
4
|
+
"description": "The Bold Reports by Syncfuion components for Angular contains ReportViewer and ReportDesigner reporting components for enterprise web development",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/boldreports/angular-reporting-components.git"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "ng-packagr -p ng-package.json"
|
|
11
|
+
},
|
|
12
|
+
"author": "Syncfusion Inc",
|
|
13
|
+
"license": "SEE LICENSE IN README.md",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"Bold Reports",
|
|
16
|
+
"Bold Report Viewer",
|
|
17
|
+
"Bold Report Designer",
|
|
18
|
+
"Report Viewer",
|
|
19
|
+
"Report Designer",
|
|
20
|
+
"Report Editor",
|
|
21
|
+
"Report Builder",
|
|
22
|
+
"SSRS",
|
|
23
|
+
"Angular Components",
|
|
24
|
+
"Reporting Tool",
|
|
25
|
+
"Syncfusion",
|
|
26
|
+
"UI Components",
|
|
27
|
+
"Web",
|
|
28
|
+
"Reports",
|
|
29
|
+
"RDL",
|
|
30
|
+
"RDLC",
|
|
31
|
+
"RDLC Viewer",
|
|
32
|
+
"RDL Viewer"
|
|
33
|
+
],
|
|
34
|
+
"bugs": {
|
|
35
|
+
"url": "https://github.com/boldreports/angular-reporting-components/issues"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@boldreports/javascript-reporting-controls": "1.0.5"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@angular/common": "13.0.0",
|
|
42
|
+
"@angular/core": "13.0.0",
|
|
43
|
+
"@angular/compiler-cli": "13.0.0",
|
|
44
|
+
"@angular/compiler": "13.0.0",
|
|
45
|
+
"ng-packagr": "13.0.0 ",
|
|
46
|
+
"@types/ej.web.all": "^17.4.0",
|
|
47
|
+
"@types/jasmine": "~3.5.0",
|
|
48
|
+
"@types/jasminewd2": "~2.0.3",
|
|
49
|
+
"@types/node": "12.11.1"
|
|
50
|
+
},
|
|
51
|
+
"homepage": "https://boldreports.com",
|
|
52
|
+
"sideEffects": true
|
|
53
|
+
}
|
package/src/core.ts
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EventEmitter, QueryList, ElementRef, SimpleChange,
|
|
3
|
+
ChangeDetectorRef, IterableDiffers, KeyValueDiffers, OnInit,
|
|
4
|
+
DoCheck, AfterContentInit, AfterViewInit, OnChanges, AfterContentChecked, OnDestroy, Injectable
|
|
5
|
+
|
|
6
|
+
} from '@angular/core';
|
|
7
|
+
|
|
8
|
+
export { ContentChild, Type, forwardRef } from '@angular/core';
|
|
9
|
+
|
|
10
|
+
export let currentTemplateElement: any;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
export interface IParentTag {
|
|
15
|
+
tags: Array<any>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface IChildChange {
|
|
19
|
+
index: number;
|
|
20
|
+
change: any;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface IChangeSet {
|
|
24
|
+
[key: string]: Array<IChildChange>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let firstVal = {};
|
|
28
|
+
|
|
29
|
+
@Injectable()
|
|
30
|
+
/** Internal Helpers */
|
|
31
|
+
export class Utils {
|
|
32
|
+
static IterateAndGetChanges(obj: IParentTag): IChangeSet {
|
|
33
|
+
if (ej.isNullOrUndefined(obj.tags) || obj.tags.length === 0) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
let res: IChangeSet = {};
|
|
37
|
+
for (let i = 0, tags = obj.tags; i < tags.length; i++) {
|
|
38
|
+
let tag = tags[i], tagElement = (<any>obj)['tag_' + tag.replace(/\./g, '_')];
|
|
39
|
+
if (!ej.isNullOrUndefined(tagElement) && tagElement.hasChanges) {
|
|
40
|
+
res[tag] = tagElement.getChangesAndReset();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return res;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@Injectable()
|
|
49
|
+
// tslint:disable-next-line:max-line-length
|
|
50
|
+
export class BoldReportComponents<W, T> implements IParentTag, OnInit, AfterContentInit, DoCheck, AfterViewInit, OnChanges, AfterContentChecked, OnDestroy {
|
|
51
|
+
public model: T = <T>{};
|
|
52
|
+
public widget: W;
|
|
53
|
+
protected outputs: Array<string> = [];
|
|
54
|
+
protected inputs: Array<string> = [];
|
|
55
|
+
protected twoways: Array<string> = [];
|
|
56
|
+
protected complexProperties: Array<string>;
|
|
57
|
+
protected isEditor: boolean;
|
|
58
|
+
|
|
59
|
+
private firstCheck: boolean;
|
|
60
|
+
ejIterable: any;
|
|
61
|
+
ejKeyValueDif: any;
|
|
62
|
+
|
|
63
|
+
private static bindAndRaiseEvent(instance: any, model: any, event: string) {
|
|
64
|
+
if (!event.startsWith('model.')) {// && instance[event]['observers'].length > 1) {
|
|
65
|
+
let originalEvt = event.startsWith('bold') ? event.substr(4) : event;
|
|
66
|
+
model[originalEvt] = function (params: any) {
|
|
67
|
+
instance[event + '_output']['emit'](params);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// tslint:disable-next-line:max-line-length
|
|
72
|
+
constructor(protected controlName: string, protected el: ElementRef, protected cdRef: ChangeDetectorRef, public tags: Array<string>, private ejIterableDiffers: IterableDiffers, private _ejKeyValueDiffers: KeyValueDiffers) {
|
|
73
|
+
// this.__shadow = this.dom.getShadowRoot(this.el.nativeElement);
|
|
74
|
+
this.firstCheck = true;
|
|
75
|
+
this.ejIterable = this.ejIterableDiffers.find([]).create(null);
|
|
76
|
+
this.ejKeyValueDif = _ejKeyValueDiffers.find([]).create();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
protected createTwoways(twoways: Array<string>) {
|
|
80
|
+
if (!twoways) { return; }
|
|
81
|
+
let model = this.model;
|
|
82
|
+
for (let i = 0; i < twoways.length; i++) {
|
|
83
|
+
let element = twoways[i].replace(/\_/g, '.');
|
|
84
|
+
ej.createObject(element + 'Change', (<any>this)[twoways[i] + '_twoChange'], model);
|
|
85
|
+
ej.createObject(element, this.addTwoways(element), model);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
protected addTwoways(prop: string): Function {
|
|
90
|
+
let model = this.model, value = firstVal; // , originalProp = prop.replace(/-/g, '.');
|
|
91
|
+
return function (newVal: any, isApp: boolean) {
|
|
92
|
+
if (value === firstVal) {
|
|
93
|
+
value = ej.getObject(prop + '_two', model);
|
|
94
|
+
if (value === undefined) {
|
|
95
|
+
value = ej.getObject(prop, this === undefined || this.defaults === undefined ? {} : this.defaults);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (newVal === undefined) {
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
if (value === newVal) { return; }
|
|
102
|
+
value = newVal;
|
|
103
|
+
if (!isApp) {
|
|
104
|
+
ej.createObject(prop + '_two', newVal, model);
|
|
105
|
+
ej.getObject(prop + 'Change', model).emit(newVal);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
ngOnInit() {
|
|
110
|
+
for (let key in this) {
|
|
111
|
+
if (key.indexOf('_input') != -1)
|
|
112
|
+
this.inputs.push(key);
|
|
113
|
+
if (key.indexOf('_output') != -1)
|
|
114
|
+
this.outputs.push(key);
|
|
115
|
+
if (key.indexOf('_two') != -1 && key.indexOf('_twoChange') == -1)
|
|
116
|
+
this.twoways.push(key.replace('_two', ''));
|
|
117
|
+
}
|
|
118
|
+
if (ej.isNullOrUndefined((<any>this)['options'])) {
|
|
119
|
+
this.createTwoways(this.twoways);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
ngAfterContentInit() {
|
|
124
|
+
this.firstCheck = false;
|
|
125
|
+
|
|
126
|
+
let model = this.model, events = this.outputs;
|
|
127
|
+
if (events) {
|
|
128
|
+
for (let i = 0; i < events.length; i++) {
|
|
129
|
+
let event = events[i].replace('_output', '');
|
|
130
|
+
BoldReportComponents.bindAndRaiseEvent(this, model, event);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (ej.isNullOrUndefined((<any>this)['options'])) {
|
|
134
|
+
for (let i = 0; i < this.tags.length; i++) {
|
|
135
|
+
let element = this.tags[i], item = (<any>this)['tag_' + element.replace(/\./g, '_')];
|
|
136
|
+
if (!ej.isNullOrUndefined(item)) {
|
|
137
|
+
ej.createObject(element, item.getList(), this.model);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
for (let i = 0; i < this.inputs.length; i++) {
|
|
142
|
+
let property = this.inputs[i];
|
|
143
|
+
let modelProperty = this.inputs[i].replace('_input', '');
|
|
144
|
+
if ((<any>this)[property] != null) {
|
|
145
|
+
if (modelProperty.indexOf('_') == -1) {
|
|
146
|
+
if ((<any>this.model)[modelProperty]) {
|
|
147
|
+
$.extend(true, (<any>this.model)[modelProperty], (<any>this)[property]);
|
|
148
|
+
} else {
|
|
149
|
+
(<any>this.model)[modelProperty] = (<any>this)[property];
|
|
150
|
+
}
|
|
151
|
+
} else if (modelProperty.indexOf('_two') == -1) {
|
|
152
|
+
let tempObj: any = {};
|
|
153
|
+
let key = modelProperty.replace(/\_/g, '.');
|
|
154
|
+
ej.createObject(key, (<any>this)[property], tempObj);
|
|
155
|
+
let rootProp = key.split('.')[0];
|
|
156
|
+
if ((<any>this.model)[rootProp] == undefined)
|
|
157
|
+
(<any>this.model)[rootProp] = {};
|
|
158
|
+
$.extend(true, (<any>this.model)[rootProp], tempObj[rootProp]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
for (let i = 0; i < this.twoways.length; i++) {
|
|
163
|
+
let twoway = this.twoways[i];
|
|
164
|
+
let twowayProperty = twoway + '_two';
|
|
165
|
+
if ((<any>this)[twowayProperty] != null) {
|
|
166
|
+
if (twoway.indexOf('_') == -1) {
|
|
167
|
+
(<any>this.model)[twowayProperty] = (<any>this)[twowayProperty];
|
|
168
|
+
} else {
|
|
169
|
+
let tempObj: any = {};
|
|
170
|
+
let key = twoway.replace(/\_/g, '.') + '_two';
|
|
171
|
+
ej.createObject(key, (<any>this)[twowayProperty], tempObj);
|
|
172
|
+
let rootProp = twowayProperty.split('_')[0];
|
|
173
|
+
$.extend(true, (<any>this.model)[rootProp], tempObj[rootProp]);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else
|
|
179
|
+
this.model = jQuery.extend(this.model, (<any>this)['options']);
|
|
180
|
+
|
|
181
|
+
}
|
|
182
|
+
ngDoCheck() {
|
|
183
|
+
if (ej.isNullOrUndefined((<any>this)['options'])) {
|
|
184
|
+
this.twoways.forEach(element => {
|
|
185
|
+
if ((<any>this)[element + '_two'] instanceof Array) {
|
|
186
|
+
let changes = this.ejIterable.diff((<any>this)[element + '_two']);
|
|
187
|
+
if (changes) {
|
|
188
|
+
let ngChanges = {};
|
|
189
|
+
if (this.widget != undefined) {
|
|
190
|
+
ngChanges = this.getTwowayChanges(changes.collection, ngChanges, element.replace(/\_/g, '.'));
|
|
191
|
+
ej.createObject(element.replace(/\_/g, '.') + '.two', changes.collection, ngChanges);
|
|
192
|
+
(<any>this.widget)['setModel'](ngChanges, $.isPlainObject(ngChanges));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
let changes = this.ejKeyValueDif.diff((<any>this)['options']);
|
|
201
|
+
if (changes) {
|
|
202
|
+
if (this.widget != undefined) {
|
|
203
|
+
var ngchanges = {};
|
|
204
|
+
changes.forEachChangedItem((changedprop: any) => {
|
|
205
|
+
ej.createObject(changedprop.key, changedprop.currentValue, ngchanges);
|
|
206
|
+
});
|
|
207
|
+
(<any>this.widget)['setModel'](ngchanges, $.isPlainObject(ngchanges));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
ngAfterViewInit() {
|
|
213
|
+
let nativeElement = this.isEditor ? $(this.el.nativeElement.children) : $(this.el.nativeElement);
|
|
214
|
+
let controlName: string = this.lowerCaseFirstLetter(this.controlName);
|
|
215
|
+
this.widget = ($(nativeElement) as any)[controlName](this.model)[controlName]('instance');
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
lowerCaseFirstLetter(string: string) {
|
|
219
|
+
return string[0].toLowerCase() + string.slice(1);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
ngOnChanges(changes: { [key: string]: SimpleChange }) {
|
|
223
|
+
if (this.firstCheck) { return; }
|
|
224
|
+
let ngChanges = {};
|
|
225
|
+
if (ej.isNullOrUndefined((<any>this)['options'])) {
|
|
226
|
+
for (let key in changes) {
|
|
227
|
+
let element = changes[key];
|
|
228
|
+
if (element.previousValue === element.currentValue) {
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
key = key.replace('_input', '').replace(/\_/g, '.');
|
|
232
|
+
if (key.endsWith('.two')) {
|
|
233
|
+
let oKey = key.replace('.two', '');
|
|
234
|
+
ngChanges = this.getTwowayChanges(element.currentValue, ngChanges, oKey);
|
|
235
|
+
}
|
|
236
|
+
ej.createObject(key, element.currentValue, ngChanges);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
(<any>this.widget)['setModel'](ngChanges, $.isPlainObject(ngChanges));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
getTwowayChanges(value: any, ngChanges: any, prop: string) {
|
|
244
|
+
let valFn = ej.getObject(prop, (<any>this.widget)['model']);
|
|
245
|
+
valFn(value, true);
|
|
246
|
+
ej.createObject(prop, valFn, ngChanges);
|
|
247
|
+
return ngChanges;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
ngAfterContentChecked() {
|
|
251
|
+
// TODO: ChangeDetection Third/Multi level
|
|
252
|
+
let changes: IChangeSet = Utils.IterateAndGetChanges(this);
|
|
253
|
+
for (let key in changes) {
|
|
254
|
+
if (changes.hasOwnProperty(key)) {
|
|
255
|
+
let element = changes[key];
|
|
256
|
+
(<any>this.widget)['_' + key](element);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
ngOnDestroy() {
|
|
262
|
+
(<any>this.widget)['destroy']();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@Injectable()
|
|
267
|
+
export class ComplexTagElement implements OnInit, OnChanges, AfterContentChecked {
|
|
268
|
+
recentChanges: any;
|
|
269
|
+
hasChanges: boolean;
|
|
270
|
+
firstChange: boolean;
|
|
271
|
+
index: number;
|
|
272
|
+
valueChange: EventEmitter<any> = new EventEmitter();
|
|
273
|
+
protected complexProperties: Array<string>;
|
|
274
|
+
property: string;
|
|
275
|
+
parent: BoldReportComponents<any, any>;
|
|
276
|
+
complexes: Array<string> = [];
|
|
277
|
+
|
|
278
|
+
// tags: Array<string>;
|
|
279
|
+
|
|
280
|
+
constructor(public tags: Array<string>) {
|
|
281
|
+
this.hasChanges = false;
|
|
282
|
+
this.firstChange = true;
|
|
283
|
+
|
|
284
|
+
Object.defineProperty(this, 'parent', {
|
|
285
|
+
enumerable: false,
|
|
286
|
+
writable: true,
|
|
287
|
+
value: null
|
|
288
|
+
});
|
|
289
|
+
currentTemplateElement = this;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
ngOnInit() {
|
|
293
|
+
this.firstChange = false;
|
|
294
|
+
for (let key in this) {
|
|
295
|
+
if (key.indexOf('_') != -1 && key.indexOf('tag_') == -1)
|
|
296
|
+
this.complexes.push(key);
|
|
297
|
+
}
|
|
298
|
+
for (let i = 0; i < this.complexes.length; i++) {
|
|
299
|
+
let property = this.complexes[i];
|
|
300
|
+
if (property.indexOf('_') != -1) {
|
|
301
|
+
let tempObj: any = {};
|
|
302
|
+
let key = property.replace(/\_/g, '.');
|
|
303
|
+
ej.createObject(key, (<any>this)[property], tempObj);
|
|
304
|
+
let rootProp = key.split('.')[0];
|
|
305
|
+
if ((<any>this)[rootProp] == undefined) (<any>this)[rootProp] = {};
|
|
306
|
+
$.extend(true, (<any>this)[rootProp], tempObj[rootProp]);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
ensureCleanObject() {
|
|
312
|
+
let tags = this.tags;
|
|
313
|
+
for (let i = 0; i < tags.length; i++) {
|
|
314
|
+
let element = tags[i], tagElement = (<any>this)['tag_' + element.replace(/\./g, '_')];
|
|
315
|
+
|
|
316
|
+
if (i === 0 && (<any>this)[element]) { return; }
|
|
317
|
+
if (ej.isNullOrUndefined(tagElement)) { continue; }
|
|
318
|
+
|
|
319
|
+
ej.createObject(element, tagElement.getList(), this);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
ngOnChanges(changes: { [key: string]: SimpleChange }) {
|
|
324
|
+
if (this.firstChange) { return; }
|
|
325
|
+
this.recentChanges = changes;
|
|
326
|
+
this.hasChanges = true;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
getChangesAndReset() {
|
|
330
|
+
if (this.hasChanges === false) { return; }
|
|
331
|
+
|
|
332
|
+
let changes = this.recentChanges || {};
|
|
333
|
+
let contentChanges = Utils.IterateAndGetChanges(this);
|
|
334
|
+
if (!$.isEmptyObject(contentChanges)) {
|
|
335
|
+
for (let key in contentChanges) {
|
|
336
|
+
if (contentChanges.hasOwnProperty(key)) {
|
|
337
|
+
let element = contentChanges[key];
|
|
338
|
+
// this.el.nativeElement.
|
|
339
|
+
if (!ej.isNullOrUndefined(this.parent.widget['_' + this.property.replace(/\./g, '_') + '_' + key]))
|
|
340
|
+
this.parent.widget['_' + this.property.replace(/\./g, '_') + '_' + key](element);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
this.hasChanges = false;
|
|
346
|
+
return changes;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
ngAfterContentChecked() {
|
|
350
|
+
let tags = this.tags;
|
|
351
|
+
for (let i = 0, len = tags.length; i < len; i++) {
|
|
352
|
+
let element = tags[i], tagElement = (<any>this)['tag_' + element.replace(/\./g, '_')];
|
|
353
|
+
if (tagElement && tagElement.hasChanges) {
|
|
354
|
+
this.hasChanges = true;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
@Injectable()
|
|
361
|
+
export class ArrayTagElement<T extends ComplexTagElement> implements AfterContentInit, AfterContentChecked {
|
|
362
|
+
list: Array<T>;
|
|
363
|
+
children: QueryList<T>;
|
|
364
|
+
recentChanges: Array<IChildChange>;
|
|
365
|
+
hasChanges: boolean;
|
|
366
|
+
|
|
367
|
+
constructor(public propertyName: string) {
|
|
368
|
+
this.hasChanges = false;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// TODO: Need to consider dynamic child change
|
|
372
|
+
ngAfterContentInit() {
|
|
373
|
+
let index = 0;
|
|
374
|
+
this.list = this.children.map((child) => {
|
|
375
|
+
child.index = index++;
|
|
376
|
+
child.property = this.propertyName;
|
|
377
|
+
return child;
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
getList() {
|
|
382
|
+
let list = this.list;
|
|
383
|
+
for (let i = 0; i < list.length; i++) {
|
|
384
|
+
list[i].ensureCleanObject();
|
|
385
|
+
}
|
|
386
|
+
return list;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
getChangesAndReset(): Array<IChildChange> {
|
|
390
|
+
this.hasChanges = false;
|
|
391
|
+
return this.recentChanges;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
ngAfterContentChecked(): void {
|
|
395
|
+
let changes = {}, res: Array<IChildChange> = (<any>changes)[this.propertyName] = [], childChange: any;
|
|
396
|
+
|
|
397
|
+
for (let i = 0, list = this.list; i < list.length; i++) {
|
|
398
|
+
let child = list[i];
|
|
399
|
+
if (child.hasChanges) {
|
|
400
|
+
childChange = child.getChangesAndReset();
|
|
401
|
+
if (!ej.isNullOrUndefined(childChange)) {
|
|
402
|
+
res.push(<IChildChange>{
|
|
403
|
+
index: child.index,
|
|
404
|
+
change: childChange
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
if (res.length > 0) {
|
|
411
|
+
this.recentChanges = res;
|
|
412
|
+
this.hasChanges = true;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { BoldReportComponents } from './core';
|
|
2
|
+
// tslint:disable-next-line:max-line-length
|
|
3
|
+
import { EventEmitter, IterableDiffers, KeyValueDiffers, Component, ElementRef, ChangeDetectorRef, Input, Output } from '@angular/core';
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'bold-reportdesigner',
|
|
6
|
+
template: ''})
|
|
7
|
+
export class BoldReportDesignerComponent extends BoldReportComponents<any, any> {
|
|
8
|
+
@Input('configurePaneSettings') configurePaneSettings_input: any;
|
|
9
|
+
@Input('disableCodeModule') disableCodeModule_input: any;
|
|
10
|
+
@Input('enableImpersonate') enableImpersonate_input: any;
|
|
11
|
+
@Input('enableImageBlobing') enableImageBlobing_input: any;
|
|
12
|
+
@Input('enableTableMultipleDataAssign') enableTableMultipleDataAssign_input: any;
|
|
13
|
+
@Input('filterDataConnectors') filterDataConnectors_input: any;
|
|
14
|
+
@Input('filterReportItems') filterReportItems_input: any;
|
|
15
|
+
@Input('fontNames') fontNames_input: any;
|
|
16
|
+
@Input('locale') locale_input: any;
|
|
17
|
+
@Input('permissionSettings') permissionSettings_input: any;
|
|
18
|
+
@Input('previewOptions') previewOptions_input: any;
|
|
19
|
+
@Input('reportDataExtensions') reportDataExtensions_input: any;
|
|
20
|
+
@Input('reportItemExtensions') reportItemExtensions_input: any;
|
|
21
|
+
@Input('reportPath') reportPath_input: any;
|
|
22
|
+
@Input('reportVersion') reportVersion_input: any;
|
|
23
|
+
@Input('reportType') reportType_input: any;
|
|
24
|
+
@Input('reportServerUrl') reportServerUrl_input: any;
|
|
25
|
+
@Input('serviceAuthorizationToken') serviceAuthorizationToken_input: any;
|
|
26
|
+
@Input('serviceUrl') serviceUrl_input: any;
|
|
27
|
+
@Input('toolbarSettings') toolbarSettings_input: any;
|
|
28
|
+
@Input('waitingPopupTemplate') waitingPopupTemplate_input: any;
|
|
29
|
+
@Input('dataTabIndex') dataTabIndex_input: any;
|
|
30
|
+
@Input('configurePaneSettings.items') configurePaneSettings_items_input: any;
|
|
31
|
+
@Input('configurePaneSettings.showPane') configurePaneSettings_showPane_input: any;
|
|
32
|
+
@Input('dataSources.name') dataSources_name_input: any;
|
|
33
|
+
@Input('dataSources.value') dataSources_value_input: any;
|
|
34
|
+
@Input('exportSettings.exportOptions') exportSettings_exportOptions_input: any;
|
|
35
|
+
@Input('exportSettings.excelFormat') exportSettings_excelFormat_input: any;
|
|
36
|
+
@Input('exportSettings.wordFormat') exportSettings_wordFormat_input: any;
|
|
37
|
+
@Input('exportSettings.customItems') exportSettings_customItems_input: any;
|
|
38
|
+
@Input('pageSettings.orientation') pageSettings_orientation_input: any;
|
|
39
|
+
@Input('pageSettings.paperSize') pageSettings_paperSize_input: any;
|
|
40
|
+
@Input('pageSettings.height') pageSettings_height_input: any;
|
|
41
|
+
@Input('pageSettings.width') pageSettings_width_input: any;
|
|
42
|
+
@Input('pageSettings.margins') pageSettings_margins_input: any;
|
|
43
|
+
@Input('parameters.labels') parameters_labels_input: any;
|
|
44
|
+
@Input('parameters.name') parameters_name_input: any;
|
|
45
|
+
@Input('parameters.nullable') parameters_nullable_input: any;
|
|
46
|
+
@Input('parameters.prompt') parameters_prompt_input: any;
|
|
47
|
+
@Input('parameters.values') parameters_values_input: any;
|
|
48
|
+
@Input('parameterSettings.delimiterChar') parameterSettings_delimiterChar_input: any;
|
|
49
|
+
@Input('parameterSettings.popupHeight') parameterSettings_popupHeight_input: any;
|
|
50
|
+
@Input('parameterSettings.popupWidth') parameterSettings_popupWidth_input: any;
|
|
51
|
+
@Input('parameterSettings.itemWidth') parameterSettings_itemWidth_input: any;
|
|
52
|
+
@Input('parameterSettings.labelWidth') parameterSettings_labelWidth_input: any;
|
|
53
|
+
@Input('permissionSettings.dataSet') permissionSettings_dataSet_input: any;
|
|
54
|
+
@Input('permissionSettings.dataSource') permissionSettings_dataSource_input: any;
|
|
55
|
+
@Input('previewOptions.autoRender') previewOptions_autoRender_input: any;
|
|
56
|
+
@Input('previewOptions.dataSources') previewOptions_dataSources_input: any;
|
|
57
|
+
@Input('previewOptions.enableNotificationBar') previewOptions_enableNotificationBar_input: any;
|
|
58
|
+
@Input('previewOptions.enableVirtualEvaluation') previewOptions_enableVirtualEvaluation_input: any;
|
|
59
|
+
@Input('previewOptions.enableParameterBlockScroller') previewOptions_enableParameterBlockScroller_input: any;
|
|
60
|
+
@Input('previewOptions.enableDatasourceBlockScroller') previewOptions_enableDatasourceBlockScroller_input: any;
|
|
61
|
+
@Input('previewOptions.enableDropDownSearch') previewOptions_enableDropDownSearch_input: any;
|
|
62
|
+
@Input('previewOptions.exportSettings') previewOptions_exportSettings_input: any;
|
|
63
|
+
@Input('previewOptions.pageSettings') previewOptions_pageSettings_input: any;
|
|
64
|
+
@Input('previewOptions.parameters') previewOptions_parameters_input: any;
|
|
65
|
+
@Input('previewOptions.parameterSettings') previewOptions_parameterSettings_input: any;
|
|
66
|
+
@Input('previewOptions.printMode') previewOptions_printMode_input: any;
|
|
67
|
+
@Input('previewOptions.printOption') previewOptions_printOption_input: any;
|
|
68
|
+
@Input('previewOptions.sizeToReportContent') previewOptions_sizeToReportContent_input: any;
|
|
69
|
+
@Input('previewOptions.toolbarSettings') previewOptions_toolbarSettings_input: any;
|
|
70
|
+
@Input('previewOptions.zoomFactor') previewOptions_zoomFactor_input: any;
|
|
71
|
+
@Input('reportDataExtensions.name') reportDataExtensions_name_input: any;
|
|
72
|
+
@Input('reportDataExtensions.className') reportDataExtensions_className_input: any;
|
|
73
|
+
@Input('reportDataExtensions.imageClass') reportDataExtensions_imageClass_input: any;
|
|
74
|
+
@Input('reportDataExtensions.displayName') reportDataExtensions_displayName_input: any;
|
|
75
|
+
@Input('reportItemExtensions.name') reportItemExtensions_name_input: any;
|
|
76
|
+
@Input('reportItemExtensions.className') reportItemExtensions_className_input: any;
|
|
77
|
+
@Input('reportItemExtensions.imageClass') reportItemExtensions_imageClass_input: any;
|
|
78
|
+
@Input('reportItemExtensions.displayName') reportItemExtensions_displayName_input: any;
|
|
79
|
+
@Input('reportItemExtensions.category') reportItemExtensions_category_input: any;
|
|
80
|
+
@Input('toolbarSettings.items') toolbarSettings_items_input: any;
|
|
81
|
+
@Input('toolbarSettings.showToolbar') toolbarSettings_showToolbar_input: any;
|
|
82
|
+
@Input('toolbarSettings.templateId') toolbarSettings_templateId_input: any;
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
@Output('ajaxBeforeLoad') ajaxBeforeLoad_output : any = new EventEmitter();
|
|
86
|
+
@Output('ajaxError') ajaxError_output : any = new EventEmitter();
|
|
87
|
+
@Output('ajaxSuccess') ajaxSuccess_output : any = new EventEmitter();
|
|
88
|
+
@Output('create') create_output : any = new EventEmitter();
|
|
89
|
+
@Output('destroy') destroy_output : any = new EventEmitter();
|
|
90
|
+
@Output('newDataClick') newDataClick_output : any = new EventEmitter();
|
|
91
|
+
@Output('openReportClick') openReportClick_output : any = new EventEmitter();
|
|
92
|
+
@Output('previewReport') previewReport_output : any = new EventEmitter();
|
|
93
|
+
@Output('reportModified') reportModified_output : any = new EventEmitter();
|
|
94
|
+
@Output('reportOpened') reportOpened_output : any = new EventEmitter();
|
|
95
|
+
@Output('reportSaved') reportSaved_output : any = new EventEmitter();
|
|
96
|
+
@Output('saveReportClick') saveReportClick_output : any = new EventEmitter();
|
|
97
|
+
@Output('toolbarClick') toolbarClick_output : any = new EventEmitter();
|
|
98
|
+
@Output('toolbarRendering') toolbarRendering_output : any = new EventEmitter();
|
|
99
|
+
@Output('encryptData') encryptData_output : any = new EventEmitter();
|
|
100
|
+
@Output('decryptData') decryptData_output : any = new EventEmitter();
|
|
101
|
+
|
|
102
|
+
// tslint:disable-next-line:max-line-length
|
|
103
|
+
constructor(public el: ElementRef, public cdRef: ChangeDetectorRef, private _ejIterableDiffers: IterableDiffers, private _ejkeyvaluediffers: KeyValueDiffers) {
|
|
104
|
+
super('BoldReportDesigner', el, cdRef, [], _ejIterableDiffers, _ejkeyvaluediffers);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { BoldReportDesignerComponent } from './reportdesigner.component';
|
|
4
|
+
|
|
5
|
+
@NgModule({
|
|
6
|
+
imports: [
|
|
7
|
+
CommonModule
|
|
8
|
+
],
|
|
9
|
+
declarations: [
|
|
10
|
+
BoldReportDesignerComponent
|
|
11
|
+
],
|
|
12
|
+
exports: [
|
|
13
|
+
BoldReportDesignerComponent
|
|
14
|
+
]
|
|
15
|
+
})
|
|
16
|
+
export class BoldReportDesignerModule {
|
|
17
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { BoldReportDesignerModule } from './reportdesigner.module';
|
|
4
|
+
import { BoldReportViewerModule } from './reportviewer.module';
|
|
5
|
+
|
|
6
|
+
@NgModule({
|
|
7
|
+
imports: [
|
|
8
|
+
CommonModule,
|
|
9
|
+
BoldReportViewerModule,
|
|
10
|
+
BoldReportDesignerModule
|
|
11
|
+
],
|
|
12
|
+
declarations: [
|
|
13
|
+
],
|
|
14
|
+
exports: [
|
|
15
|
+
BoldReportViewerModule,
|
|
16
|
+
BoldReportDesignerModule
|
|
17
|
+
]
|
|
18
|
+
})
|
|
19
|
+
export class BoldReportsModule {
|
|
20
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { BoldReportComponents } from './core';
|
|
2
|
+
// tslint:disable-next-line:max-line-length
|
|
3
|
+
import { EventEmitter, IterableDiffers, KeyValueDiffers, Component, ElementRef, ChangeDetectorRef, Input, Output } from '@angular/core';
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'bold-reportviewer',
|
|
6
|
+
template: ''})
|
|
7
|
+
export class BoldReportViewerComponent extends BoldReportComponents<any, any> {
|
|
8
|
+
@Input('dataSources') dataSources_input: any;
|
|
9
|
+
@Input('exportSettings') exportSettings_input: any;
|
|
10
|
+
@Input('isResponsive') isResponsive_input: any;
|
|
11
|
+
@Input('locale') locale_input: any;
|
|
12
|
+
@Input('pageSettings') pageSettings_input: any;
|
|
13
|
+
@Input('parameters') parameters_input: any;
|
|
14
|
+
@Input('toolbarSettings') toolbarSettings_input: any;
|
|
15
|
+
@Input('parameterSettings') parameterSettings_input: any;
|
|
16
|
+
@Input('printMode') printMode_input: any;
|
|
17
|
+
@Input('printOption') printOption_input: any;
|
|
18
|
+
@Input('processingMode') processingMode_input: any;
|
|
19
|
+
@Input('renderMode') renderMode_input: any;
|
|
20
|
+
@Input('reportPath') reportPath_input: any;
|
|
21
|
+
@Input('reportServerUrl') reportServerUrl_input: any;
|
|
22
|
+
@Input('reportServiceUrl') reportServiceUrl_input: any;
|
|
23
|
+
@Input('zoomFactor') zoomFactor_input: any;
|
|
24
|
+
@Input('serviceAuthorizationToken') serviceAuthorizationToken_input: any;
|
|
25
|
+
@Input('toolbarRenderMode') toolbarRenderMode_input: any;
|
|
26
|
+
@Input('enableParameterBlockScroller') enableParameterBlockScroller_input: any;
|
|
27
|
+
@Input('enableDatasourceBlockScroller') enableDatasourceBlockScroller_input: any;
|
|
28
|
+
@Input('sizeToReportContent') sizeToReportContent_input: any;
|
|
29
|
+
@Input('autoRender') autoRender_input: any;
|
|
30
|
+
@Input('enableNotificationBar') enableNotificationBar_input: any;
|
|
31
|
+
@Input('enableDropDownSearch') enableDropDownSearch_input: any;
|
|
32
|
+
@Input('enableVirtualEvaluation') enableVirtualEvaluation_input: any;
|
|
33
|
+
@Input('smartRendering') smartRendering_input: any;
|
|
34
|
+
@Input('waitingPopupTemplate') waitingPopupTemplate_input: any;
|
|
35
|
+
@Input('enableOnScrollNavigation') enableOnScrollNavigation_input: any;
|
|
36
|
+
@Input('customBrandSettings') customBrandSettings_input: any;
|
|
37
|
+
@Input('customBrandSettings.link') customBrandSettings_link_input: any;
|
|
38
|
+
@Input('customBrandSettings.domain') customBrandSettings_domain_input: any;
|
|
39
|
+
@Input('customBrandSettings.name') customBrandSettings_name_input: any;
|
|
40
|
+
@Input('customBrandSettings.links') customBrandSettings_links_input: any;
|
|
41
|
+
@Input('dataSources.name') dataSources_name_input: any;
|
|
42
|
+
@Input('dataSources.value') dataSources_value_input: any;
|
|
43
|
+
@Input('exportSettings.exportOptions') exportSettings_exportOptions_input: any;
|
|
44
|
+
@Input('exportSettings.excelFormat') exportSettings_excelFormat_input: any;
|
|
45
|
+
@Input('exportSettings.wordFormat') exportSettings_wordFormat_input: any;
|
|
46
|
+
@Input('exportSettings.customItems') exportSettings_customItems_input: any;
|
|
47
|
+
@Input('exportSettings.ImageQuality') exportSettings_ImageQuality_input: any;
|
|
48
|
+
@Input('exportSettings.UsePrintSizes') exportSettings_UsePrintSizes_input: any;
|
|
49
|
+
@Input('pageSettings.orientation') pageSettings_orientation_input: any;
|
|
50
|
+
@Input('pageSettings.paperSize') pageSettings_paperSize_input: any;
|
|
51
|
+
@Input('pageSettings.height') pageSettings_height_input: any;
|
|
52
|
+
@Input('pageSettings.width') pageSettings_width_input: any;
|
|
53
|
+
@Input('pageSettings.margins') pageSettings_margins_input: any;
|
|
54
|
+
@Input('parameters.labels') parameters_labels_input: any;
|
|
55
|
+
@Input('parameters.name') parameters_name_input: any;
|
|
56
|
+
@Input('parameters.nullable') parameters_nullable_input: any;
|
|
57
|
+
@Input('parameters.prompt') parameters_prompt_input: any;
|
|
58
|
+
@Input('parameters.values') parameters_values_input: any;
|
|
59
|
+
@Input('parameterSettings.delimiterChar') parameterSettings_delimiterChar_input: any;
|
|
60
|
+
@Input('parameterSettings.position') parameterSettings_position_input: any;
|
|
61
|
+
@Input('parameterSettings.popupHeight') parameterSettings_popupHeight_input: any;
|
|
62
|
+
@Input('parameterSettings.popupWidth') parameterSettings_popupWidth_input: any;
|
|
63
|
+
@Input('parameterSettings.itemWidth') parameterSettings_itemWidth_input: any;
|
|
64
|
+
@Input('parameterSettings.labelWidth') parameterSettings_labelWidth_input: any;
|
|
65
|
+
@Input('parameterSettings.minDateTime') parameterSettings_minDateTime_input: any;
|
|
66
|
+
@Input('parameterSettings.maxDateTime') parameterSettings_maxDateTime_input: any;
|
|
67
|
+
@Input('parameterSettings.hideTooltip') parameterSettings_hideTooltip_input: any;
|
|
68
|
+
@Input('parameterSettings.enablePopupResize') parameterSettings_enablePopupResize_input: any;
|
|
69
|
+
@Input('parameterSettings.hideParameterBlock') parameterSettings_hideParameterBlock_input: any;
|
|
70
|
+
@Input('parameterSettings.dateTimeFormat') parameterSettings_dateTimeFormat_input: any;
|
|
71
|
+
@Input('parameterSettings.timeDisplayFormat') parameterSettings_timeDisplayFormat_input: any;
|
|
72
|
+
@Input('parameterSettings.timeInterval') parameterSettings_timeInterval_input: any;
|
|
73
|
+
@Input('parameterSettings.accessInternalValue') parameterSettings_accessInternalValue_input: any;
|
|
74
|
+
@Input('toolbarSettings.click') toolbarSettings_click_input: any;
|
|
75
|
+
@Input('toolbarSettings.items') toolbarSettings_items_input: any;
|
|
76
|
+
@Input('toolbarSettings.toolbars') toolbarSettings_toolbars_input: any;
|
|
77
|
+
@Input('toolbarSettings.showToolbar') toolbarSettings_showToolbar_input: any;
|
|
78
|
+
@Input('toolbarSettings.showTooltip') toolbarSettings_showTooltip_input: any;
|
|
79
|
+
@Input('toolbarSettings.autoHide') toolbarSettings_autoHide_input: any;
|
|
80
|
+
@Input('toolbarSettings.autoHideDelay') toolbarSettings_autoHideDelay_input: any;
|
|
81
|
+
@Input('toolbarSettings.templateId') toolbarSettings_templateId_input: any;
|
|
82
|
+
@Input('toolbarSettings.customItems') toolbarSettings_customItems_input: any;
|
|
83
|
+
@Input('toolbarSettings.customGroups') toolbarSettings_customGroups_input: any;
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@Output('drillThrough') drillThrough_output : any = new EventEmitter();
|
|
87
|
+
@Output('renderingBegin') renderingBegin_output : any = new EventEmitter();
|
|
88
|
+
@Output('renderingComplete') renderingComplete_output : any = new EventEmitter();
|
|
89
|
+
@Output('reportError') reportError_output : any = new EventEmitter();
|
|
90
|
+
@Output('reportExport') reportExport_output : any = new EventEmitter();
|
|
91
|
+
@Output('reportLoaded') reportLoaded_output : any = new EventEmitter();
|
|
92
|
+
@Output('showError') showError_output : any = new EventEmitter();
|
|
93
|
+
@Output('viewReportClick') viewReportClick_output : any = new EventEmitter();
|
|
94
|
+
@Output('ajaxBeforeLoad') ajaxBeforeLoad_output : any = new EventEmitter();
|
|
95
|
+
@Output('ajaxSuccess') ajaxSuccess_output : any = new EventEmitter();
|
|
96
|
+
@Output('ajaxError') ajaxError_output : any = new EventEmitter();
|
|
97
|
+
@Output('toolbarRendering') toolbarRendering_output : any = new EventEmitter();
|
|
98
|
+
@Output('exportProgressChanged') exportProgressChanged_output : any = new EventEmitter();
|
|
99
|
+
@Output('printProgressChanged') printProgressChanged_output : any = new EventEmitter();
|
|
100
|
+
@Output('exportItemClick') exportItemClick_output : any = new EventEmitter();
|
|
101
|
+
@Output('toolBarItemClick') toolBarItemClick_output : any = new EventEmitter();
|
|
102
|
+
@Output('hyperlink') hyperlink_output : any = new EventEmitter();
|
|
103
|
+
@Output('reportPrint') reportPrint_output : any = new EventEmitter();
|
|
104
|
+
@Output('beforeParameterAdd') beforeParameterAdd_output : any = new EventEmitter();
|
|
105
|
+
|
|
106
|
+
// tslint:disable-next-line:max-line-length
|
|
107
|
+
constructor(public el: ElementRef, public cdRef: ChangeDetectorRef, private _ejIterableDiffers: IterableDiffers, private _ejkeyvaluediffers: KeyValueDiffers) {
|
|
108
|
+
super('BoldReportViewer', el, cdRef, [], _ejIterableDiffers, _ejkeyvaluediffers);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { BoldReportViewerComponent } from './reportviewer.component';
|
|
4
|
+
|
|
5
|
+
@NgModule({
|
|
6
|
+
imports: [
|
|
7
|
+
CommonModule
|
|
8
|
+
],
|
|
9
|
+
declarations: [
|
|
10
|
+
BoldReportViewerComponent
|
|
11
|
+
],
|
|
12
|
+
exports: [
|
|
13
|
+
BoldReportViewerComponent
|
|
14
|
+
]
|
|
15
|
+
})
|
|
16
|
+
export class BoldReportViewerModule {
|
|
17
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compileOnSave": false,
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": "./",
|
|
5
|
+
"outDir": "./dist/out-tsc",
|
|
6
|
+
"sourceMap": true,
|
|
7
|
+
"declaration": false,
|
|
8
|
+
"allowUnusedLabels": false,
|
|
9
|
+
"noImplicitReturns": true,
|
|
10
|
+
"noUnusedLocals": true,
|
|
11
|
+
"noUnusedParameters": true,
|
|
12
|
+
"importsNotUsedAsValues":"remove",
|
|
13
|
+
"downlevelIteration": true,
|
|
14
|
+
"experimentalDecorators": true,
|
|
15
|
+
"module": "esnext",
|
|
16
|
+
"moduleResolution": "node",
|
|
17
|
+
"importHelpers": true,
|
|
18
|
+
"target": "es2015",
|
|
19
|
+
"typeRoots": [
|
|
20
|
+
"node_modules/@types/"
|
|
21
|
+
],
|
|
22
|
+
"types": [
|
|
23
|
+
"jquery",
|
|
24
|
+
"ej.web.all",
|
|
25
|
+
"node"
|
|
26
|
+
],
|
|
27
|
+
"lib": [
|
|
28
|
+
"es2018",
|
|
29
|
+
"dom"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"angularCompilerOptions": {
|
|
33
|
+
"enableIvy": true,
|
|
34
|
+
"fullTemplateTypeCheck": true,
|
|
35
|
+
"strictInjectionParameters": true
|
|
36
|
+
}
|
|
37
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|