UNPKG

@wordpress/editor

Version:
95 lines (81 loc) 3.33 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _i18n = require("@wordpress/i18n"); var _data = require("@wordpress/data"); var _blockEditor = require("@wordpress/block-editor"); var _wordCount = _interopRequireDefault(require("../word-count")); var _documentOutline = _interopRequireDefault(require("../document-outline")); var _characterCount = _interopRequireDefault(require("../character-count")); /** * WordPress dependencies */ /** * Internal dependencies */ function TableOfContentsPanel({ hasOutlineItemsDisabled, onRequestClose }) { const { headingCount, paragraphCount, numberOfBlocks } = (0, _data.useSelect)(select => { const { getGlobalBlockCount } = select(_blockEditor.store); return { headingCount: getGlobalBlockCount('core/heading'), paragraphCount: getGlobalBlockCount('core/paragraph'), numberOfBlocks: getGlobalBlockCount() }; }, []); return ( /* * Disable reason: The `list` ARIA role is redundant but * Safari+VoiceOver won't announce the list otherwise. */ /* eslint-disable jsx-a11y/no-redundant-roles */ (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("div", { className: "table-of-contents__wrapper", role: "note", "aria-label": (0, _i18n.__)('Document Statistics'), tabIndex: "0" }, (0, _element.createElement)("ul", { role: "list", className: "table-of-contents__counts" }, (0, _element.createElement)("li", { className: "table-of-contents__count" }, (0, _i18n.__)('Characters'), (0, _element.createElement)("span", { className: "table-of-contents__number" }, (0, _element.createElement)(_characterCount.default, null))), (0, _element.createElement)("li", { className: "table-of-contents__count" }, (0, _i18n.__)('Words'), (0, _element.createElement)(_wordCount.default, null)), (0, _element.createElement)("li", { className: "table-of-contents__count" }, (0, _i18n.__)('Headings'), (0, _element.createElement)("span", { className: "table-of-contents__number" }, headingCount)), (0, _element.createElement)("li", { className: "table-of-contents__count" }, (0, _i18n.__)('Paragraphs'), (0, _element.createElement)("span", { className: "table-of-contents__number" }, paragraphCount)), (0, _element.createElement)("li", { className: "table-of-contents__count" }, (0, _i18n.__)('Blocks'), (0, _element.createElement)("span", { className: "table-of-contents__number" }, numberOfBlocks)))), headingCount > 0 && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("hr", null), (0, _element.createElement)("h2", { className: "table-of-contents__title" }, (0, _i18n.__)('Document Outline')), (0, _element.createElement)(_documentOutline.default, { onSelect: onRequestClose, hasOutlineItemsDisabled: hasOutlineItemsDisabled }))) /* eslint-enable jsx-a11y/no-redundant-roles */ ); } var _default = TableOfContentsPanel; exports.default = _default; //# sourceMappingURL=panel.js.map