@yaronelh/accessibilitytool 1.0.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.
Files changed (82) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/LICENSE +21 -0
  3. package/README.md +373 -0
  4. package/dist/common.d.ts +22 -0
  5. package/dist/common.js +215 -0
  6. package/dist/common.js.map +1 -0
  7. package/dist/core/event-utils.d.ts +2 -0
  8. package/dist/core/event-utils.js +15 -0
  9. package/dist/core/event-utils.js.map +1 -0
  10. package/dist/core/hotkeys.d.ts +3 -0
  11. package/dist/core/hotkeys.js +35 -0
  12. package/dist/core/hotkeys.js.map +1 -0
  13. package/dist/core/icon-assets.d.ts +13 -0
  14. package/dist/core/icon-assets.js +148 -0
  15. package/dist/core/icon-assets.js.map +1 -0
  16. package/dist/core/options.d.ts +6 -0
  17. package/dist/core/options.js +58 -0
  18. package/dist/core/options.js.map +1 -0
  19. package/dist/core/security.d.ts +3 -0
  20. package/dist/core/security.js +45 -0
  21. package/dist/core/security.js.map +1 -0
  22. package/dist/core/session.d.ts +14 -0
  23. package/dist/core/session.js +43 -0
  24. package/dist/core/session.js.map +1 -0
  25. package/dist/interfaces/accessibility.interface.d.ts +208 -0
  26. package/dist/interfaces/accessibility.interface.js +23 -0
  27. package/dist/interfaces/accessibility.interface.js.map +1 -0
  28. package/dist/interfaces/common.interface.d.ts +39 -0
  29. package/dist/interfaces/common.interface.js +3 -0
  30. package/dist/interfaces/common.interface.js.map +1 -0
  31. package/dist/interfaces/menu.interface.d.ts +18 -0
  32. package/dist/interfaces/menu.interface.js +3 -0
  33. package/dist/interfaces/menu.interface.js.map +1 -0
  34. package/dist/main.d.ts +84 -0
  35. package/dist/main.js +1771 -0
  36. package/dist/main.js.map +1 -0
  37. package/dist/menu-interface.d.ts +24 -0
  38. package/dist/menu-interface.js +561 -0
  39. package/dist/menu-interface.js.map +1 -0
  40. package/dist/storage.d.ts +9 -0
  41. package/dist/storage.js +40 -0
  42. package/dist/storage.js.map +1 -0
  43. package/dist-cjs/common.d.ts +22 -0
  44. package/dist-cjs/common.js +215 -0
  45. package/dist-cjs/common.js.map +1 -0
  46. package/dist-cjs/core/event-utils.d.ts +2 -0
  47. package/dist-cjs/core/event-utils.js +15 -0
  48. package/dist-cjs/core/event-utils.js.map +1 -0
  49. package/dist-cjs/core/hotkeys.d.ts +3 -0
  50. package/dist-cjs/core/hotkeys.js +35 -0
  51. package/dist-cjs/core/hotkeys.js.map +1 -0
  52. package/dist-cjs/core/icon-assets.d.ts +13 -0
  53. package/dist-cjs/core/icon-assets.js +148 -0
  54. package/dist-cjs/core/icon-assets.js.map +1 -0
  55. package/dist-cjs/core/options.d.ts +6 -0
  56. package/dist-cjs/core/options.js +58 -0
  57. package/dist-cjs/core/options.js.map +1 -0
  58. package/dist-cjs/core/security.d.ts +3 -0
  59. package/dist-cjs/core/security.js +45 -0
  60. package/dist-cjs/core/security.js.map +1 -0
  61. package/dist-cjs/core/session.d.ts +14 -0
  62. package/dist-cjs/core/session.js +43 -0
  63. package/dist-cjs/core/session.js.map +1 -0
  64. package/dist-cjs/interfaces/accessibility.interface.d.ts +208 -0
  65. package/dist-cjs/interfaces/accessibility.interface.js +23 -0
  66. package/dist-cjs/interfaces/accessibility.interface.js.map +1 -0
  67. package/dist-cjs/interfaces/common.interface.d.ts +39 -0
  68. package/dist-cjs/interfaces/common.interface.js +3 -0
  69. package/dist-cjs/interfaces/common.interface.js.map +1 -0
  70. package/dist-cjs/interfaces/menu.interface.d.ts +18 -0
  71. package/dist-cjs/interfaces/menu.interface.js +3 -0
  72. package/dist-cjs/interfaces/menu.interface.js.map +1 -0
  73. package/dist-cjs/main.d.ts +84 -0
  74. package/dist-cjs/main.js +1771 -0
  75. package/dist-cjs/main.js.map +1 -0
  76. package/dist-cjs/menu-interface.d.ts +24 -0
  77. package/dist-cjs/menu-interface.js +561 -0
  78. package/dist-cjs/menu-interface.js.map +1 -0
  79. package/dist-cjs/storage.d.ts +9 -0
  80. package/dist-cjs/storage.js +40 -0
  81. package/dist-cjs/storage.js.map +1 -0
  82. package/package.json +82 -0
