@net7/boilerplate-muruca 5.2.10 → 5.2.12

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.
@@ -12,6 +12,26 @@ export class MrTextViewerDS extends DataSource {
12
12
  }, { once: true });
13
13
  const params = new URLSearchParams(document.location.search);
14
14
  const id = params.get('id');
15
+ // Nascondere tei-app e note-item se l'ODD non ha già l'elemento in display NONE
16
+ /* const hideElements = () => {
17
+ const apparatusView = document.querySelector('.n7-text-viewer #apparatus-view0');
18
+ if (apparatusView?.shadowRoot) {
19
+ const teiAppElements = apparatusView.shadowRoot.querySelectorAll('.tei-app');
20
+ const teiNoteElements = apparatusView.shadowRoot.querySelectorAll('.note-item');
21
+ console.log('Trovati elementi tei-app:', teiAppElements.length);
22
+ console.log('Trovati elementi tei-note:', teiNoteElements.length);
23
+ teiAppElements.forEach((element) => {
24
+ (element as HTMLElement).style.display = 'none';
25
+ });
26
+ teiNoteElements.forEach((element) => {
27
+ (element as HTMLElement).style.display = 'none';
28
+ });
29
+ }
30
+ };
31
+ document.addEventListener('pb-end-update', () => {
32
+ console.log('Evento pb-end-update ricevuto');
33
+ hideElements();
34
+ }); */
15
35
  if (data.docs[0]?.view === 'page' && id) {
16
36
  data.docs[0].view = 'div';
17
37
  document.addEventListener('pb-end-update', () => {
@@ -73,14 +93,75 @@ export class MrTextViewerDS extends DataSource {
73
93
  }
74
94
  }
75
95
  onClick(payload) {
76
- if (this.output.toggleColumn === false) {
77
- let target = null;
78
- if (payload.path) {
79
- target = payload.path.find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
96
+ let target = null;
97
+ if (payload.path) {
98
+ target = payload.path.find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
99
+ }
100
+ else {
101
+ target = payload.composedPath().find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
102
+ }
103
+ if (target && target.getAttribute('type') === 'app_lem') {
104
+ const appId = target.getAttribute('key');
105
+ // console.log('appId', appId);
106
+ // Posizione elemento cliccato
107
+ const clickedElementPosition = target.getBoundingClientRect().top;
108
+ const apparatusView = document.querySelector('.n7-text-viewer #apparatus-view0');
109
+ /* console.log('apparatusView', apparatusView);
110
+ console.log('shadowRoot', apparatusView?.shadowRoot); */
111
+ const anchorElement = apparatusView
112
+ ?.shadowRoot
113
+ ?.querySelector(`#${appId}`);
114
+ const teiAppElement = anchorElement
115
+ ? anchorElement.closest('.tei-app')
116
+ : null;
117
+ if (teiAppElement) {
118
+ // Verifica se è visibile
119
+ const isVisible = teiAppElement.style.display === 'block';
120
+ if (isVisible) {
121
+ teiAppElement.style.display = 'none';
122
+ teiAppElement.style.transform = '';
123
+ }
124
+ else {
125
+ teiAppElement.style.display = 'block';
126
+ // posizione attuale
127
+ const elementPosition = teiAppElement.getBoundingClientRect().top;
128
+ // differenza
129
+ const positionDifference = clickedElementPosition - elementPosition;
130
+ // spostamento
131
+ teiAppElement.style.transform = `translateY(${positionDifference}px)`;
132
+ }
80
133
  }
81
- else {
82
- target = payload.composedPath().find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
134
+ }
135
+ else if (target && target.getAttribute('type') === 'note_line') {
136
+ const noteId = target.getAttribute('key');
137
+ // console.log('noteId', noteId);
138
+ const clickedElementPosition = target.getBoundingClientRect().top;
139
+ const apparatusView = document.querySelector('.n7-text-viewer #apparatus-view0');
140
+ const anchorElement = apparatusView
141
+ ?.shadowRoot
142
+ ?.querySelector(`#${noteId}`);
143
+ const teiNoteElement = anchorElement
144
+ ? anchorElement.closest('.note-item')
145
+ : null;
146
+ if (teiNoteElement) {
147
+ // Verifica se è visibile
148
+ const isVisible = teiNoteElement.style.display === 'block';
149
+ if (isVisible) {
150
+ teiNoteElement.style.display = 'none';
151
+ teiNoteElement.style.transform = '';
152
+ }
153
+ else {
154
+ teiNoteElement.style.display = 'block';
155
+ // posizione attuale
156
+ const elementPosition = teiNoteElement.getBoundingClientRect().top;
157
+ // differenza
158
+ const positionDifference = clickedElementPosition - elementPosition;
159
+ // spostamento
160
+ teiNoteElement.style.transform = `translateY(${positionDifference}px)`;
161
+ }
83
162
  }
163
+ }
164
+ else if (target && this.output.toggleColumn === false) {
84
165
  if (target.__key
85
166
  && (target.className.includes('person')
86
167
  || target.className.includes('place'))) {
@@ -138,6 +219,15 @@ export class MrTextViewerDS extends DataSource {
138
219
  .querySelector(`.n7-text-viewer ${view}`)
139
220
  .shadowRoot.querySelector('.tei-em');
140
221
  }
222
+ /*
223
+ else if (type === 'apparatus') {
224
+ const key = target.getAttribute("key");
225
+ element = document
226
+ .querySelector(`.n7-text-viewer #apparatus-view0`)
227
+ ?.shadowRoot
228
+ ?.querySelector(`#${key}`);
229
+ }
230
+ */
141
231
  const container = document.querySelector(`.n7-text-viewer ${view}`);
142
232
  if (element) {
143
233
  container.scrollTop = element.offsetTop;
@@ -145,4 +235,4 @@ export class MrTextViewerDS extends DataSource {
145
235
  }, 600);
146
236
  }
147
237
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12aWV3ZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9kYXRhLXNvdXJjZXMvdGV4dC12aWV3ZXIuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFHbEMsU0FBUyxDQUFDLElBQW9CO1FBQ3RDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkIsTUFBTSxFQUNKLHFCQUFxQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUN6RCxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLHFDQUFxQztRQUNyQyxRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLGVBQWUsRUFDZixDQUFDLEVBQWUsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUMsRUFDRCxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FDZixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMs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LEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0Vmlld2VyRGF0YSB9IGZyb20gJ0BuZXQ3L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgTXJUZXh0Vmlld2VyRFMgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgaWQ6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKGRhdGE6IFRleHRWaWV3ZXJEYXRhKTogVGV4dFZpZXdlckRhdGEge1xuICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3Qge1xuICAgICAgZW5hYmxlQ2xpY2tPbkVudGl0aWVzLCB0b2dnbGVDb2x1bW4sIHNlYXJjaElkLCBzZWFyY2hBcGlcbiAgICB9ID0gdGhpcy5vcHRpb25zIHx8IHt9O1xuICAgIGRhdGEudG9nZ2xlQ29sdW1uID0gdG9nZ2xlQ29sdW1uO1xuICAgIC8vIGZvcmNlIHRlaSBwdWJsaXNoZXIgZW5kcG9pbnQgdmFsdWVcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3BiLXBhZ2UtcmVhZHknLFxuICAgICAgKGV2OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRldGFpbCB9ID0gZXY7XG4gICAgICAgIGRldGFpbC5lbmRwb2ludCA9IGRhdGEuZW5kcG9pbnQ7XG4gICAgICB9LFxuICAgICAgeyBvbmNlOiB0cnVlIH1cbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IGlkID0gcGFyYW1zLmdldCgnaWQnKTtcblxuICAgIGlmIChkYXRhLmRvY3NbMF0/LnZpZXcgPT09ICdwYWdlJyAmJiBpZCkge1xuICAgICAgZGF0YS5kb2NzWzBdLnZpZXcgPSAnZGl2JztcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdwYi1lbmQtdXBkYXRlJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwYi10b2dnbGUnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXc6ICdwYWdlJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgIGtleTogJ3RyYW5zY3JpcHRpb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwYi10b2dnbGUnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXc6ICdzaW5nbGUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlZnJlc2gnLFxuICAgICAgICAgICAgICAgICAga2V5OiAnYWRkQ2hhbm5lbCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3BiLXRvZ2dsZScsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmlldzogJ3NpbmdsZScsXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgIGtleTogJ2luZGV4JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9LFxuICAgICAgICB7IG9uY2U6IHRydWUgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZW5hYmxlQ2xpY2tPbkVudGl0aWVzKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwYi1lbmQtdXBkYXRlJywgKGV2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50c0ludG9WaWV3KGV2LmRldGFpbCwgJ2NoYXB0ZXInLCAnI3ZpZXcxJyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmdldCgnaHEnKSkge1xuICAgICAgaWYgKHNlYXJjaEFwaSkge1xuICAgICAgICBjb25zdCB4bWxRdWVyeVVybCA9IGAke3NlYXJjaEFwaS51cmxcbiAgICAgICAgfT9yZXNvdXJjZS1pZD0ke3NlYXJjaEFwaVsncmVzb3VyY2UtaWQnXVxuICAgICAgICB9JnNlYXJjaElkPSR7c2VhcmNoSWRcbiAgICAgICAgfSZ4bWw9JHtkYXRhLmRvY3NbMF0/LnhtbFxuICAgICAgICB9JiR7cGFyYW1zLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgZGF0YS5kb2NzWzBdLnVybCA9IHhtbFF1ZXJ5VXJsO1xuICAgICAgICBkYXRhLmRvY3NbMF0ucm9vdFBhdGggPSAnYXBpL21yY3BhcnRzJztcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BiLWVuZC11cGRhdGUnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnRzSW50b1ZpZXcoZXYuZGV0YWlsLCAnaHEnLCAnI3ZpZXcwJyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBkaXNwbGF5SW5kZXgoKSB7XG4gICAgaWYgKHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbikge1xuICAgICAgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25DbGljayhwYXlsb2FkKSB7XG4gICAgaWYgKHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9PT0gZmFsc2UpIHtcbiAgICAgIGxldCB0YXJnZXQgPSBudWxsO1xuICAgICAgaWYgKHBheWxvYWQucGF0aCkge1xuICAgICAgICB0YXJnZXQgPSBwYXlsb2FkLnBhdGguZmluZChcbiAgICAgICAgICAoeyB0YWdOYW1lIH0pID0+IHRhZ05hbWUgPT09ICdQQi1ISUdITElHSFQnXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXQgPSBwYXlsb2FkLmNvbXBvc2VkUGF0aCgpLmZpbmQoXG4gICAgICAgICAgKHsgdGFnTmFtZSB9KSA9PiB0YWdOYW1lID09PSAnUEItSElHSExJR0hUJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHRhcmdldC5fX2tleVxuICAgICAgICAmJiAodGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcygncGVyc29uJylcbiAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCdwbGFjZScpKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudHNJbnRvVmlldyh0YXJnZXQsICdlbnRpdHknLCAnI3RleHQtdmlld2VyLWluZGV4Jyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9IGZhbHNlO1xuICB9XG5cbiAgdmlld0xpc3RlbmVyVXBkYXRlKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAncGItc3RhcnQtdXBkYXRlJyxcbiAgICAgIGZ1bmN0aW9uIF9saXN0ZW5lcigpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGItc3RhcnQtdXBkYXRlJywgX2xpc3RlbmVyLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIGNoYW5nZVZpZXcodmlldywgcmVmcmVzaCkge1xuICAgIHNldFRpbWVvdXQoXG4gICAgICAodiwgcikgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgVEVTVCBDSEFOR0UgVklFVzogJHt2aWV3fWApO1xuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgncGItdG9nZ2xlJywge1xuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB2aWV3OiB2LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBhY3Rpb246IHIgPyAncmVmcmVzaCcgOiAnJyxcbiAgICAgICAgICAgICAga2V5OiAndHJhbnNjcmlwdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgNjAwLFxuICAgICAgdmlldyxcbiAgICAgIHJlZnJlc2hcbiAgICApO1xuICB9XG5cbiAgc2Nyb2xsRWxlbWVudHNJbnRvVmlldyh0YXJnZXQsIHR5cGUsIHZpZXcpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCBlbGVtZW50OiBhbnk7XG4gICAgICBpZiAodHlwZSA9PT0gJ2NoYXB0ZXInKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjdmlldzAnKVxuICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigncGItaGlnaGxpZ2h0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ID0gZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCcubjctdGV4dC12aWV3ZXIgI3ZpZXcwJylcbiAgICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ3BiLWhpZ2hsaWdodCcpO1xuXG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0SWQgPSBoaWdobGlnaHRbaGlnaGxpZ2h0Lmxlbmd0aCAtIDFdLmlkOyAvLyBzLnhcblxuICAgICAgICAgIGNvbnN0IGZyYWdtZW50TnVtYmVyID0gaGlnaGxpZ2h0SWQucmVwbGFjZSgnLicsICdcXFxcLicpO1xuXG4gICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3Rvcih2aWV3KVxuICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgIyR7ZnJhZ21lbnROdW1iZXJ9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VudGl0eScpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGFyZ2V0Ll9fa2V5O1xuICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICR7dmlld31gKVxuICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYCMke2tleX1gKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2hxJykge1xuICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICR7dmlld31gKVxuICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50ZWktZW0nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICR7dmlld31gKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBlbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIH1cbiAgICB9LCA2MDApO1xuICB9XG59XG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12aWV3ZXIuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9kYXRhLXNvdXJjZXMvdGV4dC12aWV3ZXIuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFHbEMsU0FBUyxDQUFDLElBQW9CO1FBQ3RDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkIsTUFBTSxFQUNKLHFCQUFxQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUN6RCxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLHFDQUFxQztRQUNyQyxRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLGVBQWUsRUFDZixDQUFDLEVBQWUsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUMsRUFDRCxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FDZixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLGdGQUFnRjtRQUNoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBa0JNO1FBRU4sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7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QWMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFdkQsT0FBTyxHQUFHLFFBQVE7eUJBQ2YsYUFBYSxDQUFDLElBQUksQ0FBQzt5QkFDbkIsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QixPQUFPLEdBQUcsUUFBUTtxQkFDZixhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO3FCQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFDRDs7Ozs7Ozs7Y0FRRTtZQUVGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEUsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixTQUFTLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRWaWV3ZXJEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBNclRleHRWaWV3ZXJEUyBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBpZDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oZGF0YTogVGV4dFZpZXdlckRhdGEpOiBUZXh0Vmlld2VyRGF0YSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7XG4gICAgICBlbmFibGVDbGlja09uRW50aXRpZXMsIHRvZ2dsZUNvbHVtbiwgc2VhcmNoSWQsIHNlYXJjaEFwaVxuICAgIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgZGF0YS50b2dnbGVDb2x1bW4gPSB0b2dnbGVDb2x1bW47XG4gICAgLy8gZm9yY2UgdGVpIHB1Ymxpc2hlciBlbmRwb2ludCB2YWx1ZVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAncGItcGFnZS1yZWFkeScsXG4gICAgICAoZXY6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZGV0YWlsIH0gPSBldjtcbiAgICAgICAgZGV0YWlsLmVuZHBvaW50ID0gZGF0YS5lbmRwb2ludDtcbiAgICAgIH0sXG4gICAgICB7IG9uY2U6IHRydWUgfVxuICAgICk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KCdpZCcpO1xuXG4gICAgLy8gTmFzY29uZGVyZSB0ZWktYXBwIGUgbm90ZS1pdGVtIHNlIGwnT0REIG5vbiBoYSBnacOgIGwnZWxlbWVudG8gaW4gZGlzcGxheSBOT05FXG4gICAgLyogIGNvbnN0IGhpZGVFbGVtZW50cyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGFwcGFyYXR1c1ZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubjctdGV4dC12aWV3ZXIgI2FwcGFyYXR1cy12aWV3MCcpO1xuICAgICAgaWYgKGFwcGFyYXR1c1ZpZXc/LnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgY29uc3QgdGVpQXBwRWxlbWVudHMgPSBhcHBhcmF0dXNWaWV3LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnLnRlaS1hcHAnKTtcbiAgICAgICAgY29uc3QgdGVpTm90ZUVsZW1lbnRzID0gYXBwYXJhdHVzVmlldy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ub3RlLWl0ZW0nKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1Ryb3ZhdGkgZWxlbWVudGkgdGVpLWFwcDonLCB0ZWlBcHBFbGVtZW50cy5sZW5ndGgpO1xuICAgICAgICBjb25zb2xlLmxvZygnVHJvdmF0aSBlbGVtZW50aSB0ZWktbm90ZTonLCB0ZWlOb3RlRWxlbWVudHMubGVuZ3RoKTtcbiAgICAgICAgdGVpQXBwRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9KTtcbiAgICAgICAgdGVpTm90ZUVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAoZWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwYi1lbmQtdXBkYXRlJywgKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ0V2ZW50byBwYi1lbmQtdXBkYXRlIHJpY2V2dXRvJyk7XG4gICAgICBoaWRlRWxlbWVudHMoKTtcbiAgICB9KTsgKi9cblxuICAgIGlmIChkYXRhLmRvY3NbMF0/LnZpZXcgPT09ICdwYWdlJyAmJiBpZCkge1xuICAgICAgZGF0YS5kb2NzWzBdLnZpZXcgPSAnZGl2JztcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdwYi1lbmQtdXBkYXRlJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwYi10b2dnbGUnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXc6ICdwYWdlJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgIGtleTogJ3RyYW5zY3JpcHRpb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdwYi10b2dnbGUnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXc6ICdzaW5nbGUnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlZnJlc2gnLFxuICAgICAgICAgICAgICAgICAga2V5OiAnYWRkQ2hhbm5lbCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3BiLXRvZ2dsZScsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmlldzogJ3NpbmdsZScsXG4gICAgICAgICAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWZyZXNoJyxcbiAgICAgICAgICAgICAgICAgIGtleTogJ2luZGV4JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9LFxuICAgICAgICB7IG9uY2U6IHRydWUgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZW5hYmxlQ2xpY2tPbkVudGl0aWVzKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwYi1lbmQtdXBkYXRlJywgKGV2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxFbGVtZW50c0ludG9WaWV3KGV2LmRldGFpbCwgJ2NoYXB0ZXInLCAnI3ZpZXcxJyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmdldCgnaHEnKSkge1xuICAgICAgaWYgKHNlYXJjaEFwaSkge1xuICAgICAgICBjb25zdCB4bWxRdWVyeVVybCA9IGAke3NlYXJjaEFwaS51cmxcbiAgICAgICAgfT9yZXNvdXJjZS1pZD0ke3NlYXJjaEFwaVsncmVzb3VyY2UtaWQnXVxuICAgICAgICB9JnNlYXJjaElkPSR7c2VhcmNoSWRcbiAgICAgICAgfSZ4bWw9JHtkYXRhLmRvY3NbMF0/LnhtbFxuICAgICAgICB9JiR7cGFyYW1zLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgZGF0YS5kb2NzWzBdLnVybCA9IHhtbFF1ZXJ5VXJsO1xuICAgICAgICBkYXRhLmRvY3NbMF0ucm9vdFBhdGggPSAnYXBpL21yY3BhcnRzJztcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BiLWVuZC11cGRhdGUnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnRzSW50b1ZpZXcoZXYuZGV0YWlsLCAnaHEnLCAnI3ZpZXcwJyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBkaXNwbGF5SW5kZXgoKSB7XG4gICAgaWYgKHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbikge1xuICAgICAgdGhpcy5vdXRwdXQudG9nZ2xlQ29sdW1uID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25DbGljayhwYXlsb2FkKSB7XG4gICAgbGV0IHRhcmdldCA9IG51bGw7XG5cbiAgICBpZiAocGF5bG9hZC5wYXRoKSB7XG4gICAgICB0YXJnZXQgPSBwYXlsb2FkLnBhdGguZmluZChcbiAgICAgICAgKHsgdGFnTmFtZSB9KSA9PiB0YWdOYW1lID09PSAnUEItSElHSExJR0hUJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0ID0gcGF5bG9hZC5jb21wb3NlZFBhdGgoKS5maW5kKFxuICAgICAgICAoeyB0YWdOYW1lIH0pID0+IHRhZ05hbWUgPT09ICdQQi1ISUdITElHSFQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmdldEF0dHJpYnV0ZSgndHlwZScpID09PSAnYXBwX2xlbScpIHtcbiAgICAgIGNvbnN0IGFwcElkID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgna2V5Jyk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnYXBwSWQnLCBhcHBJZCk7XG5cbiAgICAgIC8vIFBvc2l6aW9uZSBlbGVtZW50byBjbGljY2F0b1xuICAgICAgY29uc3QgY2xpY2tlZEVsZW1lbnRQb3NpdGlvbiA9ICh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgY29uc3QgYXBwYXJhdHVzVmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjYXBwYXJhdHVzLXZpZXcwJyk7XG4gICAgICAvKiAgICAgICBjb25zb2xlLmxvZygnYXBwYXJhdHVzVmlldycsIGFwcGFyYXR1c1ZpZXcpO1xuICAgICAgY29uc29sZS5sb2coJ3NoYWRvd1Jvb3QnLCBhcHBhcmF0dXNWaWV3Py5zaGFkb3dSb290KTsgKi9cblxuICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGFwcGFyYXR1c1ZpZXdcbiAgICAgICAgPy5zaGFkb3dSb290XG4gICAgICAgID8ucXVlcnlTZWxlY3RvcihgIyR7YXBwSWR9YCk7XG5cbiAgICAgIGNvbnN0IHRlaUFwcEVsZW1lbnQgPSBhbmNob3JFbGVtZW50XG4gICAgICAgID8gYW5jaG9yRWxlbWVudC5jbG9zZXN0KCcudGVpLWFwcCcpXG4gICAgICAgIDogbnVsbDtcblxuICAgICAgaWYgKHRlaUFwcEVsZW1lbnQpIHtcbiAgICAgICAgLy8gVmVyaWZpY2Egc2Ugw6ggdmlzaWJpbGVcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gKHRlaUFwcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPT09ICdibG9jayc7XG5cbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgICAgICAgKHRlaUFwcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICh0ZWlBcHBFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgICAgICAgIC8vIHBvc2l6aW9uZSBhdHR1YWxlXG4gICAgICAgICAgY29uc3QgZWxlbWVudFBvc2l0aW9uID0gdGVpQXBwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG5cbiAgICAgICAgICAvLyBkaWZmZXJlbnphXG4gICAgICAgICAgY29uc3QgcG9zaXRpb25EaWZmZXJlbmNlID0gY2xpY2tlZEVsZW1lbnRQb3NpdGlvbiAtIGVsZW1lbnRQb3NpdGlvbjtcblxuICAgICAgICAgIC8vIHNwb3N0YW1lbnRvXG4gICAgICAgICAgKHRlaUFwcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7cG9zaXRpb25EaWZmZXJlbmNlfXB4KWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRhcmdldCAmJiB0YXJnZXQuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT09ICdub3RlX2xpbmUnKSB7XG4gICAgICBjb25zdCBub3RlSWQgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKCdrZXknKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdub3RlSWQnLCBub3RlSWQpO1xuXG4gICAgICBjb25zdCBjbGlja2VkRWxlbWVudFBvc2l0aW9uID0gKHRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgICBjb25zdCBhcHBhcmF0dXNWaWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm43LXRleHQtdmlld2VyICNhcHBhcmF0dXMtdmlldzAnKTtcblxuICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGFwcGFyYXR1c1ZpZXdcbiAgICAgICAgPy5zaGFkb3dSb290XG4gICAgICAgID8ucXVlcnlTZWxlY3RvcihgIyR7bm90ZUlkfWApO1xuXG4gICAgICBjb25zdCB0ZWlOb3RlRWxlbWVudCA9IGFuY2hvckVsZW1lbnRcbiAgICAgICAgPyBhbmNob3JFbGVtZW50LmNsb3Nlc3QoJy5ub3RlLWl0ZW0nKVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZiAodGVpTm90ZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gVmVyaWZpY2Egc2Ugw6ggdmlzaWJpbGVcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gKHRlaU5vdGVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID09PSAnYmxvY2snO1xuXG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAodGVpTm90ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cbiAgICAgICAgICAodGVpTm90ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICh0ZWlOb3RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG5cbiAgICAgICAgICAvLyBwb3NpemlvbmUgYXR0dWFsZVxuICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IHRlaU5vdGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgICAgIC8vIGRpZmZlcmVuemFcbiAgICAgICAgICBjb25zdCBwb3NpdGlvbkRpZmZlcmVuY2UgPSBjbGlja2VkRWxlbWVudFBvc2l0aW9uIC0gZWxlbWVudFBvc2l0aW9uO1xuXG4gICAgICAgICAgLy8gc3Bvc3RhbWVudG9cbiAgICAgICAgICAodGVpTm90ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7cG9zaXRpb25EaWZmZXJlbmNlfXB4KWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRhcmdldCAmJiB0aGlzLm91dHB1dC50b2dnbGVDb2x1bW4gPT09IGZhbHNlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRhcmdldC5fX2tleVxuICAgICAgICAmJiAodGFyZ2V0LmNsYXNzTmFtZS5pbmNsdWRlcygncGVyc29uJylcbiAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCdwbGFjZScpKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudHNJbnRvVmlldyh0YXJnZXQsICdlbnRpdHknLCAnI3RleHQtdmlld2VyLWluZGV4Jyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHRoaXMub3V0cHV0LnRvZ2dsZUNvbHVtbiA9IGZhbHNlO1xuICB9XG5cbiAgdmlld0xpc3RlbmVyVXBkYXRlKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAncGItc3RhcnQtdXBkYXRlJyxcbiAgICAgIGZ1bmN0aW9uIF9saXN0ZW5lcigpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGItc3RhcnQtdXBkYXRlJywgX2xpc3RlbmVyLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIGNoYW5nZVZpZXcodmlldywgcmVmcmVzaCkge1xuICAgIHNldFRpbWVvdXQoXG4gICAgICAodiwgcikgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgVEVTVCBDSEFOR0UgVklFVzogJHt2aWV3fWApO1xuICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgncGItdG9nZ2xlJywge1xuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB2aWV3OiB2LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBhY3Rpb246IHIgPyAncmVmcmVzaCcgOiAnJyxcbiAgICAgICAgICAgICAga2V5OiAndHJhbnNjcmlwdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgNjAwLFxuICAgICAgdmlldyxcbiAgICAgIHJlZnJlc2hcbiAgICApO1xuICB9XG5cbiAgc2Nyb2xsRWxlbWVudHNJbnRvVmlldyh0YXJnZXQsIHR5cGUsIHZpZXcpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCBlbGVtZW50OiBhbnk7XG4gICAgICBpZiAodHlwZSA9PT0gJ2NoYXB0ZXInKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5uNy10ZXh0LXZpZXdlciAjdmlldzAnKVxuICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigncGItaGlnaGxpZ2h0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ID0gZG9jdW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKCcubjctdGV4dC12aWV3ZXIgI3ZpZXcwJylcbiAgICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ3BiLWhpZ2hsaWdodCcpO1xuXG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0SWQgPSBoaWdobGlnaHRbaGlnaGxpZ2h0Lmxlbmd0aCAtIDFdLmlkOyAvLyBzLnhcblxuICAgICAgICAgIGNvbnN0IGZyYWdtZW50TnVtYmVyID0gaGlnaGxpZ2h0SWQucmVwbGFjZSgnLicsICdcXFxcLicpO1xuXG4gICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3Rvcih2aWV3KVxuICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgIyR7ZnJhZ21lbnROdW1iZXJ9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VudGl0eScpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGFyZ2V0Ll9fa2V5O1xuICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICR7dmlld31gKVxuICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYCMke2tleX1gKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2hxJykge1xuICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICR7dmlld31gKVxuICAgICAgICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50ZWktZW0nKTtcbiAgICAgIH1cbiAgICAgIC8qXG4gICAgICBlbHNlIGlmICh0eXBlID09PSAnYXBwYXJhdHVzJykge1xuICAgICAgICBjb25zdCBrZXkgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFwia2V5XCIpO1xuICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICNhcHBhcmF0dXMtdmlldzBgKVxuICAgICAgICAgID8uc2hhZG93Um9vdFxuICAgICAgICAgID8ucXVlcnlTZWxlY3RvcihgIyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgKi9cblxuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLm43LXRleHQtdmlld2VyICR7dmlld31gKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBlbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIH1cbiAgICB9LCA2MDApO1xuICB9XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Pipe, Component, Input, TemplateRef, ContentChild, ElementRef, ViewChild, NgModule } from '@angular/core';
2
+ import { Injectable, Pipe, Input, Component, TemplateRef, ContentChild, ElementRef, ViewChild, NgModule } from '@angular/core';
3
3
  import * as i1$2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i7 from '@net7/components';
6
6
  import { DvComponentsLibModule } from '@net7/components';
7
7
  import * as i1 from '@net7/boilerplate-common';
8
- import { helpers, SmartPaginationDS, SmartPaginationEH, AbstractLayout, N7BoilerplateCommonModule } from '@net7/boilerplate-common';
8
+ import { helpers, SmartPaginationEH, SmartPaginationDS, AbstractLayout, N7BoilerplateCommonModule } from '@net7/boilerplate-common';
9
9
  import { Subject, of, fromEvent, ReplaySubject } from 'rxjs';
10
10
  import { takeUntil, delay, map, tap, debounceTime, switchMap, filter, switchMapTo, first, catchError } from 'rxjs/operators';
11
11
  import { isEmpty, xor, merge, isObject, clone, cloneDeep } from 'lodash';
@@ -2111,6 +2111,26 @@ class MrTextViewerDS extends DataSource {
2111
2111
  }, { once: true });
2112
2112
  const params = new URLSearchParams(document.location.search);
2113
2113
  const id = params.get('id');
2114
+ // Nascondere tei-app e note-item se l'ODD non ha già l'elemento in display NONE
2115
+ /* const hideElements = () => {
2116
+ const apparatusView = document.querySelector('.n7-text-viewer #apparatus-view0');
2117
+ if (apparatusView?.shadowRoot) {
2118
+ const teiAppElements = apparatusView.shadowRoot.querySelectorAll('.tei-app');
2119
+ const teiNoteElements = apparatusView.shadowRoot.querySelectorAll('.note-item');
2120
+ console.log('Trovati elementi tei-app:', teiAppElements.length);
2121
+ console.log('Trovati elementi tei-note:', teiNoteElements.length);
2122
+ teiAppElements.forEach((element) => {
2123
+ (element as HTMLElement).style.display = 'none';
2124
+ });
2125
+ teiNoteElements.forEach((element) => {
2126
+ (element as HTMLElement).style.display = 'none';
2127
+ });
2128
+ }
2129
+ };
2130
+ document.addEventListener('pb-end-update', () => {
2131
+ console.log('Evento pb-end-update ricevuto');
2132
+ hideElements();
2133
+ }); */
2114
2134
  if (data.docs[0]?.view === 'page' && id) {
2115
2135
  data.docs[0].view = 'div';
2116
2136
  document.addEventListener('pb-end-update', () => {
@@ -2172,14 +2192,75 @@ class MrTextViewerDS extends DataSource {
2172
2192
  }
2173
2193
  }
2174
2194
  onClick(payload) {
2175
- if (this.output.toggleColumn === false) {
2176
- let target = null;
2177
- if (payload.path) {
2178
- target = payload.path.find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
2195
+ let target = null;
2196
+ if (payload.path) {
2197
+ target = payload.path.find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
2198
+ }
2199
+ else {
2200
+ target = payload.composedPath().find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
2201
+ }
2202
+ if (target && target.getAttribute('type') === 'app_lem') {
2203
+ const appId = target.getAttribute('key');
2204
+ // console.log('appId', appId);
2205
+ // Posizione elemento cliccato
2206
+ const clickedElementPosition = target.getBoundingClientRect().top;
2207
+ const apparatusView = document.querySelector('.n7-text-viewer #apparatus-view0');
2208
+ /* console.log('apparatusView', apparatusView);
2209
+ console.log('shadowRoot', apparatusView?.shadowRoot); */
2210
+ const anchorElement = apparatusView
2211
+ ?.shadowRoot
2212
+ ?.querySelector(`#${appId}`);
2213
+ const teiAppElement = anchorElement
2214
+ ? anchorElement.closest('.tei-app')
2215
+ : null;
2216
+ if (teiAppElement) {
2217
+ // Verifica se è visibile
2218
+ const isVisible = teiAppElement.style.display === 'block';
2219
+ if (isVisible) {
2220
+ teiAppElement.style.display = 'none';
2221
+ teiAppElement.style.transform = '';
2222
+ }
2223
+ else {
2224
+ teiAppElement.style.display = 'block';
2225
+ // posizione attuale
2226
+ const elementPosition = teiAppElement.getBoundingClientRect().top;
2227
+ // differenza
2228
+ const positionDifference = clickedElementPosition - elementPosition;
2229
+ // spostamento
2230
+ teiAppElement.style.transform = `translateY(${positionDifference}px)`;
2231
+ }
2179
2232
  }
2180
- else {
2181
- target = payload.composedPath().find(({ tagName }) => tagName === 'PB-HIGHLIGHT');
2233
+ }
2234
+ else if (target && target.getAttribute('type') === 'note_line') {
2235
+ const noteId = target.getAttribute('key');
2236
+ // console.log('noteId', noteId);
2237
+ const clickedElementPosition = target.getBoundingClientRect().top;
2238
+ const apparatusView = document.querySelector('.n7-text-viewer #apparatus-view0');
2239
+ const anchorElement = apparatusView
2240
+ ?.shadowRoot
2241
+ ?.querySelector(`#${noteId}`);
2242
+ const teiNoteElement = anchorElement
2243
+ ? anchorElement.closest('.note-item')
2244
+ : null;
2245
+ if (teiNoteElement) {
2246
+ // Verifica se è visibile
2247
+ const isVisible = teiNoteElement.style.display === 'block';
2248
+ if (isVisible) {
2249
+ teiNoteElement.style.display = 'none';
2250
+ teiNoteElement.style.transform = '';
2251
+ }
2252
+ else {
2253
+ teiNoteElement.style.display = 'block';
2254
+ // posizione attuale
2255
+ const elementPosition = teiNoteElement.getBoundingClientRect().top;
2256
+ // differenza
2257
+ const positionDifference = clickedElementPosition - elementPosition;
2258
+ // spostamento
2259
+ teiNoteElement.style.transform = `translateY(${positionDifference}px)`;
2260
+ }
2182
2261
  }
2262
+ }
2263
+ else if (target && this.output.toggleColumn === false) {
2183
2264
  if (target.__key
2184
2265
  && (target.className.includes('person')
2185
2266
  || target.className.includes('place'))) {
@@ -2237,6 +2318,15 @@ class MrTextViewerDS extends DataSource {
2237
2318
  .querySelector(`.n7-text-viewer ${view}`)
2238
2319
  .shadowRoot.querySelector('.tei-em');
2239
2320
  }
2321
+ /*
2322
+ else if (type === 'apparatus') {
2323
+ const key = target.getAttribute("key");
2324
+ element = document
2325
+ .querySelector(`.n7-text-viewer #apparatus-view0`)
2326
+ ?.shadowRoot
2327
+ ?.querySelector(`#${key}`);
2328
+ }
2329
+ */
2240
2330
  const container = document.querySelector(`.n7-text-viewer ${view}`);
2241
2331
  if (element) {
2242
2332
  container.scrollTop = element.offsetTop;