Chris@0
|
1 /**
|
Chris@0
|
2 * DO NOT EDIT THIS FILE.
|
Chris@0
|
3 * See the following change record for more information,
|
Chris@0
|
4 * https://www.drupal.org/node/2815083
|
Chris@0
|
5 * @preserve
|
Chris@0
|
6 **/
|
Chris@0
|
7
|
Chris@0
|
8 (function (Drupal, debounce) {
|
Chris@0
|
9 var liveElement = void 0;
|
Chris@0
|
10 var announcements = [];
|
Chris@0
|
11
|
Chris@0
|
12 Drupal.behaviors.drupalAnnounce = {
|
Chris@0
|
13 attach: function attach(context) {
|
Chris@0
|
14 if (!liveElement) {
|
Chris@0
|
15 liveElement = document.createElement('div');
|
Chris@0
|
16 liveElement.id = 'drupal-live-announce';
|
Chris@0
|
17 liveElement.className = 'visually-hidden';
|
Chris@0
|
18 liveElement.setAttribute('aria-live', 'polite');
|
Chris@0
|
19 liveElement.setAttribute('aria-busy', 'false');
|
Chris@0
|
20 document.body.appendChild(liveElement);
|
Chris@0
|
21 }
|
Chris@0
|
22 }
|
Chris@0
|
23 };
|
Chris@0
|
24
|
Chris@0
|
25 function announce() {
|
Chris@0
|
26 var text = [];
|
Chris@0
|
27 var priority = 'polite';
|
Chris@0
|
28 var announcement = void 0;
|
Chris@0
|
29
|
Chris@0
|
30 var il = announcements.length;
|
Chris@0
|
31 for (var i = 0; i < il; i++) {
|
Chris@0
|
32 announcement = announcements.pop();
|
Chris@0
|
33 text.unshift(announcement.text);
|
Chris@0
|
34
|
Chris@0
|
35 if (announcement.priority === 'assertive') {
|
Chris@0
|
36 priority = 'assertive';
|
Chris@0
|
37 }
|
Chris@0
|
38 }
|
Chris@0
|
39
|
Chris@0
|
40 if (text.length) {
|
Chris@0
|
41 liveElement.innerHTML = '';
|
Chris@0
|
42
|
Chris@0
|
43 liveElement.setAttribute('aria-busy', 'true');
|
Chris@0
|
44
|
Chris@0
|
45 liveElement.setAttribute('aria-live', priority);
|
Chris@0
|
46
|
Chris@0
|
47 liveElement.innerHTML = text.join('\n');
|
Chris@0
|
48
|
Chris@0
|
49 liveElement.setAttribute('aria-busy', 'false');
|
Chris@0
|
50 }
|
Chris@0
|
51 }
|
Chris@0
|
52
|
Chris@0
|
53 Drupal.announce = function (text, priority) {
|
Chris@0
|
54 announcements.push({
|
Chris@0
|
55 text: text,
|
Chris@0
|
56 priority: priority
|
Chris@0
|
57 });
|
Chris@0
|
58
|
Chris@0
|
59 return debounce(announce, 200)();
|
Chris@0
|
60 };
|
Chris@0
|
61 })(Drupal, Drupal.debounce); |