@hmcts/ccd-case-ui-toolkit 7.2.58-update-all-error-message-1 → 7.2.59-3481

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.
@@ -145,7 +145,6 @@ export class DocumentManagementService {
145
145
  isDocumentSecureModeEnabled() {
146
146
  const documentSecureModeCaseTypeExclusions = this.appConfig.getCdamExclusionList()?.split(',');
147
147
  const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(this.caseTypeId);
148
- this.appConfig.logMessage(`isDocumentOnExclusionList: ${isDocumentOnExclusionList}`);
149
148
  if (!isDocumentOnExclusionList) {
150
149
  return true;
151
150
  }
@@ -158,4 +157,4 @@ export class DocumentManagementService {
158
157
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DocumentManagementService, [{
159
158
  type: Injectable
160
159
  }], () => [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i3.CaseNotifier }, { type: i4.JurisdictionService }], null); })();
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWtCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7QUFHdkYsTUFBTSxPQUFPLHlCQUF5QjtJQXFCakI7SUFDQTtJQUNBO0lBQ0E7SUF2QlgsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDMUMsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFFcEMsc0hBQXNIO0lB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LENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyx5QkFBeUIsRUFBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELHdGQUF3RjtRQUN4RixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7bUhBL0lVLHlCQUF5QjtnRUFBekIseUJBQXlCLFdBQXpCLHlCQUF5Qjs7aUZBQXpCLHlCQUF5QjtjQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgRG9jdW1lbnREYXRhIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RvY3VtZW50L2RvY3VtZW50LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB7IENhc2VOb3RpZmllciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS5ub3RpZmllcic7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQREYgPSAncGRmJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgSU1BR0UgPSAnaW1hZ2UnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXT1JEID0gJ3dvcmQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWENFTCA9ICdleGNlbCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFBPV0VSUE9JTlQgPSAncG93ZXJwb2ludCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRYVCA9ICd0eHQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSVEYgPSAncnRmJztcblxuICAvLyBUaGlzIGRlbGF5IGhhcyBiZWVuIGFkZGVkIHRvIGdpdmUgZW5vdWdoIHRpbWUgdG8gdGhlIHVzZXIgb24gdGhlIFVJIHRvIHNlZSB0aGUgaW5mbyBtZXNzYWdlcyBvbiB0aGUgZG9jdW1lbnQgdXBsb2FkXG4gIC8vIGZpZWxkIGZvciBjYXNlcyB3aGVuIHVwbG9hZHMgYXJlIHZlcnkgZmFzdC5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVTUE9OU0VfREVMQVkgPSAxMDAwO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGltYWdlc0xpc3Q6IHN0cmluZ1tdID0gWydHSUYnLCAnSlBHJywgJ0pQRUcnLCAnUE5HJywgJ2dpZicsICdqcGcnLCAnanBlZycsICdwbmcnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgd29yZExpc3Q6IHN0cmluZ1tdID0gWydET0MnLCAnRE9DWCcsICdkb2MnLCAnZG9jeCddO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBleGNlbExpc3Q6IHN0cmluZ1tdID0gWydYTFMnLCAnWExTWCcsICd4bHMnLCAneGxzeCddO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBwb3dlcnBvaW50TGlzdDogc3RyaW5nW10gPSBbJ1BQVCcsICdQUFRYJywgJ3BwdCcsICdwcHR4J107XG5cbiAgcHJpdmF0ZSBjYXNlVHlwZUlkOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmllclNlcnZpY2U6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNhc2VOb3RpZmllclNlcnZpY2UuY2FzZVZpZXcucGlwZSh0YWtlKDEpKSxcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5nZXRTZWxlY3RlZEp1cmlzZGljdGlvbigpXG4gICAgXSkuc3Vic2NyaWJlKChbY2FzZURldGFpbHMsIGp1cmlzZGljdGlvbl0pID0+IHtcbiAgICAgIGlmIChjYXNlRGV0YWlscykge1xuICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5pZDtcbiAgICAgIH1cbiAgICAgIGlmIChqdXJpc2RpY3Rpb24pIHtcbiAgICAgICAgaWYgKGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUpIHtcbiAgICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlLmlkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvL2lmIHRoZSB1c2VyIHJlZnJlc2hlcyBvbiB0aGUgY2FzZSBjcmVhdGlvbiBwYWdlIHRoZSBhYm92ZSBsb2dpYyB3aWxsIG5vdCB3b3JrLCB3ZSBjYW4gZ2V0IHRoZSBjYXNlVHlwZUlkIGZyb20gdGhlIFVSTFxuICAgICAgaWYgKCF0aGlzLmNhc2VUeXBlSWQpIHtcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgICBpZiAodXJsLmluZGV4T2YoJy9jYXNlLWNyZWF0ZS8nKSA+IC0xKSB7XG4gICAgICAgICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKTtcbiAgICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBwYXJ0c1twYXJ0cy5pbmRleE9mKCdjYXNlLWNyZWF0ZScpICsgMl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXREb2NTdG9yZVVybCgpO1xuICAgIC8vIERvIG5vdCBzZXQgYW55IGhlYWRlcnMsIHN1Y2ggYXMgXCJBY2NlcHRcIiBvciBcIkNvbnRlbnQtVHlwZVwiLCB3aXRoIG51bGwgdmFsdWVzOyB0aGlzIGlzIG5vdCBwZXJtaXR0ZWQgd2l0aCB0aGVcbiAgICAvLyBBbmd1bGFyIEh0dHBDbGllbnQgaW4gQGFuZ3VsYXIvY29tbW9uL2h0dHAuIEp1c3QgY3JlYXRlIGFuZCBwYXNzIGEgbmV3IEh0dHBIZWFkZXJzIG9iamVjdC4gQW5ndWxhciB3aWxsIGFkZCB0aGVcbiAgICAvLyBjb3JyZWN0IGhlYWRlcnMgYW5kIHZhbHVlcyBhdXRvbWF0aWNhbGx5XG4gICAgdGhpcy5hcHBDb25maWcubG9nTWVzc2FnZShgVXBsb2FkaW5nIGRvY3VtZW50IGZvciBjYXNlIHR5cGU6ICR7dGhpcy5jYXNlVHlwZUlkfSwgd2l0aCB1cmw6ICR7dXJsfWApO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGZvcm1EYXRhLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKGRlbGF5KERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUkVTUE9OU0VfREVMQVkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlckluZm8oZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1lZGlhVmlld2VySW5mbyA9IHtcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IHRoaXMudHJhbnNmb3JtRG9jdW1lbnRVcmwoZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2JpbmFyeV91cmwpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSxcbiAgICAgIGNvbnRlbnRfdHlwZTogdGhpcy5nZXRDb250ZW50VHlwZShkb2N1bWVudEZpZWxkVmFsdWUpLFxuICAgICAgYW5ub3RhdGlvbl9hcGlfdXJsOiB0aGlzLmFwcENvbmZpZy5nZXRBbm5vdGF0aW9uQXBpVXJsKCksXG4gICAgICBjYXNlX2lkOiBkb2N1bWVudEZpZWxkVmFsdWUuaWQsXG4gICAgICBjYXNlX2p1cmlzZGljdGlvbjogZG9jdW1lbnRGaWVsZFZhbHVlLmp1cmlzZGljdGlvblxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1lZGlhVmlld2VySW5mbyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGVudFR5cGUoZG9jdW1lbnRGaWVsZFZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gJzx1bmtub3duPic7XG4gICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZSkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxlbmd0aCkge1xuICAgICAgICBmaWxlRXh0ZW5zaW9uID0gJyc7XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID49IDApIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5zbGljZShwb3NpdGlvbiArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ltYWdlKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5JTUFHRTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXb3JkKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5XT1JEO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0V4Y2VsKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5FWENFTDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNQb3dlcnBvaW50KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5QT1dFUlBPSU5UO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAndHh0Jykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuVFhUO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncnRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUlRGO1xuICAgIH0gZWxzZSBpZiAoZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSAncGRmJykge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUERGO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmlsZUV4dGVuc2lvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJbWFnZShpbWFnZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmltYWdlc0xpc3QuZmluZChlID0+IGUgPT09IGltYWdlVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc1dvcmQod29yZFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLndvcmRMaXN0LmZpbmQoZSA9PiBlID09PSB3b3JkVHlwZSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4Y2VsKGV4Y2VsVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuZXhjZWxMaXN0LmZpbmQoZSA9PiBlID09PSBleGNlbFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNQb3dlcnBvaW50KHBvd2VycG9pbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5wb3dlcnBvaW50TGlzdC5maW5kKGUgPT4gZSA9PT0gcG93ZXJwb2ludFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50QmluYXJ5VXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlbW90ZUhyc1BhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZUhyc1VybCgpKTtcbiAgICBkb2N1bWVudEJpbmFyeVVybCA9IGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlSHJzUGF0dGVybiwgdGhpcy5hcHBDb25maWcuZ2V0SHJzVXJsKCkpO1xuICAgIGNvbnN0IHJlbW90ZURvY3VtZW50TWFuYWdlbWVudFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMuYXBwQ29uZmlnLmdldFJlbW90ZURvY3VtZW50TWFuYWdlbWVudFVybCgpKTtcbiAgICByZXR1cm4gZG9jdW1lbnRCaW5hcnlVcmwucmVwbGFjZShyZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuLCB0aGlzLmdldERvY1N0b3JlVXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2NTdG9yZVVybCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRG9jdW1lbnRTZWN1cmVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRNYW5hZ2VtZW50VXJsVjIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50TWFuYWdlbWVudFVybCgpO1xuICB9XG5cbiAgLy8gcmV0dXJuIGZhbHNlID09IGRvY3VtZW50IHNob3VsZCBub3QgdXNlIENEQU1cbiAgLy8gcmV0dXJuIHRydWUgPT0gZG9jdW1lbnQgc2hvdWxkIHVzZSBDREFNXG4gIHB1YmxpYyBpc0RvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zID0gdGhpcy5hcHBDb25maWcuZ2V0Q2RhbUV4Y2x1c2lvbkxpc3QoKT8uc3BsaXQoJywnKTtcbiAgICBjb25zdCBpc0RvY3VtZW50T25FeGNsdXNpb25MaXN0ID0gZG9jdW1lbnRTZWN1cmVNb2RlQ2FzZVR5cGVFeGNsdXNpb25zPy5pbmNsdWRlcyh0aGlzLmNhc2VUeXBlSWQpO1xuICAgIHRoaXMuYXBwQ29uZmlnLmxvZ01lc3NhZ2UoYGlzRG9jdW1lbnRPbkV4Y2x1c2lvbkxpc3Q6ICR7aXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdH1gKTtcbiAgICBpZiAoIWlzRG9jdW1lbnRPbkV4Y2x1c2lvbkxpc3Qpe1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGlmIGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgYW5kIGNhc2UgaXMgaW4gdGhlIGV4Y2x1c2lvbiBsaXN0LCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50L2RvY3VtZW50LW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQWtCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7QUFHdkYsTUFBTSxPQUFPLHlCQUF5QjtJQXFCakI7SUFDQTtJQUNBO0lBQ0E7SUF2QlgsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxDQUFVLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDaEMsTUFBTSxDQUFVLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDMUMsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxDQUFVLEdBQUcsR0FBRyxLQUFLLENBQUM7SUFFcEMsc0hBQXNIO0lB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LENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMseUJBQXlCLEVBQUMsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCx3RkFBd0Y7UUFDeEYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO21IQTlJVSx5QkFBeUI7Z0VBQXpCLHlCQUF5QixXQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IERvY3VtZW50RGF0YSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kb2N1bWVudC9kb2N1bWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2Uubm90aWZpZXInO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUERGID0gJ3BkZic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IElNQUdFID0gJ2ltYWdlJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV09SRCA9ICd3b3JkJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhDRUwgPSAnZXhjZWwnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQT1dFUlBPSU5UID0gJ3Bvd2VycG9pbnQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBUWFQgPSAndHh0JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUlRGID0gJ3J0Zic7XG5cbiAgLy8gVGhpcyBkZWxheSBoYXMgYmVlbiBhZGRlZCB0byBnaXZlIGVub3VnaCB0aW1lIHRvIHRoZSB1c2VyIG9uIHRoZSBVSSB0byBzZWUgdGhlIGluZm8gbWVzc2FnZXMgb24gdGhlIGRvY3VtZW50IHVwbG9hZFxuICAvLyBmaWVsZCBmb3IgY2FzZXMgd2hlbiB1cGxvYWRzIGFyZSB2ZXJ5IGZhc3QuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJFU1BPTlNFX0RFTEFZID0gMTAwMDtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBpbWFnZXNMaXN0OiBzdHJpbmdbXSA9IFsnR0lGJywgJ0pQRycsICdKUEVHJywgJ1BORycsICdnaWYnLCAnanBnJywgJ2pwZWcnLCAncG5nJ107XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHdvcmRMaXN0OiBzdHJpbmdbXSA9IFsnRE9DJywgJ0RPQ1gnLCAnZG9jJywgJ2RvY3gnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZXhjZWxMaXN0OiBzdHJpbmdbXSA9IFsnWExTJywgJ1hMU1gnLCAneGxzJywgJ3hsc3gnXTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgcG93ZXJwb2ludExpc3Q6IHN0cmluZ1tdID0gWydQUFQnLCAnUFBUWCcsICdwcHQnLCAncHB0eCddO1xuXG4gIHByaXZhdGUgY2FzZVR5cGVJZDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXJTZXJ2aWNlOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBqdXJpc2RpY3Rpb25TZXJ2aWNlOiBKdXJpc2RpY3Rpb25TZXJ2aWNlXG4gICkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jYXNlTm90aWZpZXJTZXJ2aWNlLmNhc2VWaWV3LnBpcGUodGFrZSgxKSksXG4gICAgICB0aGlzLmp1cmlzZGljdGlvblNlcnZpY2UuZ2V0U2VsZWN0ZWRKdXJpc2RpY3Rpb24oKVxuICAgIF0pLnN1YnNjcmliZSgoW2Nhc2VEZXRhaWxzLCBqdXJpc2RpY3Rpb25dKSA9PiB7XG4gICAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uaWQ7XG4gICAgICB9XG4gICAgICBpZiAoanVyaXNkaWN0aW9uKSB7XG4gICAgICAgIGlmIChqdXJpc2RpY3Rpb24uY3VycmVudENhc2VUeXBlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0ganVyaXNkaWN0aW9uLmN1cnJlbnRDYXNlVHlwZS5pZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy9pZiB0aGUgdXNlciByZWZyZXNoZXMgb24gdGhlIGNhc2UgY3JlYXRpb24gcGFnZSB0aGUgYWJvdmUgbG9naWMgd2lsbCBub3Qgd29yaywgd2UgY2FuIGdldCB0aGUgY2FzZVR5cGVJZCBmcm9tIHRoZSBVUkxcbiAgICAgIGlmICghdGhpcy5jYXNlVHlwZUlkKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCcvY2FzZS1jcmVhdGUvJykgPiAtMSkge1xuICAgICAgICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZUlkID0gcGFydHNbcGFydHMuaW5kZXhPZignY2FzZS1jcmVhdGUnKSArIDJdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBsb2FkRmlsZShmb3JtRGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0RG9jU3RvcmVVcmwoKTtcbiAgICAvLyBEbyBub3Qgc2V0IGFueSBoZWFkZXJzLCBzdWNoIGFzIFwiQWNjZXB0XCIgb3IgXCJDb250ZW50LVR5cGVcIiwgd2l0aCBudWxsIHZhbHVlczsgdGhpcyBpcyBub3QgcGVybWl0dGVkIHdpdGggdGhlXG4gICAgLy8gQW5ndWxhciBIdHRwQ2xpZW50IGluIEBhbmd1bGFyL2NvbW1vbi9odHRwLiBKdXN0IGNyZWF0ZSBhbmQgcGFzcyBhIG5ldyBIdHRwSGVhZGVycyBvYmplY3QuIEFuZ3VsYXIgd2lsbCBhZGQgdGhlXG4gICAgLy8gY29ycmVjdCBoZWFkZXJzIGFuZCB2YWx1ZXMgYXV0b21hdGljYWxseVxuICAgIHRoaXMuYXBwQ29uZmlnLmxvZ01lc3NhZ2UoYFVwbG9hZGluZyBkb2N1bWVudCBmb3IgY2FzZSB0eXBlOiAke3RoaXMuY2FzZVR5cGVJZH0sIHdpdGggdXJsOiAke3VybH1gKTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCBmb3JtRGF0YSwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShkZWxheShEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlJFU1BPTlNFX0RFTEFZKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWVkaWFWaWV3ZXJJbmZvKGRvY3VtZW50RmllbGRWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZWRpYVZpZXdlckluZm8gPSB7XG4gICAgICBkb2N1bWVudF9iaW5hcnlfdXJsOiB0aGlzLnRyYW5zZm9ybURvY3VtZW50VXJsKGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9iaW5hcnlfdXJsKSxcbiAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUsXG4gICAgICBjb250ZW50X3R5cGU6IHRoaXMuZ2V0Q29udGVudFR5cGUoZG9jdW1lbnRGaWVsZFZhbHVlKSxcbiAgICAgIGFubm90YXRpb25fYXBpX3VybDogdGhpcy5hcHBDb25maWcuZ2V0QW5ub3RhdGlvbkFwaVVybCgpLFxuICAgICAgY2FzZV9pZDogZG9jdW1lbnRGaWVsZFZhbHVlLmlkLFxuICAgICAgY2FzZV9qdXJpc2RpY3Rpb246IGRvY3VtZW50RmllbGRWYWx1ZS5qdXJpc2RpY3Rpb25cbiAgICB9O1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtZWRpYVZpZXdlckluZm8pO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRlbnRUeXBlKGRvY3VtZW50RmllbGRWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBsZXQgZmlsZUV4dGVuc2lvbiA9ICc8dW5rbm93bj4nO1xuICAgIGlmIChkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gZG9jdW1lbnRGaWVsZFZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICBpZiAocG9zaXRpb24gPT09IGRvY3VtZW50RmllbGRWYWx1ZS5kb2N1bWVudF9maWxlbmFtZS5sZW5ndGgpIHtcbiAgICAgICAgZmlsZUV4dGVuc2lvbiA9ICcnO1xuICAgICAgfSBlbHNlIGlmIChwb3NpdGlvbiA+PSAwKSB7XG4gICAgICAgIGZpbGVFeHRlbnNpb24gPSBkb2N1bWVudEZpZWxkVmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUuc2xpY2UocG9zaXRpb24gKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuaXNJbWFnZShmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuSU1BR0U7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzV29yZChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuV09SRDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNFeGNlbChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuRVhDRUw7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzUG93ZXJwb2ludChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UuUE9XRVJQT0lOVDtcbiAgICB9IGVsc2UgaWYgKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gJ3R4dCcpIHtcbiAgICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlRYVDtcbiAgICB9IGVsc2UgaWYgKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gJ3J0ZicpIHtcbiAgICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlJURjtcbiAgICB9IGVsc2UgaWYgKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gJ3BkZicpIHtcbiAgICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLlBERjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpbGVFeHRlbnNpb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSW1hZ2UoaW1hZ2VUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS5pbWFnZXNMaXN0LmZpbmQoZSA9PiBlID09PSBpbWFnZVR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNXb3JkKHdvcmRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZS53b3JkTGlzdC5maW5kKGUgPT4gZSA9PT0gd29yZFR5cGUpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNFeGNlbChleGNlbFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLmV4Y2VsTGlzdC5maW5kKGUgPT4gZSA9PT0gZXhjZWxUeXBlKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGlzUG93ZXJwb2ludChwb3dlcnBvaW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UucG93ZXJwb2ludExpc3QuZmluZChlID0+IGUgPT09IHBvd2VycG9pbnRUeXBlKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Eb2N1bWVudFVybChkb2N1bWVudEJpbmFyeVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZW1vdGVIcnNQYXR0ZXJuID0gbmV3IFJlZ0V4cCh0aGlzLmFwcENvbmZpZy5nZXRSZW1vdGVIcnNVcmwoKSk7XG4gICAgZG9jdW1lbnRCaW5hcnlVcmwgPSBkb2N1bWVudEJpbmFyeVVybC5yZXBsYWNlKHJlbW90ZUhyc1BhdHRlcm4sIHRoaXMuYXBwQ29uZmlnLmdldEhyc1VybCgpKTtcbiAgICBjb25zdCByZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRQYXR0ZXJuID0gbmV3IFJlZ0V4cCh0aGlzLmFwcENvbmZpZy5nZXRSZW1vdGVEb2N1bWVudE1hbmFnZW1lbnRVcmwoKSk7XG4gICAgcmV0dXJuIGRvY3VtZW50QmluYXJ5VXJsLnJlcGxhY2UocmVtb3RlRG9jdW1lbnRNYW5hZ2VtZW50UGF0dGVybiwgdGhpcy5nZXREb2NTdG9yZVVybCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9jU3RvcmVVcmwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0RvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50TWFuYWdlbWVudFVybFYyKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudE1hbmFnZW1lbnRVcmwoKTtcbiAgfVxuXG4gIC8vIHJldHVybiBmYWxzZSA9PSBkb2N1bWVudCBzaG91bGQgbm90IHVzZSBDREFNXG4gIC8vIHJldHVybiB0cnVlID09IGRvY3VtZW50IHNob3VsZCB1c2UgQ0RBTVxuICBwdWJsaWMgaXNEb2N1bWVudFNlY3VyZU1vZGVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucyA9IHRoaXMuYXBwQ29uZmlnLmdldENkYW1FeGNsdXNpb25MaXN0KCk/LnNwbGl0KCcsJyk7XG4gICAgY29uc3QgaXNEb2N1bWVudE9uRXhjbHVzaW9uTGlzdCA9IGRvY3VtZW50U2VjdXJlTW9kZUNhc2VUeXBlRXhjbHVzaW9ucz8uaW5jbHVkZXModGhpcy5jYXNlVHlwZUlkKTtcbiAgICBpZiAoIWlzRG9jdW1lbnRPbkV4Y2x1c2lvbkxpc3Qpe1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGlmIGRvY3VtZW50U2VjdXJlTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgYW5kIGNhc2UgaXMgaW4gdGhlIGV4Y2x1c2lvbiBsaXN0LCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -8,9 +8,9 @@ import * as i1$1 from '@angular/router';
8
8
  import { RouterModule, NavigationStart, NavigationEnd } from '@angular/router';
