gtd-ng-widget 11.0.7 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2020/gtd-ng-widget.mjs +5 -0
  2. package/{esm2015/lib/api.config.js → esm2020/lib/api.config.mjs} +0 -0
  3. package/esm2020/lib/gtd-ng-widget-component.abstract.mjs +112 -0
  4. package/esm2020/lib/gtd-ng-widget.module.mjs +37 -0
  5. package/esm2020/lib/services/data.service.mjs +27 -0
  6. package/{esm2015/lib/services/interfaces/type-response.interface.js → esm2020/lib/services/interfaces/type-response.interface.mjs} +0 -0
  7. package/esm2020/lib/services/responses/type.response.mjs +14 -0
  8. package/esm2020/lib/services/widgets.service.mjs +34 -0
  9. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  10. package/fesm2015/gtd-ng-widget.mjs +221 -0
  11. package/fesm2015/gtd-ng-widget.mjs.map +1 -0
  12. package/fesm2020/gtd-ng-widget.mjs +221 -0
  13. package/fesm2020/gtd-ng-widget.mjs.map +1 -0
  14. package/gtd-ng-widget-14.0.0.tgz +0 -0
  15. package/{gtd-ng-widget.d.ts → index.d.ts} +1 -1
  16. package/lib/gtd-ng-widget-component.abstract.d.ts +6 -3
  17. package/lib/gtd-ng-widget.module.d.ts +6 -0
  18. package/lib/services/data.service.d.ts +3 -0
  19. package/lib/services/widgets.service.d.ts +3 -0
  20. package/package.json +31 -15
  21. package/bundles/gtd-ng-widget.umd.js +0 -227
  22. package/bundles/gtd-ng-widget.umd.js.map +0 -1
  23. package/bundles/gtd-ng-widget.umd.min.js +0 -2
  24. package/bundles/gtd-ng-widget.umd.min.js.map +0 -1
  25. package/esm2015/gtd-ng-widget.js +0 -6
  26. package/esm2015/lib/gtd-ng-widget-component.abstract.js +0 -101
  27. package/esm2015/lib/gtd-ng-widget.module.js +0 -35
  28. package/esm2015/lib/services/data.service.js +0 -25
  29. package/esm2015/lib/services/responses/type.response.js +0 -15
  30. package/esm2015/lib/services/widgets.service.js +0 -31
  31. package/fesm2015/gtd-ng-widget.js +0 -207
  32. package/fesm2015/gtd-ng-widget.js.map +0 -1
  33. package/gtd-ng-widget-11.0.7.tgz +0 -0
  34. package/gtd-ng-widget.metadata.json +0 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RkLW5nLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ndGQtbmctd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,112 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as moment from 'moment';
