gtd-ng-widget 11.0.4 → 11.0.6

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.
@@ -96,7 +96,7 @@
96
96
  this.selectedOption = {};
97
97
  this.onError = new core.EventEmitter();
98
98
  this.onDataLoaded = new core.EventEmitter();
99
- this.isLoadingValue = true;
99
+ this.isLoadingValue = false;
100
100
  this.widgetDataService = new DataService();
101
101
  }
102
102
  GtdNgWidgetComponentAbstract.prototype.getKey = function () {
@@ -128,6 +128,9 @@
128
128
  };
129
129
  GtdNgWidgetComponentAbstract.prototype.getData = function () {
130
130
  var _this = this;
131
+ if (this.isLoading) {
132
+ return;
133
+ }
131
134
  this.setIsLoading(true);
132
135
  this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(function (data) {
133
136
  _this.data = _this.data.fromJson(data);
@@ -1 +1 @@
1
- {"version":3,"file":"gtd-ng-widget.umd.js","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';\nimport { AfterViewInit, Directive, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\n\n@Directive()\n// tslint:disable-next-line\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\n @Input() autoInit = false;\n @Input() settings: any = {};\n @Input() dates: any = {\n from: moment.utc().startOf('month'),\n to: moment.utc().endOf('day'),\n };\n @Input() options = {};\n @Input() selectedOption = {};\n @Output() onError = new EventEmitter();\n @Output() onDataLoaded = new EventEmitter();\n protected abstract readonly key: string;\n public abstract data: TypeResponseInterface;\n private isLoadingValue = true;\n private widgetDataService: DataService = new DataService();\n private dataSubscriber: Subscription;\n\n getKey(): string {\n return this.key;\n }\n\n getSettings(): string {\n return {\n ...this.settings,\n ...this.selectedOption,\n };\n }\n\n getDates(): any {\n return this.dates;\n }\n\n getConfig(): any {\n return {\n widget: this.getKey(),\n settings: this.getSettings(),\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\n };\n }\n\n get isLoading(): boolean {\n return this.isLoadingValue;\n }\n\n setIsLoading(isLoading: boolean): void {\n this.isLoadingValue = isLoading;\n }\n\n getData(): void {\n this.setIsLoading(true);\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\n (data) => {\n this.data = this.data.fromJson(data);\n this.setIsLoading(false);\n this.afterData();\n this.onDataLoaded.emit(this.data);\n },\n (error) => {\n if (this.onError) {\n this.onError.emit(error);\n }\n this.errorCb(error);\n }\n );\n }\n\n setData(data: any): void {\n this.data = this.data.fromJson(data);\n this.onDataLoaded.emit(this.data);\n }\n\n afterData(): void {}\n\n errorCb(error: HttpErrorResponse): void {}\n\n ngOnDestroy(): void {\n if (this.dataSubscriber) {\n this.dataSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autoInit) {\n this.getData();\n }\n }\n\n trackByFn(index, item) {\n return index;\n }\n\n trackByIdFn(index, item) {\n return item.id;\n }\n\n changeSelectedOption(selectedOption: any): void {\n this.selectedOption = selectedOption;\n this.getData();\n }\n}\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\nexport {API_CONFIG as ɵa} from './lib/api.config';"],"names":["InjectionToken","share","map","throwError","Injectable","Inject","HttpClient","InjectorInstance","NgModule","HttpClientModule","CommonModule","Injector","moment.utc","EventEmitter","Directive","Input","Output"],"mappings":"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"}
1
+ {"version":3,"file":"gtd-ng-widget.umd.js","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';\nimport { AfterViewInit, Directive, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\n\n@Directive()\n// tslint:disable-next-line\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\n @Input() autoInit = false;\n @Input() settings: any = {};\n @Input() dates: any = {\n from: moment.utc().startOf('month'),\n to: moment.utc().endOf('day'),\n };\n @Input() options = {};\n @Input() selectedOption = {};\n @Output() onError = new EventEmitter();\n @Output() onDataLoaded = new EventEmitter();\n protected abstract readonly key: string;\n public abstract data: TypeResponseInterface;\n private isLoadingValue = false;\n private widgetDataService: DataService = new DataService();\n private dataSubscriber: Subscription;\n\n getKey(): string {\n return this.key;\n }\n\n getSettings(): string {\n return {\n ...this.settings,\n ...this.selectedOption,\n };\n }\n\n getDates(): any {\n return this.dates;\n }\n\n getConfig(): any {\n return {\n widget: this.getKey(),\n settings: this.getSettings(),\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\n };\n }\n\n get isLoading(): boolean {\n return this.isLoadingValue;\n }\n\n setIsLoading(isLoading: boolean): void {\n this.isLoadingValue = isLoading;\n }\n\n getData(): void {\n if (this.isLoading) {\n return;\n }\n this.setIsLoading(true);\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\n (data) => {\n this.data = this.data.fromJson(data);\n this.setIsLoading(false);\n this.afterData();\n this.onDataLoaded.emit(this.data);\n },\n (error) => {\n if (this.onError) {\n this.onError.emit(error);\n }\n this.errorCb(error);\n }\n );\n }\n\n setData(data: any): void {\n this.data = this.data.fromJson(data);\n this.onDataLoaded.emit(this.data);\n }\n\n afterData(): void {}\n\n errorCb(error: HttpErrorResponse): void {}\n\n ngOnDestroy(): void {\n if (this.dataSubscriber) {\n this.dataSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autoInit) {\n this.getData();\n }\n }\n\n trackByFn(index, item) {\n return index;\n }\n\n trackByIdFn(index, item) {\n return item.id;\n }\n\n changeSelectedOption(selectedOption: any): void {\n this.selectedOption = selectedOption;\n this.getData();\n }\n}\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\nexport {API_CONFIG as ɵa} from './lib/api.config';"],"names":["InjectionToken","share","map","throwError","Injectable","Inject","HttpClient","InjectorInstance","NgModule","HttpClientModule","CommonModule","Injector","moment.utc","EventEmitter","Directive","Input","Output"],"mappings":";;;;;;QAEa,UAAU,GAAG,IAAIA,mBAAc,CAAkB,WAAW;;;QCMvE,wBAAwC,SAAc,EAAU,IAAgB;YAAxC,cAAS,GAAT,SAAS,CAAK;YAAU,SAAI,GAAJ,IAAI,CAAY;SAAI;QAEpF,oCAAW,GAAX,UAAY,aAAoB;YAC9B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACxC,OAAO,IAAI,CAAC,IAAI;qBACb,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,qBAAqB,EAAE;oBAChD,OAAO,EAAE,aAAa;iBACvB,CAAC;qBACD,IAAI,CACHC,eAAK,EAAE,EACPC,aAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,IAAI,GAAA,CAAC,CACxB,CAAC;aACL;iBAAM;gBACL,OAAOC,eAAU,CAAC,eAAe,CAAC,CAAC;aACpC;SACF;;;;gBAjBFC,eAAU;;;gDAEIC,WAAM,SAAC,UAAU;gBARvBC,eAAU;;;;QCcjB,2BAAoB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;YACpCC,wBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;SAClC;QAEM,yBAAO,GAAd,UAAe,SAAS;YACtB,OAAO;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE;oBACT,cAAc;oBACd;wBACE,OAAO,EAAE,UAAU;wBACnB,QAAQ,EAAE,SAAS;qBACpB;iBACF;aACF,CAAC;SACH;;;;gBArBFC,aAAQ,SAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAACC,qBAAgB,EAAEC,mBAAY,CAAC;oBACzC,OAAO,EAAE,EAAE;iBACZ;;;gBAVQC,aAAQ;;;ICMjB;QAIE;YACE,IAAI,CAAC,IAAI,GAAGJ,wBAAgB,CAAC,GAAG,CAAaD,eAAU,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,GAAGC,wBAAgB,CAAC,GAAG,CAAkB,UAAU,CAAC,CAAC;SACpE;QAEM,0BAAI,GAAJ,UAAK,UAAe;YACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,cAAc,EAAE,UAAU,CAAC,CAAC,IAAI,CACzEN,eAAK,EAAE,EACPC,aAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,IAAI,GAAA,CAAC,CACxB,CAAC;aACH;iBAAM;gBACL,OAAOC,eAAU,CAAC,eAAe,CAAC,CAAC;aACpC;SACF;;;;gBAnBFC,eAAU;;;;ICCX;;QADA;YAGW,aAAQ,GAAG,KAAK,CAAC;YACjB,aAAQ,GAAQ,EAAE,CAAC;YACnB,UAAK,GAAQ;gBACpB,IAAI,EAAEQ,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnC,EAAE,EAAEA,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;aAC9B,CAAC;YACO,YAAO,GAAG,EAAE,CAAC;YACb,mBAAc,GAAG,EAAE,CAAC;YACnB,YAAO,GAAG,IAAIC,iBAAY,EAAE,CAAC;YAC7B,iBAAY,GAAG,IAAIA,iBAAY,EAAE,CAAC;YAGpC,mBAAc,GAAG,KAAK,CAAC;YACvB,sBAAiB,GAAgB,IAAI,WAAW,EAAE,CAAC;SAyF5D;QAtFC,6CAAM,GAAN;YACE,OAAO,IAAI,CAAC,GAAG,CAAC;SACjB;QAED,kDAAW,GAAX;YACE,uCACK,IAAI,CAAC,QAAQ,GACb,IAAI,CAAC,cAAc,EACtB;SACH;QAED,+CAAQ,GAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAED,gDAAS,GAAT;YACE,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;gBACxD,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;aACrD,CAAC;SACH;QAED,sBAAI,mDAAS;iBAAb;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC;aAC5B;;;WAAA;QAED,mDAAY,GAAZ,UAAa,SAAkB;YAC7B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SACjC;QAED,8CAAO,GAAP;YAAA,iBAmBC;YAlBC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAC3E,UAAC,IAAI;gBACH,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,KAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;aACnC,EACD,UAAC,KAAK;gBACJ,IAAI,KAAI,CAAC,OAAO,EAAE;oBAChB,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC1B;gBACD,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACrB,CACF,CAAC;SACH;QAED,8CAAO,GAAP,UAAQ,IAAS;YACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,gDAAS,GAAT,eAAoB;QAEpB,8CAAO,GAAP,UAAQ,KAAwB,KAAU;QAE1C,kDAAW,GAAX;YACE,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;aACnC;SACF;QAED,sDAAe,GAAf;YACE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF;QAED,gDAAS,GAAT,UAAU,KAAK,EAAE,IAAI;YACnB,OAAO,KAAK,CAAC;SACd;QAED,kDAAW,GAAX,UAAY,KAAK,EAAE,IAAI;YACrB,OAAO,IAAI,CAAC,EAAE,CAAC;SAChB;QAED,2DAAoB,GAApB,UAAqB,cAAmB;YACtC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;;;;gBAxGFC,cAAS;;;2BAGPC,UAAK;2BACLA,UAAK;wBACLA,UAAK;0BAILA,UAAK;iCACLA,UAAK;0BACLC,WAAM;+BACNA,WAAM;;;;QCjBT;SAQC;QALQ,+BAAQ,GAAR,UAAS,IAAS;;YACvB,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,OAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,IAAG,IAAI,EAAE,OAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,EAAE,IAAG,IAAI,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC;SACf;2BACF;KAAA,IAAA;;QAGC,eAAmB,IAAY,EAAS,EAAU;YAA/B,SAAI,GAAJ,IAAI,CAAQ;YAAS,OAAE,GAAF,EAAE,CAAQ;SAAI;oBACvD;KAAA;;ICdD;;;;ICAA;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common/http"),require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common"),require("moment")):"function"==typeof define&&define.amd?define("gtd-ng-widget",["exports","@angular/common/http","@angular/core","rxjs","rxjs/operators","@angular/common","moment"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["gtd-ng-widget"]={},t.ng.common.http,t.ng.core,t.rxjs,t.rxjs.operators,t.ng.common,t.moment)}(this,(function(t,e,o,n,i,r,a){"use strict";var s=new o.InjectionToken("ApiConfig"),p=function(){function t(t,e){this.apiConfig=t,this.http=e}return t.prototype.dataBatched=function(t){return this.apiConfig&&this.apiConfig.api?this.http.post(this.apiConfig.api+"/widget/dataBatched",{widgets:t}).pipe(i.share(),i.map((function(t){return t.data}))):n.throwError("no api config")},t}();p.decorators=[{type:o.Injectable}],p.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[s]}]},{type:e.HttpClient}]};var u=function(){function e(e){this.injector=e,t.InjectorInstance=this.injector}return e.forRoot=function(t){return{ngModule:e,providers:[p,{provide:s,useValue:t}]}},e}();u.decorators=[{type:o.NgModule,args:[{declarations:[],imports:[e.HttpClientModule,r.CommonModule],exports:[]}]}],u.ctorParameters=function(){return[{type:o.Injector}]};var c=function(){function o(){this.http=t.InjectorInstance.get(e.HttpClient),this.apiConfig=t.InjectorInstance.get(s)}return o.prototype.data=function(t){return this.apiConfig&&this.apiConfig.api?this.http.post(this.apiConfig.api+"/widget/data",t).pipe(i.share(),i.map((function(t){return t.data}))):n.throwError("no api config")},o}();c.decorators=[{type:o.Injectable}],c.ctorParameters=function(){return[]};var d=function(){function t(){this.autoInit=!1,this.settings={},this.dates={from:a.utc().startOf("month"),to:a.utc().endOf("day")},this.options={},this.selectedOption={},this.onError=new o.EventEmitter,this.onDataLoaded=new o.EventEmitter,this.isLoadingValue=!0,this.widgetDataService=new c}return t.prototype.getKey=function(){return this.key},t.prototype.getSettings=function(){return Object.assign(Object.assign({},this.settings),this.selectedOption)},t.prototype.getDates=function(){return this.dates},t.prototype.getConfig=function(){return{widget:this.getKey(),settings:this.getSettings(),from:this.getDates().from.format("YYYY/MM/DD HH:mm:ss"),to:this.getDates().to.format("YYYY/MM/DD HH:mm:ss")}},Object.defineProperty(t.prototype,"isLoading",{get:function(){return this.isLoadingValue},enumerable:!1,configurable:!0}),t.prototype.setIsLoading=function(t){this.isLoadingValue=t},t.prototype.getData=function(){var t=this;this.setIsLoading(!0),this.dataSubscriber=this.widgetDataService.data(this.getConfig()).subscribe((function(e){t.data=t.data.fromJson(e),t.setIsLoading(!1),t.afterData(),t.onDataLoaded.emit(t.data)}),(function(e){t.onError&&t.onError.emit(e),t.errorCb(e)}))},t.prototype.setData=function(t){this.data=this.data.fromJson(t),this.onDataLoaded.emit(this.data)},t.prototype.afterData=function(){},t.prototype.errorCb=function(t){},t.prototype.ngOnDestroy=function(){this.dataSubscriber&&this.dataSubscriber.unsubscribe()},t.prototype.ngAfterViewInit=function(){this.autoInit&&this.getData()},t.prototype.trackByFn=function(t,e){return t},t.prototype.trackByIdFn=function(t,e){return e.id},t.prototype.changeSelectedOption=function(t){this.selectedOption=t,this.getData()},t}();d.decorators=[{type:o.Directive}],d.propDecorators={autoInit:[{type:o.Input}],settings:[{type:o.Input}],dates:[{type:o.Input}],options:[{type:o.Input}],selectedOption:[{type:o.Input}],onError:[{type:o.Output}],onDataLoaded:[{type:o.Output}]};var f=function(){function t(){}return t.prototype.fromJson=function(t){var e,o,n=Object.assign(this,t);return n.dates=new g(1e3*(null===(e=null==t?void 0:t.dates)||void 0===e?void 0:e.from),1e3*(null===(o=null==t?void 0:t.dates)||void 0===o?void 0:o.to)),n},t}(),g=function(t,e){this.from=t,this.to=e};t.Dates=g,t.GtdNgWidgetComponentAbstract=d,t.GtdNgWidgetModule=u,t.TypeResponse=f,t.WidgetsService=p,t.ɵa=s,Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common/http"),require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common"),require("moment")):"function"==typeof define&&define.amd?define("gtd-ng-widget",["exports","@angular/common/http","@angular/core","rxjs","rxjs/operators","@angular/common","moment"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["gtd-ng-widget"]={},t.ng.common.http,t.ng.core,t.rxjs,t.rxjs.operators,t.ng.common,t.moment)}(this,(function(t,e,o,n,i,r,a){"use strict";var s=new o.InjectionToken("ApiConfig"),p=function(){function t(t,e){this.apiConfig=t,this.http=e}return t.prototype.dataBatched=function(t){return this.apiConfig&&this.apiConfig.api?this.http.post(this.apiConfig.api+"/widget/dataBatched",{widgets:t}).pipe(i.share(),i.map((function(t){return t.data}))):n.throwError("no api config")},t}();p.decorators=[{type:o.Injectable}],p.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[s]}]},{type:e.HttpClient}]};var u=function(){function e(e){this.injector=e,t.InjectorInstance=this.injector}return e.forRoot=function(t){return{ngModule:e,providers:[p,{provide:s,useValue:t}]}},e}();u.decorators=[{type:o.NgModule,args:[{declarations:[],imports:[e.HttpClientModule,r.CommonModule],exports:[]}]}],u.ctorParameters=function(){return[{type:o.Injector}]};var c=function(){function o(){this.http=t.InjectorInstance.get(e.HttpClient),this.apiConfig=t.InjectorInstance.get(s)}return o.prototype.data=function(t){return this.apiConfig&&this.apiConfig.api?this.http.post(this.apiConfig.api+"/widget/data",t).pipe(i.share(),i.map((function(t){return t.data}))):n.throwError("no api config")},o}();c.decorators=[{type:o.Injectable}],c.ctorParameters=function(){return[]};var d=function(){function t(){this.autoInit=!1,this.settings={},this.dates={from:a.utc().startOf("month"),to:a.utc().endOf("day")},this.options={},this.selectedOption={},this.onError=new o.EventEmitter,this.onDataLoaded=new o.EventEmitter,this.isLoadingValue=!1,this.widgetDataService=new c}return t.prototype.getKey=function(){return this.key},t.prototype.getSettings=function(){return Object.assign(Object.assign({},this.settings),this.selectedOption)},t.prototype.getDates=function(){return this.dates},t.prototype.getConfig=function(){return{widget:this.getKey(),settings:this.getSettings(),from:this.getDates().from.format("YYYY/MM/DD HH:mm:ss"),to:this.getDates().to.format("YYYY/MM/DD HH:mm:ss")}},Object.defineProperty(t.prototype,"isLoading",{get:function(){return this.isLoadingValue},enumerable:!1,configurable:!0}),t.prototype.setIsLoading=function(t){this.isLoadingValue=t},t.prototype.getData=function(){var t=this;this.isLoading||(this.setIsLoading(!0),this.dataSubscriber=this.widgetDataService.data(this.getConfig()).subscribe((function(e){t.data=t.data.fromJson(e),t.setIsLoading(!1),t.afterData(),t.onDataLoaded.emit(t.data)}),(function(e){t.onError&&t.onError.emit(e),t.errorCb(e)})))},t.prototype.setData=function(t){this.data=this.data.fromJson(t),this.onDataLoaded.emit(this.data)},t.prototype.afterData=function(){},t.prototype.errorCb=function(t){},t.prototype.ngOnDestroy=function(){this.dataSubscriber&&this.dataSubscriber.unsubscribe()},t.prototype.ngAfterViewInit=function(){this.autoInit&&this.getData()},t.prototype.trackByFn=function(t,e){return t},t.prototype.trackByIdFn=function(t,e){return e.id},t.prototype.changeSelectedOption=function(t){this.selectedOption=t,this.getData()},t}();d.decorators=[{type:o.Directive}],d.propDecorators={autoInit:[{type:o.Input}],settings:[{type:o.Input}],dates:[{type:o.Input}],options:[{type:o.Input}],selectedOption:[{type:o.Input}],onError:[{type:o.Output}],onDataLoaded:[{type:o.Output}]};var f=function(){function t(){}return t.prototype.fromJson=function(t){var e,o,n=Object.assign(this,t);return n.dates=new g(1e3*(null===(e=null==t?void 0:t.dates)||void 0===e?void 0:e.from),1e3*(null===(o=null==t?void 0:t.dates)||void 0===o?void 0:o.to)),n},t}(),g=function(t,e){this.from=t,this.to=e};t.Dates=g,t.GtdNgWidgetComponentAbstract=d,t.GtdNgWidgetModule=u,t.TypeResponse=f,t.WidgetsService=p,t.ɵa=s,Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=gtd-ng-widget.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"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"],"names":["API_CONFIG","InjectionToken","WidgetsService","apiConfig","http","this","prototype","dataBatched","widgetConfigs","api","post","widgets","pipe","share","map","r","data","throwError","Injectable","Inject","args","HttpClient","GtdNgWidgetModule","injector","InjectorInstance","forRoot","ngModule","providers","provide","useValue","NgModule","declarations","imports","HttpClientModule","CommonModule","exports","Injector","DataService","get","dataConfig","GtdNgWidgetComponentAbstract","autoInit","settings","dates","from","moment.utc","startOf","to","endOf","options","selectedOption","onError","EventEmitter","onDataLoaded","isLoadingValue","widgetDataService","getKey","key","getSettings","Object","assign","getDates","getConfig","widget","format","defineProperty","setIsLoading","isLoading","getData","_this","dataSubscriber","subscribe","fromJson","afterData","emit","error","errorCb","setData","ngOnDestroy","unsubscribe","ngAfterViewInit","trackByFn","index","item","trackByIdFn","id","changeSelectedOption","Directive","Input","Output","TypeResponse","json","object","Dates","_a","_b"],"mappings":"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","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';\nimport { AfterViewInit, Directive, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\n\n@Directive()\n// tslint:disable-next-line\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\n @Input() autoInit = false;\n @Input() settings: any = {};\n @Input() dates: any = {\n from: moment.utc().startOf('month'),\n to: moment.utc().endOf('day'),\n };\n @Input() options = {};\n @Input() selectedOption = {};\n @Output() onError = new EventEmitter();\n @Output() onDataLoaded = new EventEmitter();\n protected abstract readonly key: string;\n public abstract data: TypeResponseInterface;\n private isLoadingValue = true;\n private widgetDataService: DataService = new DataService();\n private dataSubscriber: Subscription;\n\n getKey(): string {\n return this.key;\n }\n\n getSettings(): string {\n return {\n ...this.settings,\n ...this.selectedOption,\n };\n }\n\n getDates(): any {\n return this.dates;\n }\n\n getConfig(): any {\n return {\n widget: this.getKey(),\n settings: this.getSettings(),\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\n };\n }\n\n get isLoading(): boolean {\n return this.isLoadingValue;\n }\n\n setIsLoading(isLoading: boolean): void {\n this.isLoadingValue = isLoading;\n }\n\n getData(): void {\n this.setIsLoading(true);\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\n (data) => {\n this.data = this.data.fromJson(data);\n this.setIsLoading(false);\n this.afterData();\n this.onDataLoaded.emit(this.data);\n },\n (error) => {\n if (this.onError) {\n this.onError.emit(error);\n }\n this.errorCb(error);\n }\n );\n }\n\n setData(data: any): void {\n this.data = this.data.fromJson(data);\n this.onDataLoaded.emit(this.data);\n }\n\n afterData(): void {}\n\n errorCb(error: HttpErrorResponse): void {}\n\n ngOnDestroy(): void {\n if (this.dataSubscriber) {\n this.dataSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autoInit) {\n this.getData();\n }\n }\n\n trackByFn(index, item) {\n return index;\n }\n\n trackByIdFn(index, item) {\n return item.id;\n }\n\n changeSelectedOption(selectedOption: any): void {\n this.selectedOption = selectedOption;\n this.getData();\n }\n}\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"]}
1
+ {"version":3,"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"],"names":["API_CONFIG","InjectionToken","WidgetsService","apiConfig","http","this","prototype","dataBatched","widgetConfigs","api","post","widgets","pipe","share","map","r","data","throwError","Injectable","Inject","args","HttpClient","GtdNgWidgetModule","injector","InjectorInstance","forRoot","ngModule","providers","provide","useValue","NgModule","declarations","imports","HttpClientModule","CommonModule","exports","Injector","DataService","get","dataConfig","GtdNgWidgetComponentAbstract","autoInit","settings","dates","from","moment.utc","startOf","to","endOf","options","selectedOption","onError","EventEmitter","onDataLoaded","isLoadingValue","widgetDataService","getKey","key","getSettings","Object","assign","getDates","getConfig","widget","format","defineProperty","setIsLoading","isLoading","getData","_this","dataSubscriber","subscribe","fromJson","afterData","emit","error","errorCb","setData","ngOnDestroy","unsubscribe","ngAfterViewInit","trackByFn","index","item","trackByIdFn","id","changeSelectedOption","Directive","Input","Output","TypeResponse","json","object","Dates","_a","_b"],"mappings":"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","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';\nimport { AfterViewInit, Directive, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\n\n@Directive()\n// tslint:disable-next-line\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\n @Input() autoInit = false;\n @Input() settings: any = {};\n @Input() dates: any = {\n from: moment.utc().startOf('month'),\n to: moment.utc().endOf('day'),\n };\n @Input() options = {};\n @Input() selectedOption = {};\n @Output() onError = new EventEmitter();\n @Output() onDataLoaded = new EventEmitter();\n protected abstract readonly key: string;\n public abstract data: TypeResponseInterface;\n private isLoadingValue = false;\n private widgetDataService: DataService = new DataService();\n private dataSubscriber: Subscription;\n\n getKey(): string {\n return this.key;\n }\n\n getSettings(): string {\n return {\n ...this.settings,\n ...this.selectedOption,\n };\n }\n\n getDates(): any {\n return this.dates;\n }\n\n getConfig(): any {\n return {\n widget: this.getKey(),\n settings: this.getSettings(),\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\n };\n }\n\n get isLoading(): boolean {\n return this.isLoadingValue;\n }\n\n setIsLoading(isLoading: boolean): void {\n this.isLoadingValue = isLoading;\n }\n\n getData(): void {\n if (this.isLoading) {\n return;\n }\n this.setIsLoading(true);\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\n (data) => {\n this.data = this.data.fromJson(data);\n this.setIsLoading(false);\n this.afterData();\n this.onDataLoaded.emit(this.data);\n },\n (error) => {\n if (this.onError) {\n this.onError.emit(error);\n }\n this.errorCb(error);\n }\n );\n }\n\n setData(data: any): void {\n this.data = this.data.fromJson(data);\n this.onDataLoaded.emit(this.data);\n }\n\n afterData(): void {}\n\n errorCb(error: HttpErrorResponse): void {}\n\n ngOnDestroy(): void {\n if (this.dataSubscriber) {\n this.dataSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autoInit) {\n this.getData();\n }\n }\n\n trackByFn(index, item) {\n return index;\n }\n\n trackByIdFn(index, item) {\n return item.id;\n }\n\n changeSelectedOption(selectedOption: any): void {\n this.selectedOption = selectedOption;\n this.getData();\n }\n}\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"]}
@@ -14,7 +14,7 @@ export class GtdNgWidgetComponentAbstract {
14
14
  this.selectedOption = {};
15
15
  this.onError = new EventEmitter();
16
16
  this.onDataLoaded = new EventEmitter();
17
- this.isLoadingValue = true;
17
+ this.isLoadingValue = false;
18
18
  this.widgetDataService = new DataService();
19
19
  }
