@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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFdpZGdldFR5cGUgPSAnRE9OVVQnIHwgJ0xJTkUnIHwgJ0JBUic7XG5cbi8qKiBBIHNpbmdsZSBuYW1lZCBzZXJpZXMgZm9yIExJTkUgYW5kIEJBUiBjaGFydHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRTZXJpZXMge1xuICAvKiogTGFiZWwgc2hvd24gaW4gdGhlIGxlZ2VuZCAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBBcnJheSBvZiBudW1lcmljIGRhdGEgcG9pbnRzICovXG4gIGRhdGE6IG51bWJlcltdO1xuICAvKiogT3B0aW9uYWwgcGVyLXNlcmllcyB4LWF4aXMgY2F0ZWdvcnkgbGFiZWxzICovXG4gIGNhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqIERhdGEgc2hhcGUgZm9yIExJTkUgYW5kIEJBUiB3aWRnZXRzICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmVCYXJEYXRhIHtcbiAgLyoqIE9uZSBvciBtb3JlIGRhdGEgc2VyaWVzICovXG4gIHNlcmllczogQ2hhcnRTZXJpZXNbXTtcbiAgLyoqIFgtYXhpcyBjYXRlZ29yeSBsYWJlbHMgc2hhcmVkIGFjcm9zcyBhbGwgc2VyaWVzICovXG4gIGNhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqIERhdGEgc2hhcGUgZm9yIERPTlVUIHdpZGdldHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9udXREYXRhIHtcbiAgLyoqIE51bWVyaWMgc2xpY2UgdmFsdWVzIOKAlCBtdXN0IG1hdGNoIHRoZSBsZW5ndGggb2YgYGxhYmVsc2AgKi9cbiAgc2VyaWVzOiBudW1iZXJbXTtcbiAgLyoqIExhYmVsIGZvciBlYWNoIHNsaWNlICovXG4gIGxhYmVscz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldCB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IFdpZGdldFR5cGU7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBjb2xzOiBudW1iZXI7XG4gIHJvd3M6IG51bWJlcjtcbiAgLyoqIFR5cGVkIGFzIExpbmVCYXJEYXRhIHwgRG9udXREYXRhIGRlcGVuZGluZyBvbiBgdHlwZWAgKi9cbiAgZGF0YTogTGluZUJhckRhdGEgfCBEb251dERhdGE7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBwZXItd2lkZ2V0IHNlcmllcyBjb2xvcnMuIE92ZXJyaWRlcyB0aGUgZ2xvYmFsIHRoZW1lIGNoYXJ0Q29sb3JzLiAqL1xuICBjb2xvcnM/OiBzdHJpbmdbXTtcbiAgLyoqIE9wdGlvbmFsIHBlci13aWRnZXQgY2FyZCBiYWNrZ3JvdW5kIGNvbG9yLiBPdmVycmlkZXMgdGhlIGdsb2JhbCB0aGVtZSB3aWRnZXRDYXJkQ29sb3IuICovXG4gIGNhcmRDb2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB3aWRnZXRzOiBXaWRnZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRDb25maWcge1xuICBwYWdlczogUGFnZVtdO1xuICBhY3RpdmVQYWdlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGVtZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZGFzaGJvYXJkLlxuICogQWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsIOKAlCBhbnkgdmFsdWVzIG5vdCBwcm92aWRlZCB3aWxsIGZhbGwgYmFjayB0byBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRUaGVtZSB7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVyYWxsIGRhc2hib2FyZCB3cmFwcGVyLiBEZWZhdWx0OiBgIzAwMDAwMGAgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgbWFpbiBjb250ZW50IHBhbmVsLiBEZWZhdWx0OiBgIzFjMWMxZWAgKi9cbiAgcGFuZWxDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgaW5kaXZpZHVhbCB3aWRnZXQgY2FyZHMuIERlZmF1bHQ6IGAjMmMyYzJlYCAqL1xuICB3aWRnZXRDYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBQcmltYXJ5IHRleHQgLyBmb3JlZ3JvdW5kIGNvbG9yIHVzZWQgaW5zaWRlIGNoYXJ0cy4gRGVmYXVsdDogYCM4ZThlOTNgICovXG4gIGNoYXJ0Rm9yZUNvbG9yPzogc3RyaW5nO1xuICAvKiogUHJpbWFyeSBhY2NlbnQgY29sb3IgKGFjdGl2ZSB0YWJzLCBhZGQtcGFnZSBidXR0b24gaG92ZXIsIGV0Yy4pLiBEZWZhdWx0OiBgIzBhODRmZmAgKi9cbiAgYWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gIC8qKiBEYW5nZXIvY2xvc2UgY29sb3IgdXNlZCBvbiB0aGUgcmVtb3ZlLXdpZGdldCBidXR0b24gaG92ZXIuIERlZmF1bHQ6IGAjZmY0NTNhYCAqL1xuICBkYW5nZXJDb2xvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIEFycmF5IG9mIGNvbG9ycyBmZWQgdG8gQXBleENoYXJ0cyBzZXJpZXMuXG4gICAqIERlZmF1bHQ6IGBbJyMwYTg0ZmYnLCAnIzMwZDE1OCcsICcjZmY5ZjBhJywgJyNiZjVhZjInLCAnI2ZmNDUzYSddYFxuICAgKi9cbiAgY2hhcnRDb2xvcnM/OiBzdHJpbmdbXTtcbiAgLyoqIEZvbnQgZmFtaWx5IGFwcGxpZWQgdG8gdGhlIHdob2xlIGRhc2hib2FyZC4gRGVmYXVsdDogc3lzdGVtLXVpIHN0YWNrICovXG4gIGZvbnRGYW1pbHk/OiBzdHJpbmc7XG59XG4iXX0=
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(stateService) {
12
- this.stateService = stateService;
4
+ constructor() {
13
5
  this.editRequested = new EventEmitter();
14
- this.cardStyles = {};
15
- this.subs = new Subscription();
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.applyStyles();
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: [{ token: i1.DashboardStateService }], target: i0.ɵɵFactoryTarget.Component });
86
- WidgetRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetRendererComponent, selector: "app-widget-renderer", inputs: { widget: "widget", onRemoveWidget: "onRemoveWidget", theme: "theme" }, outputs: { editRequested: "editRequested" }, usesOnChanges: true, ngImport: i0, template: `
87
- <div class="widget-container" [ngStyle]="cardStyles">
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" (click)="editRequested.emit(widget)" title="Edit widget">
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-close-widget" (click)="onRemove()" title="Remove widget">
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
- <apx-chart
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-container{height:100%;width:100%;display:flex;flex-direction:column;border-radius:30px;overflow:hidden;box-shadow:0 8px 24px #00000040;border:1px solid rgba(255,255,255,.08);transition:box-shadow .2s ease;box-sizing:border-box;background:var(--dash-card-bg)}.widget-container:hover{box-shadow:0 12px 32px #00000059}.widget-header{padding:14px 16px 4px;display:flex;justify-content:space-between;align-items:center;cursor:move;flex-shrink:0}.widget-title{color:#fff;font-size:15px;font-weight:600;letter-spacing:.3px}.header-actions{display:flex;gap:6px;align-items:center}.btn-icon{background:rgba(255,255,255,.08);border:none;color:var(--dash-fore-color);cursor:pointer;font-size:12px;width:26px;height:26px;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,.25);color:var(--dash-accent-color)}.btn-close-widget:hover{background:rgba(255,69,58,.25);color:var(--dash-danger-color)}.widget-body{flex:1;min-height:0;padding:4px 12px 12px;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"] }] });
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-container" [ngStyle]="cardStyles">
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" (click)="editRequested.emit(widget)" title="Edit widget">
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-close-widget" (click)="onRemove()" title="Remove widget">
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
- <apx-chart
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-container{height:100%;width:100%;display:flex;flex-direction:column;border-radius:30px;overflow:hidden;box-shadow:0 8px 24px #00000040;border:1px solid rgba(255,255,255,.08);transition:box-shadow .2s ease;box-sizing:border-box;background:var(--dash-card-bg)}.widget-container:hover{box-shadow:0 12px 32px #00000059}.widget-header{padding:14px 16px 4px;display:flex;justify-content:space-between;align-items:center;cursor:move;flex-shrink:0}.widget-title{color:#fff;font-size:15px;font-weight:600;letter-spacing:.3px}.header-actions{display:flex;gap:6px;align-items:center}.btn-icon{background:rgba(255,255,255,.08);border:none;color:var(--dash-fore-color);cursor:pointer;font-size:12px;width:26px;height:26px;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,.25);color:var(--dash-accent-color)}.btn-close-widget:hover{background:rgba(255,69,58,.25);color:var(--dash-danger-color)}.widget-body{flex:1;min-height:0;padding:4px 12px 12px;display:flex;flex-direction:column}\n"] }]
154
- }], ctorParameters: function () { return [{ type: i1.DashboardStateService }]; }, propDecorators: { widget: [{
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
@@ -1,9 +1,10 @@
1
1
  /*
2
- * Public API Surface of the dashboard library
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/app.module'; // This is the DashboardModule
7
- export * from './app/models';
7
+ export * from './app/custom-grid.component';
8
8
  export * from './app/dashboard-state.service';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0JBQWtCLENBQUMsQ0FBQyw4QkFBOEI7QUFDaEUsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGhlIGRhc2hib2FyZCBsaWJyYXJ5XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hcHAvZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC93aWRnZXQtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2FwcC5tb2R1bGUnOyAvLyBUaGlzIGlzIHRoZSBEYXNoYm9hcmRNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vYXBwL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9kYXNoYm9hcmQtc3RhdGUuc2VydmljZSc7XG4iXX0=
9
+ export * from './app/models';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAb2dpZG9yL2Rhc2hib2FyZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYXBwL2FwcC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAvZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC93aWRnZXQtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2N1c3RvbS1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9kYXNoYm9hcmQtc3RhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9tb2RlbHMnO1xuIl19