@net7/boilerplate-muruca 5.4.2 → 5.5.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.
@@ -20,6 +20,7 @@ export * from './timeline.ds';
20
20
  export * from './year-header.ds';
21
21
  export * from './gallery.ds';
22
22
  export * from './network.ds';
23
+ export * from './network-resource.ds';
23
24
  export * from './parallel-text-viewer.ds';
24
25
  // search layout
25
26
  export * from './search/search-page-title.ds';
@@ -37,4 +38,4 @@ export * from './search/advanced-search-tags.ds';
37
38
  export * from './metadata-dynamic.ds';
38
39
  // image-viewer-iiif
39
40
  export * from './image-viewer-iiif.ds';
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9kYXRhLXNvdXJjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsZ0JBQWdCO0FBQ2hCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxnQkFBZ0I7QUFDaEIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxlQUFlO0FBQ2YsY0FBYyw2QkFBNkIsQ0FBQztBQUM1Qyx5QkFBeUI7QUFDekIsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxtQkFBbUI7QUFDbkIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxvQkFBb0I7QUFDcEIsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYnMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9idXR0b24uZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9uLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGVudC5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcnMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZXJvLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2Utdmlld2VyLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2Utdmlld2VyLXRvb2xzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2Utdmlld2VyLW92ZXJsYXktZGV0YWlscy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2luZm8tYm94LmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaW5uZXItdGl0bGUuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pdGVtLXByZXZpZXcuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pdGVtLXByZXZpZXdzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXYuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS10YWJzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC12aWV3ZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lbGluZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3llYXItaGVhZGVyLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2FsbGVyeS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJhbGxlbC10ZXh0LXZpZXdlci5kcyc7XG4vLyBzZWFyY2ggbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcGFnZS10aXRsZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10aXRsZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtdGFncy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcGFnZS1kZXNjcmlwdGlvbi5kcyc7XG4vLyBzdGF0aWMgbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3N0YXRpYy1tZXRhZGF0YS5kcyc7XG4vLyBmb3JtIHdyYXBwZXJcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS13cmFwcGVyLWFjY29yZGlvbi5kcyc7XG4vLyBhZHZhbmNlZCBzZWFyY2ggbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9hZHZhbmNlZC1zZWFyY2gtdGFncy5kcyc7XG4vLyBtZXRhZGF0YS1keW5hbWljXG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhLWR5bmFtaWMuZHMnO1xuLy8gaW1hZ2Utdmlld2VyLWlpaWZcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2Utdmlld2VyLWlpaWYuZHMnO1xuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9kYXRhLXNvdXJjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxnQkFBZ0I7QUFDaEIsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGdCQUFnQjtBQUNoQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGVBQWU7QUFDZixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLHlCQUF5QjtBQUN6QixjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELG1CQUFtQjtBQUNuQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLG9CQUFvQjtBQUNwQixjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1icy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb24uZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LmRzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2hlcm8uZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS12aWV3ZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS12aWV3ZXItdG9vbHMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS12aWV3ZXItb3ZlcmxheS1kZXRhaWxzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaW5mby1ib3guZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbm5lci10aXRsZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW0tcHJldmlldy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW0tcHJldmlld3MuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhZGF0YS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL25hdi5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc291cmNlLXRhYnMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LXZpZXdlci5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWVsaW5lLmRzJztcbmV4cG9ydCAqIGZyb20gJy4veWVhci1oZWFkZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9nYWxsZXJ5LmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay5kcyc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmstcmVzb3VyY2UuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJhbGxlbC10ZXh0LXZpZXdlci5kcyc7XG4vLyBzZWFyY2ggbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcGFnZS10aXRsZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10aXRsZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtdGFncy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2gtcGFnZS1kZXNjcmlwdGlvbi5kcyc7XG4vLyBzdGF0aWMgbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3N0YXRpYy1tZXRhZGF0YS5kcyc7XG4vLyBmb3JtIHdyYXBwZXJcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS13cmFwcGVyLWFjY29yZGlvbi5kcyc7XG4vLyBhZHZhbmNlZCBzZWFyY2ggbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9hZHZhbmNlZC1zZWFyY2gtdGFncy5kcyc7XG4vLyBtZXRhZGF0YS1keW5hbWljXG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhLWR5bmFtaWMuZHMnO1xuLy8gaW1hZ2Utdmlld2VyLWlpaWZcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2Utdmlld2VyLWlpaWYuZHMnO1xuIl19
@@ -0,0 +1,50 @@
1
+ import { DataSource } from '@net7/core';
2
+ import { Subject } from 'rxjs';
3
+ import { Network } from 'vis-network';
4
+ export class MrNetworkResourceDS extends DataSource {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.legend = [];
8
+ this.networkListener$ = new Subject();
9
+ }
10
+ transform(data) {
11
+ setTimeout(() => {
12
+ const container = document.getElementById('demo-network');
13
+ if (!container) {
14
+ console.error('Container non trovato');
15
+ return;
16
+ }
17
+ try {
18
+ const { nodes } = data;
19
+ const { edges } = data;
20
+ const networkGroups = data?.groups || {};
21
+ const options = data.libOptions;
22
+ const mergedGroups = {
23
+ ...networkGroups,
24
+ ...(options?.groups || {})
25
+ };
26
+ // legenda
27
+ this.legend = [];
28
+ Object.keys(mergedGroups).forEach((key) => {
29
+ const group = mergedGroups[key];
30
+ this.legend.push({
31
+ key,
32
+ label: group.label || key,
33
+ color: group.color || '#cccccc'
34
+ });
35
+ });
36
+ const libOptions = {
37
+ ...options,
38
+ groups: mergedGroups
39
+ };
40
+ const network = new Network(container, { nodes, edges }, libOptions);
41
+ this.networkListener$.next(network);
42
+ }
43
+ catch (error) {
44
+ console.error('Errore inizializzazione', error);
45
+ }
46
+ }, 100);
47
+ return data;
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1yZXNvdXJjZS5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL2RhdGEtc291cmNlcy9uZXR3b3JrLXJlc291cmNlLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxVQUFVO0lBQW5EOztRQUdTLFdBQU0sR0FBdUQsRUFBRSxDQUFDO1FBRWhFLHFCQUFnQixHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBMkM1RCxDQUFDO0lBekNXLFNBQVMsQ0FBQyxJQUFJO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3ZDLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDO2dCQUNILE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLE1BQU0sYUFBYSxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNoQyxNQUFNLFlBQVksR0FBRztvQkFDbkIsR0FBRyxhQUFhO29CQUNoQixHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7aUJBQzNCLENBQUM7Z0JBRUYsVUFBVTtnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDeEMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDZixHQUFHO3dCQUNILEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUc7d0JBQ3pCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLFNBQVM7cUJBQ2hDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFSCxNQUFNLFVBQVUsR0FBRztvQkFDakIsR0FBRyxPQUFPO29CQUNWLE1BQU0sRUFBRSxZQUFZO2lCQUNyQixDQUFDO2dCQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDUixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmtEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAndmlzLW5ldHdvcmsnO1xuXG5leHBvcnQgY2xhc3MgTXJOZXR3b3JrUmVzb3VyY2VEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBpZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBsZWdlbmQ6IEFycmF5PHtrZXk6IHN0cmluZywgbGFiZWw6IHN0cmluZywgY29sb3I6IHN0cmluZ30+ID0gW107XG5cbiAgcHVibGljIG5ldHdvcmtMaXN0ZW5lciQ6IFN1YmplY3Q8TmV0d29yaz4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oZGF0YSk6IE5ldHdvcmtEYXRhIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vLW5ldHdvcmsnKTtcbiAgICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvbnRhaW5lciBub24gdHJvdmF0bycpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IG5vZGVzIH0gPSBkYXRhO1xuICAgICAgICBjb25zdCB7IGVkZ2VzIH0gPSBkYXRhO1xuICAgICAgICBjb25zdCBuZXR3b3JrR3JvdXBzID0gZGF0YT8uZ3JvdXBzIHx8IHt9O1xuICAgICAgICBjb25zdCBvcHRpb25zID0gZGF0YS5saWJPcHRpb25zO1xuICAgICAgICBjb25zdCBtZXJnZWRHcm91cHMgPSB7XG4gICAgICAgICAgLi4ubmV0d29ya0dyb3VwcyxcbiAgICAgICAgICAuLi4ob3B0aW9ucz8uZ3JvdXBzIHx8IHt9KVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGxlZ2VuZGFcbiAgICAgICAgdGhpcy5sZWdlbmQgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXMobWVyZ2VkR3JvdXBzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCBncm91cCA9IG1lcmdlZEdyb3Vwc1trZXldO1xuICAgICAgICAgIHRoaXMubGVnZW5kLnB1c2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgbGFiZWw6IGdyb3VwLmxhYmVsIHx8IGtleSxcbiAgICAgICAgICAgIGNvbG9yOiBncm91cC5jb2xvciB8fCAnI2NjY2NjYydcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbGliT3B0aW9ucyA9IHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIGdyb3VwczogbWVyZ2VkR3JvdXBzXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgbmV0d29yayA9IG5ldyBOZXR3b3JrKGNvbnRhaW5lciwgeyBub2RlcywgZWRnZXMgfSwgbGliT3B0aW9ucyk7XG4gICAgICAgIHRoaXMubmV0d29ya0xpc3RlbmVyJC5uZXh0KG5ldHdvcmspO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3JlIGluaXppYWxpenphemlvbmUnLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuIl19
@@ -1,5 +1,8 @@
1
+ // import { ParallelTextViewerData } from '@net7/components';
1
2
  import { DataSource } from '@net7/core';
2
3
  export class MrParallelTextViewerDS extends DataSource {
4
+ // protected transform(data: ParallelTextViewerData): ParallelTextViewerData {
5
+ // ^^^^^^^^^^^^^se va buildare components --- 17-12-2025^^^^^^^^^^^^^^^^^
3
6
  transform(data) {
4
7
  if (!data)
5
8
  return null;
@@ -51,17 +54,14 @@ export class MrParallelTextViewerDS extends DataSource {
51
54
  });
52
55
  }
53
56
  }
54
- const { enableClickOnEntities, toggleColumn,
55
- // searchId,
56
- // searchApi
57
- } = this.options || {};
57
+ const { enableClickOnEntities, toggleColumn, searchId, searchApi } = this.options || {};
58
58
  data.toggleColumn = toggleColumn;
59
59
  // force tei publisher endpoint value
60
60
  document.addEventListener('pb-page-ready', (ev) => {
61
61
  const { detail } = ev;
62
62
  detail.endpoint = data.endpoint;
63
63
  }, { once: true });
64
- // const params = new URLSearchParams(document.location.search);
64
+ const params = new URLSearchParams(document.location.search);
65
65
  // const id = params.get('id');
66
66
  this.setupViewClickListeners();
67
67
  /* if (data.docs[0]?.view === 'page' && id) {
@@ -114,20 +114,33 @@ export class MrParallelTextViewerDS extends DataSource {
114
114
  this.scrollElementsIntoView(ev.detail, 'chapter', '#view1');
115
115
  });
116
116
  }
117
- /* if (params.get('hq')) {
117
+ /* if (params.get('hq')) {
118
118
  if (searchApi) {
119
119
  const xmlQueryUrl = `${searchApi.url
120
120
  }?resource-id=${searchApi['resource-id']
121
121
  }&searchId=${searchId
122
122
  }&xml=${data.docs[0]?.xml
123
123
  }&${params.toString()}`;
124
+
124
125
  data.docs[0].url = xmlQueryUrl;
125
126
  data.docs[0].rootPath = 'api/mrcparts';
126
127
  }
127
- document.addEventListener('pb-end-update', (ev: any) => {
128
- this.scrollElementsIntoView(ev.detail, 'hq', '#view0');
129
- });
130
- } */
128
+ */
129
+ if (params.get('hq')) {
130
+ if (searchApi) {
131
+ const mainDoc = data.docs.find((doc) => doc.id === 'mainDoc');
132
+ if (mainDoc) {
133
+ const xmlQueryUrl = `${searchApi.url}?resource-id=${searchApi['resource-id']}&searchId=${searchId}&xml=${mainDoc.xml}&${params.toString()}`;
134
+ mainDoc.url = xmlQueryUrl;
135
+ mainDoc.rootPath = 'api/mrcparts';
136
+ }
137
+ }
138
+ // ..
139
+ }
140
+ document.addEventListener('pb-end-update', (ev) => {
141
+ this.scrollElementsIntoView(ev.detail, 'hq', '#transcription-view');
142
+ });
143
+ /* } */
131
144
  return data;
132
145
  }
133
146
  displayIndex() {
@@ -285,6 +298,13 @@ export class MrParallelTextViewerDS extends DataSource {
285
298
  }
286
299
  }
287
300
  }
301
+ else if (target && target.getAttribute('key') && target.getAttribute('scrollview') !== null) {
302
+ // Per scroll su indice
303
+ const key = target.getAttribute('key');
304
+ if (key) {
305
+ this.scrollToIndexElement(key);
306
+ }
307
+ }
288
308
  else if (target && this.output.toggleColumn === false) {
289
309
  if (target.__key
290
310
  && (target.className.includes('person')
@@ -340,14 +360,31 @@ export class MrParallelTextViewerDS extends DataSource {
340
360
  }
341
361
  else if (type === 'hq') {
342
362
  element = document
343
- .querySelector(`.n7-text-viewer ${view}`)
363
+ .querySelector(`.n7-parallel-text-viewer ${view}`)
344
364
  .shadowRoot.querySelector('.tei-em');
345
365
  }
346
- const container = document.querySelector(`.n7-text-viewer ${view}`);
366
+ const container = document.querySelector(`.n7-parallel-text-viewer ${view}`);
347
367
  if (element) {
348
368
  container.scrollTop = element.offsetTop;
349
369
  }
350
370
  }, 600);
351
371
  }
