balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

a11y.js (10585B)


      1 this["wp"] = this["wp"] || {}; this["wp"]["a11y"] =
      2 /******/ (function(modules) { // webpackBootstrap
      3 /******/ 	// The module cache
      4 /******/ 	var installedModules = {};
      5 /******/
      6 /******/ 	// The require function
      7 /******/ 	function __webpack_require__(moduleId) {
      8 /******/
      9 /******/ 		// Check if module is in cache
     10 /******/ 		if(installedModules[moduleId]) {
     11 /******/ 			return installedModules[moduleId].exports;
     12 /******/ 		}
     13 /******/ 		// Create a new module (and put it into the cache)
     14 /******/ 		var module = installedModules[moduleId] = {
     15 /******/ 			i: moduleId,
     16 /******/ 			l: false,
     17 /******/ 			exports: {}
     18 /******/ 		};
     19 /******/
     20 /******/ 		// Execute the module function
     21 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
     22 /******/
     23 /******/ 		// Flag the module as loaded
     24 /******/ 		module.l = true;
     25 /******/
     26 /******/ 		// Return the exports of the module
     27 /******/ 		return module.exports;
     28 /******/ 	}
     29 /******/
     30 /******/
     31 /******/ 	// expose the modules object (__webpack_modules__)
     32 /******/ 	__webpack_require__.m = modules;
     33 /******/
     34 /******/ 	// expose the module cache
     35 /******/ 	__webpack_require__.c = installedModules;
     36 /******/
     37 /******/ 	// define getter function for harmony exports
     38 /******/ 	__webpack_require__.d = function(exports, name, getter) {
     39 /******/ 		if(!__webpack_require__.o(exports, name)) {
     40 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
     41 /******/ 		}
     42 /******/ 	};
     43 /******/
     44 /******/ 	// define __esModule on exports
     45 /******/ 	__webpack_require__.r = function(exports) {
     46 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
     47 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
     48 /******/ 		}
     49 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
     50 /******/ 	};
     51 /******/
     52 /******/ 	// create a fake namespace object
     53 /******/ 	// mode & 1: value is a module id, require it
     54 /******/ 	// mode & 2: merge all properties of value into the ns
     55 /******/ 	// mode & 4: return value when already ns object
     56 /******/ 	// mode & 8|1: behave like require
     57 /******/ 	__webpack_require__.t = function(value, mode) {
     58 /******/ 		if(mode & 1) value = __webpack_require__(value);
     59 /******/ 		if(mode & 8) return value;
     60 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
     61 /******/ 		var ns = Object.create(null);
     62 /******/ 		__webpack_require__.r(ns);
     63 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
     64 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
     65 /******/ 		return ns;
     66 /******/ 	};
     67 /******/
     68 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
     69 /******/ 	__webpack_require__.n = function(module) {
     70 /******/ 		var getter = module && module.__esModule ?
     71 /******/ 			function getDefault() { return module['default']; } :
     72 /******/ 			function getModuleExports() { return module; };
     73 /******/ 		__webpack_require__.d(getter, 'a', getter);
     74 /******/ 		return getter;
     75 /******/ 	};
     76 /******/
     77 /******/ 	// Object.prototype.hasOwnProperty.call
     78 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
     79 /******/
     80 /******/ 	// __webpack_public_path__
     81 /******/ 	__webpack_require__.p = "";
     82 /******/
     83 /******/
     84 /******/ 	// Load entry module and return exports
     85 /******/ 	return __webpack_require__(__webpack_require__.s = "jncB");
     86 /******/ })
     87 /************************************************************************/
     88 /******/ ({
     89 
     90 /***/ "Y8OO":
     91 /***/ (function(module, exports) {
     92 
     93 (function() { module.exports = window["wp"]["domReady"]; }());
     94 
     95 /***/ }),
     96 
     97 /***/ "jncB":
     98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
     99 
    100 "use strict";
    101 // ESM COMPAT FLAG
    102 __webpack_require__.r(__webpack_exports__);
    103 
    104 // EXPORTS
    105 __webpack_require__.d(__webpack_exports__, "setup", function() { return /* binding */ setup; });
    106 __webpack_require__.d(__webpack_exports__, "speak", function() { return /* binding */ speak; });
    107 
    108 // EXTERNAL MODULE: external ["wp","domReady"]
    109 var external_wp_domReady_ = __webpack_require__("Y8OO");
    110 var external_wp_domReady_default = /*#__PURE__*/__webpack_require__.n(external_wp_domReady_);
    111 
    112 // EXTERNAL MODULE: external ["wp","i18n"]
    113 var external_wp_i18n_ = __webpack_require__("l3Sj");
    114 
    115 // CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/add-intro-text.js
    116 /**
    117  * WordPress dependencies
    118  */
    119 
    120 /**
    121  * Build the explanatory text to be placed before the aria live regions.
    122  *
    123  * This text is initially hidden from assistive technologies by using a `hidden`
    124  * HTML attribute which is then removed once a message fills the aria-live regions.
    125  *
    126  * @return {HTMLParagraphElement} The explanatory text HTML element.
    127  */
    128 
    129 function addIntroText() {
    130   const introText = document.createElement('p');
    131   introText.id = 'a11y-speak-intro-text';
    132   introText.className = 'a11y-speak-intro-text';
    133   introText.textContent = Object(external_wp_i18n_["__"])('Notifications');
    134   introText.setAttribute('style', 'position: absolute;' + 'margin: -1px;' + 'padding: 0;' + 'height: 1px;' + 'width: 1px;' + 'overflow: hidden;' + 'clip: rect(1px, 1px, 1px, 1px);' + '-webkit-clip-path: inset(50%);' + 'clip-path: inset(50%);' + 'border: 0;' + 'word-wrap: normal !important;');
    135   introText.setAttribute('hidden', 'hidden');
    136   const {
    137     body
    138   } = document;
    139 
    140   if (body) {
    141     body.appendChild(introText);
    142   }
    143 
    144   return introText;
    145 }
    146 
    147 // CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/add-container.js
    148 /**
    149  * Build the live regions markup.
    150  *
    151  * @param {string} [ariaLive] Value for the 'aria-live' attribute; default: 'polite'.
    152  *
    153  * @return {HTMLDivElement} The ARIA live region HTML element.
    154  */
    155 function addContainer(ariaLive = 'polite') {
    156   const container = document.createElement('div');
    157   container.id = `a11y-speak-${ariaLive}`;
    158   container.className = 'a11y-speak-region';
    159   container.setAttribute('style', 'position: absolute;' + 'margin: -1px;' + 'padding: 0;' + 'height: 1px;' + 'width: 1px;' + 'overflow: hidden;' + 'clip: rect(1px, 1px, 1px, 1px);' + '-webkit-clip-path: inset(50%);' + 'clip-path: inset(50%);' + 'border: 0;' + 'word-wrap: normal !important;');
    160   container.setAttribute('aria-live', ariaLive);
    161   container.setAttribute('aria-relevant', 'additions text');
    162   container.setAttribute('aria-atomic', 'true');
    163   const {
    164     body
    165   } = document;
    166 
    167   if (body) {
    168     body.appendChild(container);
    169   }
    170 
    171   return container;
    172 }
    173 
    174 // CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/clear.js
    175 /**
    176  * Clears the a11y-speak-region elements and hides the explanatory text.
    177  */
    178 function clear() {
    179   const regions = document.getElementsByClassName('a11y-speak-region');
    180   const introText = document.getElementById('a11y-speak-intro-text');
    181 
    182   for (let i = 0; i < regions.length; i++) {
    183     regions[i].textContent = '';
    184   } // Make sure the explanatory text is hidden from assistive technologies.
    185 
    186 
    187   if (introText) {
    188     introText.setAttribute('hidden', 'hidden');
    189   }
    190 }
    191 
    192 // CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/filter-message.js
    193 let previousMessage = '';
    194 /**
    195  * Filter the message to be announced to the screenreader.
    196  *
    197  * @param {string} message The message to be announced.
    198  *
    199  * @return {string} The filtered message.
    200  */
    201 
    202 function filterMessage(message) {
    203   /*
    204    * Strip HTML tags (if any) from the message string. Ideally, messages should
    205    * be simple strings, carefully crafted for specific use with A11ySpeak.
    206    * When re-using already existing strings this will ensure simple HTML to be
    207    * stripped out and replaced with a space. Browsers will collapse multiple
    208    * spaces natively.
    209    */
    210   message = message.replace(/<[^<>]+>/g, ' ');
    211   /*
    212    * Safari + VoiceOver don't announce repeated, identical strings. We use
    213    * a `no-break space` to force them to think identical strings are different.
    214    */
    215 
    216   if (previousMessage === message) {
    217     message += '\u00A0';
    218   }
    219 
    220   previousMessage = message;
    221   return message;
    222 }
    223 
    224 // CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/index.js
    225 /**
    226  * WordPress dependencies
    227  */
    228 
    229 /**
    230  * Internal dependencies
    231  */
    232 
    233 
    234 
    235 
    236 
    237 /**
    238  * Create the live regions.
    239  */
    240 
    241 function setup() {
    242   const introText = document.getElementById('a11y-speak-intro-text');
    243   const containerAssertive = document.getElementById('a11y-speak-assertive');
    244   const containerPolite = document.getElementById('a11y-speak-polite');
    245 
    246   if (introText === null) {
    247     addIntroText();
    248   }
    249 
    250   if (containerAssertive === null) {
    251     addContainer('assertive');
    252   }
    253 
    254   if (containerPolite === null) {
    255     addContainer('polite');
    256   }
    257 }
    258 /**
    259  * Run setup on domReady.
    260  */
    261 
    262 external_wp_domReady_default()(setup);
    263 /**
    264  * Allows you to easily announce dynamic interface updates to screen readers using ARIA live regions.
    265  * This module is inspired by the `speak` function in `wp-a11y.js`.
    266  *
    267  * @param {string} message  The message to be announced by assistive technologies.
    268  * @param {string} [ariaLive] The politeness level for aria-live; default: 'polite'.
    269  *
    270  * @example
    271  * ```js
    272  * import { speak } from '@wordpress/a11y';
    273  *
    274  * // For polite messages that shouldn't interrupt what screen readers are currently announcing.
    275  * speak( 'The message you want to send to the ARIA live region' );
    276  *
    277  * // For assertive messages that should interrupt what screen readers are currently announcing.
    278  * speak( 'The message you want to send to the ARIA live region', 'assertive' );
    279  * ```
    280  */
    281 
    282 function speak(message, ariaLive) {
    283   /*
    284    * Clear previous messages to allow repeated strings being read out and hide
    285    * the explanatory text from assistive technologies.
    286    */
    287   clear();
    288   message = filterMessage(message);
    289   const introText = document.getElementById('a11y-speak-intro-text');
    290   const containerAssertive = document.getElementById('a11y-speak-assertive');
    291   const containerPolite = document.getElementById('a11y-speak-polite');
    292 
    293   if (containerAssertive && ariaLive === 'assertive') {
    294     containerAssertive.textContent = message;
    295   } else if (containerPolite) {
    296     containerPolite.textContent = message;
    297   }
    298   /*
    299    * Make the explanatory text available to assistive technologies by removing
    300    * the 'hidden' HTML attribute.
    301    */
    302 
    303 
    304   if (introText) {
    305     introText.removeAttribute('hidden');
    306   }
    307 }
    308 
    309 
    310 /***/ }),
    311 
    312 /***/ "l3Sj":
    313 /***/ (function(module, exports) {
    314 
    315 (function() { module.exports = window["wp"]["i18n"]; }());
    316 
    317 /***/ })
    318 
    319 /******/ });