/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (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 */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (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: () => (/* binding */ I18nProvider), useI18n: () => (/* binding */ useI18n), withI18n: () => (/* binding */ withI18n) }); ;// CONCATENATED MODULE: external ["wp","element"] const external_wp_element_namespaceObject = window["wp"]["element"]; ;// CONCATENATED MODULE: external ["wp","i18n"] const external_wp_i18n_namespaceObject = window["wp"]["i18n"]; ;// CONCATENATED MODULE: external "ReactJSXRuntime" const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"]; ;// 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 /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(I18nContext.Provider, { value: value, children: 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 /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InnerComponent, { ...props, ...i18nProps }); }; const innerComponentName = InnerComponent.displayName || InnerComponent.name || 'Component'; EnhancedComponent.displayName = `WithI18n(${innerComponentName})`; return EnhancedComponent; } (window.wp = window.wp || {}).reactI18n = __webpack_exports__; /******/ })() ;