372
+ /**
373
+ * Scrolla all'elemento corrispondente nell'indice
374
+ */
375
+ scrollToIndexElement(key) {
376
+ setTimeout(() => {
377
+ const cleanKey = key.replace('#', '');
378
+ const views = document.querySelectorAll('.n7-parallel-text-viewer [id$="-view"]:not(#transcription-view)');
379
+ Array.from(views).some((view) => {
380
+ const target = view.shadowRoot?.querySelector(`#${cleanKey}`);
381
+ if (target) {
382
+ target.scrollIntoView({ behavior: 'smooth', block: 'center' });
383
+ return true;
384
+ }
385
+ return false;
386
+ });
387
+ }, 300);
388
+ }
352
389
  }
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwtdGV4dC12aWV3ZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9kYXRhLXNvdXJjZXMvcGFyYWxsZWwtdGV4dC12aWV3ZXIuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsVUFBVTtJQUcxQyxTQUFTLENBQUMsSUFBNEI7UUFDOUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV2Qjs7Ozs7Ozs7WUFRSTtRQUNKLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLDRCQUE0QjtZQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ3RFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM1QixDQUFDO29CQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENB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QUFDO2dCQUM3QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJhbGxlbFRleHRWaWV3ZXJEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBNclBhcmFsbGVsVGV4dFZpZXdlckRTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIGlkOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhOiBQYXJhbGxlbFRleHRWaWV3ZXJEYXRhKTogUGFyYWxsZWxUZXh0Vmlld2VyRGF0YSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gbnVsbDtcblxuICAgIC8qXG4gICAgaWYgKHRoaXMub3B0aW9ucy5mYWNzaW1pbGVPcHRpb25zICYmIGRhdGEuZmFjc2ltaWxlKSB7XG4gICAgICBpZiAoIWRhdGEuZmFjc2ltaWxlLm9wdGlvbnMpIHtcbiAgICAgICAgZGF0YS5mYWNzaW1pbGUub3B0aW9ucyA9IHt9O1xuICAgICAgfVxuICAgICAgT2JqZWN0LmtleXModGhpcy5vcHRpb25zLmZhY3NpbWlsZU9wdGlvbnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkYXRhLmZhY3NpbWlsZS5vcHRpb25zW2tleV0gPSB0aGlzLm9wdGlvbnMuZmFjc2ltaWxlT3B0aW9uc1trZXldO1xuICAgICAgfSk7XG4gICAgfSAqL1xuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcbiAgICAvLyBHZXN0aW9uZSBkZWxsZSBsaWJPcHRpb25zXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmxpYk9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFkYXRhLmxpYk9wdGlvbnMgfHwgdHlwZW9mIGRhdGEubGliT3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBkYXRhLmxpYk9wdGlvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMubGliT3B0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaWYgKCFkYXRhLmxpYk9wdGlvbnNba2V5XSB8fCB0eXBlb2YgZGF0YS5saWJPcHRpb25zW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBkYXRhLmxpYk9wdGlvbnNba2V5XSA9IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMubGliT3B0aW9uc1trZXldKS5mb3JFYWNoKChzdWJLZXkpID0+IHtcbiAgICAgICAgICAgIGRhdGEubGliT3B0aW9uc1trZXldW3N1YktleV0gPSB0aGlzLm9wdGlvbnMubGliT3B0aW9uc1trZXldW3N1YktleV07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBEZWJ1ZyBsaWJPcHRpb25zXG4gICAgICAvKiAgICAgICBjb25zb2xlLmxvZygnIERFQlVHIGxpYk9wdGlvbnM6Jywge1xuICAgICAgICAndGhpcy5vcHRpb25zLmxpYk9wdGlvbnMnOiB0aGlzLm9wdGlvbnMubGliT3B0aW9ucyxcbiAgICAgICAgJ2RhdGEubGliT3B0aW9ucyc6IGRhdGEubGliT3B0aW9ucyxcbiAgICAgICAgJ2RhdGEubGliT3B0aW9ucy5wYlBhZ2UnOiBkYXRhLmxpYk9wdGlvbnMucGJQYWdlLFxuICAgICAgICAndXJsSWdub3JlJzogZGF0YS5saWJPcHRpb25zLnBiUGFnZT8udXJsSWdub3JlXG4gICAgICB9KTsgKi9cbiAgICAgIH1cbiAgICAgIC8vIEdlc3Rpb25lIGRlbGxhIGdyaWRcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZ3JpZCkge1xuICAgICAgICBkYXRhLmdyaWQgPSB0aGlzLm9wdGlvbnMuZ3JpZDtcbiAgICAgIH1cbiAgICAgIC8vIEdlc3Rpb25lIGRlaSBwYW5lbHNcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFuZWxzKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5wYW5lbHMuZm9yRWFjaCgocGFuZWxQcm9wZXJ0aWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFuZWxJbmRleCA9IGRhdGEucGFuZWxzLmZpbmRJbmRleChcbiAgICAgICAgICAgIChwYW5lbCkgPT4gcGFuZWwuaWQgPT09IHBhbmVsUHJvcGVydGllcy5pZFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAocGFuZWxJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGRhdGEucGFuZWxzW3BhbmVsSW5kZXhdID0ge1xuICAgICAgICAgICAgICAuLi5kYXRhLnBhbmVsc1twYW5lbEluZGV4XSxcbiAgICAgICAgICAgICAgLi4ucGFuZWxQcm9wZXJ0aWVzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIGVuYWJsZUNsaWNrT25FbnRpdGllcywgdG9nZ2xlQ29sdW1uLFxuICAgICAgLy8gc2VhcmNoSWQsXG4gICAgICAvLyBzZWFyY2hBcGlcbiAgICB9ID0gdGhpcy5vcHRpb25zIHx8IHt9O1xuICAgIGRhdGEudG9nZ2xlQ29sdW1uID0gdG9nZ2xlQ29sdW1uO1xuICAgIC8vIGZvcmNlIHRlaSBwdWJsaXNoZXIgZW5kcG9pbnQgdmFsdWVcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3BiLXBhZ2UtcmVhZHknLFxuICAgICAgKGV2OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRldGFpbCB9ID0gZXY7XG4gICAgICAgIGRldGFpbC5lbmRwb2ludCA9IGRhdGEuZW5kcG9pbnQ7XG4gICAgICB9LFxuICAgICAgeyBvbmNlOiB0cnVlIH1cbiAgICApO1xuXG4gICAgLy8gY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIC8vIGNvbnN0IGlkID0gcGFyYW1zLmdldCgnaWQnKTtcblxuICAgIHRoaXMuc2V0dXBWaWV3Q2xpY2tMaXN0ZW5lcnMoKTtcblxuICAgIC8qICAgICBpZiAoZGF0YS5kb2NzWzBdPy52aWV3ID09PSAncGFnZScgJiYgaWQpIHtcbiAgICAgIGRhdGEuZG9jc1swXS52aWV3ID0gJ2Rpdic7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAncGItZW5kLXVwZGF0ZScsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgncGItdG9nZ2xlJywge1xuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICB2aWV3OiAncGFnZScsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVmcmVzaCcsXG4gICAgICAgICAgICAgICAgICBrZXk6ICd0cmFuc2NyaXB0aW9uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgncGItdG9nZ2xlJywge1xuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICB2aWV3OiAnc2luZ2xlJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgIGtleTogJ2FkZENoYW5uZWwnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwYi10b2dnbGUnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXc6ICdzaW5nbGUnLFxuICAgICAgICAgICAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVmcmVzaCcsXG4gICAgICAgICAgICAgICAgICBrZXk6ICdpbmRleCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBvbmNlOiB0cnVlIH1cbiAgICAgICk7XG4gICAgfSAqL1xuXG4gICAgaWYgKGVuYWJsZUNsaWNrT25FbnRpdGllcykge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGItZW5kLXVwZGF0ZScsIChldjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudHNJbnRvVmlldyhldi5kZXRhaWwsICdjaGFwdGVyJywgJyN2aWV3MScpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyogICAgIGlmIChwYXJhbXMuZ2V0KCdocScpKSB7XG4gICAgICBpZiAoc2VhcmNoQXBpKSB7XG4gICAgICAgIGNvbnN0IHhtbFF1ZXJ5VXJsID0gYCR7c2VhcmNoQXBpLnVybFxuICAgICAgICB9P3Jlc291cmNlLWlkPSR7c2VhcmNoQXBpWydyZXNvdXJjZS1pZCddXG4gICAgICAgIH0mc2VhcmNoSWQ9JHtzZWFyY2hJZFxuICAgICAgICB9JnhtbD0ke2RhdGEuZG9jc1swXT8ueG1sXG4gICAgICAgIH0mJHtwYXJhbXMudG9TdHJpbmcoKX1gO1xuICAgICAgICBkYXRhLmRvY3NbMF0udXJsID0geG1sUXVlcnlVcmw7XG4gICAgICAgIGRhdGEuZG9jc1swXS5yb290UGF0aCA9ICdhcGkvbXJjcGFydHMnO1xuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGItZW5kLXVwZGF0ZScsIChldjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudHNJbnRvVmlldyhldi5kZXRhaWwsICdocScsICcjdmlldzAnKTtcbiAgICAgIH0pO1xuICAgIH0gKi9cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGRpc3BsYXlJbmRleCgpIHtcbiAgICBpZiAodGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uKSB7XG4gICAgICB0aGlzLm91dHB1dC50b2dnbGVDb2x1bW4gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXR1cFZpZXdDbGlja0xpc3RlbmVycygpIHtcbiAgICBjb25zdCBhdHRhY2hMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgdmlld3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubjctcGFyYWxsZWwtdGV4dC12aWV3ZXIgW2lkJD1cIi12aWV3XCJdJyk7XG5cbiAgICAgICAgdmlld3MuZm9yRWFjaCgodmlldykgPT4ge1xuICAgICAgICAgIGlmICh2aWV3LmlkID09PSAndHJhbnNjcmlwdGlvbi12aWV3Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2aWV3LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIGlmICgodmlldyBhcyBhbnkpLl9fY2xpY2tMaXN0ZW5lckF0dGFjaGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2xpY2tMaXN0ZW5lciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFNhbHZhIGlsIHJpZmVyaW1lbnRvIGUgbWFyY2EgY29tZSBhdHRhY2NhdG9cbiAgICAgICAgICAgICh2aWV3IGFzIGFueSkuX19jbGlja0xpc3RlbmVyID0gY2xpY2tMaXN0ZW5lcjtcbiAgICAgICAgICAgICh2aWV3IGFzIGFueSkuX19jbGlja0xpc3RlbmVyQXR0YWNoZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBBdHRhY2NhIGlsIGxpc3RlbmVyIGluIGNhcHR1cmUgcGhhc2UgcGVyIGNhdHR1cmFyZSB0dXR0aSBpIGNsaWNrXG4gICAgICAgICAgICB2aWV3LnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGlja0xpc3RlbmVyLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSwgMTAwKTtcbiAgICB9O1xuXG4gICAgLy8gQXR0YWNjYSBhbCBwcmltbyBjYXJpY2FtZW50b1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BiLWVuZC11cGRhdGUnLCBhdHRhY2hMaXN0ZW5lcnMpO1xuXG4gICAgc2V0VGltZW91dChhdHRhY2hMaXN0ZW5lcnMsIDUwMCk7XG4gIH1cblxuICBvbkNsaWNrKHBheWxvYWQpIHtcbiAgICAvLyBjb25zb2xlLmxvZygn8J+UtSBvbkNsaWNrIGNoaWFtYXRvIScsIHBheWxvYWQpO1xuICAgIGxldCB0YXJnZXQgPSBudWxsO1xuICAgIGNvbnN0IGNsaWNrUGF0aCA9IHBheWxvYWQucGF0aCB8fCBwYXlsb2FkLmNvbXBvc2VkUGF0aCgpO1xuICAgIC8vIGNvbnNvbGUubG9nKCfwn5S1IGNsaWNrUGF0aDonLCBjbGlja1BhdGgpO1xuXG4gICAgLy8gY2hpdXN1cmEgYXBwYXJhdG8gY29uIHRhc3RvXG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSBjbGlja1BhdGguZmluZCgoZWwpID0+IGVsLmNsYXNzTmFtZVxuICAgICAgJiYgdHlwZW9mIGVsLmNsYXNzTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIGVsLmNsYXNzTmFtZS5pbmNsdWRlcygnY2xvc2VfYXBwJykpO1xuXG4gICAgaWYgKGNsb3NlQnV0dG9uKSB7XG4gICAgLy8gIGNvbnNvbGUubG9nKCdDbGljayByaWxldmF0byBzdWwgYm90dG9uZSBkaSBjaGl1c3VyYTonLCBjbG9zZUJ1dHRvbik7XG5cbiAgICAgIGNvbnN0IHBhcmVudEFwcEl0ZW0gPSBjbG9zZUJ1dHRvbi5jbG9zZXN0KCcudGVpLWFwcCcpO1xuICAgICAgaWYgKHBhcmVudEFwcEl0ZW0gJiYgcGFyZW50QXBwSXRlbS5zdHlsZSkge1xuICAgICAgICAvLyAgICBjb25zb2xlLmxvZygnQ2hpdXN1cmEgZGVsbFxcJ2VsZW1lbnRvIHRlaS1hcHAnKTtcbiAgICAgICAgcGFyZW50QXBwSXRlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAocGFyZW50QXBwSXRlbSBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgICAgIHBheWxvYWQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpbnNpZGVUZWlBcHAgPSBjbGlja1BhdGguZmluZCgoZWwpID0+IGVsLmNsYXNzTmFtZVxuICAgICAgJiYgdHlwZW9mIGVsLmNsYXNzTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIGVsLmNsYXNzTmFtZS5pbmNsdWRlcygndGVpLWFwcCcpKTtcblxuICAgIGlmIChpbnNpZGVUZWlBcHAgJiYgKGluc2lkZVRlaUFwcCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9PT0gJ2Jsb2NrJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoaXVzdXJhIG5vdGUgY29uIHRhc3RvXG4gICAgY29uc3QgY2xvc2VOb3RlQnV0dG9uID0gY2xpY2tQYXRoLmZpbmQoKGVsKSA9PiBlbC5jbGFzc05hbWVcbiAgICAgICYmIHR5cGVvZiBlbC5jbGFzc05hbWUgPT09ICdzdHJpbmcnXG4gICAgICAmJiBlbC5jbGFzc05hbWUuaW5jbHVkZXMoJ2Nsb3NlX25vdGUnKSk7XG5cbiAgICBpZiAoY2xvc2VOb3RlQnV0dG9uKSB7XG4gICAgLy8gIGNvbnNvbGUubG9nKCdDbGljayByaWxldmF0byBzdWwgYm90dG9uZSBkaSBjaGl1c3VyYSBub3RhOicsIGNsb3NlTm90ZUJ1dHRvbik7XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vdGVJdGVtID0gY2xvc2VOb3RlQnV0dG9uLmNsb3Nlc3QoJy5ub3RlLWl0ZW0nKTtcbiAgICAgIGlmIChwYXJlbnROb3RlSXRlbSAmJiBwYXJlbnROb3RlSXRlbS5zdHlsZSkge1xuICAgICAgICAvLyAgICBjb25zb2xlLmxvZygnQ2hpdXN1cmEgZGVsbFxcJ2VsZW1lbnRvIG5vdGUtaXRlbScpO1xuICAgICAgICBwYXJlbnROb3RlSXRlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAocGFyZW50Tm90ZUl0ZW0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9ICcnO1xuICAgICAgICBwYXlsb2FkLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBheWxvYWQucGF0aCkge1xuICAgICAgdGFyZ2V0ID0gcGF5bG9hZC5wYXRoLmZpbmQoXG4gICAgICAgICh7IHRhZ05hbWUgfSkgPT4gdGFnTmFtZSA9PT0gJ1BCLUhJR0hMSUdIVCdcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldCA9IHBheWxvYWQuY29tcG9zZWRQYXRoKCkuZmluZChcbiAgICAgICAgKHsgdGFnTmFtZSB9KSA9PiB0YWdOYW1lID09PSAnUEItSElHSExJR0hUJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ2FwcF9sZW0nKSB7XG4gICAgICBjb25zdCBhcHBJZCA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2tleScpO1xuICAgICAgLy8gY29uc29sZS5sb2coJ2FwcElkOicsIGFwcElkKTtcblxuICAgICAgLy8gUG9zaXppb25lIGVsZW1lbnRvIGNsaWNjYXRvXG4gICAgICBjb25zdCBjbGlja2VkRWxlbWVudFBvc2l0aW9uID0gKHRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICBjb25zdCBhcHBhcmF0dXNWaWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm43LXBhcmFsbGVsLXRleHQtdmlld2VyIFtpZCQ9XCItdmlld1wiXScpO1xuICAgICAgLy8gY29uc29sZS5sb2coJ051bWVybyBkaSB2aWV3IHRyb3ZhdGU6JywgYXBwYXJhdHVzVmlldy5sZW5ndGgpO1xuXG4gICAgICBsZXQgYW5jaG9yRWxlbWVudCA9IG51bGw7XG4gICAgICBsZXQgdGVpQXBwRWxlbWVudCA9IG51bGw7XG5cbiAgICAgIGFwcGFyYXR1c1ZpZXcuZm9yRWFjaCgodmlldykgPT4ge1xuICAgICAgICBpZiAodmlldy5zaGFkb3dSb290KSB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSB2aWV3LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHthcHBJZH1cIl1gKTtcbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIGlmICghYW5jaG9yRWxlbWVudCkge1xuICAgICAgICAgICAgICBhbmNob3JFbGVtZW50ID0gZm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGFwcEVsZW1lbnQgPSBmb3VuZC5jbG9zZXN0KCcudGVpLWFwcCcpO1xuICAgICAgICAgICAgaWYgKGFwcEVsZW1lbnQgJiYgIXRlaUFwcEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgdGVpQXBwRWxlbWVudCA9IGFwcEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRlaUFwcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gKHRlaUFwcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPT09ICdibG9jayc7XG5cbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS50cmFuc2Zvcm0gPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAodGVpQXBwRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG5cbiAgICAgICAgICAvLyBwb3NpemlvbmUgYXR0dWFsZVxuICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IHRlaUFwcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICAgICAgLy8gZGlmZmVyZW56YVxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uRGlmZmVyZW5jZSA9IGNsaWNrZWRFbGVtZW50UG9zaXRpb24gLSBlbGVtZW50UG9zaXRpb247XG5cbiAgICAgICAgICAvLyBzcG9zdGFtZW50b1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke3Bvc2l0aW9uRGlmZmVyZW5jZX1weClgO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ3RlaUFwcEVsZW1lbnQgbm9uIHRyb3ZhdG8hJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmdldEF0dHJpYnV0ZSgndHlwZScpID09PSAnbm90ZV9saW5lJykge1xuICAgICAgY29uc3Qgbm90ZUlkID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgna2V5Jyk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnbm90ZUlkJywgbm90ZUlkKTtcblxuICAgICAgY29uc3QgY2xpY2tlZEVsZW1lbnRQb3NpdGlvbiA9ICh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgY29uc3QgYXBwYXJhdHVzVmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjYXBwYXJhdG8tdmlldycpO1xuXG4gICAgICBjb25zdCBhbmNob3JFbGVtZW50ID0gYXBwYXJhdHVzVmlld1xuICAgICAgICA/LnNoYWRvd1Jvb3RcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yKGAjJHtub3RlSWR9YCk7XG5cbiAgICAgIGNvbnN0IHRlaU5vdGVFbGVtZW50ID0gYW5jaG9yRWxlbWVudFxuICAgICAgICA/IGFuY2hvckVsZW1lbnQuY2xvc2VzdCgnLm5vdGUtaXRlbScpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGlmICh0ZWlOb3RlRWxlbWVudCkge1xuICAgICAgICAvLyBWZXJpZmljYSBzZSDDqCB2aXNpYmlsZVxuICAgICAgICBjb25zdCBpc1Zpc2libGUgPSAodGVpTm90ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPT09ICdibG9jayc7XG5cbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblxuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgKHRlaU5vdGVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgICAgICAgIC8vIHBvc2l6aW9uZSBhdHR1YWxlXG4gICAgICAgICAgY29uc3QgZWxlbWVudFBvc2l0aW9uID0gdGVpTm90ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICAgICAgLy8gZGlmZmVyZW56YVxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uRGlmZmVyZW5jZSA9IGNsaWNrZWRFbGVtZW50UG9zaXRpb24gLSBlbGVtZW50UG9zaXRpb247XG5cbiAgICAgICAgICAvLyBzcG9zdGFtZW50b1xuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHtwb3NpdGlvbkRpZmZlcmVuY2V9cHgpYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9PT0gZmFsc2UpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGFyZ2V0Ll9fa2V5XG4gICAgICAgICYmICh0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCdwZXJzb24nKVxuICAgICAgICAgIHx8IHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoJ3BsYWNlJykpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50c0ludG9WaWV3KHRhcmdldCwgJ2VudGl0eScsICcjdGV4dC12aWV3ZXItaW5kZXgnKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID0gZmFsc2U7XG4gIH1cblxuICB2aWV3TGlzdGVuZXJVcGRhdGUoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdwYi1zdGFydC11cGRhdGUnLFxuICAgICAgZnVuY3Rpb24gX2xpc3RlbmVyKCkge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwYi1zdGFydC11cGRhdGUnLCBfbGlzdGVuZXIsIHRydWUpO1xuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlVmlldyh2aWV3LCByZWZyZXNoKSB7XG4gICAgc2V0VGltZW91dChcbiAgICAgICh2LCByKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBURVNUIENIQU5HRSBWSUVXOiAke3ZpZXd9YCk7XG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwYi10b2dnbGUnLCB7XG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHZpZXc6IHYsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGFjdGlvbjogciA/ICdyZWZyZXNoJyA6ICcnLFxuICAgICAgICAgICAgICBrZXk6ICd0cmFuc2NyaXB0aW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICA2MDAsXG4gICAgICB2aWV3LFxuICAgICAgcmVmcmVzaFxuICAgICk7XG4gIH1cblxuICBzY3JvbGxFbGVtZW50c0ludG9WaWV3KHRhcmdldCwgdHlwZSwgdmlldykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IGVsZW1lbnQ6IGFueTtcbiAgICAgIGlmICh0eXBlID09PSAnY2hhcHRlcicpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLm43LXRleHQtdmlld2VyICN2aWV3MCcpXG4gICAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdwYi1oaWdobGlnaHQnKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBoaWdobGlnaHQgPSBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjdmlldzAnKVxuICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgncGItaGlnaGxpZ2h0Jyk7XG5cbiAgICAgICAgICBjb25zdCBoaWdobGlnaHRJZCA9IGhpZ2hsaWdodFtoaWdobGlnaHQubGVuZ3RoIC0gMV0uaWQ7IC8vIHMueFxuXG4gICAgICAgICAgY29uc3QgZnJhZ21lbnROdW1iZXIgPSBoaWdobGlnaHRJZC5yZXBsYWNlKCcuJywgJ1xcXFwuJyk7XG5cbiAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKHZpZXcpXG4gICAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAjJHtmcmFnbWVudE51bWJlcn1gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZW50aXR5Jykge1xuICAgICAgICBjb25zdCBrZXkgPSB0YXJnZXQuX19rZXk7XG4gICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKGAubjctdGV4dC12aWV3ZXIgJHt2aWV3fWApXG4gICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgIyR7a2V5fWApO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnaHEnKSB7XG4gICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKGAubjctdGV4dC12aWV3ZXIgJHt2aWV3fWApXG4gICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRlaS1lbScpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAubjctdGV4dC12aWV3ZXIgJHt2aWV3fWApO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgfVxuICAgIH0sIDYwMCk7XG4gIH1cbn1cbiJdfQ==
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwtdGV4dC12aWV3ZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9kYXRhLXNvdXJjZXMvcGFyYWxsZWwtdGV4dC12aWV3ZXIuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQVU7SUFHcEQsOEVBQThFO0lBQzlFLHlFQUF5RTtJQUMvRCxTQUFTLENBQUMsSUFBUztRQUMzQixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXZCOzs7Ozs7OztZQVFJO1FBQ0osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsNEJBQTRCO1lBQzFCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQztnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQzt3QkFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzVCLENBQUM7b0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO3dCQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0RSxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxtQkFBbUI7Z0JBQ3JCOzs7OztzQkFLTTtZQUNOLENBQUM7WUFDRCxzQkFBc0I7WUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hDLENBQUM7WUFDRCxzQkFBc0I7WUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtvQkFDOUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ3RDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLGVBQWUsQ0FBQyxFQUFFLENBQzNDLENBQUM7b0JBRUYsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRzs0QkFDeEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQzs0QkFDMUIsR0FBRyxlQUFlO3lCQUNuQixDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sRUFDSixxQkFBcUIsRUFBRSxZQUFZLEVBQ25DLFFBQVEsRUFDUixTQUFTLEVBQ1YsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxxQ0FBcUM7UUFDckMsUUFBUSxDQUFDLGdCQUFnQixDQUN2QixlQUFlLEVBQ2YsQ0FBQyxFQUFlLEVBQUUsRUFBRTtZQUNsQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxDQUFDLEVBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQ2YsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsK0JBQStCO1FBRS9CLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRS9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQTRDSTtRQUVKLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7ZUFXTztRQUVQLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUM7Z0JBRTlELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osTUFBTSxXQUFXLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FDakMsZ0JBQWdCLFNBQVMsQ0FBQyxhQUFhLENBQ3ZDLGFBQWEsUUFDYixRQUFRLE9BQU8sQ0FBQyxHQUNoQixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUV4QixPQUFPLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztvQkFDMUIsT0FBTyxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDO1lBQ0QsS0FBSztRQUNQLENBQUM7UUFDRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO1lBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHdDQUF3QyxDQUFDLENBQUM7Z0JBRWxGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDckIsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLG9CQUFvQixFQUFFLENBQUM7d0JBQ3JDLE9BQU87b0JBQ1QsQ0FBQztvQkFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDcEIsSUFBSyxJQUFZLENBQUMsdUJBQXVCLEVBQUUsQ0FBQzs0QkFDMUMsT0FBTzt3QkFDVCxDQUFDO3dCQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7NEJBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3RCLENBQUMsQ0FBQzt3QkFFRiw4Q0FBOEM7d0JBQzdDLElBQVksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDO3dCQUM3QyxJQUFZLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO3dCQUU3QyxtRUFBbUU7d0JBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDakUsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQztRQUVGLCtCQUErQjtRQUMvQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRTVELFVBQVUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFPO1FBQ2IsZ0RBQWdEO1FBQ2hELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6RCwyQ0FBMkM7UUFFM0MsOEJBQThCO1FBQzlCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTO2VBQ2xELE9BQU8sRUFBRSxDQUFDLFNBQVMsS0FBSyxRQUFRO2VBQ2hDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFekMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNsQix3RUFBd0U7WUFFdEUsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pDLHFEQUFxRDtnQkFDckQsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUNwQyxhQUE2QixDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzFCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTO2VBQ25ELE9BQU8sRUFBRSxDQUFDLFNBQVMsS0FBSyxRQUFRO2VBQ2hDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdkMsSUFBSSxZQUFZLElBQUssWUFBNEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzVFLE9BQU87UUFDVCxDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTO2VBQ3RELE9BQU8sRUFBRSxDQUFDLFNBQVMsS0FBSyxRQUFRO2VBQ2hDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFMUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUN0QixpRkFBaUY7WUFFL0UsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxJQUFJLGNBQWMsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNDLHVEQUF1RDtnQkFDdkQsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUNyQyxjQUE4QixDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzFCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDeEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUM1QyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDbEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUM1QyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxnQ0FBZ0M7WUFFaEMsOEJBQThCO1lBQzlCLE1BQU0sc0JBQXNCLEdBQUksTUFBc0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUVuRixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUMxRixnRUFBZ0U7WUFFaEUsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQztZQUV6QixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQy9ELElBQUksS0FBSyxFQUFFLENBQUM7d0JBQ1YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDOzRCQUNuQixhQUFhLEdBQUcsS0FBSyxDQUFDO3dCQUN4QixDQUFDO3dCQUVELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQzdDLElBQUksVUFBVSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ2pDLGFBQWEsR0FBRyxVQUFVLENBQUM7d0JBQzdCLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLFNBQVMsR0FBSSxhQUE2QixDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDO2dCQUUzRSxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNiLGFBQTZCLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7b0JBQ3JELGFBQTZCLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RELENBQUM7cUJBQU0sQ0FBQztvQkFDTCxhQUE2QixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO29CQUV2RCxvQkFBb0I7b0JBQ3BCLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFFbEUsYUFBYTtvQkFDYixNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztvQkFFcEUsY0FBYztvQkFDYixhQUE2QixDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsY0FBYyxrQkFBa0IsS0FBSyxDQUFDO2dCQUN6RixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxpQ0FBaUM7WUFFakMsTUFBTSxzQkFBc0IsR0FBSSxNQUFzQixDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDO1lBRW5GLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUUvRSxNQUFNLGFBQWEsR0FBRyxhQUFhO2dCQUNqQyxFQUFFLFVBQVU7Z0JBQ1osRUFBRSxhQUFhLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRWhDLE1BQU0sY0FBYyxHQUFHLGFBQWE7Z0JBQ2xDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNULElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLHlCQUF5QjtnQkFDekIsTUFBTSxTQUFTLEdBQUksY0FBOEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQztnQkFFNUUsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDYixjQUE4QixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO29CQUV0RCxjQUE4QixDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUN2RCxDQUFDO3FCQUFNLENBQUM7b0JBQ0wsY0FBOEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztvQkFFeEQsb0JBQW9CO29CQUNwQixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQUM7b0JBRW5FLGFBQWE7b0JBQ2IsTUFBTSxrQkFBa0IsR0FBRyxzQkFBc0IsR0FBRyxlQUFlLENBQUM7b0JBRXBFLGNBQWM7b0JBQ2IsY0FBOEIsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGNBQWMsa0JBQWtCLEtBQUssQ0FBQztnQkFDMUYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzlGLHVCQUF1QjtZQUN2QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDeEQsSUFDRSxNQUFNLENBQUMsS0FBSzttQkFDVCxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzt1QkFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDeEMsQ0FBQztnQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7O1lBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsUUFBUSxDQUFDLGdCQUFnQixDQUN2QixpQkFBaUIsRUFDakIsU0FBUyxTQUFTO1lBQ2hCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxFQUNELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTztRQUN0QixVQUFVLENBQ1IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDUCw0Q0FBNEM7WUFDNUMsUUFBUSxDQUFDLGFBQWEsQ0FDcEIsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMzQixNQUFNLEVBQUU7b0JBQ04sVUFBVSxFQUFFO3dCQUNWLElBQUksRUFBRSxDQUFDO3FCQUNSO29CQUNELE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDMUIsR0FBRyxFQUFFLGVBQWU7aUJBQ3JCO2FBQ0YsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLEVBQ0QsR0FBRyxFQUNILElBQUksRUFDSixPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUk7UUFDdkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksT0FBWSxDQUFDO1lBQ2pCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixJQUNFLFFBQVE7cUJBQ0wsYUFBYSxDQUFDLHdCQUF3QixDQUFDO3FCQUN2QyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUMzQyxDQUFDO29CQUNELE1BQU0sU0FBUyxHQUFHLFFBQVE7eUJBQ3ZCLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQzt5QkFDdkMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUUvQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNO29CQUU5RCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFdkQsT0FBTyxHQUFHLFFBQVE7eUJBQ2YsYUFBYSxDQUFDLElBQUksQ0FBQzt5QkFDbkIsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsNEJBQTRCLElBQUksRUFBRSxDQUFDO3FCQUNqRCxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLDRCQUE0QixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxHQUFXO1FBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsaUVBQWlFLENBQUMsQ0FBQztZQUUzRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzlELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1YsTUFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUNoRixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgeyBQYXJhbGxlbFRleHRWaWV3ZXJEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBNclBhcmFsbGVsVGV4dFZpZXdlckRTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIGlkOiBzdHJpbmc7XG5cbiAgLy8gcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhOiBQYXJhbGxlbFRleHRWaWV3ZXJEYXRhKTogUGFyYWxsZWxUZXh0Vmlld2VyRGF0YSB7XG4gIC8vIF5eXl5eXl5eXl5eXl5zZSB2YSBidWlsZGFyZSBjb21wb25lbnRzIC0tLSAxNy0xMi0yMDI1Xl5eXl5eXl5eXl5eXl5eXl5cbiAgcHJvdGVjdGVkIHRyYW5zZm9ybShkYXRhOiBhbnkpOiBhbnkge1xuICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XG5cbiAgICAvKlxuICAgIGlmICh0aGlzLm9wdGlvbnMuZmFjc2ltaWxlT3B0aW9ucyAmJiBkYXRhLmZhY3NpbWlsZSkge1xuICAgICAgaWYgKCFkYXRhLmZhY3NpbWlsZS5vcHRpb25zKSB7XG4gICAgICAgIGRhdGEuZmFjc2ltaWxlLm9wdGlvbnMgPSB7fTtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5rZXlzKHRoaXMub3B0aW9ucy5mYWNzaW1pbGVPcHRpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgZGF0YS5mYWNzaW1pbGUub3B0aW9uc1trZXldID0gdGhpcy5vcHRpb25zLmZhY3NpbWlsZU9wdGlvbnNba2V5XTtcbiAgICAgIH0pO1xuICAgIH0gKi9cbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgLy8gR2VzdGlvbmUgZGVsbGUgbGliT3B0aW9uc1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5saWJPcHRpb25zKSB7XG4gICAgICAgIGlmICghZGF0YS5saWJPcHRpb25zIHx8IHR5cGVvZiBkYXRhLmxpYk9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZGF0YS5saWJPcHRpb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5vcHRpb25zLmxpYk9wdGlvbnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmICghZGF0YS5saWJPcHRpb25zW2tleV0gfHwgdHlwZW9mIGRhdGEubGliT3B0aW9uc1trZXldICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgZGF0YS5saWJPcHRpb25zW2tleV0gPSB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5vcHRpb25zLmxpYk9wdGlvbnNba2V5XSkuZm9yRWFjaCgoc3ViS2V5KSA9PiB7XG4gICAgICAgICAgICBkYXRhLmxpYk9wdGlvbnNba2V5XVtzdWJLZXldID0gdGhpcy5vcHRpb25zLmxpYk9wdGlvbnNba2V5XVtzdWJLZXldO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gRGVidWcgbGliT3B0aW9uc1xuICAgICAgLyogICAgICAgY29uc29sZS5sb2coJyBERUJVRyBsaWJPcHRpb25zOicsIHtcbiAgICAgICAgJ3RoaXMub3B0aW9ucy5saWJPcHRpb25zJzogdGhpcy5vcHRpb25zLmxpYk9wdGlvbnMsXG4gICAgICAgICdkYXRhLmxpYk9wdGlvbnMnOiBkYXRhLmxpYk9wdGlvbnMsXG4gICAgICAgICdkYXRhLmxpYk9wdGlvbnMucGJQYWdlJzogZGF0YS5saWJPcHRpb25zLnBiUGFnZSxcbiAgICAgICAgJ3VybElnbm9yZSc6IGRhdGEubGliT3B0aW9ucy5wYlBhZ2U/LnVybElnbm9yZVxuICAgICAgfSk7ICovXG4gICAgICB9XG4gICAgICAvLyBHZXN0aW9uZSBkZWxsYSBncmlkXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmdyaWQpIHtcbiAgICAgICAgZGF0YS5ncmlkID0gdGhpcy5vcHRpb25zLmdyaWQ7XG4gICAgICB9XG4gICAgICAvLyBHZXN0aW9uZSBkZWkgcGFuZWxzXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnBhbmVscykge1xuICAgICAgICB0aGlzLm9wdGlvbnMucGFuZWxzLmZvckVhY2goKHBhbmVsUHJvcGVydGllcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhbmVsSW5kZXggPSBkYXRhLnBhbmVscy5maW5kSW5kZXgoXG4gICAgICAgICAgICAocGFuZWwpID0+IHBhbmVsLmlkID09PSBwYW5lbFByb3BlcnRpZXMuaWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHBhbmVsSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBkYXRhLnBhbmVsc1twYW5lbEluZGV4XSA9IHtcbiAgICAgICAgICAgICAgLi4uZGF0YS5wYW5lbHNbcGFuZWxJbmRleF0sXG4gICAgICAgICAgICAgIC4uLnBhbmVsUHJvcGVydGllc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7XG4gICAgICBlbmFibGVDbGlja09uRW50aXRpZXMsIHRvZ2dsZUNvbHVtbixcbiAgICAgIHNlYXJjaElkLFxuICAgICAgc2VhcmNoQXBpXG4gICAgfSA9IHRoaXMub3B0aW9ucyB8fCB7fTtcbiAgICBkYXRhLnRvZ2dsZUNvbHVtbiA9IHRvZ2dsZUNvbHVtbjtcbiAgICAvLyBmb3JjZSB0ZWkgcHVibGlzaGVyIGVuZHBvaW50IHZhbHVlXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdwYi1wYWdlLXJlYWR5JyxcbiAgICAgIChldjogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZXRhaWwgfSA9IGV2O1xuICAgICAgICBkZXRhaWwuZW5kcG9pbnQgPSBkYXRhLmVuZHBvaW50O1xuICAgICAgfSxcbiAgICAgIHsgb25jZTogdHJ1ZSB9XG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoKTtcbiAgICAvLyBjb25zdCBpZCA9IHBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgICB0aGlzLnNldHVwVmlld0NsaWNrTGlzdGVuZXJzKCk7XG5cbiAgICAvKiAgICAgaWYgKGRhdGEuZG9jc1swXT8udmlldyA9PT0gJ3BhZ2UnICYmIGlkKSB7XG4gICAgICBkYXRhLmRvY3NbMF0udmlldyA9ICdkaXYnO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ3BiLWVuZC11cGRhdGUnLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3BiLXRvZ2dsZScsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmlldzogJ3BhZ2UnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlZnJlc2gnLFxuICAgICAgICAgICAgICAgICAga2V5OiAndHJhbnNjcmlwdGlvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3BiLXRvZ2dsZScsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmlldzogJ3NpbmdsZScsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVmcmVzaCcsXG4gICAgICAgICAgICAgICAgICBrZXk6ICdhZGRDaGFubmVsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgncGItdG9nZ2xlJywge1xuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICB2aWV3OiAnc2luZ2xlJyxcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlZnJlc2gnLFxuICAgICAgICAgICAgICAgICAga2V5OiAnaW5kZXgnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0sXG4gICAgICAgIHsgb25jZTogdHJ1ZSB9XG4gICAgICApO1xuICAgIH0gKi9cblxuICAgIGlmIChlbmFibGVDbGlja09uRW50aXRpZXMpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BiLWVuZC11cGRhdGUnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnRzSW50b1ZpZXcoZXYuZGV0YWlsLCAnY2hhcHRlcicsICcjdmlldzEnKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qICAgICAgIGlmIChwYXJhbXMuZ2V0KCdocScpKSB7XG4gICAgICBpZiAoc2VhcmNoQXBpKSB7XG4gICAgICAgIGNvbnN0IHhtbFF1ZXJ5VXJsID0gYCR7c2VhcmNoQXBpLnVybFxuICAgICAgICB9P3Jlc291cmNlLWlkPSR7c2VhcmNoQXBpWydyZXNvdXJjZS1pZCddXG4gICAgICAgIH0mc2VhcmNoSWQ9JHtzZWFyY2hJZFxuICAgICAgICB9JnhtbD0ke2RhdGEuZG9jc1swXT8ueG1sXG4gICAgICAgIH0mJHtwYXJhbXMudG9TdHJpbmcoKX1gO1xuXG4gICAgICAgIGRhdGEuZG9jc1swXS51cmwgPSB4bWxRdWVyeVVybDtcbiAgICAgICAgZGF0YS5kb2NzWzBdLnJvb3RQYXRoID0gJ2FwaS9tcmNwYXJ0cyc7XG4gICAgICB9XG4gICAgICAgICAqL1xuXG4gICAgaWYgKHBhcmFtcy5nZXQoJ2hxJykpIHtcbiAgICAgIGlmIChzZWFyY2hBcGkpIHtcbiAgICAgICAgY29uc3QgbWFpbkRvYyA9IGRhdGEuZG9jcy5maW5kKChkb2MpID0+IGRvYy5pZCA9PT0gJ21haW5Eb2MnKTtcblxuICAgICAgICBpZiAobWFpbkRvYykge1xuICAgICAgICAgIGNvbnN0IHhtbFF1ZXJ5VXJsID0gYCR7c2VhcmNoQXBpLnVybFxuICAgICAgICAgIH0/cmVzb3VyY2UtaWQ9JHtzZWFyY2hBcGlbJ3Jlc291cmNlLWlkJ11cbiAgICAgICAgICB9JnNlYXJjaElkPSR7c2VhcmNoSWRcbiAgICAgICAgICB9JnhtbD0ke21haW5Eb2MueG1sXG4gICAgICAgICAgfSYke3BhcmFtcy50b1N0cmluZygpfWA7XG5cbiAgICAgICAgICBtYWluRG9jLnVybCA9IHhtbFF1ZXJ5VXJsO1xuICAgICAgICAgIG1haW5Eb2Mucm9vdFBhdGggPSAnYXBpL21yY3BhcnRzJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gLi5cbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGItZW5kLXVwZGF0ZScsIChldjogYW55KSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbEVsZW1lbnRzSW50b1ZpZXcoZXYuZGV0YWlsLCAnaHEnLCAnI3RyYW5zY3JpcHRpb24tdmlldycpO1xuICAgIH0pO1xuICAgIC8qICAgfSAgKi9cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGRpc3BsYXlJbmRleCgpIHtcbiAgICBpZiAodGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uKSB7XG4gICAgICB0aGlzLm91dHB1dC50b2dnbGVDb2x1bW4gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXR1cFZpZXdDbGlja0xpc3RlbmVycygpIHtcbiAgICBjb25zdCBhdHRhY2hMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3Qgdmlld3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubjctcGFyYWxsZWwtdGV4dC12aWV3ZXIgW2lkJD1cIi12aWV3XCJdJyk7XG5cbiAgICAgICAgdmlld3MuZm9yRWFjaCgodmlldykgPT4ge1xuICAgICAgICAgIGlmICh2aWV3LmlkID09PSAndHJhbnNjcmlwdGlvbi12aWV3Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2aWV3LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIGlmICgodmlldyBhcyBhbnkpLl9fY2xpY2tMaXN0ZW5lckF0dGFjaGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2xpY2tMaXN0ZW5lciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFNhbHZhIGlsIHJpZmVyaW1lbnRvIGUgbWFyY2EgY29tZSBhdHRhY2NhdG9cbiAgICAgICAgICAgICh2aWV3IGFzIGFueSkuX19jbGlja0xpc3RlbmVyID0gY2xpY2tMaXN0ZW5lcjtcbiAgICAgICAgICAgICh2aWV3IGFzIGFueSkuX19jbGlja0xpc3RlbmVyQXR0YWNoZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBBdHRhY2NhIGlsIGxpc3RlbmVyIGluIGNhcHR1cmUgcGhhc2UgcGVyIGNhdHR1cmFyZSB0dXR0aSBpIGNsaWNrXG4gICAgICAgICAgICB2aWV3LnNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGlja0xpc3RlbmVyLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSwgMTAwKTtcbiAgICB9O1xuXG4gICAgLy8gQXR0YWNjYSBhbCBwcmltbyBjYXJpY2FtZW50b1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BiLWVuZC11cGRhdGUnLCBhdHRhY2hMaXN0ZW5lcnMpO1xuXG4gICAgc2V0VGltZW91dChhdHRhY2hMaXN0ZW5lcnMsIDUwMCk7XG4gIH1cblxuICBvbkNsaWNrKHBheWxvYWQpIHtcbiAgICAvLyBjb25zb2xlLmxvZygn8J+UtSBvbkNsaWNrIGNoaWFtYXRvIScsIHBheWxvYWQpO1xuICAgIGxldCB0YXJnZXQgPSBudWxsO1xuICAgIGNvbnN0IGNsaWNrUGF0aCA9IHBheWxvYWQucGF0aCB8fCBwYXlsb2FkLmNvbXBvc2VkUGF0aCgpO1xuICAgIC8vIGNvbnNvbGUubG9nKCfwn5S1IGNsaWNrUGF0aDonLCBjbGlja1BhdGgpO1xuXG4gICAgLy8gY2hpdXN1cmEgYXBwYXJhdG8gY29uIHRhc3RvXG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSBjbGlja1BhdGguZmluZCgoZWwpID0+IGVsLmNsYXNzTmFtZVxuICAgICAgJiYgdHlwZW9mIGVsLmNsYXNzTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIGVsLmNsYXNzTmFtZS5pbmNsdWRlcygnY2xvc2VfYXBwJykpO1xuXG4gICAgaWYgKGNsb3NlQnV0dG9uKSB7XG4gICAgLy8gIGNvbnNvbGUubG9nKCdDbGljayByaWxldmF0byBzdWwgYm90dG9uZSBkaSBjaGl1c3VyYTonLCBjbG9zZUJ1dHRvbik7XG5cbiAgICAgIGNvbnN0IHBhcmVudEFwcEl0ZW0gPSBjbG9zZUJ1dHRvbi5jbG9zZXN0KCcudGVpLWFwcCcpO1xuICAgICAgaWYgKHBhcmVudEFwcEl0ZW0gJiYgcGFyZW50QXBwSXRlbS5zdHlsZSkge1xuICAgICAgICAvLyAgICBjb25zb2xlLmxvZygnQ2hpdXN1cmEgZGVsbFxcJ2VsZW1lbnRvIHRlaS1hcHAnKTtcbiAgICAgICAgcGFyZW50QXBwSXRlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAocGFyZW50QXBwSXRlbSBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgICAgIHBheWxvYWQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpbnNpZGVUZWlBcHAgPSBjbGlja1BhdGguZmluZCgoZWwpID0+IGVsLmNsYXNzTmFtZVxuICAgICAgJiYgdHlwZW9mIGVsLmNsYXNzTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIGVsLmNsYXNzTmFtZS5pbmNsdWRlcygndGVpLWFwcCcpKTtcblxuICAgIGlmIChpbnNpZGVUZWlBcHAgJiYgKGluc2lkZVRlaUFwcCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9PT0gJ2Jsb2NrJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoaXVzdXJhIG5vdGUgY29uIHRhc3RvXG4gICAgY29uc3QgY2xvc2VOb3RlQnV0dG9uID0gY2xpY2tQYXRoLmZpbmQoKGVsKSA9PiBlbC5jbGFzc05hbWVcbiAgICAgICYmIHR5cGVvZiBlbC5jbGFzc05hbWUgPT09ICdzdHJpbmcnXG4gICAgICAmJiBlbC5jbGFzc05hbWUuaW5jbHVkZXMoJ2Nsb3NlX25vdGUnKSk7XG5cbiAgICBpZiAoY2xvc2VOb3RlQnV0dG9uKSB7XG4gICAgLy8gIGNvbnNvbGUubG9nKCdDbGljayByaWxldmF0byBzdWwgYm90dG9uZSBkaSBjaGl1c3VyYSBub3RhOicsIGNsb3NlTm90ZUJ1dHRvbik7XG5cbiAgICAgIGNvbnN0IHBhcmVudE5vdGVJdGVtID0gY2xvc2VOb3RlQnV0dG9uLmNsb3Nlc3QoJy5ub3RlLWl0ZW0nKTtcbiAgICAgIGlmIChwYXJlbnROb3RlSXRlbSAmJiBwYXJlbnROb3RlSXRlbS5zdHlsZSkge1xuICAgICAgICAvLyAgICBjb25zb2xlLmxvZygnQ2hpdXN1cmEgZGVsbFxcJ2VsZW1lbnRvIG5vdGUtaXRlbScpO1xuICAgICAgICBwYXJlbnROb3RlSXRlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAocGFyZW50Tm90ZUl0ZW0gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9ICcnO1xuICAgICAgICBwYXlsb2FkLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBheWxvYWQucGF0aCkge1xuICAgICAgdGFyZ2V0ID0gcGF5bG9hZC5wYXRoLmZpbmQoXG4gICAgICAgICh7IHRhZ05hbWUgfSkgPT4gdGFnTmFtZSA9PT0gJ1BCLUhJR0hMSUdIVCdcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldCA9IHBheWxvYWQuY29tcG9zZWRQYXRoKCkuZmluZChcbiAgICAgICAgKHsgdGFnTmFtZSB9KSA9PiB0YWdOYW1lID09PSAnUEItSElHSExJR0hUJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ2FwcF9sZW0nKSB7XG4gICAgICBjb25zdCBhcHBJZCA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2tleScpO1xuICAgICAgLy8gY29uc29sZS5sb2coJ2FwcElkOicsIGFwcElkKTtcblxuICAgICAgLy8gUG9zaXppb25lIGVsZW1lbnRvIGNsaWNjYXRvXG4gICAgICBjb25zdCBjbGlja2VkRWxlbWVudFBvc2l0aW9uID0gKHRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICBjb25zdCBhcHBhcmF0dXNWaWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm43LXBhcmFsbGVsLXRleHQtdmlld2VyIFtpZCQ9XCItdmlld1wiXScpO1xuICAgICAgLy8gY29uc29sZS5sb2coJ051bWVybyBkaSB2aWV3IHRyb3ZhdGU6JywgYXBwYXJhdHVzVmlldy5sZW5ndGgpO1xuXG4gICAgICBsZXQgYW5jaG9yRWxlbWVudCA9IG51bGw7XG4gICAgICBsZXQgdGVpQXBwRWxlbWVudCA9IG51bGw7XG5cbiAgICAgIGFwcGFyYXR1c1ZpZXcuZm9yRWFjaCgodmlldykgPT4ge1xuICAgICAgICBpZiAodmlldy5zaGFkb3dSb290KSB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSB2aWV3LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHthcHBJZH1cIl1gKTtcbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIGlmICghYW5jaG9yRWxlbWVudCkge1xuICAgICAgICAgICAgICBhbmNob3JFbGVtZW50ID0gZm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGFwcEVsZW1lbnQgPSBmb3VuZC5jbG9zZXN0KCcudGVpLWFwcCcpO1xuICAgICAgICAgICAgaWYgKGFwcEVsZW1lbnQgJiYgIXRlaUFwcEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgdGVpQXBwRWxlbWVudCA9IGFwcEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRlaUFwcEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gKHRlaUFwcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPT09ICdibG9jayc7XG5cbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS50cmFuc2Zvcm0gPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAodGVpQXBwRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG5cbiAgICAgICAgICAvLyBwb3NpemlvbmUgYXR0dWFsZVxuICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IHRlaUFwcEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICAgICAgLy8gZGlmZmVyZW56YVxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uRGlmZmVyZW5jZSA9IGNsaWNrZWRFbGVtZW50UG9zaXRpb24gLSBlbGVtZW50UG9zaXRpb247XG5cbiAgICAgICAgICAvLyBzcG9zdGFtZW50b1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke3Bvc2l0aW9uRGlmZmVyZW5jZX1weClgO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ3RlaUFwcEVsZW1lbnQgbm9uIHRyb3ZhdG8hJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmdldEF0dHJpYnV0ZSgndHlwZScpID09PSAnbm90ZV9saW5lJykge1xuICAgICAgY29uc3Qgbm90ZUlkID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgna2V5Jyk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnbm90ZUlkJywgbm90ZUlkKTtcblxuICAgICAgY29uc3QgY2xpY2tlZEVsZW1lbnRQb3NpdGlvbiA9ICh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgY29uc3QgYXBwYXJhdHVzVmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjYXBwYXJhdG8tdmlldycpO1xuXG4gICAgICBjb25zdCBhbmNob3JFbGVtZW50ID0gYXBwYXJhdHVzVmlld1xuICAgICAgICA/LnNoYWRvd1Jvb3RcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yKGAjJHtub3RlSWR9YCk7XG5cbiAgICAgIGNvbnN0IHRlaU5vdGVFbGVtZW50ID0gYW5jaG9yRWxlbWVudFxuICAgICAgICA/IGFuY2hvckVsZW1lbnQuY2xvc2VzdCgnLm5vdGUtaXRlbScpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGlmICh0ZWlOb3RlRWxlbWVudCkge1xuICAgICAgICAvLyBWZXJpZmljYSBzZSDDqCB2aXNpYmlsZVxuICAgICAgICBjb25zdCBpc1Zpc2libGUgPSAodGVpTm90ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPT09ICdibG9jayc7XG5cbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblxuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgKHRlaU5vdGVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgICAgICAgIC8vIHBvc2l6aW9uZSBhdHR1YWxlXG4gICAgICAgICAgY29uc3QgZWxlbWVudFBvc2l0aW9uID0gdGVpTm90ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICAgICAgLy8gZGlmZmVyZW56YVxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uRGlmZmVyZW5jZSA9IGNsaWNrZWRFbGVtZW50UG9zaXRpb24gLSBlbGVtZW50UG9zaXRpb247XG5cbiAgICAgICAgICAvLyBzcG9zdGFtZW50b1xuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHtwb3NpdGlvbkRpZmZlcmVuY2V9cHgpYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2tleScpICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoJ3Njcm9sbHZpZXcnKSAhPT0gbnVsbCkge1xuICAgICAgLy8gUGVyIHNjcm9sbCBzdSBpbmRpY2VcbiAgICAgIGNvbnN0IGtleSA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2tleScpO1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICB0aGlzLnNjcm9sbFRvSW5kZXhFbGVtZW50KGtleSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID09PSBmYWxzZSkge1xuICAgICAgaWYgKFxuICAgICAgICB0YXJnZXQuX19rZXlcbiAgICAgICAgJiYgKHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoJ3BlcnNvbicpXG4gICAgICAgICAgfHwgdGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcygncGxhY2UnKSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLm91dHB1dC50b2dnbGVDb2x1bW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnRzSW50b1ZpZXcodGFyZ2V0LCAnZW50aXR5JywgJyN0ZXh0LXZpZXdlci1pbmRleCcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB0aGlzLm91dHB1dC50b2dnbGVDb2x1bW4gPSBmYWxzZTtcbiAgfVxuXG4gIHZpZXdMaXN0ZW5lclVwZGF0ZSgpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3BiLXN0YXJ0LXVwZGF0ZScsXG4gICAgICBmdW5jdGlvbiBfbGlzdGVuZXIoKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BiLXN0YXJ0LXVwZGF0ZScsIF9saXN0ZW5lciwgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBjaGFuZ2VWaWV3KHZpZXcsIHJlZnJlc2gpIHtcbiAgICBzZXRUaW1lb3V0KFxuICAgICAgKHYsIHIpID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFRFU1QgQ0hBTkdFIFZJRVc6ICR7dmlld31gKTtcbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3BiLXRvZ2dsZScsIHtcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgdmlldzogdixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWN0aW9uOiByID8gJ3JlZnJlc2gnIDogJycsXG4gICAgICAgICAgICAgIGtleTogJ3RyYW5zY3JpcHRpb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIDYwMCxcbiAgICAgIHZpZXcsXG4gICAgICByZWZyZXNoXG4gICAgKTtcbiAgfVxuXG4gIHNjcm9sbEVsZW1lbnRzSW50b1ZpZXcodGFyZ2V0LCB0eXBlLCB2aWV3KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBsZXQgZWxlbWVudDogYW55O1xuICAgICAgaWYgKHR5cGUgPT09ICdjaGFwdGVyJykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCcubjctdGV4dC12aWV3ZXIgI3ZpZXcwJylcbiAgICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ3BiLWhpZ2hsaWdodCcpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGhpZ2hsaWdodCA9IGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLm43LXRleHQtdmlld2VyICN2aWV3MCcpXG4gICAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdwYi1oaWdobGlnaHQnKTtcblxuICAgICAgICAgIGNvbnN0IGhpZ2hsaWdodElkID0gaGlnaGxpZ2h0W2hpZ2hsaWdodC5sZW5ndGggLSAxXS5pZDsgLy8gcy54XG5cbiAgICAgICAgICBjb25zdCBmcmFnbWVudE51bWJlciA9IGhpZ2hsaWdodElkLnJlcGxhY2UoJy4nLCAnXFxcXC4nKTtcblxuICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IodmlldylcbiAgICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYCMke2ZyYWdtZW50TnVtYmVyfWApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdlbnRpdHknKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHRhcmdldC5fX2tleTtcbiAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoYC5uNy10ZXh0LXZpZXdlciAke3ZpZXd9YClcbiAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAjJHtrZXl9YCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdocScpIHtcbiAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoYC5uNy1wYXJhbGxlbC10ZXh0LXZpZXdlciAke3ZpZXd9YClcbiAgICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudGVpLWVtJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5uNy1wYXJhbGxlbC10ZXh0LXZpZXdlciAke3ZpZXd9YCk7XG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICB9XG4gICAgfSwgNjAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxhIGFsbCdlbGVtZW50byBjb3JyaXNwb25kZW50ZSBuZWxsJ2luZGljZVxuICAgKi9cbiAgc2Nyb2xsVG9JbmRleEVsZW1lbnQoa2V5OiBzdHJpbmcpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNsZWFuS2V5ID0ga2V5LnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgICBjb25zdCB2aWV3cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uNy1wYXJhbGxlbC10ZXh0LXZpZXdlciBbaWQkPVwiLXZpZXdcIl06bm90KCN0cmFuc2NyaXB0aW9uLXZpZXcpJyk7XG5cbiAgICAgIEFycmF5LmZyb20odmlld3MpLnNvbWUoKHZpZXcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdmlldy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAjJHtjbGVhbktleX1gKTtcbiAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSwgMzAwKTtcbiAgfVxufVxuIl19
@@ -8,6 +8,7 @@ export * from './collection.eh';
8
8
  export * from './text-viewer.eh';