9
9
  import * as i4 from '@angular/forms';
10
10
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
11
- import { BehaviorSubject, throwError, Subject, EMPTY, Observable, of, combineLatest, timer, forkJoin, fromEvent, Subscription } from 'rxjs';
11
+ import { BehaviorSubject, throwError, Subject, EMPTY, Observable, skip, of, combineLatest, timer, forkJoin, fromEvent, Subscription } from 'rxjs';
12
12
  import * as i1$2 from '@angular/common/http';
13
- import { HttpErrorResponse, HttpHeaders, HttpParams, HttpStatusCode } from '@angular/common/http';
13
+ import { HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
14
14
  import { distinctUntilChanged, catchError, map, publish, refCount, switchMap, debounceTime, take, delay, finalize, timeout, mergeMap, retryWhen, tap, delayWhen, publishReplay, first, takeUntil, filter } from 'rxjs/operators';
15
15
  import { polling } from 'rx-polling-hmcts';
16
16
  import { Type, Exclude, Expose, plainToClassFromExist, plainToClass } from 'class-transformer';
@@ -6533,11 +6533,8 @@ class LabelSubstitutorDirective {
6533
6533
  this.initialHintText = this.caseField.hint_text;
6534
6534
  this.caseField.originalLabel = this.caseField.label;
6535
6535
  this.formGroup = this.formGroup || new FormGroup({});
6536
- this.languageSubscription = this.rpxTranslationService.language$.subscribe(() => {
6537
- // timeout is required to prevent race conditions with translation pipe
6538
- setTimeout(() => {
6539
- this.onLanguageChange();
6540
- }, 100);
6536
+ this.languageSubscription = this.rpxTranslationService.language$.pipe(skip(1)).subscribe(() => {
6537
+ this.onLanguageChange();
6541
6538
  });
6542
6539
  this.applySubstitutions();
6543
6540
  }
@@ -7346,7 +7343,6 @@ class DocumentManagementService {
7346
7343
  isDocumentSecureModeEnabled() {
7347
7344
  const documentSecureModeCaseTypeExclusions = this.appConfig.getCdamExclusionList()?.split(',');
7348
7345
  const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(this.caseTypeId);
7349
- this.appConfig.logMessage(`isDocumentOnExclusionList: ${isDocumentOnExclusionList}`);
7350
7346
  if (!isDocumentOnExclusionList) {
7351
7347
  return true;
7352
7348
  }
@@ -13079,8 +13075,8 @@ class CaseFileViewFieldComponent {
13079
13075
  this.caseFileViewService.updateDocumentCategory(cid, this.caseVersion, data.document.attribute_path, data.newCategory)
13080
13076
  .pipe(finalize(() => {
13081
13077
  this.loadingService.unregister(loadingToken);
13082
- }), catchError((err) => {
13083
- this.errorMessages = [this.moveDocumentError(err)];
13078
+ }), catchError(() => {
13079
+ this.errorMessages = ['You do not have permission to move this document to the selected folder.'];
13084
13080
  return of(null);
13085
13081
  }))
13086
13082
  .subscribe(res => {
@@ -13104,31 +13100,6 @@ class CaseFileViewFieldComponent {
13104
13100
  isIcpEnabled() {
13105
13101
  return this.icpEnabled && ((this.icp_jurisdictions?.length < 1) || this.icp_jurisdictions.includes(this.caseNotifier?.cachedCaseView?.case_type?.jurisdiction.id));
13106
13102
  }
13107
- moveDocumentError(err) {
13108
- const defaultMsg = 'We couldn\'t move the document. Please try again.';
13109
- if (!(err instanceof HttpErrorResponse)) {
13110
- return defaultMsg;
13111
- }
13112
- switch (err.status) {
13113
- case HttpStatusCode.BadRequest:
13114
- // e.g. malformed PUT, invalid attribute_path, invalid target category
13115
- return 'The request was invalid. Check the document path and destination folder.';
13116
- case HttpStatusCode.Conflict:
13117
- // optimistic concurrency / stale case version
13118
- return 'This case changed since you opened it. Refresh and try again.';
13119
- case HttpStatusCode.NotFound:
13120
- return 'The document or destination folder could not be found.';
13121
- case HttpStatusCode.Forbidden:
13122
- case HttpStatusCode.Unauthorized:
13123
- return 'You do not have permission to move this document to the selected folder.';
13124
- case HttpStatusCode.ServiceUnavailable:
13125
- case HttpStatusCode.GatewayTimeout:
13126
- return 'The service is temporarily unavailable. Please try again in a moment.';
13127
- default:
13128
- // Any other status (including 500)
13129
- return defaultMsg;
13130
- }
13131
- }
13132
13103
  static ɵfac = function CaseFileViewFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
13133
13104
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFieldComponent, selectors: [["ccd-case-file-view-field"]], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "govuk-grid-column-two-thirds", 4, "ngIf"], ["id", "case-file-view-field-errors", "data-module", "govuk-error-summary", 1, "govuk-error-summary", "govuk-!-margin-bottom-4"], ["role", "alert"], [1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["type", "button", 1, "govuk-js-link"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "clickedDocument", "moveDocument", "categoriesAndDocuments", "allowMoving"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height", "caseId", "multimediaPlayerEnabled", "enableICP"]], template: function CaseFileViewFieldComponent_Template(rf, ctx) { if (rf & 1) {
13134
13105
  i0.ɵɵtemplate(0, CaseFileViewFieldComponent_ng_container_0_Template, 8, 1, "ng-container", 0)(1, CaseFileViewFieldComponent_div_1_Template, 5, 0, "div", 1)(2, CaseFileViewFieldComponent_div_2_Template, 9, 3, "div", 0);
@@ -13144,7 +13115,7 @@ class CaseFileViewFieldComponent {
13144
13115
  type: Component,
13145
13116
  args: [{ selector: 'ccd-case-file-view-field', template: "<ng-container *ngIf=\"errorMessages?.length\">\n <div\n id=\"case-file-view-field-errors\"\n class=\"govuk-error-summary govuk-!-margin-bottom-4\"\n data-module=\"govuk-error-summary\"\n >\n <div role=\"alert\">\n <h2 class=\"govuk-error-summary__title\">There is a problem</h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let errorMessage of errorMessages\">\n <button type=\"button\" class=\"govuk-js-link\">{{ errorMessage }}</button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</ng-container>\n\n<div\n *ngIf=\"getCategoriesAndDocumentsError\"\n class=\"govuk-grid-column-two-thirds\"\n>\n <h1 class=\"govuk-heading-xl\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\">Try again later.</p>\n</div>\n<div *ngIf=\"!getCategoriesAndDocumentsError\">\n <h2 class=\"govuk-heading-l\">Case file</h2>\n <div class=\"govuk-form-group\" id=\"case-file-view\">\n <!-- Document tree -->\n <div class=\"document-tree-container\">\n <ccd-case-file-view-folder \n class=\"document-tree-container__tree\"\n [categoriesAndDocuments]=\"categoriesAndDocuments$\"\n (clickedDocument)=\"setMediaViewerFile($event); resetErrorMessages()\" \n (moveDocument)=\"moveDocument($event)\"\n [allowMoving]=\"allowMoving\">\n </ccd-case-file-view-folder>\n </div>\n <!-- Slider -->\n <div class=\"slider\"></div>\n <!-- Media viewer -->\n <div class=\"media-viewer-container\">\n <ng-container *ngIf=\"currentDocument\">\n <mv-media-viewer\n [url]=\"currentDocument.document_binary_url\"\n [downloadFileName]=\"currentDocument.document_filename\"\n [showToolbar]=\"true\"\n [contentType]=\"currentDocument.content_type\"\n [enableAnnotations]=\"true\"\n [enableRedactions]=\"true\"\n [height]=\"'94.5vh'\"\n [caseId]=\"caseId\"\n [multimediaPlayerEnabled]=\"true\"\n [enableICP]=\"isIcpEnabled()\"\n >\n </mv-media-viewer>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["#case-file-view{display:flex;border:2px solid #C9C9C9;height:100vh;position:relative}#case-file-view .document-tree-container{background-color:#faf8f8;width:30%;min-height:400px;min-width:10%}#case-file-view .slider{width:.2%;background-color:#6b6b6b}#case-file-view .slider:hover,#case-file-view .slider:focus{cursor:col-resize}#case-file-view .media-viewer-container{background-color:#dee0e2;flex:1 1 0;overflow:hidden}\n"] }]
13146
13117
  }], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
13147
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 18 }); })();
13118
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 17 }); })();
13148
13119
 
13149
13120
  function ReadCaseFlagFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
13150
13121
  const _r1 = i0.ɵɵgetCurrentView();
@@ -15277,6 +15248,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
15277
15248
  jurisdictionId;
15278
15249
  caseTypeId;
15279
15250
  caseTypeExclusions;
15251
+ caseId;
15280
15252
  // Should the file upload use CDAM
15281
15253
  fileSecureModeOn = false;
15282
15254
  constructor(appConfig, caseNotifier, documentManagement, dialog, fileUploadStateService, jurisdictionService) {
@@ -15297,6 +15269,7 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
15297
15269
  if (caseDetails) {
15298
15270
  this.caseTypeId = caseDetails?.case_type?.id;
15299
15271
  this.jurisdictionId = caseDetails?.case_type?.jurisdiction?.id;
15272
+ this.caseId = caseDetails?.case_id;
15300
15273
  }
15301
15274
  if (jurisdiction) {
15302
15275
  this.jurisdictionId = jurisdiction.id;
@@ -15315,12 +15288,8 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
15315
15288
  }
15316
15289
  // use the documentManagement service to check if the document upload should use CDAM
15317
15290
  if (this.documentManagement.isDocumentSecureModeEnabled()) {
15318
- this.appConfig.logMessage(`CDAM is enabled for case with case ref:: ${caseDetails?.case_id}`);
15319
15291
  this.fileSecureModeOn = true;
15320
15292
  }
15321
- else {
15322
- this.appConfig.logMessage(`CDAM is disabled for case with case ref:: ${caseDetails?.case_id}`);
15323
- }
15324
15293
  this.dialogConfig = initDialog();
15325
15294
  let document = this.caseField.value || { document_url: null, document_binary_url: null, document_filename: null };
15326
15295
  document = this.fileSecureModeOn && !document.document_hash ? { ...document, document_hash: null } : document;
@@ -15554,6 +15523,13 @@ class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
15554
15523
  return documentUpload;
15555
15524
  }
15556
15525
  handleDocumentUploadResult(result) {
15526
+ // use the documentManagement service to check if the document upload should use CDAM
15527
+ if (this.documentManagement.isDocumentSecureModeEnabled()) {
15528
+ this.appConfig.logMessage(`CDAM is enabled for case with case ref:: ${this.caseId}`);
15529
+ }
15530
+ else {
15531
+ this.appConfig.logMessage(`CDAM is disabled for case with case ref:: ${this.caseId}`);
15532
+ }
15557
15533
  if (!this.uploadedDocument) {
15558
15534
  if (this.fileSecureModeOn) {
15559
15535
  this.createDocumentForm({ document_url: null, document_binary_url: null, document_filename: null, document_hash: null });
@@ -30140,7 +30116,7 @@ class ReadFieldsFilterPipe {
30140
30116
  else if (field.show_condition) {
30141
30117
  let cond;
30142
30118
  if (fieldId && field.show_condition.indexOf(`${fieldId}.`) > -1 && !formGroupAvailable && !!Object.keys(formValue).length) {
30143
- const search = `${fieldId}.`;
30119
+ const search = `/.*${fieldId}./`;
30144
30120
  const searchRegExp = new RegExp(search, 'g');
30145
30121
  const replaceWith = '';
30146
30122
  cond = ShowCondition.getInstance(field.show_condition.replace(searchRegExp, replaceWith));