Current File : /home/resuelf/www/wp-content/plugins/gutenberg/build/react-i18n/index.js |
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
I18nProvider: function() { return /* binding */ I18nProvider; },
useI18n: function() { return /* binding */ useI18n; },
withI18n: function() { return /* binding */ withI18n; }
});
;// CONCATENATED MODULE: external "React"
var external_React_namespaceObject = window["React"];
;// CONCATENATED MODULE: external ["wp","element"]
var external_wp_element_namespaceObject = window["wp"]["element"];
;// CONCATENATED MODULE: external ["wp","i18n"]
var external_wp_i18n_namespaceObject = window["wp"]["i18n"];
;// CONCATENATED MODULE: ./packages/react-i18n/build-module/index.js
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Utility to make a new context value
*
* @param i18n
*/
function makeContextValue(i18n) {
return {
__: i18n.__.bind(i18n),
_x: i18n._x.bind(i18n),
_n: i18n._n.bind(i18n),
_nx: i18n._nx.bind(i18n),
isRTL: i18n.isRTL.bind(i18n),
hasTranslation: i18n.hasTranslation.bind(i18n)
};
}
const I18nContext = (0,external_wp_element_namespaceObject.createContext)(makeContextValue(external_wp_i18n_namespaceObject.defaultI18n));
/**
* The `I18nProvider` should be mounted above any localized components:
*
* @example
* ```js
* import { createI18n } from '@wordpress/i18n';
* import { I18nProvider } from '@wordpress/react-i18n';
* const i18n = createI18n();
*
* ReactDom.render(
* <I18nProvider i18n={ i18n }>
* <App />
* </I18nProvider>,
* el
* );
* ```
*
* You can also instantiate the provider without the `i18n` prop. In that case it will use the
* default `I18n` instance exported from `@wordpress/i18n`.
*
* @param props i18n provider props.
* @return Children wrapped in the I18nProvider.
*/
function I18nProvider(props) {
const {
children,
i18n = external_wp_i18n_namespaceObject.defaultI18n
} = props;
const [update, forceUpdate] = (0,external_wp_element_namespaceObject.useReducer)(() => [], []);
// Rerender translations whenever the i18n instance fires a change event.
(0,external_wp_element_namespaceObject.useEffect)(() => i18n.subscribe(forceUpdate), [i18n]);
const value = (0,external_wp_element_namespaceObject.useMemo)(() => makeContextValue(i18n), [i18n, update]);
return (0,external_React_namespaceObject.createElement)(I18nContext.Provider, {
value: value
}, children);
}
/**
* React hook providing access to i18n functions. It exposes the `__`, `_x`, `_n`, `_nx`,
* `isRTL` and `hasTranslation` functions from [`@wordpress/i18n`](../i18n).
* Refer to their documentation there.
*
* @example
* ```js
* import { useI18n } from '@wordpress/react-i18n';
*
* function MyComponent() {
* const { __ } = useI18n();
* return __( 'Hello, world!' );
* }
* ```
*/
const useI18n = () => (0,external_wp_element_namespaceObject.useContext)(I18nContext);
/**
* React higher-order component that passes the i18n translate functions (the same set
* as exposed by the `useI18n` hook) to the wrapped component as props.
*
* @example
* ```js
* import { withI18n } from '@wordpress/react-i18n';
*
* function MyComponent( { __ } ) {
* return __( 'Hello, world!' );
* }
*
* export default withI18n( MyComponent );
* ```
*
* @param InnerComponent React component to be wrapped and receive the i18n functions like `__`
* @return The wrapped component
*/
function withI18n(InnerComponent) {
const EnhancedComponent = props => {
const i18nProps = useI18n();
return (0,external_React_namespaceObject.createElement)(InnerComponent, {
...props,
...i18nProps
});
};
const innerComponentName = InnerComponent.displayName || InnerComponent.name || 'Component';
EnhancedComponent.displayName = `WithI18n(${innerComponentName})`;
return EnhancedComponent;
}
(window.wp = window.wp || {}).reactI18n = __webpack_exports__;
/******/ })()
;