@o3r/components 10.4.20 → 10.4.22

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.
@@ -86,7 +86,7 @@ export class PlaceholderTemplateResponseEffect {
86
86
  break;
87
87
  }
88
88
  case 'fact': {
89
- template = template.replace(ejsVar, factMap[vars[varName].value] ?? '');
89
+ template = template.replace(ejsVar, factMapFromVars[varName] ?? '');
90
90
  break;
91
91
  }
92
92
  case 'localisation': {
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
130
130
  }] }, { type: i5.LocalizationService, decorators: [{
131
131
  type: Optional
132
132
  }] }] });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIucnVsZXMtZW5naW5lLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy1lbmdpbmUvcGxhY2Vob2xkZXIucnVsZXMtZW5naW5lLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFHNUIsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNsQyw4QkFBOEIsRUFDL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFJckQsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQUV6Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQ0FBaUM7SUFvRDVDLFlBQ21CLFFBQWlCLEVBQ2pCLEtBQXFDLEVBQ3pCLGtCQUFtRCxFQUNuRCxxQkFBbUQsRUFDbkQsa0JBQThDO1FBSjFELGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFpQztRQUNuRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQThCO1FBQ25ELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBNEI7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Q0YsTUFBTTt3QkFDUixDQUFDO3dCQUNELE9BQVEsQ0FBQyxDQUFDLENBQUM7NEJBQ1QsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDOzRCQUN4QixNQUFNO3dCQUNSLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3JCLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxNQUFNLENBQ25DLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQ25CLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUN4RSxRQUFRLENBQ1Q7Z0JBQ0QsZ0JBQWdCO2FBQ2pCLENBQUMsQ0FBQyxDQUNKLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztrSUF6SVUsaUNBQWlDO3NJQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVU7OzBCQXdETixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIGNhbmNlbFBsYWNlaG9sZGVyUmVxdWVzdCxcbiAgZmFpbFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSxcbiAgUGxhY2Vob2xkZXJSZXF1ZXN0U3RvcmUsXG4gIFBsYWNlaG9sZGVyVmFyaWFibGUsXG4gIHNlbGVjdFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eVVzYWdlLFxuICBzZXRQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlGcm9tVXJsLFxuICB1cGRhdGVQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlcbn0gZnJvbSAnQG8zci9jb21wb25lbnRzJztcbmltcG9ydCB7ZnJvbUFwaUVmZmVjdFN3aXRjaE1hcEJ5SWR9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQge0R5bmFtaWNDb250ZW50U2VydmljZX0gZnJvbSAnQG8zci9keW5hbWljLWNvbnRlbnQnO1xuaW1wb3J0IHtMb2NhbGl6YXRpb25TZXJ2aWNlfSBmcm9tICdAbzNyL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1J1bGVzRW5naW5lUnVubmVyU2VydmljZX0gZnJvbSAnQG8zci9ydWxlcy1lbmdpbmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3RvcmV9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEpTT05QYXRoIH0gZnJvbSAnanNvbnBhdGgtcGx1cyc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgYXN5bmMgUGxhY2Vob2xkZXJUZW1wbGF0ZSBhY3Rpb25zXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQbGFjZWhvbGRlclRlbXBsYXRlUmVzcG9uc2VFZmZlY3Qge1xuICAvKipcbiAgICogU2V0IHRoZSBQbGFjZWhvbGRlclJlcXVlc3QgZW50aXR5IHdpdGggdGhlIHJlcGx5IGNvbnRlbnQsIGRpc3BhdGNoIGZhaWxQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHkgaWYgaXQgY2F0Y2hlcyBhIGZhaWx1cmVcbiAgICogSGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIHRoZSBIVE1MIGNvbnRlbnQgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIGNyZWF0ZXMgdGhlIGNvbWJpbmUgbGF0ZXN0IGZyb20gZmFjdHMgbGlzdCBpZiBuZWVkZWRcbiAgICogRGlzYWJsZXMgdW51c2VkIHRlbXBsYXRlcyByZWZyZXNoIGlmIHVzZWQgaXMgZmFsc2UgaW4gdGhlIHN0b3JlXG4gICAqL1xuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5RnJvbVVybCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoc2V0UGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5RnJvbVVybCksXG4gICAgICBmcm9tQXBpRWZmZWN0U3dpdGNoTWFwQnlJZChcbiAgICAgICAgKHRlbXBsYXRlUmVzcG9uc2UsIGFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGZhY3RzID0gdGVtcGxhdGVSZXNwb25zZS52YXJzID8gT2JqZWN0LmVudHJpZXModGVtcGxhdGVSZXNwb25zZS52YXJzKS5maWx0ZXIoKFssIHZhcmlhYmxlXSkgPT4gdmFyaWFibGUudHlwZSA9PT0gJ2ZhY3QnKSA6IFtdO1xuICAgICAgICAgIGNvbnN0IGZhY3RzU3RyZWFtc0xpc3QgPSB0aGlzLnJ1bGVzRW5naW5lU2VydmljZSA/IGZhY3RzLm1hcCgoW3Zhck5hbWUsIGZhY3RdKSA9PlxuICAgICAgICAgICAgdGhpcy5ydWxlc0VuZ2luZVNlcnZpY2UhLmVuZ2luZS5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbShmYWN0LnZhbHVlKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKGZhY3RWYWx1ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICB2YXJOYW1lLFxuICAgICAgICAgICAgICAgIGZhY3ROYW1lOiBmYWN0LnZhbHVlLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICAgICAgICAgICAgZmFjdFZhbHVlOiAoZmFjdC5wYXRoICYmIGZhY3RWYWx1ZSkgPyBKU09OUGF0aCh7IHdyYXA6IGZhbHNlLCBqc29uOiBmYWN0VmFsdWUsIHBhdGg6IGZhY3QucGF0aCB9KSA6IGZhY3RWYWx1ZVxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT4gcHJldmlvdXMuZmFjdFZhbHVlID09PSBjdXJyZW50LmZhY3RWYWx1ZSlcbiAgICAgICAgICAgICkpIDogW107XG5cbiAgICAgICAgICBjb25zdCBmYWN0c1N0cmVhbXNMaXN0JCA9IGZhY3RzU3RyZWFtc0xpc3QubGVuZ3RoID8gY29tYmluZUxhdGVzdChmYWN0c1N0cmVhbXNMaXN0KSA6IG9mKFtdKTtcbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZmFjdHNTdHJlYW1zTGlzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KHNlbGVjdFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eVVzYWdlKGFjdGlvbi5pZCkpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSldKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbZmFjdHNVc2VkSW5UZW1wbGF0ZSwgcGxhY2Vob2xkZXJSZXF1ZXN0VXNhZ2VdKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghcGxhY2Vob2xkZXJSZXF1ZXN0VXNhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVuZGVyZWRIVE1MJCh0ZW1wbGF0ZVJlc3BvbnNlLnRlbXBsYXRlLCB0ZW1wbGF0ZVJlc3BvbnNlLnZhcnMsIGZhY3RzVXNlZEluVGVtcGxhdGUpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh7cmVuZGVyZWRUZW1wbGF0ZSwgdW5rbm93blR5cGVGb3VuZH0pID0+XG4gICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgaW5zdGVhZCBvZiBzZXQgYmVjYXVzZSB1c2VkIGFscmVhZHkgc2V0IGJ5IHRoZSB1cGRhdGUgZnJvbSB1cmwgYWN0aW9uXG4gICAgICAgICAgICAgICAgICB1cGRhdGVQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHkoe1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi50ZW1wbGF0ZVJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkVXJsOiBhY3Rpb24ucmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGFjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICByZW5kZXJlZFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgICAgICAgIHVua25vd25UeXBlRm91bmRcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdElkOiBhY3Rpb24ucmVxdWVzdElkXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yLCBhY3Rpb24pID0+IG9mKGZhaWxQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHkoe2lkczogW2FjdGlvbi5pZF0sIGVycm9yLCByZXF1ZXN0SWQ6IGFjdGlvbi5yZXF1ZXN0SWR9KSksXG4gICAgICAgIChyZXF1ZXN0SWRQYXlsb2FkLCBhY3Rpb24pID0+IGNhbmNlbFBsYWNlaG9sZGVyUmVxdWVzdCh7Li4ucmVxdWVzdElkUGF5bG9hZCwgaWQ6IGFjdGlvbi5pZH0pXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8UGxhY2Vob2xkZXJSZXF1ZXN0U3RvcmU+LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgcnVsZXNFbmdpbmVTZXJ2aWNlOiBSdWxlc0VuZ2luZVJ1bm5lclNlcnZpY2UgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZHluYW1pY0NvbnRlbnRTZXJ2aWNlOiBEeW5hbWljQ29udGVudFNlcnZpY2UgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlIHwgbnVsbCkge1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGh0bWwgdGVtcGxhdGUsIHJlcGxhY2luZyBmYWN0cyBhbmQgdXJscyBhbmQgbG9jYWxpemF0aW9uS2V5c1xuICAgKiBAcGFyYW0gdGVtcGxhdGVcbiAgICogQHBhcmFtIHZhcnNcbiAgICogQHBhcmFtIGZhY3RzXG4gICAqL1xuICBwcml2YXRlIGdldFJlbmRlcmVkSFRNTCQodGVtcGxhdGU/OiBzdHJpbmcsIHZhcnM/OiBSZWNvcmQ8c3RyaW5nLCBQbGFjZWhvbGRlclZhcmlhYmxlPiwgZmFjdHM/OiB7IHZhck5hbWU6IHN0cmluZzsgZmFjdE5hbWU6IHN0cmluZzsgZmFjdFZhbHVlOiBhbnkgfVtdKSB7XG4gICAgbGV0IHVua25vd25UeXBlRm91bmQgPSBmYWxzZTtcbiAgICBjb25zdCBmYWN0TWFwID0gKGZhY3RzIHx8IFtdKS5yZWR1Y2UoKG1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGZhY3QpID0+IHtcbiAgICAgIG1hcHBpbmdbZmFjdC5mYWN0TmFtZV0gPSBmYWN0LmZhY3RWYWx1ZTtcbiAgICAgIHJldHVybiBtYXBwaW5nO1xuICAgIH0sIHt9KTtcbiAgICBjb25zdCBmYWN0TWFwRnJvbVZhcnMgPSAoZmFjdHMgfHwgW10pLnJlZHVjZSgobWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgZmFjdCkgPT4ge1xuICAgICAgbWFwcGluZ1tmYWN0LnZhck5hbWVdID0gZmFjdC5mYWN0VmFsdWU7XG4gICAgICByZXR1cm4gbWFwcGluZztcbiAgICB9LCB7fSk7XG4gICAgY29uc3QgcmVwbGFjZW1lbnRzJDogT2JzZXJ2YWJsZTx7IGVqc1ZhcjogUmVnRXhwOyB2YWx1ZTogc3RyaW5nIH0gfCBudWxsPltdID0gW107XG4gICAgaWYgKHZhcnMgJiYgdGVtcGxhdGUpIHtcbiAgICAgIGZvciAoY29uc3QgdmFyTmFtZSBpbiB2YXJzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFycywgdmFyTmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBlanNWYXIgPSBuZXcgUmVnRXhwKGA8JT1cXFxccyoke3Zhck5hbWV9XFxcXHMqJT5gLCAnZycpO1xuICAgICAgICAgIHN3aXRjaCAodmFyc1t2YXJOYW1lXS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdyZWxhdGl2ZVVybCc6IHtcbiAgICAgICAgICAgICAgcmVwbGFjZW1lbnRzJC5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY0NvbnRlbnRTZXJ2aWNlPy5nZXRNZWRpYVBhdGhTdHJlYW0odmFyc1t2YXJOYW1lXS52YWx1ZSkucGlwZShcbiAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICBtYXAoKHZhbHVlOiBzdHJpbmcpID0+ICh7ZWpzVmFyLCB2YWx1ZX0pKVxuICAgICAgICAgICAgICAgICkgfHwgb2YoeyBlanNWYXIsIHZhbHVlOiB2YXJzW3Zhck5hbWVdLnZhbHVlIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZnVsbFVybCc6IHtcbiAgICAgICAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZS5yZXBsYWNlKGVqc1ZhciwgdmFyc1t2YXJOYW1lXS52YWx1ZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZmFjdCc6IHtcbiAgICAgICAgICAgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZS5yZXBsYWNlKGVqc1ZhciwgZmFjdE1hcFt2YXJzW3Zhck5hbWVdLnZhbHVlXSA/PyAnJyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbG9jYWxpc2F0aW9uJzoge1xuICAgICAgICAgICAgICBjb25zdCBsaW5rZWRWYXJzID0gKHZhcnNbdmFyTmFtZV0udmFycyB8fCBbXSkucmVkdWNlKChhY2M6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIHBhcmFtZXRlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IHZhcnNbcGFyYW1ldGVyXS52YWx1ZTtcbiAgICAgICAgICAgICAgICBhY2NbcGFyYW1OYW1lXSA9IGZhY3RNYXBbcGFyYW1OYW1lXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgICAgICAgIGNvbnN0IGxpbmtlZFBhcmFtcyA9IChPYmplY3QuZW50cmllcyh2YXJzW3Zhck5hbWVdLnBhcmFtZXRlcnMgfHwge30pKS5yZWR1Y2UoKGFjYzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgW3BhcmFtS2V5LCBwYXJhbVZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGFjY1twYXJhbUtleV0gPSBmYWN0TWFwRnJvbVZhcnNbcGFyYW1WYWx1ZV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgfSwgbGlua2VkVmFycyk7XG4gICAgICAgICAgICAgIHJlcGxhY2VtZW50cyQucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZSA/XG4gICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUodmFyc1t2YXJOYW1lXS52YWx1ZSwgbGlua2VkUGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAodmFsdWUgPyB7IGVqc1ZhciwgdmFsdWUgfSA6IG51bGwpKVxuICAgICAgICAgICAgICAgICAgKSA6XG4gICAgICAgICAgICAgICAgICBvZihudWxsKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQgOiB7XG4gICAgICAgICAgICAgIHVua25vd25UeXBlRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcGxhY2VtZW50cyQubGVuZ3RoID4gMCAmJiAhIXRlbXBsYXRlID9cbiAgICAgIGNvbWJpbmVMYXRlc3QocmVwbGFjZW1lbnRzJCkucGlwZShcbiAgICAgICAgbWFwKChyZXBsYWNlbWVudHMpID0+ICh7XG4gICAgICAgICAgcmVuZGVyZWRUZW1wbGF0ZTogcmVwbGFjZW1lbnRzLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIHJlcGxhY2VtZW50KSA9PlxuICAgICAgICAgICAgICByZXBsYWNlbWVudCA/IGFjYy5yZXBsYWNlKHJlcGxhY2VtZW50LmVqc1ZhciwgcmVwbGFjZW1lbnQudmFsdWUpIDogYWNjLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgICApLFxuICAgICAgICAgIHVua25vd25UeXBlRm91bmRcbiAgICAgICAgfSkpXG4gICAgICApIDogb2Yoe3JlbmRlcmVkVGVtcGxhdGU6IHRlbXBsYXRlLCB1bmtub3duVHlwZUZvdW5kfSk7XG4gIH1cbn1cbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIucnVsZXMtZW5naW5lLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy1lbmdpbmUvcGxhY2Vob2xkZXIucnVsZXMtZW5naW5lLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFHNUIsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNsQyw4QkFBOEIsRUFDL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFJckQsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQUV6Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxpQ0FBaUM7SUFvRDVDLFlBQ21CLFFBQWlCLEVBQ2pCLEtBQXFDLEVBQ3pCLGtCQUFtRCxFQUNuRCxxQkFBbUQsRUFDbkQsa0JBQThDO1FBSjFELGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFpQztRQUNuRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQThCO1FBQ25ELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBNEI7UUF4RDdFOzs7O1dBSUc7UUFDSSx3Q0FBbUMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsa0NBQWtDLENBQUMsRUFDMUMsMEJBQTBCLENBQ3hCLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BJLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUMvRSxJQUFJLENBQUMsa0JBQW1CLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3pFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEIsT0FBTztnQkFDUCxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ3BCLG1DQUFtQztnQkFDbkMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUM5RyxDQUFDLENBQUMsRUFDSCxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUN0RixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVWLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sYUFBYSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUNBQW1DLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1SSxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7b0JBQzdCLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FDdEcsR0FBRyxDQUFDLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEVBQUU7Z0JBQzNDLCtFQUErRTtnQkFDL0UsOEJBQThCLENBQUM7b0JBQzdCLE1BQU0sRUFBRTt3QkFDTixHQUFHLGdCQUFnQjt3QkFDbkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO3dCQUMvQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7d0JBQ2IsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7cUJBQ2pCO29CQUNELFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztpQkFDNUIsQ0FBQyxDQUNILENBQ0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxFQUMzRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBQyxHQUFHLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FDN0YsQ0FDRixDQUNGLENBQUM7SUFRRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxnQkFBZ0IsQ0FBQyxRQUFpQixFQUFFLElBQTBDLEVBQUUsS0FBK0Q7UUFDckosSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBK0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3RSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBK0IsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNyRixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDdkMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxhQUFhLEdBQTJELEVBQUUsQ0FBQztRQUNqRixJQUFJLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxPQUFPLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDMUQsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQzNCLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQzs0QkFDbkIsYUFBYSxDQUFDLElBQUksQ0FDaEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3RFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUMxQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ2hELENBQUM7NEJBQ0YsTUFBTTt3QkFDUixDQUFDO3dCQUNELEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQzs0QkFDZixRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUN6RCxNQUFNO3dCQUNSLENBQUM7d0JBQ0QsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDOzRCQUNaLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQ3BFLE1BQU07d0JBQ1IsQ0FBQzt3QkFDRCxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUM7NEJBQ3BCLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUEyQixFQUFFLFNBQVMsRUFBRSxFQUFFO2dDQUM5RixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDO2dDQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dDQUNwQyxPQUFPLEdBQUcsQ0FBQzs0QkFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7NEJBQ1AsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUEyQixFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7Z0NBQ25JLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7Z0NBQzVDLE9BQU8sR0FBRyxDQUFDOzRCQUNiLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzs0QkFDZixhQUFhLENBQUMsSUFBSSxDQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQ0FDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUMsQ0FBQztnQ0FDSCxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ1gsQ0FBQzs0QkFDRixNQUFNO3dCQUNSLENBQUM7d0JBQ0QsT0FBUSxDQUFDLENBQUMsQ0FBQzs0QkFDVCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7NEJBQ3hCLE1BQU07d0JBQ1IsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDckIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FDbkIsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQ3hFLFFBQVEsQ0FDVDtnQkFDRCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDLENBQ0osQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO2tJQXpJVSxpQ0FBaUM7c0lBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFEN0MsVUFBVTs7MEJBd0ROLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGV9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHtcbiAgY2FuY2VsUGxhY2Vob2xkZXJSZXF1ZXN0LFxuICBmYWlsUGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5LFxuICBQbGFjZWhvbGRlclJlcXVlc3RTdG9yZSxcbiAgUGxhY2Vob2xkZXJWYXJpYWJsZSxcbiAgc2VsZWN0UGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5VXNhZ2UsXG4gIHNldFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eUZyb21VcmwsXG4gIHVwZGF0ZVBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eVxufSBmcm9tICdAbzNyL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtmcm9tQXBpRWZmZWN0U3dpdGNoTWFwQnlJZH0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7RHluYW1pY0NvbnRlbnRTZXJ2aWNlfSBmcm9tICdAbzNyL2R5bmFtaWMtY29udGVudCc7XG5pbXBvcnQge0xvY2FsaXphdGlvblNlcnZpY2V9IGZyb20gJ0BvM3IvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7UnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlfSBmcm9tICdAbzNyL3J1bGVzLWVuZ2luZSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTdG9yZX0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgSlNPTlBhdGggfSBmcm9tICdqc29ucGF0aC1wbHVzJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBhc3luYyBQbGFjZWhvbGRlclRlbXBsYXRlIGFjdGlvbnNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBsYWNlaG9sZGVyVGVtcGxhdGVSZXNwb25zZUVmZmVjdCB7XG4gIC8qKlxuICAgKiBTZXQgdGhlIFBsYWNlaG9sZGVyUmVxdWVzdCBlbnRpdHkgd2l0aCB0aGUgcmVwbHkgY29udGVudCwgZGlzcGF0Y2ggZmFpbFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSBpZiBpdCBjYXRjaGVzIGEgZmFpbHVyZVxuICAgKiBIYW5kbGVzIHRoZSByZW5kZXJpbmcgb2YgdGhlIEhUTUwgY29udGVudCBmcm9tIHRoZSB0ZW1wbGF0ZSBhbmQgY3JlYXRlcyB0aGUgY29tYmluZSBsYXRlc3QgZnJvbSBmYWN0cyBsaXN0IGlmIG5lZWRlZFxuICAgKiBEaXNhYmxlcyB1bnVzZWQgdGVtcGxhdGVzIHJlZnJlc2ggaWYgdXNlZCBpcyBmYWxzZSBpbiB0aGUgc3RvcmVcbiAgICovXG4gIHB1YmxpYyBzZXRQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlGcm9tVXJsJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShzZXRQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlGcm9tVXJsKSxcbiAgICAgIGZyb21BcGlFZmZlY3RTd2l0Y2hNYXBCeUlkKFxuICAgICAgICAodGVtcGxhdGVSZXNwb25zZSwgYWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmFjdHMgPSB0ZW1wbGF0ZVJlc3BvbnNlLnZhcnMgPyBPYmplY3QuZW50cmllcyh0ZW1wbGF0ZVJlc3BvbnNlLnZhcnMpLmZpbHRlcigoWywgdmFyaWFibGVdKSA9PiB2YXJpYWJsZS50eXBlID09PSAnZmFjdCcpIDogW107XG4gICAgICAgICAgY29uc3QgZmFjdHNTdHJlYW1zTGlzdCA9IHRoaXMucnVsZXNFbmdpbmVTZXJ2aWNlID8gZmFjdHMubWFwKChbdmFyTmFtZSwgZmFjdF0pID0+XG4gICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lU2VydmljZSEuZW5naW5lLnJldHJpZXZlT3JDcmVhdGVGYWN0U3RyZWFtKGZhY3QudmFsdWUpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoZmFjdFZhbHVlKSA9PiAoe1xuICAgICAgICAgICAgICAgIHZhck5hbWUsXG4gICAgICAgICAgICAgICAgZmFjdE5hbWU6IGZhY3QudmFsdWUsXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5ldy1jYXBcbiAgICAgICAgICAgICAgICBmYWN0VmFsdWU6IChmYWN0LnBhdGggJiYgZmFjdFZhbHVlKSA/IEpTT05QYXRoKHsgd3JhcDogZmFsc2UsIGpzb246IGZhY3RWYWx1ZSwgcGF0aDogZmFjdC5wYXRoIH0pIDogZmFjdFZhbHVlXG4gICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiBwcmV2aW91cy5mYWN0VmFsdWUgPT09IGN1cnJlbnQuZmFjdFZhbHVlKVxuICAgICAgICAgICAgKSkgOiBbXTtcblxuICAgICAgICAgIGNvbnN0IGZhY3RzU3RyZWFtc0xpc3QkID0gZmFjdHNTdHJlYW1zTGlzdC5sZW5ndGggPyBjb21iaW5lTGF0ZXN0KGZhY3RzU3RyZWFtc0xpc3QpIDogb2YoW10pO1xuICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtmYWN0c1N0cmVhbXNMaXN0JCwgdGhpcy5zdG9yZS5zZWxlY3Qoc2VsZWN0UGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5VXNhZ2UoYWN0aW9uLmlkKSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKV0pLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFtmYWN0c1VzZWRJblRlbXBsYXRlLCBwbGFjZWhvbGRlclJlcXVlc3RVc2FnZV0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFwbGFjZWhvbGRlclJlcXVlc3RVc2FnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZW5kZXJlZEhUTUwkKHRlbXBsYXRlUmVzcG9uc2UudGVtcGxhdGUsIHRlbXBsYXRlUmVzcG9uc2UudmFycywgZmFjdHNVc2VkSW5UZW1wbGF0ZSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHtyZW5kZXJlZFRlbXBsYXRlLCB1bmtub3duVHlwZUZvdW5kfSkgPT5cbiAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBpbnN0ZWFkIG9mIHNldCBiZWNhdXNlIHVzZWQgYWxyZWFkeSBzZXQgYnkgdGhlIHVwZGF0ZSBmcm9tIHVybCBhY3Rpb25cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSh7XG4gICAgICAgICAgICAgICAgICAgIGVudGl0eToge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnRlbXBsYXRlUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRVcmw6IGFjdGlvbi5yZXNvbHZlZFVybCxcbiAgICAgICAgICAgICAgICAgICAgICBpZDogYWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVkVGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgdW5rbm93blR5cGVGb3VuZFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6IGFjdGlvbi5yZXF1ZXN0SWRcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IsIGFjdGlvbikgPT4gb2YoZmFpbFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSh7aWRzOiBbYWN0aW9uLmlkXSwgZXJyb3IsIHJlcXVlc3RJZDogYWN0aW9uLnJlcXVlc3RJZH0pKSxcbiAgICAgICAgKHJlcXVlc3RJZFBheWxvYWQsIGFjdGlvbikgPT4gY2FuY2VsUGxhY2Vob2xkZXJSZXF1ZXN0KHsuLi5yZXF1ZXN0SWRQYXlsb2FkLCBpZDogYWN0aW9uLmlkfSlcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxQbGFjZWhvbGRlclJlcXVlc3RTdG9yZT4sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBydWxlc0VuZ2luZVNlcnZpY2U6IFJ1bGVzRW5naW5lUnVubmVyU2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljQ29udGVudFNlcnZpY2U6IER5bmFtaWNDb250ZW50U2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UgfCBudWxsKSB7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgaHRtbCB0ZW1wbGF0ZSwgcmVwbGFjaW5nIGZhY3RzIGFuZCB1cmxzIGFuZCBsb2NhbGl6YXRpb25LZXlzXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZVxuICAgKiBAcGFyYW0gdmFyc1xuICAgKiBAcGFyYW0gZmFjdHNcbiAgICovXG4gIHByaXZhdGUgZ2V0UmVuZGVyZWRIVE1MJCh0ZW1wbGF0ZT86IHN0cmluZywgdmFycz86IFJlY29yZDxzdHJpbmcsIFBsYWNlaG9sZGVyVmFyaWFibGU+LCBmYWN0cz86IHsgdmFyTmFtZTogc3RyaW5nOyBmYWN0TmFtZTogc3RyaW5nOyBmYWN0VmFsdWU6IGFueSB9W10pIHtcbiAgICBsZXQgdW5rbm93blR5cGVGb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGZhY3RNYXAgPSAoZmFjdHMgfHwgW10pLnJlZHVjZSgobWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgZmFjdCkgPT4ge1xuICAgICAgbWFwcGluZ1tmYWN0LmZhY3ROYW1lXSA9IGZhY3QuZmFjdFZhbHVlO1xuICAgICAgcmV0dXJuIG1hcHBpbmc7XG4gICAgfSwge30pO1xuICAgIGNvbnN0IGZhY3RNYXBGcm9tVmFycyA9IChmYWN0cyB8fCBbXSkucmVkdWNlKChtYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBmYWN0KSA9PiB7XG4gICAgICBtYXBwaW5nW2ZhY3QudmFyTmFtZV0gPSBmYWN0LmZhY3RWYWx1ZTtcbiAgICAgIHJldHVybiBtYXBwaW5nO1xuICAgIH0sIHt9KTtcbiAgICBjb25zdCByZXBsYWNlbWVudHMkOiBPYnNlcnZhYmxlPHsgZWpzVmFyOiBSZWdFeHA7IHZhbHVlOiBzdHJpbmcgfSB8IG51bGw+W10gPSBbXTtcbiAgICBpZiAodmFycyAmJiB0ZW1wbGF0ZSkge1xuICAgICAgZm9yIChjb25zdCB2YXJOYW1lIGluIHZhcnMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YXJzLCB2YXJOYW1lKSkge1xuICAgICAgICAgIGNvbnN0IGVqc1ZhciA9IG5ldyBSZWdFeHAoYDwlPVxcXFxzKiR7dmFyTmFtZX1cXFxccyolPmAsICdnJyk7XG4gICAgICAgICAgc3dpdGNoICh2YXJzW3Zhck5hbWVdLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3JlbGF0aXZlVXJsJzoge1xuICAgICAgICAgICAgICByZXBsYWNlbWVudHMkLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5keW5hbWljQ29udGVudFNlcnZpY2U/LmdldE1lZGlhUGF0aFN0cmVhbSh2YXJzW3Zhck5hbWVdLnZhbHVlKS5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgIG1hcCgodmFsdWU6IHN0cmluZykgPT4gKHtlanNWYXIsIHZhbHVlfSkpXG4gICAgICAgICAgICAgICAgKSB8fCBvZih7IGVqc1ZhciwgdmFsdWU6IHZhcnNbdmFyTmFtZV0udmFsdWUgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdmdWxsVXJsJzoge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IHRlbXBsYXRlLnJlcGxhY2UoZWpzVmFyLCB2YXJzW3Zhck5hbWVdLnZhbHVlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdmYWN0Jzoge1xuICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IHRlbXBsYXRlLnJlcGxhY2UoZWpzVmFyLCBmYWN0TWFwRnJvbVZhcnNbdmFyTmFtZV0gPz8gJycpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2xvY2FsaXNhdGlvbic6IHtcbiAgICAgICAgICAgICAgY29uc3QgbGlua2VkVmFycyA9ICh2YXJzW3Zhck5hbWVdLnZhcnMgfHwgW10pLnJlZHVjZSgoYWNjOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBwYXJhbWV0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSB2YXJzW3BhcmFtZXRlcl0udmFsdWU7XG4gICAgICAgICAgICAgICAgYWNjW3BhcmFtTmFtZV0gPSBmYWN0TWFwW3BhcmFtTmFtZV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgICAgICBjb25zdCBsaW5rZWRQYXJhbXMgPSAoT2JqZWN0LmVudHJpZXModmFyc1t2YXJOYW1lXS5wYXJhbWV0ZXJzIHx8IHt9KSkucmVkdWNlKChhY2M6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIFtwYXJhbUtleSwgcGFyYW1WYWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBhY2NbcGFyYW1LZXldID0gZmFjdE1hcEZyb21WYXJzW3BhcmFtVmFsdWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgIH0sIGxpbmtlZFZhcnMpO1xuICAgICAgICAgICAgICByZXBsYWNlbWVudHMkLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UgP1xuICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKHZhcnNbdmFyTmFtZV0udmFsdWUsIGxpbmtlZFBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gKHZhbHVlID8geyBlanNWYXIsIHZhbHVlIH0gOiBudWxsKSlcbiAgICAgICAgICAgICAgICAgICkgOlxuICAgICAgICAgICAgICAgICAgb2YobnVsbClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0IDoge1xuICAgICAgICAgICAgICB1bmtub3duVHlwZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXBsYWNlbWVudHMkLmxlbmd0aCA+IDAgJiYgISF0ZW1wbGF0ZSA/XG4gICAgICBjb21iaW5lTGF0ZXN0KHJlcGxhY2VtZW50cyQpLnBpcGUoXG4gICAgICAgIG1hcCgocmVwbGFjZW1lbnRzKSA9PiAoe1xuICAgICAgICAgIHJlbmRlcmVkVGVtcGxhdGU6IHJlcGxhY2VtZW50cy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCByZXBsYWNlbWVudCkgPT5cbiAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPyBhY2MucmVwbGFjZShyZXBsYWNlbWVudC5lanNWYXIsIHJlcGxhY2VtZW50LnZhbHVlKSA6IGFjYyxcbiAgICAgICAgICAgIHRlbXBsYXRlXG4gICAgICAgICAgKSxcbiAgICAgICAgICB1bmtub3duVHlwZUZvdW5kXG4gICAgICAgIH0pKVxuICAgICAgKSA6IG9mKHtyZW5kZXJlZFRlbXBsYXRlOiB0ZW1wbGF0ZSwgdW5rbm93blR5cGVGb3VuZH0pO1xuICB9XG59XG4iXX0=
