bajo-spatial 2.2.0 → 2.3.0

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.
@@ -1,115 +1,115 @@
1
1
  /* global document */
2
- const accordionLocalStorageKey = 'accordion-id'
3
- const themeLocalStorageKey = 'theme'
4
- const fontSizeLocalStorageKey = 'font-size'
5
- const html = document.querySelector('html')
2
+ var accordionLocalStorageKey = 'accordion-id';
3
+ var themeLocalStorageKey = 'theme';
4
+ var fontSizeLocalStorageKey = 'font-size';
5
+ var html = document.querySelector('html');
6
6
 
7
- const MAX_FONT_SIZE = 30
8
- const MIN_FONT_SIZE = 10
7
+ var MAX_FONT_SIZE = 30;
8
+ var MIN_FONT_SIZE = 10;
9
9
 
10
10
  // eslint-disable-next-line no-undef
11
- const localStorage = window.localStorage
11
+ var localStorage = window.localStorage;
12
12
 
13
- function getTheme () {
14
- let theme = localStorage.getItem(themeLocalStorageKey)
13
+ function getTheme() {
14
+ var theme = localStorage.getItem(themeLocalStorageKey);
15
15
 
16
- if (theme) return theme
16
+ if (theme) return theme;
17
17
 
18
- theme = document.body.getAttribute('data-theme')
18
+ theme = document.body.getAttribute('data-theme');
19
19
 
20
- switch (theme) {
21
- case 'dark':
22
- case 'light':
23
- return theme
24
- case 'fallback-dark':
25
- if (
26
- // eslint-disable-next-line no-undef
27
- window.matchMedia('(prefers-color-scheme)').matches &&
20
+ switch (theme) {
21
+ case 'dark':
22
+ case 'light':
23
+ return theme;
24
+ case 'fallback-dark':
25
+ if (
26
+ // eslint-disable-next-line no-undef
27
+ window.matchMedia('(prefers-color-scheme)').matches &&
28
28
  // eslint-disable-next-line no-undef
29
29
  window.matchMedia('(prefers-color-scheme: light)').matches
30
- ) {
31
- return 'light'
32
- }
30
+ ) {
31
+ return 'light';
32
+ }
33
33
 
34
- return 'dark'
34
+ return 'dark';
35
35
 
36
- case 'fallback-light':
37
- if (
38
- // eslint-disable-next-line no-undef
39
- window.matchMedia('(prefers-color-scheme)').matches &&
36
+ case 'fallback-light':
37
+ if (
38
+ // eslint-disable-next-line no-undef
39
+ window.matchMedia('(prefers-color-scheme)').matches &&
40
40
  // eslint-disable-next-line no-undef
41
41
  window.matchMedia('(prefers-color-scheme: dark)').matches
42
- ) {
43
- return 'dark'
44
- }
42
+ ) {
43
+ return 'dark';
44
+ }
45
45
 
46
- return 'light'
46
+ return 'light';
47
47
 
48
- default:
49
- return 'dark'
50
- }
48
+ default:
49
+ return 'dark';
50
+ }
51
51
  }
52
52
 
53
- function localUpdateTheme (theme) {
54
- const body = document.body
55
- const svgUse = document.querySelectorAll('.theme-svg-use')
56
- const iconID = theme === 'dark' ? '#light-theme-icon' : '#dark-theme-icon'
53
+ function localUpdateTheme(theme) {
54
+ var body = document.body;
55
+ var svgUse = document.querySelectorAll('.theme-svg-use');
56
+ var iconID = theme === 'dark' ? '#light-theme-icon' : '#dark-theme-icon';
57
57
 
58
- body.setAttribute('data-theme', theme)
59
- body.classList.remove('dark', 'light')
60
- body.classList.add(theme)
58
+ body.setAttribute('data-theme', theme);
59
+ body.classList.remove('dark', 'light');
60
+ body.classList.add(theme);
61
61
 
62
- svgUse.forEach(function (svg) {
63
- svg.setAttribute('xlink:href', iconID)
64
- })
62
+ svgUse.forEach(function (svg) {
63
+ svg.setAttribute('xlink:href', iconID);
64
+ });
65
65
  }
66
66
 
67
- function updateTheme (theme) {
68
- localUpdateTheme(theme)
69
- localStorage.setItem(themeLocalStorageKey, theme)
67
+ function updateTheme(theme) {
68
+ localUpdateTheme(theme);
69
+ localStorage.setItem(themeLocalStorageKey, theme);
70
70
  }
71
71
 
72
- function toggleTheme () {
73
- const body = document.body
74
- const theme = body.getAttribute('data-theme')
72
+ function toggleTheme() {
73
+ var body = document.body;
74
+ var theme = body.getAttribute('data-theme');
75
75
 
76
- const newTheme = theme === 'dark' ? 'light' : 'dark'
76
+ var newTheme = theme === 'dark' ? 'light' : 'dark';
77
77
 
78
- updateTheme(newTheme)
78
+ updateTheme(newTheme);
79
79
  }
80
80
 
81
81
  (function () {
82
- const theme = getTheme()
82
+ var theme = getTheme();
83
83
 
84
- updateTheme(theme)
85
- })()
84
+ updateTheme(theme);
85
+ })();
86
86
 
87
87
  /**
88
88
  * Function to set accordion id to localStorage.
89
89
  * @param {string} id Accordion id
90
90
  */
91
- function setAccordionIdToLocalStorage (id) {
92
- /**
91
+ function setAccordionIdToLocalStorage(id) {
92
+ /**
93
93
  * @type {object}
94
94
  */
95
- const ids = JSON.parse(localStorage.getItem(accordionLocalStorageKey))
95
+ var ids = JSON.parse(localStorage.getItem(accordionLocalStorageKey));
96
96
 
97
- ids[id] = id
98
- localStorage.setItem(accordionLocalStorageKey, JSON.stringify(ids))
97
+ ids[id] = id;
98
+ localStorage.setItem(accordionLocalStorageKey, JSON.stringify(ids));
99
99
  }
100
100
 
101
101
  /**
102
102
  * Function to remove accordion id from localStorage.
103
103
  * @param {string} id Accordion id
104
104
  */
105
- function removeAccordionIdFromLocalStorage (id) {
106
- /**
105
+ function removeAccordionIdFromLocalStorage(id) {
106
+ /**
107
107
  * @type {object}
108
108
  */
109
- const ids = JSON.parse(localStorage.getItem(accordionLocalStorageKey))
109
+ var ids = JSON.parse(localStorage.getItem(accordionLocalStorageKey));
110
110
 
111
- delete ids[id]
112
- localStorage.setItem(accordionLocalStorageKey, JSON.stringify(ids))
111
+ delete ids[id];
112
+ localStorage.setItem(accordionLocalStorageKey, JSON.stringify(ids));
113
113
  }
114
114
 
115
115
  /**
@@ -117,374 +117,374 @@ function removeAccordionIdFromLocalStorage (id) {
117
117
  *
118
118
  * @returns {object}
119
119
  */
120
- function getAccordionIdsFromLocalStorage () {
121
- /**
120
+ function getAccordionIdsFromLocalStorage() {
121
+ /**
122
122
  * @type {object}
123
123
  */
124
- const ids = JSON.parse(localStorage.getItem(accordionLocalStorageKey))
124
+ var ids = JSON.parse(localStorage.getItem(accordionLocalStorageKey));
125
125
 
126
- return ids || {}
126
+ return ids || {};
127
127
  }
128
128
 
129
- function toggleAccordion (element) {
130
- const currentNode = element
131
- const isCollapsed = currentNode.getAttribute('data-isopen') === 'false'
129
+ function toggleAccordion(element) {
130
+ var currentNode = element;
131
+ var isCollapsed = currentNode.getAttribute('data-isopen') === 'false';
132
132
 
133
- if (isCollapsed) {
134
- currentNode.setAttribute('data-isopen', 'true')
135
- setAccordionIdToLocalStorage(currentNode.id)
136
- } else {
137
- currentNode.setAttribute('data-isopen', 'false')
138
- removeAccordionIdFromLocalStorage(currentNode.id)
139
- }
133
+ if (isCollapsed) {
134
+ currentNode.setAttribute('data-isopen', 'true');
135
+ setAccordionIdToLocalStorage(currentNode.id);
136
+ } else {
137
+ currentNode.setAttribute('data-isopen', 'false');
138
+ removeAccordionIdFromLocalStorage(currentNode.id);
139
+ }
140
140
  }
141
141
 
142
- function initAccordion () {
143
- if (
144
- localStorage.getItem(accordionLocalStorageKey) === undefined ||
142
+ function initAccordion() {
143
+ if (
144
+ localStorage.getItem(accordionLocalStorageKey) === undefined ||
145
145
  localStorage.getItem(accordionLocalStorageKey) === null
146
- ) {
147
- localStorage.setItem(accordionLocalStorageKey, '{}')
148
- }
149
- const allAccordion = document.querySelectorAll('.sidebar-section-title')
150
- const ids = getAccordionIdsFromLocalStorage()
151
-
152
- allAccordion.forEach(function (item) {
153
- item.addEventListener('click', function () {
154
- toggleAccordion(item)
155
- })
156
- if (item.id in ids) {
157
- toggleAccordion(item)
146
+ ) {
147
+ localStorage.setItem(accordionLocalStorageKey, '{}');
158
148
  }
159
- })
149
+ var allAccordion = document.querySelectorAll('.sidebar-section-title');
150
+ var ids = getAccordionIdsFromLocalStorage();
151
+
152
+ allAccordion.forEach(function (item) {
153
+ item.addEventListener('click', function () {
154
+ toggleAccordion(item);
155
+ });
156
+ if (item.id in ids) {
157
+ toggleAccordion(item);
158
+ }
159
+ });
160
160
  }
161
161
 
162
- function isSourcePage () {
163
- return Boolean(document.querySelector('#source-page'))
162
+ function isSourcePage() {
163
+ return Boolean(document.querySelector('#source-page'));
164
164
  }
165
165
 
166
- function bringElementIntoView (element, updateHistory = true) {
167
- // If element is null then we are not going further
168
- if (!element) {
169
- return
170
- }
166
+ function bringElementIntoView(element, updateHistory = true) {
167
+ // If element is null then we are not going further
168
+ if (!element) {
169
+ return;
170
+ }
171
171
 
172
- /**
172
+ /**
173
173
  * tocbotInstance is defined in layout.tmpl
174
174
  * It is defined when we are initializing tocbot.
175
175
  *
176
176
  */
177
- // eslint-disable-next-line no-undef
178
- if (tocbotInstance) {
179
- setTimeout(
180
- // eslint-disable-next-line no-undef
181
- () => tocbotInstance.updateTocListActiveElement(element),
182
- 60
183
- )
184
- }
185
- const navbar = document.querySelector('.navbar-container')
186
- const body = document.querySelector('.main-content')
187
- const elementTop = element.getBoundingClientRect().top
188
-
189
- let offset = 16
190
-
191
- if (navbar) {
192
- offset += navbar.scrollHeight
193
- }
194
-
195
- if (body) {
196
- body.scrollBy(0, elementTop - offset)
197
- }
198
-
199
- if (updateHistory) {
200
177
  // eslint-disable-next-line no-undef
201
- history.pushState(null, null, '#' + element.id)
202
- }
178
+ if (tocbotInstance) {
179
+ setTimeout(
180
+ // eslint-disable-next-line no-undef
181
+ () => tocbotInstance.updateTocListActiveElement(element),
182
+ 60
183
+ );
184
+ }
185
+ var navbar = document.querySelector('.navbar-container');
186
+ var body = document.querySelector('.main-content');
187
+ var elementTop = element.getBoundingClientRect().top;
188
+
189
+ var offset = 16;
190
+
191
+ if (navbar) {
192
+ offset += navbar.scrollHeight;
193
+ }
194
+
195
+ if (body) {
196
+ body.scrollBy(0, elementTop - offset);
197
+ }
198
+
199
+ if (updateHistory) {
200
+ // eslint-disable-next-line no-undef
201
+ history.pushState(null, null, '#' + element.id);
202
+ }
203
203
  }
204
204
 
205
205
  // eslint-disable-next-line no-unused-vars
206
- function bringLinkToView (event) {
207
- event.preventDefault()
208
- event.stopPropagation()
209
- const id = event.currentTarget.getAttribute('href')
206
+ function bringLinkToView(event) {
207
+ event.preventDefault();
208
+ event.stopPropagation();
209
+ var id = event.currentTarget.getAttribute('href');
210
210
 
211
- if (!id) {
212
- return
213
- }
211
+ if (!id) {
212
+ return;
213
+ }
214
214
 
215
- const element = document.getElementById(id.slice(1))
215
+ var element = document.getElementById(id.slice(1));
216
216
 
217
- if (element) {
218
- bringElementIntoView(element)
219
- }
217
+ if (element) {
218
+ bringElementIntoView(element);
219
+ }
220
220
  }
221
221
 
222
- function bringIdToViewOnMount () {
223
- if (isSourcePage()) {
224
- return
225
- }
222
+ function bringIdToViewOnMount() {
223
+ if (isSourcePage()) {
224
+ return;
225
+ }
226
226
 
227
- // eslint-disable-next-line no-undef
228
- let id = window.location.hash
227
+ // eslint-disable-next-line no-undef
228
+ var id = window.location.hash;
229
229
 
230
- if (id === '') {
231
- return
232
- }
230
+ if (id === '') {
231
+ return;
232
+ }
233
233
 
234
- let element = document.getElementById(id.slice(1))
234
+ var element = document.getElementById(id.slice(1));
235
235
 
236
- if (!element) {
237
- id = decodeURI(id)
238
- element = document.getElementById(id.slice(1))
239
- }
236
+ if (!element) {
237
+ id = decodeURI(id);
238
+ element = document.getElementById(id.slice(1));
239
+ }
240
240
 
241
- if (element) {
242
- bringElementIntoView(element, false)
243
- }
241
+ if (element) {
242
+ bringElementIntoView(element, false);
243
+ }
244
244
  }
245
245
 
246
- function createAnchorElement (id) {
247
- const anchor = document.createElement('a')
246
+ function createAnchorElement(id) {
247
+ var anchor = document.createElement('a');
248
248
 
249
- anchor.textContent = '#'
250
- anchor.href = '#' + id
251
- anchor.classList.add('link-anchor')
252
- anchor.onclick = bringLinkToView
249
+ anchor.textContent = '#';
250
+ anchor.href = '#' + id;
251
+ anchor.classList.add('link-anchor');
252
+ anchor.onclick = bringLinkToView;
253
253
 
254
- return anchor
254
+ return anchor;
255
255
  }
256
256
 
257
- function addAnchor () {
258
- const main = document.querySelector('.main-content').querySelector('section')
257
+ function addAnchor() {
258
+ var main = document.querySelector('.main-content').querySelector('section');
259
259
 
260
- const h1 = main.querySelectorAll('h1')
261
- const h2 = main.querySelectorAll('h2')
262
- const h3 = main.querySelectorAll('h3')
263
- const h4 = main.querySelectorAll('h4')
260
+ var h1 = main.querySelectorAll('h1');
261
+ var h2 = main.querySelectorAll('h2');
262
+ var h3 = main.querySelectorAll('h3');
263
+ var h4 = main.querySelectorAll('h4');
264
264
 
265
- const targets = [h1, h2, h3, h4]
265
+ var targets = [h1, h2, h3, h4];
266
266
 
267
- targets.forEach(function (target) {
268
- target.forEach(function (heading) {
269
- const anchor = createAnchorElement(heading.id)
267
+ targets.forEach(function (target) {
268
+ target.forEach(function (heading) {
269
+ var anchor = createAnchorElement(heading.id);
270
270
 
271
- heading.classList.add('has-anchor')
272
- heading.append(anchor)
273
- })
274
- })
271
+ heading.classList.add('has-anchor');
272
+ heading.append(anchor);
273
+ });
274
+ });
275
275
  }
276
276
 
277
277
  /**
278
278
  *
279
279
  * @param {string} value
280
280
  */
281
- function copy (value) {
282
- const el = document.createElement('textarea')
281
+ function copy(value) {
282
+ const el = document.createElement('textarea');
283
283
 
284
- el.value = value
285
- document.body.appendChild(el)
286
- el.select()
287
- document.execCommand('copy')
288
- document.body.removeChild(el)
284
+ el.value = value;
285
+ document.body.appendChild(el);
286
+ el.select();
287
+ document.execCommand('copy');
288
+ document.body.removeChild(el);
289
289
  }
290
290
 
291
- function showTooltip (id) {
292
- const tooltip = document.getElementById(id)
291
+ function showTooltip(id) {
292
+ var tooltip = document.getElementById(id);
293
293
 
294
- tooltip.classList.add('show-tooltip')
295
- setTimeout(function () {
296
- tooltip.classList.remove('show-tooltip')
297
- }, 3000)
294
+ tooltip.classList.add('show-tooltip');
295
+ setTimeout(function () {
296
+ tooltip.classList.remove('show-tooltip');
297
+ }, 3000);
298
298
  }
299
299
 
300
300
  /* eslint-disable-next-line */
301
301
  function copyFunction(id) {
302
- // selecting the pre element
303
- const code = document.getElementById(id)
302
+ // selecting the pre element
303
+ var code = document.getElementById(id);
304
304
 
305
- // selecting the ol.linenums
306
- let element = code.querySelector('.linenums')
305
+ // selecting the ol.linenums
306
+ var element = code.querySelector('.linenums');
307
307
 
308
- if (!element) {
309
- // selecting the code block
310
- element = code.querySelector('code')
311
- }
308
+ if (!element) {
309
+ // selecting the code block
310
+ element = code.querySelector('code');
311
+ }
312
312
 
313
- // copy
314
- copy(element.innerText.trim().replace(/(^\t)/gm, ''))
313
+ // copy
314
+ copy(element.innerText.trim().replace(/(^\t)/gm, ''));
315
315
 
316
- // show tooltip
317
- showTooltip('tooltip-' + id)
316
+ // show tooltip
317
+ showTooltip('tooltip-' + id);
318
318
  }
319
319
 
320
- function hideTocOnSourcePage () {
321
- if (isSourcePage()) {
322
- document.querySelector('.toc-container').style.display = 'none'
323
- }
320
+ function hideTocOnSourcePage() {
321
+ if (isSourcePage()) {
322
+ document.querySelector('.toc-container').style.display = 'none';
323
+ }
324
324
  }
325
325
 
326
- function getPreTopBar (id, lang = '') {
327
- // tooltip
328
- const tooltip = '<div class="tooltip" id="tooltip-' + id + '">Copied!</div>'
326
+ function getPreTopBar(id, lang = '') {
327
+ // tooltip
328
+ var tooltip = '<div class="tooltip" id="tooltip-' + id + '">Copied!</div>';
329
329
 
330
- // template of copy to clipboard icon container
331
- const copyToClipboard =
330
+ // template of copy to clipboard icon container
331
+ var copyToClipboard =
332
332
  '<button aria-label="copy code" class="icon-button copy-code" onclick="copyFunction(\'' +
333
333
  id +
334
334
  '\')"><svg class="sm-icon" alt="click to copy"><use xlink:href="#copy-icon"></use></svg>' +
335
335
  tooltip +
336
- '</button>'
336
+ '</button>';
337
337
 
338
- const langNameDiv =
338
+ var langNameDiv =
339
339
  '<div class="code-lang-name-container"><div class="code-lang-name">' +
340
340
  lang.toLocaleUpperCase() +
341
- '</div></div>'
341
+ '</div></div>';
342
342
 
343
- const topBar =
343
+ var topBar =
344
344
  '<div class="pre-top-bar-container">' +
345
345
  langNameDiv +
346
346
  copyToClipboard +
347
- '</div>'
347
+ '</div>';
348
348
 
349
- return topBar
349
+ return topBar;
350
350
  }
351
351
 
352
- function getPreDiv () {
353
- const divElement = document.createElement('div')
352
+ function getPreDiv() {
353
+ var divElement = document.createElement('div');
354
354
 
355
- divElement.classList.add('pre-div')
355
+ divElement.classList.add('pre-div');
356
356
 
357
- return divElement
357
+ return divElement;
358
358
  }
359
359
 
360
- function processAllPre () {
361
- const targets = document.querySelectorAll('pre')
362
- const footer = document.querySelector('#PeOAagUepe')
363
- const navbar = document.querySelector('#VuAckcnZhf')
360
+ function processAllPre() {
361
+ var targets = document.querySelectorAll('pre');
362
+ var footer = document.querySelector('#PeOAagUepe');
363
+ var navbar = document.querySelector('#VuAckcnZhf');
364
364
 
365
- let navbarHeight = 0
366
- let footerHeight = 0
365
+ var navbarHeight = 0;
366
+ var footerHeight = 0;
367
367
 
368
- if (footer) {
369
- footerHeight = footer.getBoundingClientRect().height
370
- }
368
+ if (footer) {
369
+ footerHeight = footer.getBoundingClientRect().height;
370
+ }
371
371
 
372
- if (navbar) {
373
- navbarHeight = navbar.getBoundingClientRect().height
374
- }
372
+ if (navbar) {
373
+ navbarHeight = navbar.getBoundingClientRect().height;
374
+ }
375
375
 
376
- // eslint-disable-next-line no-undef
377
- const preMaxHeight = window.innerHeight - navbarHeight - footerHeight - 250
376
+ // eslint-disable-next-line no-undef
377
+ var preMaxHeight = window.innerHeight - navbarHeight - footerHeight - 250;
378
378
 
379
- targets.forEach(function (pre, idx) {
380
- const parent = pre.parentNode
379
+ targets.forEach(function (pre, idx) {
380
+ var parent = pre.parentNode;
381
381
 
382
- if (parent && parent.getAttribute('data-skip-pre-process') === 'true') {
383
- return
384
- }
382
+ if (parent && parent.getAttribute('data-skip-pre-process') === 'true') {
383
+ return;
384
+ }
385
385
 
386
- const div = getPreDiv()
387
- const id = 'ScDloZOMdL' + idx
386
+ var div = getPreDiv();
387
+ var id = 'ScDloZOMdL' + idx;
388
388
 
389
- const lang = pre.getAttribute('data-lang') || 'code'
390
- const topBar = getPreTopBar(id, lang)
389
+ var lang = pre.getAttribute('data-lang') || 'code';
390
+ var topBar = getPreTopBar(id, lang);
391
391
 
392
- div.innerHTML = topBar
392
+ div.innerHTML = topBar;
393
393
 
394
- pre.style.maxHeight = preMaxHeight + 'px'
395
- pre.id = id
396
- pre.classList.add('prettyprint')
397
- pre.parentNode.insertBefore(div, pre)
398
- div.appendChild(pre)
399
- })
394
+ pre.style.maxHeight = preMaxHeight + 'px';
395
+ pre.id = id;
396
+ pre.classList.add('prettyprint');
397
+ pre.parentNode.insertBefore(div, pre);
398
+ div.appendChild(pre);
399
+ });
400
400
  }
401
401
 
402
- function highlightAndBringLineIntoView () {
403
- // eslint-disable-next-line no-undef
404
- const lineNumber = window.location.hash.replace('#line', '')
402
+ function highlightAndBringLineIntoView() {
403
+ // eslint-disable-next-line no-undef
404
+ var lineNumber = window.location.hash.replace('#line', '');
405
405
 
406
- try {
407
- const selector = '[data-line-number="' + lineNumber + '"'
406
+ try {
407
+ var selector = '[data-line-number="' + lineNumber + '"';
408
408
 
409
- const element = document.querySelector(selector)
409
+ var element = document.querySelector(selector);
410
410
 
411
- element.scrollIntoView()
412
- element.parentNode.classList.add('selected')
413
- } catch (error) {
414
- console.error(error)
415
- }
411
+ element.scrollIntoView();
412
+ element.parentNode.classList.add('selected');
413
+ } catch (error) {
414
+ console.error(error);
415
+ }
416
416
  }
417
417
 
418
- function getFontSize () {
419
- let currentFontSize = 16
418
+ function getFontSize() {
419
+ var currentFontSize = 16;
420
420
 
421
- try {
422
- currentFontSize = Number.parseInt(
423
- html.style.fontSize.split('px')[0],
424
- 10
425
- )
426
- } catch (error) {
427
- console.log(error)
428
- }
421
+ try {
422
+ currentFontSize = Number.parseInt(
423
+ html.style.fontSize.split('px')[0],
424
+ 10
425
+ );
426
+ } catch (error) {
427
+ console.log(error);
428
+ }
429
429
 
430
- return currentFontSize
430
+ return currentFontSize;
431
431
  }
432
432
 
433
- function localUpdateFontSize (fontSize) {
434
- html.style.fontSize = fontSize + 'px'
433
+ function localUpdateFontSize(fontSize) {
434
+ html.style.fontSize = fontSize + 'px';
435
435
 
436
- const fontSizeText = document.querySelector(
437
- '#b77a68a492f343baabea06fad81f651e'
438
- )
436
+ var fontSizeText = document.querySelector(
437
+ '#b77a68a492f343baabea06fad81f651e'
438
+ );
439
439
 
440
- if (fontSizeText) {
441
- fontSizeText.innerHTML = fontSize
442
- }
440
+ if (fontSizeText) {
441
+ fontSizeText.innerHTML = fontSize;
442
+ }
443
443
  }
444
444
 
445
- function updateFontSize (fontSize) {
446
- localUpdateFontSize(fontSize)
447
- localStorage.setItem(fontSizeLocalStorageKey, fontSize)
445
+ function updateFontSize(fontSize) {
446
+ localUpdateFontSize(fontSize);
447
+ localStorage.setItem(fontSizeLocalStorageKey, fontSize);
448
448
  }
449
449
 
450
450
  (function () {
451
- const fontSize = getFontSize()
452
- const fontSizeInLocalStorage = localStorage.getItem(fontSizeLocalStorageKey)
453
-
454
- if (fontSizeInLocalStorage) {
455
- const n = Number.parseInt(fontSizeInLocalStorage, 10)
456
-
457
- if (n === fontSize) {
458
- return
451
+ var fontSize = getFontSize();
452
+ var fontSizeInLocalStorage = localStorage.getItem(fontSizeLocalStorageKey);
453
+
454
+ if (fontSizeInLocalStorage) {
455
+ var n = Number.parseInt(fontSizeInLocalStorage, 10);
456
+
457
+ if (n === fontSize) {
458
+ return;
459
+ }
460
+ updateFontSize(n);
461
+ } else {
462
+ updateFontSize(fontSize);
459
463
  }
460
- updateFontSize(n)
461
- } else {
462
- updateFontSize(fontSize)
463
- }
464
- })()
464
+ })();
465
465
 
466
466
  // eslint-disable-next-line no-unused-vars
467
- function incrementFont (event) {
468
- const n = getFontSize()
467
+ function incrementFont(event) {
468
+ var n = getFontSize();
469
469
 
470
- if (n < MAX_FONT_SIZE) {
471
- updateFontSize(n + 1)
472
- }
470
+ if (n < MAX_FONT_SIZE) {
471
+ updateFontSize(n + 1);
472
+ }
473
473
  }
474
474
 
475
475
  // eslint-disable-next-line no-unused-vars
476
- function decrementFont (event) {
477
- const n = getFontSize()
476
+ function decrementFont(event) {
477
+ var n = getFontSize();
478
478
 
479
- if (n > MIN_FONT_SIZE) {
480
- updateFontSize(n - 1)
481
- }
479
+ if (n > MIN_FONT_SIZE) {
480
+ updateFontSize(n - 1);
481
+ }
482
482
  }
483
483
 
484
- function fontSizeTooltip () {
485
- const fontSize = getFontSize()
484
+ function fontSizeTooltip() {
485
+ var fontSize = getFontSize();
486
486
 
487
- return `
487
+ return `
488
488
  <div class="font-size-tooltip">
489
489
  <button aria-label="decrease-font-size" class="icon-button ${
490
490
  fontSize >= MAX_FONT_SIZE ? 'disabled' : ''
@@ -510,216 +510,217 @@ function fontSizeTooltip () {
510
510
  </button>
511
511
  </div>
512
512
 
513
- `
514
- }
515
-
516
- function initTooltip () {
517
- // add tooltip to navbar item
518
- // eslint-disable-next-line no-undef
519
- tippy('.theme-toggle', {
520
- content: 'Toggle Theme',
521
- delay: 500
522
- })
523
-
524
- // eslint-disable-next-line no-undef
525
- tippy('.search-button', {
526
- content: 'Search',
527
- delay: 500
528
- })
513
+ `;
514
+ }
515
+
516
+ function initTooltip() {
517
+ // add tooltip to navbar item
518
+ // eslint-disable-next-line no-undef
519
+ tippy('.theme-toggle', {
520
+ content: 'Toggle Theme',
521
+ delay: 500,
522
+ });
523
+
524
+ // eslint-disable-next-line no-undef
525
+ tippy('.search-button', {
526
+ content: 'Search',
527
+ delay: 500,
528
+ });
529
529
 
530
- // eslint-disable-next-line no-undef
531
- tippy('.font-size', {
532
- content: 'Change font size',
533
- delay: 500
534
- })
530
+ // eslint-disable-next-line no-undef
531
+ tippy('.font-size', {
532
+ content: 'Change font size',
533
+ delay: 500,
534
+ });
535
535
 
536
- // eslint-disable-next-line no-undef
537
- tippy('.codepen-button', {
538
- content: 'Open code in CodePen',
539
- placement: 'left'
540
- })
536
+ // eslint-disable-next-line no-undef
537
+ tippy('.codepen-button', {
538
+ content: 'Open code in CodePen',
539
+ placement: 'left',
540
+ });
541
541
 
542
- // eslint-disable-next-line no-undef
543
- tippy('.copy-code', {
544
- content: 'Copy this code',
545
- placement: 'left'
546
- })
542
+ // eslint-disable-next-line no-undef
543
+ tippy('.copy-code', {
544
+ content: 'Copy this code',
545
+ placement: 'left',
546
+ });
547
547
 
548
- // eslint-disable-next-line no-undef
549
- tippy('.font-size', {
550
- content: fontSizeTooltip(),
551
- trigger: 'click',
552
- interactive: true,
553
- allowHTML: true,
554
- placement: 'left'
555
- })
548
+ // eslint-disable-next-line no-undef
549
+ tippy('.font-size', {
550
+ content: fontSizeTooltip(),
551
+ trigger: 'click',
552
+ interactive: true,
553
+ allowHTML: true,
554
+ placement: 'left',
555
+ });
556
556
  }
557
557
 
558
- function fixTable () {
559
- const tables = document.querySelectorAll('table')
558
+ function fixTable() {
559
+ const tables = document.querySelectorAll('table');
560
+
561
+ for (const table of tables) {
562
+ if (table.classList.contains('hljs-ln')) {
563
+ // don't want to wrap code blocks.
564
+ return;
565
+ }
560
566
 
561
- for (const table of tables) {
562
- if (table.classList.contains('hljs-ln')) {
563
- // don't want to wrap code blocks.
564
- return
567
+ var div = document.createElement('div');
568
+
569
+ div.classList.add('table-div');
570
+ table.parentNode.insertBefore(div, table);
571
+ div.appendChild(table);
565
572
  }
573
+ }
566
574
 
567
- const div = document.createElement('div')
575
+ function hideMobileMenu() {
576
+ var mobileMenuContainer = document.querySelector('#mobile-sidebar');
577
+ var target = document.querySelector('#mobile-menu');
578
+ var svgUse = target.querySelector('use');
568
579
 
569
- div.classList.add('table-div')
570
- table.parentNode.insertBefore(div, table)
571
- div.appendChild(table)
572
- }
580
+ if (mobileMenuContainer) {
581
+ mobileMenuContainer.classList.remove('show');
582
+ }
583
+ if (target) {
584
+ target.setAttribute('data-isopen', 'false');
585
+ }
586
+ if (svgUse) {
587
+ svgUse.setAttribute('xlink:href', '#menu-icon');
588
+ }
573
589
  }
574
590
 
575
- function hideMobileMenu () {
576
- const mobileMenuContainer = document.querySelector('#mobile-sidebar')
577
- const target = document.querySelector('#mobile-menu')
578
- const svgUse = target.querySelector('use')
591
+ function showMobileMenu() {
592
+ var mobileMenuContainer = document.querySelector('#mobile-sidebar');
593
+ var target = document.querySelector('#mobile-menu');
594
+ var svgUse = target.querySelector('use');
579
595
 
580
- if (mobileMenuContainer) {
581
- mobileMenuContainer.classList.remove('show')
582
- }
583
- if (target) {
584
- target.setAttribute('data-isopen', 'false')
585
- }
586
- if (svgUse) {
587
- svgUse.setAttribute('xlink:href', '#menu-icon')
588
- }
596
+ if (mobileMenuContainer) {
597
+ mobileMenuContainer.classList.add('show');
598
+ }
599
+ if (target) {
600
+ target.setAttribute('data-isopen', 'true');
601
+ }
602
+ if (svgUse) {
603
+ svgUse.setAttribute('xlink:href', '#close-icon');
604
+ }
589
605
  }
590
606
 
591
- function showMobileMenu () {
592
- const mobileMenuContainer = document.querySelector('#mobile-sidebar')
593
- const target = document.querySelector('#mobile-menu')
594
- const svgUse = target.querySelector('use')
607
+ function onMobileMenuClick() {
608
+ var target = document.querySelector('#mobile-menu');
609
+ var isOpen = target.getAttribute('data-isopen') === 'true';
595
610
 
596
- if (mobileMenuContainer) {
597
- mobileMenuContainer.classList.add('show')
598
- }
599
- if (target) {
600
- target.setAttribute('data-isopen', 'true')
601
- }
602
- if (svgUse) {
603
- svgUse.setAttribute('xlink:href', '#close-icon')
604
- }
611
+ if (isOpen) {
612
+ hideMobileMenu();
613
+ } else {
614
+ showMobileMenu();
615
+ }
605
616
  }
606
617
 
607
- function onMobileMenuClick () {
608
- const target = document.querySelector('#mobile-menu')
609
- const isOpen = target.getAttribute('data-isopen') === 'true'
618
+ function initMobileMenu() {
619
+ var menu = document.querySelector('#mobile-menu');
610
620
 
611
- if (isOpen) {
612
- hideMobileMenu()
613
- } else {
614
- showMobileMenu()
615
- }
616
- }
617
-
618
- function initMobileMenu () {
619
- const menu = document.querySelector('#mobile-menu')
620
-
621
- if (menu) {
622
- menu.addEventListener('click', onMobileMenuClick)
623
- }
624
- }
625
-
626
- function addHrefToSidebarTitle () {
627
- const titles = document.querySelectorAll('.sidebar-title-anchor')
621
+ if (menu) {
622
+ menu.addEventListener('click', onMobileMenuClick);
623
+ }
624
+ }
628
625
 
629
- titles.forEach(function (title) {
630
- // eslint-disable-next-line no-undef
631
- title.setAttribute('href', baseURL)
632
- })
626
+ function addHrefToSidebarTitle() {
627
+ var titles = document.querySelectorAll('.sidebar-title-anchor');
628
+
629
+ titles.forEach(function (title) {
630
+ // eslint-disable-next-line no-undef
631
+ title.setAttribute('href', baseURL);
632
+ });
633
633
  }
634
634
 
635
- function highlightActiveLinkInSidebar () {
636
- const list = document.location.href.split('/')
637
- const targetURL = decodeURI(list[list.length - 1])
638
- let element = document.querySelector(`.sidebar a[href*='${targetURL}']`)
635
+ function highlightActiveLinkInSidebar() {
636
+ const list = document.location.href.split('/');
637
+ const targetURL = decodeURI(list[list.length - 1]);
638
+ let element = document.querySelector(`.sidebar a[href*='${targetURL}']`);
639
639
 
640
- if (!element) {
641
- try {
642
- element = document.querySelector(
640
+ if (!element) {
641
+ try {
642
+ element = document.querySelector(
643
643
  `.sidebar a[href*='${targetURL.split('#')[0]}']`
644
- )
645
- } catch (e) {
646
- console.error(e)
644
+ );
645
+ } catch (e) {
646
+ console.error(e);
647
647
 
648
- return
648
+ return;
649
+ }
649
650
  }
650
- }
651
651
 
652
- if (!element) return
652
+ if (!element) return;
653
653
 
654
- element.parentElement.classList.add('active')
655
- element.scrollIntoView()
654
+ element.parentElement.classList.add('active');
655
+ element.scrollIntoView();
656
656
  }
657
657
 
658
- function onDomContentLoaded () {
659
- const themeButton = document.querySelectorAll('.theme-toggle')
660
-
661
- initMobileMenu()
662
-
663
- if (themeButton) {
664
- themeButton.forEach(function (button) {
665
- button.addEventListener('click', toggleTheme)
666
- })
667
- }
658
+ function onDomContentLoaded() {
659
+ var themeButton = document.querySelectorAll('.theme-toggle');
668
660
 
669
- // Highlighting code
661
+ initMobileMenu();
670
662
 
671
- // eslint-disable-next-line no-undef
672
- hljs.addPlugin({
673
- 'after:highlightElement': function (obj) {
674
- // Replace 'code' with result.language when
675
- // we are able to cross-check the correctness of
676
- // result.
677
- obj.el.parentNode.setAttribute('data-lang', 'code')
663
+ if (themeButton) {
664
+ themeButton.forEach(function (button) {
665
+ button.addEventListener('click', toggleTheme);
666
+ });
678
667
  }
679
- })
680
- // eslint-disable-next-line no-undef
681
- hljs.highlightAll()
682
- // eslint-disable-next-line no-undef
683
- hljs.initLineNumbersOnLoad({
684
- singleLine: true
685
- })
686
668
 
687
- // Highlight complete
669
+ // Highlighting code
688
670
 
689
- initAccordion()
690
- addAnchor()
691
- processAllPre()
692
- hideTocOnSourcePage()
693
- setTimeout(function () {
694
- bringIdToViewOnMount()
695
- if (isSourcePage()) {
696
- highlightAndBringLineIntoView()
697
- }
698
- }, 1000)
699
- initTooltip()
700
- fixTable()
701
- addHrefToSidebarTitle()
702
- highlightActiveLinkInSidebar()
671
+ // eslint-disable-next-line no-undef
672
+ hljs.addPlugin({
673
+ 'after:highlightElement': function (obj) {
674
+ // Replace 'code' with result.language when
675
+ // we are able to cross-check the correctness of
676
+ // result.
677
+ obj.el.parentNode.setAttribute('data-lang', 'code');
678
+ },
679
+ });
680
+ // eslint-disable-next-line no-undef
681
+ hljs.highlightAll();
682
+ // eslint-disable-next-line no-undef
683
+ hljs.initLineNumbersOnLoad({
684
+ singleLine: true,
685
+ });
686
+
687
+ // Highlight complete
688
+
689
+ initAccordion();
690
+ addAnchor();
691
+ processAllPre();
692
+ hideTocOnSourcePage();
693
+ setTimeout(function () {
694
+ bringIdToViewOnMount();
695
+ if (isSourcePage()) {
696
+ highlightAndBringLineIntoView();
697
+ }
698
+ }, 1000);
699
+ initTooltip();
700
+ fixTable();
701
+ addHrefToSidebarTitle();
702
+ highlightActiveLinkInSidebar();
703
703
  }
704
704
 
705
705
  // eslint-disable-next-line no-undef
706
- window.addEventListener('DOMContentLoaded', onDomContentLoaded)
706
+ window.addEventListener('DOMContentLoaded', onDomContentLoaded);
707
707
 
708
708
  // eslint-disable-next-line no-undef
709
709
  window.addEventListener('hashchange', (event) => {
710
- const url = new URL(event.newURL)
710
+ const url = new URL(event.newURL);
711
711
 
712
- if (url.hash !== '') {
713
- bringIdToViewOnMount(url.hash)
714
- }
715
- })
712
+ if (url.hash !== '') {
713
+ bringIdToViewOnMount(url.hash);
714
+ }
715
+ });
716
716
 
717
717
  // eslint-disable-next-line no-undef
718
718
  window.addEventListener('storage', (event) => {
719
- if (event.newValue === 'undefined') return
719
+ if (event.newValue === 'undefined') return;
720
720
 
721
- initTooltip()
721
+ initTooltip();
722
722
 
723
- if (event.key === themeLocalStorageKey) localUpdateTheme(event.newValue)
724
- if (event.key === fontSizeLocalStorageKey) { localUpdateFontSize(event.newValue) }
725
- })
723
+ if (event.key === themeLocalStorageKey) localUpdateTheme(event.newValue);
724
+ if (event.key === fontSizeLocalStorageKey)
725
+ localUpdateFontSize(event.newValue);
726
+ });