9
9
  export * from './button.eh';
10
10
  export * from './network.eh';
11
+ export * from './network-resource.eh';
11
12
  export * from './parallel-text-viewer.eh';
12
13
  // search
13
14
  export * from './search/search-tags.eh';
@@ -21,4 +22,4 @@ export * from './form-wrapper-accordion.eh';
21
22
  export * from './metadata-dynamic.eh';
22
23
  // map
23
24
  export * from './map.eh';
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9ldmVudC1oYW5kbGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsZUFBZTtBQUNmLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsbUJBQW1CO0FBQ25CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsTUFBTTtBQUNOLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kdW1teS5laCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcnMuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXYuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lbGluZS5laCc7XG5leHBvcnQgKiBmcm9tICcuL3llYXItaGVhZGVyLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vZ2FsbGVyeS5laCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb24uZWgnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LXZpZXdlci5laCc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi5laCc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJhbGxlbC10ZXh0LXZpZXdlci5laCc7XG4vLyBzZWFyY2hcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC10YWdzLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1yZXN1bHRzLXRpdGxlLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1wYWdlLXRpdGxlLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1wYWdlLWRlc2NyaXB0aW9uLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1yZXN1bHRzLmVoJztcbi8vIGZvcm0gd3JhcHBlclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLXdyYXBwZXItYWNjb3JkaW9uLmVoJztcbi8vIG1ldGFkYXRhIGR5bmFtaWNcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEtZHluYW1pYy5laCc7XG4vLyBtYXBcbmV4cG9ydCAqIGZyb20gJy4vbWFwLmVoJztcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9ldmVudC1oYW5kbGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsU0FBUztBQUNULGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxlQUFlO0FBQ2YsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxtQkFBbUI7QUFDbkIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxNQUFNO0FBQ04sY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2R1bW15LmVoJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycy5laCc7XG5leHBvcnQgKiBmcm9tICcuL25hdi5laCc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWVsaW5lLmVoJztcbmV4cG9ydCAqIGZyb20gJy4veWVhci1oZWFkZXIuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9nYWxsZXJ5LmVoJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbi5laCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQtdmlld2VyLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay5laCc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmstcmVzb3VyY2UuZWgnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJhbGxlbC10ZXh0LXZpZXdlci5laCc7XG4vLyBzZWFyY2hcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC10YWdzLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1yZXN1bHRzLXRpdGxlLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1wYWdlLXRpdGxlLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1wYWdlLWRlc2NyaXB0aW9uLmVoJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NlYXJjaC1yZXN1bHRzLmVoJztcbi8vIGZvcm0gd3JhcHBlclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLXdyYXBwZXItYWNjb3JkaW9uLmVoJztcbi8vIG1ldGFkYXRhIGR5bmFtaWNcbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEtZHluYW1pYy5laCc7XG4vLyBtYXBcbmV4cG9ydCAqIGZyb20gJy4vbWFwLmVoJztcbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import { EventHandler } from '@net7/core';
2
+ // import linksHelper from '../helpers/links-helper';
3
+ export class MrNetworkResourceEH extends EventHandler {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.itemPreviewEmit = (type, payload) => {
7
+ if (type === 'click' && payload?.action === 'resource-modal') {
8
+ const { id, type: resourceType } = payload;
9
+ this.modalService.open(id, resourceType);
10
+ }
11
+ };
12
+ }
13
+ listen() {
14
+ this.outerEvents$.subscribe(({ type,
15
+ // payload,
16
+ localeService }) => {
17
+ switch (type) {
18
+ case 'mr-resource-layout.init':
19
+ this.localeService = localeService;
20
+ // this.dataSource.networkListener$.subscribe((network: Network) => {
21
+ // network.on('click', (props) => {
22
+ // if (props.nodes && props.nodes.length > 0) {
23
+ // const nodeId = props.nodes[0];
24
+ // const node = this.dataSource.networkData.nodes.find((n) => n.id === nodeId);
25
+ // // gestione payload
26
+ // if (node?.payload) {
27
+ // let anchor = null;
28
+ // // Navigazione interna
29
+ // if (node?.payload?.link?.routeId) {
30
+ // const routeLink = this.localeService.getLinkByRouteId(
31
+ // node.payload.link.routeId,
32
+ // node.payload.link.id,
33
+ // node.payload.link.slug
34
+ // );
35
+ // anchor = {
36
+ // href: routeLink,
37
+ // queryParams: node.payload.link.params || null,
38
+ // };
39
+ // // link semplice
40
+ // } else if (node?.payload?.link && typeof node?.payload?.link === 'string') {
41
+ // anchor = {
42
+ // href: linksHelper.getRouterLink(node.payload.link),
43
+ // queryParams: linksHelper.getQueryParams(node.payload.link),
44
+ // };
45
+ // // link complesso
46
+ // } else if (node?.payload?.link && typeof node?.payload?.link === 'object') {
47
+ // let href = '';
48
+ // if (node.payload.link.absolute) {
49
+ // href = `${node.payload.link.absolute}`;
50
+ // } else if (node.payload.link.relative) {
51
+ // href = node.payload.link.relative;
52
+ // }
53
+ // if (href && node.payload.link.params) {
54
+ // href = linksHelper.joinQueryParams(href, [node.payload.link.params]);
55
+ // }
56
+ // if (href && node.payload.link.query_string) {
57
+ // href = linksHelper.joinQueryParams(href, [document.location.search]);
58
+ // }
59
+ // anchor = {
60
+ // href,
61
+ // queryParams: null,
62
+ // };
63
+ // // altro
64
+ // } else if (node.payload.payload) {
65
+ // anchor = {
66
+ // payload: {
67
+ // ...node.payload.payload
68
+ // }
69
+ // };
70
+ // }
71
+ // if (anchor) {
72
+ // if (anchor.href) {
73
+ // window.open(anchor.href, '_blank');
74
+ // } else if (anchor.payload) {
75
+ // this.itemPreviewEmit('click', anchor.payload);
76
+ // }
77
+ // }
78
+ // }
79
+ // }
80
+ // });
81
+ // });
82
+ break;
83
+ default:
84
+ break;
85
+ }
86
+ });
87
+ }
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1yZXNvdXJjZS5laC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL2V2ZW50LWhhbmRsZXJzL25ldHdvcmstcmVzb3VyY2UuZWgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUcxQyxxREFBcUQ7QUFFckQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFlBQVk7SUFBckQ7O1FBMEZTLG9CQUFlLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7SUEzRlEsTUFBTTtRQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDM0IsSUFBSTtRQUNKLFdBQVc7UUFDWCxhQUFhLEVBQ2QsRUFBRSxFQUFFO1lBQ0gsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDYixLQUFLLHlCQUF5QjtvQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7b0JBRW5DLHFFQUFxRTtvQkFDckUscUNBQXFDO29CQUNyQyxtREFBbUQ7b0JBQ25ELHVDQUF1QztvQkFDdkMscUZBQXFGO29CQUVyRiw0QkFBNEI7b0JBQzVCLDZCQUE2QjtvQkFDN0IsNkJBQTZCO29CQUU3QixpQ0FBaUM7b0JBQ2pDLDhDQUE4QztvQkFDOUMsbUVBQW1FO29CQUNuRSx5Q0FBeUM7b0JBQ3pDLG9DQUFvQztvQkFDcEMscUNBQXFDO29CQUNyQyxlQUFlO29CQUNmLHVCQUF1QjtvQkFDdkIsK0JBQStCO29CQUMvQiw2REFBNkQ7b0JBQzdELGVBQWU7b0JBQ2YsNkJBQTZCO29CQUM3Qix1RkFBdUY7b0JBQ3ZGLHVCQUF1QjtvQkFDdkIsa0VBQWtFO29CQUNsRSwwRUFBMEU7b0JBQzFFLGVBQWU7b0JBQ2YsOEJBQThCO29CQUM5Qix1RkFBdUY7b0JBQ3ZGLDJCQUEyQjtvQkFDM0IsOENBQThDO29CQUM5QyxzREFBc0Q7b0JBQ3RELHFEQUFxRDtvQkFDckQsaURBQWlEO29CQUNqRCxjQUFjO29CQUVkLG9EQUFvRDtvQkFDcEQsb0ZBQW9GO29CQUNwRixjQUFjO29CQUVkLDBEQUEwRDtvQkFDMUQsb0ZBQW9GO29CQUNwRixjQUFjO29CQUVkLHVCQUF1QjtvQkFDdkIsb0JBQW9CO29CQUNwQixpQ0FBaUM7b0JBQ2pDLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQiw2Q0FBNkM7b0JBQzdDLHVCQUF1QjtvQkFDdkIseUJBQXlCO29CQUN6Qix3Q0FBd0M7b0JBQ3hDLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixZQUFZO29CQUVaLHdCQUF3QjtvQkFDeEIsK0JBQStCO29CQUMvQixrREFBa0Q7b0JBQ2xELHlDQUF5QztvQkFDekMsNkRBQTZEO29CQUM3RCxjQUFjO29CQUNkLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixRQUFRO29CQUNSLFFBQVE7b0JBQ1IsTUFBTTtvQkFDTixNQUFNO2dCQUNSO29CQUNFLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBUUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEhhbmRsZXIgfSBmcm9tICdAbmV0Ny9jb3JlJztcbi8vIGltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICd2aXMtbmV0d29yayc7XG5pbXBvcnQgeyBNckxvY2FsZVNlcnZpY2UsIE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG4vLyBpbXBvcnQgbGlua3NIZWxwZXIgZnJvbSAnLi4vaGVscGVycy9saW5rcy1oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgTXJOZXR3b3JrUmVzb3VyY2VFSCBleHRlbmRzIEV2ZW50SGFuZGxlciB7XG4gIHByaXZhdGUgbG9jYWxlU2VydmljZTogTXJMb2NhbGVTZXJ2aWNlO1xuXG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNclJlc291cmNlTW9kYWxTZXJ2aWNlO1xuXG4gIHB1YmxpYyBsaXN0ZW4oKSB7XG4gICAgdGhpcy5vdXRlckV2ZW50cyQuc3Vic2NyaWJlKCh7XG4gICAgICB0eXBlLFxuICAgICAgLy8gcGF5bG9hZCxcbiAgICAgIGxvY2FsZVNlcnZpY2VcbiAgICB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnbXItcmVzb3VyY2UtbGF5b3V0LmluaXQnOlxuICAgICAgICAgIHRoaXMubG9jYWxlU2VydmljZSA9IGxvY2FsZVNlcnZpY2U7XG5cbiAgICAgICAgICAvLyB0aGlzLmRhdGFTb3VyY2UubmV0d29ya0xpc3RlbmVyJC5zdWJzY3JpYmUoKG5ldHdvcms6IE5ldHdvcmspID0+IHtcbiAgICAgICAgICAvLyAgIG5ldHdvcmsub24oJ2NsaWNrJywgKHByb3BzKSA9PiB7XG4gICAgICAgICAgLy8gICAgIGlmIChwcm9wcy5ub2RlcyAmJiBwcm9wcy5ub2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gICAgICAgY29uc3Qgbm9kZUlkID0gcHJvcHMubm9kZXNbMF07XG4gICAgICAgICAgLy8gICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZGF0YVNvdXJjZS5uZXR3b3JrRGF0YS5ub2Rlcy5maW5kKChuKSA9PiBuLmlkID09PSBub2RlSWQpO1xuXG4gICAgICAgICAgLy8gICAgICAgLy8gZ2VzdGlvbmUgcGF5bG9hZFxuICAgICAgICAgIC8vICAgICAgIGlmIChub2RlPy5wYXlsb2FkKSB7XG4gICAgICAgICAgLy8gICAgICAgICBsZXQgYW5jaG9yID0gbnVsbDtcblxuICAgICAgICAgIC8vICAgICAgICAgLy8gTmF2aWdhemlvbmUgaW50ZXJuYVxuICAgICAgICAgIC8vICAgICAgICAgaWYgKG5vZGU/LnBheWxvYWQ/Lmxpbms/LnJvdXRlSWQpIHtcbiAgICAgICAgICAvLyAgICAgICAgICAgY29uc3Qgcm91dGVMaW5rID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExpbmtCeVJvdXRlSWQoXG4gICAgICAgICAgLy8gICAgICAgICAgICAgbm9kZS5wYXlsb2FkLmxpbmsucm91dGVJZCxcbiAgICAgICAgICAvLyAgICAgICAgICAgICBub2RlLnBheWxvYWQubGluay5pZCxcbiAgICAgICAgICAvLyAgICAgICAgICAgICBub2RlLnBheWxvYWQubGluay5zbHVnXG4gICAgICAgICAgLy8gICAgICAgICAgICk7XG4gICAgICAgICAgLy8gICAgICAgICAgIGFuY2hvciA9IHtcbiAgICAgICAgICAvLyAgICAgICAgICAgICBocmVmOiByb3V0ZUxpbmssXG4gICAgICAgICAgLy8gICAgICAgICAgICAgcXVlcnlQYXJhbXM6IG5vZGUucGF5bG9hZC5saW5rLnBhcmFtcyB8fCBudWxsLFxuICAgICAgICAgIC8vICAgICAgICAgICB9O1xuICAgICAgICAgIC8vICAgICAgICAgICAvLyBsaW5rIHNlbXBsaWNlXG4gICAgICAgICAgLy8gICAgICAgICB9IGVsc2UgaWYgKG5vZGU/LnBheWxvYWQ/LmxpbmsgJiYgdHlwZW9mIG5vZGU/LnBheWxvYWQ/LmxpbmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gICAgICAgICAgIGFuY2hvciA9IHtcbiAgICAgICAgICAvLyAgICAgICAgICAgICBocmVmOiBsaW5rc0hlbHBlci5nZXRSb3V0ZXJMaW5rKG5vZGUucGF5bG9hZC5saW5rKSxcbiAgICAgICAgICAvLyAgICAgICAgICAgICBxdWVyeVBhcmFtczogbGlua3NIZWxwZXIuZ2V0UXVlcnlQYXJhbXMobm9kZS5wYXlsb2FkLmxpbmspLFxuICAgICAgICAgIC8vICAgICAgICAgICB9O1xuICAgICAgICAgIC8vICAgICAgICAgICAvLyBsaW5rIGNvbXBsZXNzb1xuICAgICAgICAgIC8vICAgICAgICAgfSBlbHNlIGlmIChub2RlPy5wYXlsb2FkPy5saW5rICYmIHR5cGVvZiBub2RlPy5wYXlsb2FkPy5saW5rID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIC8vICAgICAgICAgICBsZXQgaHJlZiA9ICcnO1xuICAgICAgICAgIC8vICAgICAgICAgICBpZiAobm9kZS5wYXlsb2FkLmxpbmsuYWJzb2x1dGUpIHtcbiAgICAgICAgICAvLyAgICAgICAgICAgICBocmVmID0gYCR7bm9kZS5wYXlsb2FkLmxpbmsuYWJzb2x1dGV9YDtcbiAgICAgICAgICAvLyAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLnBheWxvYWQubGluay5yZWxhdGl2ZSkge1xuICAgICAgICAgIC8vICAgICAgICAgICAgIGhyZWYgPSBub2RlLnBheWxvYWQubGluay5yZWxhdGl2ZTtcbiAgICAgICAgICAvLyAgICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gICAgICAgICAgIGlmIChocmVmICYmIG5vZGUucGF5bG9hZC5saW5rLnBhcmFtcykge1xuICAgICAgICAgIC8vICAgICAgICAgICAgIGhyZWYgPSBsaW5rc0hlbHBlci5qb2luUXVlcnlQYXJhbXMoaHJlZiwgW25vZGUucGF5bG9hZC5saW5rLnBhcmFtc10pO1xuICAgICAgICAgIC8vICAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyAgICAgICAgICAgaWYgKGhyZWYgJiYgbm9kZS5wYXlsb2FkLmxpbmsucXVlcnlfc3RyaW5nKSB7XG4gICAgICAgICAgLy8gICAgICAgICAgICAgaHJlZiA9IGxpbmtzSGVscGVyLmpvaW5RdWVyeVBhcmFtcyhocmVmLCBbZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoXSk7XG4gICAgICAgICAgLy8gICAgICAgICAgIH1cblxuICAgICAgICAgIC8vICAgICAgICAgICBhbmNob3IgPSB7XG4gICAgICAgICAgLy8gICAgICAgICAgICAgaHJlZixcbiAgICAgICAgICAvLyAgICAgICAgICAgICBxdWVyeVBhcmFtczogbnVsbCxcbiAgICAgICAgICAvLyAgICAgICAgICAgfTtcbiAgICAgICAgICAvLyAgICAgICAgICAgLy8gYWx0cm9cbiAgICAgICAgICAvLyAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5wYXlsb2FkLnBheWxvYWQpIHtcbiAgICAgICAgICAvLyAgICAgICAgICAgYW5jaG9yID0ge1xuICAgICAgICAgIC8vICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAvLyAgICAgICAgICAgICAgIC4uLm5vZGUucGF5bG9hZC5wYXlsb2FkXG4gICAgICAgICAgLy8gICAgICAgICAgICAgfVxuICAgICAgICAgIC8vICAgICAgICAgICB9O1xuICAgICAgICAgIC8vICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gICAgICAgICBpZiAoYW5jaG9yKSB7XG4gICAgICAgICAgLy8gICAgICAgICAgIGlmIChhbmNob3IuaHJlZikge1xuICAgICAgICAgIC8vICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGFuY2hvci5ocmVmLCAnX2JsYW5rJyk7XG4gICAgICAgICAgLy8gICAgICAgICAgIH0gZWxzZSBpZiAoYW5jaG9yLnBheWxvYWQpIHtcbiAgICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLml0ZW1QcmV2aWV3RW1pdCgnY2xpY2snLCBhbmNob3IucGF5bG9hZCk7XG4gICAgICAgICAgLy8gICAgICAgICAgIH1cbiAgICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgICAvLyAgICAgICB9XG4gICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAvLyAgIH0pO1xuICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGl0ZW1QcmV2aWV3RW1pdCA9ICh0eXBlLCBwYXlsb2FkKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdjbGljaycgJiYgcGF5bG9hZD8uYWN0aW9uID09PSAncmVzb3VyY2UtbW9kYWwnKSB7XG4gICAgICBjb25zdCB7IGlkLCB0eXBlOiByZXNvdXJjZVR5cGUgfSA9IHBheWxvYWQ7XG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGlkLCByZXNvdXJjZVR5cGUpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -49,10 +49,10 @@ export class MrNetworkLayoutComponent extends AbstractLayout {
49
49
  this.onDestroy();
50
50
  }
