@schneideress/dashboardframework 0.0.1
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/README.md +24 -0
- package/bundles/schneideress-dashboardframework.umd.js +5666 -0
- package/bundles/schneideress-dashboardframework.umd.js.map +1 -0
- package/bundles/schneideress-dashboardframework.umd.min.js +2 -0
- package/bundles/schneideress-dashboardframework.umd.min.js.map +1 -0
- package/esm2015/gridster/index.js +18 -0
- package/esm2015/gridster/lib/gridster.component.js +695 -0
- package/esm2015/gridster/lib/gridster.interface.js +84 -0
- package/esm2015/gridster/lib/gridster.module.js +27 -0
- package/esm2015/gridster/lib/gridsterCompact.service.js +223 -0
- package/esm2015/gridster/lib/gridsterConfig.constant.js +179 -0
- package/esm2015/gridster/lib/gridsterConfig.interface.js +219 -0
- package/esm2015/gridster/lib/gridsterConfigS.interface.js +161 -0
- package/esm2015/gridster/lib/gridsterDraggable.service.js +510 -0
- package/esm2015/gridster/lib/gridsterEmptyCell.service.js +317 -0
- package/esm2015/gridster/lib/gridsterItem.component.js +213 -0
- package/esm2015/gridster/lib/gridsterItem.interface.js +46 -0
- package/esm2015/gridster/lib/gridsterItemComponent.interface.js +48 -0
- package/esm2015/gridster/lib/gridsterPreview.component.js +66 -0
- package/esm2015/gridster/lib/gridsterPush.service.js +467 -0
- package/esm2015/gridster/lib/gridsterPushResize.service.js +358 -0
- package/esm2015/gridster/lib/gridsterRenderer.service.js +277 -0
- package/esm2015/gridster/lib/gridsterResizable.service.js +552 -0
- package/esm2015/gridster/lib/gridsterResizeEventType.interface.js +19 -0
- package/esm2015/gridster/lib/gridsterScroll.service.js +195 -0
- package/esm2015/gridster/lib/gridsterSwap.service.js +134 -0
- package/esm2015/gridster/lib/gridsterUtils.service.js +137 -0
- package/esm2015/lib/ra-dashboard-area/ra.dashboard.area.js +258 -0
- package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +216 -0
- package/esm2015/lib/ra.base.dashboard.filter.js +35 -0
- package/esm2015/lib/ra.base.dashboard.template.js +63 -0
- package/esm2015/lib/ra.dashbard.event.bus.js +85 -0
- package/esm2015/lib/ra.dashboard.module.js +31 -0
- package/esm2015/lib/ra.dashboard.service.js +213 -0
- package/esm2015/lib/ra.event.enum.js +33 -0
- package/esm2015/lib/ra.gridster.config.js +63 -0
- package/esm2015/public-api.js +16 -0
- package/esm2015/schneideress-dashboardframework.js +13 -0
- package/esm5/gridster/index.js +18 -0
- package/esm5/gridster/lib/gridster.component.js +798 -0
- package/esm5/gridster/lib/gridster.interface.js +94 -0
- package/esm5/gridster/lib/gridster.module.js +31 -0
- package/esm5/gridster/lib/gridsterCompact.service.js +253 -0
- package/esm5/gridster/lib/gridsterConfig.constant.js +179 -0
- package/esm5/gridster/lib/gridsterConfig.interface.js +219 -0
- package/esm5/gridster/lib/gridsterConfigS.interface.js +161 -0
- package/esm5/gridster/lib/gridsterDraggable.service.js +549 -0
- package/esm5/gridster/lib/gridsterEmptyCell.service.js +358 -0
- package/esm5/gridster/lib/gridsterItem.component.js +238 -0
- package/esm5/gridster/lib/gridsterItem.interface.js +46 -0
- package/esm5/gridster/lib/gridsterItemComponent.interface.js +58 -0
- package/esm5/gridster/lib/gridsterPreview.component.js +70 -0
- package/esm5/gridster/lib/gridsterPush.service.js +547 -0
- package/esm5/gridster/lib/gridsterPushResize.service.js +423 -0
- package/esm5/gridster/lib/gridsterRenderer.service.js +323 -0
- package/esm5/gridster/lib/gridsterResizable.service.js +629 -0
- package/esm5/gridster/lib/gridsterResizeEventType.interface.js +19 -0
- package/esm5/gridster/lib/gridsterScroll.service.js +195 -0
- package/esm5/gridster/lib/gridsterSwap.service.js +152 -0
- package/esm5/gridster/lib/gridsterUtils.service.js +177 -0
- package/esm5/lib/ra-dashboard-area/ra.dashboard.area.js +307 -0
- package/esm5/lib/ra-widget-container/ra.widget.container.component.js +277 -0
- package/esm5/lib/ra.base.dashboard.filter.js +38 -0
- package/esm5/lib/ra.base.dashboard.template.js +63 -0
- package/esm5/lib/ra.dashbard.event.bus.js +125 -0
- package/esm5/lib/ra.dashboard.module.js +35 -0
- package/esm5/lib/ra.dashboard.service.js +295 -0
- package/esm5/lib/ra.event.enum.js +33 -0
- package/esm5/lib/ra.gridster.config.js +63 -0
- package/esm5/public-api.js +16 -0
- package/esm5/schneideress-dashboardframework.js +13 -0
- package/fesm2015/schneideress-dashboardframework.js +4811 -0
- package/fesm2015/schneideress-dashboardframework.js.map +1 -0
- package/fesm5/schneideress-dashboardframework.js +5613 -0
- package/fesm5/schneideress-dashboardframework.js.map +1 -0
- package/gridster/index.d.ts +11 -0
- package/gridster/lib/gridster.component.d.ts +67 -0
- package/gridster/lib/gridster.interface.d.ts +46 -0
- package/gridster/lib/gridster.module.d.ts +2 -0
- package/gridster/lib/gridsterCompact.service.d.ts +15 -0
- package/gridster/lib/gridsterConfig.constant.d.ts +2 -0
- package/gridster/lib/gridsterConfig.interface.d.ts +133 -0
- package/gridster/lib/gridsterConfigS.interface.d.ts +93 -0
- package/gridster/lib/gridsterDraggable.service.d.ts +59 -0
- package/gridster/lib/gridsterEmptyCell.service.d.ts +29 -0
- package/gridster/lib/gridsterItem.component.d.ts +32 -0
- package/gridster/lib/gridsterItem.interface.d.ts +21 -0
- package/gridster/lib/gridsterItemComponent.interface.d.ts +25 -0
- package/gridster/lib/gridsterPreview.component.d.ts +10 -0
- package/gridster/lib/gridsterPush.service.d.ts +33 -0
- package/gridster/lib/gridsterPushResize.service.d.ts +26 -0
- package/gridster/lib/gridsterRenderer.service.d.ts +38 -0
- package/gridster/lib/gridsterResizable.service.d.ts +67 -0
- package/gridster/lib/gridsterResizeEventType.interface.d.ts +6 -0
- package/gridster/lib/gridsterScroll.service.d.ts +4 -0
- package/gridster/lib/gridsterSwap.service.d.ts +13 -0
- package/gridster/lib/gridsterUtils.service.d.ts +16 -0
- package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +37 -0
- package/lib/ra-widget-container/ra.widget.container.component.d.ts +37 -0
- package/lib/ra.base.dashboard.filter.d.ts +4 -0
- package/lib/ra.base.dashboard.template.d.ts +14 -0
- package/lib/ra.dashbard.event.bus.d.ts +20 -0
- package/lib/ra.dashboard.module.d.ts +2 -0
- package/lib/ra.dashboard.service.d.ts +73 -0
- package/lib/ra.event.enum.d.ts +24 -0
- package/lib/ra.gridster.config.d.ts +2 -0
- package/package.json +25 -0
- package/public-api.d.ts +8 -0
- package/schneideress-dashboardframework.d.ts +8 -0
- package/schneideress-dashboardframework.metadata.json +1 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Input, Component, NgZone } from '@angular/core';
|
|
6
|
+
import { RaDashboardService } from '../ra.dashboard.service';
|
|
7
|
+
import { RADashboardEventBus } from '../ra.dashbard.event.bus';
|
|
8
|
+
import { RAEvent } from '../ra.event.enum';
|
|
9
|
+
import { GridsterConfigDefaultSettings } from '../ra.gridster.config';
|
|
10
|
+
export class RADashboardArea {
|
|
11
|
+
/**
|
|
12
|
+
* @param {?} dashboardService
|
|
13
|
+
* @param {?} ngZone
|
|
14
|
+
*/
|
|
15
|
+
constructor(dashboardService, ngZone) {
|
|
16
|
+
this.dashboardService = dashboardService;
|
|
17
|
+
this.ngZone = ngZone;
|
|
18
|
+
this.widgetList = Array();
|
|
19
|
+
this.gridheight = 300;
|
|
20
|
+
this.widgetHeight = 20;
|
|
21
|
+
this.widgetWidth = 50;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @return {?}
|
|
25
|
+
*/
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
/**
|
|
28
|
+
* To override default configuration values to the gridster control
|
|
29
|
+
* @type {?}
|
|
30
|
+
*/
|
|
31
|
+
let areaContext = this;
|
|
32
|
+
this.options = GridsterConfigDefaultSettings;
|
|
33
|
+
this.options.itemChangeCallback = (/**
|
|
34
|
+
* @param {?} item
|
|
35
|
+
* @return {?}
|
|
36
|
+
*/
|
|
37
|
+
function (item) {
|
|
38
|
+
areaContext.setAreaHeight();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @param {?} changes
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
ngOnChanges(changes) {
|
|
46
|
+
if (changes.raDashboardEventBus && changes.raDashboardEventBus.currentValue != changes.raDashboardEventBus.previousValue) {
|
|
47
|
+
this.conifgAddClick = this.raDashboardEventBus.subscribe(RAEvent.ConfigAddClick).subscribe((/**
|
|
48
|
+
* @param {?} e
|
|
49
|
+
* @return {?}
|
|
50
|
+
*/
|
|
51
|
+
(e) => {
|
|
52
|
+
this.ngZone.run((/**
|
|
53
|
+
* @return {?}
|
|
54
|
+
*/
|
|
55
|
+
() => {
|
|
56
|
+
this.addWidget(e);
|
|
57
|
+
}));
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
if (this.raDashboardEventBus && this.userDashboardId && this.areaKey) {
|
|
61
|
+
this.loadWidgets(this.userDashboardId, this.areaKey);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @return {?}
|
|
66
|
+
*/
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
this.conifgAddClick.unsubscribe();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* To retrieve widgets based on userDashboardid and area name
|
|
72
|
+
* @param {?} userDashboarId
|
|
73
|
+
* @param {?} areaKey
|
|
74
|
+
* @return {?}
|
|
75
|
+
*/
|
|
76
|
+
loadWidgets(userDashboarId, areaKey) {
|
|
77
|
+
/** @type {?} */
|
|
78
|
+
let widgetInfo = (/** @type {?} */ ({
|
|
79
|
+
dashboardId: userDashboarId.toString(),
|
|
80
|
+
dashboardAreaKey: areaKey
|
|
81
|
+
}));
|
|
82
|
+
/** @type {?} */
|
|
83
|
+
let widgets = this.dashboardService.getWidgetsByDashboardArea(widgetInfo, this.appConfig).subscribe((/**
|
|
84
|
+
* @param {?} widgets
|
|
85
|
+
* @return {?}
|
|
86
|
+
*/
|
|
87
|
+
widgets => {
|
|
88
|
+
if (widgets)
|
|
89
|
+
this.widgetList = this.mapObjectListToGridsterItemList(widgets);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* To set Area(Gridster) height dynamically as widgets are added/removed
|
|
94
|
+
* @return {?}
|
|
95
|
+
*/
|
|
96
|
+
setAreaHeight() {
|
|
97
|
+
/** @type {?} */
|
|
98
|
+
let areaScrollHeight = 0;
|
|
99
|
+
/** @type {?} */
|
|
100
|
+
let areaHeight = 0;
|
|
101
|
+
this.widgetList.forEach((/**
|
|
102
|
+
* @param {?} t
|
|
103
|
+
* @return {?}
|
|
104
|
+
*/
|
|
105
|
+
(t) => {
|
|
106
|
+
/** @type {?} */
|
|
107
|
+
let currentHeight = t.y + t.rows;
|
|
108
|
+
if (currentHeight > areaScrollHeight) {
|
|
109
|
+
areaScrollHeight = currentHeight;
|
|
110
|
+
}
|
|
111
|
+
}));
|
|
112
|
+
areaHeight = areaScrollHeight * this.options.api.getCurrentRowHeight() + 2;
|
|
113
|
+
if (areaHeight < 300) {
|
|
114
|
+
areaHeight = 300;
|
|
115
|
+
}
|
|
116
|
+
this.gridheight = areaHeight;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* To map IwidgetInfo object to gridsterItem
|
|
120
|
+
* @param {?} widget
|
|
121
|
+
* @return {?}
|
|
122
|
+
*/
|
|
123
|
+
mapObjectsToGridsterItem(widget) {
|
|
124
|
+
/** @type {?} */
|
|
125
|
+
let gridsterItem = (/** @type {?} */ ({
|
|
126
|
+
cols: widget.width,
|
|
127
|
+
rows: widget.height,
|
|
128
|
+
x: widget.position_x,
|
|
129
|
+
y: widget.position_y,
|
|
130
|
+
widgetInfo: widget
|
|
131
|
+
}));
|
|
132
|
+
return gridsterItem;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* @param {?} widgetList
|
|
136
|
+
* @return {?}
|
|
137
|
+
*/
|
|
138
|
+
mapObjectListToGridsterItemList(widgetList) {
|
|
139
|
+
/** @type {?} */
|
|
140
|
+
let widgetArray = Array();
|
|
141
|
+
widgetList.forEach((/**
|
|
142
|
+
* @param {?} widget
|
|
143
|
+
* @return {?}
|
|
144
|
+
*/
|
|
145
|
+
widget => {
|
|
146
|
+
widgetArray.push(this.mapObjectsToGridsterItem(widget));
|
|
147
|
+
}));
|
|
148
|
+
return widgetArray;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* To remove a widget instance from dashboard and to save info in database
|
|
152
|
+
* @param {?} widgetInstanceId
|
|
153
|
+
* @return {?}
|
|
154
|
+
*/
|
|
155
|
+
deleteWidget(widgetInstanceId) {
|
|
156
|
+
/** @type {?} */
|
|
157
|
+
let widget = this.widgetList.filter((/**
|
|
158
|
+
* @param {?} item
|
|
159
|
+
* @return {?}
|
|
160
|
+
*/
|
|
161
|
+
function (item) {
|
|
162
|
+
return item.widgetInfo.widgetInstanceId === widgetInstanceId;
|
|
163
|
+
}));
|
|
164
|
+
if (widget.length > 0) {
|
|
165
|
+
this.widgetList.splice(this.widgetList.indexOf(widget[0]), 1);
|
|
166
|
+
this.setAreaHeight();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* To add widget instance to the database with the next available position and to make changes in
|
|
171
|
+
* dashboard area.
|
|
172
|
+
* @param {?} data
|
|
173
|
+
* @return {?}
|
|
174
|
+
*/
|
|
175
|
+
addWidget(data) {
|
|
176
|
+
/** @type {?} */
|
|
177
|
+
let widgetid = data.widgetId;
|
|
178
|
+
data.height = this.widgetHeight;
|
|
179
|
+
data.width = this.widgetWidth;
|
|
180
|
+
data.position_x = 0;
|
|
181
|
+
data.position_y = 0;
|
|
182
|
+
/** @type {?} */
|
|
183
|
+
let gridsterItem = this.mapObjectsToGridsterItem(data);
|
|
184
|
+
gridsterItem = this.options.api.getFirstPossiblePosition(gridsterItem);
|
|
185
|
+
data.position_x = gridsterItem.x;
|
|
186
|
+
data.position_y = gridsterItem.y;
|
|
187
|
+
data.dashboardAreaKey = this.areaKey;
|
|
188
|
+
data.dashboardId = this.userDashboardId;
|
|
189
|
+
this.dashboardService.addWidget(data, this.appConfig).subscribe((/**
|
|
190
|
+
* @param {?} widget
|
|
191
|
+
* @return {?}
|
|
192
|
+
*/
|
|
193
|
+
widget => {
|
|
194
|
+
gridsterItem = this.mapObjectsToGridsterItem(widget);
|
|
195
|
+
this.widgetList.push(gridsterItem);
|
|
196
|
+
this.setAreaHeight();
|
|
197
|
+
}));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
RADashboardArea.decorators = [
|
|
201
|
+
{ type: Component, args: [{
|
|
202
|
+
selector: 'ra-dashboard-area',
|
|
203
|
+
template: "<div #gridWrapper class=\"wrap gridster\" [style.height.px]=\"gridheight\">\r\n<!-- <div #gridWrapper class=\"wrap gridster\"> -->\r\n <gridster [options]=\"options\" style=\"height:100%;\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetList\">\r\n <ra-widget-container [app-config]=\"appConfig\" [event-bus]=\"raDashboardEventBus\" (widgetDeleted)=\"deleteWidget($event)\" [data]=\"item\"\r\n [global-filter]=\"globalFilter\" [widget-instance-id]=\"item.widgetInstanceId\"></ra-widget-container>\r\n </gridster-item>\r\n </gridster>\r\n</div>\r\n",
|
|
204
|
+
styles: ["gridster{width:inherit;background:#f1f1f1;border:1px solid #ccc;resize:height;display:flex;min-height:300px}gridster-item{border:1px solid #ccc;background:#fff!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}"]
|
|
205
|
+
}] }
|
|
206
|
+
];
|
|
207
|
+
/** @nocollapse */
|
|
208
|
+
RADashboardArea.ctorParameters = () => [
|
|
209
|
+
{ type: RaDashboardService },
|
|
210
|
+
{ type: NgZone }
|
|
211
|
+
];
|
|
212
|
+
RADashboardArea.propDecorators = {
|
|
213
|
+
userDashboardId: [{ type: Input, args: ['user-dashboard-id',] }],
|
|
214
|
+
areaKey: [{ type: Input, args: ['area-key',] }],
|
|
215
|
+
globalFilter: [{ type: Input, args: ['global-filter',] }],
|
|
216
|
+
raDashboardEventBus: [{ type: Input, args: ['event-bus',] }],
|
|
217
|
+
widgetHeight: [{ type: Input, args: ['widget-height',] }],
|
|
218
|
+
widgetWidth: [{ type: Input, args: ['widget-width',] }],
|
|
219
|
+
appConfig: [{ type: Input, args: ['app-config',] }]
|
|
220
|
+
};
|
|
221
|
+
if (false) {
|
|
222
|
+
/** @type {?} */
|
|
223
|
+
RADashboardArea.prototype.widgetList;
|
|
224
|
+
/** @type {?} */
|
|
225
|
+
RADashboardArea.prototype.options;
|
|
226
|
+
/** @type {?} */
|
|
227
|
+
RADashboardArea.prototype.gridheight;
|
|
228
|
+
/**
|
|
229
|
+
* @type {?}
|
|
230
|
+
* @private
|
|
231
|
+
*/
|
|
232
|
+
RADashboardArea.prototype.conifgAddClick;
|
|
233
|
+
/** @type {?} */
|
|
234
|
+
RADashboardArea.prototype.userDashboardId;
|
|
235
|
+
/** @type {?} */
|
|
236
|
+
RADashboardArea.prototype.areaKey;
|
|
237
|
+
/** @type {?} */
|
|
238
|
+
RADashboardArea.prototype.globalFilter;
|
|
239
|
+
/** @type {?} */
|
|
240
|
+
RADashboardArea.prototype.raDashboardEventBus;
|
|
241
|
+
/** @type {?} */
|
|
242
|
+
RADashboardArea.prototype.widgetHeight;
|
|
243
|
+
/** @type {?} */
|
|
244
|
+
RADashboardArea.prototype.widgetWidth;
|
|
245
|
+
/** @type {?} */
|
|
246
|
+
RADashboardArea.prototype.appConfig;
|
|
247
|
+
/**
|
|
248
|
+
* @type {?}
|
|
249
|
+
* @private
|
|
250
|
+
*/
|
|
251
|
+
RADashboardArea.prototype.dashboardService;
|
|
252
|
+
/**
|
|
253
|
+
* @type {?}
|
|
254
|
+
* @private
|
|
255
|
+
*/
|
|
256
|
+
RADashboardArea.prototype.ngZone;
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEuZGFzaGJvYXJkLmFyZWEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS1kYXNoYm9hcmQtYXJlYS9yYS5kYXNoYm9hcmQuYXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQTRCLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUd0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTdEUsTUFBTSxPQUFPLGVBQWU7Ozs7O0lBZ0IxQixZQUFvQixnQkFBb0MsRUFDOUMsTUFBYztRQURKLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWZqQixlQUFVLEdBQUcsS0FBSyxFQUFnQixDQUFDO1FBRW5DLGVBQVUsR0FBVyxHQUFHLENBQUM7UUFRUixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMzQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztJQUtoRCxDQUFDOzs7O0lBRUQsUUFBUTs7Ozs7WUFFRixXQUFXLEdBQUcsSUFBSTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLDZCQUE2QixDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCOzs7O1FBQUcsVUFBVSxJQUFTO1lBQ25ELFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUEsQ0FBQTtJQUNILENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLG1CQUFtQixJQUFJ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LGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxNQUFNLENBQUMsRUFBRTtZQUN2RSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7OztZQW5JRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsbWxCQUF1Qzs7YUFFeEM7Ozs7WUFYUSxrQkFBa0I7WUFIa0MsTUFBTTs7OzhCQXVCaEUsS0FBSyxTQUFDLG1CQUFtQjtzQkFDekIsS0FBSyxTQUFDLFVBQVU7MkJBQ2hCLEtBQUssU0FBQyxlQUFlO2tDQUNyQixLQUFLLFNBQUMsV0FBVzsyQkFDakIsS0FBSyxTQUFDLGVBQWU7MEJBQ3JCLEtBQUssU0FBQyxjQUFjO3dCQUNwQixLQUFLLFNBQUMsWUFBWTs7OztJQVpuQixxQ0FBMEM7O0lBQzFDLGtDQUErQjs7SUFDL0IscUNBQWdDOzs7OztJQUVoQyx5Q0FBNEI7O0lBRTVCLDBDQUFvRDs7SUFDcEQsa0NBQW1DOztJQUNuQyx1Q0FBMEM7O0lBQzFDLDhDQUE2RDs7SUFDN0QsdUNBQWtEOztJQUNsRCxzQ0FBZ0Q7O0lBQ2hELG9DQUEyQzs7Ozs7SUFFL0IsMkNBQTRDOzs7OztJQUN0RCxpQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT25Jbml0LCBDb21wb25lbnQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEdyaWRzdGVyQ29uZmlnLCBHcmlkc3Rlckl0ZW0gfSBmcm9tICcuLi8uLi9ncmlkc3Rlci9pbmRleCc7XHJcbmltcG9ydCB7IFJhRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3JhLmRhc2hib2FyZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUkFEYXNoYm9hcmRFdmVudEJ1cyB9IGZyb20gJy4uL3JhLmRhc2hiYXJkLmV2ZW50LmJ1cyc7XHJcbmltcG9ydCB7IFJBRXZlbnQgfSBmcm9tICcuLi9yYS5ldmVudC5lbnVtJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJDb25maWdEZWZhdWx0U2V0dGluZ3MgfSBmcm9tICcuLi9yYS5ncmlkc3Rlci5jb25maWcnO1xyXG5pbXBvcnQgeyBJV2lkZ2V0SW5mbywgSUFwcENvbmZpZyB9IGZyb20gJ0BzY2huZWlkZXJlc3Mvd2lkZ2V0ZnJhbWV3b3JrJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JhLWRhc2hib2FyZC1hcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmEuZGFzaGJvYXJkLmFyZWEuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmEuZGFzaGJvYXJkLmFyZWEuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJBRGFzaGJvYXJkQXJlYSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgd2lkZ2V0TGlzdCA9IEFycmF5PEdyaWRzdGVySXRlbT4oKTtcclxuICBwdWJsaWMgb3B0aW9uczogR3JpZHN0ZXJDb25maWc7XHJcbiAgcHVibGljIGdyaWRoZWlnaHQ6IG51bWJlciA9IDMwMDtcclxuXHJcbiAgcHJpdmF0ZSBjb25pZmdBZGRDbGljazogYW55O1xyXG5cclxuICBASW5wdXQoJ3VzZXItZGFzaGJvYXJkLWlkJykgdXNlckRhc2hib2FyZElkOiBudW1iZXI7XHJcbiAgQElucHV0KCdhcmVhLWtleScpIGFyZWFLZXk6IHN0cmluZztcclxuICBASW5wdXQoJ2dsb2JhbC1maWx0ZXInKSBnbG9iYWxGaWx0ZXI6IGFueTtcclxuICBASW5wdXQoJ2V2ZW50LWJ1cycpIHJhRGFzaGJvYXJkRXZlbnRCdXM6IFJBRGFzaGJvYXJkRXZlbnRCdXM7XHJcbiAgQElucHV0KCd3aWRnZXQtaGVpZ2h0Jykgd2lkZ2V0SGVpZ2h0OiBudW1iZXIgPSAyMDtcclxuICBASW5wdXQoJ3dpZGdldC13aWR0aCcpIHdpZGdldFdpZHRoOiBudW1iZXIgPSA1MDtcclxuICBASW5wdXQoJ2FwcC1jb25maWcnKSBhcHBDb25maWc6IElBcHBDb25maWc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogUmFEYXNoYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvKipUbyBvdmVycmlkZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzIHRvIHRoZSBncmlkc3RlciBjb250cm9sICovXHJcbiAgICBsZXQgYXJlYUNvbnRleHQgPSB0aGlzO1xyXG4gICAgdGhpcy5vcHRpb25zID0gR3JpZHN0ZXJDb25maWdEZWZhdWx0U2V0dGluZ3M7XHJcbiAgICB0aGlzLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrID0gZnVuY3Rpb24gKGl0ZW06IGFueSkge1xyXG4gICAgICBhcmVhQ29udGV4dC5zZXRBcmVhSGVpZ2h0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzICYmIGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25pZmdBZGRDbGljayA9IHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5zdWJzY3JpYmUoUkFFdmVudC5Db25maWdBZGRDbGljaykuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWRkV2lkZ2V0KGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMgJiYgdGhpcy51c2VyRGFzaGJvYXJkSWQgJiYgdGhpcy5hcmVhS2V5KSB7XHJcbiAgICAgIHRoaXMubG9hZFdpZGdldHModGhpcy51c2VyRGFzaGJvYXJkSWQsIHRoaXMuYXJlYUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uaWZnQWRkQ2xpY2sudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyByZXRyaWV2ZSB3aWRnZXRzIGJhc2VkIG9uIHVzZXJEYXNoYm9hcmRpZCBhbmQgYXJlYSBuYW1lICovXHJcbiAgbG9hZFdpZGdldHModXNlckRhc2hib2FySWQ6IG51bWJlciwgYXJlYUtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgd2lkZ2V0SW5mbyA9IDxJV2lkZ2V0SW5mbz57XHJcbiAgICAgIGRhc2hib2FyZElkOiB1c2VyRGFzaGJvYXJJZC50b1N0cmluZygpLFxyXG4gICAgICBkYXNoYm9hcmRBcmVhS2V5OiBhcmVhS2V5XHJcbiAgICB9XHJcbiAgICBsZXQgd2lkZ2V0cyA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRXaWRnZXRzQnlEYXNoYm9hcmRBcmVhKHdpZGdldEluZm8sIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUod2lkZ2V0cyA9PiB7XHJcbiAgICAgIGlmICh3aWRnZXRzKVxyXG4gICAgICAgIHRoaXMud2lkZ2V0TGlzdCA9IHRoaXMubWFwT2JqZWN0TGlzdFRvR3JpZHN0ZXJJdGVtTGlzdCh3aWRnZXRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIHNldCBBcmVhKEdyaWRzdGVyKSBoZWlnaHQgZHluYW1pY2FsbHkgYXMgd2lkZ2V0cyBhcmUgYWRkZWQvcmVtb3ZlZCAqL1xyXG4gIHNldEFyZWFIZWlnaHQoKSB7XHJcbiAgICBsZXQgYXJlYVNjcm9sbEhlaWdodCA9IDA7XHJcbiAgICBsZXQgYXJlYUhlaWdodCA9IDA7XHJcbiAgICB0aGlzLndpZGdldExpc3QuZm9yRWFjaCgodCkgPT4ge1xyXG4gICAgICBsZXQgY3VycmVudEhlaWdodCA9IHQueSArIHQucm93cztcclxuICAgICAgaWYgKGN1cnJlbnRIZWlnaHQgPiBhcmVhU2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgYXJlYVNjcm9sbEhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgYXJlYUhlaWdodCA9IGFyZWFTY3JvbGxIZWlnaHQgKiB0aGlzLm9wdGlvbnMuYXBpLmdldEN1cnJlbnRSb3dIZWlnaHQoKSArIDI7XHJcbiAgICBpZiAoYXJlYUhlaWdodCA8IDMwMCkge1xyXG4gICAgICBhcmVhSGVpZ2h0ID0gMzAwO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkaGVpZ2h0ID0gYXJlYUhlaWdodDtcclxuICB9XHJcblxyXG4gIC8qKlRvIG1hcCBJd2lkZ2V0SW5mbyBvYmplY3QgdG8gZ3JpZHN0ZXJJdGVtICovXHJcbiAgbWFwT2JqZWN0c1RvR3JpZHN0ZXJJdGVtKHdpZGdldDogSVdpZGdldEluZm8pIHtcclxuICAgIGxldCBncmlkc3Rlckl0ZW0gPSA8R3JpZHN0ZXJJdGVtPntcclxuICAgICAgY29sczogd2lkZ2V0LndpZHRoLFxyXG4gICAgICByb3dzOiB3aWRnZXQuaGVpZ2h0LFxyXG4gICAgICB4OiB3aWRnZXQucG9zaXRpb25feCxcclxuICAgICAgeTogd2lkZ2V0LnBvc2l0aW9uX3ksXHJcbiAgICAgIHdpZGdldEluZm86IHdpZGdldFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyaWRzdGVySXRlbTtcclxuICB9XHJcblxyXG4gIG1hcE9iamVjdExpc3RUb0dyaWRzdGVySXRlbUxpc3Qod2lkZ2V0TGlzdDogQXJyYXk8SVdpZGdldEluZm8+KSB7XHJcbiAgICBsZXQgd2lkZ2V0QXJyYXkgPSBBcnJheTxHcmlkc3Rlckl0ZW0+KCk7XHJcbiAgICB3aWRnZXRMaXN0LmZvckVhY2god2lkZ2V0ID0+IHtcclxuICAgICAgd2lkZ2V0QXJyYXkucHVzaCh0aGlzLm1hcE9iamVjdHNUb0dyaWRzdGVySXRlbSh3aWRnZXQpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHdpZGdldEFycmF5O1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIHJlbW92ZSBhIHdpZGdldCBpbnN0YW5jZSBmcm9tIGRhc2hib2FyZCBhbmQgdG8gc2F2ZSBpbmZvIGluIGRhdGFiYXNlICovXHJcbiAgZGVsZXRlV2lkZ2V0KHdpZGdldEluc3RhbmNlSWQ6IGFueSkge1xyXG4gICAgbGV0IHdpZGdldCA9IHRoaXMud2lkZ2V0TGlzdC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW0ud2lkZ2V0SW5mby53aWRnZXRJbnN0YW5jZUlkID09PSB3aWRnZXRJbnN0YW5jZUlkO1xyXG4gICAgfSk7XHJcbiAgICBpZiAod2lkZ2V0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy53aWRnZXRMaXN0LnNwbGljZSh0aGlzLndpZGdldExpc3QuaW5kZXhPZih3aWRnZXRbMF0pLCAxKTtcclxuICAgICAgdGhpcy5zZXRBcmVhSGVpZ2h0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipUbyBhZGQgd2lkZ2V0IGluc3RhbmNlIHRvIHRoZSBkYXRhYmFzZSB3aXRoIHRoZSBuZXh0IGF2YWlsYWJsZSBwb3NpdGlvbiBhbmQgdG8gbWFrZSBjaGFuZ2VzIGluXHJcbiAgICogZGFzaGJvYXJkIGFyZWEuXHJcbiAgICovXHJcbiAgYWRkV2lkZ2V0KGRhdGE6IGFueSkge1xyXG4gICAgbGV0IHdpZGdldGlkID0gZGF0YS53aWRnZXRJZDtcclxuICAgIGRhdGEuaGVpZ2h0ID0gdGhpcy53aWRnZXRIZWlnaHQ7XHJcbiAgICBkYXRhLndpZHRoID0gdGhpcy53aWRnZXRXaWR0aDtcclxuICAgIGRhdGEucG9zaXRpb25feCA9IDA7XHJcbiAgICBkYXRhLnBvc2l0aW9uX3kgPSAwO1xyXG4gICAgbGV0IGdyaWRzdGVySXRlbSA9IHRoaXMubWFwT2JqZWN0c1RvR3JpZHN0ZXJJdGVtKGRhdGEpO1xyXG4gICAgZ3JpZHN0ZXJJdGVtID0gdGhpcy5vcHRpb25zLmFwaS5nZXRGaXJzdFBvc3NpYmxlUG9zaXRpb24oZ3JpZHN0ZXJJdGVtKTtcclxuICAgIGRhdGEucG9zaXRpb25feCA9IGdyaWRzdGVySXRlbS54O1xyXG4gICAgZGF0YS5wb3NpdGlvbl95ID0gZ3JpZHN0ZXJJdGVtLnk7XHJcbiAgICBkYXRhLmRhc2hib2FyZEFyZWFLZXkgPSB0aGlzLmFyZWFLZXk7XHJcbiAgICBkYXRhLmRhc2hib2FyZElkID0gdGhpcy51c2VyRGFzaGJvYXJkSWQ7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuYWRkV2lkZ2V0KGRhdGEsIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUod2lkZ2V0ID0+IHtcclxuICAgICAgZ3JpZHN0ZXJJdGVtID0gdGhpcy5tYXBPYmplY3RzVG9Hcmlkc3Rlckl0ZW0od2lkZ2V0KTtcclxuICAgICAgdGhpcy53aWRnZXRMaXN0LnB1c2goZ3JpZHN0ZXJJdGVtKTtcclxuICAgICAgdGhpcy5zZXRBcmVhSGVpZ2h0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59Il19
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Input, ViewChild, ElementRef, EventEmitter, Output } from '@angular/core';
|
|
6
|
+
import { RaDashboardService } from './../ra.dashboard.service';
|
|
7
|
+
import { RADashboardEventBus } from '../ra.dashbard.event.bus';
|
|
8
|
+
import { RAEvent, RAEventKey } from '../ra.event.enum';
|
|
9
|
+
export class RAWidgetContainer {
|
|
10
|
+
/**
|
|
11
|
+
* @param {?} dashboardService
|
|
12
|
+
*/
|
|
13
|
+
constructor(dashboardService) {
|
|
14
|
+
this.dashboardService = dashboardService;
|
|
15
|
+
this.isIEOrEdge = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
|
|
16
|
+
this.widgetDeleted = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @param {?} changes
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
22
|
+
ngOnChanges(changes) {
|
|
23
|
+
if (changes.raDashboardEventBus && changes.raDashboardEventBus.currentValue != changes.raDashboardEventBus.previousValue) {
|
|
24
|
+
this.configChanged = this.raDashboardEventBus.subscribeWithKey(RAEvent.ConfigChanged, RAEventKey.WidgetInstanceId, this.data.widgetInfo.widgetInstanceId.toString()).subscribe((/**
|
|
25
|
+
* @param {?} e
|
|
26
|
+
* @return {?}
|
|
27
|
+
*/
|
|
28
|
+
(e) => {
|
|
29
|
+
this.configChangeEventHandler(e);
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
if (this.widgetElement && changes.globalFilter.currentValue != changes.globalFilter.previousValue) {
|
|
33
|
+
this.refreshWidget(this.data.widgetInfo);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @return {?}
|
|
38
|
+
*/
|
|
39
|
+
ngAfterViewInit() {
|
|
40
|
+
setTimeout((/**
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
() => {
|
|
44
|
+
this.loadWidget(this.data.widgetInfo);
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @return {?}
|
|
49
|
+
*/
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
this.configChanged.unsubscribe();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* To Edit current widget configuration
|
|
55
|
+
* @return {?}
|
|
56
|
+
*/
|
|
57
|
+
editWidget() {
|
|
58
|
+
this.raDashboardEventBus.publish(RAEvent.WidgetEditClicked, this.data.widgetInfo);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* To Delete current widget from DOM
|
|
62
|
+
* @return {?}
|
|
63
|
+
*/
|
|
64
|
+
deleteWidget() {
|
|
65
|
+
this.dashboardService.deleteWidget(this.data.widgetInfo, this.appConfig).subscribe((/**
|
|
66
|
+
* @param {?} status
|
|
67
|
+
* @return {?}
|
|
68
|
+
*/
|
|
69
|
+
status => {
|
|
70
|
+
/** @type {?} */
|
|
71
|
+
let response = status;
|
|
72
|
+
if (true) {
|
|
73
|
+
this.widgetDeleted.emit(this.data.widgetInfo.widgetInstanceId);
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* To Move or change position if current widget container
|
|
79
|
+
* @param {?} widgetInfo
|
|
80
|
+
* @return {?}
|
|
81
|
+
*/
|
|
82
|
+
moveWidget(widgetInfo) {
|
|
83
|
+
this.dashboardService.moveWidget(widgetInfo);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* To Copy Current widget with same configuration
|
|
87
|
+
* @param {?} widgetInfo
|
|
88
|
+
* @return {?}
|
|
89
|
+
*/
|
|
90
|
+
copyWidget(widgetInfo) {
|
|
91
|
+
this.dashboardService.copyWidget(widgetInfo);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* To Collapse current widget
|
|
95
|
+
* @param {?} widgetInfo
|
|
96
|
+
* @return {?}
|
|
97
|
+
*/
|
|
98
|
+
collapse(widgetInfo) {
|
|
99
|
+
this.dashboardService.collapse(widgetInfo);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @param {?} config
|
|
103
|
+
* @return {?}
|
|
104
|
+
*/
|
|
105
|
+
configChangeEventHandler(config) {
|
|
106
|
+
console.log('in config change config');
|
|
107
|
+
console.log(config);
|
|
108
|
+
this.data.widgetInfo.widgetConfigInfo.config = config;
|
|
109
|
+
this.refreshWidget(this.data.widgetInfo);
|
|
110
|
+
this.updateWidget(this.data.widgetInfo);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @param {?} widgetInfo
|
|
114
|
+
* @return {?}
|
|
115
|
+
*/
|
|
116
|
+
updateWidget(widgetInfo) {
|
|
117
|
+
this.dashboardService.updateWidget(widgetInfo, this.appConfig);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* To load external custom element to the widget container
|
|
121
|
+
* @param {?} widgetInfo
|
|
122
|
+
* @return {?}
|
|
123
|
+
*/
|
|
124
|
+
loadWidget(widgetInfo) {
|
|
125
|
+
/** @type {?} */
|
|
126
|
+
let widgetConfigFilter = (/** @type {?} */ ({
|
|
127
|
+
config: widgetInfo.widgetConfigInfo.config,
|
|
128
|
+
globalFilter: this.globalFilter
|
|
129
|
+
}));
|
|
130
|
+
/** @type {?} */
|
|
131
|
+
let widgetCOntainer = this;
|
|
132
|
+
this.dashboardService.loadExternalScript(widgetInfo.scriptUrl, (/**
|
|
133
|
+
* @return {?}
|
|
134
|
+
*/
|
|
135
|
+
() => {
|
|
136
|
+
this.widgetElement = document.createElement(widgetInfo.customTag);
|
|
137
|
+
this.ctlWidget.nativeElement.appendChild(this.widgetElement);
|
|
138
|
+
setTimeout((/**
|
|
139
|
+
* @return {?}
|
|
140
|
+
*/
|
|
141
|
+
() => {
|
|
142
|
+
widgetCOntainer.widgetElement.loadContent(widgetConfigFilter, this.appConfig);
|
|
143
|
+
}), 2000);
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* To refresh widget on input config changes
|
|
148
|
+
* @param {?} widgetInfo
|
|
149
|
+
* @return {?}
|
|
150
|
+
*/
|
|
151
|
+
refreshWidget(widgetInfo) {
|
|
152
|
+
/** @type {?} */
|
|
153
|
+
let widgetConfigFilter = (/** @type {?} */ ({
|
|
154
|
+
config: widgetInfo.widgetConfigInfo.config,
|
|
155
|
+
globalFilter: this.globalFilter
|
|
156
|
+
}));
|
|
157
|
+
this.widgetElement.loadContent(widgetConfigFilter, this.appConfig);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
RAWidgetContainer.decorators = [
|
|
161
|
+
{ type: Component, args: [{
|
|
162
|
+
selector: 'ra-widget-container',
|
|
163
|
+
template: "<div class=\"wc-wrapper\">\r\n <div class=\"wcheader\">\r\n <div class=\"col-md-12 wc-mover\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11 float-left\" style=\"width:96%;\">{{data.widgetInfo.title?data.widgetInfo.title:\"Title\"}}\r\n </div>\r\n <div class=\"col-md-1\">\r\n <div class=\"float-right\">\r\n <div class=\"dropdown\">\r\n <div class=\"dropbtn\"> <i class=\"fal fa-cog\"></i></div>\r\n <div class=\"dropdown-content\">\r\n <a (click)=\"editWidget()\">Edit</a>\r\n <a (click)=\"copyWidget(data)\">Copy</a>\r\n <a (click)=\"moveWidget(data)\">Move</a>\r\n <a (click)=\"collapse(data)\">Collapse</a>\r\n <hr class=\"hr\" style=\"\">\r\n <a (click)=\"deleteWidget()\">Delete</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\">\r\n <div class=\"wcBodyBorder\" #ctlWidget></div>\r\n </div>\r\n</div>\r\n",
|
|
164
|
+
styles: [".wcheader{width:100%;height:26px;background:#fff;color:#3dcd58;padding:7px 7px 0 6px;font-family:\"Arial Rounded MT\";border-bottom:1px solid;border-color:#fff;font-size:16px}.wc-mover{cursor:all-scroll}.wcBody{padding:8px}.wcBodyBorder{border:1px dashed #e6e2e2}.sp_icon{float:left;margin:0 15% 0 0}.dropbtn{cursor:pointer;color:#42b4e6}.dropdown{display:none;position:relative}.dropdown-content{display:none;position:absolute;right:0;background-color:#f9f9f9;min-width:100px;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:1;font-size:12px;font-family:\"Arial Rounded MT\"}.dropdown-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.dropdown-content a:hover{background-color:#f1f1f1}.dropdown:hover .dropdown-content,.wc-wrapper:hover .dropdown{display:block}.dropdown:hover .dropbtn{color:#2b7797}.hr{border:0;border-top:1px solid rgba(0,0,0,.1)}"]
|
|
165
|
+
}] }
|
|
166
|
+
];
|
|
167
|
+
/** @nocollapse */
|
|
168
|
+
RAWidgetContainer.ctorParameters = () => [
|
|
169
|
+
{ type: RaDashboardService }
|
|
170
|
+
];
|
|
171
|
+
RAWidgetContainer.propDecorators = {
|
|
172
|
+
ctlWidget: [{ type: ViewChild, args: ['ctlWidget', { static: false },] }],
|
|
173
|
+
widgetInstanceId: [{ type: Input, args: ['widget-instance-id',] }],
|
|
174
|
+
globalFilter: [{ type: Input, args: ['global-filter',] }],
|
|
175
|
+
data: [{ type: Input, args: ['data',] }],
|
|
176
|
+
raDashboardEventBus: [{ type: Input, args: ['event-bus',] }],
|
|
177
|
+
appConfig: [{ type: Input, args: ['app-config',] }],
|
|
178
|
+
widgetDeleted: [{ type: Output }]
|
|
179
|
+
};
|
|
180
|
+
if (false) {
|
|
181
|
+
/**
|
|
182
|
+
* @type {?}
|
|
183
|
+
* @private
|
|
184
|
+
*/
|
|
185
|
+
RAWidgetContainer.prototype.widgetElement;
|
|
186
|
+
/**
|
|
187
|
+
* @type {?}
|
|
188
|
+
* @private
|
|
189
|
+
*/
|
|
190
|
+
RAWidgetContainer.prototype.configChanged;
|
|
191
|
+
/**
|
|
192
|
+
* @type {?}
|
|
193
|
+
* @private
|
|
194
|
+
*/
|
|
195
|
+
RAWidgetContainer.prototype.isIEOrEdge;
|
|
196
|
+
/** @type {?} */
|
|
197
|
+
RAWidgetContainer.prototype.ctlWidget;
|
|
198
|
+
/** @type {?} */
|
|
199
|
+
RAWidgetContainer.prototype.widgetInstanceId;
|
|
200
|
+
/** @type {?} */
|
|
201
|
+
RAWidgetContainer.prototype.globalFilter;
|
|
202
|
+
/** @type {?} */
|
|
203
|
+
RAWidgetContainer.prototype.data;
|
|
204
|
+
/** @type {?} */
|
|
205
|
+
RAWidgetContainer.prototype.raDashboardEventBus;
|
|
206
|
+
/** @type {?} */
|
|
207
|
+
RAWidgetContainer.prototype.appConfig;
|
|
208
|
+
/** @type {?} */
|
|
209
|
+
RAWidgetContainer.prototype.widgetDeleted;
|
|
210
|
+
/**
|
|
211
|
+
* @type {?}
|
|
212
|
+
* @private
|
|
213
|
+
*/
|
|
214
|
+
RAWidgetContainer.prototype.dashboardService;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS13aWRnZXQtY29udGFpbmVyL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQW9FLE1BQU0sZUFBZSxDQUFDO0FBQ3hLLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFTdkQsTUFBTSxPQUFPLGlCQUFpQjs7OztJQWdCNUIsWUFBb0IsZ0JBQW9DO1FBQXBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFaaEQsZUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBVXZFLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUdyRCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUU7WUFDeEgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdC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MUMsaUNBQXlCOztJQUN6QixnREFBNkQ7O0lBQzdELHNDQUEyQzs7SUFFM0MsMENBQXFEOzs7OztJQUV6Qyw2Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgU2ltcGxlQ2hhbmdlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi8uLi9yYS5kYXNoYm9hcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJBRGFzaGJvYXJkRXZlbnRCdXMgfSBmcm9tICcuLi9yYS5kYXNoYmFyZC5ldmVudC5idXMnO1xyXG5pbXBvcnQgeyBSQUV2ZW50LCBSQUV2ZW50S2V5IH0gZnJvbSAnLi4vcmEuZXZlbnQuZW51bSc7XHJcbmltcG9ydCB7IElBcHBDb25maWcsIElXaWRnZXRDb25maWdGaWx0ZXIgfSBmcm9tICdAc2NobmVpZGVyZXNzL3dpZGdldGZyYW1ld29yayc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdyYS13aWRnZXQtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJBV2lkZ2V0Q29udGFpbmVyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIHdpZGdldEVsZW1lbnQ6IGFueTtcclxuICBwcml2YXRlIGNvbmZpZ0NoYW5nZWQ6IGFueTtcclxuICBwcml2YXRlIGlzSUVPckVkZ2UgPSAvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY3RsV2lkZ2V0JywgeyBzdGF0aWM6IGZhbHNlIH0pIGN0bFdpZGdldDogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KCd3aWRnZXQtaW5zdGFuY2UtaWQnKSB3aWRnZXRJbnN0YW5jZUlkOiBudW1iZXI7XHJcbiAgQElucHV0KCdnbG9iYWwtZmlsdGVyJykgZ2xvYmFsRmlsdGVyOiBhbnk7XHJcbiAgQElucHV0KCdkYXRhJykgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgnZXZlbnQtYnVzJykgcmFEYXNoYm9hcmRFdmVudEJ1czogUkFEYXNoYm9hcmRFdmVudEJ1cztcclxuICBASW5wdXQoJ2FwcC1jb25maWcnKSBhcHBDb25maWc6IElBcHBDb25maWc7XHJcblxyXG4gIEBPdXRwdXQoKSB3aWRnZXREZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogUmFEYXNoYm9hcmRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzICYmIGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgdGhpcy5jb25maWdDaGFuZ2VkID0gdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnN1YnNjcmliZVdpdGhLZXkoUkFFdmVudC5Db25maWdDaGFuZ2VkLCBSQUV2ZW50S2V5LldpZGdldEluc3RhbmNlSWQsIHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQudG9TdHJpbmcoKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25maWdDaGFuZ2VFdmVudEhhbmRsZXIoZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0RWxlbWVudCAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlci5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5nbG9iYWxGaWx0ZXIucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICB0aGlzLnJlZnJlc2hXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKiBUbyBFZGl0IGN1cnJlbnQgd2lkZ2V0IGNvbmZpZ3VyYXRpb24qL1xyXG4gIHB1YmxpYyBlZGl0V2lkZ2V0KCkge1xyXG4gICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5XaWRnZXRFZGl0Q2xpY2tlZCwgdGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIERlbGV0ZSBjdXJyZW50IHdpZGdldCBmcm9tIERPTSovXHJcbiAgcHVibGljIGRlbGV0ZVdpZGdldCgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5kZWxldGVXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8sIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgbGV0IHJlc3BvbnNlID0gc3RhdHVzO1xyXG4gICAgICBpZiAodHJ1ZSkgeyAgXHJcbiAgICAgICAgdGhpcy53aWRnZXREZWxldGVkLmVtaXQodGhpcy5kYXRhLndpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIE1vdmUgb3IgY2hhbmdlIHBvc2l0aW9uIGlmIGN1cnJlbnQgd2lkZ2V0IGNvbnRhaW5lciovXHJcbiAgcHVibGljIG1vdmVXaWRnZXQod2lkZ2V0SW5mbzogYW55KSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UubW92ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBDb3B5IEN1cnJlbnQgd2lkZ2V0IHdpdGggc2FtZSBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgY29weVdpZGdldCh3aWRnZXRJbmZvOiBhbnkpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jb3B5V2lkZ2V0KHdpZGdldEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIENvbGxhcHNlIGN1cnJlbnQgd2lkZ2V0Ki9cclxuICBwdWJsaWMgY29sbGFwc2Uod2lkZ2V0SW5mbzogYW55KSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY29sbGFwc2Uod2lkZ2V0SW5mbyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uZmlnQ2hhbmdlRXZlbnRIYW5kbGVyKGNvbmZpZykge1xyXG4gICAgY29uc29sZS5sb2coJ2luIGNvbmZpZyBjaGFuZ2UgY29uZmlnJyk7XHJcbiAgICBjb25zb2xlLmxvZyhjb25maWcpO1xyXG4gICAgXHJcbiAgICBcclxuICAgIHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldENvbmZpZ0luZm8uY29uZmlnID0gY29uZmlnO1xyXG4gICAgdGhpcy5yZWZyZXNoV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIHRoaXMudXBkYXRlV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVdpZGdldCh3aWRnZXRJbmZvOiBhbnkpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS51cGRhdGVXaWRnZXQod2lkZ2V0SW5mbywgdGhpcy5hcHBDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqICBUbyBsb2FkIGV4dGVybmFsIGN1c3RvbSBlbGVtZW50IHRvIHRoZSB3aWRnZXQgY29udGFpbmVyKi9cclxuICBsb2FkV2lkZ2V0KHdpZGdldEluZm86IGFueSkge1xyXG4gICAgbGV0IHdpZGdldENvbmZpZ0ZpbHRlciA9IDxJV2lkZ2V0Q29uZmlnRmlsdGVyPntcclxuICAgICAgY29uZmlnOiB3aWRnZXRJbmZvLndpZGdldENvbmZpZ0luZm8uY29uZmlnLFxyXG4gICAgICBnbG9iYWxGaWx0ZXI6IHRoaXMuZ2xvYmFsRmlsdGVyXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHdpZGdldENPbnRhaW5lciA9IHRoaXM7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UubG9hZEV4dGVybmFsU2NyaXB0KHdpZGdldEluZm8uc2NyaXB0VXJsLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMud2lkZ2V0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQod2lkZ2V0SW5mby5jdXN0b21UYWcpO1xyXG4gICAgICB0aGlzLmN0bFdpZGdldC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2lkZ2V0RWxlbWVudCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHdpZGdldENPbnRhaW5lci53aWRnZXRFbGVtZW50LmxvYWRDb250ZW50KHdpZGdldENvbmZpZ0ZpbHRlciwgdGhpcy5hcHBDb25maWcpO1xyXG4gICAgICB9LCAyMDAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIHJlZnJlc2ggd2lkZ2V0IG9uIGlucHV0IGNvbmZpZyBjaGFuZ2VzICovXHJcbiAgcmVmcmVzaFdpZGdldCh3aWRnZXRJbmZvOiBhbnkpIHtcclxuICAgIGxldCB3aWRnZXRDb25maWdGaWx0ZXIgPSA8SVdpZGdldENvbmZpZ0ZpbHRlcj57XHJcbiAgICAgIGNvbmZpZzogd2lkZ2V0SW5mby53aWRnZXRDb25maWdJbmZvLmNvbmZpZyxcclxuICAgICAgZ2xvYmFsRmlsdGVyOiB0aGlzLmdsb2JhbEZpbHRlclxyXG4gICAgfVxyXG4gICAgdGhpcy53aWRnZXRFbGVtZW50LmxvYWRDb250ZW50KHdpZGdldENvbmZpZ0ZpbHRlciwgdGhpcy5hcHBDb25maWcpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Input } from '@angular/core';
|
|
6
|
+
/**
|
|
7
|
+
* @abstract
|
|
8
|
+
*/
|
|
9
|
+
export class RaBaseDashboardFilter {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.getAllFilterConfig = (/**
|
|
12
|
+
* @param {?} async
|
|
13
|
+
* @return {?}
|
|
14
|
+
*/
|
|
15
|
+
(async) => {
|
|
16
|
+
return this.getFilterConfig();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
RaBaseDashboardFilter.propDecorators = {
|
|
21
|
+
getAllFilterConfig: [{ type: Input }]
|
|
22
|
+
};
|
|
23
|
+
if (false) {
|
|
24
|
+
/**
|
|
25
|
+
* @type {?}
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
RaBaseDashboardFilter.prototype.getAllFilterConfig;
|
|
29
|
+
/**
|
|
30
|
+
* @abstract
|
|
31
|
+
* @return {?}
|
|
32
|
+
*/
|
|
33
|
+
RaBaseDashboardFilter.prototype.getFilterConfig = function () { };
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEuYmFzZS5kYXNoYm9hcmQuZmlsdGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNjaG5laWRlcmVzcy9kYXNoYm9hcmRmcmFtZXdvcmsvIiwic291cmNlcyI6WyJsaWIvcmEuYmFzZS5kYXNoYm9hcmQuZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBQ3RDLE1BQU0sT0FBZ0IscUJBQXFCO0lBQTNDO1FBRW1CLHVCQUFrQjs7OztRQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUMsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxFQUFBO0lBSUgsQ0FBQzs7O2lDQU5FLEtBQUs7Ozs7Ozs7SUFBTixtREFFQzs7Ozs7SUFDRCxrRUFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmFCYXNlRGFzaGJvYXJkRmlsdGVyIHtcclxuXHJcbiAgQElucHV0KCkgcHJpdmF0ZSBnZXRBbGxGaWx0ZXJDb25maWcgPSAoYXN5bmMpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdldEZpbHRlckNvbmZpZygpO1xyXG4gIH1cclxuICBhYnN0cmFjdCBnZXRGaWx0ZXJDb25maWcoKTogYW55O1xyXG5cclxuXHJcbn0iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Input } from '@angular/core';
|
|
6
|
+
/**
|
|
7
|
+
* @abstract
|
|
8
|
+
*/
|
|
9
|
+
export class RaBaseDashboardTemplate {
|
|
10
|
+
/**
|
|
11
|
+
* @param {?} ngZone
|
|
12
|
+
*/
|
|
13
|
+
constructor(ngZone) {
|
|
14
|
+
this.ngZone = ngZone;
|
|
15
|
+
this.initialize = (/**
|
|
16
|
+
* @param {?} eventBus
|
|
17
|
+
* @param {?} userDashboardId
|
|
18
|
+
* @param {?} appConfig
|
|
19
|
+
* @return {?}
|
|
20
|
+
*/
|
|
21
|
+
(eventBus, userDashboardId, appConfig) => {
|
|
22
|
+
this.ngZone.run((/**
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
() => {
|
|
26
|
+
this.userDashboardId = userDashboardId;
|
|
27
|
+
this.appConfig = appConfig;
|
|
28
|
+
this.raDashboardEventBus = eventBus;
|
|
29
|
+
}));
|
|
30
|
+
this.init();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
RaBaseDashboardTemplate.propDecorators = {
|
|
35
|
+
dashboardId: [{ type: Input, args: ['dashboard-id',] }],
|
|
36
|
+
globalFilter: [{ type: Input, args: ['global-filter',] }],
|
|
37
|
+
initialize: [{ type: Input }]
|
|
38
|
+
};
|
|
39
|
+
if (false) {
|
|
40
|
+
/** @type {?} */
|
|
41
|
+
RaBaseDashboardTemplate.prototype.userDashboardId;
|
|
42
|
+
/** @type {?} */
|
|
43
|
+
RaBaseDashboardTemplate.prototype.raDashboardEventBus;
|
|
44
|
+
/** @type {?} */
|
|
45
|
+
RaBaseDashboardTemplate.prototype.appConfig;
|
|
46
|
+
/** @type {?} */
|
|
47
|
+
RaBaseDashboardTemplate.prototype.dashboardId;
|
|
48
|
+
/** @type {?} */
|
|
49
|
+
RaBaseDashboardTemplate.prototype.globalFilter;
|
|
50
|
+
/** @type {?} */
|
|
51
|
+
RaBaseDashboardTemplate.prototype.initialize;
|
|
52
|
+
/**
|
|
53
|
+
* @type {?}
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
RaBaseDashboardTemplate.prototype.ngZone;
|
|
57
|
+
/**
|
|
58
|
+
* @abstract
|
|
59
|
+
* @return {?}
|
|
60
|
+
*/
|
|
61
|
+
RaBaseDashboardTemplate.prototype.init = function () { };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEuYmFzZS5kYXNoYm9hcmQudGVtcGxhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS5iYXNlLmRhc2hib2FyZC50ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7QUFHeEUsTUFBTSxPQUFnQix1QkFBdUI7Ozs7SUFTekMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHekIsZUFBVTs7Ozs7O1FBQUcsQ0FBQyxRQUE2QixFQUFFLGVBQXVCLEVBQUMsU0FBb0IsRUFBRSxFQUFFO1lBQ2xHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7O1lBQUMsR0FBRyxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBQyxTQUFTLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUM7WUFDeEMsQ0FBQyxFQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxFQUFBO0lBVEQsQ0FBQzs7OzBCQUpBLEtBQUssU0FBQyxjQUFjOzJCQUNwQixLQUFLLFNBQUMsZUFBZTt5QkFLckIsS0FBSzs7OztJQVZOLGtEQUErQjs7SUFDL0Isc0RBQWdEOztJQUNoRCw0Q0FBNEI7O0lBRTVCLDhDQUEyQzs7SUFDM0MsK0NBQTBDOztJQUsxQyw2Q0FPQzs7Ozs7SUFWVyx5Q0FBc0I7Ozs7O0lBWWxDLHlEQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSQURhc2hib2FyZEV2ZW50QnVzIH0gZnJvbSAnLi9yYS5kYXNoYmFyZC5ldmVudC5idXMnO1xyXG5pbXBvcnQgeyBJQXBwQ29uZmlnIH0gZnJvbSAnQHNjaG5laWRlcmVzcy93aWRnZXRmcmFtZXdvcmsnO1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmFCYXNlRGFzaGJvYXJkVGVtcGxhdGUge1xyXG5cclxuICAgIHB1YmxpYyB1c2VyRGFzaGJvYXJkSWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyByYURhc2hib2FyZEV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzO1xyXG4gICAgcHVibGljIGFwcENvbmZpZzpJQXBwQ29uZmlnO1xyXG5cclxuICAgIEBJbnB1dCgnZGFzaGJvYXJkLWlkJykgZGFzaGJvYXJkSWQ6IG51bWJlcjtcclxuICAgIEBJbnB1dCgnZ2xvYmFsLWZpbHRlcicpIGdsb2JhbEZpbHRlcjogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBpbml0aWFsaXplID0gKGV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzLCB1c2VyRGFzaGJvYXJkSWQ6IG51bWJlcixhcHBDb25maWc6SUFwcENvbmZpZykgPT4ge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7ICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLnVzZXJEYXNoYm9hcmRJZCA9IHVzZXJEYXNoYm9hcmRJZDtcclxuICAgICAgICAgICAgdGhpcy5hcHBDb25maWc9YXBwQ29uZmlnO1xyXG4gICAgICAgICAgICB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMgPSBldmVudEJ1cztcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhYnN0cmFjdCBpbml0KCk6IHZvaWQ7XHJcblxyXG5cclxufSJdfQ==
|