UNPKG

@10up/block-components

Version:

10up Components built for the WordPress Block Editor.

971 lines (837 loc) 77.9 kB
/******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./components/image/index.tsx": /*!************************************!*\ !*** ./components/image/index.tsx ***! \************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Image: function() { return /* binding */ Image; } /* harmony export */ }); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _hooks_use_media__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../hooks/use-media */ "./hooks/use-media/index.ts"); var _jsxFileName = "/Users/fabiankaegy/Developer/10up/block-components/components/image/index.tsx"; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } const Image = ({ id, size = 'full', onSelect, focalPoint = { x: 0.5, y: 0.5 }, onChangeFocalPoint = undefined, labels = {}, canEditImage = true, allowedTypes = ['image'], ...rest }) => { const hasImage = !!id; const { media, isResolvingMedia } = (0,_hooks_use_media__WEBPACK_IMPORTED_MODULE_4__.useMedia)(id); const shouldDisplayFocalPointPicker = typeof onChangeFocalPoint === 'function'; if (!hasImage && !canEditImage) { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Placeholder, { className: "block-editor-media-placeholder", withIllustration: true, __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 37, columnNumber: 10 } }); } if (!hasImage && canEditImage) { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.MediaPlaceholder, { labels: labels, onSelect: onSelect, accept: "image", multiple: false, allowedTypes: allowedTypes, __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 42, columnNumber: 4 } }); } if (isResolvingMedia) { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Spinner, { __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 53, columnNumber: 10 } }); } // @ts-ignore-next-line - The media object is not typed by WordPress currently const imageUrl = media?.media_details?.sizes?.[size]?.source_url ?? media?.source_url; const altText = media?.alt_text; if (shouldDisplayFocalPointPicker) { const focalPointStyle = { objectFit: 'cover', objectPosition: `${focalPoint.x * 100}% ${focalPoint.y * 100}%` }; rest.style = { ...rest.style, ...focalPointStyle }; } return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, shouldDisplayFocalPointPicker && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InspectorControls, { __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 74, columnNumber: 5 } }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.PanelBody, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Image Settings'), __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 75, columnNumber: 6 } }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.FocalPointPicker, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Focal Point Picker'), url: imageUrl, value: focalPoint, onChange: onChangeFocalPoint, __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 76, columnNumber: 7 } }))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", _extends({ src: imageUrl, alt: altText }, rest, { __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 85, columnNumber: 4 } }))); }; /***/ }), /***/ "./components/post-context/context.ts": /*!********************************************!*\ !*** ./components/post-context/context.ts ***! \********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ DEFAULT_POST_CONTEXT: function() { return /* binding */ DEFAULT_POST_CONTEXT; }, /* harmony export */ PostContext: function() { return /* binding */ PostContext; }, /* harmony export */ usePostContext: function() { return /* binding */ usePostContext; } /* harmony export */ }); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); const DEFAULT_POST_CONTEXT = { postId: undefined, postType: undefined, isEditable: undefined }; const PostContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createContext)(DEFAULT_POST_CONTEXT); const usePostContext = () => { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useContext)(PostContext); }; /***/ }), /***/ "./hooks/index.ts": /*!************************!*\ !*** ./hooks/index.ts ***! \************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useAllTerms: function() { return /* reexport safe */ _use_all_terms__WEBPACK_IMPORTED_MODULE_8__.useAllTerms; }, /* harmony export */ useBlockParentAttributes: function() { return /* reexport safe */ _use_block_parent_attributes__WEBPACK_IMPORTED_MODULE_5__.useBlockParentAttributes; }, /* harmony export */ useFilteredList: function() { return /* reexport safe */ _use_filtered_list__WEBPACK_IMPORTED_MODULE_3__.useFilteredList; }, /* harmony export */ useFlatInnerBlocks: function() { return /* reexport safe */ _use_flat_inner_blocks__WEBPACK_IMPORTED_MODULE_19__.useFlatInnerBlocks; }, /* harmony export */ useHasSelectedInnerBlock: function() { return /* reexport safe */ _use_has_selected_inner_block__WEBPACK_IMPORTED_MODULE_0__.useHasSelectedInnerBlock; }, /* harmony export */ useIcon: function() { return /* reexport safe */ _use_icons__WEBPACK_IMPORTED_MODULE_2__.useIcon; }, /* harmony export */ useIcons: function() { return /* reexport safe */ _use_icons__WEBPACK_IMPORTED_MODULE_2__.useIcons; }, /* harmony export */ useIsPluginActive: function() { return /* reexport safe */ _use_is_plugin_active__WEBPACK_IMPORTED_MODULE_12__.useIsPluginActive; }, /* harmony export */ useIsSupportedMetaField: function() { return /* reexport safe */ _use_is_supported_meta_value__WEBPACK_IMPORTED_MODULE_18__.useIsSupportedMetaField; }, /* harmony export */ useIsSupportedTaxonomy: function() { return /* reexport safe */ _use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_7__.useIsSupportedTaxonomy; }, /* harmony export */ useMedia: function() { return /* reexport safe */ _use_media__WEBPACK_IMPORTED_MODULE_4__.useMedia; }, /* harmony export */ usePopover: function() { return /* reexport safe */ _use_popover__WEBPACK_IMPORTED_MODULE_14__.usePopover; }, /* harmony export */ usePost: function() { return /* reexport safe */ _use_post__WEBPACK_IMPORTED_MODULE_6__.usePost; }, /* harmony export */ usePostMetaValue: function() { return /* reexport safe */ _use_post_meta_value__WEBPACK_IMPORTED_MODULE_16__.usePostMetaValue; }, /* harmony export */ usePrimaryTerm: function() { return /* reexport safe */ _use_primary_term__WEBPACK_IMPORTED_MODULE_13__.usePrimaryTerm; }, /* harmony export */ useRequestData: function() { return /* reexport safe */ _use_request_data__WEBPACK_IMPORTED_MODULE_1__.useRequestData; }, /* harmony export */ useScript: function() { return /* reexport safe */ _use_script__WEBPACK_IMPORTED_MODULE_15__.useScript; }, /* harmony export */ useSelectedTermIds: function() { return /* reexport safe */ _use_selected_term_ids__WEBPACK_IMPORTED_MODULE_9__.useSelectedTermIds; }, /* harmony export */ useSelectedTerms: function() { return /* reexport safe */ _use_selected_terms__WEBPACK_IMPORTED_MODULE_10__.useSelectedTerms; }, /* harmony export */ useSelectedTermsOfSavedPost: function() { return /* reexport safe */ _use_selected_terms_of_saved_post__WEBPACK_IMPORTED_MODULE_11__.useSelectedTermsOfSavedPost; }, /* harmony export */ useTaxonomy: function() { return /* reexport safe */ _use_taxonomy__WEBPACK_IMPORTED_MODULE_17__.useTaxonomy; } /* harmony export */ }); /* harmony import */ var _use_has_selected_inner_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-has-selected-inner-block */ "./hooks/use-has-selected-inner-block/index.ts"); /* harmony import */ var _use_request_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-request-data */ "./hooks/use-request-data/index.ts"); /* harmony import */ var _use_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-icons */ "./hooks/use-icons/index.ts"); /* harmony import */ var _use_filtered_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./use-filtered-list */ "./hooks/use-filtered-list/index.ts"); /* harmony import */ var _use_media__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./use-media */ "./hooks/use-media/index.ts"); /* harmony import */ var _use_block_parent_attributes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./use-block-parent-attributes */ "./hooks/use-block-parent-attributes/index.ts"); /* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./use-post */ "./hooks/use-post/index.ts"); /* harmony import */ var _use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./use-is-supported-taxonomy */ "./hooks/use-is-supported-taxonomy/index.ts"); /* harmony import */ var _use_all_terms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./use-all-terms */ "./hooks/use-all-terms/index.ts"); /* harmony import */ var _use_selected_term_ids__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./use-selected-term-ids */ "./hooks/use-selected-term-ids/index.ts"); /* harmony import */ var _use_selected_terms__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./use-selected-terms */ "./hooks/use-selected-terms/index.ts"); /* harmony import */ var _use_selected_terms_of_saved_post__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./use-selected-terms-of-saved-post */ "./hooks/use-selected-terms-of-saved-post/index.ts"); /* harmony import */ var _use_is_plugin_active__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./use-is-plugin-active */ "./hooks/use-is-plugin-active/index.ts"); /* harmony import */ var _use_primary_term__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./use-primary-term */ "./hooks/use-primary-term/index.ts"); /* harmony import */ var _use_popover__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./use-popover */ "./hooks/use-popover/index.tsx"); /* harmony import */ var _use_script__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./use-script */ "./hooks/use-script/index.ts"); /* harmony import */ var _use_post_meta_value__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./use-post-meta-value */ "./hooks/use-post-meta-value/index.ts"); /* harmony import */ var _use_taxonomy__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./use-taxonomy */ "./hooks/use-taxonomy/index.ts"); /* harmony import */ var _use_is_supported_meta_value__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./use-is-supported-meta-value */ "./hooks/use-is-supported-meta-value/index.ts"); /* harmony import */ var _use_flat_inner_blocks__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./use-flat-inner-blocks */ "./hooks/use-flat-inner-blocks/index.ts"); /***/ }), /***/ "./hooks/use-all-terms/index.ts": /*!**************************************!*\ !*** ./hooks/use-all-terms/index.ts ***! \**************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useAllTerms: function() { return /* binding */ useAllTerms; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__); const useAllTerms = taxonomyName => { return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { // @ts-ignore-next-line - The type definitions for the core store are incomplete. const { getEntityRecords, hasFinishedResolution } = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store); const termsSelector = ['taxonomy', taxonomyName, { per_page: -1, context: 'view' }]; const terms = getEntityRecords(...termsSelector); const hasResolvedTerms = hasFinishedResolution('getEntityRecords', termsSelector); return [terms, hasResolvedTerms]; }, [taxonomyName]); }; /***/ }), /***/ "./hooks/use-block-parent-attributes/index.ts": /*!****************************************************!*\ !*** ./hooks/use-block-parent-attributes/index.ts ***! \****************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useBlockParentAttributes: function() { return /* binding */ useBlockParentAttributes; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); // @ts-ignore-next-line - The type definitions for the block-editor package are incomplete. /* * useBlockParentAttributes * * allows you to easily interface with the attributes of the direct * parent of the current block */ function useBlockParentAttributes() { const { clientId } = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockEditContext)(); const parentBlocks = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)( // @ts-ignore-next-line - The type definitions for the core store are incomplete. select => select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store).getBlockParents(clientId), [clientId]); const parentBlockClientId = parentBlocks[parentBlocks.length - 1]; const parentBlock = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)( // @ts-ignore-next-line - The type definitions for the core store are incomplete. select => select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store).getBlock(parentBlockClientId), [parentBlockClientId]); const { updateBlockAttributes } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store); const setParentAttributes = attributes => { updateBlockAttributes(parentBlockClientId, attributes); }; return [parentBlock?.attributes ?? {}, setParentAttributes]; } /***/ }), /***/ "./hooks/use-filtered-list/index.ts": /*!******************************************!*\ !*** ./hooks/use-filtered-list/index.ts ***! \******************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useFilteredList: function() { return /* binding */ useFilteredList; } /* harmony export */ }); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @leeoniya/ufuzzy */ "@leeoniya/ufuzzy"); /* harmony import */ var _leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1__); // eslint-disable-next-line new-cap const fuzzy = new (_leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1___default())(); /** * useFilteredList * * @param {Array} list list of items to filter * @param {string} searchTerm search term string * @param {string?} property name of the prop * @returns {Array} filtered list */ function useFilteredList(list = [], searchTerm = '', property = 'name') { const [filteredList, setFilteredList] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(list); const propertyList = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => list.map(item => item[property]), [list, property]); const filterList = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useCallback)(searchTerm => { const matchedNames = fuzzy.filter(propertyList, searchTerm); const results = matchedNames?.map(index => list[index]) || []; return results; }, [propertyList, list]); (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { const hasListItems = !!list?.length; const hasSearchTerm = searchTerm !== ''; const canFilter = hasSearchTerm && hasListItems; const newFilteredList = canFilter ? filterList(searchTerm) : list; setFilteredList(newFilteredList); }, [searchTerm, filterList, list]); return [filteredList]; } /***/ }), /***/ "./hooks/use-flat-inner-blocks/index.ts": /*!**********************************************!*\ !*** ./hooks/use-flat-inner-blocks/index.ts ***! \**********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useFlatInnerBlocks: function() { return /* binding */ useFlatInnerBlocks; } /* harmony export */ }); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__); const useFlatInnerBlocks = clientId => { return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => { function recursivelyGetInnerBlocks(clientId) { let allInnerBlocks = []; // @ts-expect-error - TS doesn't know about the block editor store const innerBlocks = select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__.store).getBlocks(clientId); innerBlocks.forEach(block => { allInnerBlocks.push(block); allInnerBlocks = allInnerBlocks.concat(recursivelyGetInnerBlocks(block.clientId)); }); return allInnerBlocks; } return recursivelyGetInnerBlocks(clientId); }, [clientId]); }; /***/ }), /***/ "./hooks/use-has-selected-inner-block/index.ts": /*!*****************************************************!*\ !*** ./hooks/use-has-selected-inner-block/index.ts ***! \*****************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useHasSelectedInnerBlock: function() { return /* binding */ useHasSelectedInnerBlock; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__); // @ts-ignore-next-line - The type definitions for the block-editor package are incomplete. /* * useHasSelectedInnerBlock * Determine whether one of the inner blocks currently is selected */ function useHasSelectedInnerBlock() { const { clientId } = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockEditContext)(); return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)( // @ts-ignore-next-line - The type definitions for the core store are incomplete. select => select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store).hasSelectedInnerBlock(clientId, true), [clientId]); } /***/ }), /***/ "./hooks/use-icons/index.ts": /*!**********************************!*\ !*** ./hooks/use-icons/index.ts ***! \**********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useIcon: function() { return /* binding */ useIcon; }, /* harmony export */ useIcons: function() { return /* binding */ useIcons; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _stores__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stores */ "./stores/index.ts"); function transformIcons(iconSet) { return iconSet.icons.map(icon => ({ ...icon, iconSet: iconSet.name })); } const useIcons = (iconSet = '') => { const [icons, setIcons] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)([]); const rawIcons = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { const { getIconSet, getIconSets } = select(_stores__WEBPACK_IMPORTED_MODULE_2__.iconStore); if (iconSet) { return getIconSet(iconSet); } return getIconSets(); }, [iconSet]); (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => { if (iconSet) { setIcons(transformIcons(rawIcons)); } else { setIcons(Object.values(rawIcons).reduce((rawIcons, iconSet) => [...rawIcons, ...transformIcons(iconSet)], [])); } }, [rawIcons, iconSet]); return icons; }; const useIcon = (iconSet, name) => { return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { return select(_stores__WEBPACK_IMPORTED_MODULE_2__.iconStore).getIcon(iconSet, name); }, [iconSet, name]); }; /***/ }), /***/ "./hooks/use-is-plugin-active/index.ts": /*!*********************************************!*\ !*** ./hooks/use-is-plugin-active/index.ts ***! \*********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useIsPluginActive: function() { return /* binding */ useIsPluginActive; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__); const ACTIVE_STATUSES = ['active', 'network-active']; /** * Custom hook to check if a plugin is active and whether its resolution has finished. * * @param {string} pluginName The name of the plugin to check. * @returns {[boolean, boolean]} A tuple with the first value being whether the plugin is active and the second value being whether the resolution has finished. */ const useIsPluginActive = pluginName => { return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { const storeSelectors = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store); const plugin = storeSelectors.getPlugin(pluginName); const hasResolvedPlugins = storeSelectors.hasFinishedResolution('getPlugin', [pluginName]); // @ts-ignore-next-line - The check here is intentional to see if the plugin is active. const isPluginActive = ACTIVE_STATUSES.includes(plugin?.status); return [isPluginActive, hasResolvedPlugins]; }, [pluginName]); }; /***/ }), /***/ "./hooks/use-is-supported-meta-value/index.ts": /*!****************************************************!*\ !*** ./hooks/use-is-supported-meta-value/index.ts ***! \****************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useIsSupportedMetaField: function() { return /* binding */ useIsSupportedMetaField; } /* harmony export */ }); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../use-post */ "./hooks/use-post/index.ts"); const useIsSupportedMetaField = metaKey => { const { postId, postType } = (0,_use_post__WEBPACK_IMPORTED_MODULE_1__.usePost)(); const { record } = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__.useEntityRecord)('postType', postType, postId); const { meta } = record || {}; // Add type assertion const supportedMetaKeys = Object.keys(meta || {}); const isSupportedMetaField = supportedMetaKeys?.some(name => name === metaKey); return [!!isSupportedMetaField]; }; /***/ }), /***/ "./hooks/use-is-supported-taxonomy/index.ts": /*!**************************************************!*\ !*** ./hooks/use-is-supported-taxonomy/index.ts ***! \**************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useIsSupportedTaxonomy: function() { return /* binding */ useIsSupportedTaxonomy; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__); const useIsSupportedTaxonomy = (postType, taxonomyName) => { return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { // @ts-ignore-next-line - The type definitions for the core store are incomplete. const { getPostType, hasFinishedResolution } = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store); const postTypeObject = getPostType(postType); const hasResolvedPostType = hasFinishedResolution('getPostType', [postType]); const isSupportedTaxonomy = postTypeObject?.taxonomies?.some(name => name === taxonomyName); return [!!isSupportedTaxonomy, hasResolvedPostType]; }, [postType, taxonomyName]); }; /***/ }), /***/ "./hooks/use-media/index.ts": /*!**********************************!*\ !*** ./hooks/use-media/index.ts ***! \**********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useMedia: function() { return /* binding */ useMedia; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__); function useMedia(id) { return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { // @ts-ignore-next-line - The type definitions for the core store are incomplete. const { getMedia, isResolving, hasFinishedResolution } = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store); const mediaParameters = [id, { context: 'view' }]; return { media: getMedia(...mediaParameters), isResolvingMedia: isResolving('getMedia', mediaParameters), hasResolvedMedia: hasFinishedResolution('getMedia', mediaParameters) }; }, [id]); } /***/ }), /***/ "./hooks/use-on-click-outside.ts": /*!***************************************!*\ !*** ./hooks/use-on-click-outside.ts ***! \***************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useOnClickOutside: function() { return /* binding */ useOnClickOutside; } /* harmony export */ }); /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__); /** * useOnClickOutside * * Note: This hook is only intended to be used in the WordPress backend/block editor. * * @param {Function} onClickOutside callback that will get invoked when the user clicks outside of the target * @returns {object} ref to the target element */ function useOnClickOutside(onClickOutside) { const ref = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__.useRefEffect)(element => { if (!element) { return () => {}; } const listener = event => { // Do nothing if clicking ref's element or descendent elements if (!element || element.contains(event.target)) { return; } onClickOutside(event); }; const ownerDocument = element.ownerDocument || document; const isRenderedInsideIframe = ownerDocument !== document; const editorCanvasIframe = document.querySelector('[name="editor-canvas"]'); const editorCanvasDocument = editorCanvasIframe?.contentDocument; ownerDocument.addEventListener('mousedown', listener); ownerDocument.addEventListener('touchstart', listener); // If the element is rendered inside an iframe, we need to listen to events on the parent document // as well to detect clicks outside the iframe. if (isRenderedInsideIframe) { document.addEventListener('mousedown', listener); document.addEventListener('touchstart', listener); // If the element is rendered outside the editor canvas iframe, we need to listen to events on the editor canvas // document as well to detect clicks inside the editor canvas. } else if (editorCanvasDocument) { editorCanvasDocument.addEventListener('mousedown', listener); editorCanvasDocument.addEventListener('touchstart', listener); } return () => { ownerDocument.removeEventListener('mousedown', listener); ownerDocument.removeEventListener('touchstart', listener); if (isRenderedInsideIframe) { document.removeEventListener('mousedown', listener); document.removeEventListener('touchstart', listener); } else if (editorCanvasDocument) { editorCanvasDocument.removeEventListener('mousedown', listener); editorCanvasDocument.removeEventListener('touchstart', listener); } }; }, [onClickOutside]); return ref; } /***/ }), /***/ "./hooks/use-popover/index.tsx": /*!*************************************!*\ !*** ./hooks/use-popover/index.tsx ***! \*************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ usePopover: function() { return /* binding */ usePopover; } /* harmony export */ }); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _use_on_click_outside__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../use-on-click-outside */ "./hooks/use-on-click-outside.ts"); var _jsxFileName = "/Users/fabiankaegy/Developer/10up/block-components/hooks/use-popover/index.tsx"; const usePopover = () => { // Use internal state instead of a ref to make sure that the component // re-renders when the popover's anchor updates. const [popoverAnchor, setPopoverAnchor] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(); const [isVisible, setIsVisible] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const toggleVisible = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => { setIsVisible(visible => !visible); }, []); const toggleProps = { onClick: toggleVisible, 'aria-expanded': isVisible, ref: setPopoverAnchor }; const ref = (0,_use_on_click_outside__WEBPACK_IMPORTED_MODULE_2__.useOnClickOutside)(() => setIsVisible(false)); const PopoverComponent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({ children }) => { if (!isVisible) { return null; } return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Popover, { ref: ref, anchor: popoverAnchor, focusOnMount: false, animate: false, __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 35, columnNumber: 6 } }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { style: { padding: '16px', minWidth: '250px' }, __self: undefined, __source: { fileName: _jsxFileName, lineNumber: 36, columnNumber: 7 } }, children)); }, [isVisible, popoverAnchor, ref]); return { setPopoverAnchor, toggleVisible, toggleProps, Popover: PopoverComponent }; }; /***/ }), /***/ "./hooks/use-post-meta-value/index.ts": /*!********************************************!*\ !*** ./hooks/use-post-meta-value/index.ts ***! \********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ usePostMetaValue: function() { return /* binding */ usePostMetaValue; } /* harmony export */ }); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../use-post */ "./hooks/use-post/index.ts"); const usePostMetaValue = metaKey => { const { postId, postType } = (0,_use_post__WEBPACK_IMPORTED_MODULE_1__.usePost)(); const [meta, setMeta] = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__.useEntityProp)('postType', postType, 'meta', postId); if (!meta || !metaKey || !Object.prototype.hasOwnProperty.call(meta, metaKey)) { return [undefined, () => {}]; } const metaValue = meta[metaKey]; const setMetaValue = newValue => { setMeta({ ...meta, [metaKey]: newValue }); }; return [metaValue, setMetaValue]; }; /***/ }), /***/ "./hooks/use-post/index.ts": /*!*********************************!*\ !*** ./hooks/use-post/index.ts ***! \*********************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ usePost: function() { return /* binding */ usePost; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/editor */ "@wordpress/editor"); /* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_editor__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _components_post_context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/post-context/context */ "./components/post-context/context.ts"); // @ts-ignore-next-line - The type definitions for the editor package are incomplete. function usePost() { const { postId: blockContextPostId, postType: blockContextPostType, isEditable: blockContextIsEditable } = (0,_components_post_context_context__WEBPACK_IMPORTED_MODULE_2__.usePostContext)(); const { globalPostId, globalPostType } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => ({ globalPostId: select(_wordpress_editor__WEBPACK_IMPORTED_MODULE_1__.store).getCurrentPostId(), globalPostType: select(_wordpress_editor__WEBPACK_IMPORTED_MODULE_1__.store).getCurrentPostType() }), []); const hasBlockContext = !!blockContextPostId && !!blockContextPostType; return { postId: blockContextPostId || globalPostId, postType: blockContextPostType || globalPostType, isEditable: hasBlockContext ? blockContextIsEditable : true }; } /***/ }), /***/ "./hooks/use-primary-term/index.ts": /*!*****************************************!*\ !*** ./hooks/use-primary-term/index.ts ***! \*****************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ usePrimaryTerm: function() { return /* binding */ usePrimaryTerm; } /* harmony export */ }); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../use-post */ "./hooks/use-post/index.ts"); /* harmony import */ var _use_is_plugin_active__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../use-is-plugin-active */ "./hooks/use-is-plugin-active/index.ts"); /* harmony import */ var _use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../use-is-supported-taxonomy */ "./hooks/use-is-supported-taxonomy/index.ts"); const usePrimaryTerm = taxonomyName => { const { postType, isEditable } = (0,_use_post__WEBPACK_IMPORTED_MODULE_3__.usePost)(); const [isYoastSeoActive, hasResolvedIsPluginActive] = (0,_use_is_plugin_active__WEBPACK_IMPORTED_MODULE_4__.useIsPluginActive)('wordpress-seo/wp-seo'); const [isSupportedTaxonomy, hasResolvedIsSupportedTaxonomy] = (0,_use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_5__.useIsSupportedTaxonomy)(postType, taxonomyName); const primaryTermId = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { if (!hasResolvedIsSupportedTaxonomy || !hasResolvedIsPluginActive) { return null; } if (!isYoastSeoActive && hasResolvedIsPluginActive) { // eslint-disable-next-line no-console console.error('Yoast SEO is not active. Please install and activate Yoast SEO to use the PostPrimaryCategory component.'); return null; } if (!isSupportedTaxonomy && hasResolvedIsSupportedTaxonomy) { // eslint-disable-next-line no-console console.error(`The taxonomy "${taxonomyName}" is not supported for the post type "${postType}". Please use a supported taxonomy.`); return null; } const yoastStore = select('yoast-seo/editor'); if (!yoastStore) { // eslint-disable-next-line no-console console.error(`The yoast-seo/editor store does is not available.`); return null; } // @ts-ignore-next-line - The type definitions for the Yoast store are incomplete. return select('yoast-seo/editor').getPrimaryTaxonomyId(taxonomyName); }, [taxonomyName, isYoastSeoActive, isSupportedTaxonomy, hasResolvedIsSupportedTaxonomy, hasResolvedIsPluginActive]); const primaryTerm = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => { if (!primaryTermId) { return null; } const { getEntityRecord } = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_2__.store); return getEntityRecord('taxonomy', taxonomyName, primaryTermId); }, [primaryTermId]); return [!isEditable ? { name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Primary Term', 'tenup'), link: '#' } : primaryTerm, isSupportedTaxonomy]; }; /***/ }), /***/ "./hooks/use-request-data/index.ts": /*!*****************************************!*\ !*** ./hooks/use-request-data/index.ts ***! \*****************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useRequestData: function() { return /* binding */ useRequestData; } /* harmony export */ }); /* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isObject */ "./node_modules/lodash/isObject.js"); /* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); /* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__); /** * External dependencies */ // eslint-disable-next-line import/no-extraneous-dependencies /** * WordPress dependencies