51
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrNetworkLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i1.ConfigurationService }, { token: i1.CommunicationService }, { token: i1.MainStateService }, { token: i3.MrLayoutStateService }, { token: i4.MrResourceModalService }, { token: i5.MrLocaleService }, { token: i6.Location }], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrNetworkLayoutComponent, selector: "mr-network-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"network-layout-container\" *ngIf=\"lb.dataSource\">\n <div class=\"network-header\">\n <h2>{{ lb.dataSource.pageConfig?.title}}</h2>\n <p>{{ lb.dataSource.pageConfig?.mapHeader }}</p>\n </div>\n \n <div class=\"network-legend-section\" *ngIf=\"lb.dataSource.legend?.length\">\n <div class=\"legend-toggle\">\n <button \n class=\"legend-toggle-btn\" \n (click)=\"lb.dataSource.toggleLegend()\"\n [class.active]=\"lb.dataSource.showLegend\">\n <span class=\"toggle-icon\">{{ lb.dataSource.showLegend ? '\u2212' : '+' }}</span>\n Legenda\n </button>\n </div>\n \n <div class=\"network-legend\" *ngIf=\"lb.dataSource.showLegend\">\n <div class=\"legend-item\" *ngFor=\"let item of lb.dataSource.legend\">\n <span class=\"legend-color\" [style.background-color]=\"item.color\"></span>\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n \n <div id=\"demo-network\" class=\"network-visualization\"></div>\n</div>", styles: [".network-layout-container{padding:20px;font-family:Arial,sans-serif;max-width:1200px;margin:0 auto}.network-header{text-align:center;margin-bottom:30px}.network-header h2{color:#333;margin-bottom:10px;font-size:2rem}.network-header p{color:#666;font-size:1.1rem}.network-legend-section{margin-bottom:25px}.network-legend-section .legend-toggle{display:flex;justify-content:center;margin-bottom:15px}.network-legend-section .legend-toggle .legend-toggle-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;font-size:14px;color:#333;transition:all .2s ease}.network-legend-section .legend-toggle .legend-toggle-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.network-legend-section .legend-toggle .legend-toggle-btn.active{background-color:#007bff;color:#fff;border-color:#007bff}.network-legend-section .legend-toggle .legend-toggle-btn .toggle-icon{font-weight:700;font-size:16px;line-height:1}.network-legend{display:flex;justify-content:center;margin-bottom:25px;gap:30px;flex-wrap:wrap}.network-legend .legend-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background-color:#f8f9fa;border-radius:20px;border:1px solid #dee2e6}.network-legend .legend-item .legend-color{width:24px;height:24px;border-radius:50%;display:inline-block;border:2px solid #ffffff;box-shadow:0 2px 4px #0000001a}.network-legend .legend-item span:last-child{font-weight:500;color:#333}.network-visualization{width:100%;height:700px;border:2px solid #e9ecef;border-radius:12px;margin-bottom:30px;background-color:#fff;box-shadow:0 4px 12px #0000001a;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrNetworkLayoutComponent, selector: "mr-network-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"network-layout-container\" *ngIf=\"lb.dataSource\">\n <div class=\"network-header\">\n <h2>{{ lb.dataSource.pageConfig?.title}}</h2>\n <p>{{ lb.dataSource.pageConfig?.mapHeader }}</p>\n </div>\n \n <div class=\"network-legend-section\" *ngIf=\"lb.dataSource.legend?.length\">\n <div class=\"legend-toggle\">\n <button \n class=\"legend-toggle-btn\" \n (click)=\"lb.dataSource.toggleLegend()\"\n [class.active]=\"lb.dataSource.showLegend\">\n <span class=\"toggle-icon\">{{ lb.dataSource.showLegend ? '-' : '+' }}</span>\n Legenda\n </button>\n </div>\n \n <div class=\"network-legend\" *ngIf=\"lb.dataSource.showLegend\">\n <div class=\"legend-item\" *ngFor=\"let item of lb.dataSource.legend\">\n <span class=\"legend-color\" [style.background-color]=\"item.color\"></span>\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n \n <div id=\"demo-network\" class=\"network-visualization\"></div>\n</div>", styles: [".network-layout-container{padding:20px;font-family:Arial,sans-serif;max-width:1200px;margin:0 auto}.network-header{text-align:center;margin-bottom:30px}.network-header h2{color:#333;margin-bottom:10px;font-size:2rem}.network-header p{color:#666;font-size:1.1rem}.network-legend-section{margin-bottom:25px}.network-legend-section .legend-toggle{display:flex;justify-content:center;margin-bottom:15px}.network-legend-section .legend-toggle .legend-toggle-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;font-size:14px;color:#333;transition:all .2s ease}.network-legend-section .legend-toggle .legend-toggle-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.network-legend-section .legend-toggle .legend-toggle-btn.active{background-color:#007bff;color:#fff;border-color:#007bff}.network-legend-section .legend-toggle .legend-toggle-btn .toggle-icon{font-weight:700;font-size:16px;line-height:1}.network-legend{display:flex;justify-content:center;margin-bottom:25px;gap:30px;flex-wrap:wrap}.network-legend .legend-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background-color:#f8f9fa;border-radius:20px;border:1px solid #dee2e6}.network-legend .legend-item .legend-color{width:24px;height:24px;border-radius:50%;display:inline-block;border:2px solid #ffffff;box-shadow:0 2px 4px #0000001a}.network-legend .legend-item span:last-child{font-weight:500;color:#333}.network-visualization{width:100%;height:700px;border:2px solid #e9ecef;border-radius:12px;margin-bottom:30px;background-color:#fff;box-shadow:0 4px 12px #0000001a;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrNetworkLayoutComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'mr-network-layout', template: "<div class=\"network-layout-container\" *ngIf=\"lb.dataSource\">\n <div class=\"network-header\">\n <h2>{{ lb.dataSource.pageConfig?.title}}</h2>\n <p>{{ lb.dataSource.pageConfig?.mapHeader }}</p>\n </div>\n \n <div class=\"network-legend-section\" *ngIf=\"lb.dataSource.legend?.length\">\n <div class=\"legend-toggle\">\n <button \n class=\"legend-toggle-btn\" \n (click)=\"lb.dataSource.toggleLegend()\"\n [class.active]=\"lb.dataSource.showLegend\">\n <span class=\"toggle-icon\">{{ lb.dataSource.showLegend ? '\u2212' : '+' }}</span>\n Legenda\n </button>\n </div>\n \n <div class=\"network-legend\" *ngIf=\"lb.dataSource.showLegend\">\n <div class=\"legend-item\" *ngFor=\"let item of lb.dataSource.legend\">\n <span class=\"legend-color\" [style.background-color]=\"item.color\"></span>\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n \n <div id=\"demo-network\" class=\"network-visualization\"></div>\n</div>", styles: [".network-layout-container{padding:20px;font-family:Arial,sans-serif;max-width:1200px;margin:0 auto}.network-header{text-align:center;margin-bottom:30px}.network-header h2{color:#333;margin-bottom:10px;font-size:2rem}.network-header p{color:#666;font-size:1.1rem}.network-legend-section{margin-bottom:25px}.network-legend-section .legend-toggle{display:flex;justify-content:center;margin-bottom:15px}.network-legend-section .legend-toggle .legend-toggle-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;font-size:14px;color:#333;transition:all .2s ease}.network-legend-section .legend-toggle .legend-toggle-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.network-legend-section .legend-toggle .legend-toggle-btn.active{background-color:#007bff;color:#fff;border-color:#007bff}.network-legend-section .legend-toggle .legend-toggle-btn .toggle-icon{font-weight:700;font-size:16px;line-height:1}.network-legend{display:flex;justify-content:center;margin-bottom:25px;gap:30px;flex-wrap:wrap}.network-legend .legend-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background-color:#f8f9fa;border-radius:20px;border:1px solid #dee2e6}.network-legend .legend-item .legend-color{width:24px;height:24px;border-radius:50%;display:inline-block;border:2px solid #ffffff;box-shadow:0 2px 4px #0000001a}.network-legend .legend-item span:last-child{font-weight:500;color:#333}.network-visualization{width:100%;height:700px;border:2px solid #e9ecef;border-radius:12px;margin-bottom:30px;background-color:#fff;box-shadow:0 4px 12px #0000001a;overflow:hidden}\n"] }]
56
+ args: [{ selector: 'mr-network-layout', template: "<div class=\"network-layout-container\" *ngIf=\"lb.dataSource\">\n <div class=\"network-header\">\n <h2>{{ lb.dataSource.pageConfig?.title}}</h2>\n <p>{{ lb.dataSource.pageConfig?.mapHeader }}</p>\n </div>\n \n <div class=\"network-legend-section\" *ngIf=\"lb.dataSource.legend?.length\">\n <div class=\"legend-toggle\">\n <button \n class=\"legend-toggle-btn\" \n (click)=\"lb.dataSource.toggleLegend()\"\n [class.active]=\"lb.dataSource.showLegend\">\n <span class=\"toggle-icon\">{{ lb.dataSource.showLegend ? '-' : '+' }}</span>\n Legenda\n </button>\n </div>\n \n <div class=\"network-legend\" *ngIf=\"lb.dataSource.showLegend\">\n <div class=\"legend-item\" *ngFor=\"let item of lb.dataSource.legend\">\n <span class=\"legend-color\" [style.background-color]=\"item.color\"></span>\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n \n <div id=\"demo-network\" class=\"network-visualization\"></div>\n</div>", styles: [".network-layout-container{padding:20px;font-family:Arial,sans-serif;max-width:1200px;margin:0 auto}.network-header{text-align:center;margin-bottom:30px}.network-header h2{color:#333;margin-bottom:10px;font-size:2rem}.network-header p{color:#666;font-size:1.1rem}.network-legend-section{margin-bottom:25px}.network-legend-section .legend-toggle{display:flex;justify-content:center;margin-bottom:15px}.network-legend-section .legend-toggle .legend-toggle-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:20px;cursor:pointer;font-size:14px;color:#333;transition:all .2s ease}.network-legend-section .legend-toggle .legend-toggle-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.network-legend-section .legend-toggle .legend-toggle-btn.active{background-color:#007bff;color:#fff;border-color:#007bff}.network-legend-section .legend-toggle .legend-toggle-btn .toggle-icon{font-weight:700;font-size:16px;line-height:1}.network-legend{display:flex;justify-content:center;margin-bottom:25px;gap:30px;flex-wrap:wrap}.network-legend .legend-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background-color:#f8f9fa;border-radius:20px;border:1px solid #dee2e6}.network-legend .legend-item .legend-color{width:24px;height:24px;border-radius:50%;display:inline-block;border:2px solid #ffffff;box-shadow:0 2px 4px #0000001a}.network-legend .legend-item span:last-child{font-weight:500;color:#333}.network-visualization{width:100%;height:700px;border:2px solid #e9ecef;border-radius:12px;margin-bottom:30px;background-color:#fff;box-shadow:0 4px 12px #0000001a;overflow:hidden}\n"] }]
57
57
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i1.ConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i3.MrLayoutStateService }, { type: i4.MrResourceModalService }, { type: i5.MrLocaleService }, { type: i6.Location }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1sYXlvdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9sYXlvdXRzL25ldHdvcmstbGF5b3V0L25ldHdvcmstbGF5b3V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy9uZXR3b3JrLWxheW91dC9uZXR3b3JrLWxheW91dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxjQUFjLEVBS2YsTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQUUscUJBQXFCLElBQUksTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBUTFFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxjQUFjO0lBSzFELFlBQ0Usb0JBQWlELEVBQ3pDLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxhQUFtQyxFQUNuQyxhQUFtQyxFQUNuQyxTQUEyQixFQUM1QixXQUFpQyxFQUNqQyxZQUFvQyxFQUNwQyxhQUE4QixFQUM5QixRQUFrQjtRQUV6QixLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7UUFWM0QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUczQixDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoRFUsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ0ZDcEJyQyxtZ0NBMEJNOzs0RkROTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIERhdGEsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBYnN0cmFjdExheW91dCxcbiAgQ29tbXVuaWNhdGlvblNlcnZpY2UsXG4gIExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIE1haW5TdGF0ZVNlcnZpY2Vcbn0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXNvdXJjZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXJOZXR3b3JrTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vbmV0d29yay1sYXlvdXQuY29uZmlnJztcbmltcG9ydCB7IE1yTG9jYWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXItbmV0d29yay1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmV0d29yay1sYXlvdXQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi8uLi9zdHlsZXMvbXVydWNhL2xheW91dHMvX25ldHdvcmsuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1yTmV0d29ya0xheW91dENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0TGF5b3V0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNvbmZpZ0lkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByb3V0ZURhdGE6IERhdGE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbGF5b3V0c0NvbmZpZ3VyYXRpb246IExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBDb21tdW5pY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1haW5TdGF0ZTogTWFpblN0YXRlU2VydmljZSxcbiAgICBwdWJsaWMgbGF5b3V0U3RhdGU6IE1yTGF5b3V0U3RhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBtb2RhbFNlcnZpY2U6IE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UsXG4gICAgcHVibGljIGxvY2FsZVNlcnZpY2U6IE1yTG9jYWxlU2VydmljZSxcbiAgICBwdWJsaWMgbG9jYXRpb246IExvY2F0aW9uLFxuICApIHtcbiAgICBzdXBlcihsYXlvdXRzQ29uZmlndXJhdGlvbi5nZXQoJ01yTmV0d29ya0xheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ0lkOiB0aGlzLmNvbmZpZ0lkLFxuICAgICAgbWFpblN0YXRlOiB0aGlzLm1haW5TdGF0ZSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGNvbW11bmljYXRpb246IHRoaXMuY29tbXVuaWNhdGlvbixcbiAgICAgIGxheW91dFN0YXRlOiB0aGlzLmxheW91dFN0YXRlLFxuICAgICAgbW9kYWxTZXJ2aWNlOiB0aGlzLm1vZGFsU2VydmljZSxcbiAgICAgIHJvdXRlOiB0aGlzLnJvdXRlLFxuICAgICAgcm91dGVyOiB0aGlzLnJvdXRlcixcbiAgICAgIGxvY2FsZVNlcnZpY2U6IHRoaXMubG9jYWxlU2VydmljZSxcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmxvY2F0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5jb25maWcub3B0aW9ucyB8fCB7fSxcbiAgICAgIHJvdXRlRGF0YTogdGhpcy5yb3V0ZURhdGEsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUuZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMubGF5b3V0U3RhdGUuYWRkKCdjb250ZW50Jyk7XG4gICAgICB0aGlzLmNvbmZpZ0lkID0gZGF0YS5jb25maWdJZDtcbiAgICAgIHRoaXMucm91dGVEYXRhID0gZGF0YTtcbiAgICAgIHRoaXMub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmV0d29yay1sYXlvdXQtY29udGFpbmVyXCIgKm5nSWY9XCJsYi5kYXRhU291cmNlXCI+XG4gIDxkaXYgY2xhc3M9XCJuZXR3b3JrLWhlYWRlclwiPlxuICAgIDxoMj57eyBsYi5kYXRhU291cmNlLnBhZ2VDb25maWc/LnRpdGxlfX08L2gyPlxuICAgIDxwPnt7IGxiLmRhdGFTb3VyY2UucGFnZUNvbmZpZz8ubWFwSGVhZGVyIH19PC9wPlxuICA8L2Rpdj5cbiAgXG4gIDxkaXYgY2xhc3M9XCJuZXR3b3JrLWxlZ2VuZC1zZWN0aW9uXCIgKm5nSWY9XCJsYi5kYXRhU291cmNlLmxlZ2VuZD8ubGVuZ3RoXCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZ2VuZC10b2dnbGVcIj5cbiAgICAgIDxidXR0b24gXG4gICAgICAgIGNsYXNzPVwibGVnZW5kLXRvZ2dsZS1idG5cIiBcbiAgICAgICAgKGNsaWNrKT1cImxiLmRhdGFTb3VyY2UudG9nZ2xlTGVnZW5kKClcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImxiLmRhdGFTb3VyY2Uuc2hvd0xlZ2VuZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1pY29uXCI+e3sgbGIuZGF0YVNvdXJjZS5zaG93TGVnZW5kID8gJ+KIkicgOiAnKycgfX08L3NwYW4+XG4gICAgICAgIExlZ2VuZGFcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJuZXR3b3JrLWxlZ2VuZFwiICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5zaG93TGVnZW5kXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYi5kYXRhU291cmNlLmxlZ2VuZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1jb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIml0ZW0uY29sb3JcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGlkPVwiZGVtby1uZXR3b3JrXCIgY2xhc3M9XCJuZXR3b3JrLXZpc3VhbGl6YXRpb25cIj48L2Rpdj5cbjwvZGl2PiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1sYXlvdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9sYXlvdXRzL25ldHdvcmstbGF5b3V0L25ldHdvcmstbGF5b3V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy9uZXR3b3JrLWxheW91dC9uZXR3b3JrLWxheW91dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxjQUFjLEVBS2YsTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQUUscUJBQXFCLElBQUksTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBUTFFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxjQUFjO0lBSzFELFlBQ0Usb0JBQWlELEVBQ3pDLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxhQUFtQyxFQUNuQyxhQUFtQyxFQUNuQyxTQUEyQixFQUM1QixXQUFpQyxFQUNqQyxZQUFvQyxFQUNwQyxhQUE4QixFQUM5QixRQUFrQjtRQUV6QixLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7UUFWM0QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUczQixDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoRFUsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ0ZDcEJyQyw4L0JBMEJNOzs0RkROTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIERhdGEsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBYnN0cmFjdExheW91dCxcbiAgQ29tbXVuaWNhdGlvblNlcnZpY2UsXG4gIExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIE1haW5TdGF0ZVNlcnZpY2Vcbn0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXNvdXJjZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXJOZXR3b3JrTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vbmV0d29yay1sYXlvdXQuY29uZmlnJztcbmltcG9ydCB7IE1yTG9jYWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXItbmV0d29yay1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmV0d29yay1sYXlvdXQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi8uLi9zdHlsZXMvbXVydWNhL2xheW91dHMvX25ldHdvcmsuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1yTmV0d29ya0xheW91dENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0TGF5b3V0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNvbmZpZ0lkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByb3V0ZURhdGE6IERhdGE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbGF5b3V0c0NvbmZpZ3VyYXRpb246IExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBDb21tdW5pY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIG1haW5TdGF0ZTogTWFpblN0YXRlU2VydmljZSxcbiAgICBwdWJsaWMgbGF5b3V0U3RhdGU6IE1yTGF5b3V0U3RhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBtb2RhbFNlcnZpY2U6IE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UsXG4gICAgcHVibGljIGxvY2FsZVNlcnZpY2U6IE1yTG9jYWxlU2VydmljZSxcbiAgICBwdWJsaWMgbG9jYXRpb246IExvY2F0aW9uLFxuICApIHtcbiAgICBzdXBlcihsYXlvdXRzQ29uZmlndXJhdGlvbi5nZXQoJ01yTmV0d29ya0xheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ0lkOiB0aGlzLmNvbmZpZ0lkLFxuICAgICAgbWFpblN0YXRlOiB0aGlzLm1haW5TdGF0ZSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGNvbW11bmljYXRpb246IHRoaXMuY29tbXVuaWNhdGlvbixcbiAgICAgIGxheW91dFN0YXRlOiB0aGlzLmxheW91dFN0YXRlLFxuICAgICAgbW9kYWxTZXJ2aWNlOiB0aGlzLm1vZGFsU2VydmljZSxcbiAgICAgIHJvdXRlOiB0aGlzLnJvdXRlLFxuICAgICAgcm91dGVyOiB0aGlzLnJvdXRlcixcbiAgICAgIGxvY2FsZVNlcnZpY2U6IHRoaXMubG9jYWxlU2VydmljZSxcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmxvY2F0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5jb25maWcub3B0aW9ucyB8fCB7fSxcbiAgICAgIHJvdXRlRGF0YTogdGhpcy5yb3V0ZURhdGEsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUuZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMubGF5b3V0U3RhdGUuYWRkKCdjb250ZW50Jyk7XG4gICAgICB0aGlzLmNvbmZpZ0lkID0gZGF0YS5jb25maWdJZDtcbiAgICAgIHRoaXMucm91dGVEYXRhID0gZGF0YTtcbiAgICAgIHRoaXMub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmV0d29yay1sYXlvdXQtY29udGFpbmVyXCIgKm5nSWY9XCJsYi5kYXRhU291cmNlXCI+XG4gIDxkaXYgY2xhc3M9XCJuZXR3b3JrLWhlYWRlclwiPlxuICAgIDxoMj57eyBsYi5kYXRhU291cmNlLnBhZ2VDb25maWc/LnRpdGxlfX08L2gyPlxuICAgIDxwPnt7IGxiLmRhdGFTb3VyY2UucGFnZUNvbmZpZz8ubWFwSGVhZGVyIH19PC9wPlxuICA8L2Rpdj5cbiAgXG4gIDxkaXYgY2xhc3M9XCJuZXR3b3JrLWxlZ2VuZC1zZWN0aW9uXCIgKm5nSWY9XCJsYi5kYXRhU291cmNlLmxlZ2VuZD8ubGVuZ3RoXCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZ2VuZC10b2dnbGVcIj5cbiAgICAgIDxidXR0b24gXG4gICAgICAgIGNsYXNzPVwibGVnZW5kLXRvZ2dsZS1idG5cIiBcbiAgICAgICAgKGNsaWNrKT1cImxiLmRhdGFTb3VyY2UudG9nZ2xlTGVnZW5kKClcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImxiLmRhdGFTb3VyY2Uuc2hvd0xlZ2VuZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1pY29uXCI+e3sgbGIuZGF0YVNvdXJjZS5zaG93TGVnZW5kID8gJy0nIDogJysnIH19PC9zcGFuPlxuICAgICAgICBMZWdlbmRhXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwibmV0d29yay1sZWdlbmRcIiAqbmdJZj1cImxiLmRhdGFTb3VyY2Uuc2hvd0xlZ2VuZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGIuZGF0YVNvdXJjZS5sZWdlbmRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsZWdlbmQtY29sb3JcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpdGVtLmNvbG9yXCI+PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBpZD1cImRlbW8tbmV0d29ya1wiIGNsYXNzPVwibmV0d29yay12aXN1YWxpemF0aW9uXCI+PC9kaXY+XG48L2Rpdj4iXX0=