[ACS-11205] Add LazyApi decorator (#11711)

* [ACS-11205] Add LazyApi decorator

* [ACS-11205] Add unit tests and CR fixes

* [ACS-11259] Storybook build fix
This commit is contained in:
Michal Kinas
2026-03-12 10:15:38 +01:00
committed by GitHub
parent 83e80906d8
commit bc41c33ba8
71 changed files with 465 additions and 592 deletions
@@ -28,7 +28,7 @@ import { MultiBarChart } from '../../diagram/models/chart/multi-bar-chart.model'
import { PieChart } from '../../diagram/models/chart/pie-chart.model';
import { TableChart } from '../../diagram/models/chart/table-chart.model';
import { map } from 'rxjs/operators';
import { ProcessDefinitionsApi, ReportApi } from '@alfresco/js-api';
import { LazyApi, ProcessDefinitionsApi, ReportApi } from '@alfresco/js-api';
import { ReportQuery } from '../../diagram/models/report/report-query.model';
import { LineChart } from '../../diagram/models/chart/line-chart.model';
@@ -36,17 +36,11 @@ import { LineChart } from '../../diagram/models/chart/line-chart.model';
export class AnalyticsService {
private readonly apiService = inject(AlfrescoApiService);
private _reportApi: ReportApi;
get reportApi(): ReportApi {
this._reportApi = this._reportApi ?? new ReportApi(this.apiService.getInstance());
return this._reportApi;
}
@LazyApi((self: AnalyticsService) => new ReportApi(self.apiService.getInstance()))
declare readonly reportApi: ReportApi;
private _processDefinitionsApi: ProcessDefinitionsApi;
get processDefinitionsApi(): ProcessDefinitionsApi {
this._processDefinitionsApi = this._processDefinitionsApi ?? new ProcessDefinitionsApi(this.apiService.getInstance());
return this._processDefinitionsApi;
}
@LazyApi((self: AnalyticsService) => new ProcessDefinitionsApi(self.apiService.getInstance()))
declare readonly processDefinitionsApi: ProcessDefinitionsApi;
/**
* Retrieve all the Deployed app
@@ -18,17 +18,14 @@
import { AlfrescoApiService } from '@alfresco/adf-content-services';
import { Injectable, inject } from '@angular/core';
import { Observable, from } from 'rxjs';
import { ModelJsonBpmnApi } from '@alfresco/js-api';
import { LazyApi, ModelJsonBpmnApi } from '@alfresco/js-api';
@Injectable({ providedIn: 'root' })
export class DiagramsService {
private readonly apiService = inject(AlfrescoApiService);
private _modelJsonBpmnApi: ModelJsonBpmnApi;
get modelJsonBpmnApi(): ModelJsonBpmnApi {
this._modelJsonBpmnApi = this._modelJsonBpmnApi ?? new ModelJsonBpmnApi(this.apiService.getInstance());
return this._modelJsonBpmnApi;
}
@LazyApi((self: DiagramsService) => new ModelJsonBpmnApi(self.apiService.getInstance()))
declare readonly modelJsonBpmnApi: ModelJsonBpmnApi;
getProcessDefinitionModel(processDefinitionId: string): Observable<any> {
return from(this.modelJsonBpmnApi.getModelJSON(processDefinitionId));