UNPKG

@alfresco/adf-process-services-cloud

Version:
661 lines (651 loc) 1.07 MB
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