@alfresco/adf-process-services-cloud
Version:
Alfresco ADF process services cloud
661 lines (651 loc) • 1.07 MB
JavaScript
import * as i0 from '@angular/core';
import { EventEmitter, Output, Input, ViewEncapsulation, Component, Injectable, ContentChild, inject, DestroyRef, Directive, InjectionToken, Inject, NgModule, ViewChild, Optional, ChangeDetectorRef, HostListener, ViewContainerRef, ChangeDetectionStrategy, SecurityContext } from '@angular/core';
import * as i1$1 from '@alfresco/adf-core';
import { EmptyContentComponent, CustomEmptyContentTemplateDirective, AppConfigService, JwtHelperService, TranslationService, DataTableSchema, UserPreferenceValues, ObjectDataTableAdapter, ColumnsSelectorComponent, MainMenuDataTableTemplateDirective, NoContentTemplateDirective, LoadingContentTemplateDirective, DataTableComponent, AdfDateFnsAdapter, MOMENT_DATE_FORMATS, IconComponent, UserPreferencesService, DateFnsUtils, ADF_DATE_FORMATS, FullNamePipe, InitialUsernamePipe, FormModel, FormService, FormBaseComponent, WidgetVisibilityService, UploadWidgetContentLinkModel, FormEvent, FormOutcomeModel, ConfirmDialogComponent, FormOutcomeEvent, FormatSpacePipe, FormRendererComponent, ToolbarDividerComponent, ToolbarComponent, WidgetComponent, ThumbnailService, NotificationService, ErrorWidgetComponent, LocalizedDatePipe, UploadDirective, ContentLinkModel, ErrorMessageModel, DEFAULT_DATE_FORMAT, FormFieldEvent, FormFieldTypes, SelectFilterInputComponent, DynamicComponentMapper, CardViewTextItemModel, CardViewSelectItemModel, CardViewDatetimeItemModel, CardViewDateItemModel, CardViewArrayItemModel, CardViewComponent, CustomLoadingContentTemplateDirective, isOutcomeButtonVisible, InplaceFormInputComponent, BaseViewerWidgetComponent, ObjectDataColumn, ObjectDataRow, FormBaseModule, FormRenderingService, provideTranslations } from '@alfresco/adf-core';
import * as i2 from '@angular/common';
import { CommonModule, NgIf, NgFor, NgClass, AsyncPipe, NgForOf } from '@angular/common';
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
import * as i3 from '@angular/material/icon';
import { MatIconModule } from '@angular/material/icon';
import * as i4 from '@angular/material/card';
import { MatCardModule } from '@angular/material/card';
import { of, from, Subject, EMPTY, throwError, BehaviorSubject, combineLatest, forkJoin, catchError as catchError$1 } from 'rxjs';
import { map, catchError, take, tap, filter, switchMap, debounceTime, finalize, mergeMap, distinctUntilChanged, expand, reduce, mapTo, concatMap } from 'rxjs/operators';
import * as i1 from '@alfresco/adf-core/api';
import * as i6 from '@angular/material/core';
import { MatLineModule, DateAdapter, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';
import * as i5 from '@angular/material/list';
import { MatListModule } from '@angular/material/list';
import * as i4$1 from '@angular/material/progress-spinner';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import * as i1$4 from '@alfresco/adf-content-services';
import { AlfrescoApiService, NodeAction, ContentNodeSelectorComponent, ContentNodeSelectorPanelService, NewVersionUploaderService, NewVersionUploaderDataAction, ContentMetadataComponent, AlfrescoViewerComponent } from '@alfresco/adf-content-services';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { split, InMemoryCache, from as from$1, gql } from '@apollo/client/core';
import { createClient } from 'graphql-ws';
import { GraphQLWsLink } from '@apollo/client/link/subscriptions';
import * as i1$2 from 'apollo-angular';
import * as i2$1 from 'apollo-angular/http';
import { Kind, OperationTypeNode } from 'graphql';
import { onError } from '@apollo/client/link/error';
import { RetryLink } from '@apollo/client/link/retry';
import { getMainDefinition } from '@apollo/client/utilities';
import { add, startOfDay, endOfDay, endOfYear, startOfYear, endOfWeek, startOfWeek, endOfMonth, startOfMonth, endOfQuarter, startOfQuarter, isValid, set, addDays, parseISO, getTime } from 'date-fns';
import * as i1$3 from '@angular/forms';
import { Validators, ReactiveFormsModule, UntypedFormBuilder, FormGroup, FormControl, UntypedFormControl, FormsModule } from '@angular/forms';
import * as i2$2 from '@angular/material/dialog';
import { MAT_DIALOG_DATA, MatDialogModule, MatDialog, MatDialogRef } from '@angular/material/dialog';
import * as i3$1 from '@angular/material/input';
import { MatInputModule } from '@angular/material/input';
import * as i4$2 from '@angular/material/button';
import { MatButtonModule } from '@angular/material/button';
import * as i2$4 from '@angular/material/expansion';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatFormFieldModule } from '@angular/material/form-field';
import * as i7 from '@angular/material/select';
import { MatSelectModule } from '@angular/material/select';
import * as i2$3 from '@angular/material/datepicker';
import { MatDatepickerModule } from '@angular/material/datepicker';
import * as i10$1 from '@angular/material/checkbox';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { trigger, state, transition, style, animate } from '@angular/animations';
import * as i5$1 from '@angular/material/progress-bar';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import * as i7$1 from '@angular/material/autocomplete';
import { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';
import * as i9 from '@angular/material/chips';
import { MatChipsModule } from '@angular/material/chips';
import * as i10 from '@angular/material/tooltip';
import { MatTooltipModule } from '@angular/material/tooltip';
import { UploadApi, NodesApi, AuthenticationApi } from '@alfresco/js-api';
import { v4 } from 'uuid';
import { Overlay } from '@angular/cdk/overlay';
import { ComponentPortal } from '@angular/cdk/portal';
import * as i5$2 from '@angular/cdk/a11y';
import { A11yModule } from '@angular/cdk/a11y';
import * as i3$2 from '@angular/material/menu';
import { MatMenuModule } from '@angular/material/menu';
import * as i5$3 from '@angular/material/table';
import { MatTableModule } from '@angular/material/table';
import * as i3$3 from '@angular/material/radio';
import { MatRadioModule } from '@angular/material/radio';
import edjsHTML from 'editorjs-html';
import * as i2$5 from '@angular/platform-browser';
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const DEFAULT_APP_INSTANCE_THEME = 'theme-2';
const DEFAULT_APP_INSTANCE_ICON = 'favorite_border';
var DescriptorCustomUIAuthFlowType;
(function (DescriptorCustomUIAuthFlowType) {
DescriptorCustomUIAuthFlowType["CODE"] = "CODE";
DescriptorCustomUIAuthFlowType["IMPLICIT"] = "IMPLICIT";
})(DescriptorCustomUIAuthFlowType || (DescriptorCustomUIAuthFlowType = {}));
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class AppDetailsCloudComponent {
constructor() {
this.selectedApp = new EventEmitter();
}
/**
* Pass the selected app as next
*
* @param app application model
*/
onSelectApp(app) {
this.selectedApp.emit(app);
}
/**
* Get application instance theme
*
* @returns the name of the theme
*/
getTheme() {
return this.applicationInstance.theme || DEFAULT_APP_INSTANCE_THEME;
}
/**
* Get application instance icon
*
* @returns the name of the icon
*/
getIcon() {
return this.applicationInstance.icon || DEFAULT_APP_INSTANCE_ICON;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppDetailsCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AppDetailsCloudComponent, isStandalone: true, selector: "adf-cloud-app-details", inputs: { applicationInstance: "applicationInstance" }, outputs: { selectedApp: "selectedApp" }, ngImport: i0, template: "<div class=\"adf-app-listgrid\">\n <div class=\"adf-app-listgrid-item\">\n <mat-card\n appearance=\"outlined\"\n tabindex=\"0\"\n role=\"button\"\n class=\"adf-app-listgrid-item-card\"\n title=\"{{applicationInstance.name}}\"\n [ngClass]=\"getTheme()\"\n (click)=\"onSelectApp(applicationInstance)\"\n (keyup.enter)=\"onSelectApp(applicationInstance)\">\n <div class=\"adf-app-listgrid-item-card-logo\">\n <mat-icon class=\"adf-app-listgrid-item-card-logo-icon\">{{ getIcon() }}</mat-icon>\n </div>\n <div mat-card-title class=\"adf-app-listgrid-item-card-title\">\n <h1 class=\"adf-app-listgrid-item-card-title-text\">{{applicationInstance.name}}</h1>\n </div>\n <mat-card-subtitle class=\"adf-app-listgrid-item-card-subtitle\">\n <div class=\"adf-line-clamp\">{{applicationInstance.description}}</div>\n </mat-card-subtitle>\n </mat-card>\n </div>\n </div>\n", styles: ["adf-cloud-app-details .adf-app-listgrid{padding:8px;display:block}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item{outline:none;padding:8px;box-sizing:border-box;flex:unset;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card{outline:none;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1);min-height:200px;flex-direction:column;box-sizing:border-box;display:flex;padding:0;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1{background-color:#269abc}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1 .adf-app-listgrid-item-card-logo-icon{color:#168aac}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2{background-color:#7da9b0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2 .adf-app-listgrid-item-card-logo-icon{color:#6d99a0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3{background-color:#7689ab}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3 .adf-app-listgrid-item-card-logo-icon{color:#66799b}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4{background-color:#c74e3e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4 .adf-app-listgrid-item-card-logo-icon{color:#b73e2e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5{background-color:#fab96c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5 .adf-app-listgrid-item-card-logo-icon{color:#eaa95c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6{background-color:#759d4c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6 .adf-app-listgrid-item-card-logo-icon{color:#658d3c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7{background-color:#b1b489}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7 .adf-app-listgrid-item-card-logo-icon{color:#a1a479}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8{background-color:#a17299}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8 .adf-app-listgrid-item-card-logo-icon{color:#916289}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9{background-color:#696c67}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9 .adf-app-listgrid-item-card-logo-icon{color:#595c57}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10{background-color:#cabb33}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10 .adf-app-listgrid-item-card-logo-icon{color:#baab23}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card:hover{box-shadow:0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f,0 5px 5px -3px #0003;cursor:pointer;transform:scale(1.015)}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo{position:absolute;right:20px;top:20px;padding:16px;z-index:9}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo .adf-app-listgrid-item-card-logo-icon{font-size:70px;width:1em;height:1em}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text){padding:16px;margin-bottom:0;z-index:9999}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text) h1{color:#fff;width:80%;font-size:var(--theme-headline-font-size);margin:0;line-height:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp){color:#fff;z-index:9999;padding:16px;flex:1 0 auto}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{position:relative;line-height:1.25;padding:0;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;height:3.7125em}}@supports not (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{white-space:nowrap;width:100%}}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions{padding:0 16px 16px;border-top:1px solid rgba(0,0,0,.1);min-height:48px;box-sizing:border-box}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions-icon{color:#e9f1f3}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppDetailsCloudComponent, decorators: [{
type: Component,
args: [{ selector: 'adf-cloud-app-details', imports: [CommonModule, TranslatePipe, MatIconModule, MatCardModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-app-listgrid\">\n <div class=\"adf-app-listgrid-item\">\n <mat-card\n appearance=\"outlined\"\n tabindex=\"0\"\n role=\"button\"\n class=\"adf-app-listgrid-item-card\"\n title=\"{{applicationInstance.name}}\"\n [ngClass]=\"getTheme()\"\n (click)=\"onSelectApp(applicationInstance)\"\n (keyup.enter)=\"onSelectApp(applicationInstance)\">\n <div class=\"adf-app-listgrid-item-card-logo\">\n <mat-icon class=\"adf-app-listgrid-item-card-logo-icon\">{{ getIcon() }}</mat-icon>\n </div>\n <div mat-card-title class=\"adf-app-listgrid-item-card-title\">\n <h1 class=\"adf-app-listgrid-item-card-title-text\">{{applicationInstance.name}}</h1>\n </div>\n <mat-card-subtitle class=\"adf-app-listgrid-item-card-subtitle\">\n <div class=\"adf-line-clamp\">{{applicationInstance.description}}</div>\n </mat-card-subtitle>\n </mat-card>\n </div>\n </div>\n", styles: ["adf-cloud-app-details .adf-app-listgrid{padding:8px;display:block}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item{outline:none;padding:8px;box-sizing:border-box;flex:unset;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card{outline:none;transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1);min-height:200px;flex-direction:column;box-sizing:border-box;display:flex;padding:0;max-width:unset}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1{background-color:#269abc}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-1 .adf-app-listgrid-item-card-logo-icon{color:#168aac}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2{background-color:#7da9b0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-2 .adf-app-listgrid-item-card-logo-icon{color:#6d99a0}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3{background-color:#7689ab}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-3 .adf-app-listgrid-item-card-logo-icon{color:#66799b}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4{background-color:#c74e3e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-4 .adf-app-listgrid-item-card-logo-icon{color:#b73e2e}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5{background-color:#fab96c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-5 .adf-app-listgrid-item-card-logo-icon{color:#eaa95c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6{background-color:#759d4c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-6 .adf-app-listgrid-item-card-logo-icon{color:#658d3c}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7{background-color:#b1b489}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-7 .adf-app-listgrid-item-card-logo-icon{color:#a1a479}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8{background-color:#a17299}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-8 .adf-app-listgrid-item-card-logo-icon{color:#916289}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9{background-color:#696c67}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-9 .adf-app-listgrid-item-card-logo-icon{color:#595c57}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10{background-color:#cabb33}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card.theme-10 .adf-app-listgrid-item-card-logo-icon{color:#baab23}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card:hover{box-shadow:0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f,0 5px 5px -3px #0003;cursor:pointer;transform:scale(1.015)}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo{position:absolute;right:20px;top:20px;padding:16px;z-index:9}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-logo .adf-app-listgrid-item-card-logo-icon{font-size:70px;width:1em;height:1em}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text){padding:16px;margin-bottom:0;z-index:9999}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-title:has(.adf-app-listgrid-item-card-title-text) h1{color:#fff;width:80%;font-size:var(--theme-headline-font-size);margin:0;line-height:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp){color:#fff;z-index:9999;padding:16px;flex:1 0 auto}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{position:relative;line-height:1.25;padding:0;overflow:hidden;text-overflow:ellipsis}@supports (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;height:3.7125em}}@supports not (-webkit-line-clamp: 1){adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-subtitle:has(.adf-line-clamp) .adf-line-clamp{white-space:nowrap;width:100%}}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions{padding:0 16px 16px;border-top:1px solid rgba(0,0,0,.1);min-height:48px;box-sizing:border-box}adf-cloud-app-details .adf-app-listgrid .adf-app-listgrid-item-card-actions-icon{color:#e9f1f3}\n"] }]
}], propDecorators: { applicationInstance: [{
type: Input,
args: [{ required: true }]
}], selectedApp: [{
type: Output
}] } });
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class AppsProcessCloudService {
constructor(adfHttpClient, appConfigService) {
this.adfHttpClient = adfHttpClient;
this.appConfigService = appConfigService;
this.loadApps();
}
/**
* Gets a list of deployed apps for this user by status.
*
* @param status Required status value
* @param roles to filter the apps
* @returns The list of deployed apps
*/
getDeployedApplicationsByStatus(status, roles) {
return this.hasDeployedApps() ? of(this.deployedApps) : this.getApplicationsByStatus(status, roles);
}
hasDeployedApps() {
return this.deployedApps && this.deployedApps.length > 0;
}
loadApps() {
const apps = this.appConfigService.get('alfresco-deployed-apps', []);
for (const app of apps) {
app.theme = app.theme ?? 'theme-1';
app.icon = app.icon ?? 'favorite';
}
this.deployedApps = apps;
}
getApplicationLabel(application, environmentList) {
const envName = environmentList?.find((env) => env.id === application.environmentId)?.name;
if (application.environmentId && environmentList && envName) {
return `${application.displayName} (${envName})`;
}
else {
return application.displayName;
}
}
getApplicationsByStatus(status, roles) {
if (status === '') {
return of([]);
}
const path = this.getApplicationUrl();
const pathParams = {};
const queryParams = { status, roles, sort: 'name' };
const httpMethod = 'GET';
const headerParams = {};
const formParams = {};
const bodyParam = {};
const contentTypes = ['application/json'];
const accepts = ['application/json'];
const requestOptions = {
path,
pathParams,
queryParams,
headerParams,
formParams,
bodyParam,
contentTypes,
accepts,
httpMethod
};
return from(this.adfHttpClient.request(path, requestOptions)).pipe(map((applications) => applications.list.entries.map((application) => application.entry)));
}
getApplicationUrl() {
return `${this.appConfigService.get('bpmHost')}/deployment-service/v1/applications`;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppsProcessCloudService, deps: [{ token: i1.AdfHttpClient }, { token: i1$1.AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppsProcessCloudService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppsProcessCloudService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.AdfHttpClient }, { type: i1$1.AppConfigService }] });
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const LAYOUT_LIST = 'LIST';
const LAYOUT_GRID = 'GRID';
const DEPLOYED_STATUS = 'DEPLOYED';
class AppListCloudComponent {
constructor(appsProcessCloudService) {
this.appsProcessCloudService = appsProcessCloudService;
/**
* Defines the layout of the apps. There are two possible
* values, "GRID" and "LIST".
*/
this.layoutType = LAYOUT_GRID;
/** Emitted when an app entry is clicked. */
this.appClick = new EventEmitter();
this.loadingError$ = new Subject();
this.hasEmptyCustomContentTemplate = false;
}
ngOnInit() {
if (!this.isValidType()) {
this.setDefaultLayoutType();
}
this.apps$ = this.appsProcessCloudService.getDeployedApplicationsByStatus(DEPLOYED_STATUS).pipe(catchError(() => {
this.loadingError$.next(true);
return of();
}));
}
ngAfterContentInit() {
if (this.emptyCustomContent) {
this.hasEmptyCustomContentTemplate = true;
}
}
onSelectApp(app) {
this.appClick.emit(app);
}
/**
* Check if the value of the layoutType property is an allowed value
*
* @returns `true` if layout type is valid, otherwise `false`
*/
isValidType() {
if (this.layoutType && (this.layoutType === LAYOUT_LIST || this.layoutType === LAYOUT_GRID)) {
return true;
}
return false;
}
/**
* Assign the default value to LayoutType
*/
setDefaultLayoutType() {
this.layoutType = LAYOUT_GRID;
}
/**
* Check if the layout type is LIST
*
* @returns `true` if the layout is list, otherwise `false`
*/
isList() {
return this.layoutType === LAYOUT_LIST;
}
/**
* Check if the layout type is GRID
*
* @returns `true` if layout is grid, otherwise `false`
*/
isGrid() {
return this.layoutType === LAYOUT_GRID;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppListCloudComponent, deps: [{ token: AppsProcessCloudService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AppListCloudComponent, isStandalone: true, selector: "adf-cloud-app-list", inputs: { layoutType: "layoutType" }, outputs: { appClick: "appClick" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"menu-container\" *ngIf=\"apps$ | async as appsList; else loadingOrError\">\n <ng-container *ngIf=\"appsList.length > 0; else noApps\">\n <div\n *ngIf=\"isGrid(); else appList\"\n class=\"adf-app-apps-grid\">\n <adf-cloud-app-details\n *ngFor=\"let app of appsList\"\n [applicationInstance]=\"app\"\n (selectedApp)=\"onSelectApp($event)\" />\n </div>\n\n <ng-template #appList>\n <mat-list class=\"adf-app-list\">\n <mat-list-item class=\"adf-app-list-item\" (click)=\"onSelectApp(app)\" (keyup.enter)=\"onSelectApp(app)\"\n *ngFor=\"let app of appsList\" tabindex=\"0\" role=\"button\" title=\"{{app.name}}\">\n <mat-icon matListItemIcon>touch_app</mat-icon>\n <span class=\"adf-app-list-item-text\" matLine>{{app.name}}</span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </ng-container>\n</div>\n<ng-template #noApps>\n <div class=\"adf-app-list-empty\">\n <ng-content select=\"adf-custom-empty-content-template\" *ngIf=\"hasEmptyCustomContentTemplate; else defaultEmptyTemplate\"\n class=\"adf-custom-empty-template\" />\n\n <ng-template #defaultEmptyTemplate>\n <adf-empty-content icon=\"apps\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.SUBTITLE' | translate\" />\n </ng-template>\n </div>\n</ng-template>\n<ng-template #loadingOrError>\n <div *ngIf=\"loadingError$ | async; else loading\" class=\"adf-app-list-error\">\n <adf-empty-content icon=\"error_outline\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.SUBTITLE' | translate\" />\n </div>\n <ng-template #loading>\n <ng-container>\n <div class=\"adf-app-list-spinner\">\n <mat-spinner class=\"adf-app-list-cloud--spinner\" />\n </div>\n </ng-container>\n</ng-template>\n</ng-template>\n", styles: ["adf-cloud-app-list{width:100%}adf-cloud-app-list .adf-app-list-item{cursor:pointer}adf-cloud-app-list .adf-app-list-spinner,adf-cloud-app-list .adf-app-list-empty,adf-cloud-app-list .adf-app-list-error{display:flex;align-items:center;justify-content:center;flex-direction:column;height:85vh}adf-cloud-app-list .adf-app-list-spinner .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-empty .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-error .adf-app-list-cloud-spinner{margin:0 auto}adf-cloud-app-list .adf-app-apps-grid{flex-flow:row wrap;display:flex}adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{flex:1 1 100%;max-width:33.3333%}@media (max-width: 959.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:50%}}@media (max-width: 599.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: AppDetailsCloudComponent, selector: "adf-cloud-app-details", inputs: ["applicationInstance"], outputs: ["selectedApp"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i6.MatLine, selector: "[mat-line], [matLine]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AppListCloudComponent, decorators: [{
type: Component,
args: [{ selector: 'adf-cloud-app-list', imports: [
CommonModule,
TranslatePipe,
AppDetailsCloudComponent,
MatIconModule,
MatLineModule,
MatListModule,
EmptyContentComponent,
MatProgressSpinnerModule
], encapsulation: ViewEncapsulation.None, template: "<div class=\"menu-container\" *ngIf=\"apps$ | async as appsList; else loadingOrError\">\n <ng-container *ngIf=\"appsList.length > 0; else noApps\">\n <div\n *ngIf=\"isGrid(); else appList\"\n class=\"adf-app-apps-grid\">\n <adf-cloud-app-details\n *ngFor=\"let app of appsList\"\n [applicationInstance]=\"app\"\n (selectedApp)=\"onSelectApp($event)\" />\n </div>\n\n <ng-template #appList>\n <mat-list class=\"adf-app-list\">\n <mat-list-item class=\"adf-app-list-item\" (click)=\"onSelectApp(app)\" (keyup.enter)=\"onSelectApp(app)\"\n *ngFor=\"let app of appsList\" tabindex=\"0\" role=\"button\" title=\"{{app.name}}\">\n <mat-icon matListItemIcon>touch_app</mat-icon>\n <span class=\"adf-app-list-item-text\" matLine>{{app.name}}</span>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </ng-container>\n</div>\n<ng-template #noApps>\n <div class=\"adf-app-list-empty\">\n <ng-content select=\"adf-custom-empty-content-template\" *ngIf=\"hasEmptyCustomContentTemplate; else defaultEmptyTemplate\"\n class=\"adf-custom-empty-template\" />\n\n <ng-template #defaultEmptyTemplate>\n <adf-empty-content icon=\"apps\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.NO_APPS.SUBTITLE' | translate\" />\n </ng-template>\n </div>\n</ng-template>\n<ng-template #loadingOrError>\n <div *ngIf=\"loadingError$ | async; else loading\" class=\"adf-app-list-error\">\n <adf-empty-content icon=\"error_outline\" [title]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.APPS.ERROR.SUBTITLE' | translate\" />\n </div>\n <ng-template #loading>\n <ng-container>\n <div class=\"adf-app-list-spinner\">\n <mat-spinner class=\"adf-app-list-cloud--spinner\" />\n </div>\n </ng-container>\n</ng-template>\n</ng-template>\n", styles: ["adf-cloud-app-list{width:100%}adf-cloud-app-list .adf-app-list-item{cursor:pointer}adf-cloud-app-list .adf-app-list-spinner,adf-cloud-app-list .adf-app-list-empty,adf-cloud-app-list .adf-app-list-error{display:flex;align-items:center;justify-content:center;flex-direction:column;height:85vh}adf-cloud-app-list .adf-app-list-spinner .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-empty .adf-app-list-cloud-spinner,adf-cloud-app-list .adf-app-list-error .adf-app-list-cloud-spinner{margin:0 auto}adf-cloud-app-list .adf-app-apps-grid{flex-flow:row wrap;display:flex}adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{flex:1 1 100%;max-width:33.3333%}@media (max-width: 959.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:50%}}@media (max-width: 599.9px){adf-cloud-app-list .adf-app-apps-grid adf-cloud-app-details{max-width:100%}}\n"] }]
}], ctorParameters: () => [{ type: AppsProcessCloudService }], propDecorators: { emptyCustomContent: [{
type: ContentChild,
args: [CustomEmptyContentTemplateDirective]
}], layoutType: [{
type: Input
}], appClick: [{
type: Output
}] } });
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const APP_LIST_CLOUD_DIRECTIVES = [AppListCloudComponent, AppDetailsCloudComponent];
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class TaskListCloudSortingModel {
constructor(obj) {
if (obj) {
this.orderBy = obj.orderBy;
this.direction = obj.direction;
}
}
}
class TaskListRequestSortingModel extends TaskListCloudSortingModel {
constructor(obj) {
super(obj);
if (obj.isFieldProcessVariable) {
this.isFieldProcessVariable = true;
this.processVariableData = obj.processVariableData;
if (!this.processVariableData.processDefinitionKey || !this.processVariableData.type) {
throw new Error('missing required property when sorting by process variable');
}
}
else {
this.isFieldProcessVariable = false;
}
}
}
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class TaskQueryCloudRequestModel {
constructor(obj) {
if (obj) {
this.appName = obj.appName;
this.appVersion = obj.appVersion;
this.assignee = obj.assignee;
this.environmentId = obj.environmentId;
this.claimedDate = obj.claimedDate;
this.createdDate = obj.createdDate;
this.createdFrom = obj.createdFrom;
this.createdTo = obj.createdTo;
this.description = obj.description;
this.dueDate = obj.dueDate;
this.lastModifiedFrom = obj.lastModifiedFrom;
this.lastModifiedTo = obj.lastModifiedTo;
this.dueDateFrom = obj.dueDateFrom;
this.dueDateTo = obj.dueDateTo;
this.id = obj.id;
this.name = obj.name;
this.owner = obj.owner;
this.parentTaskId = obj.parentTaskId;
this.standalone = obj.standalone;
this.priority = obj.priority;
this.processDefinitionId = obj.processDefinitionId;
this.processDefinitionName = obj.processDefinitionName;
this.processInstanceId = obj.processInstanceId;
this.status = obj.status;
this.completedBy = obj.completedBy;
this.maxItems = obj.maxItems;
this.skipCount = obj.skipCount;
this.sorting = obj.sorting;
this.completedFrom = obj.completedFrom;
this.completedTo = obj.completedTo;
this.completedDate = obj.completedDate;
this.candidateGroupId = obj.candidateGroupId;
this.variableKeys = obj.variableKeys;
}
}
}
class TaskListRequestModel {
constructor(obj) {
if (!obj.appName) {
throw new Error('appName not configured');
}
this.appName = obj.appName;
this.pagination = obj.pagination;
this.sorting = obj.sorting;
this.onlyStandalone = obj.onlyStandalone;
this.onlyRoot = obj.onlyRoot;
this.name = obj.name;
this.description = obj.description;
this.processDefinitionName = obj.processDefinitionName;
this.id = obj.id;
this.parentId = obj.parentId;
this.processName = obj.processName;
this.priority = obj.priority;
this.status = obj.status;
this.completedBy = obj.completedBy;
this.assignee = obj.assignee;
this.processInstanceId = obj.processInstanceId;
this.createdFrom = obj.createdFrom;
this.createdTo = obj.createdTo;
this.lastModifiedFrom = obj.lastModifiedFrom;
this.lastModifiedTo = obj.lastModifiedTo;
this.lastClaimedFrom = obj.lastClaimedFrom;
this.lastClaimedTo = obj.lastClaimedTo;
this.dueDateFrom = obj.dueDateFrom;
this.dueDateTo = obj.dueDateTo;
this.completedFrom = obj.completedFrom;
this.completedTo = obj.completedTo;
this.candidateUserId = obj.candidateUserId;
this.candidateGroupId = obj.candidateGroupId;
this.processVariableFilters = obj.processVariableFilters ?? [];
this.processVariableKeys = obj.processVariableKeys;
}
}
class TaskFilterCloudAdapter extends TaskListRequestModel {
constructor(filter) {
super({
appName: filter.appName,
pagination: { maxItems: 25, skipCount: 0 },
sorting: new TaskListRequestSortingModel({
orderBy: filter.sort,
direction: filter.order,
isFieldProcessVariable: false
}),
onlyStandalone: filter.standalone,
name: filter.taskNames,
processDefinitionName: filter.processDefinitionNames,
id: filter.taskIds,
parentId: filter.parentTaskIds,
processName: filter.processNames,
priority: filter.priorities?.map((priority) => priority.toString()),
status: filter.statuses,
completedBy: filter.completedByUsers,
assignee: filter.assignees,
processInstanceId: filter.processInstanceIds,
createdFrom: filter.createdFrom,
createdTo: filter.createdTo,
lastModifiedFrom: filter.lastModifiedFrom,
lastModifiedTo: filter.lastModifiedTo,
dueDateFrom: filter.dueDateFrom,
dueDateTo: filter.dueDateTo,
completedFrom: filter.completedFrom,
completedTo: filter.completedTo,
candidateGroupId: filter.candidateGroups?.map((group) => group.id),
processVariableFilters: filter.processVariableFilters
});
}
}
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const TASK_COMPLETED_STATE = 'COMPLETED';
const TASK_CREATED_STATE = 'CREATED';
const TASK_ASSIGNED_STATE = 'ASSIGNED';
const TASK_SUSPENDED_STATE = 'SUSPENDED';
const TASK_CANCELLED_STATE = 'CANCELLED';
const TASK_CLAIM_PERMISSION = 'CLAIM';
const TASK_RELEASE_PERMISSION = 'RELEASE';
const TASK_VIEW_PERMISSION = 'VIEW';
const TASK_UPDATE_PERMISSION = 'UPDATE';
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class BaseCloudService {
constructor(adfHttpClient) {
this.adfHttpClient = adfHttpClient;
this.apiService = inject(AlfrescoApiService);
this.appConfigService = inject(AppConfigService);
this.defaultParams = {
path: '',
httpMethod: '',
contentTypes: ['application/json'],
accepts: ['application/json']
};
}
getBasePath(appName) {
return appName ? `${this.contextRoot}/${appName}` : this.contextRoot;
}
post(url, data, queryParams) {
return from(this.callApi(url, {
...this.defaultParams,
path: url,
httpMethod: 'POST',
bodyParam: data,
queryParams
}));
}
put(url, data) {
return from(this.callApi(url, {
...this.defaultParams,
path: url,
httpMethod: 'PUT',
bodyParam: data
}));
}
delete(url) {
return from(this.callApi(url, {
...this.defaultParams,
path: url,
httpMethod: 'DELETE'
}));
}
get(url, queryParams) {
return from(this.callApi(url, {
...this.defaultParams,
path: url,
httpMethod: 'GET',
queryParams
}));
}
callApi(url, params) {
return this.adfHttpClient.request(url, params);
}
get contextRoot() {
return this.appConfigService.get('bpmHost', '');
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: BaseCloudService, deps: [{ token: i1.AdfHttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: BaseCloudService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: BaseCloudService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.AdfHttpClient }] });
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class StartTaskCloudRequestModel {
constructor(obj) {
if (obj) {
this.name = obj.name || null;
this.description = obj.description || null;
this.assignee = obj.assignee || null;
this.priority = obj.priority || null;
th