@@ -238,7 +238,7 @@ class PlaceholderTemplateResponseEffect {
238
238
  break;
239
239
  }
240
240
  case 'fact': {
241
- template = template.replace(ejsVar, factMap[vars[varName].value] ?? '');
241
+ template = template.replace(ejsVar, factMapFromVars[varName] ?? '');
242
242
  break;
243
243
  }
244
244
  case 'localisation': {
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-components-rules-engine.mjs","sources":["../../src/rules-engine/placeholder.interfaces.ts","../../src/rules-engine/placeholder.action-handler.ts","../../src/rules-engine/placeholder.rules-engine.effect.ts","../../src/rules-engine/placeholder.rules-engine.module.ts","../../src/rules-engine/o3r-components-rules-engine.ts"],"sourcesContent":["import type { RulesEngineAction } from '@o3r/core';\n\n/** ActionUpdatePlaceholderBlock */\nexport const RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE = 'UPDATE_PLACEHOLDER';\n\n/**\n * Content of action that updates a placeholder\n */\nexport interface ActionUpdatePlaceholderBlock extends RulesEngineAction {\n actionType: typeof RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE;\n placeholderId: string;\n value: string;\n priority?: number;\n}\n","import { Injectable, Injector, OnDestroy, Optional } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport type { RulesEngineActionHandler } from '@o3r/core';\nimport {\n deletePlaceholderTemplateEntity,\n PlaceholderRequestReply,\n PlaceholderTemplateStore,\n selectPlaceholderRequestEntities,\n selectPlaceholderTemplateEntities,\n setPlaceholderRequestEntityFromUrl,\n setPlaceholderTemplateEntity,\n updatePlaceholderRequestEntity\n} from '@o3r/components';\nimport { DynamicContentService } from '@o3r/dynamic-content';\nimport { LocalizationService } from '@o3r/localization';\nimport { LoggerService } from '@o3r/logger';\nimport { combineLatest, distinctUntilChanged, firstValueFrom, map, of, startWith, Subject, Subscription, withLatestFrom } from 'rxjs';\nimport { ActionUpdatePlaceholderBlock, RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE } from './placeholder.interfaces';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderRulesEngineActionHandler implements OnDestroy, RulesEngineActionHandler<ActionUpdatePlaceholderBlock> {\n\n protected subscription = new Subscription();\n\n protected placeholdersActions$: Subject<{ placeholderId: string; templateUrl: string; priority: number }[]> = new Subject();\n\n /** @inheritdoc */\n public readonly supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE] as const;\n\n constructor(\n store: Store<PlaceholderTemplateStore>,\n private readonly logger: LoggerService,\n private readonly injector: Injector,\n @Optional() translateService?: LocalizationService\n ) {\n const lang$ = translateService ? translateService.getTranslateService().onLangChange.pipe(\n map(({ lang }) => lang),\n startWith(translateService.getCurrentLanguage()),\n distinctUntilChanged()\n ) : of(null);\n\n const filteredActions$ = combineLatest([\n lang$,\n this.placeholdersActions$.pipe(\n distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next))\n )\n ]).pipe(\n withLatestFrom(\n combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])\n ),\n map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {\n const [lang, placeholderActions] = langAndTemplatesUrls;\n const storedPlaceholders = storedPlaceholdersAndRequests[0] || {};\n const storedPlaceholderRequests = storedPlaceholdersAndRequests[1] || {};\n const placeholderNewRequests: { rawUrl: string; resolvedUrl: string }[] = [];\n // Stores all raw Urls used from the current engine execution\n const usedUrls: Record<string, boolean> = {};\n // Get all Urls that needs to be resolved from current rules engine output\n const placeholdersTemplates = placeholderActions.reduce((acc, placeholderAction) => {\n const placeholdersTemplateUrl = {\n rawUrl: placeholderAction.templateUrl,\n priority: placeholderAction.priority\n };\n if (acc[placeholderAction.placeholderId]) {\n acc[placeholderAction.placeholderId].push(placeholdersTemplateUrl);\n } else {\n acc[placeholderAction.placeholderId] = [placeholdersTemplateUrl];\n }\n const resolvedUrl = this.resolveUrlWithLang(placeholderAction.templateUrl, lang);\n // Filters duplicates and resolved urls that are already in the store\n if (!usedUrls[placeholderAction.templateUrl] && (!storedPlaceholderRequests[placeholderAction.templateUrl]\n || storedPlaceholderRequests[placeholderAction.templateUrl]!.resolvedUrl !== resolvedUrl)) {\n placeholderNewRequests.push({\n rawUrl: placeholderAction.templateUrl,\n resolvedUrl: this.resolveUrlWithLang(placeholderAction.templateUrl, lang)\n });\n }\n usedUrls[placeholderAction.templateUrl] = true;\n return acc;\n }, {} as { [key: string]: { rawUrl: string; priority: number }[] });\n // Urls not used anymore and not already disabled\n const placeholderRequestsToDisable: string[] = [];\n // Urls used that were disabled\n const placeholderRequestsToEnable: string[] = [];\n Object.keys(storedPlaceholderRequests).forEach((storedPlaceholderRequestRawUrl) => {\n const usedFromEngineIteration = usedUrls[storedPlaceholderRequestRawUrl];\n const usedFromStore = (storedPlaceholderRequests && storedPlaceholderRequests[storedPlaceholderRequestRawUrl]) ? storedPlaceholderRequests[storedPlaceholderRequestRawUrl]!.used : false;\n if (!usedFromEngineIteration && usedFromStore) {\n placeholderRequestsToDisable.push(storedPlaceholderRequestRawUrl);\n } else if (usedFromEngineIteration && !usedFromStore) {\n placeholderRequestsToEnable.push(storedPlaceholderRequestRawUrl);\n }\n });\n // Placeholder that are no longer filled by the current engine execution output will be cleared\n const placeholdersTemplatesToBeCleanedUp = Object.keys(storedPlaceholders)\n .filter(placeholderId => !placeholdersTemplates[placeholderId]);\n\n const placeholdersTemplatesToBeSet = Object.keys(placeholdersTemplates).reduce((changedPlaceholderTemplates, placeholderTemplateId) => {\n // Caching if the placeholder template already exists with the same urls\n if (!storedPlaceholders[placeholderTemplateId] ||\n !(JSON.stringify(storedPlaceholders[placeholderTemplateId]!.urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {\n changedPlaceholderTemplates.push({\n id: placeholderTemplateId,\n urlsWithPriority: placeholdersTemplates[placeholderTemplateId]\n });\n }\n return changedPlaceholderTemplates;\n }, [] as { id: string; urlsWithPriority: { rawUrl: string; priority: number }[] }[]);\n return {\n placeholdersTemplatesToBeCleanedUp,\n placeholderRequestsToDisable,\n placeholderRequestsToEnable,\n placeholdersTemplatesToBeSet,\n placeholderNewRequests\n };\n })\n );\n this.subscription.add(filteredActions$.subscribe((placeholdersUpdates) => {\n placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach(placeholderId =>\n store.dispatch(deletePlaceholderTemplateEntity({\n id: placeholderId\n }))\n );\n placeholdersUpdates.placeholdersTemplatesToBeSet.forEach(placeholdersTemplateToBeSet => {\n store.dispatch(setPlaceholderTemplateEntity({ entity: placeholdersTemplateToBeSet }));\n });\n placeholdersUpdates.placeholderRequestsToDisable.forEach(placeholderRequestToDisable => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToDisable, used: false } }));\n });\n placeholdersUpdates.placeholderRequestsToEnable.forEach(placeholderRequestToEnable => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToEnable, used: true } }));\n });\n placeholdersUpdates.placeholderNewRequests.forEach(placeholderNewRequest => {\n store.dispatch(setPlaceholderRequestEntityFromUrl({\n resolvedUrl: placeholderNewRequest.resolvedUrl,\n id: placeholderNewRequest.rawUrl,\n call: this.retrieveTemplate(placeholderNewRequest.resolvedUrl)\n }));\n });\n }));\n }\n\n /**\n * Localize the url, replacing the language marker\n * @param url\n * @param language\n */\n protected resolveUrlWithLang(url: string, language: string | null): string {\n if (!language && url.includes('[LANGUAGE]')) {\n this.logger.warn(`Missing language when trying to resolve ${url}`);\n }\n return language ? url.replace(/\\[LANGUAGE]/g, language) : url;\n }\n\n /**\n * Retrieve template as json from a given url\n * @param url\n */\n protected async retrieveTemplate(url: string): Promise<PlaceholderRequestReply> {\n const resolvedUrl$ = this.injector.get(DynamicContentService, null, { optional: true })?.getContentPathStream(url) || of(url);\n const fullUrl = await firstValueFrom(resolvedUrl$);\n return fetch(fullUrl).then((response) => response.json());\n }\n\n /** @inheritdoc */\n public executeActions(actions: ActionUpdatePlaceholderBlock[]) {\n const templates = actions.map((action) => ({\n placeholderId: action.placeholderId,\n templateUrl: action.value,\n priority: action.priority || 0\n }));\n\n this.placeholdersActions$.next(templates);\n }\n\n /** @inheritdoc */\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {Injectable, Optional} from '@angular/core';\nimport {Actions, createEffect, ofType} from '@ngrx/effects';\nimport {\n cancelPlaceholderRequest,\n failPlaceholderRequestEntity,\n PlaceholderRequestStore,\n PlaceholderVariable,\n selectPlaceholderRequestEntityUsage,\n setPlaceholderRequestEntityFromUrl,\n updatePlaceholderRequestEntity\n} from '@o3r/components';\nimport {fromApiEffectSwitchMapById} from '@o3r/core';\nimport {DynamicContentService} from '@o3r/dynamic-content';\nimport {LocalizationService} from '@o3r/localization';\nimport {RulesEngineRunnerService} from '@o3r/rules-engine';\nimport {combineLatest, EMPTY, Observable, of} from 'rxjs';\nimport {distinctUntilChanged, map, switchMap, take} from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport { JSONPath } from 'jsonpath-plus';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderTemplateResponseEffect {\n /**\n * Set the PlaceholderRequest entity with the reply content, dispatch failPlaceholderRequestEntity if it catches a failure\n * Handles the rendering of the HTML content from the template and creates the combine latest from facts list if needed\n * Disables unused templates refresh if used is false in the store\n */\n public setPlaceholderRequestEntityFromUrl$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setPlaceholderRequestEntityFromUrl),\n fromApiEffectSwitchMapById(\n (templateResponse, action) => {\n const facts = templateResponse.vars ? Object.entries(templateResponse.vars).filter(([, variable]) => variable.type === 'fact') : [];\n const factsStreamsList = this.rulesEngineService ? facts.map(([varName, fact]) =>\n this.rulesEngineService!.engine.retrieveOrCreateFactStream(fact.value).pipe(\n map((factValue) => ({\n varName,\n factName: fact.value,\n // eslint-disable-next-line new-cap\n factValue: (fact.path && factValue) ? JSONPath({ wrap: false, json: factValue, path: fact.path }) : factValue\n })),\n distinctUntilChanged((previous, current) => previous.factValue === current.factValue)\n )) : [];\n\n const factsStreamsList$ = factsStreamsList.length ? combineLatest(factsStreamsList) : of([]);\n return combineLatest([factsStreamsList$, this.store.select(selectPlaceholderRequestEntityUsage(action.id)).pipe(distinctUntilChanged())]).pipe(\n switchMap(([factsUsedInTemplate, placeholderRequestUsage]) => {\n if (!placeholderRequestUsage) {\n return EMPTY;\n }\n return this.getRenderedHTML$(templateResponse.template, templateResponse.vars, factsUsedInTemplate).pipe(\n map(({renderedTemplate, unknownTypeFound}) =>\n // Update instead of set because used already set by the update from url action\n updatePlaceholderRequestEntity({\n entity: {\n ...templateResponse,\n resolvedUrl: action.resolvedUrl,\n id: action.id,\n renderedTemplate,\n unknownTypeFound\n },\n requestId: action.requestId\n })\n )\n );\n }));\n },\n (error, action) => of(failPlaceholderRequestEntity({ids: [action.id], error, requestId: action.requestId})),\n (requestIdPayload, action) => cancelPlaceholderRequest({...requestIdPayload, id: action.id})\n )\n )\n );\n\n constructor(\n private readonly actions$: Actions,\n private readonly store: Store<PlaceholderRequestStore>,\n @Optional() private readonly rulesEngineService: RulesEngineRunnerService | null,\n @Optional() private readonly dynamicContentService: DynamicContentService | null,\n @Optional() private readonly translationService: LocalizationService | null) {\n }\n\n /**\n * Renders the html template, replacing facts and urls and localizationKeys\n * @param template\n * @param vars\n * @param facts\n */\n private getRenderedHTML$(template?: string, vars?: Record<string, PlaceholderVariable>, facts?: { varName: string; factName: string; factValue: any }[]) {\n let unknownTypeFound = false;\n const factMap = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.factName] = fact.factValue;\n return mapping;\n }, {});\n const factMapFromVars = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.varName] = fact.factValue;\n return mapping;\n }, {});\n const replacements$: Observable<{ ejsVar: RegExp; value: string } | null>[] = [];\n if (vars && template) {\n for (const varName in vars) {\n if (Object.prototype.hasOwnProperty.call(vars, varName)) {\n const ejsVar = new RegExp(`<%=\\\\s*${varName}\\\\s*%>`, 'g');\n switch (vars[varName].type) {\n case 'relativeUrl': {\n replacements$.push(\n this.dynamicContentService?.getMediaPathStream(vars[varName].value).pipe(\n take(1),\n map((value: string) => ({ejsVar, value}))\n ) || of({ ejsVar, value: vars[varName].value })\n );\n break;\n }\n case 'fullUrl': {\n template = template.replace(ejsVar, vars[varName].value);\n break;\n }\n case 'fact': {\n template = template.replace(ejsVar, factMap[vars[varName].value] ?? '');\n break;\n }\n case 'localisation': {\n const linkedVars = (vars[varName].vars || []).reduce((acc: { [key: string]: any }, parameter) => {\n const paramName = vars[parameter].value;\n acc[paramName] = factMap[paramName];\n return acc;\n }, {});\n const linkedParams = (Object.entries(vars[varName].parameters || {})).reduce((acc: { [key: string]: any }, [paramKey, paramValue]) => {\n acc[paramKey] = factMapFromVars[paramValue];\n return acc;\n }, linkedVars);\n replacements$.push(\n this.translationService ?\n this.translationService.translate(vars[varName].value, linkedParams).pipe(\n map((value) => (value ? { ejsVar, value } : null))\n ) :\n of(null)\n );\n break;\n }\n default : {\n unknownTypeFound = true;\n break;\n }\n }\n }\n }\n }\n return replacements$.length > 0 && !!template ?\n combineLatest(replacements$).pipe(\n map((replacements) => ({\n renderedTemplate: replacements.reduce(\n (acc, replacement) =>\n replacement ? acc.replace(replacement.ejsVar, replacement.value) : acc,\n template\n ),\n unknownTypeFound\n }))\n ) : of({renderedTemplate: template, unknownTypeFound});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule } from '@o3r/components';\nimport { PlaceholderRulesEngineActionHandler } from './placeholder.action-handler';\nimport { PlaceholderTemplateResponseEffect } from './placeholder.rules-engine.effect';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([PlaceholderTemplateResponseEffect]),\n PlaceholderRequestStoreModule,\n PlaceholderTemplateStoreModule\n ],\n providers: [\n PlaceholderRulesEngineActionHandler\n ]\n})\nexport class PlaceholderRulesEngineActionModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map","distinctUntilChanged","i1","i2","i3","i5"],"mappings":"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"}
1
+ {"version":3,"file":"o3r-components-rules-engine.mjs","sources":["../../src/rules-engine/placeholder.interfaces.ts","../../src/rules-engine/placeholder.action-handler.ts","../../src/rules-engine/placeholder.rules-engine.effect.ts","../../src/rules-engine/placeholder.rules-engine.module.ts","../../src/rules-engine/o3r-components-rules-engine.ts"],"sourcesContent":["import type { RulesEngineAction } from '@o3r/core';\n\n/** ActionUpdatePlaceholderBlock */\nexport const RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE = 'UPDATE_PLACEHOLDER';\n\n/**\n * Content of action that updates a placeholder\n */\nexport interface ActionUpdatePlaceholderBlock extends RulesEngineAction {\n actionType: typeof RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE;\n placeholderId: string;\n value: string;\n priority?: number;\n}\n","import { Injectable, Injector, OnDestroy, Optional } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport type { RulesEngineActionHandler } from '@o3r/core';\nimport {\n deletePlaceholderTemplateEntity,\n PlaceholderRequestReply,\n PlaceholderTemplateStore,\n selectPlaceholderRequestEntities,\n selectPlaceholderTemplateEntities,\n setPlaceholderRequestEntityFromUrl,\n setPlaceholderTemplateEntity,\n updatePlaceholderRequestEntity\n} from '@o3r/components';\nimport { DynamicContentService } from '@o3r/dynamic-content';\nimport { LocalizationService } from '@o3r/localization';\nimport { LoggerService } from '@o3r/logger';\nimport { combineLatest, distinctUntilChanged, firstValueFrom, map, of, startWith, Subject, Subscription, withLatestFrom } from 'rxjs';\nimport { ActionUpdatePlaceholderBlock, RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE } from './placeholder.interfaces';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderRulesEngineActionHandler implements OnDestroy, RulesEngineActionHandler<ActionUpdatePlaceholderBlock> {\n\n protected subscription = new Subscription();\n\n protected placeholdersActions$: Subject<{ placeholderId: string; templateUrl: string; priority: number }[]> = new Subject();\n\n /** @inheritdoc */\n public readonly supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE] as const;\n\n constructor(\n store: Store<PlaceholderTemplateStore>,\n private readonly logger: LoggerService,\n private readonly injector: Injector,\n @Optional() translateService?: LocalizationService\n ) {\n const lang$ = translateService ? translateService.getTranslateService().onLangChange.pipe(\n map(({ lang }) => lang),\n startWith(translateService.getCurrentLanguage()),\n distinctUntilChanged()\n ) : of(null);\n\n const filteredActions$ = combineLatest([\n lang$,\n this.placeholdersActions$.pipe(\n distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next))\n )\n ]).pipe(\n withLatestFrom(\n combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])\n ),\n map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {\n const [lang, placeholderActions] = langAndTemplatesUrls;\n const storedPlaceholders = storedPlaceholdersAndRequests[0] || {};\n const storedPlaceholderRequests = storedPlaceholdersAndRequests[1] || {};\n const placeholderNewRequests: { rawUrl: string; resolvedUrl: string }[] = [];\n // Stores all raw Urls used from the current engine execution\n const usedUrls: Record<string, boolean> = {};\n // Get all Urls that needs to be resolved from current rules engine output\n const placeholdersTemplates = placeholderActions.reduce((acc, placeholderAction) => {\n const placeholdersTemplateUrl = {\n rawUrl: placeholderAction.templateUrl,\n priority: placeholderAction.priority\n };\n if (acc[placeholderAction.placeholderId]) {\n acc[placeholderAction.placeholderId].push(placeholdersTemplateUrl);\n } else {\n acc[placeholderAction.placeholderId] = [placeholdersTemplateUrl];\n }\n const resolvedUrl = this.resolveUrlWithLang(placeholderAction.templateUrl, lang);\n // Filters duplicates and resolved urls that are already in the store\n if (!usedUrls[placeholderAction.templateUrl] && (!storedPlaceholderRequests[placeholderAction.templateUrl]\n || storedPlaceholderRequests[placeholderAction.templateUrl]!.resolvedUrl !== resolvedUrl)) {\n placeholderNewRequests.push({\n rawUrl: placeholderAction.templateUrl,\n resolvedUrl: this.resolveUrlWithLang(placeholderAction.templateUrl, lang)\n });\n }\n usedUrls[placeholderAction.templateUrl] = true;\n return acc;\n }, {} as { [key: string]: { rawUrl: string; priority: number }[] });\n // Urls not used anymore and not already disabled\n const placeholderRequestsToDisable: string[] = [];\n // Urls used that were disabled\n const placeholderRequestsToEnable: string[] = [];\n Object.keys(storedPlaceholderRequests).forEach((storedPlaceholderRequestRawUrl) => {\n const usedFromEngineIteration = usedUrls[storedPlaceholderRequestRawUrl];\n const usedFromStore = (storedPlaceholderRequests && storedPlaceholderRequests[storedPlaceholderRequestRawUrl]) ? storedPlaceholderRequests[storedPlaceholderRequestRawUrl]!.used : false;\n if (!usedFromEngineIteration && usedFromStore) {\n placeholderRequestsToDisable.push(storedPlaceholderRequestRawUrl);\n } else if (usedFromEngineIteration && !usedFromStore) {\n placeholderRequestsToEnable.push(storedPlaceholderRequestRawUrl);\n }\n });\n // Placeholder that are no longer filled by the current engine execution output will be cleared\n const placeholdersTemplatesToBeCleanedUp = Object.keys(storedPlaceholders)\n .filter(placeholderId => !placeholdersTemplates[placeholderId]);\n\n const placeholdersTemplatesToBeSet = Object.keys(placeholdersTemplates).reduce((changedPlaceholderTemplates, placeholderTemplateId) => {\n // Caching if the placeholder template already exists with the same urls\n if (!storedPlaceholders[placeholderTemplateId] ||\n !(JSON.stringify(storedPlaceholders[placeholderTemplateId]!.urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {\n changedPlaceholderTemplates.push({\n id: placeholderTemplateId,\n urlsWithPriority: placeholdersTemplates[placeholderTemplateId]\n });\n }\n return changedPlaceholderTemplates;\n }, [] as { id: string; urlsWithPriority: { rawUrl: string; priority: number }[] }[]);\n return {\n placeholdersTemplatesToBeCleanedUp,\n placeholderRequestsToDisable,\n placeholderRequestsToEnable,\n placeholdersTemplatesToBeSet,\n placeholderNewRequests\n };\n })\n );\n this.subscription.add(filteredActions$.subscribe((placeholdersUpdates) => {\n placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach(placeholderId =>\n store.dispatch(deletePlaceholderTemplateEntity({\n id: placeholderId\n }))\n );\n placeholdersUpdates.placeholdersTemplatesToBeSet.forEach(placeholdersTemplateToBeSet => {\n store.dispatch(setPlaceholderTemplateEntity({ entity: placeholdersTemplateToBeSet }));\n });\n placeholdersUpdates.placeholderRequestsToDisable.forEach(placeholderRequestToDisable => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToDisable, used: false } }));\n });\n placeholdersUpdates.placeholderRequestsToEnable.forEach(placeholderRequestToEnable => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToEnable, used: true } }));\n });\n placeholdersUpdates.placeholderNewRequests.forEach(placeholderNewRequest => {\n store.dispatch(setPlaceholderRequestEntityFromUrl({\n resolvedUrl: placeholderNewRequest.resolvedUrl,\n id: placeholderNewRequest.rawUrl,\n call: this.retrieveTemplate(placeholderNewRequest.resolvedUrl)\n }));\n });\n }));\n }\n\n /**\n * Localize the url, replacing the language marker\n * @param url\n * @param language\n */\n protected resolveUrlWithLang(url: string, language: string | null): string {\n if (!language && url.includes('[LANGUAGE]')) {\n this.logger.warn(`Missing language when trying to resolve ${url}`);\n }\n return language ? url.replace(/\\[LANGUAGE]/g, language) : url;\n }\n\n /**\n * Retrieve template as json from a given url\n * @param url\n */\n protected async retrieveTemplate(url: string): Promise<PlaceholderRequestReply> {\n const resolvedUrl$ = this.injector.get(DynamicContentService, null, { optional: true })?.getContentPathStream(url) || of(url);\n const fullUrl = await firstValueFrom(resolvedUrl$);\n return fetch(fullUrl).then((response) => response.json());\n }\n\n /** @inheritdoc */\n public executeActions(actions: ActionUpdatePlaceholderBlock[]) {\n const templates = actions.map((action) => ({\n placeholderId: action.placeholderId,\n templateUrl: action.value,\n priority: action.priority || 0\n }));\n\n this.placeholdersActions$.next(templates);\n }\n\n /** @inheritdoc */\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {Injectable, Optional} from '@angular/core';\nimport {Actions, createEffect, ofType} from '@ngrx/effects';\nimport {\n cancelPlaceholderRequest,\n failPlaceholderRequestEntity,\n PlaceholderRequestStore,\n PlaceholderVariable,\n selectPlaceholderRequestEntityUsage,\n setPlaceholderRequestEntityFromUrl,\n updatePlaceholderRequestEntity\n} from '@o3r/components';\nimport {fromApiEffectSwitchMapById} from '@o3r/core';\nimport {DynamicContentService} from '@o3r/dynamic-content';\nimport {LocalizationService} from '@o3r/localization';\nimport {RulesEngineRunnerService} from '@o3r/rules-engine';\nimport {combineLatest, EMPTY, Observable, of} from 'rxjs';\nimport {distinctUntilChanged, map, switchMap, take} from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport { JSONPath } from 'jsonpath-plus';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderTemplateResponseEffect {\n /**\n * Set the PlaceholderRequest entity with the reply content, dispatch failPlaceholderRequestEntity if it catches a failure\n * Handles the rendering of the HTML content from the template and creates the combine latest from facts list if needed\n * Disables unused templates refresh if used is false in the store\n */\n public setPlaceholderRequestEntityFromUrl$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setPlaceholderRequestEntityFromUrl),\n fromApiEffectSwitchMapById(\n (templateResponse, action) => {\n const facts = templateResponse.vars ? Object.entries(templateResponse.vars).filter(([, variable]) => variable.type === 'fact') : [];\n const factsStreamsList = this.rulesEngineService ? facts.map(([varName, fact]) =>\n this.rulesEngineService!.engine.retrieveOrCreateFactStream(fact.value).pipe(\n map((factValue) => ({\n varName,\n factName: fact.value,\n // eslint-disable-next-line new-cap\n factValue: (fact.path && factValue) ? JSONPath({ wrap: false, json: factValue, path: fact.path }) : factValue\n })),\n distinctUntilChanged((previous, current) => previous.factValue === current.factValue)\n )) : [];\n\n const factsStreamsList$ = factsStreamsList.length ? combineLatest(factsStreamsList) : of([]);\n return combineLatest([factsStreamsList$, this.store.select(selectPlaceholderRequestEntityUsage(action.id)).pipe(distinctUntilChanged())]).pipe(\n switchMap(([factsUsedInTemplate, placeholderRequestUsage]) => {\n if (!placeholderRequestUsage) {\n return EMPTY;\n }\n return this.getRenderedHTML$(templateResponse.template, templateResponse.vars, factsUsedInTemplate).pipe(\n map(({renderedTemplate, unknownTypeFound}) =>\n // Update instead of set because used already set by the update from url action\n updatePlaceholderRequestEntity({\n entity: {\n ...templateResponse,\n resolvedUrl: action.resolvedUrl,\n id: action.id,\n renderedTemplate,\n unknownTypeFound\n },\n requestId: action.requestId\n })\n )\n );\n }));\n },\n (error, action) => of(failPlaceholderRequestEntity({ids: [action.id], error, requestId: action.requestId})),\n (requestIdPayload, action) => cancelPlaceholderRequest({...requestIdPayload, id: action.id})\n )\n )\n );\n\n constructor(\n private readonly actions$: Actions,\n private readonly store: Store<PlaceholderRequestStore>,\n @Optional() private readonly rulesEngineService: RulesEngineRunnerService | null,\n @Optional() private readonly dynamicContentService: DynamicContentService | null,\n @Optional() private readonly translationService: LocalizationService | null) {\n }\n\n /**\n * Renders the html template, replacing facts and urls and localizationKeys\n * @param template\n * @param vars\n * @param facts\n */\n private getRenderedHTML$(template?: string, vars?: Record<string, PlaceholderVariable>, facts?: { varName: string; factName: string; factValue: any }[]) {\n let unknownTypeFound = false;\n const factMap = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.factName] = fact.factValue;\n return mapping;\n }, {});\n const factMapFromVars = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.varName] = fact.factValue;\n return mapping;\n }, {});\n const replacements$: Observable<{ ejsVar: RegExp; value: string } | null>[] = [];\n if (vars && template) {\n for (const varName in vars) {\n if (Object.prototype.hasOwnProperty.call(vars, varName)) {\n const ejsVar = new RegExp(`<%=\\\\s*${varName}\\\\s*%>`, 'g');\n switch (vars[varName].type) {\n case 'relativeUrl': {\n replacements$.push(\n this.dynamicContentService?.getMediaPathStream(vars[varName].value).pipe(\n take(1),\n map((value: string) => ({ejsVar, value}))\n ) || of({ ejsVar, value: vars[varName].value })\n );\n break;\n }\n case 'fullUrl': {\n template = template.replace(ejsVar, vars[varName].value);\n break;\n }\n case 'fact': {\n template = template.replace(ejsVar, factMapFromVars[varName] ?? '');\n break;\n }\n case 'localisation': {\n const linkedVars = (vars[varName].vars || []).reduce((acc: { [key: string]: any }, parameter) => {\n const paramName = vars[parameter].value;\n acc[paramName] = factMap[paramName];\n return acc;\n }, {});\n const linkedParams = (Object.entries(vars[varName].parameters || {})).reduce((acc: { [key: string]: any }, [paramKey, paramValue]) => {\n acc[paramKey] = factMapFromVars[paramValue];\n return acc;\n }, linkedVars);\n replacements$.push(\n this.translationService ?\n this.translationService.translate(vars[varName].value, linkedParams).pipe(\n map((value) => (value ? { ejsVar, value } : null))\n ) :\n of(null)\n );\n break;\n }\n default : {\n unknownTypeFound = true;\n break;\n }\n }\n }\n }\n }\n return replacements$.length > 0 && !!template ?\n combineLatest(replacements$).pipe(\n map((replacements) => ({\n renderedTemplate: replacements.reduce(\n (acc, replacement) =>\n replacement ? acc.replace(replacement.ejsVar, replacement.value) : acc,\n template\n ),\n unknownTypeFound\n }))\n ) : of({renderedTemplate: template, unknownTypeFound});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule } from '@o3r/components';\nimport { PlaceholderRulesEngineActionHandler } from './placeholder.action-handler';\nimport { PlaceholderTemplateResponseEffect } from './placeholder.rules-engine.effect';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([PlaceholderTemplateResponseEffect]),\n PlaceholderRequestStoreModule,\n PlaceholderTemplateStoreModule\n ],\n providers: [\n PlaceholderRulesEngineActionHandler\n ]\n})\nexport class PlaceholderRulesEngineActionModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map","distinctUntilChanged","i1","i2","i3","i5"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/components",
3
- "version": "10.4.20",
3
+ "version": "10.4.22",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -44,16 +44,16 @@
44
44
  "@ngrx/effects": "~17.2.0",
45
45
  "@ngrx/entity": "~17.2.0",
46
46
  "@ngrx/store": "~17.2.0",
47
- "@o3r/analytics": "^10.4.20",
48
- "@o3r/configuration": "^10.4.20",
49
- "@o3r/core": "^10.4.20",
50
- "@o3r/dynamic-content": "^10.4.20",
51
- "@o3r/extractors": "^10.4.20",
52
- "@o3r/localization": "^10.4.20",
53
- "@o3r/logger": "^10.4.20",
54
- "@o3r/rules-engine": "^10.4.20",
55
- "@o3r/schematics": "^10.4.20",
56
- "@o3r/testing": "^10.4.20",
47
+ "@o3r/analytics": "^10.4.22",
48
+ "@o3r/configuration": "^10.4.22",
49
+ "@o3r/core": "^10.4.22",
50
+ "@o3r/dynamic-content": "^10.4.22",
51
+ "@o3r/extractors": "^10.4.22",
52
+ "@o3r/localization": "^10.4.22",
53
+ "@o3r/logger": "^10.4.22",
54
+ "@o3r/rules-engine": "^10.4.22",
55
+ "@o3r/schematics": "^10.4.22",
56
+ "@o3r/testing": "^10.4.22",
57
57
  "@schematics/angular": "~17.3.0",
58
58
  "chokidar": "^3.5.2",
59
59
  "globby": "^11.1.0",