20
20
  getKey() {
@@ -41,6 +41,9 @@ export class GtdNgWidgetComponentAbstract {
41
41
  this.isLoadingValue = isLoading;
42
42
  }
43
43
  getData() {
44
+ if (this.isLoading) {
45
+ return;
46
+ }
44
47
  this.setIsLoading(true);
45
48
  this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe((data) => {
46
49
  this.data = this.data.fromJson(data);
@@ -93,4 +96,4 @@ GtdNgWidgetComponentAbstract.propDecorators = {
93
96
  onError: [{ type: Output }],
94
97
  onDataLoaded: [{ type: Output }]
95
98
  };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RkLW5nLXdpZGdldC1jb21wb25lbnQuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2d0ZC1uZy13aWRnZXQtY29tcG9uZW50LmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBYyxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFnQiw0QkFBNEI7SUFGbEQ7UUFHVyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFRO1lBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDOUIsQ0FBQztRQUNPLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsc0JBQWlCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7SUFzRjdELENBQUM7SUFuRkMsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULHVDQUNLLElBQUksQ0FBQyxRQUFRLEdBQ2IsSUFBSSxDQUFDLGNBQWMsRUFDdEI7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7WUFDeEQsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBa0I7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQzNFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDMUI7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVMsS0FBVSxDQUFDO0lBRXBCLE9BQU8sQ0FBQyxLQUF3QixJQUFTLENBQUM7SUFFMUMsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDckIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxjQUFtQjtRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7O1lBckdGLFNBQVM7Ozt1QkFHUCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSztzQkFJTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsTUFBTTsyQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBUeXBlUmVzcG9uc2VJbnRlcmZhY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ludGVyZmFjZXMvdHlwZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5ARGlyZWN0aXZlKClcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEd0ZE5nV2lkZ2V0Q29tcG9uZW50QWJzdHJhY3QgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBhdXRvSW5pdCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXR0aW5nczogYW55ID0ge307XG4gIEBJbnB1dCgpIGRhdGVzOiBhbnkgPSB7XG4gICAgZnJvbTogbW9tZW50LnV0YygpLnN0YXJ0T2YoJ21vbnRoJyksXG4gICAgdG86IG1vbWVudC51dGMoKS5lbmRPZignZGF5JyksXG4gIH07XG4gIEBJbnB1dCgpIG9wdGlvbnMgPSB7fTtcbiAgQElucHV0KCkgc2VsZWN0ZWRPcHRpb24gPSB7fTtcbiAgQE91dHB1dCgpIG9uRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkRhdGFMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBrZXk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGRhdGE6IFR5cGVSZXNwb25zZUludGVyZmFjZTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdWYWx1ZSA9IHRydWU7XG4gIHByaXZhdGUgd2lkZ2V0RGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlID0gbmV3IERhdGFTZXJ2aWNlKCk7XG4gIHByaXZhdGUgZGF0YVN1YnNjcmliZXI6IFN1YnNjcmlwdGlvbjtcblxuICBnZXRLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5rZXk7XG4gIH1cblxuICBnZXRTZXR0aW5ncygpOiBzdHJpbmcge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnNldHRpbmdzLFxuICAgICAgLi4udGhpcy5zZWxlY3RlZE9wdGlvbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGF0ZXMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRlcztcbiAgfVxuXG4gIGdldENvbmZpZygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB3aWRnZXQ6IHRoaXMuZ2V0S2V5KCksXG4gICAgICBzZXR0aW5nczogdGhpcy5nZXRTZXR0aW5ncygpLFxuICAgICAgZnJvbTogdGhpcy5nZXREYXRlcygpLmZyb20uZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXG4gICAgICB0bzogdGhpcy5nZXREYXRlcygpLnRvLmZvcm1hdCgnWVlZWS9NTS9ERCBISDptbTpzcycpLFxuICAgIH07XG4gIH1cblxuICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1ZhbHVlO1xuICB9XG5cbiAgc2V0SXNMb2FkaW5nKGlzTG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nVmFsdWUgPSBpc0xvYWRpbmc7XG4gIH1cblxuICBnZXREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgIHRoaXMuZGF0YVN1YnNjcmliZXIgPSB0aGlzLndpZGdldERhdGFTZXJ2aWNlLmRhdGEodGhpcy5nZXRDb25maWcoKSkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLmZyb21Kc29uKGRhdGEpO1xuICAgICAgICB0aGlzLnNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIHRoaXMuYWZ0ZXJEYXRhKCk7XG4gICAgICAgIHRoaXMub25EYXRhTG9hZGVkLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub25FcnJvcikge1xuICAgICAgICAgIHRoaXMub25FcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVycm9yQ2IoZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBzZXREYXRhKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5mcm9tSnNvbihkYXRhKTtcbiAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBhZnRlckRhdGEoKTogdm9pZCB7fVxuXG4gIGVycm9yQ2IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTdWJzY3JpYmVyKSB7XG4gICAgICB0aGlzLmRhdGFTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9Jbml0KSB7XG4gICAgICB0aGlzLmdldERhdGEoKTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICB0cmFja0J5SWRGbihpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgY2hhbmdlU2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb246IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBzZWxlY3RlZE9wdGlvbjtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3RkLW5nLXdpZGdldC1jb21wb25lbnQuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2d0ZC1uZy13aWRnZXQtY29tcG9uZW50LmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBYyxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFnQiw0QkFBNEI7SUFGbEQ7UUFHVyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFRO1lBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDOUIsQ0FBQztRQUNPLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsc0JBQWlCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7SUF5RjdELENBQUM7SUF0RkMsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULHVDQUNLLElBQUksQ0FBQyxRQUFRLEdBQ2IsSUFBSSxDQUFDLGNBQWMsRUFDdEI7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE9B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IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHlwZVJlc3BvbnNlSW50ZXJmYWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbnRlcmZhY2VzL3R5cGUtcmVzcG9uc2UuaW50ZXJmYWNlJztcblxuQERpcmVjdGl2ZSgpXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHdGROZ1dpZGdldENvbXBvbmVudEFic3RyYWN0IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgYXV0b0luaXQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0dGluZ3M6IGFueSA9IHt9O1xuICBASW5wdXQoKSBkYXRlczogYW55ID0ge1xuICAgIGZyb206IG1vbWVudC51dGMoKS5zdGFydE9mKCdtb250aCcpLFxuICAgIHRvOiBtb21lbnQudXRjKCkuZW5kT2YoJ2RheScpLFxuICB9O1xuICBASW5wdXQoKSBvcHRpb25zID0ge307XG4gIEBJbnB1dCgpIHNlbGVjdGVkT3B0aW9uID0ge307XG4gIEBPdXRwdXQoKSBvbkVycm9yID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25EYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBkYXRhOiBUeXBlUmVzcG9uc2VJbnRlcmZhY2U7XG4gIHByaXZhdGUgaXNMb2FkaW5nVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSB3aWRnZXREYXRhU2VydmljZTogRGF0YVNlcnZpY2UgPSBuZXcgRGF0YVNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBkYXRhU3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uO1xuXG4gIGdldEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmtleTtcbiAgfVxuXG4gIGdldFNldHRpbmdzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc2V0dGluZ3MsXG4gICAgICAuLi50aGlzLnNlbGVjdGVkT3B0aW9uLFxuICAgIH07XG4gIH1cblxuICBnZXREYXRlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGVzO1xuICB9XG5cbiAgZ2V0Q29uZmlnKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZGdldDogdGhpcy5nZXRLZXkoKSxcbiAgICAgIHNldHRpbmdzOiB0aGlzLmdldFNldHRpbmdzKCksXG4gICAgICBmcm9tOiB0aGlzLmdldERhdGVzKCkuZnJvbS5mb3JtYXQoJ1lZWVkvTU0vREQgSEg6bW06c3MnKSxcbiAgICAgIHRvOiB0aGlzLmdldERhdGVzKCkudG8uZm9ybWF0KCdZWVlZL01NL0REIEhIOm1tOnNzJyksXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nVmFsdWU7XG4gIH1cblxuICBzZXRJc0xvYWRpbmcoaXNMb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmdWYWx1ZSA9IGlzTG9hZGluZztcbiAgfVxuXG4gIGdldERhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgIHRoaXMuZGF0YVN1YnNjcmliZXIgPSB0aGlzLndpZGdldERhdGFTZXJ2aWNlLmRhdGEodGhpcy5nZXRDb25maWcoKSkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLmZyb21Kc29uKGRhdGEpO1xuICAgICAgICB0aGlzLnNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIHRoaXMuYWZ0ZXJEYXRhKCk7XG4gICAgICAgIHRoaXMub25EYXRhTG9hZGVkLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub25FcnJvcikge1xuICAgICAgICAgIHRoaXMub25FcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVycm9yQ2IoZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBzZXREYXRhKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5mcm9tSnNvbihkYXRhKTtcbiAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBhZnRlckRhdGEoKTogdm9pZCB7fVxuXG4gIGVycm9yQ2IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTdWJzY3JpYmVyKSB7XG4gICAgICB0aGlzLmRhdGFTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9Jbml0KSB7XG4gICAgICB0aGlzLmdldERhdGEoKTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICB0cmFja0J5SWRGbihpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgY2hhbmdlU2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb246IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBzZWxlY3RlZE9wdGlvbjtcbiAgICB0aGlzLmdldERhdGEoKTtcbiAgfVxufVxuIl19
@@ -95,7 +95,7 @@ class GtdNgWidgetComponentAbstract {
95
95
  this.selectedOption = {};
96
96
  this.onError = new EventEmitter();
97
97
  this.onDataLoaded = new EventEmitter();
98
- this.isLoadingValue = true;
98
+ this.isLoadingValue = false;
99
99
  this.widgetDataService = new DataService();
100
100
  }
101
101
  getKey() {
@@ -122,6 +122,9 @@ class GtdNgWidgetComponentAbstract {
122
122
  this.isLoadingValue = isLoading;
123
123
  }
124
124
  getData() {
125
+ if (this.isLoading) {
126
+ return;
127
+ }
125
128
  this.setIsLoading(true);
126
129
  this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe((data) => {
127
130
  this.data = this.data.fromJson(data);
@@ -1 +1 @@
1
- {"version":3,"file":"gtd-ng-widget.js","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';\nimport { AfterViewInit, Directive, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\n\n@Directive()\n// tslint:disable-next-line\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\n @Input() autoInit = false;\n @Input() settings: any = {};\n @Input() dates: any = {\n from: moment.utc().startOf('month'),\n to: moment.utc().endOf('day'),\n };\n @Input() options = {};\n @Input() selectedOption = {};\n @Output() onError = new EventEmitter();\n @Output() onDataLoaded = new EventEmitter();\n protected abstract readonly key: string;\n public abstract data: TypeResponseInterface;\n private isLoadingValue = true;\n private widgetDataService: DataService = new DataService();\n private dataSubscriber: Subscription;\n\n getKey(): string {\n return this.key;\n }\n\n getSettings(): string {\n return {\n ...this.settings,\n ...this.selectedOption,\n };\n }\n\n getDates(): any {\n return this.dates;\n }\n\n getConfig(): any {\n return {\n widget: this.getKey(),\n settings: this.getSettings(),\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\n };\n }\n\n get isLoading(): boolean {\n return this.isLoadingValue;\n }\n\n setIsLoading(isLoading: boolean): void {\n this.isLoadingValue = isLoading;\n }\n\n getData(): void {\n this.setIsLoading(true);\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\n (data) => {\n this.data = this.data.fromJson(data);\n this.setIsLoading(false);\n this.afterData();\n this.onDataLoaded.emit(this.data);\n },\n (error) => {\n if (this.onError) {\n this.onError.emit(error);\n }\n this.errorCb(error);\n }\n );\n }\n\n setData(data: any): void {\n this.data = this.data.fromJson(data);\n this.onDataLoaded.emit(this.data);\n }\n\n afterData(): void {}\n\n errorCb(error: HttpErrorResponse): void {}\n\n ngOnDestroy(): void {\n if (this.dataSubscriber) {\n this.dataSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autoInit) {\n this.getData();\n }\n }\n\n trackByFn(index, item) {\n return index;\n }\n\n trackByIdFn(index, item) {\n return item.id;\n }\n\n changeSelectedOption(selectedOption: any): void {\n this.selectedOption = selectedOption;\n this.getData();\n }\n}\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\nexport {API_CONFIG as ɵa} from './lib/api.config';"],"names":["moment.utc"],"mappings":"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"}
1
+ {"version":3,"file":"gtd-ng-widget.js","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';\nimport { AfterViewInit, Directive, EventEmitter, Injectable, Input, OnDestroy, Output } from '@angular/core';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { TypeResponseInterface } from './services/interfaces/type-response.interface';\n\n@Directive()\n// tslint:disable-next-line\nexport abstract class GtdNgWidgetComponentAbstract implements OnDestroy, AfterViewInit {\n @Input() autoInit = false;\n @Input() settings: any = {};\n @Input() dates: any = {\n from: moment.utc().startOf('month'),\n to: moment.utc().endOf('day'),\n };\n @Input() options = {};\n @Input() selectedOption = {};\n @Output() onError = new EventEmitter();\n @Output() onDataLoaded = new EventEmitter();\n protected abstract readonly key: string;\n public abstract data: TypeResponseInterface;\n private isLoadingValue = false;\n private widgetDataService: DataService = new DataService();\n private dataSubscriber: Subscription;\n\n getKey(): string {\n return this.key;\n }\n\n getSettings(): string {\n return {\n ...this.settings,\n ...this.selectedOption,\n };\n }\n\n getDates(): any {\n return this.dates;\n }\n\n getConfig(): any {\n return {\n widget: this.getKey(),\n settings: this.getSettings(),\n from: this.getDates().from.format('YYYY/MM/DD HH:mm:ss'),\n to: this.getDates().to.format('YYYY/MM/DD HH:mm:ss'),\n };\n }\n\n get isLoading(): boolean {\n return this.isLoadingValue;\n }\n\n setIsLoading(isLoading: boolean): void {\n this.isLoadingValue = isLoading;\n }\n\n getData(): void {\n if (this.isLoading) {\n return;\n }\n this.setIsLoading(true);\n this.dataSubscriber = this.widgetDataService.data(this.getConfig()).subscribe(\n (data) => {\n this.data = this.data.fromJson(data);\n this.setIsLoading(false);\n this.afterData();\n this.onDataLoaded.emit(this.data);\n },\n (error) => {\n if (this.onError) {\n this.onError.emit(error);\n }\n this.errorCb(error);\n }\n );\n }\n\n setData(data: any): void {\n this.data = this.data.fromJson(data);\n this.onDataLoaded.emit(this.data);\n }\n\n afterData(): void {}\n\n errorCb(error: HttpErrorResponse): void {}\n\n ngOnDestroy(): void {\n if (this.dataSubscriber) {\n this.dataSubscriber.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.autoInit) {\n this.getData();\n }\n }\n\n trackByFn(index, item) {\n return index;\n }\n\n trackByIdFn(index, item) {\n return item.id;\n }\n\n changeSelectedOption(selectedOption: any): void {\n this.selectedOption = selectedOption;\n this.getData();\n }\n}\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\nexport {API_CONFIG as ɵa} from './lib/api.config';"],"names":["moment.utc"],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gtd-ng-widget",
3
- "version": "11.0.4",
3
+ "version": "11.0.6",
4
4
  "peerDependencies": {
5
5
  "moment": "^2.24.0"
6
6
  },
Binary file