3
+ import { DataService } from './services/data.service';
4
+ import * as i0 from "@angular/core";
5
+ // eslint-disable-next-line
6
+ export class GtdNgWidgetComponentAbstract {
7
+ constructor() {
8
+ this.autoInit = false;
9
+ this.settings = {};
10
+ this.dates = {
11
+ from: moment.utc().startOf('month'),
12
+ to: moment.utc().endOf('day'),
13
+ };
14
+ this.options = {};
15
+ this.selectedOption = {};
16
+ this.dataError = new EventEmitter();
17
+ this.dataLoaded = new EventEmitter();
18
+ this.isLoadingValue = true;
19
+ this.isFirstLoading = true;
20
+ this.widgetDataService = new DataService();
21
+ }
22
+ getKey() {
23
+ return this.key;
24
+ }
25
+ getSettings() {
26
+ return {
27
+ ...this.settings,
28
+ ...this.selectedOption,
29
+ };
30
+ }
31
+ getDates() {
32
+ return this.dates;
33
+ }
34
+ getConfig() {
35
+ return {
36
+ widget: this.getKey(),
37
+ settings: this.getSettings(),
38
+ from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),
39
+ to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),
40
+ };
41
+ }
42
+ get isLoading() {
43
+ return this.isLoadingValue;
44
+ }
45
+ setIsLoading(isLoading) {
46
+ this.isLoadingValue = isLoading;
47
+ }
48
+ getData() {
49
+ if (this.isLoading && !this.isFirstLoading) {
50
+ return;
51
+ }
52
+ this.isFirstLoading = false;
53
+ this.setIsLoading(true);
54
+ this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe((data) => {
55
+ this.data = this.data.fromJson(data);
56
+ this.setIsLoading(false);
57
+ this.afterData();
58
+ this.dataLoaded.emit(this.data);
59
+ }, (error) => {
60
+ if (this.dataError) {
61
+ this.dataError.emit(error);
62
+ }
63
+ this.errorCb(error);
64
+ });
65
+ }
66
+ setData(data) {
67
+ this.data = this.data.fromJson(data);
68
+ this.dataLoaded.emit(this.data);
69
+ }
70
+ afterData() { }
71
+ errorCb(error) { }
72
+ ngOnDestroy() {
73
+ if (this.dataSubscriber) {
74
+ this.dataSubscriber.unsubscribe();
75
+ }
76
+ }
77
+ ngAfterViewInit() {
78
+ if (this.autoInit) {
79
+ this.getData();
80
+ }
81
+ }
82
+ trackByFn(index) {
83
+ return index;
84
+ }
85
+ trackByIdFn(index, item) {
86
+ return item.id;
87
+ }
88
+ changeSelectedOption(selectedOption) {
89
+ this.selectedOption = selectedOption;
90
+ this.getData();
91
+ }
92
+ }
93
+ GtdNgWidgetComponentAbstract.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetComponentAbstract, deps: [], target: i0.ɵɵFactoryTarget.Directive });
94
+ GtdNgWidgetComponentAbstract.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: GtdNgWidgetComponentAbstract, inputs: { autoInit: "autoInit", settings: "settings", dates: "dates", options: "options", selectedOption: "selectedOption" }, outputs: { dataError: "dataError", dataLoaded: "dataLoaded" }, ngImport: i0 });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetComponentAbstract, decorators: [{
96
+ type: Directive
97
+ }], propDecorators: { autoInit: [{
98
+ type: Input
99
+ }], settings: [{
100
+ type: Input
101
+ }], dates: [{
102
+ type: Input
103
+ }], options: [{
104
+ type: Input
105
+ }], selectedOption: [{
106
+ type: Input
107
+ }], dataError: [{
108
+ type: Output
109
+ }], dataLoaded: [{
110
+ type: Output
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RkLW5nLXdpZGdldC1jb21wb25lbnQuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2d0ZC1uZy13aWRnZXQtY29tcG9uZW50LmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJdEQsMkJBQTJCO0FBQzNCLE1BQU0sT0FBZ0IsNEJBQTRCO0lBRmxEO1FBR1csYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBUTtZQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDbkMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQzlCLENBQUM7UUFDTyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbEMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsc0JBQWlCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7S0EwRjVEO0lBdkZDLE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUNoQixHQUFHLElBQUksQ0FBQyxjQUFjO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7WUFDeEQsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBa0I7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzFDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDM0UsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QjtZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxLQUFXLENBQUM7SUFFckIsT0FBTyxDQUFDLEtBQXdCLElBQVUsQ0FBQztJQUUzQyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQUs7UUFDYixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDckIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxjQUFtQjtRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7MEhBeEdtQiw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUZqRCxTQUFTOzhCQUdDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHlwZVJlc3BvbnNlSW50ZXJmYWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL3R5cGUtcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEd0ZE5nV2lkZ2V0Q29tcG9uZW50QWJzdHJhY3QgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGF1dG9Jbml0ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2V0dGluZ3M6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGRhdGVzOiBhbnkgPSB7XHJcbiAgICBmcm9tOiBtb21lbnQudXRjKCkuc3RhcnRPZignbW9udGgnKSxcclxuICAgIHRvOiBtb21lbnQudXRjKCkuZW5kT2YoJ2RheScpLFxyXG4gIH07XHJcbiAgQElucHV0KCkgb3B0aW9ucyA9IHt9O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkT3B0aW9uID0ge307XHJcbiAgQE91dHB1dCgpIGRhdGFFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGF0YUxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkga2V5OiBzdHJpbmc7XHJcbiAgcHVibGljIGFic3RyYWN0IGRhdGE6IFR5cGVSZXNwb25zZUludGVyZmFjZTtcclxuICBwcml2YXRlIGlzTG9hZGluZ1ZhbHVlID0gdHJ1ZTtcclxuICBwcml2YXRlIGlzRmlyc3RMb2FkaW5nID0gdHJ1ZTtcclxuICBwcml2YXRlIHdpZGdldERhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSA9IG5ldyBEYXRhU2VydmljZSgpO1xyXG4gIHByaXZhdGUgZGF0YVN1YnNjcmliZXI6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZ2V0S2V5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5rZXk7XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5ncygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4udGhpcy5zZXR0aW5ncyxcclxuICAgICAgLi4udGhpcy5zZWxlY3RlZE9wdGlvbixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXREYXRlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZXM7XHJcbiAgfVxyXG5cclxuICBnZXRDb25maWcoKTogYW55IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZGdldDogdGhpcy5nZXRLZXkoKSxcclxuICAgICAgc2V0dGluZ3M6IHRoaXMuZ2V0U2V0dGluZ3MoKSxcclxuICAgICAgZnJvbTogdGhpcy5nZXREYXRlcygpLmZyb20uZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXHJcbiAgICAgIHRvOiB0aGlzLmdldERhdGVzKCkudG8uZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0SXNMb2FkaW5nKGlzTG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmdWYWx1ZSA9IGlzTG9hZGluZztcclxuICB9XHJcblxyXG4gIGdldERhdGEoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgJiYgIXRoaXMuaXNGaXJzdExvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0ZpcnN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXRJc0xvYWRpbmcodHJ1ZSk7XHJcbiAgICB0aGlzLmRhdGFTdWJzY3JpYmVyID0gdGhpcy53aWRnZXREYXRhU2VydmljZS5kYXRhKHRoaXMuZ2V0Q29uZmlnKCkpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuZnJvbUpzb24oZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRJc0xvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuYWZ0ZXJEYXRhKCk7XHJcbiAgICAgICAgdGhpcy5kYXRhTG9hZGVkLmVtaXQodGhpcy5kYXRhKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YUVycm9yKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFFcnJvci5lbWl0KGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5lcnJvckNiKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuZnJvbUpzb24oZGF0YSk7XHJcbiAgICB0aGlzLmRhdGFMb2FkZWQuZW1pdCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgYWZ0ZXJEYXRhKCk6IHZvaWQgeyB9XHJcblxyXG4gIGVycm9yQ2IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7IH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kYXRhU3Vic2NyaWJlcikge1xyXG4gICAgICB0aGlzLmRhdGFTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvSW5pdCkge1xyXG4gICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpbmRleCkge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUlkRm4oaW5kZXgsIGl0ZW0pIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb246IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHNlbGVjdGVkT3B0aW9uO1xyXG4gICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { HttpClientModule } from '@angular/common/http';
3
+ import { Injector, NgModule } from '@angular/core';
4
+ import { API_CONFIG } from './api.config';
5
+ import { WidgetsService } from './services/widgets.service';
6
+ import * as i0 from "@angular/core";
7
+ export let InjectorInstance;
8
+ export class GtdNgWidgetModule {
9
+ constructor(injector) {
10
+ this.injector = injector;
11
+ InjectorInstance = this.injector;
12
+ }
13
+ static forRoot(apiConfig) {
14
+ return {
15
+ ngModule: GtdNgWidgetModule,
16
+ providers: [
17
+ WidgetsService,
18
+ {
19
+ provide: API_CONFIG,
20
+ useValue: apiConfig,
21
+ },
22
+ ],
23
+ };
24
+ }
25
+ }
26
+ GtdNgWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
27
+ GtdNgWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, imports: [HttpClientModule, CommonModule] });
28
+ GtdNgWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, imports: [HttpClientModule, CommonModule] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ declarations: [],
33
+ imports: [HttpClientModule, CommonModule],
34
+ exports: [],
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RkLW5nLXdpZGdldC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2d0ZC1uZy13aWRnZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTVELE1BQU0sQ0FBQyxJQUFJLGdCQUEwQixDQUFDO0FBT3RDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVM7UUFDdEIsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNULGNBQWM7Z0JBQ2Q7b0JBQ0UsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFFBQVEsRUFBRSxTQUFTO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OytHQWhCVSxpQkFBaUI7Z0hBQWpCLGlCQUFpQixZQUhsQixnQkFBZ0IsRUFBRSxZQUFZO2dIQUc3QixpQkFBaUIsWUFIbEIsZ0JBQWdCLEVBQUUsWUFBWTs0RkFHN0IsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQSV9DT05GSUcgfSBmcm9tICcuL2FwaS5jb25maWcnO1xuaW1wb3J0IHsgV2lkZ2V0c1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dpZGdldHMuc2VydmljZSc7XG5cbmV4cG9ydCBsZXQgSW5qZWN0b3JJbnN0YW5jZTogSW5qZWN0b3I7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgR3RkTmdXaWRnZXRNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIEluamVjdG9ySW5zdGFuY2UgPSB0aGlzLmluamVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGZvclJvb3QoYXBpQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxHdGROZ1dpZGdldE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogR3RkTmdXaWRnZXRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgV2lkZ2V0c1NlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUElfQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiBhcGlDb25maWcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { throwError } from 'rxjs';
4
+ import { map, share } from 'rxjs/operators';
5
+ import { API_CONFIG } from '../api.config';
6
+ import { InjectorInstance } from '../gtd-ng-widget.module';
7
+ import * as i0 from "@angular/core";
8
+ export class DataService {
9
+ constructor() {
10
+ this.http = InjectorInstance.get(HttpClient);
11
+ this.apiConfig = InjectorInstance.get(API_CONFIG);
12
+ }
13
+ data(dataConfig) {
14
+ if (this.apiConfig && this.apiConfig.api) {
15
+ return this.http.post(this.apiConfig.api + '/widget/data', dataConfig).pipe(share(), map((r) => r.data));
16
+ }
17
+ else {
18
+ return throwError('no api config');
19
+ }
20
+ }
21
+ }
22
+ DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DataService });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DataService, decorators: [{
25
+ type: Injectable
26
+ }], ctorParameters: function () { return []; } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzNELE1BQU0sT0FBTyxXQUFXO0lBSXRCO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQWEsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQWtCLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxJQUFJLENBQUMsVUFBZTtRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUN6RSxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDeEIsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7O3lHQWxCVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQVBJX0NPTkZJRyB9IGZyb20gJy4uL2FwaS5jb25maWcnO1xuaW1wb3J0IHsgSW5qZWN0b3JJbnN0YW5jZSB9IGZyb20gJy4uL2d0ZC1uZy13aWRnZXQubW9kdWxlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50O1xuICBwcml2YXRlIGFwaUNvbmZpZzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaHR0cCA9IEluamVjdG9ySW5zdGFuY2UuZ2V0PEh0dHBDbGllbnQ+KEh0dHBDbGllbnQpO1xuICAgIHRoaXMuYXBpQ29uZmlnID0gSW5qZWN0b3JJbnN0YW5jZS5nZXQ8eyBhcGk6IHN0cmluZyB9PihBUElfQ09ORklHKTtcbiAgfVxuXG4gIHB1YmxpYyBkYXRhKGRhdGFDb25maWc6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuYXBpQ29uZmlnICYmIHRoaXMuYXBpQ29uZmlnLmFwaSkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpQ29uZmlnLmFwaSArICcvd2lkZ2V0L2RhdGEnLCBkYXRhQ29uZmlnKS5waXBlKFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICBtYXAoKHI6IGFueSkgPT4gci5kYXRhKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ25vIGFwaSBjb25maWcnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ export class TypeResponse {
2
+ fromJson(json) {
3
+ const object = Object.assign(this, json);
4
+ object.dates = new Dates(json?.dates?.from * 1000, json?.dates?.to * 1000);
5
+ return object;
6
+ }
7
+ }
8
+ export class Dates {
9
+ constructor(from, to) {
10
+ this.from = from;
11
+ this.to = to;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5yZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcmVzcG9uc2VzL3R5cGUucmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixZQUFZO0lBR3pCLFFBQVEsQ0FBQyxJQUFTO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzNFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxLQUFLO0lBQ2hCLFlBQW1CLElBQVksRUFBUyxFQUFVO1FBQS9CLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFRO0lBQUcsQ0FBQztDQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVSZXNwb25zZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHlwZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHlwZVJlc3BvbnNlIGltcGxlbWVudHMgVHlwZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgcHVibGljIGRhdGVzOiBEYXRlcztcblxuICBwdWJsaWMgZnJvbUpzb24oanNvbjogYW55KTogVHlwZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb25zdCBvYmplY3QgPSBPYmplY3QuYXNzaWduKHRoaXMsIGpzb24pO1xuICAgIG9iamVjdC5kYXRlcyA9IG5ldyBEYXRlcyhqc29uPy5kYXRlcz8uZnJvbSAqIDEwMDAsIGpzb24/LmRhdGVzPy50byAqIDEwMDApO1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVzIHtcbiAgY29uc3RydWN0b3IocHVibGljIGZyb206IG51bWJlciwgcHVibGljIHRvOiBudW1iZXIpIHt9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { throwError } from 'rxjs';
4
+ import { map, share } from 'rxjs/operators';
5
+ import { API_CONFIG } from '../api.config';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ export class WidgetsService {
9
+ constructor(apiConfig, http) {
10
+ this.apiConfig = apiConfig;
11
+ this.http = http;
12
+ }
13
+ dataBatched(widgetConfigs) {
14
+ if (this.apiConfig && this.apiConfig.api) {
15
+ return this.http
16
+ .post(this.apiConfig.api + '/widget/dataBatched', {
17
+ widgets: widgetConfigs,
18
+ })
19
+ .pipe(share(), map((r) => r.data));
20
+ }
21
+ else {
22
+ return throwError('no api config');
23
+ }
24
+ }
25
+ }
26
+ WidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WidgetsService, deps: [{ token: API_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ WidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WidgetsService });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WidgetsService, decorators: [{
29
+ type: Injectable
30
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
31
+ type: Inject,
32
+ args: [API_CONFIG]
33
+ }] }, { type: i1.HttpClient }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93aWRnZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBd0MsU0FBYyxFQUFVLElBQWdCO1FBQXhDLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUVwRixXQUFXLENBQUMsYUFBb0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUk7aUJBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLHFCQUFxQixFQUFFO2dCQUNoRCxPQUFPLEVBQUUsYUFBYTthQUN2QixDQUFDO2lCQUNELElBQUksQ0FDSCxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDeEIsQ0FBQztTQUNMO2FBQU07WUFDTCxPQUFPLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7OzRHQWhCVSxjQUFjLGtCQUNMLFVBQVU7Z0hBRG5CLGNBQWM7NEZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBRUksTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFQSV9DT05GSUcgfSBmcm9tICcuLi9hcGkuY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpZGdldHNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChBUElfQ09ORklHKSBwcml2YXRlIGFwaUNvbmZpZzogYW55LCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgZGF0YUJhdGNoZWQod2lkZ2V0Q29uZmlnczogYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLmFwaUNvbmZpZyAmJiB0aGlzLmFwaUNvbmZpZy5hcGkpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3QodGhpcy5hcGlDb25maWcuYXBpICsgJy93aWRnZXQvZGF0YUJhdGNoZWQnLCB7XG4gICAgICAgICAgd2lkZ2V0czogd2lkZ2V0Q29uZmlncyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgICBtYXAoKHI6IGFueSkgPT4gci5kYXRhKVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcignbm8gYXBpIGNvbmZpZycpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,221 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Injectable, Inject, NgModule, EventEmitter, Directive, Input, Output } from '@angular/core';
3
+ import { throwError } from 'rxjs';
4
+ import { share, map } from 'rxjs/operators';
5
+ import * as i1 from '@angular/common/http';
6
+ import { HttpClientModule, HttpClient } from '@angular/common/http';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as moment from 'moment';
9
+
10
+ const API_CONFIG = new InjectionToken('ApiConfig');
11
+
12
+ class WidgetsService {
13
+ constructor(apiConfig, http) {
14
+ this.apiConfig = apiConfig;
15
+ this.http = http;
16
+ }
17
+ dataBatched(widgetConfigs) {
18
+ if (this.apiConfig && this.apiConfig.api) {
19
+ return this.http
20
+ .post(this.apiConfig.api + '/widget/dataBatched', {
21
+ widgets: widgetConfigs,
22
+ })
23
+ .pipe(share(), map((r) => r.data));
24
+ }
25
+ else {
26
+ return throwError('no api config');
27
+ }
28
+ }
29
+ }
30
+ WidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WidgetsService, deps: [{ token: API_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ WidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WidgetsService });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: WidgetsService, decorators: [{
33
+ type: Injectable
34
+ }], ctorParameters: function () {
35
+ return [{ type: undefined, decorators: [{
36
+ type: Inject,
37
+ args: [API_CONFIG]
38
+ }] }, { type: i1.HttpClient }];
39
+ } });
40
+
41
+ let InjectorInstance;
42
+ class GtdNgWidgetModule {
43
+ constructor(injector) {
44
+ this.injector = injector;
45
+ InjectorInstance = this.injector;
46
+ }
47
+ static forRoot(apiConfig) {
48
+ return {
49
+ ngModule: GtdNgWidgetModule,
50
+ providers: [
51
+ WidgetsService,
52
+ {
53
+ provide: API_CONFIG,
54
+ useValue: apiConfig,
55
+ },
56
+ ],
57
+ };
58
+ }
59
+ }
60
+ GtdNgWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
61
+ GtdNgWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, imports: [HttpClientModule, CommonModule] });
62
+ GtdNgWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, imports: [HttpClientModule, CommonModule] });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetModule, decorators: [{
64
+ type: NgModule,
65
+ args: [{
66
+ declarations: [],
67
+ imports: [HttpClientModule, CommonModule],
68
+ exports: [],
69
+ }]
70
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
71
+
72
+ class DataService {
73
+ constructor() {
74
+ this.http = InjectorInstance.get(HttpClient);
75
+ this.apiConfig = InjectorInstance.get(API_CONFIG);
76
+ }
77
+ data(dataConfig) {
78
+ if (this.apiConfig && this.apiConfig.api) {
79
+ return this.http.post(this.apiConfig.api + '/widget/data', dataConfig).pipe(share(), map((r) => r.data));
80
+ }
81
+ else {
82
+ return throwError('no api config');
83
+ }
84
+ }
85
+ }
86
+ DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
87
+ DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DataService });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DataService, decorators: [{
89
+ type: Injectable
90
+ }], ctorParameters: function () { return []; } });
91
+
92
+ // eslint-disable-next-line
93
+ class GtdNgWidgetComponentAbstract {
94
+ constructor() {
95
+ this.autoInit = false;
96
+ this.settings = {};
97
+ this.dates = {
98
+ from: moment.utc().startOf('month'),
99
+ to: moment.utc().endOf('day'),
100
+ };
101
+ this.options = {};
102
+ this.selectedOption = {};
103
+ this.dataError = new EventEmitter();
104
+ this.dataLoaded = new EventEmitter();
105
+ this.isLoadingValue = true;
106
+ this.isFirstLoading = true;
107
+ this.widgetDataService = new DataService();
108
+ }
109
+ getKey() {
110
+ return this.key;
111
+ }
112
+ getSettings() {
113
+ return Object.assign(Object.assign({}, this.settings), this.selectedOption);
114
+ }
115
+ getDates() {
116
+ return this.dates;
117
+ }
118
+ getConfig() {
119
+ return {
120
+ widget: this.getKey(),
121
+ settings: this.getSettings(),
122
+ from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),
123
+ to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),
124
+ };
125
+ }
126
+ get isLoading() {
127
+ return this.isLoadingValue;
128
+ }
129
+ setIsLoading(isLoading) {
130
+ this.isLoadingValue = isLoading;
131
+ }
132
+ getData() {
133
+ if (this.isLoading && !this.isFirstLoading) {
134
+ return;
135
+ }
136
+ this.isFirstLoading = false;
137
+ this.setIsLoading(true);
138
+ this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe((data) => {
139
+ this.data = this.data.fromJson(data);
140
+ this.setIsLoading(false);
141
+ this.afterData();
142
+ this.dataLoaded.emit(this.data);
143
+ }, (error) => {
144
+ if (this.dataError) {
145
+ this.dataError.emit(error);
146
+ }
147
+ this.errorCb(error);
148
+ });
149
+ }
150
+ setData(data) {
151
+ this.data = this.data.fromJson(data);
152
+ this.dataLoaded.emit(this.data);
153
+ }
154
+ afterData() { }
155
+ errorCb(error) { }
156
+ ngOnDestroy() {
157
+ if (this.dataSubscriber) {
158
+ this.dataSubscriber.unsubscribe();
159
+ }
160
+ }
161
+ ngAfterViewInit() {
162
+ if (this.autoInit) {
163
+ this.getData();
164
+ }
165
+ }
166
+ trackByFn(index) {
167
+ return index;
168
+ }
169
+ trackByIdFn(index, item) {
170
+ return item.id;
171
+ }
172
+ changeSelectedOption(selectedOption) {
173
+ this.selectedOption = selectedOption;
174
+ this.getData();
175
+ }
176
+ }
177
+ GtdNgWidgetComponentAbstract.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetComponentAbstract, deps: [], target: i0.ɵɵFactoryTarget.Directive });
178
+ GtdNgWidgetComponentAbstract.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: GtdNgWidgetComponentAbstract, inputs: { autoInit: "autoInit", settings: "settings", dates: "dates", options: "options", selectedOption: "selectedOption" }, outputs: { dataError: "dataError", dataLoaded: "dataLoaded" }, ngImport: i0 });
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GtdNgWidgetComponentAbstract, decorators: [{
180
+ type: Directive
181
+ }], propDecorators: { autoInit: [{
182
+ type: Input
183
+ }], settings: [{
184
+ type: Input
185
+ }], dates: [{
186
+ type: Input
187
+ }], options: [{
188
+ type: Input
189
+ }], selectedOption: [{
190
+ type: Input
191
+ }], dataError: [{
192
+ type: Output
193
+ }], dataLoaded: [{
194
+ type: Output
195
+ }] } });
196
+
197
+ class TypeResponse {
198
+ fromJson(json) {
199
+ var _a, _b;
200
+ const object = Object.assign(this, json);
201
+ object.dates = new Dates(((_a = json === null || json === void 0 ? void 0 : json.dates) === null || _a === void 0 ? void 0 : _a.from) * 1000, ((_b = json === null || json === void 0 ? void 0 : json.dates) === null || _b === void 0 ? void 0 : _b.to) * 1000);
202
+ return object;
203
+ }
204
+ }
205
+ class Dates {
206
+ constructor(from, to) {
207
+ this.from = from;
208
+ this.to = to;
209
+ }
210
+ }
211
+
212
+ /*
213
+ * Public API Surface of gtd-ng-table
214
+ */
215
+
216
+ /**
217
+ * Generated bundle index. Do not edit.
218
+ */
219
+
220
+ export { Dates, GtdNgWidgetComponentAbstract, GtdNgWidgetModule, InjectorInstance, TypeResponse, WidgetsService };
221
+ //# sourceMappingURL=gtd-ng-widget.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtd-ng-widget.mjs","sources":["../../src/lib/api.config.ts","../../src/lib/services/widgets.service.ts","../../src/lib/gtd-ng-widget.module.ts","../../src/lib/services/data.service.ts","../../src/lib/gtd-ng-widget-component.abstract.ts","../../src/lib/services/responses/type.response.ts","../../src/public-api.ts","../../src/gtd-ng-widget.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const API_CONFIG = new InjectionToken<{ api: string }>('ApiConfig');\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\nimport { API_CONFIG } from '../api.config';\n\n@Injectable()\nexport class WidgetsService {\n constructor(@Inject(API_CONFIG) private apiConfig: any, private http: HttpClient) {}\n\n dataBatched(widgetConfigs: any[]): Observable<any> {\n if (this.apiConfig && this.apiConfig.api) {\n return this.http\n .post(this.apiConfig.api + '/widget/dataBatched', {\n widgets: widgetConfigs,\n })\n .pipe(\n share(),\n map((r: any) => r.data)\n );\n } else {\n return throwError('no api config');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { API_CONFIG } from './api.config';\nimport { WidgetsService } from './services/widgets.service';\n\nexport let InjectorInstance: Injector;\n\n@NgModule({\n declarations: [],\n imports: [HttpClientModule, CommonModule],\n exports: [],\n})\nexport class GtdNgWidgetModule {\n constructor(private injector: Injector) {\n InjectorInstance = this.injector;\n }\n\n static forRoot(apiConfig): ModuleWithProviders<GtdNgWidgetModule> {\n return {\n ngModule: GtdNgWidgetModule,\n providers: [\n WidgetsService,\n {\n provide: API_CONFIG,\n useValue: apiConfig,\n },\n ],\n };\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\nimport { API_CONFIG } from '../api.config';\nimport { InjectorInstance } from '../gtd-ng-widget.module';\n\n@Injectable()\nexport class DataService {\n private http: HttpClient;\n private apiConfig: any;\n\n constructor() {\n this.http = InjectorInstance.get<HttpClient>(HttpClient);\n this.apiConfig = InjectorInstance.get<{ api: string }>(API_CONFIG);\n }\n\n public data(dataConfig: any): Observable<any> {\n if (this.apiConfig && this.apiConfig.api) {\n return this.http.post(this.apiConfig.api + '/widget/data', dataConfig).pipe(\n share(),\n map((r: any) => r.data)\n );\n } else {\n return throwError('no api config');\n }\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { AfterViewInit, Directive, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\nimport { DataService } from './services/data.service';\r\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\r\n\r\n@Directive()\r\n// eslint-disable-next-line\r\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\r\n @Input() autoInit = false;\r\n @Input() settings: any = {};\r\n @Input() dates: any = {\r\n from: moment.utc().startOf('month'),\r\n to: moment.utc().endOf('day'),\r\n };\r\n @Input() options = {};\r\n @Input() selectedOption = {};\r\n @Output() dataError = new EventEmitter();\r\n @Output() dataLoaded = new EventEmitter();\r\n protected abstract readonly key: string;\r\n public abstract data: TypeResponseInterface;\r\n private isLoadingValue = true;\r\n private isFirstLoading = true;\r\n private widgetDataService: DataService = new DataService();\r\n private dataSubscriber: Subscription;\r\n\r\n getKey(): string {\r\n return this.key;\r\n }\r\n\r\n getSettings(): string {\r\n return {\r\n ...this.settings,\r\n ...this.selectedOption,\r\n };\r\n }\r\n\r\n getDates(): any {\r\n return this.dates;\r\n }\r\n\r\n getConfig(): any {\r\n return {\r\n widget: this.getKey(),\r\n settings: this.getSettings(),\r\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\r\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\r\n };\r\n }\r\n\r\n get isLoading(): boolean {\r\n return this.isLoadingValue;\r\n }\r\n\r\n setIsLoading(isLoading: boolean): void {\r\n this.isLoadingValue = isLoading;\r\n }\r\n\r\n getData(): void {\r\n if (this.isLoading && !this.isFirstLoading) {\r\n return;\r\n }\r\n this.isFirstLoading = false;\r\n this.setIsLoading(true);\r\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\r\n (data) => {\r\n this.data = this.data.fromJson(data);\r\n this.setIsLoading(false);\r\n this.afterData();\r\n this.dataLoaded.emit(this.data);\r\n },\r\n (error) => {\r\n if (this.dataError) {\r\n this.dataError.emit(error);\r\n }\r\n this.errorCb(error);\r\n }\r\n );\r\n }\r\n\r\n setData(data: any): void {\r\n this.data = this.data.fromJson(data);\r\n this.dataLoaded.emit(this.data);\r\n }\r\n\r\n afterData(): void { }\r\n\r\n errorCb(error: HttpErrorResponse): void { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.dataSubscriber) {\r\n this.dataSubscriber.unsubscribe();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.autoInit) {\r\n this.getData();\r\n }\r\n }\r\n\r\n trackByFn(index) {\r\n return index;\r\n }\r\n\r\n trackByIdFn(index, item) {\r\n return item.id;\r\n }\r\n\r\n changeSelectedOption(selectedOption: any): void {\r\n this.selectedOption = selectedOption;\r\n this.getData();\r\n }\r\n}\r\n","import { TypeResponseInterface } from '../interfaces/type-response.interface';\n\nexport abstract class TypeResponse implements TypeResponseInterface {\n public dates: Dates;\n\n public fromJson(json: any): TypeResponseInterface {\n const object = Object.assign(this, json);\n object.dates = new Dates(json?.dates?.from * 1000, json?.dates?.to * 1000);\n return object;\n }\n}\n\nexport class Dates {\n constructor(public from: number, public to: number) {}\n}\n","/*\n * Public API Surface of gtd-ng-table\n */\n\nexport * from './lib/services/widgets.service';\nexport * from './lib/gtd-ng-widget.module';\nexport * from './lib/services/interfaces/type-response.interface';\nexport * from './lib/gtd-ng-widget-component.abstract';\nexport * from './lib/services/responses/type.response';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAEO,MAAM,UAAU,GAAG,IAAI,cAAc,CAAkB,WAAW,CAAC;;MCK7D,cAAc,CAAA;IACzB,WAAwC,CAAA,SAAc,EAAU,IAAgB,EAAA;AAAxC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;AAAU,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KAAI;AAEpF,IAAA,WAAW,CAAC,aAAoB,EAAA;QAC9B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACxC,OAAO,IAAI,CAAC,IAAI;iBACb,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,qBAAqB,EAAE;AAChD,gBAAA,OAAO,EAAE,aAAa;aACvB,CAAC;AACD,iBAAA,IAAI,CACH,KAAK,EAAE,EACP,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CACxB,CAAC;AACL,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,SAAA;KACF;;AAhBU,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBACL,UAAU,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gHADnB,cAAc,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;8BAEI,MAAM;+BAAC,UAAU,CAAA;;;;ACFrB,IAAA,iBAA2B;MAOzB,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CAAoB,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AACpC,QAAA,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;KAClC;IAED,OAAO,OAAO,CAAC,SAAS,EAAA;QACtB,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;gBACT,cAAc;AACd,gBAAA;AACE,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,QAAQ,EAAE,SAAS;AACpB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;+GAhBU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,OAAA,EAAA,CAHlB,gBAAgB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;gHAG7B,iBAAiB,EAAA,OAAA,EAAA,CAHlB,gBAAgB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;4FAG7B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;AACzC,oBAAA,OAAO,EAAE,EAAE;iBACZ,CAAA;;;MCJY,WAAW,CAAA;AAItB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAa,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAkB,UAAU,CAAC,CAAC;KACpE;AAEM,IAAA,IAAI,CAAC,UAAe,EAAA;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;AACxC,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,cAAc,EAAE,UAAU,CAAC,CAAC,IAAI,CACzE,KAAK,EAAE,EACP,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CACxB,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,SAAA;KACF;;yGAlBU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6GAAX,WAAW,EAAA,CAAA,CAAA;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;ACCX;MACsB,4BAA4B,CAAA;AAFlD,IAAA,WAAA,GAAA;AAGW,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;QACnB,IAAA,CAAA,KAAK,GAAQ;YACpB,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YACnC,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;SAC9B,CAAC;AACO,QAAA,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AACb,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;AACnB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAGlC,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AACtB,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AACtB,QAAA,IAAA,CAAA,iBAAiB,GAAgB,IAAI,WAAW,EAAE,CAAC;KA0F5D;IAvFC,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;IAED,WAAW,GAAA;AACT,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,IAAI,CAAC,QAAQ,GACb,IAAI,CAAC,cAAc,CACtB,CAAA;KACH;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAED,SAAS,GAAA;QACP,OAAO;AACL,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;YACxD,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;SACrD,CAAC;KACH;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED,IAAA,YAAY,CAAC,SAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;KACjC;IAED,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC1C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAC3E,CAAC,IAAI,KAAI;YACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAC,EACD,CAAC,KAAK,KAAI;YACR,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtB,SAAC,CACF,CAAC;KACH;AAED,IAAA,OAAO,CAAC,IAAS,EAAA;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;AAED,IAAA,SAAS,MAAY;IAErB,OAAO,CAAC,KAAwB,EAAA,GAAW;IAE3C,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AACnC,SAAA;KACF;IAED,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;AACb,QAAA,OAAO,KAAK,CAAC;KACd;IAED,WAAW,CAAC,KAAK,EAAE,IAAI,EAAA;QACrB,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;AAED,IAAA,oBAAoB,CAAC,cAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;;0HAxGmB,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAA5B,4BAA4B,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAFjD,SAAS;8BAGC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MCjBa,YAAY,CAAA;AAGzB,IAAA,QAAQ,CAAC,IAAS,EAAA;;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,IAAG,IAAI,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,IAAG,IAAI,CAAC,CAAC;AAC3E,QAAA,OAAO,MAAM,CAAC;KACf;AACF,CAAA;MAEY,KAAK,CAAA;IAChB,WAAmB,CAAA,IAAY,EAAS,EAAU,EAAA;AAA/B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AAAS,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;KAAI;AACvD;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}