@tsi-developpement/tsi-shared-ui 1.11.2 → 1.11.4
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/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.mjs +3 -5
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +4 -6
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/package.json +1 -1
package/esm2022/lib/tsi-components/tsi-popup-text-viewer/tsi-popup-text-viewer.component.mjs
CHANGED
|
@@ -57,13 +57,11 @@ export class TsiPopupTextViewerComponent {
|
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
header: 'administration_administration_statusHistory_oldStatus',
|
|
60
|
-
field: 'oldStatus'
|
|
61
|
-
isStatusColumnValue: true
|
|
60
|
+
field: 'oldStatus'
|
|
62
61
|
},
|
|
63
62
|
{
|
|
64
63
|
header: 'administration_administration_statusHistory_status',
|
|
65
|
-
field: 'status'
|
|
66
|
-
isStatusColumnValue: true
|
|
64
|
+
field: 'status'
|
|
67
65
|
},
|
|
68
66
|
{
|
|
69
67
|
header: 'administration_administration_statusHistory_commentaire',
|
|
@@ -182,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
182
180
|
type: Component,
|
|
183
181
|
args: [{ selector: 'app-tsi-popup-text-viewer', providers: [...appProviders], template: "<div class=\"card\">\r\n\r\n <div class=\"grid mt-1\">\r\n \r\n <!-- Titre -->\r\n <div class=\"col-12 md:col-2 lg:col-2\">\r\n <div style=\"font-weight: bold; color: #007ad9;\">\r\n {{ 'tsi_popup_view_log_history_last_modification' | localize }}\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-12 md:col-4 lg:col-4\" style=\"background-color: #f0f8ff;\">\r\n <i class=\"pi pi-user\" style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_createdby' | localize }}\r\n <strong>{{ creationUser }}</strong>\r\n\r\n <i style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_createdOn' | localize }}\r\n <strong>{{ dateSaisie | date : formatDate }}</strong>\r\n\r\n </div>\r\n <div class=\"col-12 md:col-4 lg:col-4\" style=\"background-color: #f1f2f3;\">\r\n <i class=\"pi pi-pencil\" style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_modifiedBy' | localize }}\r\n <strong>{{ modifUser }}</strong>\r\n\r\n <i style=\"color: #007ad9; margin-right: 0.5rem;\"></i>\r\n {{ 'tsi_popup_view_log_history_modifiedOn' | localize }}\r\n <strong>{{ dateModif | date : formatDate }}</strong>\r\n\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<div class=\"grid mt-5 mb-5 justify-content-end\">\r\n <button \r\n type=\"button\" \r\n pButton label=\"Consulter les informations d'entit\u00E9\" \r\n icon=\"pi pi-eye\"\r\n class=\"mr-5 p-button-sm p-button-outlined\" \r\n (click)=\"openEntitieInformationModal()\"></button>\r\n</div>\r\n\r\n<p-tabView>\r\n <p-tabPanel [header]=\"'history_of_changes_title'| localize\">\r\n <tsi-view-grid \r\n [modalSize]=\"modalSize\" \r\n [formName]=\"'logfobject'\" \r\n [header]=\"titleComponent\" \r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"logEventFiltredData\" \r\n [searchOnInit]=\"false\" \r\n (buttonColumnClicked)=\"buttonColumnClicked($event)\"\r\n [columns]=\"columnsLogEvent\" \r\n [selectKeyOnly]=\"true\" \r\n [showConsultButton]=\"true\"\r\n ></tsi-view-grid>\r\n </p-tabPanel>\r\n <p-tabPanel header=\"{{'administration_administration_statusHistory_historiqueModificationsStatut' | localize}}\">\r\n <tsi-view-grid \r\n [modalSize]=\"modalSize\" \r\n [formName]=\"'logfStatusobject'\" \r\n [targetBusinessClass]=\"targetBusinessClass\"\r\n [header]=\"'administration_administration_statusHistory_historiqueModificationsStatut' | localize\" \r\n [getDataFromApi]=\"false\"\r\n [gridData]=\"statusHistoryFiltredData\" \r\n [searchOnInit]=\"false\" \r\n [columns]=\"columnsStatuHistory\" \r\n [selectKeyOnly]=\"true\" \r\n ></tsi-view-grid>\r\n </p-tabPanel>\r\n</p-tabView>\r\n", styles: [".p-card{padding:.5rem;border:1px solid #ddd;border-radius:.5rem;background-color:#f9f9f9}.p-card span{white-space:nowrap}.p-card i{color:#007ad9}\n"] }]
|
|
184
182
|
}], ctorParameters: () => [{ type: i1.TsiModalService }, { type: i0.ChangeDetectorRef }, { type: i0.EnvironmentInjector }, { type: i2.DynamicDialogConfig }, { type: i3.DialogDataService }, { type: i4.JournalisationApplicationService }, { type: i5.StatusHistoryService }, { type: i2.DynamicDialogRef }] });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktcG9wdXAtdGV4dC12aWV3ZXIvdHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktcG9wdXAtdGV4dC12aWV3ZXIvdHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUWpHLE1BQU0sT0FBTywyQkFBMkI7SUEyRXRDLFlBQ1UsZ0JBQWlDLEVBQ2pDLEdBQXNCLEVBQ3RCLFNBQThCLEVBQy9CLE1BQTJCLEVBQzNCLGlCQUFvQyxFQUNwQyxnQ0FBa0UsRUFDbEUsb0JBQTBDLEVBQzFDLEdBQXNCO1FBUHJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7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QVUsRUFBRSxFQUFFO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07Z0JBQzdCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRztnQkFDTCxJQUFJLEVBQUU7b0JBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLO29CQUMxQyxJQUFJLEVBQUUsZUFBZSxDQUFDLE9BQU87b0JBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHO2lCQUM1QjtnQkFDRCxXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSwwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFBO1FBRXZGLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDOytHQTVMVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixvREFGNUIsQ0FBQyxHQUFHLFlBQVksQ0FBQywwQkNsQjdCLDI5RkEwRUE7OzRGRHREYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsMkJBQTJCLGFBRzNCLENBQUMsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHNpTG9nRXZlbnRIaXN0b3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vdHNpLWxvZy1ldmVudC1oaXN0b3J5L3RzaS1sb2ctZXZlbnQtaGlzdG9yeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRfTW9kZXMsIERpc3BsYXlUeXBlcywgTW9kYWxTaXplRW51bSwgTW9kZXMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IEdyaWRDb2x1bW4sIElNb2RhbFNpemUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVGb3JtYXREaXNwbGF5IH0gZnJvbSAnLi4vLi4vY29uc3RzL3RzaS1jb25zdHMnO1xyXG5pbXBvcnQgeyBEaWFsb2dEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBKb3VybmFsaXNhdGlvbkFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2pvdXJuYWxpc2F0aW9uL2pvdXJuYWxpc2F0aW9uLWFwcGxpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdGF0dXNIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2pvdXJuYWxpc2F0aW9uL3N0YXR1cy1oaXN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUeXBlUmVnaXN0cnlIZWxwZXIgfSBmcm9tICcuLi8uLi90c2ktaGVscGVycy90eXBlLXJlZ2lzdHJ5LmhlbHBlcic7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBUc2lNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2RhbC90c2ktbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwcFByb3ZpZGVycyB9IGZyb20gJy4uLy4uL2NvbnN0cy9hcHAtcHJvdmlkZXJzJztcclxuaW1wb3J0IHsgb3BlbkNyZWF0ZU9yRWRpdEVudGl0eUluZm9ybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL21vZGFsLW9wZW4uZnVuY3Rpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdHNpLXBvcHVwLXRleHQtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90c2ktcG9wdXAtdGV4dC12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6Wy4uLmFwcFByb3ZpZGVyc11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRzaVBvcHVwVGV4dFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHByaXZhdGUgX2RpYWxvZ1JlZj86IER5bmFtaWNEaWFsb2dSZWY7XHJcbiAgZmlsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xyXG4gIGNvbXA6IGFueTtcclxuICBtb2RhbFNpemU6IElNb2RhbFNpemUgPSBNb2RhbFNpemVFbnVtLk1lZGl1bTtcclxuICB0aXRsZUNvbXBvbmVudDogc3RyaW5nID0gJyc7XHJcbiAgbG9nRXZlbnRGaWx0cmVkRGF0YTogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHN0YXR1c0hpc3RvcnlGaWx0cmVkRGF0YTogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGNyZWF0aW9uVXNlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIG1vZGlmVXNlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGRhdGVTYWlzaWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBkYXRlTW9kaWY6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICB0YXJnZXRCdXNpbmVzc0NsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgZm9ybWF0RGF0ZSA9IERhdGVUaW1lRm9ybWF0RGlzcGxheTtcclxuICBcclxuICBjb2x1bW5zTG9nRXZlbnQ6IEFycmF5PEdyaWRDb2x1bW4+ID0gW1xyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9qb3VybmFsQXBwbGljYXRpb25fZGF0ZUV2ZW50JyxcclxuICAgICAgZmllbGQ6ICdkYXRlRXZlbnQnLFxyXG4gICAgICB0eXBlOiBEaXNwbGF5VHlwZXMuREFURVRJTUVfRElTUExBWSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX2pvdXJuYWxBcHBsaWNhdGlvbl91c2VyTmFtZUV2ZW50JyxcclxuICAgICAgZmllbGQ6ICd1c2VyTmFtZUV2ZW50JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX2pvdXJuYWxBcHBsaWNhdGlvbl90eXBlRXZlbnQnLFxyXG4gICAgICBmaWVsZDogJ3R5cGVFdmVudCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9qb3VybmFsQXBwbGljYXRpb25fdGV4dEV2ZW50JyxcclxuICAgICAgZmllbGQ6ICd0ZXh0RXZlbnQnLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBjb2x1bW5zU3RhdHVIaXN0b3J5OiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fc3RhdHVzSGlzdG9yeV9jbGFzc2UnLFxyXG4gICAgICBmaWVsZDogJ2NsYXNzZScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X29sZFN0YXR1cycsXHJcbiAgICAgIGZpZWxkOiAnb2xkU3RhdHVzJyxcclxuICAgICAgaXNTdGF0dXNDb2x1bW5WYWx1ZTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fc3RhdHVzSGlzdG9yeV9zdGF0dXMnLFxyXG4gICAgICBmaWVsZDogJ3N0YXR1cycsXHJcbiAgICAgIGlzU3RhdHVzQ29sdW1uVmFsdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfY29tbWVudGFpcmUnLFxyXG4gICAgICBmaWVsZDogJ2NvbW1lbnRhaXJlJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfY3JlYXRpb25Vc2VyJyxcclxuICAgICAgZmllbGQ6ICdjcmVhdGlvblVzZXInLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fc3RhdHVzSGlzdG9yeV9tb2RpZlVzZXInLFxyXG4gICAgICBmaWVsZDogJ21vZGlmVXNlcicsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X2RhdGVTYWlzaWUnLFxyXG4gICAgICBmaWVsZDogJ2RhdGVTYWlzaWUnLFxyXG4gICAgICB0eXBlOiBEaXNwbGF5VHlwZXMuREFURVRJTUVfRElTUExBWSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfZGF0ZU1vZGlmJyxcclxuICAgICAgZmllbGQ6ICdkYXRlTW9kaWYnLFxyXG4gICAgICB0eXBlOiBEaXNwbGF5VHlwZXMuREFURVRJTUVfRElTUExBWSxcclxuICAgIH0sICBcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RzaU1vZGFsU2VydmljZTogVHNpTW9kYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXHJcbiAgICBwdWJsaWMgY29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnLFxyXG4gICAgcHVibGljIGRpYWxvZ0RhdGFTZXJ2aWNlOiBEaWFsb2dEYXRhU2VydmljZSxcclxuICAgIHB1YmxpYyBqb3VybmFsaXNhdGlvbkFwcGxpY2F0aW9uU2VydmljZTogSm91cm5hbGlzYXRpb25BcHBsaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc3RhdHVzSGlzdG9yeVNlcnZpY2U6IFN0YXR1c0hpc3RvcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlZj86IER5bmFtaWNEaWFsb2dSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlQ29udGVudCA9IHRoaXMuY29uZmlnPy5kYXRhIGFzIHN0cmluZztcclxuICAgIHRoaXMubW9kYWxTaXplID0gTW9kYWxTaXplRW51bS5MYXJnZTtcclxuICAgIHRoaXMudGl0bGVDb21wb25lbnQgPSAnaGlzdG9yeV9vZl9jaGFuZ2VzX3RpdGxlJztcclxuICAgIFxyXG4gICAgdGhpcy5jcmVhdGlvblVzZXIgPSB0aGlzLmNvbmZpZz8uZGF0YS5jcmVhdGlvblVzZXI7XHJcbiAgICB0aGlzLm1vZGlmVXNlciA9IHRoaXMuY29uZmlnPy5kYXRhLm1vZGlmVXNlcjtcclxuICAgIHRoaXMuZGF0ZVNhaXNpZSA9IHRoaXMuY29uZmlnPy5kYXRhLmRhdGVTYWlzaWU7XHJcbiAgICB0aGlzLmRhdGVNb2RpZiA9IHRoaXMuY29uZmlnPy5kYXRhLmRhdGVNb2RpZjtcclxuXHJcbiAgICB0aGlzLnRhcmdldEJ1c2luZXNzQ2xhc3MgPSB0aGlzLmNvbmZpZz8uZGF0YS5idXNpbmVzc0NsYXNzO1xyXG5cclxuICAgIHRoaXMuam91cm5hbGlzYXRpb25BcHBsaWNhdGlvblNlcnZpY2VcclxuICAgICAgLmdldEFsbEZpbHRyZWRCeUlkT2JqZWN0KHRoaXMuY29uZmlnPy5kYXRhLlVpZClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nRXZlbnRGaWx0cmVkRGF0YSA9IChkYXRhID8/IFtdKVxyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdGF0dXNIaXN0b3J5U2VydmljZVxyXG4gICAgICAuZ2V0QWxsRmlsdHJlZEJ5VWlkT2JqZWN0KHRoaXMuY29uZmlnPy5kYXRhLlVpZClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzSGlzdG9yeUZpbHRyZWREYXRhID0gKGRhdGEgPz8gW10pXHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGJ1dHRvbkNvbHVtbkNsaWNrZWQoZGF0YUV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uc3VsdFJvdyhkYXRhRXZlbnQua2V5KTtcclxuICB9XHJcblxyXG4gIGNvbnN1bHRSb3coaXRlbUtleTogYW55KSB7XHJcbiAgICB0aGlzLm9wZW5Db25zdWx0TW9kYWwoTW9kZXMuY29uc3VsdCwgaXRlbUtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW5Db25zdWx0TW9kYWwobW9kZTogc3RyaW5nLCBpdGVtS2V5PzogYW55KTogdm9pZCB7XHJcblxyXG4gICAgbGV0IGNvbmY6IER5bmFtaWNEaWFsb2dDb25maWc7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kYWxTaXplICE9IG51bGwgJiYgdGhpcy5tb2RhbFNpemUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbmYgPSB7XHJcbiAgICAgICAgZGF0YTogeyBpZDogaXRlbUtleSwgbW9kZTogbW9kZSB9LFxyXG4gICAgICAgIHN0eWxlQ2xhc3M6ICcnLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLm1vZGFsU2l6ZS53aWR0aCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMubW9kYWxTaXplLmhlaWdodCxcclxuICAgICAgICBtYXhpbWl6YWJsZTogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbmYgPSB7IGRhdGE6IHsgaWQ6IGl0ZW1LZXksIG1vZGU6IG1vZGUgfSwgbWF4aW1pemFibGU6IHRydWUgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlZiA9IHRoaXMuX3RzaU1vZGFsU2VydmljZS5vcGVuKFxyXG4gICAgICBUc2lMb2dFdmVudEhpc3RvcnlDb21wb25lbnQsXHJcbiAgICAgIGNvbmZcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5yZWYub25DbG9zZS5zdWJzY3JpYmUoKHZhbD86IGFueSkgPT4gdGhpcy5jbG9zZUNvbnN1bHRNb2RhbCgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VDb25zdWx0TW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZj8uZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG9wZW5FbnRpdGllSW5mb3JtYXRpb25Nb2RhbCgpIHtcclxuICAgIGxldCBjb25mOiBEeW5hbWljRGlhbG9nQ29uZmlnO1xyXG4gICAgaWYgKHRoaXMubW9kYWxTaXplICE9IG51bGwgJiYgdGhpcy5tb2RhbFNpemUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbmYgPSB7XHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgaWQ6IHRoaXMuZGlhbG9nRGF0YVNlcnZpY2UuZ2V0RGF0YSgpLmNsYXNzLFxyXG4gICAgICAgICAgbW9kZTogQ29tcG9uZW50X01vZGVzLkNPTlNVTFQsXHJcbiAgICAgICAgICB1aWQ6IHRoaXMuY29uZmlnPy5kYXRhPy5VaWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdHlsZUNsYXNzOiAnJyxcclxuICAgICAgICB3aWR0aDogdGhpcy5tb2RhbFNpemUud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiB0aGlzLm1vZGFsU2l6ZS5oZWlnaHQsXHJcbiAgICAgICAgbWF4aW1pemFibGU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25mID0ge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGlkOiB0aGlzLmRpYWxvZ0RhdGFTZXJ2aWNlLmdldERhdGEoKS5jbGFzcyxcclxuICAgICAgICAgIG1vZGU6IENvbXBvbmVudF9Nb2Rlcy5DT05TVUxULFxyXG4gICAgICAgICAgdWlkOiB0aGlzLmNvbmZpZz8uZGF0YT8uVWlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWF4aW1pemFibGU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMuX2RpYWxvZ1JlZiA9IGF3YWl0IG9wZW5DcmVhdGVPckVkaXRFbnRpdHlJbmZvcm1hdGlvbkNvbXBvbmVudCh0aGlzLl9pbmplY3Rvcixjb25mKVxyXG5cclxuICAgIHRoaXMuX2RpYWxvZ1JlZi5vbkNsb3NlLnN1YnNjcmliZSgodmFsPzogYW55KSA9PiB0aGlzLmNsb3NlQ29uc3VsdE1vZGFsKCkpO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJncmlkIG10LTFcIj5cclxuICAgIFxyXG4gICAgICA8IS0tIFRpdHJlIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMiBsZzpjb2wtMlwiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjMDA3YWQ5O1wiPlxyXG4gICAgICAgIHt7ICd0c2lfcG9wdXBfdmlld19sb2dfaGlzdG9yeV9sYXN0X21vZGlmaWNhdGlvbicgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC00IGxnOmNvbC00XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmOGZmO1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiIHN0eWxlPVwiY29sb3I6ICMwMDdhZDk7IG1hcmdpbi1yaWdodDogMC41cmVtO1wiPjwvaT5cclxuICAgICAgICB7eyAndHNpX3BvcHVwX3ZpZXdfbG9nX2hpc3RvcnlfY3JlYXRlZGJ5JyB8IGxvY2FsaXplIH19XHJcbiAgICAgICAgPHN0cm9uZz57eyBjcmVhdGlvblVzZXIgfX08L3N0cm9uZz5cclxuXHJcbiAgICAgICAgICA8aSBzdHlsZT1cImNvbG9yOiAjMDA3YWQ5OyBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcIj48L2k+XHJcbiAgICAgICAge3sgJ3RzaV9wb3B1cF92aWV3X2xvZ19oaXN0b3J5X2NyZWF0ZWRPbicgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICAgIDxzdHJvbmc+e3sgZGF0ZVNhaXNpZSB8IGRhdGUgOiBmb3JtYXREYXRlIH19PC9zdHJvbmc+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC00IGxnOmNvbC00XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAgI2YxZjJmMztcIj5cclxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXBlbmNpbFwiIHN0eWxlPVwiY29sb3I6ICMwMDdhZDk7IG1hcmdpbi1yaWdodDogMC41cmVtO1wiPjwvaT5cclxuICAgICAgICB7eyAndHNpX3BvcHVwX3ZpZXdfbG9nX2hpc3RvcnlfbW9kaWZpZWRCeScgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICAgIDxzdHJvbmc+e3sgbW9kaWZVc2VyIH19PC9zdHJvbmc+XHJcblxyXG4gICAgICAgICAgICAgPGkgc3R5bGU9XCJjb2xvcjogIzAwN2FkOTsgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XCI+PC9pPlxyXG4gICAgICAgIHt7ICd0c2lfcG9wdXBfdmlld19sb2dfaGlzdG9yeV9tb2RpZmllZE9uJyB8IGxvY2FsaXplIH19XHJcbiAgICAgICAgPHN0cm9uZz57eyBkYXRlTW9kaWYgfCBkYXRlIDogZm9ybWF0RGF0ZSB9fTwvc3Ryb25nPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImdyaWQgbXQtNSBtYi01IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICA8YnV0dG9uIFxyXG4gICAgdHlwZT1cImJ1dHRvblwiIFxyXG4gICAgcEJ1dHRvbiBsYWJlbD1cIkNvbnN1bHRlciBsZXMgaW5mb3JtYXRpb25zIGQnZW50aXTDqVwiIFxyXG4gICAgaWNvbj1cInBpIHBpLWV5ZVwiXHJcbiAgICBjbGFzcz1cIm1yLTUgcC1idXR0b24tc20gcC1idXR0b24tb3V0bGluZWRcIiBcclxuICAgIChjbGljayk9XCJvcGVuRW50aXRpZUluZm9ybWF0aW9uTW9kYWwoKVwiPjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxwLXRhYlZpZXc+XHJcbiAgICA8cC10YWJQYW5lbCBbaGVhZGVyXT1cIidoaXN0b3J5X29mX2NoYW5nZXNfdGl0bGUnfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgPHRzaS12aWV3LWdyaWQgXHJcbiAgICAgICAgICAgIFttb2RhbFNpemVdPVwibW9kYWxTaXplXCIgXHJcbiAgICAgICAgICAgIFtmb3JtTmFtZV09XCInbG9nZm9iamVjdCdcIiBcclxuICAgICAgICAgICAgW2hlYWRlcl09XCJ0aXRsZUNvbXBvbmVudFwiIFxyXG4gICAgICAgICAgICBbZ2V0RGF0YUZyb21BcGldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbZ3JpZERhdGFdPVwibG9nRXZlbnRGaWx0cmVkRGF0YVwiIFxyXG4gICAgICAgICAgICBbc2VhcmNoT25Jbml0XT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgIChidXR0b25Db2x1bW5DbGlja2VkKT1cImJ1dHRvbkNvbHVtbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNMb2dFdmVudFwiIFxyXG4gICAgICAgICAgICBbc2VsZWN0S2V5T25seV09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgIFtzaG93Q29uc3VsdEJ1dHRvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvdHNpLXZpZXctZ3JpZD5cclxuICAgIDwvcC10YWJQYW5lbD5cclxuICAgIDxwLXRhYlBhbmVsIGhlYWRlcj1cInt7J2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfaGlzdG9yaXF1ZU1vZGlmaWNhdGlvbnNTdGF0dXQnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICAgICAgPHRzaS12aWV3LWdyaWQgXHJcbiAgICAgICAgICAgIFttb2RhbFNpemVdPVwibW9kYWxTaXplXCIgXHJcbiAgICAgICAgICAgIFtmb3JtTmFtZV09XCInbG9nZlN0YXR1c29iamVjdCdcIiBcclxuICAgICAgICAgICAgW3RhcmdldEJ1c2luZXNzQ2xhc3NdPVwidGFyZ2V0QnVzaW5lc3NDbGFzc1wiXHJcbiAgICAgICAgICAgIFtoZWFkZXJdPVwiJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfaGlzdG9yaXF1ZU1vZGlmaWNhdGlvbnNTdGF0dXQnIHwgbG9jYWxpemVcIiBcclxuICAgICAgICAgICAgW2dldERhdGFGcm9tQXBpXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2dyaWREYXRhXT1cInN0YXR1c0hpc3RvcnlGaWx0cmVkRGF0YVwiIFxyXG4gICAgICAgICAgICBbc2VhcmNoT25Jbml0XT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNTdGF0dUhpc3RvcnlcIiBcclxuICAgICAgICAgICAgW3NlbGVjdEtleU9ubHldPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICA+PC90c2ktdmlldy1ncmlkPlxyXG4gICAgPC9wLXRhYlBhbmVsPlxyXG48L3AtdGFiVmlldz5cclxuIl19
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktcG9wdXAtdGV4dC12aWV3ZXIvdHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktcG9wdXAtdGV4dC12aWV3ZXIvdHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUWpHLE1BQU0sT0FBTywyQkFBMkI7SUF5RXRDLFlBQ1UsZ0JBQWlDLEVBQ2pDLEdBQXNCLEVBQ3RCLFNBQThCLEVBQy9CLE1BQTJCLEVBQzNCLGlCQUFvQyxFQUNwQyxnQ0FBa0UsRUFDbEUsb0JBQTBDLEVBQzFDLEdBQXNCO1FBUHJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7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QyxLQUFLO2dCQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO2dCQUM3QixXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUc7Z0JBQ0wsSUFBSSxFQUFFO29CQUNKLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSztvQkFDMUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxPQUFPO29CQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRztpQkFDNUI7Z0JBQ0QsV0FBVyxFQUFFLElBQUk7YUFDbEIsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sMENBQTBDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUV2RixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQzsrR0ExTFUsMkJBQTJCO21HQUEzQiwyQkFBMkIsb0RBRjVCLENBQUMsR0FBRyxZQUFZLENBQUMsMEJDbEI3QiwyOUZBMEVBOzs0RkR0RGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDJCQUEyQixhQUczQixDQUFDLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRW52aXJvbm1lbnRJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRzaUxvZ0V2ZW50SGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4uL3RzaS1sb2ctZXZlbnQtaGlzdG9yeS90c2ktbG9nLWV2ZW50LWhpc3RvcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50X01vZGVzLCBEaXNwbGF5VHlwZXMsIE1vZGFsU2l6ZUVudW0sIE1vZGVzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW1uLCBJTW9kYWxTaXplIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IERhdGVUaW1lRm9ybWF0RGlzcGxheSB9IGZyb20gJy4uLy4uL2NvbnN0cy90c2ktY29uc3RzJztcclxuaW1wb3J0IHsgRGlhbG9nRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsb2ctZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSm91cm5hbGlzYXRpb25BcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9qb3VybmFsaXNhdGlvbi9qb3VybmFsaXNhdGlvbi1hcHBsaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RhdHVzSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9qb3VybmFsaXNhdGlvbi9zdGF0dXMtaGlzdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHlwZVJlZ2lzdHJ5SGVscGVyIH0gZnJvbSAnLi4vLi4vdHNpLWhlbHBlcnMvdHlwZS1yZWdpc3RyeS5oZWxwZXInO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgVHNpTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9kYWwvdHNpLW1vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcHBQcm92aWRlcnMgfSBmcm9tICcuLi8uLi9jb25zdHMvYXBwLXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IG9wZW5DcmVhdGVPckVkaXRFbnRpdHlJbmZvcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9tb2RhbC1vcGVuLmZ1bmN0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRzaS1wb3B1cC10ZXh0LXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1wb3B1cC10ZXh0LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHNpLXBvcHVwLXRleHQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOlsuLi5hcHBQcm92aWRlcnNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lQb3B1cFRleHRWaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwcml2YXRlIF9kaWFsb2dSZWY/OiBEeW5hbWljRGlhbG9nUmVmO1xyXG4gIGZpbGVDb250ZW50OiBzdHJpbmcgPSAnJztcclxuICBjb21wOiBhbnk7XHJcbiAgbW9kYWxTaXplOiBJTW9kYWxTaXplID0gTW9kYWxTaXplRW51bS5NZWRpdW07XHJcbiAgdGl0bGVDb21wb25lbnQ6IHN0cmluZyA9ICcnO1xyXG4gIGxvZ0V2ZW50RmlsdHJlZERhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuICBzdGF0dXNIaXN0b3J5RmlsdHJlZERhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuICBjcmVhdGlvblVzZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBtb2RpZlVzZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBkYXRlU2Fpc2llOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgZGF0ZU1vZGlmOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgdGFyZ2V0QnVzaW5lc3NDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGZvcm1hdERhdGUgPSBEYXRlVGltZUZvcm1hdERpc3BsYXk7XHJcbiAgXHJcbiAgY29sdW1uc0xvZ0V2ZW50OiBBcnJheTxHcmlkQ29sdW1uPiA9IFtcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fam91cm5hbEFwcGxpY2F0aW9uX2RhdGVFdmVudCcsXHJcbiAgICAgIGZpZWxkOiAnZGF0ZUV2ZW50JyxcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLkRBVEVUSU1FX0RJU1BMQVksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9qb3VybmFsQXBwbGljYXRpb25fdXNlck5hbWVFdmVudCcsXHJcbiAgICAgIGZpZWxkOiAndXNlck5hbWVFdmVudCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9qb3VybmFsQXBwbGljYXRpb25fdHlwZUV2ZW50JyxcclxuICAgICAgZmllbGQ6ICd0eXBlRXZlbnQnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fam91cm5hbEFwcGxpY2F0aW9uX3RleHRFdmVudCcsXHJcbiAgICAgIGZpZWxkOiAndGV4dEV2ZW50JyxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgY29sdW1uc1N0YXR1SGlzdG9yeTogQXJyYXk8R3JpZENvbHVtbj4gPSBbXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfY2xhc3NlJyxcclxuICAgICAgZmllbGQ6ICdjbGFzc2UnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fc3RhdHVzSGlzdG9yeV9vbGRTdGF0dXMnLFxyXG4gICAgICBmaWVsZDogJ29sZFN0YXR1cydcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3Rvcnlfc3RhdHVzJyxcclxuICAgICAgZmllbGQ6ICdzdGF0dXMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X2NvbW1lbnRhaXJlJyxcclxuICAgICAgZmllbGQ6ICdjb21tZW50YWlyZScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X2NyZWF0aW9uVXNlcicsXHJcbiAgICAgIGZpZWxkOiAnY3JlYXRpb25Vc2VyJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGhlYWRlcjogJ2FkbWluaXN0cmF0aW9uX2FkbWluaXN0cmF0aW9uX3N0YXR1c0hpc3RvcnlfbW9kaWZVc2VyJyxcclxuICAgICAgZmllbGQ6ICdtb2RpZlVzZXInLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaGVhZGVyOiAnYWRtaW5pc3RyYXRpb25fYWRtaW5pc3RyYXRpb25fc3RhdHVzSGlzdG9yeV9kYXRlU2Fpc2llJyxcclxuICAgICAgZmllbGQ6ICdkYXRlU2Fpc2llJyxcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLkRBVEVUSU1FX0RJU1BMQVksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBoZWFkZXI6ICdhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X2RhdGVNb2RpZicsXHJcbiAgICAgIGZpZWxkOiAnZGF0ZU1vZGlmJyxcclxuICAgICAgdHlwZTogRGlzcGxheVR5cGVzLkRBVEVUSU1FX0RJU1BMQVksXHJcbiAgICB9LCAgXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90c2lNb2RhbFNlcnZpY2U6IFRzaU1vZGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxyXG4gICAgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgIHB1YmxpYyBkaWFsb2dEYXRhU2VydmljZTogRGlhbG9nRGF0YVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgam91cm5hbGlzYXRpb25BcHBsaWNhdGlvblNlcnZpY2U6IEpvdXJuYWxpc2F0aW9uQXBwbGljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHN0YXR1c0hpc3RvcnlTZXJ2aWNlOiBTdGF0dXNIaXN0b3J5U2VydmljZSxcclxuICAgIHB1YmxpYyByZWY/OiBEeW5hbWljRGlhbG9nUmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZUNvbnRlbnQgPSB0aGlzLmNvbmZpZz8uZGF0YSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLm1vZGFsU2l6ZSA9IE1vZGFsU2l6ZUVudW0uTGFyZ2U7XHJcbiAgICB0aGlzLnRpdGxlQ29tcG9uZW50ID0gJ2hpc3Rvcnlfb2ZfY2hhbmdlc190aXRsZSc7XHJcbiAgICBcclxuICAgIHRoaXMuY3JlYXRpb25Vc2VyID0gdGhpcy5jb25maWc/LmRhdGEuY3JlYXRpb25Vc2VyO1xyXG4gICAgdGhpcy5tb2RpZlVzZXIgPSB0aGlzLmNvbmZpZz8uZGF0YS5tb2RpZlVzZXI7XHJcbiAgICB0aGlzLmRhdGVTYWlzaWUgPSB0aGlzLmNvbmZpZz8uZGF0YS5kYXRlU2Fpc2llO1xyXG4gICAgdGhpcy5kYXRlTW9kaWYgPSB0aGlzLmNvbmZpZz8uZGF0YS5kYXRlTW9kaWY7XHJcblxyXG4gICAgdGhpcy50YXJnZXRCdXNpbmVzc0NsYXNzID0gdGhpcy5jb25maWc/LmRhdGEuYnVzaW5lc3NDbGFzcztcclxuXHJcbiAgICB0aGlzLmpvdXJuYWxpc2F0aW9uQXBwbGljYXRpb25TZXJ2aWNlXHJcbiAgICAgIC5nZXRBbGxGaWx0cmVkQnlJZE9iamVjdCh0aGlzLmNvbmZpZz8uZGF0YS5VaWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0V2ZW50RmlsdHJlZERhdGEgPSAoZGF0YSA/PyBbXSlcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RhdHVzSGlzdG9yeVNlcnZpY2VcclxuICAgICAgLmdldEFsbEZpbHRyZWRCeVVpZE9iamVjdCh0aGlzLmNvbmZpZz8uZGF0YS5VaWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1c0hpc3RvcnlGaWx0cmVkRGF0YSA9IChkYXRhID8/IFtdKVxyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBidXR0b25Db2x1bW5DbGlja2VkKGRhdGFFdmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbnN1bHRSb3coZGF0YUV2ZW50LmtleSk7XHJcbiAgfVxyXG5cclxuICBjb25zdWx0Um93KGl0ZW1LZXk6IGFueSkge1xyXG4gICAgdGhpcy5vcGVuQ29uc3VsdE1vZGFsKE1vZGVzLmNvbnN1bHQsIGl0ZW1LZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuQ29uc3VsdE1vZGFsKG1vZGU6IHN0cmluZywgaXRlbUtleT86IGFueSk6IHZvaWQge1xyXG5cclxuICAgIGxldCBjb25mOiBEeW5hbWljRGlhbG9nQ29uZmlnO1xyXG5cclxuICAgIGlmICh0aGlzLm1vZGFsU2l6ZSAhPSBudWxsICYmIHRoaXMubW9kYWxTaXplICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25mID0ge1xyXG4gICAgICAgIGRhdGE6IHsgaWQ6IGl0ZW1LZXksIG1vZGU6IG1vZGUgfSxcclxuICAgICAgICBzdHlsZUNsYXNzOiAnJyxcclxuICAgICAgICB3aWR0aDogdGhpcy5tb2RhbFNpemUud2lkdGgsXHJcbiAgICAgICAgaGVpZ2h0OiB0aGlzLm1vZGFsU2l6ZS5oZWlnaHQsXHJcbiAgICAgICAgbWF4aW1pemFibGU6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25mID0geyBkYXRhOiB7IGlkOiBpdGVtS2V5LCBtb2RlOiBtb2RlIH0sIG1heGltaXphYmxlOiB0cnVlIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZWYgPSB0aGlzLl90c2lNb2RhbFNlcnZpY2Uub3BlbihcclxuICAgICAgVHNpTG9nRXZlbnRIaXN0b3J5Q29tcG9uZW50LFxyXG4gICAgICBjb25mXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMucmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKCh2YWw/OiBhbnkpID0+IHRoaXMuY2xvc2VDb25zdWx0TW9kYWwoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsb3NlQ29uc3VsdE1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWY/LmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBvcGVuRW50aXRpZUluZm9ybWF0aW9uTW9kYWwoKSB7XHJcbiAgICBsZXQgY29uZjogRHluYW1pY0RpYWxvZ0NvbmZpZztcclxuICAgIGlmICh0aGlzLm1vZGFsU2l6ZSAhPSBudWxsICYmIHRoaXMubW9kYWxTaXplICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25mID0ge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGlkOiB0aGlzLmRpYWxvZ0RhdGFTZXJ2aWNlLmdldERhdGEoKS5jbGFzcyxcclxuICAgICAgICAgIG1vZGU6IENvbXBvbmVudF9Nb2Rlcy5DT05TVUxULFxyXG4gICAgICAgICAgdWlkOiB0aGlzLmNvbmZpZz8uZGF0YT8uVWlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3R5bGVDbGFzczogJycsXHJcbiAgICAgICAgd2lkdGg6IHRoaXMubW9kYWxTaXplLndpZHRoLFxyXG4gICAgICAgIGhlaWdodDogdGhpcy5tb2RhbFNpemUuaGVpZ2h0LFxyXG4gICAgICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uZiA9IHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBpZDogdGhpcy5kaWFsb2dEYXRhU2VydmljZS5nZXREYXRhKCkuY2xhc3MsXHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ09OU1VMVCxcclxuICAgICAgICAgIHVpZDogdGhpcy5jb25maWc/LmRhdGE/LlVpZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLl9kaWFsb2dSZWYgPSBhd2FpdCBvcGVuQ3JlYXRlT3JFZGl0RW50aXR5SW5mb3JtYXRpb25Db21wb25lbnQodGhpcy5faW5qZWN0b3IsY29uZilcclxuXHJcbiAgICB0aGlzLl9kaWFsb2dSZWYub25DbG9zZS5zdWJzY3JpYmUoKHZhbD86IGFueSkgPT4gdGhpcy5jbG9zZUNvbnN1bHRNb2RhbCgpKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBtdC0xXCI+XHJcbiAgICBcclxuICAgICAgPCEtLSBUaXRyZSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTIgbGc6Y29sLTJcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogIzAwN2FkOTtcIj5cclxuICAgICAgICB7eyAndHNpX3BvcHVwX3ZpZXdfbG9nX2hpc3RvcnlfbGFzdF9tb2RpZmljYXRpb24nIHwgbG9jYWxpemUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNCBsZzpjb2wtNFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2YwZjhmZjtcIj5cclxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXVzZXJcIiBzdHlsZT1cImNvbG9yOiAjMDA3YWQ5OyBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcIj48L2k+XHJcbiAgICAgICAge3sgJ3RzaV9wb3B1cF92aWV3X2xvZ19oaXN0b3J5X2NyZWF0ZWRieScgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICAgIDxzdHJvbmc+e3sgY3JlYXRpb25Vc2VyIH19PC9zdHJvbmc+XHJcblxyXG4gICAgICAgICAgPGkgc3R5bGU9XCJjb2xvcjogIzAwN2FkOTsgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XCI+PC9pPlxyXG4gICAgICAgIHt7ICd0c2lfcG9wdXBfdmlld19sb2dfaGlzdG9yeV9jcmVhdGVkT24nIHwgbG9jYWxpemUgfX1cclxuICAgICAgICA8c3Ryb25nPnt7IGRhdGVTYWlzaWUgfCBkYXRlIDogZm9ybWF0RGF0ZSB9fTwvc3Ryb25nPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNCBsZzpjb2wtNFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogICNmMWYyZjM7XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1wZW5jaWxcIiBzdHlsZT1cImNvbG9yOiAjMDA3YWQ5OyBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcIj48L2k+XHJcbiAgICAgICAge3sgJ3RzaV9wb3B1cF92aWV3X2xvZ19oaXN0b3J5X21vZGlmaWVkQnknIHwgbG9jYWxpemUgfX1cclxuICAgICAgICA8c3Ryb25nPnt7IG1vZGlmVXNlciB9fTwvc3Ryb25nPlxyXG5cclxuICAgICAgICAgICAgIDxpIHN0eWxlPVwiY29sb3I6ICMwMDdhZDk7IG1hcmdpbi1yaWdodDogMC41cmVtO1wiPjwvaT5cclxuICAgICAgICB7eyAndHNpX3BvcHVwX3ZpZXdfbG9nX2hpc3RvcnlfbW9kaWZpZWRPbicgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICAgIDxzdHJvbmc+e3sgZGF0ZU1vZGlmIHwgZGF0ZSA6IGZvcm1hdERhdGUgfX08L3N0cm9uZz5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJncmlkIG10LTUgbWItNSBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgPGJ1dHRvbiBcclxuICAgIHR5cGU9XCJidXR0b25cIiBcclxuICAgIHBCdXR0b24gbGFiZWw9XCJDb25zdWx0ZXIgbGVzIGluZm9ybWF0aW9ucyBkJ2VudGl0w6lcIiBcclxuICAgIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgY2xhc3M9XCJtci01IHAtYnV0dG9uLXNtIHAtYnV0dG9uLW91dGxpbmVkXCIgXHJcbiAgICAoY2xpY2spPVwib3BlbkVudGl0aWVJbmZvcm1hdGlvbk1vZGFsKClcIj48L2J1dHRvbj5cclxuPC9kaXY+XHJcblxyXG48cC10YWJWaWV3PlxyXG4gICAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCInaGlzdG9yeV9vZl9jaGFuZ2VzX3RpdGxlJ3wgbG9jYWxpemVcIj5cclxuICAgICAgICAgIDx0c2ktdmlldy1ncmlkIFxyXG4gICAgICAgICAgICBbbW9kYWxTaXplXT1cIm1vZGFsU2l6ZVwiIFxyXG4gICAgICAgICAgICBbZm9ybU5hbWVdPVwiJ2xvZ2ZvYmplY3QnXCIgXHJcbiAgICAgICAgICAgIFtoZWFkZXJdPVwidGl0bGVDb21wb25lbnRcIiBcclxuICAgICAgICAgICAgW2dldERhdGFGcm9tQXBpXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2dyaWREYXRhXT1cImxvZ0V2ZW50RmlsdHJlZERhdGFcIiBcclxuICAgICAgICAgICAgW3NlYXJjaE9uSW5pdF09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAoYnV0dG9uQ29sdW1uQ2xpY2tlZCk9XCJidXR0b25Db2x1bW5DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zTG9nRXZlbnRcIiBcclxuICAgICAgICAgICAgW3NlbGVjdEtleU9ubHldPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICBbc2hvd0NvbnN1bHRCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L3RzaS12aWV3LWdyaWQ+XHJcbiAgICA8L3AtdGFiUGFuZWw+XHJcbiAgICA8cC10YWJQYW5lbCBoZWFkZXI9XCJ7eydhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X2hpc3RvcmlxdWVNb2RpZmljYXRpb25zU3RhdHV0JyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgICAgIDx0c2ktdmlldy1ncmlkIFxyXG4gICAgICAgICAgICBbbW9kYWxTaXplXT1cIm1vZGFsU2l6ZVwiIFxyXG4gICAgICAgICAgICBbZm9ybU5hbWVdPVwiJ2xvZ2ZTdGF0dXNvYmplY3QnXCIgXHJcbiAgICAgICAgICAgIFt0YXJnZXRCdXNpbmVzc0NsYXNzXT1cInRhcmdldEJ1c2luZXNzQ2xhc3NcIlxyXG4gICAgICAgICAgICBbaGVhZGVyXT1cIidhZG1pbmlzdHJhdGlvbl9hZG1pbmlzdHJhdGlvbl9zdGF0dXNIaXN0b3J5X2hpc3RvcmlxdWVNb2RpZmljYXRpb25zU3RhdHV0JyB8IGxvY2FsaXplXCIgXHJcbiAgICAgICAgICAgIFtnZXREYXRhRnJvbUFwaV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtncmlkRGF0YV09XCJzdGF0dXNIaXN0b3J5RmlsdHJlZERhdGFcIiBcclxuICAgICAgICAgICAgW3NlYXJjaE9uSW5pdF09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zU3RhdHVIaXN0b3J5XCIgXHJcbiAgICAgICAgICAgIFtzZWxlY3RLZXlPbmx5XT1cInRydWVcIiBcclxuICAgICAgICAgICAgPjwvdHNpLXZpZXctZ3JpZD5cclxuICAgIDwvcC10YWJQYW5lbD5cclxuPC9wLXRhYlZpZXc+XHJcbiJdfQ==
|
|
@@ -14476,13 +14476,11 @@ class TsiPopupTextViewerComponent {
|
|
|
14476
14476
|
},
|
|
14477
14477
|
{
|
|
14478
14478
|
header: 'administration_administration_statusHistory_oldStatus',
|
|
14479
|
-
field: 'oldStatus'
|
|
14480
|
-
isStatusColumnValue: true
|
|
14479
|
+
field: 'oldStatus'
|
|
14481
14480
|
},
|
|
14482
14481
|
{
|
|
14483
14482
|
header: 'administration_administration_statusHistory_status',
|
|
14484
|
-
field: 'status'
|
|
14485
|
-
isStatusColumnValue: true
|
|
14483
|
+
field: 'status'
|
|
14486
14484
|
},
|
|
14487
14485
|
{
|
|
14488
14486
|
header: 'administration_administration_statusHistory_commentaire',
|
|
@@ -22778,11 +22776,11 @@ class CreateOrEditEntityInformationsComponent extends TsiFormComponentBaseCompon
|
|
|
22778
22776
|
return comparison[field] || '';
|
|
22779
22777
|
}
|
|
22780
22778
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateOrEditEntityInformationsComponent, deps: [{ token: EntityConfigurationService }, { token: ErrorResponseManagerService }, { token: i1$3.DynamicDialogRef }, { token: i1$3.DynamicDialogConfig }, { token: TsiNotificationService }, { token: TsiConfirmationService }, { token: ApiExplorerService }, { token: LayoutHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22781
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateOrEditEntityInformationsComponent, selector: "app-create-or-edit-entity-informations", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'administration_entityRelations_title' | localize\"\r\n (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <div *ngIf=\"uid\" class=\"flex align-items-center gap-2 mb-2\">\r\n <span class=\"font-semibold\">{{'administration_gestionEntityInformation_uid' | localize}} :</span>\r\n <span>{{ uid }}</span>\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'administration_tab_entityInformation' | localize\">\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_className'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.className\"\r\n (inputFieldChange)=\"getColonnesByClassNameAsKeyValuePair($event)\"\r\n [disabled]=\"isDeleteMode() || isConsultMode() || isEditMode()\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formName'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.formName\" id-field=\"key\" label-field=\"value\" [showClear]=\"true\"\r\n [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_listComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.listComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_logged'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'Logged'\" [(inputField)]=\"entityWithRelations.entity.logged\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_listRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ListRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.listRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'FormRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.formRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorPropertyName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorPropertyName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorPropertyName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorClassName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorClassName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_keyColumns'\"></Tsi-Label>\r\n <div class=\"col-8\">\r\n <p-multiSelect [options]=\"keyColumnOptions\" [(ngModel)]=\"entityWithRelations.entity.keyColumns\"\r\n optionValue=\"key\" optionLabel=\"value\" display=\"chip\" defaultLabel=\"Select columns\" [filter]=\"true\">\r\n </p-multiSelect>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_isWorkflow'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'IsWorkflow'\"\r\n [(inputField)]=\"entityWithRelations.entity.isWorkflow\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusColumnName'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.statusColumnName\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusEnumName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'StatusEnumName'\"\r\n [(inputField)]=\"entityWithRelations.entity.statusEnumName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_defaultStatus'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DefaultStatus'\"\r\n [(inputField)]=\"entityWithRelations.entity.defaultStatus\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_advancedSearchComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.advancedSearchComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardHeaderPhotoColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardHeaderPhotoColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardTitleColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardTitleColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardSubHeaderColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardSubHeaderColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardDescriptionColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardDescriptionColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarStartDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalendarStartDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarStartDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarEndDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalenderEndDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarEndDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_frequent'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'Frequent'\"\r\n [(inputField)]=\"entityWithRelations.entity.frequent\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_createFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CreateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.createFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_readFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ReadFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.readFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_updateFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'UpdateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.updateFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_deleteFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DeleteFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.deleteFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_relations' | localize\">\r\n <div class=\"grid\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"entitiesRelationsColumns\" [gridData]=\"entityWithRelations.relations\"\r\n [parent]=\"this\" (addedRowEventEmitter)=\"onAddRelation()\" [showAddButton]=\"isEditMode()\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_permissions' | localize\">\r\n <div class=\"grid\">\r\n <tsi-view-grid [header]=\"entityWithRelations.entity.className ?? ''\" class=\"col-12 mb-3\"\r\n [columns]=\"permissionsGridColumns\" [getDataFromApi]=\"false\" [gridData]=\"endpointInfos\">\r\n </tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_status_transition' | localize\">\r\n <div *ngIf=\"statusTransitionsInfo && statusTransitionsInfo.transitions && statusTransitionsInfo.transitions.length > 0; else noWorkflow\">\r\n <div class=\"workflow-header mb-3\">\r\n <span class=\"font-semibold\">{{'administration_workflow_businessClass' | localize}} : </span>\r\n <span>{{ statusTransitionsInfo.businessClass }}</span>\r\n </div>\r\n <p-table [value]=\"statusTransitionsInfo.transitions\"\r\n [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'administration_workflow_fromStatus' | localize}}</th>\r\n <th>{{'administration_workflow_toStatus' | localize}}</th>\r\n <th>{{'administration_workflow_requiredAccessRights' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td>\r\n <span class=\"workflow-status-badge from-status\">{{ row.fromStatus }}</span>\r\n </td>\r\n <td>\r\n <span class=\"workflow-status-badge to-status\">{{ row.toStatus }}</span>\r\n </td>\r\n <td>\r\n <div class=\"workflow-access-rights\">\r\n <span *ngFor=\"let right of row.requiredAccessRights\" class=\"workflow-access-chip\">{{ right }}</span>\r\n <span *ngIf=\"!row.requiredAccessRights || row.requiredAccessRights.length === 0\" class=\"text-secondary\">\u2014</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"3\" class=\"text-center\">\r\n {{'administration_workflow_noTransitions' | localize}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n <ng-template #noWorkflow>\r\n <div class=\"workflow-empty-state text-center p-4\">\r\n <i class=\"pi pi-info-circle workflow-empty-icon\"></i>\r\n <p>{{'administration_workflow_noData' | localize}}</p>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_properties' | localize\">\r\n <div class=\"flex align-items-center gap-2 mb-3\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" [(ngModel)]=\"propertiesSearchText\" (ngModelChange)=\"onPropertiesSearch()\"\r\n [placeholder]=\"'administration_properties_searchPlaceholder' | localize\" class=\"p-inputtext-sm\" />\r\n </span>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_modelColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedModelColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('model', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_projectDbColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedDbColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('db', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <Tsi-CheckBox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\"\r\n [disabled]=\"true\"></Tsi-CheckBox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_sqlColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedSqlColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('sql', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <p-paginator [rows]=\"propertiesPageSize\" [totalRecords]=\"propertiesTotalRecords\" [first]=\"propertiesFirst\"\r\n (onPageChange)=\"onPropertiesPageChange($event)\" [rowsPerPageOptions]=\"[10, 25, 50]\">\r\n </p-paginator>\r\n\r\n <div class=\"comparison-legend mt-3\">\r\n <span class=\"legend-item comparison-missing-legend\">{{ 'administration_properties_comparison_missing' | localize\r\n }}</span>\r\n <span class=\"legend-item comparison-type-mismatch-legend\">{{ 'administration_properties_comparison_type' |\r\n localize }}</span>\r\n <span class=\"legend-item comparison-length-mismatch-legend\">{{ 'administration_properties_comparison_length' |\r\n localize }}</span>\r\n </div>\r\n </p-tabPanel>\r\n </p-tabView>\r\n\r\n <Tsi-Modal-Footer [isConsult]=\"isConsultMode()\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\" [showSaveAndCloseButton]=\"false\">\r\n </Tsi-Modal-Footer>\r\n</tsi-form>", styles: [":host ::ng-deep .comparison-missing{background-color:#ef9a9a!important}:host ::ng-deep .comparison-type-mismatch{background-color:#ffcdd2!important}:host ::ng-deep .comparison-length-mismatch{background-color:#fff9c4!important}.properties-grid-section{border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.properties-grid-title{margin:0;padding:.75rem 1rem;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:.95rem;font-weight:600}.comparison-legend{display:flex;gap:1rem;flex-wrap:wrap}.comparison-legend .legend-item{padding:.25rem .75rem;border-radius:4px;font-size:.8rem}.comparison-legend .comparison-missing-legend{background-color:#ef9a9a}.comparison-legend .comparison-type-mismatch-legend{background-color:#ffcdd2}.comparison-legend .comparison-length-mismatch-legend{background-color:#fff9c4}.workflow-header{padding:.75rem 1rem;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px}.workflow-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:600}.workflow-status-badge.from-status{background-color:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.workflow-status-badge.to-status{background-color:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.workflow-access-rights{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.workflow-access-chip{display:inline-block;padding:.15rem .5rem;background-color:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:12px;font-size:.78rem;font-weight:500}.workflow-empty-state{color:#6c757d}.workflow-empty-state .workflow-empty-icon{font-size:2.5rem;margin-bottom:.75rem;color:#adb5bd}.workflow-empty-state p{font-size:.95rem;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i6.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "component", type: i7.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i7.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i11.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: i2$5.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "component", type: EditableGridComponent, selector: "Tsi-Generic-Editable-Grid", inputs: ["selectedItems", "configuration", "key", "items", "saveEvent", "showGlobalSearch", "showAddButton", "showDeleteButton", "showEditButton", "showRowSummary", "scrollHeight", "sizingMode", "rowPerPage", "pageSize", "entityPrimaryKeyName", "columns", "gridData", "isTableLoading", "parent", "showSaveButton", "showActionColumn", "enableRowDisabling", "rowSummaryConfig", "showHaveSumary", "showRowSumary", "selectKeyOnly", "selectionMode", "showConsultButton", "editableGridBusinessClass", "orderColumn", "deleteLineButtonDisabled", "showDuplicateButton", "id"], outputs: ["refreshEventEmitter", "saveDataEventEmitter", "rowChangedEventEmitter", "selectedRowEventEmitter", "addedRowEventEmitter", "focusOutEventEmitter", "cellChanged", "rowDeletedEventEmitter", "selectedItemsChange", "onRowSelect", "focusOutRow", "onConsultClicked", "rowDuplicatedEventEmitter"] }, { kind: "component", type: TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: TsiViewGridComponent, selector: "tsi-view-grid", inputs: ["columns", "gridConfiguration", "viewComponent", "crudService", "header", "modalSize", "showConsultButton", "showSearchField", "searchFields", "formEndpoint", "formName", "id", "showImportExportButton", "targetBusinessClass", "getDataFromApi", "gridData", "isSearchButtonDisabled", "selectKeyOnly", "selectionMode", "selectedItems", "key", "showGlobalSearch", "showExportButton", "showCalenderView", "showHeaderFilters", "showFilterButton", "selectAll", "checkedByField", "sortMode", "sizingMode", "searchOnInit"], outputs: ["summariesChange", "selectedItemsChange", "buttonColumnClicked", "searchFieldsValueChanged", "getAllPagedResultChanged"] }, { kind: "component", type: TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "showManageWorkflowButton", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "openWorkflow", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: ModalLabelPipe, name: "modalLabel" }] }); }
|
|
22779
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateOrEditEntityInformationsComponent, selector: "app-create-or-edit-entity-informations", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'administration_entityRelations_title' | localize\"\r\n (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <div *ngIf=\"uid\" class=\"flex align-items-center gap-2 mb-2\">\r\n <span class=\"font-semibold\">{{'administration_gestionEntityInformation_uid' | localize}} :</span>\r\n <span>{{ uid }}</span>\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'administration_tab_entityInformation' | localize\">\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_className'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.className\"\r\n (inputFieldChange)=\"getColonnesByClassNameAsKeyValuePair($event)\"\r\n [disabled]=\"isDeleteMode() || isConsultMode() || isEditMode()\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formName'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.formName\" id-field=\"key\" label-field=\"value\" [showClear]=\"true\"\r\n [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_listComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.listComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_logged'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'Logged'\" [(inputField)]=\"entityWithRelations.entity.logged\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_listRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ListRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.listRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'FormRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.formRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorPropertyName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorPropertyName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorPropertyName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorClassName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorClassName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_keyColumns'\"></Tsi-Label>\r\n <div class=\"col-8\">\r\n <p-multiSelect [options]=\"keyColumnOptions\" [(ngModel)]=\"entityWithRelations.entity.keyColumns\"\r\n optionValue=\"key\" optionLabel=\"value\" display=\"chip\" defaultLabel=\"Select columns\" [filter]=\"true\">\r\n </p-multiSelect>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_isWorkflow'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'IsWorkflow'\"\r\n [(inputField)]=\"entityWithRelations.entity.isWorkflow\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusColumnName'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.statusColumnName\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusEnumName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'StatusEnumName'\"\r\n [(inputField)]=\"entityWithRelations.entity.statusEnumName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_defaultStatus'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DefaultStatus'\"\r\n [(inputField)]=\"entityWithRelations.entity.defaultStatus\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_advancedSearchComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.advancedSearchComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardHeaderPhotoColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardHeaderPhotoColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardTitleColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardTitleColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardSubHeaderColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardSubHeaderColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardDescriptionColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardDescriptionColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarStartDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalendarStartDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarStartDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarEndDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalenderEndDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarEndDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_frequent'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'Frequent'\"\r\n [(inputField)]=\"entityWithRelations.entity.frequent\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_createFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CreateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.createFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_readFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ReadFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.readFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_updateFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'UpdateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.updateFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_deleteFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DeleteFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.deleteFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_relations' | localize\">\r\n <div class=\"grid\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"entitiesRelationsColumns\" [gridData]=\"entityWithRelations.relations\"\r\n [parent]=\"this\" (addedRowEventEmitter)=\"onAddRelation()\" [showAddButton]=\"isEditMode()\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_permissions' | localize\">\r\n <div class=\"grid\">\r\n <tsi-view-grid [header]=\"entityWithRelations.entity.className ?? ''\" class=\"col-12 mb-3\"\r\n [columns]=\"permissionsGridColumns\" [getDataFromApi]=\"false\" [gridData]=\"endpointInfos\">\r\n </tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_status_transition' | localize\">\r\n <div *ngIf=\"statusTransitionsInfo && statusTransitionsInfo.transitions && statusTransitionsInfo.transitions.length > 0; else noWorkflow\">\r\n <div class=\"workflow-header mb-3\">\r\n <span class=\"font-semibold\">{{'administration_workflow_businessClass' | localize}} : </span>\r\n <span>{{ statusTransitionsInfo.businessClass }}</span>\r\n </div>\r\n <p-table [value]=\"statusTransitionsInfo.transitions\"\r\n [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'administration_workflow_fromStatus' | localize}}</th>\r\n <th>{{'administration_workflow_toStatus' | localize}}</th>\r\n <th>{{'administration_workflow_requiredAccessRights' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td>\r\n <span class=\"workflow-status-badge from-status\">{{ row.fromStatus | localize }}</span>\r\n </td>\r\n <td>\r\n <span class=\"workflow-status-badge to-status\">{{ row.toStatus | localize }}</span>\r\n </td>\r\n <td>\r\n <div class=\"workflow-access-rights\">\r\n <span *ngFor=\"let right of row.requiredAccessRights\" class=\"workflow-access-chip\">{{ right }}</span>\r\n <span *ngIf=\"!row.requiredAccessRights || row.requiredAccessRights.length === 0\" class=\"text-secondary\">\u2014</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"3\" class=\"text-center\">\r\n {{'administration_workflow_noTransitions' | localize}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n <ng-template #noWorkflow>\r\n <div class=\"workflow-empty-state text-center p-4\">\r\n <i class=\"pi pi-info-circle workflow-empty-icon\"></i>\r\n <p>{{'administration_workflow_noData' | localize}}</p>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_properties' | localize\">\r\n <div class=\"flex align-items-center gap-2 mb-3\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" [(ngModel)]=\"propertiesSearchText\" (ngModelChange)=\"onPropertiesSearch()\"\r\n [placeholder]=\"'administration_properties_searchPlaceholder' | localize\" class=\"p-inputtext-sm\" />\r\n </span>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_modelColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedModelColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('model', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_projectDbColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedDbColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('db', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <Tsi-CheckBox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\"\r\n [disabled]=\"true\"></Tsi-CheckBox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_sqlColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedSqlColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('sql', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <p-paginator [rows]=\"propertiesPageSize\" [totalRecords]=\"propertiesTotalRecords\" [first]=\"propertiesFirst\"\r\n (onPageChange)=\"onPropertiesPageChange($event)\" [rowsPerPageOptions]=\"[10, 25, 50]\">\r\n </p-paginator>\r\n\r\n <div class=\"comparison-legend mt-3\">\r\n <span class=\"legend-item comparison-missing-legend\">{{ 'administration_properties_comparison_missing' | localize\r\n }}</span>\r\n <span class=\"legend-item comparison-type-mismatch-legend\">{{ 'administration_properties_comparison_type' |\r\n localize }}</span>\r\n <span class=\"legend-item comparison-length-mismatch-legend\">{{ 'administration_properties_comparison_length' |\r\n localize }}</span>\r\n </div>\r\n </p-tabPanel>\r\n </p-tabView>\r\n\r\n <Tsi-Modal-Footer [isConsult]=\"isConsultMode()\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\" [showSaveAndCloseButton]=\"false\">\r\n </Tsi-Modal-Footer>\r\n</tsi-form>", styles: [":host ::ng-deep .comparison-missing{background-color:#ef9a9a!important}:host ::ng-deep .comparison-type-mismatch{background-color:#ffcdd2!important}:host ::ng-deep .comparison-length-mismatch{background-color:#fff9c4!important}.properties-grid-section{border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.properties-grid-title{margin:0;padding:.75rem 1rem;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:.95rem;font-weight:600}.comparison-legend{display:flex;gap:1rem;flex-wrap:wrap}.comparison-legend .legend-item{padding:.25rem .75rem;border-radius:4px;font-size:.8rem}.comparison-legend .comparison-missing-legend{background-color:#ef9a9a}.comparison-legend .comparison-type-mismatch-legend{background-color:#ffcdd2}.comparison-legend .comparison-length-mismatch-legend{background-color:#fff9c4}.workflow-header{padding:.75rem 1rem;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px}.workflow-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:600}.workflow-status-badge.from-status{background-color:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.workflow-status-badge.to-status{background-color:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.workflow-access-rights{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.workflow-access-chip{display:inline-block;padding:.15rem .5rem;background-color:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:12px;font-size:.78rem;font-weight:500}.workflow-empty-state{color:#6c757d}.workflow-empty-state .workflow-empty-icon{font-size:2.5rem;margin-bottom:.75rem;color:#adb5bd}.workflow-empty-state p{font-size:.95rem;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i6.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "component", type: i7.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i7.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i11.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: i2$5.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "component", type: EditableGridComponent, selector: "Tsi-Generic-Editable-Grid", inputs: ["selectedItems", "configuration", "key", "items", "saveEvent", "showGlobalSearch", "showAddButton", "showDeleteButton", "showEditButton", "showRowSummary", "scrollHeight", "sizingMode", "rowPerPage", "pageSize", "entityPrimaryKeyName", "columns", "gridData", "isTableLoading", "parent", "showSaveButton", "showActionColumn", "enableRowDisabling", "rowSummaryConfig", "showHaveSumary", "showRowSumary", "selectKeyOnly", "selectionMode", "showConsultButton", "editableGridBusinessClass", "orderColumn", "deleteLineButtonDisabled", "showDuplicateButton", "id"], outputs: ["refreshEventEmitter", "saveDataEventEmitter", "rowChangedEventEmitter", "selectedRowEventEmitter", "addedRowEventEmitter", "focusOutEventEmitter", "cellChanged", "rowDeletedEventEmitter", "selectedItemsChange", "onRowSelect", "focusOutRow", "onConsultClicked", "rowDuplicatedEventEmitter"] }, { kind: "component", type: TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: TsiViewGridComponent, selector: "tsi-view-grid", inputs: ["columns", "gridConfiguration", "viewComponent", "crudService", "header", "modalSize", "showConsultButton", "showSearchField", "searchFields", "formEndpoint", "formName", "id", "showImportExportButton", "targetBusinessClass", "getDataFromApi", "gridData", "isSearchButtonDisabled", "selectKeyOnly", "selectionMode", "selectedItems", "key", "showGlobalSearch", "showExportButton", "showCalenderView", "showHeaderFilters", "showFilterButton", "selectAll", "checkedByField", "sortMode", "sizingMode", "searchOnInit"], outputs: ["summariesChange", "selectedItemsChange", "buttonColumnClicked", "searchFieldsValueChanged", "getAllPagedResultChanged"] }, { kind: "component", type: TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "showManageWorkflowButton", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "openWorkflow", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: ModalLabelPipe, name: "modalLabel" }] }); }
|
|
22782
22780
|
}
|
|
22783
22781
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateOrEditEntityInformationsComponent, decorators: [{
|
|
22784
22782
|
type: Component,
|
|
22785
|
-
args: [{ selector: 'app-create-or-edit-entity-informations', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'administration_entityRelations_title' | localize\"\r\n (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <div *ngIf=\"uid\" class=\"flex align-items-center gap-2 mb-2\">\r\n <span class=\"font-semibold\">{{'administration_gestionEntityInformation_uid' | localize}} :</span>\r\n <span>{{ uid }}</span>\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'administration_tab_entityInformation' | localize\">\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_className'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.className\"\r\n (inputFieldChange)=\"getColonnesByClassNameAsKeyValuePair($event)\"\r\n [disabled]=\"isDeleteMode() || isConsultMode() || isEditMode()\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formName'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.formName\" id-field=\"key\" label-field=\"value\" [showClear]=\"true\"\r\n [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_listComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.listComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_logged'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'Logged'\" [(inputField)]=\"entityWithRelations.entity.logged\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_listRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ListRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.listRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'FormRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.formRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorPropertyName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorPropertyName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorPropertyName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorClassName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorClassName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_keyColumns'\"></Tsi-Label>\r\n <div class=\"col-8\">\r\n <p-multiSelect [options]=\"keyColumnOptions\" [(ngModel)]=\"entityWithRelations.entity.keyColumns\"\r\n optionValue=\"key\" optionLabel=\"value\" display=\"chip\" defaultLabel=\"Select columns\" [filter]=\"true\">\r\n </p-multiSelect>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_isWorkflow'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'IsWorkflow'\"\r\n [(inputField)]=\"entityWithRelations.entity.isWorkflow\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusColumnName'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.statusColumnName\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusEnumName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'StatusEnumName'\"\r\n [(inputField)]=\"entityWithRelations.entity.statusEnumName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_defaultStatus'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DefaultStatus'\"\r\n [(inputField)]=\"entityWithRelations.entity.defaultStatus\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_advancedSearchComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.advancedSearchComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardHeaderPhotoColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardHeaderPhotoColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardTitleColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardTitleColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardSubHeaderColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardSubHeaderColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardDescriptionColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardDescriptionColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarStartDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalendarStartDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarStartDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarEndDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalenderEndDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarEndDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_frequent'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'Frequent'\"\r\n [(inputField)]=\"entityWithRelations.entity.frequent\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_createFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CreateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.createFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_readFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ReadFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.readFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_updateFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'UpdateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.updateFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_deleteFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DeleteFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.deleteFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_relations' | localize\">\r\n <div class=\"grid\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"entitiesRelationsColumns\" [gridData]=\"entityWithRelations.relations\"\r\n [parent]=\"this\" (addedRowEventEmitter)=\"onAddRelation()\" [showAddButton]=\"isEditMode()\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_permissions' | localize\">\r\n <div class=\"grid\">\r\n <tsi-view-grid [header]=\"entityWithRelations.entity.className ?? ''\" class=\"col-12 mb-3\"\r\n [columns]=\"permissionsGridColumns\" [getDataFromApi]=\"false\" [gridData]=\"endpointInfos\">\r\n </tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_status_transition' | localize\">\r\n <div *ngIf=\"statusTransitionsInfo && statusTransitionsInfo.transitions && statusTransitionsInfo.transitions.length > 0; else noWorkflow\">\r\n <div class=\"workflow-header mb-3\">\r\n <span class=\"font-semibold\">{{'administration_workflow_businessClass' | localize}} : </span>\r\n <span>{{ statusTransitionsInfo.businessClass }}</span>\r\n </div>\r\n <p-table [value]=\"statusTransitionsInfo.transitions\"\r\n [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'administration_workflow_fromStatus' | localize}}</th>\r\n <th>{{'administration_workflow_toStatus' | localize}}</th>\r\n <th>{{'administration_workflow_requiredAccessRights' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td>\r\n <span class=\"workflow-status-badge from-status\">{{ row.fromStatus }}</span>\r\n </td>\r\n <td>\r\n <span class=\"workflow-status-badge to-status\">{{ row.toStatus }}</span>\r\n </td>\r\n <td>\r\n <div class=\"workflow-access-rights\">\r\n <span *ngFor=\"let right of row.requiredAccessRights\" class=\"workflow-access-chip\">{{ right }}</span>\r\n <span *ngIf=\"!row.requiredAccessRights || row.requiredAccessRights.length === 0\" class=\"text-secondary\">\u2014</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"3\" class=\"text-center\">\r\n {{'administration_workflow_noTransitions' | localize}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n <ng-template #noWorkflow>\r\n <div class=\"workflow-empty-state text-center p-4\">\r\n <i class=\"pi pi-info-circle workflow-empty-icon\"></i>\r\n <p>{{'administration_workflow_noData' | localize}}</p>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_properties' | localize\">\r\n <div class=\"flex align-items-center gap-2 mb-3\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" [(ngModel)]=\"propertiesSearchText\" (ngModelChange)=\"onPropertiesSearch()\"\r\n [placeholder]=\"'administration_properties_searchPlaceholder' | localize\" class=\"p-inputtext-sm\" />\r\n </span>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_modelColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedModelColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('model', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_projectDbColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedDbColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('db', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <Tsi-CheckBox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\"\r\n [disabled]=\"true\"></Tsi-CheckBox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_sqlColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedSqlColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('sql', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <p-paginator [rows]=\"propertiesPageSize\" [totalRecords]=\"propertiesTotalRecords\" [first]=\"propertiesFirst\"\r\n (onPageChange)=\"onPropertiesPageChange($event)\" [rowsPerPageOptions]=\"[10, 25, 50]\">\r\n </p-paginator>\r\n\r\n <div class=\"comparison-legend mt-3\">\r\n <span class=\"legend-item comparison-missing-legend\">{{ 'administration_properties_comparison_missing' | localize\r\n }}</span>\r\n <span class=\"legend-item comparison-type-mismatch-legend\">{{ 'administration_properties_comparison_type' |\r\n localize }}</span>\r\n <span class=\"legend-item comparison-length-mismatch-legend\">{{ 'administration_properties_comparison_length' |\r\n localize }}</span>\r\n </div>\r\n </p-tabPanel>\r\n </p-tabView>\r\n\r\n <Tsi-Modal-Footer [isConsult]=\"isConsultMode()\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\" [showSaveAndCloseButton]=\"false\">\r\n </Tsi-Modal-Footer>\r\n</tsi-form>", styles: [":host ::ng-deep .comparison-missing{background-color:#ef9a9a!important}:host ::ng-deep .comparison-type-mismatch{background-color:#ffcdd2!important}:host ::ng-deep .comparison-length-mismatch{background-color:#fff9c4!important}.properties-grid-section{border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.properties-grid-title{margin:0;padding:.75rem 1rem;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:.95rem;font-weight:600}.comparison-legend{display:flex;gap:1rem;flex-wrap:wrap}.comparison-legend .legend-item{padding:.25rem .75rem;border-radius:4px;font-size:.8rem}.comparison-legend .comparison-missing-legend{background-color:#ef9a9a}.comparison-legend .comparison-type-mismatch-legend{background-color:#ffcdd2}.comparison-legend .comparison-length-mismatch-legend{background-color:#fff9c4}.workflow-header{padding:.75rem 1rem;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px}.workflow-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:600}.workflow-status-badge.from-status{background-color:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.workflow-status-badge.to-status{background-color:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.workflow-access-rights{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.workflow-access-chip{display:inline-block;padding:.15rem .5rem;background-color:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:12px;font-size:.78rem;font-weight:500}.workflow-empty-state{color:#6c757d}.workflow-empty-state .workflow-empty-icon{font-size:2.5rem;margin-bottom:.75rem;color:#adb5bd}.workflow-empty-state p{font-size:.95rem;margin:0}\n"] }]
|
|
22783
|
+
args: [{ selector: 'app-create-or-edit-entity-informations', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"header | modalLabel : mode : 'administration_entityRelations_title' | localize\"\r\n (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n\r\n <div *ngIf=\"uid\" class=\"flex align-items-center gap-2 mb-2\">\r\n <span class=\"font-semibold\">{{'administration_gestionEntityInformation_uid' | localize}} :</span>\r\n <span>{{ uid }}</span>\r\n </div>\r\n\r\n <p-tabView>\r\n <p-tabPanel [header]=\"'administration_tab_entityInformation' | localize\">\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_className'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.className\"\r\n (inputFieldChange)=\"getColonnesByClassNameAsKeyValuePair($event)\"\r\n [disabled]=\"isDeleteMode() || isConsultMode() || isEditMode()\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formName'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.formName\" id-field=\"key\" label-field=\"value\" [showClear]=\"true\"\r\n [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_listComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.listComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_logged'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'Logged'\" [(inputField)]=\"entityWithRelations.entity.logged\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_listRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ListRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.listRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_formRoute'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'FormRoute'\"\r\n [(inputField)]=\"entityWithRelations.entity.formRoute\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorPropertyName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorPropertyName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorPropertyName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_discriminatorClassName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DiscriminatorClassName'\"\r\n [(inputField)]=\"entityWithRelations.entity.discriminatorClassName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_keyColumns'\"></Tsi-Label>\r\n <div class=\"col-8\">\r\n <p-multiSelect [options]=\"keyColumnOptions\" [(ngModel)]=\"entityWithRelations.entity.keyColumns\"\r\n optionValue=\"key\" optionLabel=\"value\" display=\"chip\" defaultLabel=\"Select columns\" [filter]=\"true\">\r\n </p-multiSelect>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_isWorkflow'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-8\" [inputName]=\"'IsWorkflow'\"\r\n [(inputField)]=\"entityWithRelations.entity.isWorkflow\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusColumnName'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.statusColumnName\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_statusEnumName'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'StatusEnumName'\"\r\n [(inputField)]=\"entityWithRelations.entity.statusEnumName\">\r\n </Tsi-Text-Box>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_defaultStatus'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DefaultStatus'\"\r\n [(inputField)]=\"entityWithRelations.entity.defaultStatus\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_advancedSearchComponent'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [datasource]=\"componentsOptions\"\r\n [(bind)]=\"entityWithRelations.entity.advancedSearchComponent\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardHeaderPhotoColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardHeaderPhotoColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardTitleColumn'\"></Tsi-Label>\r\n\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardTitleColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardSubHeaderColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardSubHeaderColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_cardDescriptionColumn'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-6\" [datasource]=\"keyColumnOptions\"\r\n [(bind)]=\"entityWithRelations.entity.cardDescriptionColumn\" id-field=\"key\" label-field=\"value\"\r\n [showClear]=\"true\" [disabled]=\"isDeleteMode() || isConsultMode()\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarStartDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalendarStartDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarStartDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_calendarEndDate'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CalenderEndDate'\"\r\n [(inputField)]=\"entityWithRelations.entity.calendarEndDateColumn\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\" [labelValue]=\"'administration_gestionEntityInformation_frequent'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'Frequent'\"\r\n [(inputField)]=\"entityWithRelations.entity.frequent\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_createFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'CreateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.createFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_readFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'ReadFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.readFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_updateFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'UpdateFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.updateFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-4\"\r\n [labelValue]=\"'administration_gestionEntityInformation_deleteFunctionalityCode'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'DeleteFunctionalityCode'\"\r\n [(inputField)]=\"entityWithRelations.entity.deleteFunctionalityCode\">\r\n </Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_relations' | localize\">\r\n <div class=\"grid\">\r\n <Tsi-Generic-Editable-Grid [columns]=\"entitiesRelationsColumns\" [gridData]=\"entityWithRelations.relations\"\r\n [parent]=\"this\" (addedRowEventEmitter)=\"onAddRelation()\" [showAddButton]=\"isEditMode()\">\r\n </Tsi-Generic-Editable-Grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_permissions' | localize\">\r\n <div class=\"grid\">\r\n <tsi-view-grid [header]=\"entityWithRelations.entity.className ?? ''\" class=\"col-12 mb-3\"\r\n [columns]=\"permissionsGridColumns\" [getDataFromApi]=\"false\" [gridData]=\"endpointInfos\">\r\n </tsi-view-grid>\r\n </div>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_status_transition' | localize\">\r\n <div *ngIf=\"statusTransitionsInfo && statusTransitionsInfo.transitions && statusTransitionsInfo.transitions.length > 0; else noWorkflow\">\r\n <div class=\"workflow-header mb-3\">\r\n <span class=\"font-semibold\">{{'administration_workflow_businessClass' | localize}} : </span>\r\n <span>{{ statusTransitionsInfo.businessClass }}</span>\r\n </div>\r\n <p-table [value]=\"statusTransitionsInfo.transitions\"\r\n [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{'administration_workflow_fromStatus' | localize}}</th>\r\n <th>{{'administration_workflow_toStatus' | localize}}</th>\r\n <th>{{'administration_workflow_requiredAccessRights' | localize}}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td>\r\n <span class=\"workflow-status-badge from-status\">{{ row.fromStatus | localize }}</span>\r\n </td>\r\n <td>\r\n <span class=\"workflow-status-badge to-status\">{{ row.toStatus | localize }}</span>\r\n </td>\r\n <td>\r\n <div class=\"workflow-access-rights\">\r\n <span *ngFor=\"let right of row.requiredAccessRights\" class=\"workflow-access-chip\">{{ right }}</span>\r\n <span *ngIf=\"!row.requiredAccessRights || row.requiredAccessRights.length === 0\" class=\"text-secondary\">\u2014</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"3\" class=\"text-center\">\r\n {{'administration_workflow_noTransitions' | localize}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n <ng-template #noWorkflow>\r\n <div class=\"workflow-empty-state text-center p-4\">\r\n <i class=\"pi pi-info-circle workflow-empty-icon\"></i>\r\n <p>{{'administration_workflow_noData' | localize}}</p>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel [header]=\"'administration_tab_properties' | localize\">\r\n <div class=\"flex align-items-center gap-2 mb-3\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" [(ngModel)]=\"propertiesSearchText\" (ngModelChange)=\"onPropertiesSearch()\"\r\n [placeholder]=\"'administration_properties_searchPlaceholder' | localize\" class=\"p-inputtext-sm\" />\r\n </span>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_modelColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedModelColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('model', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_projectDbColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedDbColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('db', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <Tsi-CheckBox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\"\r\n [disabled]=\"true\"></Tsi-CheckBox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <div class=\"properties-grid-section mb-3\">\r\n <h4 class=\"properties-grid-title\">{{ 'administration_properties_sqlColumns_title' | localize }}</h4>\r\n <p-table [value]=\"pagedSqlColumns\" [styleClass]=\"'p-datatable-sm p-datatable-gridlines' + (stripedRows ? ' p-datatable-striped' : '')\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngFor=\"let col of propertiesGridColumns\">{{ (col.header ?? '') | localize }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-row>\r\n <tr>\r\n <td *ngFor=\"let col of propertiesGridColumns\" [ngClass]=\"getComparisonClass('sql', row, col.field)\">\r\n <span *ngIf=\"col.type !== 'checkBox'\">{{ row[col.field] }}</span>\r\n <p-checkbox *ngIf=\"col.type === 'checkBox'\" [ngModel]=\"row[col.field]\" [disabled]=\"true\"\r\n [binary]=\"true\"></p-checkbox>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"propertiesGridColumns.length\" class=\"text-center\">\r\n {{'administration_properties_emptyMessage' | localize}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n\r\n <p-paginator [rows]=\"propertiesPageSize\" [totalRecords]=\"propertiesTotalRecords\" [first]=\"propertiesFirst\"\r\n (onPageChange)=\"onPropertiesPageChange($event)\" [rowsPerPageOptions]=\"[10, 25, 50]\">\r\n </p-paginator>\r\n\r\n <div class=\"comparison-legend mt-3\">\r\n <span class=\"legend-item comparison-missing-legend\">{{ 'administration_properties_comparison_missing' | localize\r\n }}</span>\r\n <span class=\"legend-item comparison-type-mismatch-legend\">{{ 'administration_properties_comparison_type' |\r\n localize }}</span>\r\n <span class=\"legend-item comparison-length-mismatch-legend\">{{ 'administration_properties_comparison_length' |\r\n localize }}</span>\r\n </div>\r\n </p-tabPanel>\r\n </p-tabView>\r\n\r\n <Tsi-Modal-Footer [isConsult]=\"isConsultMode()\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\" [showSaveAndCloseButton]=\"false\">\r\n </Tsi-Modal-Footer>\r\n</tsi-form>", styles: [":host ::ng-deep .comparison-missing{background-color:#ef9a9a!important}:host ::ng-deep .comparison-type-mismatch{background-color:#ffcdd2!important}:host ::ng-deep .comparison-length-mismatch{background-color:#fff9c4!important}.properties-grid-section{border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.properties-grid-title{margin:0;padding:.75rem 1rem;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;font-size:.95rem;font-weight:600}.comparison-legend{display:flex;gap:1rem;flex-wrap:wrap}.comparison-legend .legend-item{padding:.25rem .75rem;border-radius:4px;font-size:.8rem}.comparison-legend .comparison-missing-legend{background-color:#ef9a9a}.comparison-legend .comparison-type-mismatch-legend{background-color:#ffcdd2}.comparison-legend .comparison-length-mismatch-legend{background-color:#fff9c4}.workflow-header{padding:.75rem 1rem;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px}.workflow-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:600}.workflow-status-badge.from-status{background-color:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.workflow-status-badge.to-status{background-color:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.workflow-access-rights{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.workflow-access-chip{display:inline-block;padding:.15rem .5rem;background-color:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:12px;font-size:.78rem;font-weight:500}.workflow-empty-state{color:#6c757d}.workflow-empty-state .workflow-empty-icon{font-size:2.5rem;margin-bottom:.75rem;color:#adb5bd}.workflow-empty-state p{font-size:.95rem;margin:0}\n"] }]
|
|
22786
22784
|
}], ctorParameters: () => [{ type: EntityConfigurationService }, { type: ErrorResponseManagerService }, { type: i1$3.DynamicDialogRef }, { type: i1$3.DynamicDialogConfig }, { type: TsiNotificationService }, { type: TsiConfirmationService }, { type: ApiExplorerService }, { type: LayoutHelperService }] });
|
|
22787
22785
|
|
|
22788
22786
|
var createOrEditEntityInformations_component = /*#__PURE__*/Object.freeze({
|