@alfresco/adf-process-services-cloud 8.1.0-16500060130 → 8.1.0
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/bundles/assets/adf-process-services-cloud/i18n/de.json +0 -3
- package/bundles/assets/adf-process-services-cloud/i18n/es.json +0 -3
- package/bundles/assets/adf-process-services-cloud/i18n/fr.json +0 -3
- package/bundles/assets/adf-process-services-cloud/i18n/it.json +0 -3
- package/bundles/assets/adf-process-services-cloud/i18n/pl.json +0 -3
- package/bundles/assets/adf-process-services-cloud/i18n/pt.json +0 -3
- package/fesm2022/adf-process-services-cloud.mjs +490 -410
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/lib/app/services/apps-process-cloud.service.d.ts +2 -2
- package/lib/form/components/widgets/display-rich-text/display-rich-text.widget.scss +0 -1
- package/lib/process/start-process/components/start-process-cloud.component.d.ts +0 -1
- package/lib/process/start-process/components/start-process-cloud.component.scss +4 -0
- package/lib/process/start-process/services/start-process-cloud.service.d.ts +1 -0
- package/lib/process-services-cloud.module.d.ts +2 -1
- package/lib/screen/components/screen-cloud/screen-cloud.component.d.ts +1 -1
- package/lib/screen/public-api.d.ts +3 -1
- package/lib/screen/services/provide-screen.d.ts +37 -0
- package/lib/{services → screen/services}/screen-rendering.service.d.ts +29 -0
- package/lib/services/public-api.d.ts +0 -1
- package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
- package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
- package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
- package/package.json +4 -6
- package/esm2022/adf-process-services-cloud.mjs +0 -5
- package/esm2022/lib/app/app-list-cloud.module.mjs +0 -20
- package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +0 -67
- package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +0 -125
- package/esm2022/lib/app/models/application-instance.model.mjs +0 -24
- package/esm2022/lib/app/public-api.mjs +0 -22
- package/esm2022/lib/app/services/apps-process-cloud.service.mjs +0 -97
- package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +0 -163
- package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +0 -97
- package/esm2022/lib/common/index.mjs +0 -18
- package/esm2022/lib/common/interface/environment.interface.mjs +0 -18
- package/esm2022/lib/common/interface/index.mjs +0 -18
- package/esm2022/lib/common/interface/public-api.mjs +0 -18
- package/esm2022/lib/common/public-api.mjs +0 -19
- package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +0 -57
- package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +0 -31
- package/esm2022/lib/form/components/form-cloud.component.mjs +0 -420
- package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +0 -53
- package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +0 -35
- package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +0 -249
- package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +0 -136
- package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +0 -107
- package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +0 -120
- package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +0 -122
- package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +0 -189
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +0 -85
- package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +0 -80
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +0 -464
- package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +0 -29
- package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +0 -46
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +0 -82
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +0 -91
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +0 -81
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +0 -53
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +0 -86
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +0 -116
- package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +0 -187
- package/esm2022/lib/form/form-cloud.module.mjs +0 -99
- package/esm2022/lib/form/models/form-cloud-representation.model.mjs +0 -48
- package/esm2022/lib/form/models/task-variable-cloud.model.mjs +0 -28
- package/esm2022/lib/form/public-api.mjs +0 -44
- package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +0 -120
- package/esm2022/lib/form/services/display-mode.service.mjs +0 -146
- package/esm2022/lib/form/services/form-cloud.service.interface.mjs +0 -18
- package/esm2022/lib/form/services/form-cloud.service.mjs +0 -201
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +0 -18
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +0 -51
- package/esm2022/lib/form/services/form-utils.service.mjs +0 -37
- package/esm2022/lib/form/services/process-cloud-content.service.mjs +0 -71
- package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +0 -52
- package/esm2022/lib/group/components/group-cloud.component.mjs +0 -423
- package/esm2022/lib/group/group-cloud.module.mjs +0 -33
- package/esm2022/lib/group/models/identity-group.model.mjs +0 -18
- package/esm2022/lib/group/public-api.mjs +0 -21
- package/esm2022/lib/group/services/identity-group.service.mjs +0 -89
- package/esm2022/lib/models/application-version.model.mjs +0 -21
- package/esm2022/lib/models/constant-values.type.mjs +0 -18
- package/esm2022/lib/models/data-column-custom-data.mjs +0 -18
- package/esm2022/lib/models/date-cloud-filter.model.mjs +0 -31
- package/esm2022/lib/models/date-format-cloud.model.mjs +0 -18
- package/esm2022/lib/models/engine-event-cloud.model.mjs +0 -18
- package/esm2022/lib/models/filter-cloud-model.mjs +0 -128
- package/esm2022/lib/models/process-definition-cloud.model.mjs +0 -32
- package/esm2022/lib/models/process-instance-variable.model.mjs +0 -18
- package/esm2022/lib/models/process-variable-filter.model.mjs +0 -18
- package/esm2022/lib/models/task-cloud.model.mjs +0 -23
- package/esm2022/lib/models/task-list-sorting.model.mjs +0 -40
- package/esm2022/lib/models/variable-definition.mjs +0 -18
- package/esm2022/lib/people/components/people-cloud.component.mjs +0 -498
- package/esm2022/lib/people/models/identity-user.model.mjs +0 -18
- package/esm2022/lib/people/people-cloud.module.mjs +0 -33
- package/esm2022/lib/people/public-api.mjs +0 -21
- package/esm2022/lib/people/services/identity-user.service.mjs +0 -119
- package/esm2022/lib/process/process-cloud.module.mjs +0 -40
- package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +0 -801
- package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +0 -58
- package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +0 -292
- package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +0 -170
- package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +0 -44
- package/esm2022/lib/process/process-filters/public-api.mjs +0 -23
- package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +0 -408
- package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +0 -137
- package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +0 -33
- package/esm2022/lib/process/process-header/public-api.mjs +0 -19
- package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +0 -593
- package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +0 -31
- package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +0 -18
- package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +0 -24
- package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +0 -37
- package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +0 -107
- package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +0 -40
- package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +0 -45
- package/esm2022/lib/process/process-list/public-api.mjs +0 -25
- package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +0 -253
- package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +0 -109
- package/esm2022/lib/process/public-api.mjs +0 -23
- package/esm2022/lib/process/services/process-cloud.service.mjs +0 -105
- package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +0 -465
- package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +0 -18
- package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +0 -26
- package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +0 -26
- package/esm2022/lib/process/start-process/public-api.mjs +0 -21
- package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +0 -125
- package/esm2022/lib/process-services-cloud.module.mjs +0 -98
- package/esm2022/lib/providers.mjs +0 -45
- package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +0 -186
- package/esm2022/lib/screen/models/screen-cloud.model.mjs +0 -18
- package/esm2022/lib/screen/public-api.mjs +0 -18
- package/esm2022/lib/services/base-cloud.service.mjs +0 -83
- package/esm2022/lib/services/cloud-token.service.mjs +0 -23
- package/esm2022/lib/services/form-fields.interfaces.mjs +0 -55
- package/esm2022/lib/services/local-preference-cloud.service.mjs +0 -122
- package/esm2022/lib/services/notification-cloud.service.mjs +0 -45
- package/esm2022/lib/services/preference-cloud.interface.mjs +0 -18
- package/esm2022/lib/services/public-api.mjs +0 -28
- package/esm2022/lib/services/screen-rendering.service.mjs +0 -30
- package/esm2022/lib/services/task-list-cloud.service.interface.mjs +0 -18
- package/esm2022/lib/services/user-preference-cloud.service.mjs +0 -105
- package/esm2022/lib/services/variable-mapper.sevice.mjs +0 -77
- package/esm2022/lib/services/web-socket.service.mjs +0 -146
- package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +0 -32
- package/esm2022/lib/task/models/task-details-cloud.model.mjs +0 -26
- package/esm2022/lib/task/models/task.model.mjs +0 -23
- package/esm2022/lib/task/public-api.mjs +0 -26
- package/esm2022/lib/task/services/task-cloud.service.mjs +0 -272
- package/esm2022/lib/task/task-cloud.module.mjs +0 -45
- package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +0 -59
- package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +0 -467
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +0 -205
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +0 -317
- package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +0 -146
- package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +0 -142
- package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +0 -72
- package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +0 -255
- package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +0 -207
- package/esm2022/lib/task/task-filters/public-api.mjs +0 -27
- package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +0 -283
- package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +0 -392
- package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +0 -56
- package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +0 -231
- package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +0 -89
- package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +0 -309
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +0 -101
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +0 -87
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +0 -85
- package/esm2022/lib/task/task-form/public-api.mjs +0 -21
- package/esm2022/lib/task/task-form/task-form.module.mjs +0 -36
- package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +0 -280
- package/esm2022/lib/task/task-header/public-api.mjs +0 -19
- package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +0 -33
- package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +0 -331
- package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +0 -115
- package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +0 -31
- package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +0 -389
- package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +0 -18
- package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +0 -18
- package/esm2022/lib/task/task-list/public-api.mjs +0 -23
- package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +0 -115
- package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +0 -178
- package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +0 -35
- package/esm2022/lib/types.mjs +0 -18
- package/esm2022/public-api.mjs +0 -40
- /package/lib/screen/{models → components/screen-cloud}/screen-cloud.model.d.ts +0 -0
|
@@ -1,136 +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
|
-
/* eslint-disable @angular-eslint/component-selector */
|
|
18
|
-
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
19
|
-
import { LocalizedDatePipe, ThumbnailService, UploadDirective } from '@alfresco/adf-core';
|
|
20
|
-
import { Node } from '@alfresco/js-api';
|
|
21
|
-
import { CommonModule } from '@angular/common';
|
|
22
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
23
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
24
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
25
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
26
|
-
import { MatTableModule } from '@angular/material/table';
|
|
27
|
-
import { MatLineModule } from '@angular/material/core';
|
|
28
|
-
import { MatListModule } from '@angular/material/list';
|
|
29
|
-
import * as i0 from "@angular/core";
|
|
30
|
-
import * as i1 from "@angular/common";
|
|
31
|
-
import * as i2 from "@angular/material/icon";
|
|
32
|
-
import * as i3 from "@angular/material/menu";
|
|
33
|
-
import * as i4 from "@angular/material/button";
|
|
34
|
-
import * as i5 from "@angular/material/table";
|
|
35
|
-
import * as i6 from "@angular/material/core";
|
|
36
|
-
import * as i7 from "@angular/material/list";
|
|
37
|
-
const RETRIEVE_METADATA_OPTION = 'retrieveMetadata';
|
|
38
|
-
export class FilePropertiesTableCloudComponent {
|
|
39
|
-
constructor() {
|
|
40
|
-
this.localizedDatePipe = inject(LocalizedDatePipe);
|
|
41
|
-
this.thumbnailService = inject(ThumbnailService);
|
|
42
|
-
this.rowClick = new EventEmitter();
|
|
43
|
-
this.attachFileClick = new EventEmitter();
|
|
44
|
-
this.downloadFile = new EventEmitter();
|
|
45
|
-
this.uploadNewFileVersion = new EventEmitter();
|
|
46
|
-
this.contentModelFileHandler = new EventEmitter();
|
|
47
|
-
this.removeAttachFile = new EventEmitter();
|
|
48
|
-
}
|
|
49
|
-
onRowClicked(file) {
|
|
50
|
-
this.rowClick.emit(file);
|
|
51
|
-
}
|
|
52
|
-
onAttachFileClicked(nodeSelector) {
|
|
53
|
-
this.attachFileClick.emit(nodeSelector);
|
|
54
|
-
}
|
|
55
|
-
downloadContent(file) {
|
|
56
|
-
this.downloadFile.emit(file);
|
|
57
|
-
}
|
|
58
|
-
onUploadNewFileVersion(customEvent, node) {
|
|
59
|
-
const newVersionUploaderDialogData = {
|
|
60
|
-
file: customEvent.detail.files[0].file,
|
|
61
|
-
node,
|
|
62
|
-
showComments: true,
|
|
63
|
-
allowDownload: true
|
|
64
|
-
};
|
|
65
|
-
this.uploadNewFileVersion.emit(newVersionUploaderDialogData);
|
|
66
|
-
}
|
|
67
|
-
contentModelFormFileHandler(file) {
|
|
68
|
-
this.contentModelFileHandler.emit(file);
|
|
69
|
-
}
|
|
70
|
-
onRemoveAttachFile(file) {
|
|
71
|
-
this.removeAttachFile.emit(file);
|
|
72
|
-
}
|
|
73
|
-
getIcon(mimeType) {
|
|
74
|
-
return this.thumbnailService.getMimeTypeIcon(mimeType);
|
|
75
|
-
}
|
|
76
|
-
getColumnValue(file, prop) {
|
|
77
|
-
if (!file.properties[prop.prefixedName]) {
|
|
78
|
-
const fieldProperty = this.field.params.displayableCMProperties?.find((property) => property.name === prop.name);
|
|
79
|
-
return fieldProperty.defaultValue ? this.checkDateTypeAndTransform(prop.dataType, fieldProperty.defaultValue) : '--';
|
|
80
|
-
}
|
|
81
|
-
return file.properties[prop.prefixedName] ? this.checkDateTypeAndTransform(prop.dataType, file.properties[prop.prefixedName]) : '--';
|
|
82
|
-
}
|
|
83
|
-
checkDateTypeAndTransform(dataType, value) {
|
|
84
|
-
if (dataType === 'd:date') {
|
|
85
|
-
return this.localizedDatePipe.transform(value);
|
|
86
|
-
}
|
|
87
|
-
else if (dataType === 'd:datetime') {
|
|
88
|
-
return this.localizedDatePipe.transform(value, 'medium');
|
|
89
|
-
}
|
|
90
|
-
return value;
|
|
91
|
-
}
|
|
92
|
-
displayMenuOption(option) {
|
|
93
|
-
return this.field?.params?.menuOptions ? this.field.params.menuOptions[option] : option !== RETRIEVE_METADATA_OPTION;
|
|
94
|
-
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilePropertiesTableCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FilePropertiesTableCloudComponent, isStandalone: true, selector: "adf-cloud-file-properties-table", inputs: { uploadedFiles: "uploadedFiles", hasFile: "hasFile", selectedNode: "selectedNode", field: "field", displayedColumns: "displayedColumns", mimeTypeIcon: "mimeTypeIcon" }, outputs: { rowClick: "rowClick", attachFileClick: "attachFileClick", downloadFile: "downloadFile", uploadNewFileVersion: "uploadNewFileVersion", contentModelFileHandler: "contentModelFileHandler", removeAttachFile: "removeAttachFile" }, providers: [LocalizedDatePipe], ngImport: i0, template: "<div class=\"adf-file-properties-table-container\">\n <table mat-table [dataSource]=\"uploadedFiles\" class=\"adf-properties-table adf-file-properties-table mat-elevation-z0\" *ngIf=\"hasFile\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td class=\"adf-file-properties-table-cell\" mat-cell *matCellDef=\"let element\">\n <mat-icon matListItemLine class=\"adf-datatable-selected\"\n *ngIf=\"selectedNode && element.id === selectedNode.id\" (click)=\"onRowClicked(element)\">\n check_circle\n </mat-icon>\n <img matListItemLine class=\"adf-attach-widget__icon\"\n *ngIf=\"!selectedNode || element.id !== selectedNode.id\" [id]=\"'file-'+element?.id+'-icon'\"\n (click)=\"onRowClicked(element)\"\n (keyup.enter)=\"onRowClicked(element)\"\n [src]=\"element.content ? getIcon(element.content.mimeType) : getIcon(element['mimeType'])\"\n [alt]=\"mimeTypeIcon\" role=\"button\" tabindex=\"0\" />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.FILE_NAME' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <span matLine id=\"{{'file-'+element?.id}}\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n (keyup.enter)=\"onAttachFileClicked(element)\"\n (click)=\"onAttachFileClicked(element)\"\n >{{ element.name }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.TITLE' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">{{ element.title }}</td>\n </ng-container>\n\n <ng-container *ngFor=\"let prop of field?.params?.displayableCMProperties\" [matColumnDef]=\"prop.name\">\n <th mat-header-cell *matHeaderCellDef>{{prop.title ? prop.title : prop.name | titlecase }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let row\">\n <span matLine id=\"{{'fileProperty-'+row?.id+'-'+prop?.name}}\" role=\"button\" tabindex=\"0\"\n (keyup.enter)=\"onRowClicked(row)\"\n (click)=\"onRowClicked(row)\">{{ getColumnValue(row, prop) }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <button id=\"{{'file-'+element?.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n *ngIf=\"!!element.content?.mimeType\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button *ngIf=\"displayMenuOption('show') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-show-file'}}\" mat-menu-item\n (click)=\"onAttachFileClicked(element)\">\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('download') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-download-file'}}\" mat-menu-item\n (click)=\"downloadContent(element)\">\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('retrieveMetadata') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-retrieve-file-metadata'}}\" mat-menu-item\n (click)=\"contentModelFormFileHandler(element)\">\n <mat-icon class=\"mat-24\">low_priority</mat-icon>\n <span>{{ 'ADF_CLOUD_FORM_COMPONENT.RETRIEVE_METADATA' | translate }}</span>\n </button>\n <button *ngIf=\"!field.readOnly && displayMenuOption('remove')\"\n mat-menu-item\n [id]=\"'file-'+element?.id+'-remove'\"\n (click)=\"onRemoveAttachFile(element);\" (keyup.enter)=\"onRemoveAttachFile(element);\">\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n <div *ngIf=\"displayMenuOption('newVersion')\">\n <button [adf-upload]=\"true\" [mode]=\"['click']\"\n (upload-files)=\"onUploadNewFileVersion($event, element);\"\n id=\"{{'file-'+ element?.id +'-upload-new-version'}}\" mat-menu-item>\n <mat-icon class=\"mat-24\">file_upload</mat-icon>\n <span>{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row class=\"adf-file-properties-table-header-row\" *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n</div>\n", styles: [".adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table{width:100%;border:1px solid var(--adf-theme-foreground-text-color-007);box-shadow:none}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file{cursor:pointer}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file:hover{text-decoration:underline}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-datatable-selected{padding:6px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table tr.adf-file-properties-table-header-row{height:32px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table th{font-weight:700;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:first-of-type,.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:last-of-type{width:18%}\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.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: UploadDirective, selector: "[adf-upload]", inputs: ["adf-upload", "adf-upload-data", "mode", "multiple", "accept", "directory"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatLineModule }, { kind: "directive", type: i6.MatLine, selector: "[mat-line], [matLine]" }, { kind: "ngmodule", type: MatListModule }, { kind: "directive", type: i7.MatListItemLine, selector: "[matListItemLine]" }] }); }
|
|
97
|
-
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilePropertiesTableCloudComponent, decorators: [{
|
|
99
|
-
type: Component,
|
|
100
|
-
args: [{ selector: 'adf-cloud-file-properties-table', standalone: true, imports: [
|
|
101
|
-
CommonModule,
|
|
102
|
-
MatIconModule,
|
|
103
|
-
TranslatePipe,
|
|
104
|
-
MatMenuModule,
|
|
105
|
-
UploadDirective,
|
|
106
|
-
MatButtonModule,
|
|
107
|
-
MatTableModule,
|
|
108
|
-
MatLineModule,
|
|
109
|
-
MatListModule
|
|
110
|
-
], providers: [LocalizedDatePipe], template: "<div class=\"adf-file-properties-table-container\">\n <table mat-table [dataSource]=\"uploadedFiles\" class=\"adf-properties-table adf-file-properties-table mat-elevation-z0\" *ngIf=\"hasFile\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td class=\"adf-file-properties-table-cell\" mat-cell *matCellDef=\"let element\">\n <mat-icon matListItemLine class=\"adf-datatable-selected\"\n *ngIf=\"selectedNode && element.id === selectedNode.id\" (click)=\"onRowClicked(element)\">\n check_circle\n </mat-icon>\n <img matListItemLine class=\"adf-attach-widget__icon\"\n *ngIf=\"!selectedNode || element.id !== selectedNode.id\" [id]=\"'file-'+element?.id+'-icon'\"\n (click)=\"onRowClicked(element)\"\n (keyup.enter)=\"onRowClicked(element)\"\n [src]=\"element.content ? getIcon(element.content.mimeType) : getIcon(element['mimeType'])\"\n [alt]=\"mimeTypeIcon\" role=\"button\" tabindex=\"0\" />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.FILE_NAME' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <span matLine id=\"{{'file-'+element?.id}}\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n (keyup.enter)=\"onAttachFileClicked(element)\"\n (click)=\"onAttachFileClicked(element)\"\n >{{ element.name }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.TITLE' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">{{ element.title }}</td>\n </ng-container>\n\n <ng-container *ngFor=\"let prop of field?.params?.displayableCMProperties\" [matColumnDef]=\"prop.name\">\n <th mat-header-cell *matHeaderCellDef>{{prop.title ? prop.title : prop.name | titlecase }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let row\">\n <span matLine id=\"{{'fileProperty-'+row?.id+'-'+prop?.name}}\" role=\"button\" tabindex=\"0\"\n (keyup.enter)=\"onRowClicked(row)\"\n (click)=\"onRowClicked(row)\">{{ getColumnValue(row, prop) }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <button id=\"{{'file-'+element?.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n *ngIf=\"!!element.content?.mimeType\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button *ngIf=\"displayMenuOption('show') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-show-file'}}\" mat-menu-item\n (click)=\"onAttachFileClicked(element)\">\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('download') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-download-file'}}\" mat-menu-item\n (click)=\"downloadContent(element)\">\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('retrieveMetadata') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-retrieve-file-metadata'}}\" mat-menu-item\n (click)=\"contentModelFormFileHandler(element)\">\n <mat-icon class=\"mat-24\">low_priority</mat-icon>\n <span>{{ 'ADF_CLOUD_FORM_COMPONENT.RETRIEVE_METADATA' | translate }}</span>\n </button>\n <button *ngIf=\"!field.readOnly && displayMenuOption('remove')\"\n mat-menu-item\n [id]=\"'file-'+element?.id+'-remove'\"\n (click)=\"onRemoveAttachFile(element);\" (keyup.enter)=\"onRemoveAttachFile(element);\">\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n <div *ngIf=\"displayMenuOption('newVersion')\">\n <button [adf-upload]=\"true\" [mode]=\"['click']\"\n (upload-files)=\"onUploadNewFileVersion($event, element);\"\n id=\"{{'file-'+ element?.id +'-upload-new-version'}}\" mat-menu-item>\n <mat-icon class=\"mat-24\">file_upload</mat-icon>\n <span>{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row class=\"adf-file-properties-table-header-row\" *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n</div>\n", styles: [".adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table{width:100%;border:1px solid var(--adf-theme-foreground-text-color-007);box-shadow:none}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file{cursor:pointer}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file:hover{text-decoration:underline}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-datatable-selected{padding:6px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table tr.adf-file-properties-table-header-row{height:32px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table th{font-weight:700;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:first-of-type,.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:last-of-type{width:18%}\n"] }]
|
|
111
|
-
}], propDecorators: { uploadedFiles: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], hasFile: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], selectedNode: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], field: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], displayedColumns: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], mimeTypeIcon: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], rowClick: [{
|
|
124
|
-
type: Output
|
|
125
|
-
}], attachFileClick: [{
|
|
126
|
-
type: Output
|
|
127
|
-
}], downloadFile: [{
|
|
128
|
-
type: Output
|
|
129
|
-
}], uploadNewFileVersion: [{
|
|
130
|
-
type: Output
|
|
131
|
-
}], contentModelFileHandler: [{
|
|
132
|
-
type: Output
|
|
133
|
-
}], removeAttachFile: [{
|
|
134
|
-
type: Output
|
|
135
|
-
}] } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvZmlsZS1wcm9wZXJ0aWVzLXRhYmxlL2ZpbGUtcHJvcGVydGllcy10YWJsZS1jbG91ZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2F0dGFjaC1maWxlL2ZpbGUtcHJvcGVydGllcy10YWJsZS9maWxlLXByb3BlcnRpZXMtdGFibGUtY2xvdWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQTJCLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FB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c0JBRE4sS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixRQUFRO3NCQURQLE1BQU07Z0JBSVAsZUFBZTtzQkFEZCxNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSVAsdUJBQXVCO3NCQUR0QixNQUFNO2dCQUlQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsaXplZERhdGVQaXBlLCBUaHVtYm5haWxTZXJ2aWNlLCBVcGxvYWREaXJlY3RpdmUsIERpc3BsYXlhYmxlQ01Qcm9wZXJ0aWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdExpbmVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcblxuY29uc3QgUkVUUklFVkVfTUVUQURBVEFfT1BUSU9OID0gJ3JldHJpZXZlTWV0YWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1maWxlLXByb3BlcnRpZXMtdGFibGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIFVwbG9hZERpcmVjdGl2ZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICAgICAgTWF0TGluZU1vZHVsZSxcbiAgICAgICAgTWF0TGlzdE1vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbTG9jYWxpemVkRGF0ZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXByb3BlcnRpZXMtdGFibGUtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtcHJvcGVydGllcy10YWJsZS1jbG91ZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQcm9wZXJ0aWVzVGFibGVDbG91ZENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBsb2NhbGl6ZWREYXRlUGlwZSA9IGluamVjdChMb2NhbGl6ZWREYXRlUGlwZSk7XG4gICAgcHJpdmF0ZSB0aHVtYm5haWxTZXJ2aWNlID0gaW5qZWN0KFRodW1ibmFpbFNlcnZpY2UpO1xuXG4gICAgQElucHV0KClcbiAgICB1cGxvYWRlZEZpbGVzO1xuXG4gICAgQElucHV0KClcbiAgICBoYXNGaWxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZE5vZGU6IE5vZGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5ZWRDb2x1bW5zO1xuXG4gICAgQElucHV0KClcbiAgICBtaW1lVHlwZUljb247XG5cbiAgICBAT3V0cHV0KClcbiAgICByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGF0dGFjaEZpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZG93bmxvYWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkTmV3RmlsZVZlcnNpb24gPSBuZXcgRXZlbnRFbWl0dGVyPE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGE+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjb250ZW50TW9kZWxGaWxlSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlbW92ZUF0dGFjaEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGU+KCk7XG5cbiAgICBvblJvd0NsaWNrZWQoZmlsZT86IE5vZGUpIHtcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KGZpbGUpO1xuICAgIH1cblxuICAgIG9uQXR0YWNoRmlsZUNsaWNrZWQobm9kZVNlbGVjdG9yOiBhbnkpIHtcbiAgICAgICAgdGhpcy5hdHRhY2hGaWxlQ2xpY2suZW1pdChub2RlU2VsZWN0b3IpO1xuICAgIH1cblxuICAgIGRvd25sb2FkQ29udGVudChmaWxlOiBOb2RlKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlLmVtaXQoZmlsZSk7XG4gICAgfVxuXG4gICAgb25VcGxvYWROZXdGaWxlVmVyc2lvbihjdXN0b21FdmVudDogYW55LCBub2RlOiBOb2RlKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGE6IE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgICBmaWxlOiBjdXN0b21FdmVudC5kZXRhaWwuZmlsZXNbMF0uZmlsZSxcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBzaG93Q29tbWVudHM6IHRydWUsXG4gICAgICAgICAgICBhbGxvd0Rvd25sb2FkOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBsb2FkTmV3RmlsZVZlcnNpb24uZW1pdChuZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dEYXRhKTtcbiAgICB9XG5cbiAgICBjb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIoZmlsZT86IE5vZGUpIHtcbiAgICAgICAgdGhpcy5jb250ZW50TW9kZWxGaWxlSGFuZGxlci5lbWl0KGZpbGUpO1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlOiBOb2RlKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0YWNoRmlsZS5lbWl0KGZpbGUpO1xuICAgIH1cblxuICAgIGdldEljb24obWltZVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbFNlcnZpY2UuZ2V0TWltZVR5cGVJY29uKG1pbWVUeXBlKTtcbiAgICB9XG5cbiAgICBnZXRDb2x1bW5WYWx1ZShmaWxlLCBwcm9wOiBEaXNwbGF5YWJsZUNNUHJvcGVydGllcyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZmlsZS5wcm9wZXJ0aWVzW3Byb3AucHJlZml4ZWROYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRQcm9wZXJ0eSA9IHRoaXMuZmllbGQucGFyYW1zLmRpc3BsYXlhYmxlQ01Qcm9wZXJ0aWVzPy5maW5kKChwcm9wZXJ0eSkgPT4gcHJvcGVydHkubmFtZSA9PT0gcHJvcC5uYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZFByb3BlcnR5LmRlZmF1bHRWYWx1ZSA/IHRoaXMuY2hlY2tEYXRlVHlwZUFuZFRyYW5zZm9ybShwcm9wLmRhdGFUeXBlLCBmaWVsZFByb3BlcnR5LmRlZmF1bHRWYWx1ZSkgOiAnLS0nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWxlLnByb3BlcnRpZXNbcHJvcC5wcmVmaXhlZE5hbWVdID8gdGhpcy5jaGVja0RhdGVUeXBlQW5kVHJhbnNmb3JtKHByb3AuZGF0YVR5cGUsIGZpbGUucHJvcGVydGllc1twcm9wLnByZWZpeGVkTmFtZV0pIDogJy0tJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrRGF0ZVR5cGVBbmRUcmFuc2Zvcm0oZGF0YVR5cGU6IHN0cmluZywgdmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChkYXRhVHlwZSA9PT0gJ2Q6ZGF0ZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplZERhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT09ICdkOmRhdGV0aW1lJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVkRGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnbWVkaXVtJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGRpc3BsYXlNZW51T3B0aW9uKG9wdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkPy5wYXJhbXM/Lm1lbnVPcHRpb25zID8gdGhpcy5maWVsZC5wYXJhbXMubWVudU9wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbiAhPT0gUkVUUklFVkVfTUVUQURBVEFfT1BUSU9OO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNvbnRhaW5lclwiPlxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwidXBsb2FkZWRGaWxlc1wiIGNsYXNzPVwiYWRmLXByb3BlcnRpZXMtdGFibGUgYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZSBtYXQtZWxldmF0aW9uLXowXCIgKm5nSWY9XCJoYXNGaWxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaWNvblwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUxpbmUgY2xhc3M9XCJhZGYtZGF0YXRhYmxlLXNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZE5vZGUgJiYgZWxlbWVudC5pZCA9PT0gc2VsZWN0ZWROb2RlLmlkXCIgKGNsaWNrKT1cIm9uUm93Q2xpY2tlZChlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICBjaGVja19jaXJjbGVcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxpbWcgbWF0TGlzdEl0ZW1MaW5lIGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXRfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RlZE5vZGUgfHwgZWxlbWVudC5pZCAhPT0gc2VsZWN0ZWROb2RlLmlkXCIgW2lkXT1cIidmaWxlLScrZWxlbWVudD8uaWQrJy1pY29uJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25Sb3dDbGlja2VkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbGVtZW50LmNvbnRlbnQgPyBnZXRJY29uKGVsZW1lbnQuY29udGVudC5taW1lVHlwZSkgOiBnZXRJY29uKGVsZW1lbnRbJ21pbWVUeXBlJ10pXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJtaW1lVHlwZUljb25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgLz5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZmlsZU5hbWVcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgJ0ZPUk0uRklFTEQuRklMRV9OQU1FJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNlbGxcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0TGluZSBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZH19XCJcbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvbkF0dGFjaEZpbGVDbGlja2VkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgPnt7IGVsZW1lbnQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgJ0ZPUk0uRklFTEQuVElUTEUnIHwgdHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cImFkZi1maWxlLXByb3BlcnRpZXMtdGFibGUtY2VsbFwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50LnRpdGxlIH19PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcCBvZiBmaWVsZD8ucGFyYW1zPy5kaXNwbGF5YWJsZUNNUHJvcGVydGllc1wiIFttYXRDb2x1bW5EZWZdPVwicHJvcC5uYW1lXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7cHJvcC50aXRsZSA/IHByb3AudGl0bGUgOiBwcm9wLm5hbWUgfCB0aXRsZWNhc2UgfX08L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsIGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1jZWxsXCIgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0TGluZSBpZD1cInt7J2ZpbGVQcm9wZXJ0eS0nK3Jvdz8uaWQrJy0nK3Byb3A/Lm5hbWV9fVwiIHJvbGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvblJvd0NsaWNrZWQocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2tlZChyb3cpXCI+e3sgZ2V0Q29sdW1uVmFsdWUocm93LCBwcm9wKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNlbGxcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZCsnLW9wdGlvbi1tZW51J319XCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJmaWxlQWN0aW9uTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEhZWxlbWVudC5jb250ZW50Py5taW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfUFJPQ0VTU19MSVNULkRFVEFJTFMuQlVUVE9OLkZJTEVfT1BUSU9OX01FTlUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjZmlsZUFjdGlvbk1lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJkaXNwbGF5TWVudU9wdGlvbignc2hvdycpICYmICEhZWxlbWVudC5jb250ZW50Py5taW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eydmaWxlLScrZWxlbWVudD8uaWQrJy1zaG93LWZpbGUnfX1cIiBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXR0YWNoRmlsZUNsaWNrZWQoZWxlbWVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj52aXNpYmlsaXR5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdGT1JNLkZJRUxELlZJRVdfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZGlzcGxheU1lbnVPcHRpb24oJ2Rvd25sb2FkJykgJiYgISFlbGVtZW50LmNvbnRlbnQ/Lm1pbWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZCsnLWRvd25sb2FkLWZpbGUnfX1cIiBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkQ29udGVudChlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0ZPUk0uRklFTEQuRE9XTkxPQURfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZGlzcGxheU1lbnVPcHRpb24oJ3JldHJpZXZlTWV0YWRhdGEnKSAmJiAhIWVsZW1lbnQuY29udGVudD8ubWltZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3snZmlsZS0nK2VsZW1lbnQ/LmlkKyctcmV0cmlldmUtZmlsZS1tZXRhZGF0YSd9fVwiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGVudE1vZGVsRm9ybUZpbGVIYW5kbGVyKGVsZW1lbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjRcIj5sb3dfcHJpb3JpdHk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FERl9DTE9VRF9GT1JNX0NPTVBPTkVOVC5SRVRSSUVWRV9NRVRBREFUQScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWZpZWxkLnJlYWRPbmx5ICYmIGRpc3BsYXlNZW51T3B0aW9uKCdyZW1vdmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInZmlsZS0nK2VsZW1lbnQ/LmlkKyctcmVtb3ZlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlQXR0YWNoRmlsZShlbGVtZW50KTtcIiAoa2V5dXAuZW50ZXIpPVwib25SZW1vdmVBdHRhY2hGaWxlKGVsZW1lbnQpO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LTI0XCI+aGlnaGxpZ2h0X29mZjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnRk9STS5GSUVMRC5SRU1PVkVfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheU1lbnVPcHRpb24oJ25ld1ZlcnNpb24nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbYWRmLXVwbG9hZF09XCJ0cnVlXCIgW21vZGVdPVwiWydjbGljayddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVwbG9hZC1maWxlcyk9XCJvblVwbG9hZE5ld0ZpbGVWZXJzaW9uKCRldmVudCwgZWxlbWVudCk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eydmaWxlLScrIGVsZW1lbnQ/LmlkICsnLXVwbG9hZC1uZXctdmVyc2lvbid9fVwiIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LTI0XCI+ZmlsZV91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBREZfVkVSU0lPTl9MSVNULkFDVElPTlMuVVBMT0FELlRJVExFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyBjbGFzcz1cImFkZi1maWxlLXByb3BlcnRpZXMtdGFibGUtaGVhZGVyLXJvd1wiICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,107 +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 { ObjectDataTableAdapter, ObjectDataColumn, ObjectDataRow } from '@alfresco/adf-core';
|
|
18
|
-
import { DataTablePathParserHelper } from './helpers/data-table-path-parser.helper';
|
|
19
|
-
export class WidgetDataTableAdapter {
|
|
20
|
-
get selectedRow() {
|
|
21
|
-
return this.adapter.selectedRow;
|
|
22
|
-
}
|
|
23
|
-
get rowsChanged() {
|
|
24
|
-
return this.adapter.rowsChanged;
|
|
25
|
-
}
|
|
26
|
-
constructor(data, schema) {
|
|
27
|
-
this.columnKeys = [];
|
|
28
|
-
this.helper = new DataTablePathParserHelper();
|
|
29
|
-
this.adapter = new ObjectDataTableAdapter(data, schema);
|
|
30
|
-
this.createColumns(schema);
|
|
31
|
-
this.createRows(data);
|
|
32
|
-
}
|
|
33
|
-
createColumns(schema) {
|
|
34
|
-
if (schema?.length) {
|
|
35
|
-
this.adapter.setColumns(this.buildColumnsFromSchema(schema));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
buildColumnsFromSchema(schema) {
|
|
39
|
-
return schema.map((dataColumn) => {
|
|
40
|
-
this.columnKeys.push(dataColumn.key);
|
|
41
|
-
return new ObjectDataColumn(dataColumn);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
createRows(data) {
|
|
45
|
-
if (data?.length) {
|
|
46
|
-
this.adapter.setRows(data.map((item) => this.buildDataRowFromItem(item)));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
buildDataRowFromItem(item) {
|
|
50
|
-
const rowData = {};
|
|
51
|
-
this.columnKeys.forEach((path, i) => {
|
|
52
|
-
const rowValue = this.extractPropertyValue(this.helper.splitPathIntoProperties(path), item);
|
|
53
|
-
if (rowValue) {
|
|
54
|
-
rowData[this.columnKeys[i]] = rowValue;
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
return new ObjectDataRow(rowData);
|
|
58
|
-
}
|
|
59
|
-
extractPropertyValue(properties, item) {
|
|
60
|
-
return properties.reduce((acc, property) => {
|
|
61
|
-
if (!acc) {
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
const propertyIndexReferences = this.helper.getIndexReferencesFromProperty(property);
|
|
65
|
-
const isPropertyWithSingleIndexReference = propertyIndexReferences.length === 1;
|
|
66
|
-
const purePropertyName = this.helper.extractPurePropertyName(property);
|
|
67
|
-
return isPropertyWithSingleIndexReference ? acc[purePropertyName]?.[propertyIndexReferences[0]] : acc[purePropertyName];
|
|
68
|
-
}, item);
|
|
69
|
-
}
|
|
70
|
-
getColumns() {
|
|
71
|
-
return this.adapter.getColumns();
|
|
72
|
-
}
|
|
73
|
-
getRows() {
|
|
74
|
-
if (this.isDataSourceValid()) {
|
|
75
|
-
return this.adapter.getRows();
|
|
76
|
-
}
|
|
77
|
-
return [];
|
|
78
|
-
}
|
|
79
|
-
setRows(rows) {
|
|
80
|
-
this.adapter.setRows(rows);
|
|
81
|
-
}
|
|
82
|
-
setColumns(columns) {
|
|
83
|
-
this.adapter.setColumns(columns);
|
|
84
|
-
}
|
|
85
|
-
getValue(row, col, resolverFn) {
|
|
86
|
-
return this.adapter.getValue(row, col, resolverFn);
|
|
87
|
-
}
|
|
88
|
-
getColumnType(row, col) {
|
|
89
|
-
return this.adapter.getColumnType(row, col);
|
|
90
|
-
}
|
|
91
|
-
getSorting() {
|
|
92
|
-
return this.adapter.getSorting();
|
|
93
|
-
}
|
|
94
|
-
setSorting(sorting) {
|
|
95
|
-
this.adapter.setSorting(sorting);
|
|
96
|
-
}
|
|
97
|
-
sort(key, direction) {
|
|
98
|
-
this.adapter.sort(key, direction);
|
|
99
|
-
}
|
|
100
|
-
isDataSourceValid() {
|
|
101
|
-
return this.allColumnsHaveKeys();
|
|
102
|
-
}
|
|
103
|
-
allColumnsHaveKeys() {
|
|
104
|
-
return this.adapter.getColumns().every((column) => !!column.key);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1hZGFwdGVyLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWFkYXB0ZXIud2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsZ0JBQWdCLEVBQUUsYUFBYSxFQUFpQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pKLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR3BGLE1BQU0sT0FBTyxzQkFBc0I7SUFLL0IsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxJQUFXLEVBQUUsTUFBb0I7UUFYckMsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBVzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBb0I7UUFDdEMsSUFBSSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxD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T0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxhQUFhLENBQUMsR0FBWSxFQUFFLEdBQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFvQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVksRUFBRSxTQUFrQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgT2JqZWN0RGF0YVRhYmxlQWRhcHRlciwgRGF0YUNvbHVtbiwgRGF0YVJvdywgT2JqZWN0RGF0YUNvbHVtbiwgT2JqZWN0RGF0YVJvdywgRGF0YVRhYmxlQWRhcHRlciwgRGF0YVNvcnRpbmcgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlciB9IGZyb20gJy4vaGVscGVycy9kYXRhLXRhYmxlLXBhdGgtcGFyc2VyLmhlbHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBXaWRnZXREYXRhVGFibGVBZGFwdGVyIGltcGxlbWVudHMgRGF0YVRhYmxlQWRhcHRlciB7XG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBPYmplY3REYXRhVGFibGVBZGFwdGVyO1xuICAgIHByaXZhdGUgY29sdW1uS2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIGhlbHBlciA9IG5ldyBEYXRhVGFibGVQYXRoUGFyc2VySGVscGVyKCk7XG5cbiAgICBnZXQgc2VsZWN0ZWRSb3coKTogRGF0YVJvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuc2VsZWN0ZWRSb3c7XG4gICAgfVxuXG4gICAgZ2V0IHJvd3NDaGFuZ2VkKCk6IFN1YmplY3Q8QXJyYXk8RGF0YVJvdz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yb3dzQ2hhbmdlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBhbnlbXSwgc2NoZW1hOiBEYXRhQ29sdW1uW10pIHtcbiAgICAgICAgdGhpcy5hZGFwdGVyID0gbmV3IE9iamVjdERhdGFUYWJsZUFkYXB0ZXIoZGF0YSwgc2NoZW1hKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoc2NoZW1hKTtcbiAgICAgICAgdGhpcy5jcmVhdGVSb3dzKGRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1ucyhzY2hlbWE6IERhdGFDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBpZiAoc2NoZW1hPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlci5zZXRDb2x1bW5zKHRoaXMuYnVpbGRDb2x1bW5zRnJvbVNjaGVtYShzY2hlbWEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRDb2x1bW5zRnJvbVNjaGVtYShzY2hlbWE6IERhdGFDb2x1bW5bXSk6IE9iamVjdERhdGFDb2x1bW5bXSB7XG4gICAgICAgIHJldHVybiBzY2hlbWEubWFwKChkYXRhQ29sdW1uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbktleXMucHVzaChkYXRhQ29sdW1uLmtleSk7XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0RGF0YUNvbHVtbihkYXRhQ29sdW1uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSb3dzKGRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGlmIChkYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlci5zZXRSb3dzKGRhdGEubWFwKChpdGVtKSA9PiB0aGlzLmJ1aWxkRGF0YVJvd0Zyb21JdGVtKGl0ZW0pKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRGF0YVJvd0Zyb21JdGVtKGl0ZW06IGFueSk6IE9iamVjdERhdGFSb3cge1xuICAgICAgICBjb25zdCByb3dEYXRhID0ge307XG4gICAgICAgIHRoaXMuY29sdW1uS2V5cy5mb3JFYWNoKChwYXRoLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb3dWYWx1ZSA9IHRoaXMuZXh0cmFjdFByb3BlcnR5VmFsdWUodGhpcy5oZWxwZXIuc3BsaXRQYXRoSW50b1Byb3BlcnRpZXMocGF0aCksIGl0ZW0pO1xuXG4gICAgICAgICAgICBpZiAocm93VmFsdWUpIHtcbiAgICAgICAgICAgICAgICByb3dEYXRhW3RoaXMuY29sdW1uS2V5c1tpXV0gPSByb3dWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYmplY3REYXRhUm93KHJvd0RhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdFByb3BlcnR5VmFsdWUocHJvcGVydGllczogc3RyaW5nW10sIGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZSgoYWNjLCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFhY2MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUluZGV4UmVmZXJlbmNlcyA9IHRoaXMuaGVscGVyLmdldEluZGV4UmVmZXJlbmNlc0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICAgICAgICBjb25zdCBpc1Byb3BlcnR5V2l0aFNpbmdsZUluZGV4UmVmZXJlbmNlID0gcHJvcGVydHlJbmRleFJlZmVyZW5jZXMubGVuZ3RoID09PSAxO1xuXG4gICAgICAgICAgICBjb25zdCBwdXJlUHJvcGVydHlOYW1lID0gdGhpcy5oZWxwZXIuZXh0cmFjdFB1cmVQcm9wZXJ0eU5hbWUocHJvcGVydHkpO1xuXG4gICAgICAgICAgICByZXR1cm4gaXNQcm9wZXJ0eVdpdGhTaW5nbGVJbmRleFJlZmVyZW5jZSA/IGFjY1twdXJlUHJvcGVydHlOYW1lXT8uW3Byb3BlcnR5SW5kZXhSZWZlcmVuY2VzWzBdXSA6IGFjY1twdXJlUHJvcGVydHlOYW1lXTtcbiAgICAgICAgfSwgaXRlbSk7XG4gICAgfVxuXG4gICAgZ2V0Q29sdW1ucygpOiBBcnJheTxEYXRhQ29sdW1uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0Q29sdW1ucygpO1xuICAgIH1cblxuICAgIGdldFJvd3MoKTogRGF0YVJvd1tdIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEYXRhU291cmNlVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXRSb3dzKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgc2V0Um93cyhyb3dzOiBBcnJheTxEYXRhUm93Pik6IHZvaWQge1xuICAgICAgICB0aGlzLmFkYXB0ZXIuc2V0Um93cyhyb3dzKTtcbiAgICB9XG5cbiAgICBzZXRDb2x1bW5zKGNvbHVtbnM6IEFycmF5PERhdGFDb2x1bW4+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRhcHRlci5zZXRDb2x1bW5zKGNvbHVtbnMpO1xuICAgIH1cblxuICAgIGdldFZhbHVlKHJvdzogRGF0YVJvdywgY29sOiBEYXRhQ29sdW1uLCByZXNvbHZlckZuPzogKF9yb3c6IERhdGFSb3csIF9jb2w6IERhdGFDb2x1bW4pID0+IGFueSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZ2V0VmFsdWUocm93LCBjb2wsIHJlc29sdmVyRm4pO1xuICAgIH1cblxuICAgIGdldENvbHVtblR5cGUocm93OiBEYXRhUm93LCBjb2w6IERhdGFDb2x1bW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmdldENvbHVtblR5cGUocm93LCBjb2wpO1xuICAgIH1cblxuICAgIGdldFNvcnRpbmcoKTogRGF0YVNvcnRpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmdldFNvcnRpbmcoKTtcbiAgICB9XG5cbiAgICBzZXRTb3J0aW5nKHNvcnRpbmc6IERhdGFTb3J0aW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRhcHRlci5zZXRTb3J0aW5nKHNvcnRpbmcpO1xuICAgIH1cblxuICAgIHNvcnQoa2V5Pzogc3RyaW5nLCBkaXJlY3Rpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGFwdGVyLnNvcnQoa2V5LCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIGlzRGF0YVNvdXJjZVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxDb2x1bW5zSGF2ZUtleXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFsbENvbHVtbnNIYXZlS2V5cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXRDb2x1bW5zKCkuZXZlcnkoKGNvbHVtbikgPT4gISFjb2x1bW4ua2V5KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,120 +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
|
-
/* eslint-disable @angular-eslint/component-selector */
|
|
18
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
19
|
-
import { WidgetComponent, FormService, FormBaseModule, DataTableComponent, NoContentTemplateDirective, EmptyContentComponent } from '@alfresco/adf-core';
|
|
20
|
-
import { NgIf } from '@angular/common';
|
|
21
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
22
|
-
import { FormCloudService } from '../../../services/form-cloud.service';
|
|
23
|
-
import { WidgetDataTableAdapter } from './data-table-adapter.widget';
|
|
24
|
-
import { DataTablePathParserHelper } from './helpers/data-table-path-parser.helper';
|
|
25
|
-
import * as i0 from "@angular/core";
|
|
26
|
-
import * as i1 from "@alfresco/adf-core";
|
|
27
|
-
import * as i2 from "../../../services/form-cloud.service";
|
|
28
|
-
export class DataTableWidgetComponent extends WidgetComponent {
|
|
29
|
-
constructor(formService, formCloudService) {
|
|
30
|
-
super(formService);
|
|
31
|
-
this.formService = formService;
|
|
32
|
-
this.formCloudService = formCloudService;
|
|
33
|
-
this.dataTableLoadFailed = false;
|
|
34
|
-
this.previewState = false;
|
|
35
|
-
this.defaultResponseProperty = 'data';
|
|
36
|
-
this.pathParserHelper = new DataTablePathParserHelper();
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
this.init();
|
|
40
|
-
this.formService.onFormVariableChanged.subscribe(({ field }) => {
|
|
41
|
-
if (field.id === this.field.id) {
|
|
42
|
-
this.init();
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
init() {
|
|
47
|
-
this.dataTableLoadFailed = false;
|
|
48
|
-
this.setPreviewState();
|
|
49
|
-
this.getTableData();
|
|
50
|
-
this.initDataTable();
|
|
51
|
-
}
|
|
52
|
-
getTableData() {
|
|
53
|
-
this.variableName = this.field?.variableConfig?.variableName;
|
|
54
|
-
this.columnsSchema = this.field?.schemaDefinition;
|
|
55
|
-
this.getRowsData();
|
|
56
|
-
}
|
|
57
|
-
initDataTable() {
|
|
58
|
-
this.dataSource = new WidgetDataTableAdapter(this.rowsData, this.columnsSchema);
|
|
59
|
-
if (!this.dataSource.isDataSourceValid()) {
|
|
60
|
-
this.handleError();
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.field.updateForm();
|
|
64
|
-
}
|
|
65
|
-
getRowsData() {
|
|
66
|
-
const optionsPath = this.field?.variableConfig?.optionsPath ?? this.defaultResponseProperty;
|
|
67
|
-
const fieldValue = this.field?.value;
|
|
68
|
-
const rowsData = fieldValue || this.getDataFromVariable();
|
|
69
|
-
if (!rowsData) {
|
|
70
|
-
this.handleError();
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
this.rowsData = this.extractRowsData(rowsData, optionsPath);
|
|
74
|
-
if (!this.rowsData) {
|
|
75
|
-
this.handleError();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
extractRowsData(rowsData, optionsPath) {
|
|
79
|
-
if (Array.isArray(rowsData)) {
|
|
80
|
-
return rowsData;
|
|
81
|
-
}
|
|
82
|
-
return this.pathParserHelper.retrieveDataFromPath(rowsData, optionsPath);
|
|
83
|
-
}
|
|
84
|
-
getDataFromVariable() {
|
|
85
|
-
const processVariables = this.field?.form?.processVariables;
|
|
86
|
-
const formVariables = this.field?.form?.variables;
|
|
87
|
-
const processVariableData = this.getVariableValueByName(processVariables, this.variableName);
|
|
88
|
-
const formVariableData = this.getVariableValueByName(formVariables, this.variableName);
|
|
89
|
-
return processVariableData ?? formVariableData;
|
|
90
|
-
}
|
|
91
|
-
getVariableValueByName(variables, variableName) {
|
|
92
|
-
return variables?.find((variable) => variable?.name === `variables.${variableName}` || variable?.name === variableName)
|
|
93
|
-
?.value;
|
|
94
|
-
}
|
|
95
|
-
setPreviewState() {
|
|
96
|
-
this.previewState = this.formCloudService.getPreviewState();
|
|
97
|
-
}
|
|
98
|
-
handleError() {
|
|
99
|
-
if (!this.previewState) {
|
|
100
|
-
this.dataTableLoadFailed = true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableWidgetComponent, deps: [{ token: i1.FormService }, { token: i2.FormCloudService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataTableWidgetComponent, isStandalone: true, selector: "data-table", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\">\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n icon=\"border_all\"\n [title]=\"'FORM.FIELD.DATA_TABLE_EMPTY_CONTENT' | translate\" />\n </ng-template>\n </adf-no-content-template>\n </adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n [required]=\"'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate\" />\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\" />\n <div class=\"adf-preview-placeholder\"></div>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}.adf-preview-placeholder{background-color:var(--adf-theme-mat-grey-color-50);height:100%;width:100%;min-height:100px;margin-bottom:10px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormBaseModule }, { kind: "component", type: i1.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "showProvidedActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover", "enableDragRows"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged", "dragDropped"] }, { kind: "directive", type: NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
105
|
-
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataTableWidgetComponent, decorators: [{
|
|
107
|
-
type: Component,
|
|
108
|
-
args: [{ standalone: true, imports: [NgIf, TranslatePipe, FormBaseModule, DataTableComponent, NoContentTemplateDirective, EmptyContentComponent], selector: 'data-table', host: {
|
|
109
|
-
'(click)': 'event($event)',
|
|
110
|
-
'(blur)': 'event($event)',
|
|
111
|
-
'(change)': 'event($event)',
|
|
112
|
-
'(focus)': 'event($event)',
|
|
113
|
-
'(focusin)': 'event($event)',
|
|
114
|
-
'(focusout)': 'event($event)',
|
|
115
|
-
'(input)': 'event($event)',
|
|
116
|
-
'(invalid)': 'event($event)',
|
|
117
|
-
'(select)': 'event($event)'
|
|
118
|
-
}, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\">\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n icon=\"border_all\"\n [title]=\"'FORM.FIELD.DATA_TABLE_EMPTY_CONTENT' | translate\" />\n </ng-template>\n </adf-no-content-template>\n </adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n [required]=\"'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate\" />\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\" />\n <div class=\"adf-preview-placeholder\"></div>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}.adf-preview-placeholder{background-color:var(--adf-theme-mat-grey-color-50);height:100%;width:100%;min-height:100px;margin-bottom:10px}\n"] }]
|
|
119
|
-
}], ctorParameters: () => [{ type: i1.FormService }, { type: i2.FormCloudService }] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQ0gsZUFBZSxFQUNmLFdBQVcsRUFDWCxjQUFjLEVBR2Qsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBcUJwRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQVd6RCxZQUFtQixXQUF3QixFQUFVLGdCQUFrQztRQUNuRixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFESixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FB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QUFFLGVBQWU7d0JBQzVCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBXaWRnZXRDb21wb25lbnQsXG4gICAgRm9ybVNlcnZpY2UsXG4gICAgRm9ybUJhc2VNb2R1bGUsXG4gICAgRGF0YVJvdyxcbiAgICBEYXRhQ29sdW1uLFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBFbXB0eUNvbnRlbnRDb21wb25lbnRcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrVmFyaWFibGVDbG91ZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLXZhcmlhYmxlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFdpZGdldERhdGFUYWJsZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGEtdGFibGUtYWRhcHRlci53aWRnZXQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlciB9IGZyb20gJy4vaGVscGVycy9kYXRhLXRhYmxlLXBhdGgtcGFyc2VyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRyYW5zbGF0ZVBpcGUsIEZvcm1CYXNlTW9kdWxlLCBEYXRhVGFibGVDb21wb25lbnQsIE5vQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLCBFbXB0eUNvbnRlbnRDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAnZGF0YS10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRhdGFTb3VyY2U6IFdpZGdldERhdGFUYWJsZUFkYXB0ZXI7XG4gICAgZGF0YVRhYmxlTG9hZEZhaWxlZCA9IGZhbHNlO1xuICAgIHByZXZpZXdTdGF0ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByb3dzRGF0YTogRGF0YVJvd1tdO1xuICAgIHByaXZhdGUgY29sdW1uc1NjaGVtYTogRGF0YUNvbHVtbltdO1xuICAgIHByaXZhdGUgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWZhdWx0UmVzcG9uc2VQcm9wZXJ0eSA9ICdkYXRhJztcbiAgICBwcml2YXRlIHBhdGhQYXJzZXJIZWxwZXIgPSBuZXcgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlcigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSwgcHJpdmF0ZSBmb3JtQ2xvdWRTZXJ2aWNlOiBGb3JtQ2xvdWRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGZvcm1TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG5cbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5vbkZvcm1WYXJpYWJsZUNoYW5nZWQuc3Vic2NyaWJlKCh7IGZpZWxkIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5pZCA9PT0gdGhpcy5maWVsZC5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YVRhYmxlTG9hZEZhaWxlZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2V0UHJldmlld1N0YXRlKCk7XG4gICAgICAgIHRoaXMuZ2V0VGFibGVEYXRhKCk7XG4gICAgICAgIHRoaXMuaW5pdERhdGFUYWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFibGVEYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhcmlhYmxlTmFtZSA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy52YXJpYWJsZU5hbWU7XG4gICAgICAgIHRoaXMuY29sdW1uc1NjaGVtYSA9IHRoaXMuZmllbGQ/LnNjaGVtYURlZmluaXRpb247XG5cbiAgICAgICAgdGhpcy5nZXRSb3dzRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdERhdGFUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IFdpZGdldERhdGFUYWJsZUFkYXB0ZXIodGhpcy5yb3dzRGF0YSwgdGhpcy5jb2x1bW5zU2NoZW1hKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZS5pc0RhdGFTb3VyY2VWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvd3NEYXRhKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcHRpb25zUGF0aCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zUGF0aCA/PyB0aGlzLmRlZmF1bHRSZXNwb25zZVByb3BlcnR5O1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5maWVsZD8udmFsdWU7XG5cbiAgICAgICAgY29uc3Qgcm93c0RhdGEgPSBmaWVsZFZhbHVlIHx8IHRoaXMuZ2V0RGF0YUZyb21WYXJpYWJsZSgpO1xuXG4gICAgICAgIGlmICghcm93c0RhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm93c0RhdGEgPSB0aGlzLmV4dHJhY3RSb3dzRGF0YShyb3dzRGF0YSwgb3B0aW9uc1BhdGgpO1xuXG4gICAgICAgIGlmICghdGhpcy5yb3dzRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0Um93c0RhdGEocm93c0RhdGE6IGFueSwgb3B0aW9uc1BhdGg6IHN0cmluZyk6IERhdGFSb3dbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3NEYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJvd3NEYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aFBhcnNlckhlbHBlci5yZXRyaWV2ZURhdGFGcm9tUGF0aChyb3dzRGF0YSwgb3B0aW9uc1BhdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YUZyb21WYXJpYWJsZSgpOiBhbnkge1xuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVzID0gdGhpcy5maWVsZD8uZm9ybT8ucHJvY2Vzc1ZhcmlhYmxlcztcbiAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnZhcmlhYmxlcztcblxuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVEYXRhID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHByb2Nlc3NWYXJpYWJsZXMsIHRoaXMudmFyaWFibGVOYW1lKTtcbiAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlRGF0YSA9IHRoaXMuZ2V0VmFyaWFibGVWYWx1ZUJ5TmFtZShmb3JtVmFyaWFibGVzLCB0aGlzLnZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHByb2Nlc3NWYXJpYWJsZURhdGEgPz8gZm9ybVZhcmlhYmxlRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhcmlhYmxlVmFsdWVCeU5hbWUodmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZXM/LmZpbmQoKHZhcmlhYmxlOiBUYXNrVmFyaWFibGVDbG91ZCkgPT4gdmFyaWFibGU/Lm5hbWUgPT09IGB2YXJpYWJsZXMuJHt2YXJpYWJsZU5hbWV9YCB8fCB2YXJpYWJsZT8ubmFtZSA9PT0gdmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgPy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFByZXZpZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3U3RhdGUgPSB0aGlzLmZvcm1DbG91ZFNlcnZpY2UuZ2V0UHJldmlld1N0YXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVMb2FkRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1kYXRhLXRhYmxlLXdpZGdldC1sYWJlbFwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWxhYmVsXCJcbiAgICAgICAgICAgIFtjbGFzcy5hZGYtbGVmdC1sYWJlbF09XCJmaWVsZC5sZWZ0TGFiZWxzXCJcbiAgICAgICAgICAgIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAgICAgIHt7ZmllbGQubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcmV2aWV3U3RhdGU7IGVsc2UgcHJldmlld1RlbXBsYXRlXCI+XG4gICAgICAgIDxhZGYtZGF0YXRhYmxlIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1kYXRhLXRhYmxlLXdpZGdldFwiIFtkYXRhXT1cImRhdGFTb3VyY2VcIj5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImJvcmRlcl9hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidGT1JNLkZJRUxELkRBVEFfVEFCTEVfRU1QVFlfQ09OVEVOVCcgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICA8L2FkZi1kYXRhdGFibGU+XG5cbiAgICAgICAgPGVycm9yLXdpZGdldCAqbmdJZj1cImRhdGFUYWJsZUxvYWRGYWlsZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtZmFpbGVkLW1lc3NhZ2VcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIidGT1JNLkZJRUxELkRBVEFfVEFCTEVfTE9BRF9GQUlMRUQnIHwgdHJhbnNsYXRlXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlld1RlbXBsYXRlPlxuICAgICAgICA8YWRmLWRhdGF0YWJsZSBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtcHJldmlld1wiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtcHJldmlldy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|