@net7/boilerplate-muruca 5.2.0 → 5.2.1

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.
@@ -55,7 +55,7 @@ export class MrMapDS extends DataSource {
55
55
  .map((m) => ({
56
56
  // convert to leaflet marker format
57
57
  coords: [+m.lat, +m.lng],
58
- template: m.default_label ?? m.label,
58
+ template: m.label ?? m.default_label,
59
59
  title: m.label ?? m.default_label,
60
60
  id: area.id,
61
61
  slug: area.slug,
@@ -170,4 +170,4 @@ export class MrMapDS extends DataSource {
170
170
  this.markerLayer = markerGroup;
171
171
  }
172
172
  }
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvZGF0YS1zb3VyY2VzL21hcC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzdCLE9BQU8sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQTBCL0IsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JCLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLGFBQWE7Q0FDekIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xDLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDckIsU0FBUyxFQUFFLHNCQUFzQjtDQUNsQyxDQUFDLENBQUM7QUFFSCxNQUFNLE9BQU8sT0FBUSxTQUFRLFVBQVU7SUFBdkM7O1FBU0UsZUFBVSxHQUFtQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBNEVuQyxrQkFBYSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDckMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFD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bkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwRGF0YSwgTWFya2VyRGF0YSB9IGZyb20gJ0BuZXQ3L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnbGVhZmxldC5tYXJrZXJjbHVzdGVyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbi8vIGxlYWZsZXQgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSB3aW5kb3csXG4vLyBhIGRvdWJsZSBpbXBvcnQgcmVzdWx0cyBpbiBlcnJvcnMgd2l0aCB0b29sdGlwcy5cbi8vIGRlY2xhcmUgY29uc3QgTDtcblxuaW50ZXJmYWNlIENvb3JkcyB7IGxhdDogbnVtYmVyOyBsbmc6IG51bWJlciB9XG5cbmludGVyZmFjZSBNYXJrZXIgZXh0ZW5kcyBDb29yZHMge1xuICBsYWJlbDogc3RyaW5nO1xuICBkZWZhdWx0X2xhYmVsOiBzdHJpbmc7XG59XG5cbnR5cGUgVGltZWxpbmVSZXNwb25zZSA9IHtcbiAgaWQ/OiBudW1iZXI7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgem9vbTogbnVtYmVyO1xuICBtYXBfY2VudGVyOiBDb29yZHM7XG4gIG1hcmtlcnM6IE1hcmtlcltdO1xufVtdXG5cbmludGVyZmFjZSBNYXJrZXJXaXRoSUQgZXh0ZW5kcyBNYXJrZXJEYXRhIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHNsdWc6IHN0cmluZztcbn1cblxuY29uc3QgTUFSS0VSX0lDT04gPSBMLmljb24oe1xuICBpY29uVXJsOiAnL2Fzc2V0cy9waW4ucG5nJyxcbiAgaWNvblNpemU6IFsyMCwgMzBdLFxuICBwb3B1cEFuY2hvcjogWzAsIC0yMF0sXG4gIGljb25BbmNob3I6IFsxMCwgMzBdLFxuICBjbGFzc05hbWU6ICdtYXJrZXItaWNvbidcbn0pO1xuXG5jb25zdCBNQVJLRVJfSUNPTl9TRUxFQ1RFRCA9IEwuaWNvbih7XG4gIGljb25Vcmw6ICcvYXNzZXRzL3Bpbi1zZWxlY3RlZC5wbmcnLFxuICBpY29uU2l6ZTogWzIwLCAzMF0sXG4gIHBvcHVwQW5jaG9yOiBbMCwgLTIwXSxcbiAgY2xhc3NOYW1lOiAnbWFya2VyLWljb24tc2VsZWN0ZWQnXG59KTtcblxuZXhwb3J0IGNsYXNzIE1yTWFwRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgaWQ6IHN0cmluZztcblxuICAvKiogSW5zdGFuY2Ugb2YgdGhlIGxlYWZsZXQgbWFwICovXG4gIG1hcEluc3RhbmNlO1xuXG4gIC8qKiBJbnN0YW5jZSBvZiB0aGUgbWFya2VyIGxheWVyR3JvdXAgKi9cbiAgbWFya2VyTGF5ZXI7XG5cbiAgbWFwTG9hZGVkJDogU3ViamVjdDxMLk1hcD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGE6IFRpbWVsaW5lUmVzcG9uc2UpOiBNYXBEYXRhIHtcbiAgICBsZXQgbWFya2VyczogTWFya2VyV2l0aElEW107XG4gICAgY29uc3QgZCA9IGRhdGEuZmluZCgoeikgPT4gei56b29tKTtcbiAgICBpZiAoZGF0YS5maW5kKChhKSA9PiBhLm1hcmtlcnMpKSB7XG4gICAgICBtYXJrZXJzID0gZGF0YVxuICAgICAgICAubWFwKChhcmVhKSA9PiAoYXJlYS5tYXJrZXJzXG4gICAgICAgICAgLm1hcCgobSkgPT4gKHtcbiAgICAgICAgICAvLyBjb252ZXJ0IHRvIGxlYWZsZXQgbWFya2VyIGZvcm1hdFxuICAgICAgICAgICAgY29vcmRzOiBbK20ubGF0LCArbS5sbmddIGFzIFtudW1iZXIsIG51bWJlcl0sXG4gICAgICAgICAgICB0ZW1wbGF0ZTogbS5kZWZhdWx0X2xhYmVsID8/IG0ubGFiZWwsXG4gICAgICAgICAgICB0aXRsZTogbS5sYWJlbCA/PyBtLmRlZmF1bHRfbGFiZWwsXG4gICAgICAgICAgICBpZDogYXJlYS5pZCxcbiAgICAgICAgICAgIHNsdWc6IGFyZWEuc2x1ZyxcbiAgICAgICAgICB9KSkpKVxuICAgICAgICAvLyBmbGF0dGVuIHRoZSBsaXN0IG9mIG1hcmtlcnNcbiAgICAgICAgLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYy5jb25jYXQodmFsKSwgW10pO1xuICAgIH1cbiAgICBjb25zdCBtYXBDZW50ZXI6IFtudW1iZXIsIG51bWJlcl0gPSBkLm1hcF9jZW50ZXIgPyBbZC5tYXBfY2VudGVyLmxhdCwgZC5tYXBfY2VudGVyLmxuZ11cbiAgICAgIDogWzU0LjUyNjAsIDE1LjI1NTFdO1xuICAgIGNvbnN0IGluaXRpYWxWaWV3OiB7IGNlbnRlcjogW251bWJlciwgbnVtYmVyXTsgem9vbTogbnVtYmVyIH0gPSB7XG4gICAgLy8gY2VudGVyIG9mIGV1cm9wZSAob25seSBmb3IgaW5pdGlhbCBsb2FkKVxuICAgICAgY2VudGVyOiBtYXBDZW50ZXIsXG4gICAgICB6b29tOiBkLnpvb20sXG4gICAgfTtcblxuICAgIC8vIGlmIHRoZSBtYXAgYW5kIHRoZSBtYXJrZXJzIGFscmVhZHkgZXhpc3RcbiAgICAvLyB1cGRhdGUgdGhlIGFscmVhZHkgZXhpc3RpbmcgbGF5ZXJzLlxuICAgIGlmICh0aGlzLm1hcEluc3RhbmNlICYmIHRoaXMubWFya2VyTGF5ZXIpIHtcbiAgICAgIHRoaXMuYnVpbGRNYXJrZXJzKG1hcmtlcnMpO1xuICAgICAgdGhpcy5maXRNYXBUb0JvdW5kcyhtYXJrZXJzLm1hcCgobSkgPT4gbS5jb29yZHMpLCBkLnpvb20pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBvbmx5IGNhbGxlZCBvbmNlLCBvbiBjb21wb25lbnQgaW5pdCFcbiAgICAgIF9zZXRJbnN0YW5jZTogKGluc3RhbmNlKSA9PiB7XG4gICAgICAgIHRoaXMubWFwSW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgLy8gY2VudGVyIHRoZSBtYXAgb24gdGhlIG1hcmtlcnNcbiAgICAgICAgdGhpcy5maXRNYXBUb0JvdW5kcyhtYXJrZXJzLm1hcCgobSkgPT4gbS5jb29yZHMpLCBkLnpvb20pO1xuICAgICAgICAvLyBsb2FkIGN1c3RvbSBtYXJrZXJzXG4gICAgICAgIHRoaXMuYnVpbGRNYXJrZXJzKG1hcmtlcnMpO1xuICAgICAgICB0aGlzLm1hcExvYWRlZCQubmV4dCh7IG1hcDogaW5zdGFuY2UsIG1hcmtlcnM6IHRoaXMubWFya2VyTGF5ZXIgfSk7XG4gICAgICB9LFxuICAgICAgY29udGFpbmVySWQ6ICdtYXAtY2FudmFzJyxcbiAgICAgIGxpYk9wdGlvbnM6IHtcbiAgICAgICAgYXR0cmlidXRpb25Db250cm9sOiBmYWxzZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmxpYk9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgdGlsZUxheWVyczogW3tcbiAgICAgICAgLy8gdXJsOiAnaHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvbGlnaHRfYWxsL3t6fS97eH0ve3l9LnBuZycsXG4gICAgICAgIC8vIHVybDogJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJyxcbiAgICAgICAgdXJsOiAnaHR0cHM6Ly97c30uYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXJfbGFiZWxzX3VuZGVyL3t6fS97eH0ve3l9e3J9LnBuZycsXG4gICAgICAgIG9wdGlvbnM6IHt9XG4gICAgICB9XSxcbiAgICAgIGluaXRpYWxWaWV3LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTWFya2Vyc1N0YXRlKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGNvbnN0IG1hcmtlciA9IHRoaXMuZ2V0TWFya2VyQnlJZChpZCk7XG4gICAgICBpZiAobWFya2VyKSB7XG4gICAgICAgIG1hcmtlci5zZXRJY29uKE1BUktFUl9JQ09OX1NFTEVDVEVEKTtcbiAgICAgICAgbWFya2VyLm9wZW5Qb3B1cCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXJrZXIgPSB0aGlzLmdldFNlbGVjdGVkTWFya2VyKCk7XG4gICAgICBpZiAobWFya2VyKSB7XG4gICAgICAgIG1hcmtlci5zZXRJY29uKE1BUktFUl9JQ09OKTtcbiAgICAgICAgbWFya2VyLmNsb3NlUG9wdXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE1hcmtlckJ5SWQgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGxldCBtYXJrZXIgPSBudWxsO1xuICAgIHRoaXMubWFwSW5zdGFuY2UuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgaWYgKGAke2xheWVyLmlkfWAgPT09IGlkKSB7XG4gICAgICAgICAgbWFya2VyID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbWFya2VyO1xuICB9O1xuXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRNYXJrZXIgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlciA9IG51bGw7XG4gICAgdGhpcy5tYXBJbnN0YW5jZS5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICBjb25zdCB7IGljb24gfSA9IGxheWVyLm9wdGlvbnMgfHwge307XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGljb24/Lm9wdGlvbnM/LmNsYXNzTmFtZSB8fCAnJztcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGNsYXNzTmFtZS5pbmNsdWRlcygnc2VsZWN0ZWQnKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICBtYXJrZXIgPSBsYXllcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBtYXJrZXI7XG4gIH07XG5cbiAgcHJpdmF0ZSBmaXRNYXBUb0JvdW5kcyhib3VuZHMsIHpvb20gPSAxMCkge1xuICAgIGlmICh0aGlzLm1hcEluc3RhbmNlKSB7XG4gICAgICB0aGlzLm1hcEluc3RhbmNlLmZpdEJvdW5kcyhib3VuZHMsIHtcbiAgICAgICAgbWF4Wm9vbTogem9vbSxcbiAgICAgICAgcGFkZGluZzogWzIwLCAyMF1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ21hcCBpbnN0YW5jZSBpcyBtaXNzaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBtYXJrZXJzIHdpdGggYSBjdXN0b20gaWNvbiBhbmQgYWRkcyB0aGVtIHRvIHRoZSBtYXAuXG4gICAqIEBwYXJhbSBtYXJrZXJzIGFuIGFycmF5IG9mIG1hcmtlcnNcbiAgICovXG4gIHByaXZhdGUgYnVpbGRNYXJrZXJzKG1hcmtlcnM6IE1hcmtlcldpdGhJRFtdKSB7XG4gICAgaWYgKCFtYXJrZXJzKSByZXR1cm47XG4gICAgLy8gcmVtb3ZlIGFsbCBleGlzdGluZyBtYXJrZXJzXG4gICAgaWYgKHRoaXMubWFya2VyTGF5ZXIpIHtcbiAgICAgIHRoaXMubWFya2VyTGF5ZXIuY2xlYXJMYXllcnMoKTtcbiAgICAgIHRoaXMubWFwSW5zdGFuY2UucmVtb3ZlTGF5ZXIodGhpcy5tYXJrZXJMYXllcik7XG4gICAgfVxuICAgIGNvbnN0IG1hcmtlckdyb3VwID0gTC5tYXJrZXJDbHVzdGVyR3JvdXAoXG4gICAgICB7XG4gICAgICAgIG1heENsdXN0ZXJSYWRpdXM6IDEwLFxuICAgICAgICBkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbTogOFxuICAgICAgfVxuICAgICk7XG4gICAgbWFya2Vycy5mb3JFYWNoKCh7XG4gICAgICBjb29yZHMsIHRlbXBsYXRlLCBpZCwgc2x1Z1xuICAgIH0pID0+IHtcbiAgICAgIC8vIGNyZWF0ZSBjdXN0b20gaWNvbiBtYXJrZXJcbiAgICAgIGNvbnN0IG5ld01hcmtlciA9IEwubWFya2VyKGNvb3JkcywgeyBpY29uOiBNQVJLRVJfSUNPTiB9KTtcbiAgICAgIGlmIChpZCAmJiBzbHVnKSB7XG4gICAgICAgIG5ld01hcmtlci5pZCA9IGlkO1xuICAgICAgICBuZXdNYXJrZXIuc2x1ZyA9IHNsdWc7XG4gICAgICB9XG4gICAgICBuZXdNYXJrZXJcbiAgICAgICAgLy8gYWRkIHRoZSBtYXJrZXIgdG8gdGhlIGdyb3VwXG4gICAgICAgIC5hZGRUbyhtYXJrZXJHcm91cClcbiAgICAgICAgLy8gYWRkIHRoZSBvbi1jbGljayB0b29sdGlwXG4gICAgICAgIC5iaW5kUG9wdXAodGVtcGxhdGUsIHtcbiAgICAgICAgICBjbG9zZUJ1dHRvbjogZmFsc2VcbiAgICAgICAgfSk7XG5cbiAgICAgIG5ld01hcmtlci5nZXRQb3B1cCgpLm9uKCdyZW1vdmUnLCAoeyB0YXJnZXQgfSkgPT4ge1xuICAgICAgICB0YXJnZXQuX3NvdXJjZS5zZXRJY29uKE1BUktFUl9JQ09OKTtcbiAgICAgIH0pO1xuXG4gICAgICBuZXdNYXJrZXIuZ2V0UG9wdXAoKS5vbignYWRkJywgKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgdGFyZ2V0Ll9zb3VyY2Uuc2V0SWNvbihNQVJLRVJfSUNPTl9TRUxFQ1RFRCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBhZGQgdGhlIG1hcmtlcnMgdG8gdGhlIG1hcCBpbnN0YW5jZVxuICAgIHRoaXMubWFwSW5zdGFuY2UuYWRkTGF5ZXIobWFya2VyR3JvdXApO1xuICAgIC8vIHVwZGF0ZSB0aGUgbWFya2VyIGxheWVyIGluc3RhbmNlXG4gICAgdGhpcy5tYXJrZXJMYXllciA9IG1hcmtlckdyb3VwO1xuICB9XG59XG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvZGF0YS1zb3VyY2VzL21hcC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzdCLE9BQU8sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQTBCL0IsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JCLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLGFBQWE7Q0FDekIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xDLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNsQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDckIsU0FBUyxFQUFFLHNCQUFzQjtDQUNsQyxDQUFDLENBQUM7QUFFSCxNQUFNLE9BQU8sT0FBUSxTQUFRLFVBQVU7SUFBdkM7O1FBU0UsZUFBVSxHQUFtQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBNEVuQyxrQkFBYSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDckMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFD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bkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwRGF0YSwgTWFya2VyRGF0YSB9IGZyb20gJ0BuZXQ3L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnbGVhZmxldC5tYXJrZXJjbHVzdGVyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbi8vIGxlYWZsZXQgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSB3aW5kb3csXG4vLyBhIGRvdWJsZSBpbXBvcnQgcmVzdWx0cyBpbiBlcnJvcnMgd2l0aCB0b29sdGlwcy5cbi8vIGRlY2xhcmUgY29uc3QgTDtcblxuaW50ZXJmYWNlIENvb3JkcyB7IGxhdDogbnVtYmVyOyBsbmc6IG51bWJlciB9XG5cbmludGVyZmFjZSBNYXJrZXIgZXh0ZW5kcyBDb29yZHMge1xuICBsYWJlbDogc3RyaW5nO1xuICBkZWZhdWx0X2xhYmVsOiBzdHJpbmc7XG59XG5cbnR5cGUgVGltZWxpbmVSZXNwb25zZSA9IHtcbiAgaWQ/OiBudW1iZXI7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgem9vbTogbnVtYmVyO1xuICBtYXBfY2VudGVyOiBDb29yZHM7XG4gIG1hcmtlcnM6IE1hcmtlcltdO1xufVtdXG5cbmludGVyZmFjZSBNYXJrZXJXaXRoSUQgZXh0ZW5kcyBNYXJrZXJEYXRhIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHNsdWc6IHN0cmluZztcbn1cblxuY29uc3QgTUFSS0VSX0lDT04gPSBMLmljb24oe1xuICBpY29uVXJsOiAnL2Fzc2V0cy9waW4ucG5nJyxcbiAgaWNvblNpemU6IFsyMCwgMzBdLFxuICBwb3B1cEFuY2hvcjogWzAsIC0yMF0sXG4gIGljb25BbmNob3I6IFsxMCwgMzBdLFxuICBjbGFzc05hbWU6ICdtYXJrZXItaWNvbidcbn0pO1xuXG5jb25zdCBNQVJLRVJfSUNPTl9TRUxFQ1RFRCA9IEwuaWNvbih7XG4gIGljb25Vcmw6ICcvYXNzZXRzL3Bpbi1zZWxlY3RlZC5wbmcnLFxuICBpY29uU2l6ZTogWzIwLCAzMF0sXG4gIHBvcHVwQW5jaG9yOiBbMCwgLTIwXSxcbiAgY2xhc3NOYW1lOiAnbWFya2VyLWljb24tc2VsZWN0ZWQnXG59KTtcblxuZXhwb3J0IGNsYXNzIE1yTWFwRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgaWQ6IHN0cmluZztcblxuICAvKiogSW5zdGFuY2Ugb2YgdGhlIGxlYWZsZXQgbWFwICovXG4gIG1hcEluc3RhbmNlO1xuXG4gIC8qKiBJbnN0YW5jZSBvZiB0aGUgbWFya2VyIGxheWVyR3JvdXAgKi9cbiAgbWFya2VyTGF5ZXI7XG5cbiAgbWFwTG9hZGVkJDogU3ViamVjdDxMLk1hcD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGE6IFRpbWVsaW5lUmVzcG9uc2UpOiBNYXBEYXRhIHtcbiAgICBsZXQgbWFya2VyczogTWFya2VyV2l0aElEW107XG4gICAgY29uc3QgZCA9IGRhdGEuZmluZCgoeikgPT4gei56b29tKTtcbiAgICBpZiAoZGF0YS5maW5kKChhKSA9PiBhLm1hcmtlcnMpKSB7XG4gICAgICBtYXJrZXJzID0gZGF0YVxuICAgICAgICAubWFwKChhcmVhKSA9PiAoYXJlYS5tYXJrZXJzXG4gICAgICAgICAgLm1hcCgobSkgPT4gKHtcbiAgICAgICAgICAvLyBjb252ZXJ0IHRvIGxlYWZsZXQgbWFya2VyIGZvcm1hdFxuICAgICAgICAgICAgY29vcmRzOiBbK20ubGF0LCArbS5sbmddIGFzIFtudW1iZXIsIG51bWJlcl0sXG4gICAgICAgICAgICB0ZW1wbGF0ZTogbS5sYWJlbCA/PyBtLmRlZmF1bHRfbGFiZWwsXG4gICAgICAgICAgICB0aXRsZTogbS5sYWJlbCA/PyBtLmRlZmF1bHRfbGFiZWwsXG4gICAgICAgICAgICBpZDogYXJlYS5pZCxcbiAgICAgICAgICAgIHNsdWc6IGFyZWEuc2x1ZyxcbiAgICAgICAgICB9KSkpKVxuICAgICAgICAvLyBmbGF0dGVuIHRoZSBsaXN0IG9mIG1hcmtlcnNcbiAgICAgICAgLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYy5jb25jYXQodmFsKSwgW10pO1xuICAgIH1cbiAgICBjb25zdCBtYXBDZW50ZXI6IFtudW1iZXIsIG51bWJlcl0gPSBkLm1hcF9jZW50ZXIgPyBbZC5tYXBfY2VudGVyLmxhdCwgZC5tYXBfY2VudGVyLmxuZ11cbiAgICAgIDogWzU0LjUyNjAsIDE1LjI1NTFdO1xuICAgIGNvbnN0IGluaXRpYWxWaWV3OiB7IGNlbnRlcjogW251bWJlciwgbnVtYmVyXTsgem9vbTogbnVtYmVyIH0gPSB7XG4gICAgLy8gY2VudGVyIG9mIGV1cm9wZSAob25seSBmb3IgaW5pdGlhbCBsb2FkKVxuICAgICAgY2VudGVyOiBtYXBDZW50ZXIsXG4gICAgICB6b29tOiBkLnpvb20sXG4gICAgfTtcblxuICAgIC8vIGlmIHRoZSBtYXAgYW5kIHRoZSBtYXJrZXJzIGFscmVhZHkgZXhpc3RcbiAgICAvLyB1cGRhdGUgdGhlIGFscmVhZHkgZXhpc3RpbmcgbGF5ZXJzLlxuICAgIGlmICh0aGlzLm1hcEluc3RhbmNlICYmIHRoaXMubWFya2VyTGF5ZXIpIHtcbiAgICAgIHRoaXMuYnVpbGRNYXJrZXJzKG1hcmtlcnMpO1xuICAgICAgdGhpcy5maXRNYXBUb0JvdW5kcyhtYXJrZXJzLm1hcCgobSkgPT4gbS5jb29yZHMpLCBkLnpvb20pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBvbmx5IGNhbGxlZCBvbmNlLCBvbiBjb21wb25lbnQgaW5pdCFcbiAgICAgIF9zZXRJbnN0YW5jZTogKGluc3RhbmNlKSA9PiB7XG4gICAgICAgIHRoaXMubWFwSW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgLy8gY2VudGVyIHRoZSBtYXAgb24gdGhlIG1hcmtlcnNcbiAgICAgICAgdGhpcy5maXRNYXBUb0JvdW5kcyhtYXJrZXJzLm1hcCgobSkgPT4gbS5jb29yZHMpLCBkLnpvb20pO1xuICAgICAgICAvLyBsb2FkIGN1c3RvbSBtYXJrZXJzXG4gICAgICAgIHRoaXMuYnVpbGRNYXJrZXJzKG1hcmtlcnMpO1xuICAgICAgICB0aGlzLm1hcExvYWRlZCQubmV4dCh7IG1hcDogaW5zdGFuY2UsIG1hcmtlcnM6IHRoaXMubWFya2VyTGF5ZXIgfSk7XG4gICAgICB9LFxuICAgICAgY29udGFpbmVySWQ6ICdtYXAtY2FudmFzJyxcbiAgICAgIGxpYk9wdGlvbnM6IHtcbiAgICAgICAgYXR0cmlidXRpb25Db250cm9sOiBmYWxzZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmxpYk9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgdGlsZUxheWVyczogW3tcbiAgICAgICAgLy8gdXJsOiAnaHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvbGlnaHRfYWxsL3t6fS97eH0ve3l9LnBuZycsXG4gICAgICAgIC8vIHVybDogJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJyxcbiAgICAgICAgdXJsOiAnaHR0cHM6Ly97c30uYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXJfbGFiZWxzX3VuZGVyL3t6fS97eH0ve3l9e3J9LnBuZycsXG4gICAgICAgIG9wdGlvbnM6IHt9XG4gICAgICB9XSxcbiAgICAgIGluaXRpYWxWaWV3LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTWFya2Vyc1N0YXRlKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGNvbnN0IG1hcmtlciA9IHRoaXMuZ2V0TWFya2VyQnlJZChpZCk7XG4gICAgICBpZiAobWFya2VyKSB7XG4gICAgICAgIG1hcmtlci5zZXRJY29uKE1BUktFUl9JQ09OX1NFTEVDVEVEKTtcbiAgICAgICAgbWFya2VyLm9wZW5Qb3B1cCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXJrZXIgPSB0aGlzLmdldFNlbGVjdGVkTWFya2VyKCk7XG4gICAgICBpZiAobWFya2VyKSB7XG4gICAgICAgIG1hcmtlci5zZXRJY29uKE1BUktFUl9JQ09OKTtcbiAgICAgICAgbWFya2VyLmNsb3NlUG9wdXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE1hcmtlckJ5SWQgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGxldCBtYXJrZXIgPSBudWxsO1xuICAgIHRoaXMubWFwSW5zdGFuY2UuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgaWYgKGAke2xheWVyLmlkfWAgPT09IGlkKSB7XG4gICAgICAgICAgbWFya2VyID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbWFya2VyO1xuICB9O1xuXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRNYXJrZXIgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlciA9IG51bGw7XG4gICAgdGhpcy5tYXBJbnN0YW5jZS5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICBjb25zdCB7IGljb24gfSA9IGxheWVyLm9wdGlvbnMgfHwge307XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGljb24/Lm9wdGlvbnM/LmNsYXNzTmFtZSB8fCAnJztcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGNsYXNzTmFtZS5pbmNsdWRlcygnc2VsZWN0ZWQnKTtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICBtYXJrZXIgPSBsYXllcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBtYXJrZXI7XG4gIH07XG5cbiAgcHJpdmF0ZSBmaXRNYXBUb0JvdW5kcyhib3VuZHMsIHpvb20gPSAxMCkge1xuICAgIGlmICh0aGlzLm1hcEluc3RhbmNlKSB7XG4gICAgICB0aGlzLm1hcEluc3RhbmNlLmZpdEJvdW5kcyhib3VuZHMsIHtcbiAgICAgICAgbWF4Wm9vbTogem9vbSxcbiAgICAgICAgcGFkZGluZzogWzIwLCAyMF1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ21hcCBpbnN0YW5jZSBpcyBtaXNzaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBtYXJrZXJzIHdpdGggYSBjdXN0b20gaWNvbiBhbmQgYWRkcyB0aGVtIHRvIHRoZSBtYXAuXG4gICAqIEBwYXJhbSBtYXJrZXJzIGFuIGFycmF5IG9mIG1hcmtlcnNcbiAgICovXG4gIHByaXZhdGUgYnVpbGRNYXJrZXJzKG1hcmtlcnM6IE1hcmtlcldpdGhJRFtdKSB7XG4gICAgaWYgKCFtYXJrZXJzKSByZXR1cm47XG4gICAgLy8gcmVtb3ZlIGFsbCBleGlzdGluZyBtYXJrZXJzXG4gICAgaWYgKHRoaXMubWFya2VyTGF5ZXIpIHtcbiAgICAgIHRoaXMubWFya2VyTGF5ZXIuY2xlYXJMYXllcnMoKTtcbiAgICAgIHRoaXMubWFwSW5zdGFuY2UucmVtb3ZlTGF5ZXIodGhpcy5tYXJrZXJMYXllcik7XG4gICAgfVxuICAgIGNvbnN0IG1hcmtlckdyb3VwID0gTC5tYXJrZXJDbHVzdGVyR3JvdXAoXG4gICAgICB7XG4gICAgICAgIG1heENsdXN0ZXJSYWRpdXM6IDEwLFxuICAgICAgICBkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbTogOFxuICAgICAgfVxuICAgICk7XG4gICAgbWFya2Vycy5mb3JFYWNoKCh7XG4gICAgICBjb29yZHMsIHRlbXBsYXRlLCBpZCwgc2x1Z1xuICAgIH0pID0+IHtcbiAgICAgIC8vIGNyZWF0ZSBjdXN0b20gaWNvbiBtYXJrZXJcbiAgICAgIGNvbnN0IG5ld01hcmtlciA9IEwubWFya2VyKGNvb3JkcywgeyBpY29uOiBNQVJLRVJfSUNPTiB9KTtcbiAgICAgIGlmIChpZCAmJiBzbHVnKSB7XG4gICAgICAgIG5ld01hcmtlci5pZCA9IGlkO1xuICAgICAgICBuZXdNYXJrZXIuc2x1ZyA9IHNsdWc7XG4gICAgICB9XG4gICAgICBuZXdNYXJrZXJcbiAgICAgICAgLy8gYWRkIHRoZSBtYXJrZXIgdG8gdGhlIGdyb3VwXG4gICAgICAgIC5hZGRUbyhtYXJrZXJHcm91cClcbiAgICAgICAgLy8gYWRkIHRoZSBvbi1jbGljayB0b29sdGlwXG4gICAgICAgIC5iaW5kUG9wdXAodGVtcGxhdGUsIHtcbiAgICAgICAgICBjbG9zZUJ1dHRvbjogZmFsc2VcbiAgICAgICAgfSk7XG5cbiAgICAgIG5ld01hcmtlci5nZXRQb3B1cCgpLm9uKCdyZW1vdmUnLCAoeyB0YXJnZXQgfSkgPT4ge1xuICAgICAgICB0YXJnZXQuX3NvdXJjZS5zZXRJY29uKE1BUktFUl9JQ09OKTtcbiAgICAgIH0pO1xuXG4gICAgICBuZXdNYXJrZXIuZ2V0UG9wdXAoKS5vbignYWRkJywgKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgdGFyZ2V0Ll9zb3VyY2Uuc2V0SWNvbihNQVJLRVJfSUNPTl9TRUxFQ1RFRCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBhZGQgdGhlIG1hcmtlcnMgdG8gdGhlIG1hcCBpbnN0YW5jZVxuICAgIHRoaXMubWFwSW5zdGFuY2UuYWRkTGF5ZXIobWFya2VyR3JvdXApO1xuICAgIC8vIHVwZGF0ZSB0aGUgbWFya2VyIGxheWVyIGluc3RhbmNlXG4gICAgdGhpcy5tYXJrZXJMYXllciA9IG1hcmtlckdyb3VwO1xuICB9XG59XG4iXX0=
@@ -123,10 +123,10 @@ export class MrResourceLayoutComponent extends AbstractLayout {
123
123
  }
124
124
  }
125
125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.ActivatedRoute }, { token: i1.ConfigurationService }, { token: i1.CommunicationService }, { token: i1.MainStateService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.MrLayoutStateService }, { token: i4.MrResourceModalService }, { token: i5.MrLocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrResourceLayoutComponent, selector: "mr-resource-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <ng-template #imageViewer>\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n </ng-template>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { kind: "component", type: i7.BreadcrumbsComponent, selector: "n7-breadcrumbs", inputs: ["data", "emit"] }, { kind: "component", type: i7.ButtonComponent, selector: "n7-button", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerToolsComponent, selector: "n7-image-viewer-tools", inputs: ["data", "emit"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.MiradorComponent, selector: "n7-mirador", inputs: ["data"] }, { kind: "component", type: i7.TextViewerComponent, selector: "n7-text-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i8.MrMetadataReadmoreComponent, selector: "mr-metadata-readmore", inputs: ["data", "emit"] }, { kind: "component", type: i9.ReadMoreComponent, selector: "mr-read-more", inputs: ["data"] }, { kind: "component", type: i10.MrMetadataDynamicComponent, selector: "mr-metadata-dynamic", inputs: ["data", "emit"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrResourceLayoutComponent, selector: "mr-resource-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { kind: "component", type: i7.BreadcrumbsComponent, selector: "n7-breadcrumbs", inputs: ["data", "emit"] }, { kind: "component", type: i7.ButtonComponent, selector: "n7-button", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerToolsComponent, selector: "n7-image-viewer-tools", inputs: ["data", "emit"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.MiradorComponent, selector: "n7-mirador", inputs: ["data"] }, { kind: "component", type: i7.TextViewerComponent, selector: "n7-text-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i8.MrMetadataReadmoreComponent, selector: "mr-metadata-readmore", inputs: ["data", "emit"] }, { kind: "component", type: i9.ReadMoreComponent, selector: "mr-read-more", inputs: ["data"] }, { kind: "component", type: i10.MrMetadataDynamicComponent, selector: "mr-metadata-dynamic", inputs: ["data", "emit"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
127
127
  }
128
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceLayoutComponent, decorators: [{
129
129
  type: Component,
130
- args: [{ selector: 'mr-resource-layout', template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <ng-template #imageViewer>\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n </ng-template>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n" }]
130
+ args: [{ selector: 'mr-resource-layout', template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n" }]
131
131
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.ActivatedRoute }, { type: i1.ConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.MrLayoutStateService }, { type: i4.MrResourceModalService }, { type: i5.MrLocaleService }] });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy9yZXNvdXJjZS1sYXlvdXQvcmVzb3VyY2UtbGF5b3V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy9yZXNvdXJjZS1sYXlvdXQvcmVzb3VyY2UtbGF5b3V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUNMLGNBQWMsRUFLZixNQUFNLDBCQUEwQixDQUFDO0FBR2xDLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxFQUNkLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztB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QUFJLElBQUksS0FBSyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNoQixFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVE7d0JBQ2pCLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixVQUFVLEVBQUUsY0FBYyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUM7d0JBQzNDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDO3FCQUNoRCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBbkZVLHlCQUF5QjttR0FBekIseUJBQXlCLGlGQ3ZFdEMsaTdWQThOQTs7NEZEdkphLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgRGF0YSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0TGF5b3V0LFxuICBDb21tdW5pY2F0aW9uU2VydmljZSxcbiAgTGF5b3V0c0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgTWFpblN0YXRlU2VydmljZVxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgTXJMYXlvdXRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNclJlc291cmNlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzb3VyY2UtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBNclJlc291cmNlTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vcmVzb3VyY2UtbGF5b3V0LmNvbmZpZyc7XG5pbXBvcnQgeyBNckltYWdlVmlld2VyRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycy9pbWFnZS12aWV3ZXIuZWgnO1xuaW1wb3J0IHsgTXJUZXh0Vmlld2VyRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycy90ZXh0LXZpZXdlci5laCc7XG5pbXBvcnQgeyBNckltYWdlVmlld2VyVG9vbHNFSCB9IGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzL2ltYWdlLXZpZXdlci10b29scy5laCc7XG5pbXBvcnQgeyBNckNvbGxlY3Rpb25FSCB9IGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzL2NvbGxlY3Rpb24uZWgnO1xuaW1wb3J0IHsgTXJJbWFnZVZpZXdlck92ZXJsYXlEZXRhaWxzRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycy9pbWFnZS12aWV3ZXItb3ZlcmxheS1kZXRhaWxzLmVoJztcbmltcG9ydCB7IE1yQnV0dG9uRUgsIE1yTWV0YWRhdGFEeW5hbWljRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycyc7XG5pbXBvcnQge1xuICBNckJyZWFkY3J1bWJzRFMsXG4gIE1yQnV0dG9uRFMsXG4gIE1yQ29sbGVjdGlvbkRTLFxuICBNckltYWdlVmlld2VyRFMsXG4gIE1ySW1hZ2VWaWV3ZXJUb29sc0RTLFxuICBNckluZm9Cb3hEUyxcbiAgTXJJbm5lclRpdGxlRFMsXG4gIE1ySXRlbVByZXZpZXdEUyxcbiAgTXJNZXRhZGF0YURTLFxuICBNclRleHRWaWV3ZXJEUyxcbiAgTXJSZXNvdXJjZVRhYnNEUyxcbiAgTXJJbWFnZVZpZXdlck92ZXJsYXlEZXRhaWxzRFMsXG4gIE1yTWV0YWRhdGFEeW5hbWljRFMsXG4gIE1ySW1hZ2VWaWV3ZXJJaWlmRFMsXG59IGZyb20gJy4uLy4uL2RhdGEtc291cmNlcyc7XG5pbXBvcnQgeyBNck1hcERTIH0gZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2VzL21hcC5kcyc7XG5pbXBvcnQgeyBNckxvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XG5cbmNvbnN0IERBVEFTT1VSQ0VfTUFQID0ge1xuICBicmVhZGNydW1iczogTXJCcmVhZGNydW1ic0RTLFxuICBidXR0b246IE1yQnV0dG9uRFMsXG4gIGNvbGxlY3Rpb246IE1yQ29sbGVjdGlvbkRTLFxuICBpbmZvOiBNckluZm9Cb3hEUyxcbiAgbWFwOiBNck1hcERTLFxuICBtZXRhZGF0YTogTXJNZXRhZGF0YURTLFxuICBwcmV2aWV3OiBNckl0ZW1QcmV2aWV3RFMsXG4gIHRhYnM6IE1yUmVzb3VyY2VUYWJzRFMsXG4gIHRleHQ6IE1yVGV4dFZpZXdlckRTLFxuICB0aXRsZTogTXJJbm5lclRpdGxlRFMsXG4gIHZpZXdlcjogTXJJbWFnZVZpZXdlckRTLFxuICAndmlld2VyLXRvb2xzJzogTXJJbWFnZVZpZXdlclRvb2xzRFMsXG4gICd2aWV3ZXItb3ZlcmxheS1kZXRhaWxzJzogTXJJbWFnZVZpZXdlck92ZXJsYXlEZXRhaWxzRFMsXG4gICd0ZXh0LXZpZXdlcic6IE1yVGV4dFZpZXdlckRTLFxuICAnbWV0YWRhdGEtZHluYW1pYyc6IE1yTWV0YWRhdGFEeW5hbWljRFMsXG4gICd2aWV3ZXItaWlpZic6IE1ySW1hZ2VWaWV3ZXJJaWlmRFMsXG59O1xuXG5jb25zdCBFVkVOVEhBTkRMRVJfTUFQID0ge1xuICB2aWV3ZXI6IE1ySW1hZ2VWaWV3ZXJFSCxcbiAgJ3ZpZXdlci10b29scyc6IE1ySW1hZ2VWaWV3ZXJUb29sc0VILFxuICAndmlld2VyLW92ZXJsYXktZGV0YWlscyc6IE1ySW1hZ2VWaWV3ZXJPdmVybGF5RGV0YWlsc0VILFxuICAndGV4dC12aWV3ZXInOiBNclRleHRWaWV3ZXJFSCxcbiAgY29sbGVjdGlvbjogTXJDb2xsZWN0aW9uRUgsXG4gICdtZXRhZGF0YS1keW5hbWljJzogTXJNZXRhZGF0YUR5bmFtaWNFSCxcbiAgYnV0dG9uOiBNckJ1dHRvbkVILFxuICAvLyBtYXA6IE1yTWFwRUhcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21yLXJlc291cmNlLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1sYXlvdXQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1yUmVzb3VyY2VMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdExheW91dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByb3V0ZXJEYXRhOiBEYXRhO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxheW91dHNDb25maWd1cmF0aW9uOiBMYXlvdXRzQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRpb246IENvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFpblN0YXRlOiBNYWluU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHVibGljIGxheW91dFN0YXRlOiBNckxheW91dFN0YXRlU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWxTZXJ2aWNlOiBNclJlc291cmNlTW9kYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2NhbGVTZXJ2aWNlOiBNckxvY2FsZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGxheW91dHNDb25maWd1cmF0aW9uLmdldCgnTXJSZXNvdXJjZUxheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvdXRlckRhdGE6IHRoaXMucm91dGVyRGF0YSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGNvbW11bmljYXRpb246IHRoaXMuY29tbXVuaWNhdGlvbixcbiAgICAgIG1haW5TdGF0ZTogdGhpcy5tYWluU3RhdGUsXG4gICAgICBsYXlvdXRTdGF0ZTogdGhpcy5sYXlvdXRTdGF0ZSxcbiAgICAgIG1vZGFsU2VydmljZTogdGhpcy5tb2RhbFNlcnZpY2UsXG4gICAgICBsb2NhbGVTZXJ2aWNlOiB0aGlzLmxvY2FsZVNlcnZpY2UsXG4gICAgICBvcHRpb25zOiB0aGlzLmNvbmZpZy5vcHRpb25zIHx8IHt9LFxuICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICByb3V0ZXI6IHRoaXMucm91dGVyXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoKHJvdXRlckRhdGEpID0+IHtcbiAgICAgIHRoaXMubGF5b3V0U3RhdGUuYWRkKCdjb250ZW50Jyk7XG4gICAgICB0aGlzLnJvdXRlckRhdGEgPSByb3V0ZXJEYXRhO1xuICAgICAgdGhpcy5sb2FkV2lkZ2V0cygpO1xuICAgICAgdGhpcy5vbkluaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95KCk7XG4gIH1cblxuICBsb2FkV2lkZ2V0cygpIHtcbiAgICBjb25zdCB7IGNvbmZpZ0lkIH0gPSB0aGlzLnJvdXRlckRhdGE7XG4gICAgY29uc3QgeyB0b3AsIGNvbnRlbnQgfSA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoY29uZmlnSWQpLnNlY3Rpb25zO1xuICAgIGNvbnN0IHNlY3Rpb25zID0gdG9wLmNvbmNhdChjb250ZW50KTtcbiAgICB0aGlzLndpZGdldHMgPSBbXTtcbiAgICBpZiAoc2VjdGlvbnMpIHtcbiAgICAgIHNlY3Rpb25zLmZvckVhY2goKHtcbiAgICAgICAgaWQsIHR5cGUsIG9wdGlvbnMsIHRvb2xzXG4gICAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZGdldE9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICB3aWRnZXRPcHRpb25zLmxvY2FsZVNlcnZpY2UgPSB0aGlzLmxvY2FsZVNlcnZpY2U7XG4gICAgICAgIHRoaXMud2lkZ2V0cy5wdXNoKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBvcHRpb25zOiB3aWRnZXRPcHRpb25zLFxuICAgICAgICAgIGRhdGFTb3VyY2U6IERBVEFTT1VSQ0VfTUFQW3R5cGVdLFxuICAgICAgICAgIGV2ZW50SGFuZGxlcjogRVZFTlRIQU5ETEVSX01BUFt0eXBlXVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaW1hZ2Ugdmlld2VyIG92ZXJsYXkgZGV0YWlsc1xuICAgICAgICBpZiAodHlwZSA9PT0gJ3ZpZXdlcicpIHtcbiAgICAgICAgICB0aGlzLndpZGdldHMucHVzaCh7XG4gICAgICAgICAgICBpZDogYCR7aWR9LW92ZXJsYXktZGV0YWlsc2AsXG4gICAgICAgICAgICBvcHRpb25zOiB3aWRnZXRPcHRpb25zLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogREFUQVNPVVJDRV9NQVBbYCR7dHlwZX0tb3ZlcmxheS1kZXRhaWxzYF0sXG4gICAgICAgICAgICBldmVudEhhbmRsZXI6IEVWRU5USEFORExFUl9NQVBbYCR7dHlwZX0tb3ZlcmxheS1kZXRhaWxzYF1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbWFnZSB2aWV3ZXIgdG9vbHNcbiAgICAgICAgaWYgKHR5cGUgPT09ICd2aWV3ZXInICYmIHRvb2xzKSB7XG4gICAgICAgICAgdGhpcy53aWRnZXRzLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGAke2lkfS10b29sc2AsXG4gICAgICAgICAgICBvcHRpb25zOiB3aWRnZXRPcHRpb25zLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogREFUQVNPVVJDRV9NQVBbYCR7dHlwZX0tdG9vbHNgXSxcbiAgICAgICAgICAgIGV2ZW50SGFuZGxlcjogRVZFTlRIQU5ETEVSX01BUFtgJHt0eXBlfS10b29sc2BdXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1yLXJlc291cmNlIG1yLWxheW91dFwiIFxuICAgICAqbmdJZj1cImxiLmRhdGFTb3VyY2UgJiYgbGIuZGF0YVNvdXJjZS5wYWdlQ29uZmlnXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnaXMtbG9hZGluZyc6ICggbGF5b3V0U3RhdGUuZ2V0JCgnY29udGVudCcpIHwgYXN5bmMgKSA9PSAnTE9BRElORycsXG4gICAgICAgICdpcy1lcnJvcic6ICggbGF5b3V0U3RhdGUuZ2V0JCgnY29udGVudCcpIHwgYXN5bmMgKSA9PSAnRVJST1InXG4gICAgICB9XCI+XG4gICAgPCEtLSBSRVNPVVJDRSBMQVlPVVQgQ09OVEVOVCAtLT5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsYXlvdXRTdGF0ZS5nZXQkKCdjb250ZW50JykgfCBhc3luY1wiPlxuICAgICAgICA8IS0tIGxvYWRpbmcgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMT0FESU5HJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWxheW91dF9fbG9hZGVyXCI+XG4gICAgICAgICAgICAgICAgPG43LWxvYWRlcj48L243LWxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIGVycm9yIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRVJST1InXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItbGF5b3V0X19lcnJvclwiPlxuICAgICAgICAgICAgICAgIDxoMj57eyBsYi5kYXRhU291cmNlLmVycm9yVGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgIDxwPnt7IGxiLmRhdGFTb3VyY2UuZXJyb3JEZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIHN1Y2Nlc3MgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTVUNDRVNTJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxiLmRhdGFTb3VyY2UucGFnZUNvbmZpZy5zZWN0aW9ucyBhcyBzZWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gUGFzcyB0aGUgbGlzdCBvZiBibG9ja3MgdG8gcmVuZGVyIHRvIHRoZSBibG9jayB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItcmVzb3VyY2VfX3RvcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYmxvY2tzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VjdGlvbnMudG9wIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItcmVzb3VyY2VfX2NvbnRlbnQgbXItc2lkZS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJsb2NrczsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlY3Rpb25zLmNvbnRlbnQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNibG9ja3MgbGV0LWxpc3Q+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBsaXN0XCI+XG4gICAgICAgIDxzZWN0aW9uICpuZ0lmPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cInt7ICdtci1yZXNvdXJjZV9fc2VjdGlvbiBtci1yZXNvdXJjZV9fJyArIHNlY3Rpb24udHlwZSB9fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi50eXBlXCI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIFRBQlMgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RhYnMnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiBsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LWFuY2hvci13cmFwcGVyIFtkYXRhXT1cInRhYi5hbmNob3JcIiBbY2xhc3Nlc109XCJ0YWIuY2xhc3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItcmVzb3VyY2VfX3RhYnMtaXRlbVwiPnt7IHRhYi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctYW5jaG9yLXdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBJTk5FUiBUSVRMRSAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1yZXNvdXJjZV9fdGl0bGUtY29udGVudCBtci1zaWRlLW1hcmdpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LWlubmVyLXRpdGxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaW5uZXItdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBDVVNUT00gQlVUVE9OIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1yZXNvdXJjZV9fYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bjctYnV0dG9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiBJSUlGIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid2aWV3ZXItaWlpZidcIj5cbiAgICAgICAgICAgICAgICAgICAgPG43LW1pcmFkb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbjctbWlyYWRvcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndmlld2VyJ1wiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW1hZ2VWaWV3ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bjctaW1hZ2Utdmlld2VyIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L243LWltYWdlLXZpZXdlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSU1BR0UgVklFV0VSIFRPT0xTIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LWltYWdlLXZpZXdlci10b29scyAqbmdJZj1cInNlY3Rpb24udG9vbHNcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWQgKyAnLXRvb2xzJ10uZHMub3V0JCB8IGFzeW5jXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkICsgJy10b29scyddLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaW1hZ2Utdmlld2VyLXRvb2xzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJTUFHRSBWSUVXRVIgT1ZFUkxBWSBERVRBSUxTIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxiLndpZGdldHNbc2VjdGlvbi5pZCArICctb3ZlcmxheS1kZXRhaWxzJ10uZHMub3V0JCB8IGFzeW5jIGFzIHZpZXdlckRldGFpbHNEYXRhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtci1yZXNvdXJjZV9fdmlld2VyLW92ZXJsYXktZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1yZXNvdXJjZV9fdmlld2VyLW92ZXJsYXktZGV0YWlsc19fY2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtci1yZXNvdXJjZV9fdmlld2VyLW92ZXJsYXktZGV0YWlsc19fY2xvc2UtbGlua1wiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImxiLmV2ZW50SGFuZGxlci5lbWl0T3V0ZXIoJ292ZXJsYXljbG9zZWNsaWNrJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1jbG9zZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInZpZXdlckRldGFpbHNEYXRhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbc2VjdGlvbi5pZCArICctb3ZlcmxheS1kZXRhaWxzJ10uZW1pdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgICAgICA8IS0tIE1FVEFEQVRBIFZJRVdFUiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWV0YWRhdGEnXCI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLW1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWN0aW9uLnRpdGxlXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtci1yZWFkLW1vcmUgW2RhdGFdPVwic2VjdGlvbi5yZWFkbW9yZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIHNlY3Rpb24/Lm9wdGlvbnM/LnJlYWRtb3JlIHx8IHNlY3Rpb24/Lm9wdGlvbnM/Lmdyb3VwUmVhZG1vcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugd2lob3V0UmVhZG1vcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtci1tZXRhZGF0YS1yZWFkbW9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbXItbWV0YWRhdGEtcmVhZG1vcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3dpaG91dFJlYWRtb3JlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG43LW1ldGFkYXRhLXZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctbWV0YWRhdGEtdmlld2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbXItcmVhZC1tb3JlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gTUVUQURBVEEgRFlOQU1JQyAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWV0YWRhdGEtZHluYW1pYydcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1yLW1ldGFkYXRhLWR5bmFtaWMgXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbXItbWV0YWRhdGEtZHluYW1pYz4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gQ09MTEVDVElPTiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sbGVjdGlvbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jIGFzIGNvbGxlY3Rpb24kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sbGVjdGlvbiQuaXRlbXM/Lmxlbmd0aCA+IDBcIiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay1jb2xsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzICpuZ0lmPVwic2VjdGlvbi50aXRsZVwiIGNsYXNzPVwibXItY29udGVudC1ibG9ja19fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VjdGlvbi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX2NvbnRlbnQge3sgc2VjdGlvbi5ncmlkID8gJ243LWdyaWQtJyArIHNlY3Rpb24uZ3JpZCA6ICcnIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbGVjdGlvbiQ/Lml0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIml0ZW1cIiBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uNy1pdGVtLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgXG4gICAgICAgICAgICAgICAgPCEtLSBJVEVNIFBSRVZJRVcgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3ByZXZpZXcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrIG1yLWNvbnRlbnQtYmxvY2staXRlbS1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWN0aW9uLnRpdGxlXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgW2RhdGFdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5kcy5vdXQkIHwgYXN5bmNcIiBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gVEVYVCBWSUVXRVIgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQtdmlld2VyJ1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay10ZXh0LXZpZXdlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzICpuZ0lmPVwic2VjdGlvbi50aXRsZVwiIGNsYXNzPVwibXItY29udGVudC1ibG9ja19fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzZWN0aW9uLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG43LXRleHQtdmlld2VyIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCIgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctdGV4dC12aWV3ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwhLS0gTUFQIC0tPlxuICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtYXAnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLW1hcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LW1hcCBbZGF0YV09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmRzLm91dCQgfCBhc3luY1wiIFtlbWl0XT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZW1pdFwiPjwvbjctbWFwPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gSU5GTyBCT1ggLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8tYm94J1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLWluZm8tYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWN0aW9uLnRpdGxlXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJveF9fbW9ja1wiPmluZm8tYm94PC9kaXY+ICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gQlJFQURDUlVNQlMgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2JyZWFkY3J1bWJzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bjctYnJlYWRjcnVtYnMgW2RhdGFdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5kcy5vdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uNy1icmVhZGNydW1icz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy9yZXNvdXJjZS1sYXlvdXQvcmVzb3VyY2UtbGF5b3V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy9yZXNvdXJjZS1sYXlvdXQvcmVzb3VyY2UtbGF5b3V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUNMLGNBQWMsRUFLZixNQUFNLDBCQUEwQixDQUFDO0FBR2xDLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxFQUNkLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztB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QUFJLElBQUksS0FBSyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNoQixFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVE7d0JBQ2pCLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixVQUFVLEVBQUUsY0FBYyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUM7d0JBQzNDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDO3FCQUNoRCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBbkZVLHlCQUF5QjttR0FBekIseUJBQXlCLGlGQ3ZFdEMsNjFWQTROQTs7NEZEckphLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgRGF0YSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0TGF5b3V0LFxuICBDb21tdW5pY2F0aW9uU2VydmljZSxcbiAgTGF5b3V0c0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgTWFpblN0YXRlU2VydmljZVxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgTXJMYXlvdXRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNclJlc291cmNlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzb3VyY2UtbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBNclJlc291cmNlTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vcmVzb3VyY2UtbGF5b3V0LmNvbmZpZyc7XG5pbXBvcnQgeyBNckltYWdlVmlld2VyRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycy9pbWFnZS12aWV3ZXIuZWgnO1xuaW1wb3J0IHsgTXJUZXh0Vmlld2VyRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycy90ZXh0LXZpZXdlci5laCc7XG5pbXBvcnQgeyBNckltYWdlVmlld2VyVG9vbHNFSCB9IGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzL2ltYWdlLXZpZXdlci10b29scy5laCc7XG5pbXBvcnQgeyBNckNvbGxlY3Rpb25FSCB9IGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzL2NvbGxlY3Rpb24uZWgnO1xuaW1wb3J0IHsgTXJJbWFnZVZpZXdlck92ZXJsYXlEZXRhaWxzRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycy9pbWFnZS12aWV3ZXItb3ZlcmxheS1kZXRhaWxzLmVoJztcbmltcG9ydCB7IE1yQnV0dG9uRUgsIE1yTWV0YWRhdGFEeW5hbWljRUggfSBmcm9tICcuLi8uLi9ldmVudC1oYW5kbGVycyc7XG5pbXBvcnQge1xuICBNckJyZWFkY3J1bWJzRFMsXG4gIE1yQnV0dG9uRFMsXG4gIE1yQ29sbGVjdGlvbkRTLFxuICBNckltYWdlVmlld2VyRFMsXG4gIE1ySW1hZ2VWaWV3ZXJUb29sc0RTLFxuICBNckluZm9Cb3hEUyxcbiAgTXJJbm5lclRpdGxlRFMsXG4gIE1ySXRlbVByZXZpZXdEUyxcbiAgTXJNZXRhZGF0YURTLFxuICBNclRleHRWaWV3ZXJEUyxcbiAgTXJSZXNvdXJjZVRhYnNEUyxcbiAgTXJJbWFnZVZpZXdlck92ZXJsYXlEZXRhaWxzRFMsXG4gIE1yTWV0YWRhdGFEeW5hbWljRFMsXG4gIE1ySW1hZ2VWaWV3ZXJJaWlmRFMsXG59IGZyb20gJy4uLy4uL2RhdGEtc291cmNlcyc7XG5pbXBvcnQgeyBNck1hcERTIH0gZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2VzL21hcC5kcyc7XG5pbXBvcnQgeyBNckxvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XG5cbmNvbnN0IERBVEFTT1VSQ0VfTUFQID0ge1xuICBicmVhZGNydW1iczogTXJCcmVhZGNydW1ic0RTLFxuICBidXR0b246IE1yQnV0dG9uRFMsXG4gIGNvbGxlY3Rpb246IE1yQ29sbGVjdGlvbkRTLFxuICBpbmZvOiBNckluZm9Cb3hEUyxcbiAgbWFwOiBNck1hcERTLFxuICBtZXRhZGF0YTogTXJNZXRhZGF0YURTLFxuICBwcmV2aWV3OiBNckl0ZW1QcmV2aWV3RFMsXG4gIHRhYnM6IE1yUmVzb3VyY2VUYWJzRFMsXG4gIHRleHQ6IE1yVGV4dFZpZXdlckRTLFxuICB0aXRsZTogTXJJbm5lclRpdGxlRFMsXG4gIHZpZXdlcjogTXJJbWFnZVZpZXdlckRTLFxuICAndmlld2VyLXRvb2xzJzogTXJJbWFnZVZpZXdlclRvb2xzRFMsXG4gICd2aWV3ZXItb3ZlcmxheS1kZXRhaWxzJzogTXJJbWFnZVZpZXdlck92ZXJsYXlEZXRhaWxzRFMsXG4gICd0ZXh0LXZpZXdlcic6IE1yVGV4dFZpZXdlckRTLFxuICAnbWV0YWRhdGEtZHluYW1pYyc6IE1yTWV0YWRhdGFEeW5hbWljRFMsXG4gICd2aWV3ZXItaWlpZic6IE1ySW1hZ2VWaWV3ZXJJaWlmRFMsXG59O1xuXG5jb25zdCBFVkVOVEhBTkRMRVJfTUFQID0ge1xuICB2aWV3ZXI6IE1ySW1hZ2VWaWV3ZXJFSCxcbiAgJ3ZpZXdlci10b29scyc6IE1ySW1hZ2VWaWV3ZXJUb29sc0VILFxuICAndmlld2VyLW92ZXJsYXktZGV0YWlscyc6IE1ySW1hZ2VWaWV3ZXJPdmVybGF5RGV0YWlsc0VILFxuICAndGV4dC12aWV3ZXInOiBNclRleHRWaWV3ZXJFSCxcbiAgY29sbGVjdGlvbjogTXJDb2xsZWN0aW9uRUgsXG4gICdtZXRhZGF0YS1keW5hbWljJzogTXJNZXRhZGF0YUR5bmFtaWNFSCxcbiAgYnV0dG9uOiBNckJ1dHRvbkVILFxuICAvLyBtYXA6IE1yTWFwRUhcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21yLXJlc291cmNlLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNvdXJjZS1sYXlvdXQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1yUmVzb3VyY2VMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdExheW91dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByb3V0ZXJEYXRhOiBEYXRhO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxheW91dHNDb25maWd1cmF0aW9uOiBMYXlvdXRzQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRpb246IENvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFpblN0YXRlOiBNYWluU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHVibGljIGxheW91dFN0YXRlOiBNckxheW91dFN0YXRlU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWxTZXJ2aWNlOiBNclJlc291cmNlTW9kYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2NhbGVTZXJ2aWNlOiBNckxvY2FsZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGxheW91dHNDb25maWd1cmF0aW9uLmdldCgnTXJSZXNvdXJjZUxheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvdXRlckRhdGE6IHRoaXMucm91dGVyRGF0YSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGNvbW11bmljYXRpb246IHRoaXMuY29tbXVuaWNhdGlvbixcbiAgICAgIG1haW5TdGF0ZTogdGhpcy5tYWluU3RhdGUsXG4gICAgICBsYXlvdXRTdGF0ZTogdGhpcy5sYXlvdXRTdGF0ZSxcbiAgICAgIG1vZGFsU2VydmljZTogdGhpcy5tb2RhbFNlcnZpY2UsXG4gICAgICBsb2NhbGVTZXJ2aWNlOiB0aGlzLmxvY2FsZVNlcnZpY2UsXG4gICAgICBvcHRpb25zOiB0aGlzLmNvbmZpZy5vcHRpb25zIHx8IHt9LFxuICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICByb3V0ZXI6IHRoaXMucm91dGVyXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoKHJvdXRlckRhdGEpID0+IHtcbiAgICAgIHRoaXMubGF5b3V0U3RhdGUuYWRkKCdjb250ZW50Jyk7XG4gICAgICB0aGlzLnJvdXRlckRhdGEgPSByb3V0ZXJEYXRhO1xuICAgICAgdGhpcy5sb2FkV2lkZ2V0cygpO1xuICAgICAgdGhpcy5vbkluaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95KCk7XG4gIH1cblxuICBsb2FkV2lkZ2V0cygpIHtcbiAgICBjb25zdCB7IGNvbmZpZ0lkIH0gPSB0aGlzLnJvdXRlckRhdGE7XG4gICAgY29uc3QgeyB0b3AsIGNvbnRlbnQgfSA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoY29uZmlnSWQpLnNlY3Rpb25zO1xuICAgIGNvbnN0IHNlY3Rpb25zID0gdG9wLmNvbmNhdChjb250ZW50KTtcbiAgICB0aGlzLndpZGdldHMgPSBbXTtcbiAgICBpZiAoc2VjdGlvbnMpIHtcbiAgICAgIHNlY3Rpb25zLmZvckVhY2goKHtcbiAgICAgICAgaWQsIHR5cGUsIG9wdGlvbnMsIHRvb2xzXG4gICAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZGdldE9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICB3aWRnZXRPcHRpb25zLmxvY2FsZVNlcnZpY2UgPSB0aGlzLmxvY2FsZVNlcnZpY2U7XG4gICAgICAgIHRoaXMud2lkZ2V0cy5wdXNoKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBvcHRpb25zOiB3aWRnZXRPcHRpb25zLFxuICAgICAgICAgIGRhdGFTb3VyY2U6IERBVEFTT1VSQ0VfTUFQW3R5cGVdLFxuICAgICAgICAgIGV2ZW50SGFuZGxlcjogRVZFTlRIQU5ETEVSX01BUFt0eXBlXVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaW1hZ2Ugdmlld2VyIG92ZXJsYXkgZGV0YWlsc1xuICAgICAgICBpZiAodHlwZSA9PT0gJ3ZpZXdlcicpIHtcbiAgICAgICAgICB0aGlzLndpZGdldHMucHVzaCh7XG4gICAgICAgICAgICBpZDogYCR7aWR9LW92ZXJsYXktZGV0YWlsc2AsXG4gICAgICAgICAgICBvcHRpb25zOiB3aWRnZXRPcHRpb25zLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogREFUQVNPVVJDRV9NQVBbYCR7dHlwZX0tb3ZlcmxheS1kZXRhaWxzYF0sXG4gICAgICAgICAgICBldmVudEhhbmRsZXI6IEVWRU5USEFORExFUl9NQVBbYCR7dHlwZX0tb3ZlcmxheS1kZXRhaWxzYF1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbWFnZSB2aWV3ZXIgdG9vbHNcbiAgICAgICAgaWYgKHR5cGUgPT09ICd2aWV3ZXInICYmIHRvb2xzKSB7XG4gICAgICAgICAgdGhpcy53aWRnZXRzLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGAke2lkfS10b29sc2AsXG4gICAgICAgICAgICBvcHRpb25zOiB3aWRnZXRPcHRpb25zLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogREFUQVNPVVJDRV9NQVBbYCR7dHlwZX0tdG9vbHNgXSxcbiAgICAgICAgICAgIGV2ZW50SGFuZGxlcjogRVZFTlRIQU5ETEVSX01BUFtgJHt0eXBlfS10b29sc2BdXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1yLXJlc291cmNlIG1yLWxheW91dFwiIFxuICAgICAqbmdJZj1cImxiLmRhdGFTb3VyY2UgJiYgbGIuZGF0YVNvdXJjZS5wYWdlQ29uZmlnXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnaXMtbG9hZGluZyc6ICggbGF5b3V0U3RhdGUuZ2V0JCgnY29udGVudCcpIHwgYXN5bmMgKSA9PSAnTE9BRElORycsXG4gICAgICAgICdpcy1lcnJvcic6ICggbGF5b3V0U3RhdGUuZ2V0JCgnY29udGVudCcpIHwgYXN5bmMgKSA9PSAnRVJST1InXG4gICAgICB9XCI+XG4gICAgPCEtLSBSRVNPVVJDRSBMQVlPVVQgQ09OVEVOVCAtLT5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsYXlvdXRTdGF0ZS5nZXQkKCdjb250ZW50JykgfCBhc3luY1wiPlxuICAgICAgICA8IS0tIGxvYWRpbmcgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMT0FESU5HJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWxheW91dF9fbG9hZGVyXCI+XG4gICAgICAgICAgICAgICAgPG43LWxvYWRlcj48L243LWxvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIGVycm9yIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRVJST1InXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItbGF5b3V0X19lcnJvclwiPlxuICAgICAgICAgICAgICAgIDxoMj57eyBsYi5kYXRhU291cmNlLmVycm9yVGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgIDxwPnt7IGxiLmRhdGFTb3VyY2UuZXJyb3JEZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIHN1Y2Nlc3MgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTVUNDRVNTJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxiLmRhdGFTb3VyY2UucGFnZUNvbmZpZy5zZWN0aW9ucyBhcyBzZWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gUGFzcyB0aGUgbGlzdCBvZiBibG9ja3MgdG8gcmVuZGVyIHRvIHRoZSBibG9jayB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItcmVzb3VyY2VfX3RvcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYmxvY2tzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VjdGlvbnMudG9wIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItcmVzb3VyY2VfX2NvbnRlbnQgbXItc2lkZS1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJsb2NrczsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlY3Rpb25zLmNvbnRlbnQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNibG9ja3MgbGV0LWxpc3Q+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBsaXN0XCI+XG4gICAgICAgIDxzZWN0aW9uICpuZ0lmPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICBjbGFzcz1cInt7ICdtci1yZXNvdXJjZV9fc2VjdGlvbiBtci1yZXNvdXJjZV9fJyArIHNlY3Rpb24udHlwZSB9fVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2VjdGlvbi50eXBlXCI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIFRBQlMgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RhYnMnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiBsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmRzLm91dCQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LWFuY2hvci13cmFwcGVyIFtkYXRhXT1cInRhYi5hbmNob3JcIiBbY2xhc3Nlc109XCJ0YWIuY2xhc3Nlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItcmVzb3VyY2VfX3RhYnMtaXRlbVwiPnt7IHRhYi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctYW5jaG9yLXdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBJTk5FUiBUSVRMRSAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1yZXNvdXJjZV9fdGl0bGUtY29udGVudCBtci1zaWRlLW1hcmdpblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LWlubmVyLXRpdGxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaW5uZXItdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBDVVNUT00gQlVUVE9OIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1yZXNvdXJjZV9fYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bjctYnV0dG9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiBJSUlGIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid2aWV3ZXItaWlpZidcIj5cbiAgICAgICAgICAgICAgICAgICAgPG43LW1pcmFkb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbjctbWlyYWRvcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgICAgICA8IS0tIElNQUdFIFZJRVdFUiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndmlld2VyJ1wiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bjctaW1hZ2Utdmlld2VyIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L243LWltYWdlLXZpZXdlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSU1BR0UgVklFV0VSIFRPT0xTIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LWltYWdlLXZpZXdlci10b29scyAqbmdJZj1cInNlY3Rpb24udG9vbHNcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWQgKyAnLXRvb2xzJ10uZHMub3V0JCB8IGFzeW5jXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkICsgJy10b29scyddLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaW1hZ2Utdmlld2VyLXRvb2xzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJTUFHRSBWSUVXRVIgT1ZFUkxBWSBERVRBSUxTIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxiLndpZGdldHNbc2VjdGlvbi5pZCArICctb3ZlcmxheS1kZXRhaWxzJ10uZHMub3V0JCB8IGFzeW5jIGFzIHZpZXdlckRldGFpbHNEYXRhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtci1yZXNvdXJjZV9fdmlld2VyLW92ZXJsYXktZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1yZXNvdXJjZV9fdmlld2VyLW92ZXJsYXktZGV0YWlsc19fY2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtci1yZXNvdXJjZV9fdmlld2VyLW92ZXJsYXktZGV0YWlsc19fY2xvc2UtbGlua1wiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImxiLmV2ZW50SGFuZGxlci5lbWl0T3V0ZXIoJ292ZXJsYXljbG9zZWNsaWNrJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibjctaWNvbi1jbG9zZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInZpZXdlckRldGFpbHNEYXRhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbc2VjdGlvbi5pZCArICctb3ZlcmxheS1kZXRhaWxzJ10uZW1pdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBcbiAgICAgICAgICAgICAgICA8IS0tIE1FVEFEQVRBIFZJRVdFUiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWV0YWRhdGEnXCI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLW1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWN0aW9uLnRpdGxlXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtci1yZWFkLW1vcmUgW2RhdGFdPVwic2VjdGlvbi5yZWFkbW9yZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIHNlY3Rpb24/Lm9wdGlvbnM/LnJlYWRtb3JlIHx8IHNlY3Rpb24/Lm9wdGlvbnM/Lmdyb3VwUmVhZG1vcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugd2lob3V0UmVhZG1vcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtci1tZXRhZGF0YS1yZWFkbW9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbXItbWV0YWRhdGEtcmVhZG1vcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3dpaG91dFJlYWRtb3JlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG43LW1ldGFkYXRhLXZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctbWV0YWRhdGEtdmlld2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbXItcmVhZC1tb3JlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gTUVUQURBVEEgRFlOQU1JQyAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWV0YWRhdGEtZHluYW1pYydcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1yLW1ldGFkYXRhLWR5bmFtaWMgXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbXItbWV0YWRhdGEtZHluYW1pYz4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gQ09MTEVDVElPTiAtLT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sbGVjdGlvbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jIGFzIGNvbGxlY3Rpb24kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sbGVjdGlvbiQuaXRlbXM/Lmxlbmd0aCA+IDBcIiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay1jb2xsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzICpuZ0lmPVwic2VjdGlvbi50aXRsZVwiIGNsYXNzPVwibXItY29udGVudC1ibG9ja19fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VjdGlvbi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX2NvbnRlbnQge3sgc2VjdGlvbi5ncmlkID8gJ243LWdyaWQtJyArIHNlY3Rpb24uZ3JpZCA6ICcnIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbGVjdGlvbiQ/Lml0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIml0ZW1cIiBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uNy1pdGVtLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgXG4gICAgICAgICAgICAgICAgPCEtLSBJVEVNIFBSRVZJRVcgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3ByZXZpZXcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrIG1yLWNvbnRlbnQtYmxvY2staXRlbS1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWN0aW9uLnRpdGxlXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuNy1pdGVtLXByZXZpZXcgW2RhdGFdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5kcy5vdXQkIHwgYXN5bmNcIiBbZW1pdF09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmVtaXRcIj4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gVEVYVCBWSUVXRVIgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQtdmlld2VyJ1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay10ZXh0LXZpZXdlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzICpuZ0lmPVwic2VjdGlvbi50aXRsZVwiIGNsYXNzPVwibXItY29udGVudC1ibG9ja19fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzZWN0aW9uLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG43LXRleHQtdmlld2VyIFtkYXRhXT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZHMub3V0JCB8IGFzeW5jXCIgW2VtaXRdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5lbWl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbjctdGV4dC12aWV3ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDwhLS0gTUFQIC0tPlxuICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtYXAnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLW1hcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG43LW1hcCBbZGF0YV09XCJsYi53aWRnZXRzW3NlY3Rpb24uaWRdLmRzLm91dCQgfCBhc3luY1wiIFtlbWl0XT1cImxiLndpZGdldHNbc2VjdGlvbi5pZF0uZW1pdFwiPjwvbjctbWFwPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gSU5GTyBCT1ggLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8tYm94J1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLWluZm8tYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJzZWN0aW9uLnRpdGxlXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWJveF9fbW9ja1wiPmluZm8tYm94PC9kaXY+ICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gQlJFQURDUlVNQlMgLS0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2JyZWFkY3J1bWJzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bjctYnJlYWRjcnVtYnMgW2RhdGFdPVwibGIud2lkZ2V0c1tzZWN0aW9uLmlkXS5kcy5vdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uNy1icmVhZGNydW1icz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1837,7 +1837,7 @@ class MrMapDS extends DataSource {
1837
1837
  .map((m) => ({
1838
1838
  // convert to leaflet marker format
1839
1839
  coords: [+m.lat, +m.lng],
1840
- template: m.default_label ?? m.label,
1840
+ template: m.label ?? m.default_label,
1841
1841
  title: m.label ?? m.default_label,
1842
1842
  id: area.id,
1843
1843
  slug: area.slug,
@@ -5409,11 +5409,11 @@ class MrResourceLayoutComponent extends AbstractLayout {
5409
5409
  }
5410
5410
  }
5411
5411
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.ActivatedRoute }, { token: i1.ConfigurationService }, { token: i1.CommunicationService }, { token: i1.MainStateService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: MrLayoutStateService }, { token: MrResourceModalService }, { token: MrLocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
5412
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrResourceLayoutComponent, selector: "mr-resource-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <ng-template #imageViewer>\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n </ng-template>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { kind: "component", type: i7.BreadcrumbsComponent, selector: "n7-breadcrumbs", inputs: ["data", "emit"] }, { kind: "component", type: i7.ButtonComponent, selector: "n7-button", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerToolsComponent, selector: "n7-image-viewer-tools", inputs: ["data", "emit"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.MiradorComponent, selector: "n7-mirador", inputs: ["data"] }, { kind: "component", type: i7.TextViewerComponent, selector: "n7-text-viewer", inputs: ["data", "emit"] }, { kind: "component", type: MrMetadataReadmoreComponent, selector: "mr-metadata-readmore", inputs: ["data", "emit"] }, { kind: "component", type: ReadMoreComponent, selector: "mr-read-more", inputs: ["data"] }, { kind: "component", type: MrMetadataDynamicComponent, selector: "mr-metadata-dynamic", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
5412
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrResourceLayoutComponent, selector: "mr-resource-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { kind: "component", type: i7.BreadcrumbsComponent, selector: "n7-breadcrumbs", inputs: ["data", "emit"] }, { kind: "component", type: i7.ButtonComponent, selector: "n7-button", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerToolsComponent, selector: "n7-image-viewer-tools", inputs: ["data", "emit"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.MiradorComponent, selector: "n7-mirador", inputs: ["data"] }, { kind: "component", type: i7.TextViewerComponent, selector: "n7-text-viewer", inputs: ["data", "emit"] }, { kind: "component", type: MrMetadataReadmoreComponent, selector: "mr-metadata-readmore", inputs: ["data", "emit"] }, { kind: "component", type: ReadMoreComponent, selector: "mr-read-more", inputs: ["data"] }, { kind: "component", type: MrMetadataDynamicComponent, selector: "mr-metadata-dynamic", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
5413
5413
  }
5414
5414
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceLayoutComponent, decorators: [{
5415
5415
  type: Component,
5416
- args: [{ selector: 'mr-resource-layout', template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <ng-template #imageViewer>\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n </ng-template>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n" }]
5416
+ args: [{ selector: 'mr-resource-layout', template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n" }]
5417
5417
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.ActivatedRoute }, { type: i1.ConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: MrLayoutStateService }, { type: MrResourceModalService }, { type: MrLocaleService }] });
5418
5418
 
5419
5419
  class SearchFacetsLayoutDS extends LayoutDataSource {