@ogidor/dashboard 1.0.2 → 1.0.4
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 +283 -48
- package/app/app.module.d.ts +7 -9
- package/app/custom-grid.component.d.ts +93 -0
- package/app/dashboard-state.service.d.ts +54 -33
- package/app/dashboard.component.d.ts +27 -59
- package/app/models.d.ts +18 -38
- package/app/widget-renderer.component.d.ts +5 -32
- package/esm2020/app/app.module.mjs +21 -29
- package/esm2020/app/custom-grid.component.mjs +509 -0
- package/esm2020/app/dashboard-state.service.mjs +228 -158
- package/esm2020/app/dashboard.component.mjs +198 -602
- package/esm2020/app/models.mjs +1 -1
- package/esm2020/app/widget-renderer.component.mjs +41 -121
- package/esm2020/public-api.mjs +5 -4
- package/fesm2015/ogidor-dashboard.mjs +988 -909
- package/fesm2015/ogidor-dashboard.mjs.map +1 -1
- package/fesm2020/ogidor-dashboard.mjs +982 -898
- package/fesm2020/ogidor-dashboard.mjs.map +1 -1
- package/package.json +8 -12
- package/public-api.d.ts +3 -2
package/esm2020/app/models.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW5nbGUgd2lkZ2V0IG9uIHRoZSBncmlkLlxuICogVGhlIGxpYiBpcyBjb250ZW50LWFnbm9zdGljIOKAlCBgZGF0YWAgY2FuIGhvbGQgYW55dGhpbmcgdGhlIGNvbnN1bWVyIG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldCB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBHcmlkIGNvbHVtbiAoMC1iYXNlZCkgKi9cbiAgeDogbnVtYmVyO1xuICAvKiogR3JpZCByb3cgKDAtYmFzZWQpICovXG4gIHk6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBjb2x1bW5zIHRoaXMgd2lkZ2V0IHNwYW5zICovXG4gIGNvbHM6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiByb3dzIHRoaXMgd2lkZ2V0IHNwYW5zICovXG4gIHJvd3M6IG51bWJlcjtcbiAgLyoqIERpc3BsYXkgdGl0bGUgc2hvd24gaW4gdGhlIGNhcmQgaGVhZGVyICovXG4gIHRpdGxlOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBwZXItd2lkZ2V0IGNhcmQgYmFja2dyb3VuZCBjb2xvci4gT3ZlcnJpZGVzIHRoZSBnbG9iYWwgdGhlbWUgd2lkZ2V0Q2FyZENvbG9yLiAqL1xuICBjYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBcmJpdHJhcnkgY29uc3VtZXIgZGF0YS5cbiAgICogVGhlIGxpYiBzdG9yZXMgYW5kIHN5bmNzIHRoaXMgYnV0IG5ldmVyIGluc3BlY3RzIGl0LlxuICAgKi9cbiAgZGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB3aWRnZXRzOiBXaWRnZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRDb25maWcge1xuICBwYWdlczogUGFnZVtdO1xuICBhY3RpdmVQYWdlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGVtZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZGFzaGJvYXJkLlxuICogQWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsIOKAlCBhbnkgdmFsdWVzIG5vdCBwcm92aWRlZCB3aWxsIGZhbGwgYmFjayB0byBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRUaGVtZSB7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVyYWxsIGRhc2hib2FyZCB3cmFwcGVyLiBEZWZhdWx0OiBgIzAwMDAwMGAgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgbWFpbiBjb250ZW50IHBhbmVsLiBEZWZhdWx0OiBgIzFjMWMxZWAgKi9cbiAgcGFuZWxDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgaW5kaXZpZHVhbCB3aWRnZXQgY2FyZHMuIERlZmF1bHQ6IGAjMmMyYzJlYCAqL1xuICB3aWRnZXRDYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBQcmltYXJ5IGZvcmVncm91bmQvdGV4dCBjb2xvci4gRGVmYXVsdDogYCM4ZThlOTNgICovXG4gIGZvcmVDb2xvcj86IHN0cmluZztcbiAgLyoqIFByaW1hcnkgYWNjZW50IGNvbG9yIChhY3RpdmUgdGFicywgYnV0dG9ucywgZXRjLikuIERlZmF1bHQ6IGAjMGE4NGZmYCAqL1xuICBhY2NlbnRDb2xvcj86IHN0cmluZztcbiAgLyoqIERhbmdlciBjb2xvciB1c2VkIG9uIHJlbW92ZS13aWRnZXQgYnV0dG9uIGhvdmVyLiBEZWZhdWx0OiBgI2ZmNDUzYWAgKi9cbiAgZGFuZ2VyQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBGb250IGZhbWlseSBhcHBsaWVkIHRvIHRoZSB3aG9sZSBkYXNoYm9hcmQuIERlZmF1bHQ6IHN5c3RlbS11aSBzdGFjayAqL1xuICBmb250RmFtaWx5Pzogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,163 +1,83 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { Subscription } from 'rxjs';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./dashboard-state.service";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "ng-apexcharts";
|
|
7
|
-
const DEFAULT_CHART_COLORS = ['#0a84ff', '#30d158', '#ff9f0a', '#bf5af2', '#ff453a'];
|
|
8
|
-
const DEFAULT_FORECOLOR = '#8e8e93';
|
|
9
|
-
const DEFAULT_CARD_BG = '#2c2c2e';
|
|
10
3
|
export class WidgetRendererComponent {
|
|
11
|
-
constructor(
|
|
12
|
-
this.stateService = stateService;
|
|
4
|
+
constructor() {
|
|
13
5
|
this.editRequested = new EventEmitter();
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.applyStyles();
|
|
19
|
-
this.initChart();
|
|
20
|
-
this.subs.add(this.stateService.widgetData$.subscribe(({ widgetId, data }) => {
|
|
21
|
-
if (widgetId === this.widget.id) {
|
|
22
|
-
this.widget = { ...this.widget, data };
|
|
23
|
-
this.initChart();
|
|
24
|
-
}
|
|
25
|
-
}));
|
|
6
|
+
this.removeRequested = new EventEmitter();
|
|
7
|
+
this.cardBg = 'var(--dash-card-bg, #2c2c2e)';
|
|
26
8
|
}
|
|
27
9
|
ngOnChanges(changes) {
|
|
28
|
-
if (changes['theme']) {
|
|
29
|
-
this.
|
|
30
|
-
this.initChart();
|
|
31
|
-
}
|
|
32
|
-
if (changes['widget'] && !changes['widget'].firstChange) {
|
|
33
|
-
this.applyStyles();
|
|
34
|
-
this.initChart();
|
|
10
|
+
if (changes['widget'] || changes['theme']) {
|
|
11
|
+
this.cardBg = this.widget?.cardColor ?? 'var(--dash-card-bg, #2c2c2e)';
|
|
35
12
|
}
|
|
36
13
|
}
|
|
37
|
-
ngOnDestroy() { this.subs.unsubscribe(); }
|
|
38
|
-
applyStyles() {
|
|
39
|
-
this.cardStyles = {
|
|
40
|
-
background: this.widget.cardColor ?? 'var(--dash-card-bg)'
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
resolvedColors() {
|
|
44
|
-
return this.widget.colors ?? this.theme?.chartColors ?? DEFAULT_CHART_COLORS;
|
|
45
|
-
}
|
|
46
|
-
initChart() {
|
|
47
|
-
const isDonut = this.widget.type === 'DONUT';
|
|
48
|
-
const colors = this.resolvedColors();
|
|
49
|
-
const foreColor = this.theme?.chartForeColor ?? DEFAULT_FORECOLOR;
|
|
50
|
-
const lineBarData = !isDonut ? this.widget.data : null;
|
|
51
|
-
const donutData = isDonut ? this.widget.data : null;
|
|
52
|
-
const categories = lineBarData?.categories ?? [];
|
|
53
|
-
const donutLabels = donutData?.labels ?? ['A', 'B', 'C', 'D', 'E'];
|
|
54
|
-
this.chartOptions = {
|
|
55
|
-
series: this.widget.data.series,
|
|
56
|
-
chart: {
|
|
57
|
-
width: '100%', height: '100%',
|
|
58
|
-
type: this.widget.type.toLowerCase(),
|
|
59
|
-
toolbar: { show: false },
|
|
60
|
-
animations: { enabled: true, speed: 400 },
|
|
61
|
-
background: 'transparent', foreColor,
|
|
62
|
-
parentHeightOffset: 0, sparkline: { enabled: false },
|
|
63
|
-
},
|
|
64
|
-
theme: { mode: 'dark' },
|
|
65
|
-
colors,
|
|
66
|
-
stroke: { curve: 'smooth', width: isDonut ? 0 : 3 },
|
|
67
|
-
dataLabels: { enabled: false },
|
|
68
|
-
legend: { position: 'bottom', labels: { colors: foreColor } },
|
|
69
|
-
tooltip: { theme: 'dark' },
|
|
70
|
-
plotOptions: {
|
|
71
|
-
pie: { donut: { size: '70%', labels: { show: true, total: { show: true, label: 'Total', color: '#fff' } } } },
|
|
72
|
-
bar: { borderRadius: 8, columnWidth: '50%' }
|
|
73
|
-
},
|
|
74
|
-
xaxis: {
|
|
75
|
-
categories: categories.length ? categories : undefined,
|
|
76
|
-
labels: { style: { colors: foreColor } },
|
|
77
|
-
axisBorder: { show: false }, axisTicks: { show: false }
|
|
78
|
-
},
|
|
79
|
-
yaxis: { labels: { style: { colors: foreColor } } },
|
|
80
|
-
labels: isDonut ? donutLabels : undefined,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
onRemove() { this.onRemoveWidget(this.widget.id); }
|
|
84
14
|
}
|
|
85
|
-
WidgetRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetRendererComponent, deps: [
|
|
86
|
-
WidgetRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetRendererComponent, selector: "app-widget-renderer", inputs: { widget: "widget",
|
|
87
|
-
<div class="widget-
|
|
15
|
+
WidgetRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
WidgetRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetRendererComponent, selector: "app-widget-renderer", inputs: { widget: "widget", theme: "theme" }, outputs: { editRequested: "editRequested", removeRequested: "removeRequested" }, usesOnChanges: true, ngImport: i0, template: `
|
|
17
|
+
<div class="widget-card" [style.background]="cardBg">
|
|
18
|
+
<!-- Header: drag handle + title + actions -->
|
|
88
19
|
<div class="widget-header">
|
|
20
|
+
<div class="drag-handle" title="Drag to move">
|
|
21
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor">
|
|
22
|
+
<circle cx="4" cy="3" r="1.2"/><circle cx="10" cy="3" r="1.2"/>
|
|
23
|
+
<circle cx="4" cy="7" r="1.2"/><circle cx="10" cy="7" r="1.2"/>
|
|
24
|
+
<circle cx="4" cy="11" r="1.2"/><circle cx="10" cy="11" r="1.2"/>
|
|
25
|
+
</svg>
|
|
26
|
+
</div>
|
|
89
27
|
<span class="widget-title">{{ widget.title }}</span>
|
|
90
28
|
<div class="header-actions">
|
|
91
|
-
<button class="btn-icon btn-edit"
|
|
29
|
+
<button class="btn-icon btn-edit" (click)="editRequested.emit(widget)" title="Edit">
|
|
92
30
|
<i class="la la-pen"></i>
|
|
93
31
|
</button>
|
|
94
|
-
<button class="btn-icon btn-
|
|
32
|
+
<button class="btn-icon btn-remove" (click)="removeRequested.emit(widget.id)" title="Remove">
|
|
95
33
|
<i class="la la-times"></i>
|
|
96
34
|
</button>
|
|
97
35
|
</div>
|
|
98
36
|
</div>
|
|
37
|
+
|
|
38
|
+
<!-- Consumer content slot -->
|
|
99
39
|
<div class="widget-body">
|
|
100
|
-
<
|
|
101
|
-
*ngIf="chartOptions.chart"
|
|
102
|
-
style="display:block;width:100%;height:100%;"
|
|
103
|
-
[series]="chartOptions.series!"
|
|
104
|
-
[chart]="chartOptions.chart!"
|
|
105
|
-
[xaxis]="chartOptions.xaxis!"
|
|
106
|
-
[stroke]="chartOptions.stroke!"
|
|
107
|
-
[dataLabels]="chartOptions.dataLabels!"
|
|
108
|
-
[plotOptions]="chartOptions.plotOptions!"
|
|
109
|
-
[yaxis]="chartOptions.yaxis!"
|
|
110
|
-
[labels]="chartOptions.labels!"
|
|
111
|
-
[legend]="chartOptions.legend!"
|
|
112
|
-
[colors]="chartOptions.colors!"
|
|
113
|
-
[theme]="chartOptions.theme!"
|
|
114
|
-
[tooltip]="chartOptions.tooltip!"
|
|
115
|
-
></apx-chart>
|
|
40
|
+
<ng-content></ng-content>
|
|
116
41
|
</div>
|
|
117
42
|
</div>
|
|
118
|
-
`, isInline: true, styles: [".widget-
|
|
43
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}.widget-card{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;border-radius:24px;overflow:hidden;box-shadow:0 8px 24px #00000040;border:1px solid rgba(255,255,255,.07);transition:box-shadow .2s ease;box-sizing:border-box;background:var(--dash-card-bg, #2c2c2e)}.widget-card:hover{box-shadow:0 12px 32px #00000059}.widget-header{display:flex;align-items:center;gap:8px;padding:12px 14px 8px;flex-shrink:0}.drag-handle{color:#fff3;cursor:grab;display:flex;align-items:center;flex-shrink:0;transition:color .2s}.drag-handle:hover{color:#ffffff80}.widget-title{flex:1;color:#fff;font-size:14px;font-weight:600;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;gap:4px;align-items:center;opacity:0;transition:opacity .2s}.widget-card:hover .header-actions{opacity:1}.btn-icon{background:rgba(255,255,255,.07);border:none;color:#ffffff80;cursor:pointer;font-size:11px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.btn-edit:hover{background:rgba(10,132,255,.22);color:var(--dash-accent-color, #0a84ff)}.btn-remove:hover{background:rgba(255,69,58,.22);color:var(--dash-danger-color, #ff453a)}.widget-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 14px 14px;overflow:hidden}\n"] });
|
|
119
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetRendererComponent, decorators: [{
|
|
120
45
|
type: Component,
|
|
121
46
|
args: [{ selector: 'app-widget-renderer', template: `
|
|
122
|
-
<div class="widget-
|
|
47
|
+
<div class="widget-card" [style.background]="cardBg">
|
|
48
|
+
<!-- Header: drag handle + title + actions -->
|
|
123
49
|
<div class="widget-header">
|
|
50
|
+
<div class="drag-handle" title="Drag to move">
|
|
51
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="currentColor">
|
|
52
|
+
<circle cx="4" cy="3" r="1.2"/><circle cx="10" cy="3" r="1.2"/>
|
|
53
|
+
<circle cx="4" cy="7" r="1.2"/><circle cx="10" cy="7" r="1.2"/>
|
|
54
|
+
<circle cx="4" cy="11" r="1.2"/><circle cx="10" cy="11" r="1.2"/>
|
|
55
|
+
</svg>
|
|
56
|
+
</div>
|
|
124
57
|
<span class="widget-title">{{ widget.title }}</span>
|
|
125
58
|
<div class="header-actions">
|
|
126
|
-
<button class="btn-icon btn-edit"
|
|
59
|
+
<button class="btn-icon btn-edit" (click)="editRequested.emit(widget)" title="Edit">
|
|
127
60
|
<i class="la la-pen"></i>
|
|
128
61
|
</button>
|
|
129
|
-
<button class="btn-icon btn-
|
|
62
|
+
<button class="btn-icon btn-remove" (click)="removeRequested.emit(widget.id)" title="Remove">
|
|
130
63
|
<i class="la la-times"></i>
|
|
131
64
|
</button>
|
|
132
65
|
</div>
|
|
133
66
|
</div>
|
|
67
|
+
|
|
68
|
+
<!-- Consumer content slot -->
|
|
134
69
|
<div class="widget-body">
|
|
135
|
-
<
|
|
136
|
-
*ngIf="chartOptions.chart"
|
|
137
|
-
style="display:block;width:100%;height:100%;"
|
|
138
|
-
[series]="chartOptions.series!"
|
|
139
|
-
[chart]="chartOptions.chart!"
|
|
140
|
-
[xaxis]="chartOptions.xaxis!"
|
|
141
|
-
[stroke]="chartOptions.stroke!"
|
|
142
|
-
[dataLabels]="chartOptions.dataLabels!"
|
|
143
|
-
[plotOptions]="chartOptions.plotOptions!"
|
|
144
|
-
[yaxis]="chartOptions.yaxis!"
|
|
145
|
-
[labels]="chartOptions.labels!"
|
|
146
|
-
[legend]="chartOptions.legend!"
|
|
147
|
-
[colors]="chartOptions.colors!"
|
|
148
|
-
[theme]="chartOptions.theme!"
|
|
149
|
-
[tooltip]="chartOptions.tooltip!"
|
|
150
|
-
></apx-chart>
|
|
70
|
+
<ng-content></ng-content>
|
|
151
71
|
</div>
|
|
152
72
|
</div>
|
|
153
|
-
`, styles: [".widget-
|
|
154
|
-
}],
|
|
155
|
-
type: Input
|
|
156
|
-
}], onRemoveWidget: [{
|
|
73
|
+
`, styles: [":host{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}.widget-card{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;border-radius:24px;overflow:hidden;box-shadow:0 8px 24px #00000040;border:1px solid rgba(255,255,255,.07);transition:box-shadow .2s ease;box-sizing:border-box;background:var(--dash-card-bg, #2c2c2e)}.widget-card:hover{box-shadow:0 12px 32px #00000059}.widget-header{display:flex;align-items:center;gap:8px;padding:12px 14px 8px;flex-shrink:0}.drag-handle{color:#fff3;cursor:grab;display:flex;align-items:center;flex-shrink:0;transition:color .2s}.drag-handle:hover{color:#ffffff80}.widget-title{flex:1;color:#fff;font-size:14px;font-weight:600;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;gap:4px;align-items:center;opacity:0;transition:opacity .2s}.widget-card:hover .header-actions{opacity:1}.btn-icon{background:rgba(255,255,255,.07);border:none;color:#ffffff80;cursor:pointer;font-size:11px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.btn-edit:hover{background:rgba(10,132,255,.22);color:var(--dash-accent-color, #0a84ff)}.btn-remove:hover{background:rgba(255,69,58,.22);color:var(--dash-danger-color, #ff453a)}.widget-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 14px 14px;overflow:hidden}\n"] }]
|
|
74
|
+
}], propDecorators: { widget: [{
|
|
157
75
|
type: Input
|
|
158
76
|
}], theme: [{
|
|
159
77
|
type: Input
|
|
160
78
|
}], editRequested: [{
|
|
161
79
|
type: Output
|
|
80
|
+
}], removeRequested: [{
|
|
81
|
+
type: Output
|
|
162
82
|
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvd2lkZ2V0LXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQWlCcEMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNyRixNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztBQUNwQyxNQUFNLGVBQWUsR0FBSyxTQUFTLENBQUM7QUFzRXBDLE1BQU0sT0FBTyx1QkFBdUI7SUFXbEMsWUFBb0IsWUFBbUM7UUFBbkMsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBUDdDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdyRCxlQUFVLEdBQTJCLEVBQUUsQ0FBQztRQUVoQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUV3QixDQUFDO0lBRTNELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFF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UzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NUOzRHQW1DUyxNQUFNO3NCQUFmLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdpZGdldCwgRGFzaGJvYXJkVGhlbWUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFwZXhBeGlzQ2hhcnRTZXJpZXMsIEFwZXhDaGFydCwgQXBleFhBeGlzLCBBcGV4RGF0YUxhYmVscyxcbiAgQXBleFN0cm9rZSwgQXBleFlBeGlzLCBBcGV4VGl0bGVTdWJ0aXRsZSwgQXBleExlZ2VuZCxcbiAgQXBleFBsb3RPcHRpb25zLCBBcGV4VG9vbHRpcCwgQXBleFRoZW1lXG59IGZyb20gJ25nLWFwZXhjaGFydHMnO1xuXG5leHBvcnQgdHlwZSBDaGFydE9wdGlvbnMgPSB7XG4gIHNlcmllczogQXBleEF4aXNDaGFydFNlcmllcyB8IG51bWJlcltdO1xuICBjaGFydDogQXBleENoYXJ0OyB4YXhpczogQXBleFhBeGlzOyBzdHJva2U6IEFwZXhTdHJva2U7XG4gIGRhdGFMYWJlbHM6IEFwZXhEYXRhTGFiZWxzOyB5YXhpczogQXBleFlBeGlzOyB0aXRsZTogQXBleFRpdGxlU3VidGl0bGU7XG4gIGxhYmVsczogc3RyaW5nW107IGxlZ2VuZDogQXBleExlZ2VuZDsgcGxvdE9wdGlvbnM6IEFwZXhQbG90T3B0aW9ucztcbiAgdG9vbHRpcDogQXBleFRvb2x0aXA7IHRoZW1lOiBBcGV4VGhlbWU7IGNvbG9yczogc3RyaW5nW107XG59O1xuXG5jb25zdCBERUZBVUxUX0NIQVJUX0NPTE9SUyA9IFsnIzBhODRmZicsICcjMzBkMTU4JywgJyNmZjlmMGEnLCAnI2JmNWFmMicsICcjZmY0NTNhJ107XG5jb25zdCBERUZBVUxUX0ZPUkVDT0xPUiA9ICcjOGU4ZTkzJztcbmNvbnN0IERFRkFVTFRfQ0FSRF9CRyAgID0gJyMyYzJjMmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd2lkZ2V0LXJlbmRlcmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImNhcmRTdHlsZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2lkZ2V0LXRpdGxlXCI+e3sgd2lkZ2V0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24gYnRuLWVkaXRcIiAoY2xpY2spPVwiZWRpdFJlcXVlc3RlZC5lbWl0KHdpZGdldClcIiB0aXRsZT1cIkVkaXQgd2lkZ2V0XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLXBlblwiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWljb24gYnRuLWNsb3NlLXdpZGdldFwiIChjbGljayk9XCJvblJlbW92ZSgpXCIgdGl0bGU9XCJSZW1vdmUgd2lkZ2V0XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1ib2R5XCI+XG4gICAgICAgIDxhcHgtY2hhcnRcbiAgICAgICAgICAqbmdJZj1cImNoYXJ0T3B0aW9ucy5jaGFydFwiXG4gICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7XCJcbiAgICAgICAgICBbc2VyaWVzXT1cImNoYXJ0T3B0aW9ucy5zZXJpZXMhXCJcbiAgICAgICAgICBbY2hhcnRdPVwiY2hhcnRPcHRpb25zLmNoYXJ0IVwiXG4gICAgICAgICAgW3hheGlzXT1cImNoYXJ0T3B0aW9ucy54YXhpcyFcIlxuICAgICAgICAgIFtzdHJva2VdPVwiY2hhcnRPcHRpb25zLnN0cm9rZSFcIlxuICAgICAgICAgIFtkYXRhTGFiZWxzXT1cImNoYXJ0T3B0aW9ucy5kYXRhTGFiZWxzIVwiXG4gICAgICAgICAgW3Bsb3RPcHRpb25zXT1cImNoYXJ0T3B0aW9ucy5wbG90T3B0aW9ucyFcIlxuICAgICAgICAgIFt5YXhpc109XCJjaGFydE9wdGlvbnMueWF4aXMhXCJcbiAgICAgICAgICBbbGFiZWxzXT1cImNoYXJ0T3B0aW9ucy5sYWJlbHMhXCJcbiAgICAgICAgICBbbGVnZW5kXT1cImNoYXJ0T3B0aW9ucy5sZWdlbmQhXCJcbiAgICAgICAgICBbY29sb3JzXT1cImNoYXJ0T3B0aW9ucy5jb2xvcnMhXCJcbiAgICAgICAgICBbdGhlbWVdPVwiY2hhcnRPcHRpb25zLnRoZW1lIVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiY2hhcnRPcHRpb25zLnRvb2x0aXAhXCJcbiAgICAgICAgPjwvYXB4LWNoYXJ0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAud2lkZ2V0LWNvbnRhaW5lciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7IG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4yNSk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xuICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1jYXJkLWJnKTtcbiAgICB9XG4gICAgLndpZGdldC1jb250YWluZXI6aG92ZXIgeyBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDAsMCwwLDAuMzUpOyB9XG4gICAgLndpZGdldC1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTRweCAxNnB4IDRweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogbW92ZTsgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC53aWRnZXQtdGl0bGUgeyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4zcHg7IH1cbiAgICAuaGVhZGVyLWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5idG4taWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyBib3JkZXI6IG5vbmU7IGNvbG9yOiB2YXIoLS1kYXNoLWZvcmUtY29sb3IpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IDEycHg7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7IGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAuYnRuLWVkaXQ6aG92ZXIgICAgICAgIHsgYmFja2dyb3VuZDogcmdiYSgxMCwxMzIsMjU1LDAuMjUpOyBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyB9XG4gICAgLmJ0bi1jbG9zZS13aWRnZXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSw2OSw1OCwwLjI1KTsgIGNvbG9yOiB2YXIoLS1kYXNoLWRhbmdlci1jb2xvcik7IH1cbiAgICAud2lkZ2V0LWJvZHkge1xuICAgICAgZmxleDogMTsgbWluLWhlaWdodDogMDsgcGFkZGluZzogNHB4IDEycHggMTJweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSAgd2lkZ2V0ITogV2lkZ2V0O1xuICBASW5wdXQoKSAgb25SZW1vdmVXaWRnZXQhOiAoaWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgQElucHV0KCkgIHRoZW1lPzogUmVxdWlyZWQ8RGFzaGJvYXJkVGhlbWU+O1xuICBAT3V0cHV0KCkgZWRpdFJlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8V2lkZ2V0PigpO1xuXG4gIGNoYXJ0T3B0aW9ucyE6IFBhcnRpYWw8Q2hhcnRPcHRpb25zPjtcbiAgY2FyZFN0eWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIHByaXZhdGUgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0YXRlU2VydmljZTogRGFzaGJvYXJkU3RhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXBwbHlTdHlsZXMoKTtcbiAgICB0aGlzLmluaXRDaGFydCgpO1xuICAgIHRoaXMuc3Vicy5hZGQoXG4gICAgICB0aGlzLnN0YXRlU2VydmljZS53aWRnZXREYXRhJC5zdWJzY3JpYmUoKHsgd2lkZ2V0SWQsIGRhdGEgfSkgPT4ge1xuICAgICAgICBpZiAod2lkZ2V0SWQgPT09IHRoaXMud2lkZ2V0LmlkKSB7XG4gICAgICAgICAgdGhpcy53aWRnZXQgPSB7IC4uLnRoaXMud2lkZ2V0LCBkYXRhIH07XG4gICAgICAgICAgdGhpcy5pbml0Q2hhcnQoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWyd0aGVtZSddKSAgeyB0aGlzLmFwcGx5U3R5bGVzKCk7IHRoaXMuaW5pdENoYXJ0KCk7IH1cbiAgICBpZiAoY2hhbmdlc1snd2lkZ2V0J10gJiYgIWNoYW5nZXNbJ3dpZGdldCddLmZpcnN0Q2hhbmdlKSB7IHRoaXMuYXBwbHlTdHlsZXMoKTsgdGhpcy5pbml0Q2hhcnQoKTsgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7IHRoaXMuc3Vicy51bnN1YnNjcmliZSgpOyB9XG5cbiAgcHJpdmF0ZSBhcHBseVN0eWxlcygpIHtcbiAgICB0aGlzLmNhcmRTdHlsZXMgPSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLndpZGdldC5jYXJkQ29sb3IgPz8gJ3ZhcigtLWRhc2gtY2FyZC1iZyknXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZWRDb2xvcnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLndpZGdldC5jb2xvcnMgPz8gdGhpcy50aGVtZT8uY2hhcnRDb2xvcnMgPz8gREVGQVVMVF9DSEFSVF9DT0xPUlM7XG4gIH1cblxuICBwcml2YXRlIGluaXRDaGFydCgpIHtcbiAgICBjb25zdCBpc0RvbnV0ICAgPSB0aGlzLndpZGdldC50eXBlID09PSAnRE9OVVQnO1xuICAgIGNvbnN0IGNvbG9ycyAgICA9IHRoaXMucmVzb2x2ZWRDb2xvcnMoKTtcbiAgICBjb25zdCBmb3JlQ29sb3IgPSB0aGlzLnRoZW1lPy5jaGFydEZvcmVDb2xvciA/PyBERUZBVUxUX0ZPUkVDT0xPUjtcbiAgICBjb25zdCBsaW5lQmFyRGF0YSA9ICFpc0RvbnV0ID8gKHRoaXMud2lkZ2V0LmRhdGEgYXMgYW55KSA6IG51bGw7XG4gICAgY29uc3QgZG9udXREYXRhICAgPSAgaXNEb251dCA/ICh0aGlzLndpZGdldC5kYXRhIGFzIGFueSkgOiBudWxsO1xuICAgIGNvbnN0IGNhdGVnb3JpZXM6IHN0cmluZ1tdID0gbGluZUJhckRhdGE/LmNhdGVnb3JpZXMgPz8gW107XG4gICAgY29uc3QgZG9udXRMYWJlbHM6IHN0cmluZ1tdID0gZG9udXREYXRhPy5sYWJlbHMgPz8gWydBJywnQicsJ0MnLCdEJywnRSddO1xuXG4gICAgdGhpcy5jaGFydE9wdGlvbnMgPSB7XG4gICAgICBzZXJpZXM6IHRoaXMud2lkZ2V0LmRhdGEuc2VyaWVzIGFzIGFueSxcbiAgICAgIGNoYXJ0OiB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMCUnLFxuICAgICAgICB0eXBlOiB0aGlzLndpZGdldC50eXBlLnRvTG93ZXJDYXNlKCkgYXMgYW55LFxuICAgICAgICB0b29sYmFyOiB7IHNob3c6IGZhbHNlIH0sXG4gICAgICAgIGFuaW1hdGlvbnM6IHsgZW5hYmxlZDogdHJ1ZSwgc3BlZWQ6IDQwMCB9LFxuICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLCBmb3JlQ29sb3IsXG4gICAgICAgIHBhcmVudEhlaWdodE9mZnNldDogMCwgc3BhcmtsaW5lOiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB9LFxuICAgICAgdGhlbWU6IHsgbW9kZTogJ2RhcmsnIH0sXG4gICAgICBjb2xvcnMsXG4gICAgICBzdHJva2U6IHsgY3VydmU6ICdzbW9vdGgnLCB3aWR0aDogaXNEb251dCA/IDAgOiAzIH0sXG4gICAgICBkYXRhTGFiZWxzOiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gICAgICBsZWdlbmQ6IHsgcG9zaXRpb246ICdib3R0b20nLCBsYWJlbHM6IHsgY29sb3JzOiBmb3JlQ29sb3IgfSB9LFxuICAgICAgdG9vbHRpcDogeyB0aGVtZTogJ2RhcmsnIH0sXG4gICAgICBwbG90T3B0aW9uczoge1xuICAgICAgICBwaWU6IHsgZG9udXQ6IHsgc2l6ZTogJzcwJScsIGxhYmVsczogeyBzaG93OiB0cnVlLCB0b3RhbDogeyBzaG93OiB0cnVlLCBsYWJlbDogJ1RvdGFsJywgY29sb3I6ICcjZmZmJyB9IH0gfSB9LFxuICAgICAgICBiYXI6IHsgYm9yZGVyUmFkaXVzOiA4LCBjb2x1bW5XaWR0aDogJzUwJScgfVxuICAgICAgfSxcbiAgICAgIHhheGlzOiB7XG4gICAgICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMubGVuZ3RoID8gY2F0ZWdvcmllcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGFiZWxzOiB7IHN0eWxlOiB7IGNvbG9yczogZm9yZUNvbG9yIH0gfSxcbiAgICAgICAgYXhpc0JvcmRlcjogeyBzaG93OiBmYWxzZSB9LCBheGlzVGlja3M6IHsgc2hvdzogZmFsc2UgfVxuICAgICAgfSxcbiAgICAgIHlheGlzOiB7IGxhYmVsczogeyBzdHlsZTogeyBjb2xvcnM6IGZvcmVDb2xvciB9IH0gfSxcbiAgICAgIGxhYmVsczogaXNEb251dCA/IGRvbnV0TGFiZWxzIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBvblJlbW92ZSgpIHsgdGhpcy5vblJlbW92ZVdpZGdldCh0aGlzLndpZGdldC5pZCk7IH1cbn1cbiJdfQ==
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvd2lkZ2V0LXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUN2QyxNQUFNLGVBQWUsQ0FBQzs7QUEwSHZCLE1BQU0sT0FBTyx1QkFBdUI7SUF2SHBDO1FBMkhZLGtCQUFhLEdBQUssSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFdkQsV0FBTSxHQUFHLDhCQUE4QixDQUFDO0tBT3pDO0lBTEMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLDhCQUE4QixDQUFDO1NBQ3hFO0lBQ0gsQ0FBQzs7cUhBYlUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsK01Bckh4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzRGQTBGVSx1QkFBdUI7a0JBdkhuQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzhCQTJGUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaWRnZXQsIERhc2hib2FyZFRoZW1lIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd2lkZ2V0LXJlbmRlcmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWNhcmRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJjYXJkQmdcIj5cbiAgICAgIDwhLS0gSGVhZGVyOiBkcmFnIGhhbmRsZSArIHRpdGxlICsgYWN0aW9ucyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIHRpdGxlPVwiRHJhZyB0byBtb3ZlXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjRcIiBjeT1cIjNcIiAgcj1cIjEuMlwiLz48Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjNcIiAgcj1cIjEuMlwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI0XCIgY3k9XCI3XCIgIHI9XCIxLjJcIi8+PGNpcmNsZSBjeD1cIjEwXCIgY3k9XCI3XCIgIHI9XCIxLjJcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiNFwiIGN5PVwiMTFcIiByPVwiMS4yXCIvPjxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTFcIiByPVwiMS4yXCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aWRnZXQtdGl0bGVcIj57eyB3aWRnZXQudGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4taWNvbiBidG4tZWRpdFwiICAgKGNsaWNrKT1cImVkaXRSZXF1ZXN0ZWQuZW1pdCh3aWRnZXQpXCIgIHRpdGxlPVwiRWRpdFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS1wZW5cIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1pY29uIGJ0bi1yZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlUmVxdWVzdGVkLmVtaXQod2lkZ2V0LmlkKVwiIHRpdGxlPVwiUmVtb3ZlXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENvbnN1bWVyIGNvbnRlbnQgc2xvdCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtYm9keVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAud2lkZ2V0LWNhcmQge1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4yNSk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpO1xuICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1jYXJkLWJnLCAjMmMyYzJlKTtcbiAgICB9XG4gICAgLndpZGdldC1jYXJkOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMCwwLDAsMC4zNSk7XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIEhlYWRlciDilIDilIAgKi9cbiAgICAud2lkZ2V0LWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAuZHJhZy1oYW5kbGUge1xuICAgICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuICAgIH1cbiAgICAuZHJhZy1oYW5kbGU6aG92ZXIgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpOyB9XG4gICAgLndpZGdldC10aXRsZSB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG4gICAgLmhlYWRlci1hY3Rpb25zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDRweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgIH1cbiAgICAud2lkZ2V0LWNhcmQ6aG92ZXIgLmhlYWRlci1hY3Rpb25zIHsgb3BhY2l0eTogMTsgfVxuXG4gICAgLmJ0bi1pY29uIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNyk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLmJ0bi1lZGl0OmhvdmVyICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDEwLDEzMiwyNTUsMC4yMik7ICBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IsICMwYTg0ZmYpOyB9XG4gICAgLmJ0bi1yZW1vdmU6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSw2OSw1OCwwLjIyKTsgICBjb2xvcjogdmFyKC0tZGFzaC1kYW5nZXItY29sb3IsICNmZjQ1M2EpOyB9XG5cbiAgICAvKiDilIDilIAgQm9keSDilIDilIAgKi9cbiAgICAud2lkZ2V0LWJvZHkge1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgd2lkZ2V0ITogV2lkZ2V0O1xuICBASW5wdXQoKSB0aGVtZT86IFJlcXVpcmVkPERhc2hib2FyZFRoZW1lPjtcblxuICBAT3V0cHV0KCkgZWRpdFJlcXVlc3RlZCAgID0gbmV3IEV2ZW50RW1pdHRlcjxXaWRnZXQ+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjYXJkQmcgPSAndmFyKC0tZGFzaC1jYXJkLWJnLCAjMmMyYzJlKSc7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWyd3aWRnZXQnXSB8fCBjaGFuZ2VzWyd0aGVtZSddKSB7XG4gICAgICB0aGlzLmNhcmRCZyA9IHRoaXMud2lkZ2V0Py5jYXJkQ29sb3IgPz8gJ3ZhcigtLWRhc2gtY2FyZC1iZywgIzJjMmMyZSknO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Public API Surface of
|
|
2
|
+
* Public API Surface of @ogidor/dashboard
|
|
3
3
|
*/
|
|
4
|
+
export * from './app/app.module';
|
|
4
5
|
export * from './app/dashboard.component';
|
|
5
6
|
export * from './app/widget-renderer.component';
|
|
6
|
-
export * from './app/
|
|
7
|
-
export * from './app/models';
|
|
7
|
+
export * from './app/custom-grid.component';
|
|
8
8
|
export * from './app/dashboard-state.service';
|
|
9
|
-
|
|
9
|
+
export * from './app/models';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAb2dpZG9yL2Rhc2hib2FyZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYXBwL2FwcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAvZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC93aWRnZXQtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2N1c3RvbS1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9kYXNoYm9hcmQtc3RhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9tb2RlbHMnO1xuIl19
|