@@ -0,0 +1,561 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MenuInterface = void 0;
4
+ const security_js_1 = require("./core/security.js");
5
+ class MenuInterface {
6
+ _acc;
7
+ readBind;
8
+ _dialog;
9
+ constructor(accessibility) {
10
+ this._acc = accessibility;
11
+ this.readBind = this._acc.read.bind(this._acc);
12
+ }
13
+ increaseText() {
14
+ this._acc.alterTextSize(true);
15
+ }
16
+ decreaseText() {
17
+ this._acc.alterTextSize(false);
18
+ }
19
+ increaseTextSpacing() {
20
+ this._acc.alterTextSpace(true);
21
+ }
22
+ decreaseTextSpacing() {
23
+ this._acc.alterTextSpace(false);
24
+ }
25
+ invertColors(destroy) {
26
+ if (typeof this._acc.stateValues.html.backgroundColor === 'undefined')
27
+ this._acc.stateValues.html.backgroundColor = getComputedStyle(this._acc.html).backgroundColor;
28
+ if (typeof this._acc.stateValues.html.color === 'undefined')
29
+ this._acc.stateValues.html.color = getComputedStyle(this._acc.html).color;
30
+ if (destroy) {
31
+ this._acc.resetIfDefined(this._acc.stateValues.html.backgroundColor, this._acc.html.style, 'backgroundColor');
32
+ this._acc.resetIfDefined(this._acc.stateValues.html.color, this._acc.html.style, 'color');
33
+ if (!this._acc.options.suppressDomInjection)
34
+ document
35
+ .querySelector('._access-menu [data-access-action="invertColors"]')
36
+ .classList.remove('active');
37
+ this._acc.stateValues.invertColors = false;
38
+ this._acc.sessionState.invertColors = this._acc.stateValues.invertColors;
39
+ this._acc.onChange(true);
40
+ this._acc.html.style.filter = '';
41
+ return;
42
+ }
43
+ if (this._acc.stateValues.invertColors && this._acc.stateValues.textToSpeech) {
44
+ this._acc.textToSpeech('Colors Set To Normal');
45
+ }
46
+ if (!this._acc.options.suppressDomInjection)
47
+ document
48
+ .querySelector('._access-menu [data-access-action="invertColors"]')
49
+ .classList.toggle('active');
50
+ this._acc.stateValues.invertColors = !this._acc.stateValues.invertColors;
51
+ this._acc.sessionState.invertColors = this._acc.stateValues.invertColors;
52
+ this._acc.onChange(true);
53
+ if (this._acc.stateValues.invertColors) {
54
+ if (this._acc.stateValues.grayHues)
55
+ this._acc.menuInterface.grayHues(true);
56
+ this._acc.html.style.filter = 'invert(1)';
57
+ if (this._acc.stateValues.textToSpeech) {
58
+ this._acc.textToSpeech('Colors Inverted');
59
+ }
60
+ }
61
+ else {
62
+ this._acc.html.style.filter = '';
63
+ }
64
+ }
65
+ grayHues(destroy) {
66
+ if (typeof this._acc.stateValues.html.filter === 'undefined')
67
+ this._acc.stateValues.html.filter = getComputedStyle(this._acc.html).filter;
68
+ if (typeof this._acc.stateValues.html.webkitFilter === 'undefined')
69
+ this._acc.stateValues.html.webkitFilter = getComputedStyle(this._acc.html).webkitFilter;
70
+ if (typeof this._acc.stateValues.html.mozFilter === 'undefined')
71
+ this._acc.stateValues.html.mozFilter = getComputedStyle(this._acc.html).mozFilter;
72
+ if (typeof this._acc.stateValues.html.msFilter === 'undefined')
73
+ this._acc.stateValues.html.msFilter = getComputedStyle(this._acc.html).msFilter;
74
+ if (destroy) {
75
+ if (!this._acc.options.suppressDomInjection)
76
+ document
77
+ .querySelector('._access-menu [data-access-action="grayHues"]')
78
+ .classList.remove('active');
79
+ this._acc.stateValues.grayHues = false;
80
+ this._acc.sessionState.grayHues = this._acc.stateValues.grayHues;
81
+ this._acc.onChange(true);
82
+ this._acc.resetIfDefined(this._acc.stateValues.html.filter, this._acc.html.style, 'filter');
83
+ this._acc.resetIfDefined(this._acc.stateValues.html.webkitFilter, this._acc.html.style, 'webkitFilter');
84
+ this._acc.resetIfDefined(this._acc.stateValues.html.mozFilter, this._acc.html.style, 'mozFilter');
85
+ this._acc.resetIfDefined(this._acc.stateValues.html.msFilter, this._acc.html.style, 'msFilter');
86
+ return;
87
+ }
88
+ if (!this._acc.options.suppressDomInjection)
89
+ document
90
+ .querySelector('._access-menu [data-access-action="grayHues"]')
91
+ .classList.toggle('active');
92
+ this._acc.stateValues.grayHues = !this._acc.stateValues.grayHues;
93
+ this._acc.sessionState.grayHues = this._acc.stateValues.grayHues;
94
+ this._acc.onChange(true);
95
+ if (this._acc.stateValues.textToSpeech && !this._acc.stateValues.grayHues)
96
+ this._acc.textToSpeech('Gray Hues Disabled.');
97
+ let val;
98
+ if (this._acc.stateValues.grayHues) {
99
+ val = 'grayscale(1)';
100
+ if (this._acc.stateValues.invertColors) {
101
+ this.invertColors(true);
102
+ }
103
+ if (this._acc.stateValues.textToSpeech) {
104
+ this._acc.textToSpeech('Gray Hues Enabled.');
105
+ }
106
+ }
107
+ else {
108
+ val = '';
109
+ }
110
+ this._acc.html.style.webkitFilter = val;
111
+ this._acc.html.style.mozFilter = val;
112
+ this._acc.html.style.msFilter = val;
113
+ this._acc.html.style.filter = val;
114
+ }
115
+ underlineLinks(destroy) {
116
+ let className = '_access-underline';
117
+ let remove = () => {
118
+ let style = document.querySelector('.' + className);
119
+ if (style) {
120
+ style.parentElement.removeChild(style);
121
+ this._acc.common.deployedObjects.remove('.' + className);
122
+ }
123
+ };
124
+ if (destroy) {
125
+ this._acc.stateValues.underlineLinks = false;
126
+ this._acc.sessionState.underlineLinks = this._acc.stateValues.underlineLinks;
127
+ this._acc.onChange(true);
128
+ if (!this._acc.options.suppressDomInjection)
129
+ document
130
+ .querySelector('._access-menu [data-access-action="underlineLinks"]')
131
+ .classList.remove('active');
132
+ return remove();
133
+ }
134
+ if (!this._acc.options.suppressDomInjection)
135
+ document
136
+ .querySelector('._access-menu [data-access-action="underlineLinks"]')
137
+ .classList.toggle('active');
138
+ this._acc.stateValues.underlineLinks = !this._acc.stateValues.underlineLinks;
139
+ this._acc.sessionState.underlineLinks = this._acc.stateValues.underlineLinks;
140
+ this._acc.onChange(true);
141
+ if (this._acc.stateValues.underlineLinks) {
142
+ let css = `
143
+ body a {
144
+ text-decoration: underline !important;
145
+ }
146
+ `;
147
+ this._acc.common.injectStyle(css, { className: className });
148
+ this._acc.common.deployedObjects.set('.' + className, true);
149
+ if (this._acc.stateValues.textToSpeech) {
150
+ this._acc.textToSpeech('Links UnderLined');
151
+ }
152
+ }
153
+ else {
154
+ if (this._acc.stateValues.textToSpeech) {
155
+ this._acc.textToSpeech('Links UnderLine Removed');
156
+ }
157
+ remove();
158
+ }
159
+ }
160
+ bigCursor(destroy) {
161
+ if (destroy) {
162
+ this._acc.html.classList.remove('_access_cursor');
163
+ if (!this._acc.options.suppressDomInjection)
164
+ document
165
+ .querySelector('._access-menu [data-access-action="bigCursor"]')
166
+ .classList.remove('active');
167
+ this._acc.stateValues.bigCursor = false;
168
+ this._acc.sessionState.bigCursor = false;
169
+ this._acc.onChange(true);
170
+ return;
171
+ }
172
+ if (!this._acc.options.suppressDomInjection)
173
+ document
174
+ .querySelector('._access-menu [data-access-action="bigCursor"]')
175
+ .classList.toggle('active');
176
+ this._acc.stateValues.bigCursor = !this._acc.stateValues.bigCursor;
177
+ this._acc.sessionState.bigCursor = this._acc.stateValues.bigCursor;
178
+ this._acc.onChange(true);
179
+ this._acc.html.classList.toggle('_access_cursor');
180
+ if (this._acc.stateValues.textToSpeech && this._acc.stateValues.bigCursor)
181
+ this._acc.textToSpeech('Big Cursor Enabled');
182
+ if (this._acc.stateValues.textToSpeech && !this._acc.stateValues.bigCursor)
183
+ this._acc.textToSpeech('Big Cursor Disabled');
184
+ }
185
+ readingGuide(destroy) {
186
+ if (destroy) {
187
+ if (document.getElementById('access_read_guide_bar')) {
188
+ document.getElementById('access_read_guide_bar').remove();
189
+ }
190
+ if (!this._acc.options.suppressDomInjection)
191
+ document
192
+ .querySelector('._access-menu [data-access-action="readingGuide"]')
193
+ .classList.remove('active');
194
+ this._acc.stateValues.readingGuide = false;
195
+ this._acc.sessionState.readingGuide = this._acc.stateValues.readingGuide;
196
+ this._acc.onChange(true);
197
+ document.body.removeEventListener('touchmove', this._acc.updateReadGuide, false);
198
+ document.body.removeEventListener('mousemove', this._acc.updateReadGuide, false);
199
+ if (this._acc.stateValues.textToSpeech)
200
+ this._acc.textToSpeech('Reading Guide Enabled');
201
+ return;
202
+ }
203
+ if (!this._acc.options.suppressDomInjection)
204
+ document
205
+ .querySelector('._access-menu [data-access-action="readingGuide"]')
206
+ .classList.toggle('active');
207
+ this._acc.stateValues.readingGuide = !this._acc.stateValues.readingGuide;
208
+ this._acc.sessionState.readingGuide = this._acc.stateValues.readingGuide;
209
+ this._acc.onChange(true);
210
+ if (this._acc.stateValues.readingGuide) {
211
+ let read = document.createElement('div');
212
+ read.id = 'access_read_guide_bar';
213
+ read.classList.add('access_read_guide_bar');
214
+ document.body.append(read);
215
+ document.body.addEventListener('touchmove', this._acc.updateReadGuide, false);
216
+ document.body.addEventListener('mousemove', this._acc.updateReadGuide, false);
217
+ }
218
+ else {
219
+ if (document.getElementById('access_read_guide_bar') !== undefined) {
220
+ document.getElementById('access_read_guide_bar').remove();
221
+ }
222
+ document.body.removeEventListener('touchmove', this._acc.updateReadGuide, false);
223
+ document.body.removeEventListener('mousemove', this._acc.updateReadGuide, false);
224
+ if (this._acc.stateValues.textToSpeech)
225
+ this._acc.textToSpeech('Reading Guide Disabled');
226
+ }
227
+ }
228
+ textToSpeech(destroy) {
229
+ // this.sessionState.textToSpeech = typeof destroy === 'undefined' ? true : false;
230
+ const tSpeechList = document.querySelector('._access-menu [data-access-action="textToSpeech"]');
231
+ if (!tSpeechList)
232
+ return;
233
+ let step1 = document.getElementsByClassName('screen-reader-wrapper-step-1');
234
+ let step2 = document.getElementsByClassName('screen-reader-wrapper-step-2');
235
+ let step3 = document.getElementsByClassName('screen-reader-wrapper-step-3');
236
+ this._acc.onChange(false);
237
+ const className = '_access-text-to-speech';
238
+ let remove = () => {
239
+ let style = document.querySelector('.' + className);
240
+ if (style) {
241
+ style.parentElement.removeChild(style);
242
+ document.removeEventListener('click', this.readBind, false);
243
+ document.removeEventListener('keyup', this.readBind, false);
244
+ this._acc.common.deployedObjects.remove('.' + className);
245
+ }
246
+ if (window.speechSynthesis)
247
+ window.speechSynthesis.cancel();
248
+ this._acc.isReading = false;
249
+ };
250
+ if (destroy) {
251
+ tSpeechList.classList.remove('active');
252
+ step1[0].classList.remove('active');
253
+ step2[0].classList.remove('active');
254
+ step3[0].classList.remove('active');
255
+ this._acc.stateValues.textToSpeech = false;
256
+ window.speechSynthesis.cancel();
257
+ return remove();
258
+ }
259
+ if (this._acc.stateValues.speechRate === 1 && !tSpeechList.classList.contains('active')) {
260
+ this._acc.stateValues.textToSpeech = true;
261
+ this._acc.textToSpeech('Screen Reader enabled. Reading Pace - Normal');
262
+ tSpeechList.classList.add('active');
263
+ step1[0].classList.add('active');
264
+ step2[0].classList.add('active');
265
+ step3[0].classList.add('active');
266
+ }
267
+ else if (this._acc.stateValues.speechRate === 1 && tSpeechList.classList.contains('active')) {
268
+ this._acc.stateValues.speechRate = 1.5;
269
+ this._acc.textToSpeech('Reading Pace - Fast');
270
+ step1[0].classList.remove('active');
271
+ }
272
+ else if (this._acc.stateValues.speechRate === 1.5 &&
273
+ tSpeechList.classList.contains('active')) {
274
+ this._acc.stateValues.speechRate = 0.7;
275
+ this._acc.textToSpeech('Reading Pace - Slow');
276
+ step2[0].classList.remove('active');
277
+ }
278
+ else {
279
+ this._acc.stateValues.speechRate = 1;
280
+ this._acc.textToSpeech('Screen Reader - Disabled');
281
+ tSpeechList.classList.remove('active');
282
+ step3[0].classList.remove('active');
283
+ let timeout = setInterval(() => {
284
+ if (this._acc.isReading) {
285
+ return;
286
+ }
287
+ this._acc.stateValues.textToSpeech = false;
288
+ remove();
289
+ clearTimeout(timeout);
290
+ }, 500);
291
+ return;
292
+ }
293
+ let css = `
294
+ *:hover {
295
+ box-shadow: 2px 2px 2px rgba(180,180,180,0.7);
296
+ }
297
+ `;
298
+ if (tSpeechList.classList.contains('active') && this._acc.stateValues.speechRate === 1) {
299
+ this._acc.common.injectStyle(css, { className: className });
300
+ this._acc.common.deployedObjects.set('.' + className, true);
301
+ document.addEventListener('click', this.readBind, false);
302
+ document.addEventListener('keyup', this.readBind, false);
303
+ }
304
+ }
305
+ speechToText(destroy) {
306
+ // this.sessionState.speechToText = typeof destroy === 'undefined' ? true : false;
307
+ const sTextList = document.querySelector('._access-menu [data-access-action="speechToText"]');
308
+ if (!sTextList)
309
+ return;
310
+ this._acc.onChange(false);
311
+ let className = '_access-speech-to-text';
312
+ let remove = () => {
313
+ if (this._acc.recognition) {
314
+ this._acc.recognition.stop();
315
+ this._acc.body.classList.remove('_access-listening');
316
+ }
317
+ let style = document.querySelector('.' + className);
318
+ if (style) {
319
+ style.parentElement.removeChild(style);
320
+ this._acc.common.deployedObjects.remove('.' + className);
321
+ }
322
+ let inputs = document.querySelectorAll('._access-mic');
323
+ for (let i = 0; i < inputs.length; i++) {
324
+ inputs[i].removeEventListener('focus', this._acc.listen.bind(this._acc), false);
325
+ inputs[i].classList.remove('_access-mic');
326
+ }
327
+ sTextList.classList.remove('active');
328
+ };
329
+ if (destroy) {
330
+ this._acc.stateValues.speechToText = false;
331
+ return remove();
332
+ }
333
+ this._acc.stateValues.speechToText = !this._acc.stateValues.speechToText;
334
+ if (this._acc.stateValues.speechToText) {
335
+ let css = `
336
+ body:after {
337
+ content: ${!this._acc.options.icon.useEmojis ? '"mic"' : 'var(--_access-menu-item-icon-mic,"🎤")'};
338
+ ${!this._acc.options.icon.useEmojis ? `font-family: var(--_access-menu-item-icon-font-family-after, ${this._acc.fixedDefaultFont}` : ''}
339
+ position: fixed;
340
+ z-index: 1100;
341
+ top: 1vw;
342
+ right: 1vw;
343
+ width: 36px;
344
+ height: 36px;
345
+ font-size: 30px;
346
+ line-height: 36px;
347
+ border-radius: 50%;
348
+ background: rgba(255,255,255,0.7);
349
+ display: flex;
350
+ justify-content: center;
351
+ aling-items: center;
352
+ }
353
+
354
+ body._access-listening:after {
355
+ animation: _access-listening-animation 2s infinite ease;
356
+ }
357
+
358
+ @keyframes _access-listening-animation {
359
+ 0% {background-color: transparent;}
360
+ 50% {background-color: #EF9A9A;}
361
+ }
362
+ `;
363
+ this._acc.common.injectStyle(css, { className: className });
364
+ this._acc.common.deployedObjects.set('.' + className, true);
365
+ let inputs = document.querySelectorAll('input[type="text"], input[type="email"], input[type="tel"], input[type="search"], textarea, [contenteditable]');
366
+ for (let i = 0; i < inputs.length; i++) {
367
+ inputs[i].addEventListener('blur', () => {
368
+ if (typeof this._acc.recognition === 'object' &&
369
+ typeof this._acc.recognition.stop === 'function')
370
+ this._acc.recognition.stop();
371
+ }, false);
372
+ inputs[i].addEventListener('focus', this._acc.listen.bind(this._acc), false);
373
+ inputs[i].parentElement.classList.add('_access-mic');
374
+ }
375
+ sTextList.classList.add('active');
376
+ }
377
+ else
378
+ remove();
379
+ }
380
+ disableAnimations(destroy) {
381
+ const className = '_access-disable-animations', autoplayStopped = 'data-autoplay-stopped';
382
+ const remove = () => {
383
+ if (!this._acc.options.suppressDomInjection)
384
+ document
385
+ .querySelector('._access-menu [data-access-action="disableAnimations"]')
386
+ .classList.remove('active');
387
+ this._acc.stateValues.disableAnimations = false;
388
+ let style = document.querySelector('.' + className);
389
+ if (style) {
390
+ style.parentElement.removeChild(style);
391
+ this._acc.common.deployedObjects.remove('.' + className);
392
+ }
393
+ let allImages = document.querySelectorAll('[data-org-src]');
394
+ allImages.forEach(async (i) => {
395
+ const screenshot = i.src;
396
+ i.setAttribute('src', i.getAttribute('data-org-src'));
397
+ i.setAttribute('data-org-src', screenshot);
398
+ });
399
+ const allVideos = document.querySelectorAll(`video[${autoplayStopped}]`);
400
+ allVideos.forEach((v) => {
401
+ v.setAttribute('autoplay', '');
402
+ v.removeAttribute(autoplayStopped);
403
+ v.play();
404
+ });
405
+ };
406
+ if (destroy) {
407
+ remove();
408
+ return;
409
+ }
410
+ this._acc.stateValues.disableAnimations = !this._acc.stateValues.disableAnimations;
411
+ if (!this._acc.stateValues.disableAnimations) {
412
+ remove();
413
+ return;
414
+ }
415
+ if (!this._acc.options.suppressDomInjection)
416
+ document
417
+ .querySelector('._access-menu [data-access-action="disableAnimations"]')
418
+ .classList.add('active');
419
+ let css = `
420
+ body * {
421
+ animation-duration: 0.0ms !important;
422
+ transition-duration: 0.0ms !important;
423
+ }
424
+ `;
425
+ this._acc.common.injectStyle(css, { className: className });
426
+ this._acc.common.deployedObjects.set('.' + className, true);
427
+ const allImages = document.querySelectorAll('img');
428
+ allImages.forEach(async (i) => {
429
+ let ext = this._acc.common.getFileExtension(i.src);
430
+ if (ext && ext.toLowerCase() === 'gif') {
431
+ let screenshot = i.getAttribute('data-org-src');
432
+ if (!screenshot)
433
+ screenshot = await this._acc.common.createScreenshot(i.src);
434
+ i.setAttribute('data-org-src', i.src);
435
+ i.src = screenshot;
436
+ }
437
+ });
438
+ const allVideos = document.querySelectorAll('video[autoplay]');
439
+ allVideos.forEach((v) => {
440
+ v.setAttribute(autoplayStopped, '');
441
+ v.removeAttribute('autoplay');
442
+ v.pause();
443
+ });
444
+ }
445
+ iframeModals(destroy, button) {
446
+ if (!button)
447
+ destroy = true;
448
+ const close = () => {
449
+ if (this._dialog) {
450
+ this._dialog.classList.add('closing');
451
+ setTimeout(() => {
452
+ this._dialog.classList.remove('closing');
453
+ this._dialog.close();
454
+ this._dialog.remove();
455
+ }, 350);
456
+ detach();
457
+ }
458
+ if (button)
459
+ button.classList.remove('active');
460
+ };
461
+ const onClose = () => {
462
+ close();
463
+ };
464
+ const detach = () => {
465
+ this._dialog.querySelector('button').removeEventListener('click', onClose, false);
466
+ this._dialog.removeEventListener('close', onClose);
467
+ };
468
+ if (destroy) {
469
+ close();
470
+ }
471
+ else {
472
+ const iframeUrl = (0, security_js_1.normalizeIframeUrl)(button.getAttribute('data-access-url'), this._acc.options.allowedIframeOrigins || []);
473
+ if (!iframeUrl) {
474
+ this._acc.common.warn('Blocked unsafe iframe URL');
475
+ return;
476
+ }
477
+ button.classList.add('active');
478
+ if (!this._dialog)
479
+ this._dialog = document.createElement('dialog');
480
+ this._dialog.classList.add('_access');
481
+ this._dialog.innerHTML = '';
482
+ this._dialog.appendChild(this._acc.common.jsonToHtml({
483
+ type: 'div',
484
+ children: [
485
+ {
486
+ type: 'div',
487
+ children: [
488
+ {
489
+ type: 'button',
490
+ attrs: {
491
+ role: 'button',
492
+ class: this._acc.options.icon.useEmojis ? '' : this._acc.options.icon.fontClass,
493
+ style: `position: absolute;
494
+ top: 5px;
495
+ cursor: pointer;
496
+ font-size: 24px !important;
497
+ font-weight: bold;
498
+ background: transparent;
499
+ border: none;
500
+ left: 5px;
501
+ color: #d63c3c;
502
+ padding: 0;`
503
+ },
504
+ children: [
505
+ {
506
+ type: '#text',
507
+ text: this._acc.options.icon.useEmojis ? 'X' : 'close'
508
+ }
509
+ ]
510
+ }
511
+ ]
512
+ },
513
+ {
514
+ type: 'div',
515
+ children: [
516
+ {
517
+ type: 'iframe',
518
+ attrs: {
519
+ src: iframeUrl,
520
+ style: 'width: 50vw;height: 50vh;padding: 30px;',
521
+ sandbox: 'allow-same-origin allow-scripts',
522
+ referrerpolicy: 'no-referrer',
523
+ loading: 'lazy'
524
+ }
525
+ }
526
+ ]
527
+ }
528
+ ]
529
+ }));
530
+ document.body.appendChild(this._dialog);
531
+ this._dialog.querySelector('button').addEventListener('click', onClose, false);
532
+ this._dialog.addEventListener('close', onClose);
533
+ this._dialog.showModal();
534
+ }
535
+ }
536
+ customFunctions(destroy, button) {
537
+ if (!button)
538
+ return;
539
+ const cf = this._acc.options.customFunctions[parseInt(button.getAttribute('data-access-custom-index'))];
540
+ if (cf.toggle && button.classList.contains('active'))
541
+ destroy = true;
542
+ if (destroy) {
543
+ if (cf.toggle)
544
+ button.classList.remove('active');
545
+ cf.method(cf, false);
546
+ }
547
+ else {
548
+ if (cf.toggle)
549
+ button.classList.add('active');
550
+ cf.method(cf, true);
551
+ }
552
+ }
553
+ increaseLineHeight() {
554
+ this._acc.alterLineHeight(true);
555
+ }
556
+ decreaseLineHeight() {
557
+ this._acc.alterLineHeight(false);
558
+ }
559
+ }
560
+ exports.MenuInterface = MenuInterface;
561
+ //# sourceMappingURL=menu-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-interface.js","sourceRoot":"","sources":["../src/menu-interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class Storage {
2
+ constructor();
3
+ has(key: string): boolean;
4
+ set(key: string, value: any): void;
5
+ get(key: string): any;
6
+ clear(): void;
7
+ remove(key: string): void;
8
+ isSupported(): boolean;
9
+ }
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Storage = void 0;
4
+ class Storage {
5
+ constructor() { }
6
+ has(key) {
7
+ return window.localStorage.hasOwnProperty(key);
8
+ }
9
+ set(key, value) {
10
+ window.localStorage.setItem(key, JSON.stringify(value));
11
+ }
12
+ get(key) {
13
+ let item = window.localStorage.getItem(key);
14
+ try {
15
+ return JSON.parse(item);
16
+ }
17
+ catch (e) {
18
+ return item;
19
+ }
20
+ }
21
+ clear() {
22
+ window.localStorage.clear();
23
+ }
24
+ remove(key) {
25
+ window.localStorage.removeItem(key);
26
+ }
27
+ isSupported() {
28
+ let test = '_test';
29
+ try {
30
+ localStorage.setItem(test, test);
31
+ localStorage.removeItem(test);
32
+ return true;
33
+ }
34
+ catch (e) {
35
+ return false;
36
+ }
37
+ }
38
+ }
39
+ exports.Storage = Storage;
40
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,MAAa,OAAO;IACnB,gBAAe,CAAC;IAEhB,GAAG,CAAC,GAAW;QACd,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAU;QAC1B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,GAAW;QACd,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,KAAK;QACJ,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,GAAW;QACjB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,WAAW;QACV,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,CAAC;YACJ,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;CACD;AAtCD,0BAsCC"}