@alfresco/adf-process-services 8.1.0-16320806191 → 9.1.0-16312921641
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/adf-process-services.mjs +297 -301
- package/fesm2022/adf-process-services.mjs.map +1 -1
- package/package.json +4 -6
- package/esm2022/adf-process-services.mjs +0 -5
- package/esm2022/lib/app-list/apps-list.component.mjs +0 -195
- package/esm2022/lib/app-list/icon.model.mjs +0 -166
- package/esm2022/lib/app-list/index.mjs +0 -18
- package/esm2022/lib/app-list/public-api.mjs +0 -23
- package/esm2022/lib/app-list/select-apps-dialog/select-apps-dialog.component.mjs +0 -53
- package/esm2022/lib/attachment/create-process-attachment/create-process-attachment.component.mjs +0 -73
- package/esm2022/lib/attachment/create-task-attachment/create-task-attachment.component.mjs +0 -73
- package/esm2022/lib/attachment/index.mjs +0 -18
- package/esm2022/lib/attachment/process-attachment-list/process-attachment-list.component.mjs +0 -197
- package/esm2022/lib/attachment/public-api.mjs +0 -31
- package/esm2022/lib/attachment/task-attachment-list/task-attachment-list.component.mjs +0 -196
- package/esm2022/lib/compat/types.mjs +0 -18
- package/esm2022/lib/form/events/validate-dynamic-table-row.event.mjs +0 -26
- package/esm2022/lib/form/form-custom-outcomes.component.mjs +0 -31
- package/esm2022/lib/form/form-list/form-list.component.mjs +0 -50
- package/esm2022/lib/form/form.component.mjs +0 -346
- package/esm2022/lib/form/index.mjs +0 -18
- package/esm2022/lib/form/model/form-definition.model.mjs +0 -92
- package/esm2022/lib/form/process-form-rendering.service.mjs +0 -55
- package/esm2022/lib/form/public-api.mjs +0 -32
- package/esm2022/lib/form/services/activiti-alfresco.service.mjs +0 -113
- package/esm2022/lib/form/services/ecm-model.service.mjs +0 -156
- package/esm2022/lib/form/services/editor.service.mjs +0 -87
- package/esm2022/lib/form/services/external-alfresco-api.service.mjs +0 -57
- package/esm2022/lib/form/services/index.mjs +0 -26
- package/esm2022/lib/form/services/model.service.mjs +0 -130
- package/esm2022/lib/form/services/process-content.service.mjs +0 -223
- package/esm2022/lib/form/services/process-definition.service.mjs +0 -93
- package/esm2022/lib/form/services/task-form.service.mjs +0 -127
- package/esm2022/lib/form/services/task.service.mjs +0 -77
- package/esm2022/lib/form/start-form/start-form.component.mjs +0 -141
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog-component.interface.mjs +0 -18
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.component.mjs +0 -115
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.service.mjs +0 -100
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget.component.mjs +0 -254
- package/esm2022/lib/form/widgets/content-widget/attach-folder-widget.component.mjs +0 -93
- package/esm2022/lib/form/widgets/content-widget/index.mjs +0 -18
- package/esm2022/lib/form/widgets/content-widget/public-api.mjs +0 -22
- package/esm2022/lib/form/widgets/document/content.widget.mjs +0 -125
- package/esm2022/lib/form/widgets/document/document.widget.mjs +0 -61
- package/esm2022/lib/form/widgets/dropdown/dropdown.widget.mjs +0 -182
- package/esm2022/lib/form/widgets/dynamic-table/dynamic-table.widget.mjs +0 -192
- package/esm2022/lib/form/widgets/dynamic-table/editors/amount/amount.editor.mjs +0 -47
- package/esm2022/lib/form/widgets/dynamic-table/editors/boolean/boolean.editor.mjs +0 -42
- package/esm2022/lib/form/widgets/dynamic-table/editors/date/date.editor.mjs +0 -84
- package/esm2022/lib/form/widgets/dynamic-table/editors/datetime/datetime.editor.mjs +0 -84
- package/esm2022/lib/form/widgets/dynamic-table/editors/dropdown/dropdown.editor.mjs +0 -95
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/cell-validator.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/date-cell-validator-model.mjs +0 -47
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-row-validation-summary.model.mjs +0 -24
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table-column-option.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table-column.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table-row.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table.widget.model.mjs +0 -159
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/number-cell-validator.model.mjs +0 -45
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/required-cell-validator.model.mjs +0 -40
- package/esm2022/lib/form/widgets/dynamic-table/editors/row-editor/row.editor.mjs +0 -89
- package/esm2022/lib/form/widgets/dynamic-table/editors/text/text.editor.mjs +0 -47
- package/esm2022/lib/form/widgets/dynamic-table/index.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/public-api.mjs +0 -44
- package/esm2022/lib/form/widgets/file-viewer/file-viewer.widget.mjs +0 -46
- package/esm2022/lib/form/widgets/functional-group/functional-group.widget.mjs +0 -167
- package/esm2022/lib/form/widgets/index.mjs +0 -18
- package/esm2022/lib/form/widgets/people/people.widget.mjs +0 -169
- package/esm2022/lib/form/widgets/public-api.mjs +0 -54
- package/esm2022/lib/form/widgets/radio-buttons/radio-buttons.widget.mjs +0 -97
- package/esm2022/lib/form/widgets/typeahead/typeahead.widget.mjs +0 -152
- package/esm2022/lib/form/widgets/upload/upload.widget.mjs +0 -128
- package/esm2022/lib/people/components/people/people.component.mjs +0 -124
- package/esm2022/lib/people/components/people-list/people-list.component.mjs +0 -74
- package/esm2022/lib/people/components/people-search/people-search.component.mjs +0 -83
- package/esm2022/lib/people/components/people-search-field/people-search-field.component.mjs +0 -90
- package/esm2022/lib/people/components/people-selector/people-selector.component.mjs +0 -76
- package/esm2022/lib/people/helpers/get-display-user.mjs +0 -22
- package/esm2022/lib/people/index.mjs +0 -18
- package/esm2022/lib/people/interfaces/perform-search-callback.interface.mjs +0 -18
- package/esm2022/lib/people/public-api.mjs +0 -35
- package/esm2022/lib/process-comments/index.mjs +0 -21
- package/esm2022/lib/process-comments/process-comments.component.mjs +0 -45
- package/esm2022/lib/process-comments/services/comment-process.service.mjs +0 -77
- package/esm2022/lib/process-list/components/process-audit/process-audit.directive.mjs +0 -105
- package/esm2022/lib/process-list/components/process-filters/process-filters.component.mjs +0 -211
- package/esm2022/lib/process-list/components/process-instance-details/process-instance-details.component.mjs +0 -142
- package/esm2022/lib/process-list/components/process-instance-header/process-instance-header.component.mjs +0 -123
- package/esm2022/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.mjs +0 -163
- package/esm2022/lib/process-list/components/process-list/process-list.component.mjs +0 -327
- package/esm2022/lib/process-list/components/start-process/start-process.component.mjs +0 -423
- package/esm2022/lib/process-list/index.mjs +0 -18
- package/esm2022/lib/process-list/public-api.mjs +0 -44
- package/esm2022/lib/process-list/services/process-filter.service.mjs +0 -182
- package/esm2022/lib/process-list/services/process.service.mjs +0 -259
- package/esm2022/lib/process.module.mjs +0 -132
- package/esm2022/lib/services/apps-process.service.mjs +0 -58
- package/esm2022/lib/services/people-process.service.mjs +0 -124
- package/esm2022/lib/services/task-comments.service.mjs +0 -65
- package/esm2022/lib/task-comments/index.mjs +0 -21
- package/esm2022/lib/task-comments/task-comments.component.mjs +0 -44
- package/esm2022/lib/task-list/components/attach-form/attach-form.component.mjs +0 -127
- package/esm2022/lib/task-list/components/checklist/checklist.component.mjs +0 -140
- package/esm2022/lib/task-list/components/start-task/start-task.component.mjs +0 -221
- package/esm2022/lib/task-list/components/task-details/task-details.component.mjs +0 -360
- package/esm2022/lib/task-list/components/task-filters/task-filters.component.mjs +0 -261
- package/esm2022/lib/task-list/components/task-form/claim-task.directive.mjs +0 -77
- package/esm2022/lib/task-list/components/task-form/task-form.component.mjs +0 -313
- package/esm2022/lib/task-list/components/task-form/unclaim-task.directive.mjs +0 -77
- package/esm2022/lib/task-list/components/task-header/task-header.component.mjs +0 -361
- package/esm2022/lib/task-list/components/task-list/task-list.component.mjs +0 -359
- package/esm2022/lib/task-list/components/task-standalone/task-standalone.component.mjs +0 -82
- package/esm2022/lib/task-list/index.mjs +0 -18
- package/esm2022/lib/task-list/models/form.model.mjs +0 -26
- package/esm2022/lib/task-list/models/task-details.event.mjs +0 -32
- package/esm2022/lib/task-list/models/task-preset.model.mjs +0 -41
- package/esm2022/lib/task-list/models/user-event.model.mjs +0 -18
- package/esm2022/lib/task-list/models/user-group.model.mjs +0 -18
- package/esm2022/lib/task-list/public-api.mjs +0 -60
- package/esm2022/lib/task-list/services/process-upload.service.mjs +0 -42
- package/esm2022/lib/task-list/services/task-filter.service.mjs +0 -249
- package/esm2022/lib/task-list/services/task-upload.service.mjs +0 -42
- package/esm2022/lib/task-list/services/tasklist.service.mjs +0 -251
- package/esm2022/lib/task-list/validators/task-description.validator.mjs +0 -26
- package/esm2022/public-api.mjs +0 -30
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
import { ChangeDetectorRef, Component, DestroyRef, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
18
|
-
import { FormatSpacePipe, FormBaseComponent, FormErrorEvent, FormEvent, FormModel, FormOutcomeEvent, FormOutcomeModel, FormRendererComponent, FormService, WidgetVisibilityService } from '@alfresco/adf-core';
|
|
19
|
-
import { from, Observable, of } from 'rxjs';
|
|
20
|
-
import { switchMap } from 'rxjs/operators';
|
|
21
|
-
import { EcmModelService } from './services/ecm-model.service';
|
|
22
|
-
import { ModelService } from './services/model.service';
|
|
23
|
-
import { EditorService } from './services/editor.service';
|
|
24
|
-
import { TaskService } from './services/task.service';
|
|
25
|
-
import { TaskFormService } from './services/task-form.service';
|
|
26
|
-
import { NodesApiService } from '@alfresco/adf-content-services';
|
|
27
|
-
import { FormDefinitionModel } from './model/form-definition.model';
|
|
28
|
-
import { CommonModule } from '@angular/common';
|
|
29
|
-
import { MatCardModule } from '@angular/material/card';
|
|
30
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
31
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
32
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
33
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
34
|
-
import * as i0 from "@angular/core";
|
|
35
|
-
import * as i1 from "@angular/common";
|
|
36
|
-
import * as i2 from "@angular/material/card";
|
|
37
|
-
import * as i3 from "@angular/material/button";
|
|
38
|
-
import * as i4 from "@angular/material/icon";
|
|
39
|
-
export class FormComponent extends FormBaseComponent {
|
|
40
|
-
constructor() {
|
|
41
|
-
super();
|
|
42
|
-
this.formService = inject(FormService);
|
|
43
|
-
this.taskFormService = inject(TaskFormService);
|
|
44
|
-
this.taskService = inject(TaskService);
|
|
45
|
-
this.editorService = inject(EditorService);
|
|
46
|
-
this.modelService = inject(ModelService);
|
|
47
|
-
this.visibilityService = inject(WidgetVisibilityService);
|
|
48
|
-
this.ecmModelService = inject(EcmModelService);
|
|
49
|
-
this.nodeService = inject(NodesApiService);
|
|
50
|
-
this.cdRef = inject(ChangeDetectorRef);
|
|
51
|
-
/** Toggle saving of form metadata. */
|
|
52
|
-
this.saveMetadata = false;
|
|
53
|
-
/** The form will set a prefixed space for invisible fields. */
|
|
54
|
-
this.enableFixedSpacedForm = true;
|
|
55
|
-
/** Emitted when the form is submitted with the `Save` or custom outcomes. */
|
|
56
|
-
this.formSaved = new EventEmitter();
|
|
57
|
-
/** Emitted when the form is submitted with the `Complete` outcome. */
|
|
58
|
-
this.formCompleted = new EventEmitter();
|
|
59
|
-
/** Emitted when form content is clicked. */
|
|
60
|
-
this.formContentClicked = new EventEmitter();
|
|
61
|
-
/** Emitted when the form is loaded or reloaded. */
|
|
62
|
-
this.formLoaded = new EventEmitter();
|
|
63
|
-
/** Emitted when form values are refreshed due to a data property change. */
|
|
64
|
-
this.formDataRefreshed = new EventEmitter();
|
|
65
|
-
this.debugMode = false;
|
|
66
|
-
this.destroyRef = inject(DestroyRef);
|
|
67
|
-
}
|
|
68
|
-
ngOnInit() {
|
|
69
|
-
this.formService.formContentClicked.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((content) => this.formContentClicked.emit(content));
|
|
70
|
-
this.formService.validateForm.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((validateFormEvent) => {
|
|
71
|
-
if (validateFormEvent.errorsField.length > 0) {
|
|
72
|
-
this.formError.next(validateFormEvent.errorsField);
|
|
73
|
-
this.cdRef.detectChanges();
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
ngOnChanges(changes) {
|
|
78
|
-
const taskId = changes['taskId'];
|
|
79
|
-
if (taskId?.currentValue) {
|
|
80
|
-
this.getFormByTaskId(taskId.currentValue);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const formId = changes['formId'];
|
|
84
|
-
if (formId?.currentValue) {
|
|
85
|
-
this.getFormDefinitionByFormId(formId.currentValue);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const formName = changes['formName'];
|
|
89
|
-
if (formName?.currentValue) {
|
|
90
|
-
this.getFormDefinitionByFormName(formName.currentValue);
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const nodeId = changes['nodeId'];
|
|
94
|
-
if (nodeId?.currentValue) {
|
|
95
|
-
this.loadFormForEcmNode(nodeId.currentValue);
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const data = changes['data'];
|
|
99
|
-
if (data?.currentValue) {
|
|
100
|
-
this.refreshFormData();
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Invoked when user clicks form refresh button.
|
|
106
|
-
*/
|
|
107
|
-
onRefreshClicked() {
|
|
108
|
-
this.loadForm();
|
|
109
|
-
}
|
|
110
|
-
loadForm() {
|
|
111
|
-
if (this.taskId) {
|
|
112
|
-
this.getFormByTaskId(this.taskId);
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
if (this.formId) {
|
|
116
|
-
this.getFormDefinitionByFormId(this.formId);
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (this.formName) {
|
|
120
|
-
this.getFormDefinitionByFormName(this.formName);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
findProcessVariablesByTaskId(taskId) {
|
|
125
|
-
return this.taskService.getTask(taskId).pipe(switchMap((task) => {
|
|
126
|
-
if (this.isAProcessTask(task)) {
|
|
127
|
-
return this.taskFormService.getTaskProcessVariable(taskId);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
return of([]);
|
|
131
|
-
}
|
|
132
|
-
}));
|
|
133
|
-
}
|
|
134
|
-
isAProcessTask(taskRepresentation) {
|
|
135
|
-
return taskRepresentation.processDefinitionId && taskRepresentation.processDefinitionDeploymentId !== 'null';
|
|
136
|
-
}
|
|
137
|
-
getFormByTaskId(taskId) {
|
|
138
|
-
return new Promise((resolve) => {
|
|
139
|
-
this.findProcessVariablesByTaskId(taskId).subscribe((taskProcessVariables) => {
|
|
140
|
-
this.taskFormService.getTaskForm(taskId).subscribe((form) => {
|
|
141
|
-
const parsedForm = this.parseForm(form);
|
|
142
|
-
this.visibilityService.refreshVisibility(parsedForm, taskProcessVariables);
|
|
143
|
-
parsedForm.validateForm();
|
|
144
|
-
this.form = parsedForm;
|
|
145
|
-
this.onFormLoaded(this.form);
|
|
146
|
-
resolve(this.form);
|
|
147
|
-
}, (error) => {
|
|
148
|
-
this.handleError(error);
|
|
149
|
-
resolve(null);
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
getFormDefinitionByFormId(formId) {
|
|
155
|
-
this.editorService.getFormDefinitionById(formId).subscribe((form) => {
|
|
156
|
-
this.formName = form.name;
|
|
157
|
-
this.form = this.parseForm(form);
|
|
158
|
-
this.visibilityService.refreshVisibility(this.form);
|
|
159
|
-
this.form.validateForm();
|
|
160
|
-
this.onFormLoaded(this.form);
|
|
161
|
-
}, (error) => {
|
|
162
|
-
this.handleError(error);
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
getFormDefinitionByFormName(formName) {
|
|
166
|
-
this.modelService.getFormDefinitionByName(formName).subscribe((id) => {
|
|
167
|
-
this.editorService.getFormDefinitionById(id).subscribe((form) => {
|
|
168
|
-
this.form = this.parseForm(form);
|
|
169
|
-
this.visibilityService.refreshVisibility(this.form);
|
|
170
|
-
this.form.validateForm();
|
|
171
|
-
this.onFormLoaded(this.form);
|
|
172
|
-
}, (error) => {
|
|
173
|
-
this.handleError(error);
|
|
174
|
-
});
|
|
175
|
-
}, (error) => {
|
|
176
|
-
this.handleError(error);
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
saveTaskForm() {
|
|
180
|
-
if (this.form?.taskId) {
|
|
181
|
-
this.taskFormService.saveTaskForm(this.form.taskId, this.form.values).subscribe(() => {
|
|
182
|
-
this.onTaskSaved(this.form);
|
|
183
|
-
this.storeFormAsMetadata();
|
|
184
|
-
}, (error) => this.onTaskSavedError(this.form, error));
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
completeTaskForm(outcome) {
|
|
188
|
-
if (this.form?.taskId) {
|
|
189
|
-
this.taskFormService.completeTaskForm(this.form.taskId, this.form.values, outcome).subscribe(() => {
|
|
190
|
-
this.onTaskCompleted(this.form);
|
|
191
|
-
this.storeFormAsMetadata();
|
|
192
|
-
}, (error) => this.onTaskCompletedError(this.form, error));
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
handleError(err) {
|
|
196
|
-
this.error.emit(err);
|
|
197
|
-
}
|
|
198
|
-
parseForm(formRepresentationJSON) {
|
|
199
|
-
if (formRepresentationJSON) {
|
|
200
|
-
const form = new FormModel(formRepresentationJSON, this.data, this.readOnly, this.formService, this.enableFixedSpacedForm);
|
|
201
|
-
if (!formRepresentationJSON.fields) {
|
|
202
|
-
form.outcomes = this.getFormDefinitionOutcomes(form);
|
|
203
|
-
}
|
|
204
|
-
if (this.fieldValidators?.length > 0) {
|
|
205
|
-
form.fieldValidators = this.fieldValidators;
|
|
206
|
-
}
|
|
207
|
-
return form;
|
|
208
|
-
}
|
|
209
|
-
return null;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Get custom set of outcomes for a Form Definition.
|
|
213
|
-
*
|
|
214
|
-
* @param form Form definition model.
|
|
215
|
-
* @returns list of form outcomes
|
|
216
|
-
*/
|
|
217
|
-
getFormDefinitionOutcomes(form) {
|
|
218
|
-
return [new FormOutcomeModel(form, { id: '$save', name: FormOutcomeModel.SAVE_ACTION, isSystem: true })];
|
|
219
|
-
}
|
|
220
|
-
checkVisibility(field) {
|
|
221
|
-
if (field?.form) {
|
|
222
|
-
this.visibilityService.refreshVisibility(field.form);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
loadFormFromActiviti(nodeType) {
|
|
226
|
-
this.modelService.searchFrom(nodeType).subscribe((form) => {
|
|
227
|
-
if (!form) {
|
|
228
|
-
this.createFormFromANode(nodeType).subscribe((formMetadata) => {
|
|
229
|
-
this.loadFormFromFormId(formMetadata.id);
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
this.loadFormFromFormId(form.id);
|
|
234
|
-
}
|
|
235
|
-
}, (error) => {
|
|
236
|
-
this.handleError(error);
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Creates a Form with a field for each metadata property.
|
|
241
|
-
*
|
|
242
|
-
* @param formName Name of the new form
|
|
243
|
-
* @returns The new form
|
|
244
|
-
*/
|
|
245
|
-
createFormFromANode(formName) {
|
|
246
|
-
return new Observable((observer) => {
|
|
247
|
-
this.modelService.createForm(formName).subscribe((form) => {
|
|
248
|
-
this.ecmModelService.searchEcmType(formName, EcmModelService.MODEL_NAME).subscribe((customType) => {
|
|
249
|
-
const formDefinitionModel = new FormDefinitionModel(form.id, form.name, form.lastUpdatedByFullName, form.lastUpdated, customType.entry.properties);
|
|
250
|
-
from(this.editorService.saveForm(form.id, formDefinitionModel)).subscribe((formData) => {
|
|
251
|
-
observer.next(formData);
|
|
252
|
-
observer.complete();
|
|
253
|
-
}, (err) => this.handleError(err));
|
|
254
|
-
}, (err) => this.handleError(err));
|
|
255
|
-
}, (err) => this.handleError(err));
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
storeFormAsMetadata() {
|
|
259
|
-
if (this.saveMetadata) {
|
|
260
|
-
this.ecmModelService.createEcmTypeForActivitiForm(this.formName, this.form).subscribe((type) => {
|
|
261
|
-
this.nodeService.createNodeMetadata(type.nodeType || type.entry.prefixedName, EcmModelService.MODEL_NAMESPACE, this.form.values, this.path, this.nameNode);
|
|
262
|
-
}, (error) => {
|
|
263
|
-
this.handleError(error);
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
onFormLoaded(form) {
|
|
268
|
-
this.formLoaded.emit(form);
|
|
269
|
-
this.formService.formLoaded.next(new FormEvent(form));
|
|
270
|
-
}
|
|
271
|
-
onFormDataRefreshed(form) {
|
|
272
|
-
this.formDataRefreshed.emit(form);
|
|
273
|
-
this.formService.formDataRefreshed.next(new FormEvent(form));
|
|
274
|
-
}
|
|
275
|
-
onTaskSaved(form) {
|
|
276
|
-
this.formSaved.emit(form);
|
|
277
|
-
this.formService.taskSaved.next(new FormEvent(form));
|
|
278
|
-
}
|
|
279
|
-
onTaskSavedError(form, error) {
|
|
280
|
-
this.handleError(error);
|
|
281
|
-
this.formService.taskSavedError.next(new FormErrorEvent(form, error));
|
|
282
|
-
}
|
|
283
|
-
onTaskCompleted(form) {
|
|
284
|
-
this.formCompleted.emit(form);
|
|
285
|
-
this.formService.taskCompleted.next(new FormEvent(form));
|
|
286
|
-
}
|
|
287
|
-
onTaskCompletedError(form, error) {
|
|
288
|
-
this.handleError(error);
|
|
289
|
-
this.formService.taskCompletedError.next(new FormErrorEvent(form, error));
|
|
290
|
-
}
|
|
291
|
-
onExecuteOutcome(outcome) {
|
|
292
|
-
const args = new FormOutcomeEvent(outcome);
|
|
293
|
-
this.formService.executeOutcome.next(args);
|
|
294
|
-
if (args.defaultPrevented) {
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
297
|
-
this.executeOutcome.emit(args);
|
|
298
|
-
return !args.defaultPrevented;
|
|
299
|
-
}
|
|
300
|
-
refreshFormData() {
|
|
301
|
-
this.form = this.parseForm(this.form.json);
|
|
302
|
-
this.onFormLoaded(this.form);
|
|
303
|
-
this.onFormDataRefreshed(this.form);
|
|
304
|
-
}
|
|
305
|
-
loadFormForEcmNode(nodeId) {
|
|
306
|
-
this.nodeService.getNodeMetadata(nodeId).subscribe((data) => {
|
|
307
|
-
this.data = data.metadata;
|
|
308
|
-
this.loadFormFromActiviti(data.nodeType);
|
|
309
|
-
}, this.handleError);
|
|
310
|
-
}
|
|
311
|
-
loadFormFromFormId(formId) {
|
|
312
|
-
this.formId = formId;
|
|
313
|
-
this.loadForm();
|
|
314
|
-
}
|
|
315
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
316
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormComponent, isStandalone: true, selector: "adf-form", inputs: { taskId: "taskId", nodeId: "nodeId", formId: "formId", formName: "formName", saveMetadata: "saveMetadata", data: "data", enableFixedSpacedForm: "enableFixedSpacedForm" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formContentClicked: "formContentClicked", formLoaded: "formLoaded", formDataRefreshed: "formDataRefreshed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!hasForm()\">\n <ng-content select=\"[empty-form]\" />\n</div>\n\n<div *ngIf=\"hasForm()\" class=\"adf-form-container\">\n <mat-card appearance=\"outlined\" class=\"adf-form-card\">\n <mat-card-header>\n <mat-card-title>\n <h4>\n <div *ngIf=\"showValidationIcon\" class=\"adf-form-validation-button\">\n <i id=\"adf-valid-form-icon\" class=\"material-icons\"\n *ngIf=\"form.isValid; else no_valid_form\">check_circle</i>\n <ng-template #no_valid_form>\n <i id=\"adf-invalid-form-icon\" class=\"material-icons adf-invalid-color\">error</i>\n </ng-template>\n </div>\n <div *ngIf=\"showRefreshButton\" class=\"adf-form-reload-button\">\n <button mat-icon-button (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </div>\n <span *ngIf=\"isTitleEnabled()\" class=\"adf-form-title\" [title]=\"form.taskName\">\n {{form.taskName}}\n <ng-container *ngIf=\"!form.taskName\">\n {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}\n </ng-container>\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-form-card-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-actions *ngIf=\"form.hasOutcomes()\" class=\"adf-form-mat-card-actions\" align=\"end\">\n <ng-content select=\"adf-form-custom-outcomes\" />\n <button [id]=\"'adf-form-'+ outcome.name | formatSpace\" *ngFor=\"let outcome of form.outcomes\"\n [color]=\"getColorForOutcome(outcome.name)\" mat-button [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{outcome.name | translate | uppercase }}\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-card,.adf-form-card-content{height:100%;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: FormRendererComponent, selector: "adf-form-renderer", inputs: ["formDefinition", "readOnly"] }, { kind: "pipe", type: FormatSpacePipe, name: "formatSpace" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
317
|
-
}
|
|
318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormComponent, decorators: [{
|
|
319
|
-
type: Component,
|
|
320
|
-
args: [{ selector: 'adf-form', standalone: true, imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, TranslatePipe, FormRendererComponent, FormatSpacePipe], encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"!hasForm()\">\n <ng-content select=\"[empty-form]\" />\n</div>\n\n<div *ngIf=\"hasForm()\" class=\"adf-form-container\">\n <mat-card appearance=\"outlined\" class=\"adf-form-card\">\n <mat-card-header>\n <mat-card-title>\n <h4>\n <div *ngIf=\"showValidationIcon\" class=\"adf-form-validation-button\">\n <i id=\"adf-valid-form-icon\" class=\"material-icons\"\n *ngIf=\"form.isValid; else no_valid_form\">check_circle</i>\n <ng-template #no_valid_form>\n <i id=\"adf-invalid-form-icon\" class=\"material-icons adf-invalid-color\">error</i>\n </ng-template>\n </div>\n <div *ngIf=\"showRefreshButton\" class=\"adf-form-reload-button\">\n <button mat-icon-button (click)=\"onRefreshClicked()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </div>\n <span *ngIf=\"isTitleEnabled()\" class=\"adf-form-title\" [title]=\"form.taskName\">\n {{form.taskName}}\n <ng-container *ngIf=\"!form.taskName\">\n {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}\n </ng-container>\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"adf-form-card-content\">\n <adf-form-renderer [formDefinition]=\"form\" />\n </mat-card-content>\n <mat-card-actions *ngIf=\"form.hasOutcomes()\" class=\"adf-form-mat-card-actions\" align=\"end\">\n <ng-content select=\"adf-form-custom-outcomes\" />\n <button [id]=\"'adf-form-'+ outcome.name | formatSpace\" *ngFor=\"let outcome of form.outcomes\"\n [color]=\"getColorForOutcome(outcome.name)\" mat-button [disabled]=\"!isOutcomeButtonEnabled(outcome)\"\n [class.adf-form-hide-button]=\"!isOutcomeButtonVisible(outcome, form.readOnly)\"\n (click)=\"onOutcomeClicked(outcome)\">\n {{outcome.name | translate | uppercase }}\n </button>\n </mat-card-actions>\n </mat-card>\n</div>\n", styles: [".adf-form-card,.adf-form-card-content{height:100%;overflow:auto}\n"] }]
|
|
321
|
-
}], ctorParameters: () => [], propDecorators: { taskId: [{
|
|
322
|
-
type: Input
|
|
323
|
-
}], nodeId: [{
|
|
324
|
-
type: Input
|
|
325
|
-
}], formId: [{
|
|
326
|
-
type: Input
|
|
327
|
-
}], formName: [{
|
|
328
|
-
type: Input
|
|
329
|
-
}], saveMetadata: [{
|
|
330
|
-
type: Input
|
|
331
|
-
}], data: [{
|
|
332
|
-
type: Input
|
|
333
|
-
}], enableFixedSpacedForm: [{
|
|
334
|
-
type: Input
|
|
335
|
-
}], formSaved: [{
|
|
336
|
-
type: Output
|
|
337
|
-
}], formCompleted: [{
|
|
338
|
-
type: Output
|
|
339
|
-
}], formContentClicked: [{
|
|
340
|
-
type: Output
|
|
341
|
-
}], formLoaded: [{
|
|
342
|
-
type: Output
|
|
343
|
-
}], formDataRefreshed: [{
|
|
344
|
-
type: Output
|
|
345
|
-
}] } });
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsU0FBUyxFQUVULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixXQUFXLEVBR1gsdUJBQXVCLEVBQzFCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVB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QUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBS04scUJBQXFCO3NCQURwQixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU07Z0JBS1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQUtQLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxpQkFBaUI7c0JBRGhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDb250ZW50TGlua01vZGVsLFxuICAgIEZvcm1hdFNwYWNlUGlwZSxcbiAgICBGb3JtQmFzZUNvbXBvbmVudCxcbiAgICBGb3JtRXJyb3JFdmVudCxcbiAgICBGb3JtRXZlbnQsXG4gICAgRm9ybUZpZWxkTW9kZWwsXG4gICAgRm9ybU1vZGVsLFxuICAgIEZvcm1PdXRjb21lRXZlbnQsXG4gICAgRm9ybU91dGNvbWVNb2RlbCxcbiAgICBGb3JtUmVuZGVyZXJDb21wb25lbnQsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgRm9ybVZhbHVlcyxcbiAgICBUYXNrUHJvY2Vzc1ZhcmlhYmxlTW9kZWwsXG4gICAgV2lkZ2V0VmlzaWJpbGl0eVNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY21Nb2RlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VjbS1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbW9kZWwuc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGFzay5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tGb3JtU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGFzay1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IEZvcm1EZWZpbml0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVsL2Zvcm0tZGVmaW5pdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZm9ybScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDYXJkTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIEZvcm1SZW5kZXJlckNvbXBvbmVudCwgRm9ybWF0U3BhY2VQaXBlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBleHRlbmRzIEZvcm1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByb3RlY3RlZCBmb3JtU2VydmljZSA9IGluamVjdChGb3JtU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHRhc2tGb3JtU2VydmljZSA9IGluamVjdChUYXNrRm9ybVNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB0YXNrU2VydmljZSA9IGluamVjdChUYXNrU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGVkaXRvclNlcnZpY2UgPSBpbmplY3QoRWRpdG9yU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIG1vZGVsU2VydmljZSA9IGluamVjdChNb2RlbFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB2aXNpYmlsaXR5U2VydmljZSA9IGluamVjdChXaWRnZXRWaXNpYmlsaXR5U2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGVjbU1vZGVsU2VydmljZSA9IGluamVjdChFY21Nb2RlbFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBub2RlU2VydmljZSA9IGluamVjdChOb2Rlc0FwaVNlcnZpY2UpO1xuICAgIHByaXZhdGUgY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLyoqIFRhc2sgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBDb250ZW50IFNlcnZpY2VzIG5vZGUgSUQgZm9yIHRoZSBmb3JtIG1ldGFkYXRhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9kZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogVGhlIGlkIG9mIHRoZSBmb3JtIGRlZmluaXRpb24gdG8gbG9hZCBhbmQgZGlzcGxheSB3aXRoIGN1c3RvbSB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICBmb3JtSWQ6IG51bWJlcjtcblxuICAgIC8qKiBOYW1lIG9mIHRoZSBmb3JtIGRlZmluaXRpb24gdG8gbG9hZCBhbmQgZGlzcGxheSB3aXRoIGN1c3RvbSB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICBmb3JtTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFRvZ2dsZSBzYXZpbmcgb2YgZm9ybSBtZXRhZGF0YS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNhdmVNZXRhZGF0YTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEN1c3RvbSBmb3JtIHZhbHVlcyBtYXAgdG8gYmUgdXNlZCB3aXRoIHRoZSByZW5kZXJlZCBmb3JtLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGF0YTogRm9ybVZhbHVlcztcblxuICAgIC8qKiBUaGUgZm9ybSB3aWxsIHNldCBhIHByZWZpeGVkIHNwYWNlIGZvciBpbnZpc2libGUgZmllbGRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlRml4ZWRTcGFjZWRGb3JtOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBTYXZlYCBvciBjdXN0b20gb3V0Y29tZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVNhdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCB3aXRoIHRoZSBgQ29tcGxldGVgIG91dGNvbWUuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBmb3JtIGNvbnRlbnQgaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIGxvYWRlZCBvciByZWxvYWRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGZvcm0gdmFsdWVzIGFyZSByZWZyZXNoZWQgZHVlIHRvIGEgZGF0YSBwcm9wZXJ0eSBjaGFuZ2UuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybURhdGFSZWZyZXNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIGRlYnVnTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZm9ybUNvbnRlbnRDbGlja2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoY29udGVudCkgPT4gdGhpcy5mb3JtQ29udGVudENsaWNrZWQuZW1pdChjb250ZW50KSk7XG5cbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS52YWxpZGF0ZUZvcm0ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCh2YWxpZGF0ZUZvcm1FdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRlRm9ybUV2ZW50LmVycm9yc0ZpZWxkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1FcnJvci5uZXh0KHZhbGlkYXRlRm9ybUV2ZW50LmVycm9yc0ZpZWxkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB0YXNrSWQgPSBjaGFuZ2VzWyd0YXNrSWQnXTtcbiAgICAgICAgaWYgKHRhc2tJZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmdldEZvcm1CeVRhc2tJZCh0YXNrSWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1JZCA9IGNoYW5nZXNbJ2Zvcm1JZCddO1xuICAgICAgICBpZiAoZm9ybUlkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1JZChmb3JtSWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1OYW1lID0gY2hhbmdlc1snZm9ybU5hbWUnXTtcbiAgICAgICAgaWYgKGZvcm1OYW1lPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1OYW1lKGZvcm1OYW1lLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlSWQgPSBjaGFuZ2VzWydub2RlSWQnXTtcbiAgICAgICAgaWYgKG5vZGVJZD8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRGb3JtRm9yRWNtTm9kZShub2RlSWQuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGEgPSBjaGFuZ2VzWydkYXRhJ107XG4gICAgICAgIGlmIChkYXRhPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEZvcm1EYXRhKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VkIHdoZW4gdXNlciBjbGlja3MgZm9ybSByZWZyZXNoIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBvblJlZnJlc2hDbGlja2VkKCkge1xuICAgICAgICB0aGlzLmxvYWRGb3JtKCk7XG4gICAgfVxuXG4gICAgbG9hZEZvcm0oKSB7XG4gICAgICAgIGlmICh0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRGb3JtQnlUYXNrSWQodGhpcy50YXNrSWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUlkKSB7XG4gICAgICAgICAgICB0aGlzLmdldEZvcm1EZWZpbml0aW9uQnlGb3JtSWQodGhpcy5mb3JtSWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybU5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1OYW1lKHRoaXMuZm9ybU5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmluZFByb2Nlc3NWYXJpYWJsZXNCeVRhc2tJZCh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1Byb2Nlc3NWYXJpYWJsZU1vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza1NlcnZpY2UuZ2V0VGFzayh0YXNrSWQpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHRhc2spID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0FQcm9jZXNzVGFzayh0YXNrKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrRm9ybVNlcnZpY2UuZ2V0VGFza1Byb2Nlc3NWYXJpYWJsZSh0YXNrSWQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpc0FQcm9jZXNzVGFzayh0YXNrUmVwcmVzZW50YXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRhc2tSZXByZXNlbnRhdGlvbi5wcm9jZXNzRGVmaW5pdGlvbklkICYmIHRhc2tSZXByZXNlbnRhdGlvbi5wcm9jZXNzRGVmaW5pdGlvbkRlcGxveW1lbnRJZCAhPT0gJ251bGwnO1xuICAgIH1cblxuICAgIGdldEZvcm1CeVRhc2tJZCh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8Rm9ybU1vZGVsPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxGb3JtTW9kZWw+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbmRQcm9jZXNzVmFyaWFibGVzQnlUYXNrSWQodGFza0lkKS5zdWJzY3JpYmUoKHRhc2tQcm9jZXNzVmFyaWFibGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRm9ybVNlcnZpY2UuZ2V0VGFza0Zvcm0odGFza0lkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIChmb3JtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRGb3JtID0gdGhpcy5wYXJzZUZvcm0oZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2liaWxpdHlTZXJ2aWNlLnJlZnJlc2hWaXNpYmlsaXR5KHBhcnNlZEZvcm0sIHRhc2tQcm9jZXNzVmFyaWFibGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZEZvcm0udmFsaWRhdGVGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0gPSBwYXJzZWRGb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkZvcm1Mb2FkZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEZvcm1EZWZpbml0aW9uQnlGb3JtSWQoZm9ybUlkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEZvcm1EZWZpbml0aW9uQnlJZChmb3JtSWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChmb3JtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTmFtZSA9IGZvcm0ubmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnBhcnNlRm9ybShmb3JtKTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2liaWxpdHlTZXJ2aWNlLnJlZnJlc2hWaXNpYmlsaXR5KHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbGlkYXRlRm9ybSgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Gb3JtTG9hZGVkKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0Rm9ybURlZmluaXRpb25CeUZvcm1OYW1lKGZvcm1OYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5tb2RlbFNlcnZpY2UuZ2V0Rm9ybURlZmluaXRpb25CeU5hbWUoZm9ybU5hbWUpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChpZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbkJ5SWQoaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybSA9IHRoaXMucGFyc2VGb3JtKGZvcm0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmlsaXR5U2VydmljZS5yZWZyZXNoVmlzaWJpbGl0eSh0aGlzLmZvcm0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnZhbGlkYXRlRm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkZvcm1Mb2FkZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2F2ZVRhc2tGb3JtKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtPy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMudGFza0Zvcm1TZXJ2aWNlLnNhdmVUYXNrRm9ybSh0aGlzLmZvcm0udGFza0lkLCB0aGlzLmZvcm0udmFsdWVzKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVGFza1NhdmVkKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVGb3JtQXNNZXRhZGF0YSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLm9uVGFza1NhdmVkRXJyb3IodGhpcy5mb3JtLCBlcnJvcilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZVRhc2tGb3JtKG91dGNvbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybT8udGFza0lkKSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tGb3JtU2VydmljZS5jb21wbGV0ZVRhc2tGb3JtKHRoaXMuZm9ybS50YXNrSWQsIHRoaXMuZm9ybS52YWx1ZXMsIG91dGNvbWUpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25UYXNrQ29tcGxldGVkKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVGb3JtQXNNZXRhZGF0YSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLm9uVGFza0NvbXBsZXRlZEVycm9yKHRoaXMuZm9ybSwgZXJyb3IpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlRXJyb3IoZXJyOiBhbnkpOiBhbnkge1xuICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICB9XG5cbiAgICBwYXJzZUZvcm0oZm9ybVJlcHJlc2VudGF0aW9uSlNPTjogYW55KTogRm9ybU1vZGVsIHtcbiAgICAgICAgaWYgKGZvcm1SZXByZXNlbnRhdGlvbkpTT04pIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybU1vZGVsKGZvcm1SZXByZXNlbnRhdGlvbkpTT04sIHRoaXMuZGF0YSwgdGhpcy5yZWFkT25seSwgdGhpcy5mb3JtU2VydmljZSwgdGhpcy5lbmFibGVGaXhlZFNwYWNlZEZvcm0pO1xuICAgICAgICAgICAgaWYgKCFmb3JtUmVwcmVzZW50YXRpb25KU09OLmZpZWxkcykge1xuICAgICAgICAgICAgICAgIGZvcm0ub3V0Y29tZXMgPSB0aGlzLmdldEZvcm1EZWZpbml0aW9uT3V0Y29tZXMoZm9ybSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZFZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBmb3JtLmZpZWxkVmFsaWRhdG9ycyA9IHRoaXMuZmllbGRWYWxpZGF0b3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZvcm07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGN1c3RvbSBzZXQgb2Ygb3V0Y29tZXMgZm9yIGEgRm9ybSBEZWZpbml0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBkZWZpbml0aW9uIG1vZGVsLlxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZm9ybSBvdXRjb21lc1xuICAgICAqL1xuICAgIGdldEZvcm1EZWZpbml0aW9uT3V0Y29tZXMoZm9ybTogRm9ybU1vZGVsKTogRm9ybU91dGNvbWVNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIFtuZXcgRm9ybU91dGNvbWVNb2RlbChmb3JtLCB7IGlkOiAnJHNhdmUnLCBuYW1lOiBGb3JtT3V0Y29tZU1vZGVsLlNBVkVfQUNUSU9OLCBpc1N5c3RlbTogdHJ1ZSB9KV07XG4gICAgfVxuXG4gICAgY2hlY2tWaXNpYmlsaXR5KGZpZWxkOiBGb3JtRmllbGRNb2RlbCkge1xuICAgICAgICBpZiAoZmllbGQ/LmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNlcnZpY2UucmVmcmVzaFZpc2liaWxpdHkoZmllbGQuZm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkRm9ybUZyb21BY3Rpdml0aShub2RlVHlwZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgdGhpcy5tb2RlbFNlcnZpY2Uuc2VhcmNoRnJvbShub2RlVHlwZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVGb3JtRnJvbUFOb2RlKG5vZGVUeXBlKS5zdWJzY3JpYmUoKGZvcm1NZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRm9ybUZyb21Gb3JtSWQoZm9ybU1ldGFkYXRhLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRm9ybUZyb21Gb3JtSWQoZm9ybS5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBGb3JtIHdpdGggYSBmaWVsZCBmb3IgZWFjaCBtZXRhZGF0YSBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JtTmFtZSBOYW1lIG9mIHRoZSBuZXcgZm9ybVxuICAgICAqIEByZXR1cm5zIFRoZSBuZXcgZm9ybVxuICAgICAqL1xuICAgIGNyZWF0ZUZvcm1Gcm9tQU5vZGUoZm9ybU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWxTZXJ2aWNlLmNyZWF0ZUZvcm0oZm9ybU5hbWUpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVjbU1vZGVsU2VydmljZS5zZWFyY2hFY21UeXBlKGZvcm1OYW1lLCBFY21Nb2RlbFNlcnZpY2UuTU9ERUxfTkFNRSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGN1c3RvbVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtRGVmaW5pdGlvbk1vZGVsID0gbmV3IEZvcm1EZWZpbml0aW9uTW9kZWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybS5sYXN0VXBkYXRlZEJ5RnVsbE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ubGFzdFVwZGF0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVR5cGUuZW50cnkucHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSh0aGlzLmVkaXRvclNlcnZpY2Uuc2F2ZUZvcm0oZm9ybS5pZCwgZm9ybURlZmluaXRpb25Nb2RlbCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1EYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGZvcm1EYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnIpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKGVycikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdG9yZUZvcm1Bc01ldGFkYXRhKCkge1xuICAgICAgICBpZiAodGhpcy5zYXZlTWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuZWNtTW9kZWxTZXJ2aWNlLmNyZWF0ZUVjbVR5cGVGb3JBY3Rpdml0aUZvcm0odGhpcy5mb3JtTmFtZSwgdGhpcy5mb3JtKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlU2VydmljZS5jcmVhdGVOb2RlTWV0YWRhdGEoXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlLm5vZGVUeXBlIHx8IHR5cGUuZW50cnkucHJlZml4ZWROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgRWNtTW9kZWxTZXJ2aWNlLk1PREVMX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hbWVOb2RlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZvcm1Mb2FkZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybUxvYWRlZC5lbWl0KGZvcm0pO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmZvcm1Mb2FkZWQubmV4dChuZXcgRm9ybUV2ZW50KGZvcm0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb3JtRGF0YVJlZnJlc2hlZChmb3JtOiBGb3JtTW9kZWwpIHtcbiAgICAgICAgdGhpcy5mb3JtRGF0YVJlZnJlc2hlZC5lbWl0KGZvcm0pO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLmZvcm1EYXRhUmVmcmVzaGVkLm5leHQobmV3IEZvcm1FdmVudChmb3JtKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGFza1NhdmVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1TYXZlZC5lbWl0KGZvcm0pO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tTYXZlZC5uZXh0KG5ldyBGb3JtRXZlbnQoZm9ybSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRhc2tTYXZlZEVycm9yKGZvcm06IEZvcm1Nb2RlbCwgZXJyb3I6IGFueSkge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS50YXNrU2F2ZWRFcnJvci5uZXh0KG5ldyBGb3JtRXJyb3JFdmVudChmb3JtLCBlcnJvcikpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRhc2tDb21wbGV0ZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBsZXRlZC5lbWl0KGZvcm0pO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tDb21wbGV0ZWQubmV4dChuZXcgRm9ybUV2ZW50KGZvcm0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UYXNrQ29tcGxldGVkRXJyb3IoZm9ybTogRm9ybU1vZGVsLCBlcnJvcjogYW55KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnRhc2tDb21wbGV0ZWRFcnJvci5uZXh0KG5ldyBGb3JtRXJyb3JFdmVudChmb3JtLCBlcnJvcikpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkV4ZWN1dGVPdXRjb21lKG91dGNvbWU6IEZvcm1PdXRjb21lTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYXJncyA9IG5ldyBGb3JtT3V0Y29tZUV2ZW50KG91dGNvbWUpO1xuXG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuZXhlY3V0ZU91dGNvbWUubmV4dChhcmdzKTtcbiAgICAgICAgaWYgKGFyZ3MuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leGVjdXRlT3V0Y29tZS5lbWl0KGFyZ3MpO1xuICAgICAgICByZXR1cm4gIWFyZ3MuZGVmYXVsdFByZXZlbnRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hGb3JtRGF0YSgpIHtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5wYXJzZUZvcm0odGhpcy5mb3JtLmpzb24pO1xuICAgICAgICB0aGlzLm9uRm9ybUxvYWRlZCh0aGlzLmZvcm0pO1xuICAgICAgICB0aGlzLm9uRm9ybURhdGFSZWZyZXNoZWQodGhpcy5mb3JtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRGb3JtRm9yRWNtTm9kZShub2RlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vZGVTZXJ2aWNlLmdldE5vZGVNZXRhZGF0YShub2RlSWQpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gZGF0YS5tZXRhZGF0YTtcbiAgICAgICAgICAgIHRoaXMubG9hZEZvcm1Gcm9tQWN0aXZpdGkoZGF0YS5ub2RlVHlwZSk7XG4gICAgICAgIH0sIHRoaXMuaGFuZGxlRXJyb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZEZvcm1Gcm9tRm9ybUlkKGZvcm1JZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZm9ybUlkID0gZm9ybUlkO1xuICAgICAgICB0aGlzLmxvYWRGb3JtKCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFoYXNGb3JtKClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW1wdHktZm9ybV1cIiAvPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJoYXNGb3JtKClcIiBjbGFzcz1cImFkZi1mb3JtLWNvbnRhaW5lclwiPlxuICAgIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cImFkZi1mb3JtLWNhcmRcIj5cbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93VmFsaWRhdGlvbkljb25cIiBjbGFzcz1cImFkZi1mb3JtLXZhbGlkYXRpb24tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cImFkZi12YWxpZC1mb3JtLWljb25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm0uaXNWYWxpZDsgZWxzZSBub192YWxpZF9mb3JtXCI+Y2hlY2tfY2lyY2xlPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub192YWxpZF9mb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiYWRmLWludmFsaWQtZm9ybS1pY29uXCIgY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBhZGYtaW52YWxpZC1jb2xvclwiPmVycm9yPC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93UmVmcmVzaEJ1dHRvblwiIGNsYXNzPVwiYWRmLWZvcm0tcmVsb2FkLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uUmVmcmVzaENsaWNrZWQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1RpdGxlRW5hYmxlZCgpXCIgY2xhc3M9XCJhZGYtZm9ybS10aXRsZVwiIFt0aXRsZV09XCJmb3JtLnRhc2tOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2Zvcm0udGFza05hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb3JtLnRhc2tOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3snRk9STS5GT1JNX1JFTkRFUkVSLk5BTUVMRVNTX1RBU0snIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImFkZi1mb3JtLWNhcmQtY29udGVudFwiPlxuICAgICAgICAgICAgPGFkZi1mb3JtLXJlbmRlcmVyIFtmb3JtRGVmaW5pdGlvbl09XCJmb3JtXCIgLz5cbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyAqbmdJZj1cImZvcm0uaGFzT3V0Y29tZXMoKVwiIGNsYXNzPVwiYWRmLWZvcm0tbWF0LWNhcmQtYWN0aW9uc1wiIGFsaWduPVwiZW5kXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtZm9ybS1jdXN0b20tb3V0Y29tZXNcIiAvPlxuICAgICAgICAgICAgPGJ1dHRvbiBbaWRdPVwiJ2FkZi1mb3JtLScrIG91dGNvbWUubmFtZSAgfCBmb3JtYXRTcGFjZVwiICpuZ0Zvcj1cImxldCBvdXRjb21lIG9mIGZvcm0ub3V0Y29tZXNcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXRDb2xvckZvck91dGNvbWUob3V0Y29tZS5uYW1lKVwiIG1hdC1idXR0b24gW2Rpc2FibGVkXT1cIiFpc091dGNvbWVCdXR0b25FbmFibGVkKG91dGNvbWUpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWRmLWZvcm0taGlkZS1idXR0b25dPVwiIWlzT3V0Y29tZUJ1dHRvblZpc2libGUob3V0Y29tZSwgZm9ybS5yZWFkT25seSlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk91dGNvbWVDbGlja2VkKG91dGNvbWUpXCI+XG4gICAgICAgICAgICAgICAge3tvdXRjb21lLm5hbWUgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
export * from './public-api';
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL2Zvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
import { FormSaveRepresentation } from '@alfresco/js-api';
|
|
18
|
-
export class FormDefinitionModel extends FormSaveRepresentation {
|
|
19
|
-
constructor(id, name, lastUpdatedByFullName, lastUpdated, metadata) {
|
|
20
|
-
super();
|
|
21
|
-
this.reusable = false;
|
|
22
|
-
this.newVersion = false;
|
|
23
|
-
this.formImageBase64 = '';
|
|
24
|
-
this.formRepresentation = {
|
|
25
|
-
id,
|
|
26
|
-
name,
|
|
27
|
-
description: '',
|
|
28
|
-
version: 1,
|
|
29
|
-
lastUpdatedBy: 1,
|
|
30
|
-
lastUpdatedByFullName,
|
|
31
|
-
lastUpdated,
|
|
32
|
-
stencilSetId: 0,
|
|
33
|
-
referenceId: null,
|
|
34
|
-
formDefinition: {
|
|
35
|
-
fields: [{
|
|
36
|
-
name: 'Label',
|
|
37
|
-
type: 'container',
|
|
38
|
-
fieldType: 'ContainerRepresentation',
|
|
39
|
-
numberOfColumns: 2,
|
|
40
|
-
required: false,
|
|
41
|
-
readOnly: false,
|
|
42
|
-
sizeX: 2,
|
|
43
|
-
sizeY: 1,
|
|
44
|
-
row: -1,
|
|
45
|
-
col: -1,
|
|
46
|
-
fields: { 1: this.metadataToFields(metadata) }
|
|
47
|
-
}],
|
|
48
|
-
gridsterForm: false,
|
|
49
|
-
javascriptEvents: [],
|
|
50
|
-
metadata: {},
|
|
51
|
-
outcomes: [],
|
|
52
|
-
className: '',
|
|
53
|
-
style: '',
|
|
54
|
-
tabs: [],
|
|
55
|
-
variables: []
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
metadataToFields(metadata) {
|
|
60
|
-
const fields = [];
|
|
61
|
-
if (metadata) {
|
|
62
|
-
metadata.forEach((property) => {
|
|
63
|
-
if (property) {
|
|
64
|
-
const field = {
|
|
65
|
-
type: 'text',
|
|
66
|
-
id: property.name,
|
|
67
|
-
name: property.name,
|
|
68
|
-
required: false,
|
|
69
|
-
readOnly: false,
|
|
70
|
-
sizeX: 1,
|
|
71
|
-
sizeY: 1,
|
|
72
|
-
row: -1,
|
|
73
|
-
col: -1,
|
|
74
|
-
colspan: 1,
|
|
75
|
-
params: {
|
|
76
|
-
existingColspan: 1,
|
|
77
|
-
maxColspan: 2
|
|
78
|
-
},
|
|
79
|
-
layout: {
|
|
80
|
-
colspan: 1,
|
|
81
|
-
row: -1,
|
|
82
|
-
column: -1
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
fields.push(field);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
return fields;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kZWZpbml0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9mb3JtL21vZGVsL2Zvcm0tZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsc0JBQXNCO0lBTTNELFlBQVksRUFBVSxFQUFFLElBQVMsRUFBRSxxQkFBNkIsRUFBRSxXQUFtQixFQUFFLFFBQWE7UUFDaEcsS0FBSyxFQUFFLENBQUM7UUFOWixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFNUIsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFJekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLEVBQUU7WUFDRixJQUFJO1lBQ0osV0FBVyxFQUFFLEVBQUU7WUFDZixPQUFPLEVBQUUsQ0FBQztZQUNWLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLHFCQUFxQjtZQUNyQixXQUFXO1lBQ1gsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsSUFBSTtZQUNqQixjQUFjLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLENBQUM7d0JBQ0wsSUFBSSxFQUFFLE9BQU87d0JBQ2IsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLFNBQVMsRUFBRSx5QkFBeUI7d0JBQ3BDLGVBQWUsRUFBRSxDQUFDO3dCQUNsQixRQUFRLEVBQUUsS0FBSzt3QkFDZixRQUFRLEVBQUUsS0FBSzt3QkFDZixLQUFLLEVBQUUsQ0FBQzt3QkFDUixLQUFLLEVBQUUsQ0FBQzt3QkFDUixHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUNQLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ1AsTUFBTSxFQUFFLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBQztxQkFDL0MsQ0FBQztnQkFDRixZQUFZLEVBQUUsS0FBSztnQkFDbkIsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDcEIsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLEVBQUU7Z0JBQ1osU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsU0FBUyxFQUFFLEVBQUU7YUFDaEI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWE7UUFDbEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzFCLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxLQUFLLEdBQUc7d0JBQ1YsSUFBSSxFQUFFLE1BQU07d0JBQ1osRUFBRSxFQUFFLFFBQVEsQ0FBQyxJQUFJO3dCQUNqQixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7d0JBQ25CLFFBQVEsRUFBRSxLQUFLO3dCQUNmLFFBQVEsRUFBRSxLQUFLO3dCQUNmLEtBQUssRUFBRSxDQUFDO3dCQUNSLEtBQUssRUFBRSxDQUFDO3dCQUNSLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ1AsR0FBRyxFQUFFLENBQUMsQ0FBQzt3QkFDUCxPQUFPLEVBQUUsQ0FBQzt3QkFDVixNQUFNLEVBQUU7NEJBQ0osZUFBZSxFQUFFLENBQUM7NEJBQ2xCLFVBQVUsRUFBRSxDQUFDO3lCQUNoQjt3QkFDRCxNQUFNLEVBQUU7NEJBQ0osT0FBTyxFQUFFLENBQUM7NEJBQ1YsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDUCxNQUFNLEVBQUUsQ0FBQyxDQUFDO3lCQUNiO3FCQUNKLENBQUM7b0JBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRm9ybVNhdmVSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuXG5leHBvcnQgY2xhc3MgRm9ybURlZmluaXRpb25Nb2RlbCBleHRlbmRzIEZvcm1TYXZlUmVwcmVzZW50YXRpb24ge1xuICAgIHJldXNhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgbmV3VmVyc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGZvcm1SZXByZXNlbnRhdGlvbjogYW55O1xuICAgIGZvcm1JbWFnZUJhc2U2NDogc3RyaW5nID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBuYW1lOiBhbnksIGxhc3RVcGRhdGVkQnlGdWxsTmFtZTogc3RyaW5nLCBsYXN0VXBkYXRlZDogc3RyaW5nLCBtZXRhZGF0YTogYW55KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZm9ybVJlcHJlc2VudGF0aW9uID0ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGVkQnk6IDEsXG4gICAgICAgICAgICBsYXN0VXBkYXRlZEJ5RnVsbE5hbWUsXG4gICAgICAgICAgICBsYXN0VXBkYXRlZCxcbiAgICAgICAgICAgIHN0ZW5jaWxTZXRJZDogMCxcbiAgICAgICAgICAgIHJlZmVyZW5jZUlkOiBudWxsLFxuICAgICAgICAgICAgZm9ybURlZmluaXRpb246IHtcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFt7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdMYWJlbCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjb250YWluZXInLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6ICdDb250YWluZXJSZXByZXNlbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIG51bWJlck9mQ29sdW1uczogMixcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHNpemVYOiAyLFxuICAgICAgICAgICAgICAgICAgICBzaXplWTogMSxcbiAgICAgICAgICAgICAgICAgICAgcm93OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgY29sOiAtMSxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiB7MTogdGhpcy5tZXRhZGF0YVRvRmllbGRzKG1ldGFkYXRhKX1cbiAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICBncmlkc3RlckZvcm06IGZhbHNlLFxuICAgICAgICAgICAgICAgIGphdmFzY3JpcHRFdmVudHM6IFtdLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICBvdXRjb21lczogW10sXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBzdHlsZTogJycsXG4gICAgICAgICAgICAgICAgdGFiczogW10sXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBbXVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgbWV0YWRhdGFUb0ZpZWxkcyhtZXRhZGF0YTogYW55KTogYW55W10ge1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBbXTtcbiAgICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgICAgICBtZXRhZGF0YS5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcHJvcGVydHkubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVYOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZVk6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3c6IC0xLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sOiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW46IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0NvbHNwYW46IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Q29sc3BhbjogMlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW46IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgfVxufVxuIl19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
import { Injectable } from '@angular/core';
|
|
18
|
-
import { FormFieldTypes, FormRenderingService } from '@alfresco/adf-core';
|
|
19
|
-
import { AttachFileWidgetComponent } from './widgets/content-widget/attach-file-widget.component';
|
|
20
|
-
import { AttachFolderWidgetComponent } from './widgets/content-widget/attach-folder-widget.component';
|
|
21
|
-
import { DocumentWidgetComponent } from './widgets/document/document.widget';
|
|
22
|
-
import { PeopleWidgetComponent } from './widgets/people/people.widget';
|
|
23
|
-
import { FunctionalGroupWidgetComponent } from './widgets/functional-group/functional-group.widget';
|
|
24
|
-
import { RadioButtonsWidgetComponent } from './widgets/radio-buttons/radio-buttons.widget';
|
|
25
|
-
import { TypeaheadWidgetComponent } from './widgets/typeahead/typeahead.widget';
|
|
26
|
-
import { DynamicTableWidgetComponent } from './widgets/dynamic-table/dynamic-table.widget';
|
|
27
|
-
import { DropdownWidgetComponent } from './widgets/dropdown/dropdown.widget';
|
|
28
|
-
import { FileViewerWidgetComponent } from './widgets/file-viewer/file-viewer.widget';
|
|
29
|
-
import * as i0 from "@angular/core";
|
|
30
|
-
export class ProcessFormRenderingService extends FormRenderingService {
|
|
31
|
-
constructor() {
|
|
32
|
-
super();
|
|
33
|
-
this.register({
|
|
34
|
-
[FormFieldTypes.DROPDOWN]: () => DropdownWidgetComponent,
|
|
35
|
-
[FormFieldTypes.TYPEAHEAD]: () => TypeaheadWidgetComponent,
|
|
36
|
-
[FormFieldTypes.RADIO_BUTTONS]: () => RadioButtonsWidgetComponent,
|
|
37
|
-
[FormFieldTypes.UPLOAD]: () => AttachFileWidgetComponent,
|
|
38
|
-
[FormFieldTypes.ATTACH_FOLDER]: () => AttachFolderWidgetComponent,
|
|
39
|
-
[FormFieldTypes.DOCUMENT]: () => DocumentWidgetComponent,
|
|
40
|
-
[FormFieldTypes.PEOPLE]: () => PeopleWidgetComponent,
|
|
41
|
-
[FormFieldTypes.FUNCTIONAL_GROUP]: () => FunctionalGroupWidgetComponent,
|
|
42
|
-
[FormFieldTypes.DYNAMIC_TABLE]: () => DynamicTableWidgetComponent,
|
|
43
|
-
[FormFieldTypes.ALFRESCO_FILE_VIEWER]: () => FileViewerWidgetComponent
|
|
44
|
-
}, true);
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessFormRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
47
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessFormRenderingService, providedIn: 'root' }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessFormRenderingService, decorators: [{
|
|
50
|
-
type: Injectable,
|
|
51
|
-
args: [{
|
|
52
|
-
providedIn: 'root'
|
|
53
|
-
}]
|
|
54
|
-
}], ctorParameters: () => [] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1mb3JtLXJlbmRlcmluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMvc3JjL2xpYi9mb3JtL3Byb2Nlc3MtZm9ybS1yZW5kZXJpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDcEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBS3JGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxvQkFBb0I7SUFDakU7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDVixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyx1QkFBdUI7WUFDeEQsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUUsd0JBQXdCO1lBQzNELENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFFLDJCQUEyQjtZQUNsRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyx5QkFBeUI7WUFDeEQsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCO1lBQ2pFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLHVCQUF1QjtZQUN4RCxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBRSxxQkFBcUI7WUFDckQsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEI7WUFDeEUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUcsR0FBRyxFQUFFLENBQUMsMkJBQTJCO1lBQ2xFLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEVBQUcsR0FBRyxFQUFFLENBQUMseUJBQXlCO1NBQzFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDOytHQWhCUSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQUZ4QixNQUFNOzs0RkFFVCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1GaWVsZFR5cGVzLFxuICAgIEZvcm1SZW5kZXJpbmdTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBdHRhY2hGaWxlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1maWxlLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNoRm9sZGVyV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtd2lkZ2V0L2F0dGFjaC1mb2xkZXItd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb2N1bWVudFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kb2N1bWVudC9kb2N1bWVudC53aWRnZXQnO1xuaW1wb3J0IHsgUGVvcGxlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3Blb3BsZS9wZW9wbGUud2lkZ2V0JztcbmltcG9ydCB7IEZ1bmN0aW9uYWxHcm91cFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9mdW5jdGlvbmFsLWdyb3VwL2Z1bmN0aW9uYWwtZ3JvdXAud2lkZ2V0JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uc1dpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9yYWRpby1idXR0b25zL3JhZGlvLWJ1dHRvbnMud2lkZ2V0JztcbmltcG9ydCB7IFR5cGVhaGVhZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90eXBlYWhlYWQvdHlwZWFoZWFkLndpZGdldCc7XG5pbXBvcnQgeyBEeW5hbWljVGFibGVXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLndpZGdldCc7XG5pbXBvcnQgeyBEcm9wZG93bldpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi53aWRnZXQnO1xuaW1wb3J0IHsgRmlsZVZpZXdlcldpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9maWxlLXZpZXdlci9maWxlLXZpZXdlci53aWRnZXQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NGb3JtUmVuZGVyaW5nU2VydmljZSBleHRlbmRzIEZvcm1SZW5kZXJpbmdTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5EUk9QRE9XTl06ICgpID0+IERyb3Bkb3duV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICAgICAgW0Zvcm1GaWVsZFR5cGVzLlRZUEVBSEVBRF06ICgpID0+ICBUeXBlYWhlYWRXaWRnZXRDb21wb25lbnQsXG4gICAgICAgICAgICBbRm9ybUZpZWxkVHlwZXMuUkFESU9fQlVUVE9OU106ICgpID0+ICBSYWRpb0J1dHRvbnNXaWRnZXRDb21wb25lbnQsXG4gICAgICAgICAgICBbRm9ybUZpZWxkVHlwZXMuVVBMT0FEXTogKCkgPT4gQXR0YWNoRmlsZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5BVFRBQ0hfRk9MREVSXTogKCkgPT4gQXR0YWNoRm9sZGVyV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICAgICAgW0Zvcm1GaWVsZFR5cGVzLkRPQ1VNRU5UXTogKCkgPT4gRG9jdW1lbnRXaWRnZXRDb21wb25lbnQsXG4gICAgICAgICAgICBbRm9ybUZpZWxkVHlwZXMuUEVPUExFXTogKCkgPT4gIFBlb3BsZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5GVU5DVElPTkFMX0dST1VQXTogICgpID0+IEZ1bmN0aW9uYWxHcm91cFdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5EWU5BTUlDX1RBQkxFXTogICgpID0+IER5bmFtaWNUYWJsZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgICAgIFtGb3JtRmllbGRUeXBlcy5BTEZSRVNDT19GSUxFX1ZJRVdFUl06ICAoKSA9PiBGaWxlVmlld2VyV2lkZ2V0Q29tcG9uZW50XG4gICAgICAgIH0sIHRydWUpO1xuICAgIH1cbn1cbiJdfQ==
|