@wordpress/editor 13.23.0 → 13.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/entities-saved-states/index.js +15 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/index.js +26 -2
- package/build/components/index.js.map +1 -1
- package/build/components/post-author/panel.js +24 -0
- package/build/components/post-author/panel.js.map +1 -0
- package/build/components/post-panel-row/index.js +36 -0
- package/build/components/post-panel-row/index.js.map +1 -0
- package/build/components/post-saved-state/index.js +21 -16
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-schedule/panel.js +67 -0
- package/build/components/post-schedule/panel.js.map +1 -0
- package/build/components/post-sync-status/index.js +8 -4
- package/build/components/post-sync-status/index.js.map +1 -1
- package/build/components/post-title/constants.js +11 -0
- package/build/components/post-title/constants.js.map +1 -0
- package/build/components/post-title/index.js +61 -89
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/post-title/post-title-raw.js +92 -0
- package/build/components/post-title/post-title-raw.js.map +1 -0
- package/build/components/post-title/use-post-title-focus.js +64 -0
- package/build/components/post-title/use-post-title-focus.js.map +1 -0
- package/build/components/post-title/use-post-title.js +41 -0
- package/build/components/post-title/use-post-title.js.map +1 -0
- package/build/components/post-url/panel.js +4 -3
- package/build/components/post-url/panel.js.map +1 -1
- package/build/components/provider/constants.js +9 -0
- package/build/components/provider/constants.js.map +1 -0
- package/build/components/provider/disable-non-page-content-blocks.js +63 -0
- package/build/components/provider/disable-non-page-content-blocks.js.map +1 -0
- package/build/components/provider/index.js +8 -7
- package/build/components/provider/index.js.map +1 -1
- package/build/private-apis.js +2 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +23 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +10 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +16 -2
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +16 -2
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/index.js +3 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/post-author/panel.js +14 -0
- package/build-module/components/post-author/panel.js.map +1 -0
- package/build-module/components/post-panel-row/index.js +27 -0
- package/build-module/components/post-panel-row/index.js.map +1 -0
- package/build-module/components/post-saved-state/index.js +22 -17
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-schedule/panel.js +59 -0
- package/build-module/components/post-schedule/panel.js.map +1 -0
- package/build-module/components/post-sync-status/index.js +8 -5
- package/build-module/components/post-sync-status/index.js.map +1 -1
- package/build-module/components/post-title/constants.js +3 -0
- package/build-module/components/post-title/constants.js.map +1 -0
- package/build-module/components/post-title/index.js +62 -91
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/post-title/post-title-raw.js +83 -0
- package/build-module/components/post-title/post-title-raw.js.map +1 -0
- package/build-module/components/post-title/use-post-title-focus.js +57 -0
- package/build-module/components/post-title/use-post-title-focus.js.map +1 -0
- package/build-module/components/post-title/use-post-title.js +33 -0
- package/build-module/components/post-title/use-post-title.js.map +1 -0
- package/build-module/components/post-url/panel.js +5 -4
- package/build-module/components/post-url/panel.js.map +1 -1
- package/build-module/components/provider/constants.js +2 -0
- package/build-module/components/provider/constants.js.map +1 -0
- package/build-module/components/provider/disable-non-page-content-blocks.js +56 -0
- package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -0
- package/build-module/components/provider/index.js +6 -4
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/private-apis.js +2 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +21 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +9 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +11 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +51 -18
- package/build-style/style.css +51 -18
- package/package.json +31 -31
- package/src/components/entities-saved-states/index.js +16 -1
- package/src/components/index.js +3 -0
- package/src/components/post-author/panel.js +18 -0
- package/src/components/post-author/style.scss +7 -0
- package/src/components/post-panel-row/index.js +26 -0
- package/src/components/post-panel-row/style.scss +21 -0
- package/src/components/post-saved-state/index.js +46 -37
- package/src/components/post-schedule/panel.js +65 -0
- package/src/components/post-schedule/style.scss +23 -0
- package/src/components/post-sync-status/index.js +5 -6
- package/src/components/post-sync-status/style.scss +3 -17
- package/src/components/post-title/constants.js +4 -0
- package/src/components/post-title/index.js +56 -87
- package/src/components/post-title/post-title-raw.js +82 -0
- package/src/components/post-title/style.scss +5 -0
- package/src/components/post-title/use-post-title-focus.js +50 -0
- package/src/components/post-title/use-post-title.js +25 -0
- package/src/components/post-url/panel.js +4 -8
- package/src/components/post-url/style.scss +1 -12
- package/src/components/provider/README.md +0 -13
- package/src/components/provider/constants.js +5 -0
- package/src/components/provider/disable-non-page-content-blocks.js +55 -0
- package/src/components/provider/index.js +19 -9
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +21 -0
- package/src/store/reducer.js +10 -0
- package/src/store/selectors.js +11 -0
- package/src/style.scss +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_i18n","_components","_element","_blockEditor","_store","_lockUnlock","ReusableBlocksRenameHint","unlock","blockEditorPrivateApis","PostSyncStatus","syncStatus","postType","useSelect","select","getEditedPostAttribute","editorStore","meta","currentSyncStatus","wp_pattern_sync_status","_react","createElement","
|
|
1
|
+
{"version":3,"names":["_data","require","_i18n","_components","_element","_blockEditor","_postPanelRow","_interopRequireDefault","_store","_lockUnlock","ReusableBlocksRenameHint","unlock","blockEditorPrivateApis","PostSyncStatus","syncStatus","postType","useSelect","select","getEditedPostAttribute","editorStore","meta","currentSyncStatus","wp_pattern_sync_status","_react","createElement","default","label","__","className","PostSyncStatusModal","editPost","useDispatch","isModalOpen","setIsModalOpen","useState","syncType","setSyncType","undefined","isNewPost","isCleanNewPost","useEffect","setSyncStatus","Fragment","Modal","title","onRequestClose","overlayClassName","onSubmit","event","preventDefault","__experimentalVStack","spacing","ToggleControl","_x","help","checked","onChange","__experimentalHStack","justify","Button","variant","type"],"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tModal,\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { ReusableBlocksRenameHint } = unlock( blockEditorPrivateApis );\n\nexport default function PostSyncStatus() {\n\tconst { syncStatus, postType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst meta = getEditedPostAttribute( 'meta' );\n\n\t\t// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.\n\t\tconst currentSyncStatus =\n\t\t\tmeta?.wp_pattern_sync_status === 'unsynced'\n\t\t\t\t? 'unsynced'\n\t\t\t\t: getEditedPostAttribute( 'wp_pattern_sync_status' );\n\n\t\treturn {\n\t\t\tsyncStatus: currentSyncStatus,\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t};\n\t} );\n\n\tif ( postType !== 'wp_block' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Sync status' ) }>\n\t\t\t<div className=\"editor-post-sync-status__value\">\n\t\t\t\t{ syncStatus === 'unsynced'\n\t\t\t\t\t? __( 'Not synced' )\n\t\t\t\t\t: __( 'Fully synced' ) }\n\t\t\t</div>\n\t\t</PostPanelRow>\n\t);\n}\n\nexport function PostSyncStatusModal() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\n\tconst { postType, isNewPost } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute, isCleanNewPost } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t\tisNewPost: isCleanNewPost(),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( isNewPost && postType === 'wp_block' ) {\n\t\t\tsetIsModalOpen( true );\n\t\t}\n\t\t// We only want the modal to open when the page is first loaded.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst setSyncStatus = () => {\n\t\teditPost( {\n\t\t\tmeta: {\n\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t},\n\t\t} );\n\t};\n\n\tif ( postType !== 'wp_block' || ! isNewPost ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Set pattern sync status' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetSyncStatus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<ReusableBlocksRenameHint />\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t'Synced',\n\t\t\t\t\t\t\t\t\t'Option that makes an individual pattern synchronized'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Sync this pattern across multiple locations.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.REGEXP_NEWLINES = exports.DEFAULT_CLASSNAMES = void 0;
|
|
7
|
+
const DEFAULT_CLASSNAMES = 'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text';
|
|
8
|
+
exports.DEFAULT_CLASSNAMES = DEFAULT_CLASSNAMES;
|
|
9
|
+
const REGEXP_NEWLINES = /[\r\n]+/g;
|
|
10
|
+
exports.REGEXP_NEWLINES = REGEXP_NEWLINES;
|
|
11
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_CLASSNAMES","exports","REGEXP_NEWLINES"],"sources":["@wordpress/editor/src/components/post-title/constants.js"],"sourcesContent":["export const DEFAULT_CLASSNAMES =\n\t'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text';\n\nexport const REGEXP_NEWLINES = /[\\r\\n]+/g;\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAC9B,kHAAkH;AAACC,OAAA,CAAAD,kBAAA,GAAAA,kBAAA;AAE7G,MAAME,eAAe,GAAG,UAAU;AAACD,OAAA,CAAAC,eAAA,GAAAA,eAAA"}
|
|
@@ -10,15 +10,18 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
10
10
|
var _i18n = require("@wordpress/i18n");
|
|
11
11
|
var _element = require("@wordpress/element");
|
|
12
12
|
var _htmlEntities = require("@wordpress/html-entities");
|
|
13
|
-
var _keycodes = require("@wordpress/keycodes");
|
|
14
13
|
var _data = require("@wordpress/data");
|
|
15
|
-
var _blocks = require("@wordpress/blocks");
|
|
16
14
|
var _blockEditor = require("@wordpress/block-editor");
|
|
15
|
+
var _keycodes = require("@wordpress/keycodes");
|
|
16
|
+
var _blocks = require("@wordpress/blocks");
|
|
17
17
|
var _richText = require("@wordpress/rich-text");
|
|
18
18
|
var _compose = require("@wordpress/compose");
|
|
19
19
|
var _dom = require("@wordpress/dom");
|
|
20
|
-
var _postTypeSupportCheck = _interopRequireDefault(require("../post-type-support-check"));
|
|
21
20
|
var _store = require("../../store");
|
|
21
|
+
var _constants = require("./constants");
|
|
22
|
+
var _usePostTitleFocus = _interopRequireDefault(require("./use-post-title-focus"));
|
|
23
|
+
var _usePostTitle = _interopRequireDefault(require("./use-post-title"));
|
|
24
|
+
var _postTypeSupportCheck = _interopRequireDefault(require("../post-type-support-check"));
|
|
22
25
|
/**
|
|
23
26
|
* External dependencies
|
|
24
27
|
*/
|
|
@@ -31,30 +34,13 @@ var _store = require("../../store");
|
|
|
31
34
|
* Internal dependencies
|
|
32
35
|
*/
|
|
33
36
|
|
|
34
|
-
/**
|
|
35
|
-
* Constants
|
|
36
|
-
*/
|
|
37
|
-
const REGEXP_NEWLINES = /[\r\n]+/g;
|
|
38
37
|
function PostTitle(_, forwardedRef) {
|
|
39
|
-
const ref = (0, _element.useRef)();
|
|
40
|
-
const [isSelected, setIsSelected] = (0, _element.useState)(false);
|
|
41
|
-
const {
|
|
42
|
-
editPost
|
|
43
|
-
} = (0, _data.useDispatch)(_store.store);
|
|
44
|
-
const {
|
|
45
|
-
insertDefaultBlock,
|
|
46
|
-
clearSelectedBlock,
|
|
47
|
-
insertBlocks
|
|
48
|
-
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
49
38
|
const {
|
|
50
|
-
isCleanNewPost,
|
|
51
|
-
title,
|
|
52
39
|
placeholder,
|
|
53
40
|
hasFixedToolbar
|
|
54
41
|
} = (0, _data.useSelect)(select => {
|
|
55
42
|
const {
|
|
56
|
-
getEditedPostAttribute
|
|
57
|
-
isCleanNewPost: _isCleanNewPost
|
|
43
|
+
getEditedPostAttribute
|
|
58
44
|
} = select(_store.store);
|
|
59
45
|
const {
|
|
60
46
|
getSettings
|
|
@@ -64,54 +50,31 @@ function PostTitle(_, forwardedRef) {
|
|
|
64
50
|
hasFixedToolbar: _hasFixedToolbar
|
|
65
51
|
} = getSettings();
|
|
66
52
|
return {
|
|
67
|
-
isCleanNewPost: _isCleanNewPost(),
|
|
68
53
|
title: getEditedPostAttribute('title'),
|
|
69
54
|
placeholder: titlePlaceholder,
|
|
70
55
|
hasFixedToolbar: _hasFixedToolbar
|
|
71
56
|
};
|
|
72
57
|
}, []);
|
|
73
|
-
(0, _element.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const ownerDocument = name === 'editor-canvas' ? parent.document : defaultView.document;
|
|
90
|
-
const {
|
|
91
|
-
activeElement,
|
|
92
|
-
body
|
|
93
|
-
} = ownerDocument;
|
|
94
|
-
|
|
95
|
-
// Only autofocus the title when the post is entirely empty. This should
|
|
96
|
-
// only happen for a new post, which means we focus the title on new
|
|
97
|
-
// post so the author can start typing right away, without needing to
|
|
98
|
-
// click anything.
|
|
99
|
-
if (isCleanNewPost && (!activeElement || body === activeElement)) {
|
|
100
|
-
ref.current.focus();
|
|
101
|
-
}
|
|
102
|
-
}, [isCleanNewPost]);
|
|
103
|
-
function onEnterPress() {
|
|
104
|
-
insertDefaultBlock(undefined, undefined, 0);
|
|
58
|
+
const [isSelected, setIsSelected] = (0, _element.useState)(false);
|
|
59
|
+
const {
|
|
60
|
+
ref: focusRef
|
|
61
|
+
} = (0, _usePostTitleFocus.default)(forwardedRef);
|
|
62
|
+
const {
|
|
63
|
+
title,
|
|
64
|
+
setTitle: onUpdate
|
|
65
|
+
} = (0, _usePostTitle.default)();
|
|
66
|
+
const [selection, setSelection] = (0, _element.useState)({});
|
|
67
|
+
const {
|
|
68
|
+
clearSelectedBlock,
|
|
69
|
+
insertBlocks,
|
|
70
|
+
insertDefaultBlock
|
|
71
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
72
|
+
function onChange(value) {
|
|
73
|
+
onUpdate(value.replace(_constants.REGEXP_NEWLINES, ' '));
|
|
105
74
|
}
|
|
106
75
|
function onInsertBlockAfter(blocks) {
|
|
107
76
|
insertBlocks(blocks, 0);
|
|
108
77
|
}
|
|
109
|
-
function onUpdate(newTitle) {
|
|
110
|
-
editPost({
|
|
111
|
-
title: newTitle
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
const [selection, setSelection] = (0, _element.useState)({});
|
|
115
78
|
function onSelect() {
|
|
116
79
|
setIsSelected(true);
|
|
117
80
|
clearSelectedBlock();
|
|
@@ -120,8 +83,8 @@ function PostTitle(_, forwardedRef) {
|
|
|
120
83
|
setIsSelected(false);
|
|
121
84
|
setSelection({});
|
|
122
85
|
}
|
|
123
|
-
function
|
|
124
|
-
|
|
86
|
+
function onEnterPress() {
|
|
87
|
+
insertDefaultBlock(undefined, undefined, 0);
|
|
125
88
|
}
|
|
126
89
|
function onKeyDown(event) {
|
|
127
90
|
if (event.keyCode === _keycodes.ENTER) {
|
|
@@ -165,7 +128,11 @@ function PostTitle(_, forwardedRef) {
|
|
|
165
128
|
if (typeof content !== 'string') {
|
|
166
129
|
const [firstBlock] = content;
|
|
167
130
|
if (!title && (firstBlock.name === 'core/heading' || firstBlock.name === 'core/paragraph')) {
|
|
168
|
-
|
|
131
|
+
// Strip HTML to avoid unwanted HTML being added to the title.
|
|
132
|
+
// In the majority of cases it is assumed that HTML in the title
|
|
133
|
+
// is undesirable.
|
|
134
|
+
const contentNoHTML = (0, _dom.__unstableStripHTML)(firstBlock.attributes.content);
|
|
135
|
+
onUpdate(contentNoHTML);
|
|
169
136
|
onInsertBlockAfter(content.slice(1));
|
|
170
137
|
} else {
|
|
171
138
|
onInsertBlockAfter(content);
|
|
@@ -177,8 +144,13 @@ function PostTitle(_, forwardedRef) {
|
|
|
177
144
|
}),
|
|
178
145
|
...selection
|
|
179
146
|
};
|
|
147
|
+
|
|
148
|
+
// Strip HTML to avoid unwanted HTML being added to the title.
|
|
149
|
+
// In the majority of cases it is assumed that HTML in the title
|
|
150
|
+
// is undesirable.
|
|
151
|
+
const contentNoHTML = (0, _dom.__unstableStripHTML)(content);
|
|
180
152
|
const newValue = (0, _richText.insert)(value, (0, _richText.create)({
|
|
181
|
-
html:
|
|
153
|
+
html: contentNoHTML
|
|
182
154
|
}));
|
|
183
155
|
onUpdate((0, _richText.toHTMLString)({
|
|
184
156
|
value: newValue
|
|
@@ -189,13 +161,6 @@ function PostTitle(_, forwardedRef) {
|
|
|
189
161
|
});
|
|
190
162
|
}
|
|
191
163
|
}
|
|
192
|
-
|
|
193
|
-
// The wp-block className is important for editor styles.
|
|
194
|
-
// This same block is used in both the visual and the code editor.
|
|
195
|
-
const className = (0, _classnames.default)('wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text', {
|
|
196
|
-
'is-selected': isSelected,
|
|
197
|
-
'has-fixed-toolbar': hasFixedToolbar
|
|
198
|
-
});
|
|
199
164
|
const decodedPlaceholder = (0, _htmlEntities.decodeEntities)(placeholder) || (0, _i18n.__)('Add title');
|
|
200
165
|
const {
|
|
201
166
|
ref: richTextRef
|
|
@@ -220,26 +185,33 @@ function PostTitle(_, forwardedRef) {
|
|
|
220
185
|
};
|
|
221
186
|
});
|
|
222
187
|
},
|
|
223
|
-
__unstableDisableFormats:
|
|
188
|
+
__unstableDisableFormats: false
|
|
224
189
|
});
|
|
225
190
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
191
|
+
// The wp-block className is important for editor styles.
|
|
192
|
+
// This same block is used in both the visual and the code editor.
|
|
193
|
+
const className = (0, _classnames.default)(_constants.DEFAULT_CLASSNAMES, {
|
|
194
|
+
'is-selected': isSelected,
|
|
195
|
+
'has-fixed-toolbar': hasFixedToolbar
|
|
196
|
+
});
|
|
197
|
+
return (/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
|
|
198
|
+
(0, _react.createElement)(_postTypeSupportCheck.default, {
|
|
199
|
+
supportKeys: "title"
|
|
200
|
+
}, (0, _react.createElement)("h1", {
|
|
201
|
+
ref: (0, _compose.useMergeRefs)([richTextRef, focusRef]),
|
|
202
|
+
contentEditable: true,
|
|
203
|
+
className: className,
|
|
204
|
+
"aria-label": decodedPlaceholder,
|
|
205
|
+
role: "textbox",
|
|
206
|
+
"aria-multiline": "true",
|
|
207
|
+
onFocus: onSelect,
|
|
208
|
+
onBlur: onUnselect,
|
|
209
|
+
onKeyDown: onKeyDown,
|
|
210
|
+
onKeyPress: onUnselect,
|
|
211
|
+
onPaste: onPaste
|
|
212
|
+
}))
|
|
213
|
+
/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
|
|
214
|
+
);
|
|
243
215
|
}
|
|
244
216
|
var _default = (0, _element.forwardRef)(PostTitle);
|
|
245
217
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_element","_htmlEntities","_keycodes","_data","_blocks","_blockEditor","_richText","_compose","_dom","_postTypeSupportCheck","_store","REGEXP_NEWLINES","PostTitle","_","forwardedRef","ref","useRef","isSelected","setIsSelected","useState","editPost","useDispatch","editorStore","insertDefaultBlock","clearSelectedBlock","insertBlocks","blockEditorStore","isCleanNewPost","title","placeholder","hasFixedToolbar","useSelect","select","getEditedPostAttribute","_isCleanNewPost","getSettings","titlePlaceholder","_hasFixedToolbar","useImperativeHandle","focus","current","useEffect","defaultView","ownerDocument","name","parent","document","activeElement","body","onEnterPress","undefined","onInsertBlockAfter","blocks","onUpdate","newTitle","selection","setSelection","onSelect","onUnselect","onChange","value","replace","onKeyDown","event","keyCode","ENTER","preventDefault","onPaste","clipboardData","plainText","html","getData","error1","error2","window","console","log","content","pasteHandler","HTML","length","firstBlock","stripHTML","attributes","slice","create","newValue","insert","toHTMLString","start","end","className","classnames","decodedPlaceholder","decodeEntities","__","richTextRef","useRichText","selectionStart","selectionEnd","onSelectionChange","newStart","newEnd","sel","__unstableDisableFormats","_react","createElement","default","supportKeys","useMergeRefs","contentEditable","role","onFocus","onBlur","onKeyPress","_default","forwardRef","exports"],"sources":["@wordpress/editor/src/components/post-title/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pasteHandler } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\t__unstableUseRichText as useRichText,\n\tcreate,\n\ttoHTMLString,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\n/**\n * Constants\n */\nconst REGEXP_NEWLINES = /[\\r\\n]+/g;\n\nfunction PostTitle( _, forwardedRef ) {\n\tconst ref = useRef();\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { insertDefaultBlock, clearSelectedBlock, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { isCleanNewPost, title, placeholder, hasFixedToolbar } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, isCleanNewPost: _isCleanNewPost } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =\n\t\t\t\tgetSettings();\n\n\t\t\treturn {\n\t\t\t\tisCleanNewPost: _isCleanNewPost(),\n\t\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\t\tplaceholder: titlePlaceholder,\n\t\t\t\thasFixedToolbar: _hasFixedToolbar,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tuseImperativeHandle( forwardedRef, () => ( {\n\t\tfocus: () => {\n\t\t\tref?.current?.focus();\n\t\t},\n\t} ) );\n\n\tuseEffect( () => {\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = ref.current.ownerDocument;\n\t\tconst { name, parent } = defaultView;\n\t\tconst ownerDocument =\n\t\t\tname === 'editor-canvas' ? parent.document : defaultView.document;\n\t\tconst { activeElement, body } = ownerDocument;\n\n\t\t// Only autofocus the title when the post is entirely empty. This should\n\t\t// only happen for a new post, which means we focus the title on new\n\t\t// post so the author can start typing right away, without needing to\n\t\t// click anything.\n\t\tif ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {\n\t\t\tref.current.focus();\n\t\t}\n\t}, [ isCleanNewPost ] );\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onUpdate( newTitle ) {\n\t\teditPost( { title: newTitle } );\n\t}\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onChange( value ) {\n\t\tonUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\t// IE11 only supports `Text` as an argument for `getData` and will\n\t\t// otherwise throw an invalid argument error, so we try the standard\n\t\t// arguments first, then fallback to `Text` if they fail.\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch ( error1 ) {\n\t\t\ttry {\n\t\t\t\thtml = clipboardData.getData( 'Text' );\n\t\t\t} catch ( error2 ) {\n\t\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t\t// behaviour.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\tonUpdate( stripHTML( firstBlock.attributes.content ) );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\tconst value = {\n\t\t\t\t...create( { html: title } ),\n\t\t\t\t...selection,\n\t\t\t};\n\t\t\tconst newValue = insert(\n\t\t\t\tvalue,\n\t\t\t\tcreate( { html: stripHTML( content ) } )\n\t\t\t);\n\t\t\tonUpdate( toHTMLString( { value: newValue } ) );\n\t\t\tsetSelection( {\n\t\t\t\tstart: newValue.start,\n\t\t\t\tend: newValue.end,\n\t\t\t} );\n\t\t}\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = classnames(\n\t\t'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text',\n\t\t{\n\t\t\t'is-selected': isSelected,\n\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t}\n\t);\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\tconst { ref: richTextRef } = useRichText( {\n\t\tvalue: title,\n\t\tonChange,\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: true,\n\t} );\n\n\t/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t\t<h1\n\t\t\t\tref={ useMergeRefs( [ richTextRef, ref ] ) }\n\t\t\t\tcontentEditable\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ decodedPlaceholder }\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline=\"true\"\n\t\t\t\tonFocus={ onSelect }\n\t\t\t\tonBlur={ onUnselect }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tonKeyPress={ onUnselect }\n\t\t\t\tonPaste={ onPaste }\n\t\t\t/>\n\t\t</PostTypeSupportCheck>\n\t);\n\t/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n}\n\nexport default forwardRef( PostTitle );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_element","_htmlEntities","_data","_blockEditor","_keycodes","_blocks","_richText","_compose","_dom","_store","_constants","_usePostTitleFocus","_usePostTitle","_postTypeSupportCheck","PostTitle","_","forwardedRef","placeholder","hasFixedToolbar","useSelect","select","getEditedPostAttribute","editorStore","getSettings","blockEditorStore","titlePlaceholder","_hasFixedToolbar","title","isSelected","setIsSelected","useState","ref","focusRef","usePostTitleFocus","setTitle","onUpdate","usePostTitle","selection","setSelection","clearSelectedBlock","insertBlocks","insertDefaultBlock","useDispatch","onChange","value","replace","REGEXP_NEWLINES","onInsertBlockAfter","blocks","onSelect","onUnselect","onEnterPress","undefined","onKeyDown","event","keyCode","ENTER","preventDefault","onPaste","clipboardData","plainText","html","getData","error1","error2","window","console","log","content","pasteHandler","HTML","length","firstBlock","name","contentNoHTML","stripHTML","attributes","slice","create","newValue","insert","toHTMLString","start","end","decodedPlaceholder","decodeEntities","__","richTextRef","useRichText","selectionStart","selectionEnd","onSelectionChange","newStart","newEnd","sel","__unstableDisableFormats","className","classnames","DEFAULT_CLASSNAMES","_react","createElement","default","supportKeys","useMergeRefs","contentEditable","role","onFocus","onBlur","onKeyPress","_default","forwardRef","exports"],"sources":["@wordpress/editor/src/components/post-title/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { pasteHandler } from '@wordpress/blocks';\nimport {\n\t__unstableUseRichText as useRichText,\n\tcreate,\n\ttoHTMLString,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { DEFAULT_CLASSNAMES, REGEXP_NEWLINES } from './constants';\nimport usePostTitleFocus from './use-post-title-focus';\nimport usePostTitle from './use-post-title';\nimport PostTypeSupportCheck from '../post-type-support-check';\n\nfunction PostTitle( _, forwardedRef ) {\n\tconst { placeholder, hasFixedToolbar } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =\n\t\t\tgetSettings();\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tplaceholder: titlePlaceholder,\n\t\t\thasFixedToolbar: _hasFixedToolbar,\n\t\t};\n\t}, [] );\n\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\n\tconst { ref: focusRef } = usePostTitleFocus( forwardedRef );\n\n\tconst { title, setTitle: onUpdate } = usePostTitle();\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tconst { clearSelectedBlock, insertBlocks, insertDefaultBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tfunction onChange( value ) {\n\t\tonUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );\n\t}\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\t// IE11 only supports `Text` as an argument for `getData` and will\n\t\t// otherwise throw an invalid argument error, so we try the standard\n\t\t// arguments first, then fallback to `Text` if they fail.\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch ( error1 ) {\n\t\t\ttry {\n\t\t\t\thtml = clipboardData.getData( 'Text' );\n\t\t\t} catch ( error2 ) {\n\t\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t\t// behaviour.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\t// Strip HTML to avoid unwanted HTML being added to the title.\n\t\t\t\t// In the majority of cases it is assumed that HTML in the title\n\t\t\t\t// is undesirable.\n\t\t\t\tconst contentNoHTML = stripHTML(\n\t\t\t\t\tfirstBlock.attributes.content\n\t\t\t\t);\n\t\t\t\tonUpdate( contentNoHTML );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\tconst value = {\n\t\t\t\t...create( { html: title } ),\n\t\t\t\t...selection,\n\t\t\t};\n\n\t\t\t// Strip HTML to avoid unwanted HTML being added to the title.\n\t\t\t// In the majority of cases it is assumed that HTML in the title\n\t\t\t// is undesirable.\n\t\t\tconst contentNoHTML = stripHTML( content );\n\n\t\t\tconst newValue = insert( value, create( { html: contentNoHTML } ) );\n\t\t\tonUpdate( toHTMLString( { value: newValue } ) );\n\t\t\tsetSelection( {\n\t\t\t\tstart: newValue.start,\n\t\t\t\tend: newValue.end,\n\t\t\t} );\n\t\t}\n\t}\n\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\n\tconst { ref: richTextRef } = useRichText( {\n\t\tvalue: title,\n\t\tonChange,\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: false,\n\t} );\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = classnames( DEFAULT_CLASSNAMES, {\n\t\t'is-selected': isSelected,\n\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t} );\n\n\treturn (\n\t\t/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\t\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t\t<h1\n\t\t\t\tref={ useMergeRefs( [ richTextRef, focusRef ] ) }\n\t\t\t\tcontentEditable\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ decodedPlaceholder }\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline=\"true\"\n\t\t\t\tonFocus={ onSelect }\n\t\t\t\tonBlur={ onUnselect }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tonKeyPress={ onUnselect }\n\t\t\t\tonPaste={ onPaste }\n\t\t\t/>\n\t\t</PostTypeSupportCheck>\n\t\t/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\t);\n}\n\nexport default forwardRef( PostTitle );\n"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
var _i18n = require("@wordpress/i18n");
|
|
12
|
+
var _htmlEntities = require("@wordpress/html-entities");
|
|
13
|
+
var _data = require("@wordpress/data");
|
|
14
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
15
|
+
var _element = require("@wordpress/element");
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
var _usePostTitleFocus = _interopRequireDefault(require("./use-post-title-focus"));
|
|
18
|
+
var _usePostTitle = _interopRequireDefault(require("./use-post-title"));
|
|
19
|
+
/**
|
|
20
|
+
* External dependencies
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* WordPress dependencies
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Internal dependencies
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
function PostTitleRaw(_, forwardedRef) {
|
|
32
|
+
const {
|
|
33
|
+
placeholder,
|
|
34
|
+
hasFixedToolbar
|
|
35
|
+
} = (0, _data.useSelect)(select => {
|
|
36
|
+
const {
|
|
37
|
+
getSettings
|
|
38
|
+
} = select(_blockEditor.store);
|
|
39
|
+
const {
|
|
40
|
+
titlePlaceholder,
|
|
41
|
+
hasFixedToolbar: _hasFixedToolbar
|
|
42
|
+
} = getSettings();
|
|
43
|
+
return {
|
|
44
|
+
placeholder: titlePlaceholder,
|
|
45
|
+
hasFixedToolbar: _hasFixedToolbar
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
const [isSelected, setIsSelected] = (0, _element.useState)(false);
|
|
49
|
+
const {
|
|
50
|
+
title,
|
|
51
|
+
setTitle: onUpdate
|
|
52
|
+
} = (0, _usePostTitle.default)();
|
|
53
|
+
const {
|
|
54
|
+
ref: focusRef
|
|
55
|
+
} = (0, _usePostTitleFocus.default)(forwardedRef);
|
|
56
|
+
function onChange(value) {
|
|
57
|
+
onUpdate(value.replace(_constants.REGEXP_NEWLINES, ' '));
|
|
58
|
+
}
|
|
59
|
+
function onSelect() {
|
|
60
|
+
setIsSelected(true);
|
|
61
|
+
}
|
|
62
|
+
function onUnselect() {
|
|
63
|
+
setIsSelected(false);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// The wp-block className is important for editor styles.
|
|
67
|
+
// This same block is used in both the visual and the code editor.
|
|
68
|
+
const className = (0, _classnames.default)(_constants.DEFAULT_CLASSNAMES, {
|
|
69
|
+
'is-selected': isSelected,
|
|
70
|
+
'has-fixed-toolbar': hasFixedToolbar,
|
|
71
|
+
'is-raw-text': true
|
|
72
|
+
});
|
|
73
|
+
const decodedPlaceholder = (0, _htmlEntities.decodeEntities)(placeholder) || (0, _i18n.__)('Add title');
|
|
74
|
+
return (0, _react.createElement)(_components.TextareaControl, {
|
|
75
|
+
ref: focusRef,
|
|
76
|
+
value: title,
|
|
77
|
+
onChange: onChange,
|
|
78
|
+
onFocus: onSelect,
|
|
79
|
+
onBlur: onUnselect,
|
|
80
|
+
label: placeholder,
|
|
81
|
+
className: className,
|
|
82
|
+
placeholder: decodedPlaceholder,
|
|
83
|
+
hideLabelFromVision: true,
|
|
84
|
+
autoComplete: "off",
|
|
85
|
+
dir: "auto",
|
|
86
|
+
rows: 1,
|
|
87
|
+
__nextHasNoMarginBottom: true
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
var _default = (0, _element.forwardRef)(PostTitleRaw);
|
|
91
|
+
exports.default = _default;
|
|
92
|
+
//# sourceMappingURL=post-title-raw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_htmlEntities","_data","_blockEditor","_element","_constants","_usePostTitleFocus","_usePostTitle","PostTitleRaw","_","forwardedRef","placeholder","hasFixedToolbar","useSelect","select","getSettings","blockEditorStore","titlePlaceholder","_hasFixedToolbar","isSelected","setIsSelected","useState","title","setTitle","onUpdate","usePostTitle","ref","focusRef","usePostTitleFocus","onChange","value","replace","REGEXP_NEWLINES","onSelect","onUnselect","className","classnames","DEFAULT_CLASSNAMES","decodedPlaceholder","decodeEntities","__","_react","createElement","TextareaControl","onFocus","onBlur","label","hideLabelFromVision","autoComplete","dir","rows","__nextHasNoMarginBottom","_default","forwardRef","exports","default"],"sources":["@wordpress/editor/src/components/post-title/post-title-raw.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { TextareaControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_CLASSNAMES, REGEXP_NEWLINES } from './constants';\nimport usePostTitleFocus from './use-post-title-focus';\nimport usePostTitle from './use-post-title';\n\nfunction PostTitleRaw( _, forwardedRef ) {\n\tconst { placeholder, hasFixedToolbar } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =\n\t\t\tgetSettings();\n\n\t\treturn {\n\t\t\tplaceholder: titlePlaceholder,\n\t\t\thasFixedToolbar: _hasFixedToolbar,\n\t\t};\n\t}, [] );\n\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\n\tconst { title, setTitle: onUpdate } = usePostTitle();\n\tconst { ref: focusRef } = usePostTitleFocus( forwardedRef );\n\n\tfunction onChange( value ) {\n\t\tonUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );\n\t}\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = classnames( DEFAULT_CLASSNAMES, {\n\t\t'is-selected': isSelected,\n\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t'is-raw-text': true,\n\t} );\n\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\n\treturn (\n\t\t<TextareaControl\n\t\t\tref={ focusRef }\n\t\t\tvalue={ title }\n\t\t\tonChange={ onChange }\n\t\t\tonFocus={ onSelect }\n\t\t\tonBlur={ onUnselect }\n\t\t\tlabel={ placeholder }\n\t\t\tclassName={ className }\n\t\t\tplaceholder={ decodedPlaceholder }\n\t\t\thideLabelFromVision={ true }\n\t\t\tautoComplete=\"off\"\n\t\t\tdir=\"auto\"\n\t\t\trows={ 1 }\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PostTitleRaw );\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAKA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,aAAA,GAAAV,sBAAA,CAAAC,OAAA;AApBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;;AAKA,SAASU,YAAYA,CAAEC,CAAC,EAAEC,YAAY,EAAG;EACxC,MAAM;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACjE,MAAM;MAAEC;IAAY,CAAC,GAAGD,MAAM,CAAEE,kBAAiB,CAAC;IAClD,MAAM;MAAEC,gBAAgB;MAAEL,eAAe,EAAEM;IAAiB,CAAC,GAC5DH,WAAW,CAAC,CAAC;IAEd,OAAO;MACNJ,WAAW,EAAEM,gBAAgB;MAC7BL,eAAe,EAAEM;IAClB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM,CAAEC,UAAU,EAAEC,aAAa,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAEvD,MAAM;IAAEC,KAAK;IAAEC,QAAQ,EAAEC;EAAS,CAAC,GAAG,IAAAC,qBAAY,EAAC,CAAC;EACpD,MAAM;IAAEC,GAAG,EAAEC;EAAS,CAAC,GAAG,IAAAC,0BAAiB,EAAElB,YAAa,CAAC;EAE3D,SAASmB,QAAQA,CAAEC,KAAK,EAAG;IAC1BN,QAAQ,CAAEM,KAAK,CAACC,OAAO,CAAEC,0BAAe,EAAE,GAAI,CAAE,CAAC;EAClD;EAEA,SAASC,QAAQA,CAAA,EAAG;IACnBb,aAAa,CAAE,IAAK,CAAC;EACtB;EAEA,SAASc,UAAUA,CAAA,EAAG;IACrBd,aAAa,CAAE,KAAM,CAAC;EACvB;;EAEA;EACA;EACA,MAAMe,SAAS,GAAG,IAAAC,mBAAU,EAAEC,6BAAkB,EAAE;IACjD,aAAa,EAAElB,UAAU;IACzB,mBAAmB,EAAEP,eAAe;IACpC,aAAa,EAAE;EAChB,CAAE,CAAC;EAEH,MAAM0B,kBAAkB,GACvB,IAAAC,4BAAc,EAAE5B,WAAY,CAAC,IAAI,IAAA6B,QAAE,EAAE,WAAY,CAAC;EAEnD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAC3C,WAAA,CAAA4C,eAAe;IACfjB,GAAG,EAAGC,QAAU;IAChBG,KAAK,EAAGR,KAAO;IACfO,QAAQ,EAAGA,QAAU;IACrBe,OAAO,EAAGX,QAAU;IACpBY,MAAM,EAAGX,UAAY;IACrBY,KAAK,EAAGnC,WAAa;IACrBwB,SAAS,EAAGA,SAAW;IACvBxB,WAAW,EAAG2B,kBAAoB;IAClCS,mBAAmB,EAAG,IAAM;IAC5BC,YAAY,EAAC,KAAK;IAClBC,GAAG,EAAC,MAAM;IACVC,IAAI,EAAG,CAAG;IACVC,uBAAuB;EAAA,CACvB,CAAC;AAEJ;AAAC,IAAAC,QAAA,GAEc,IAAAC,mBAAU,EAAE7C,YAAa,CAAC;AAAA8C,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePostTitleFocus;
|
|
7
|
+
var _element = require("@wordpress/element");
|
|
8
|
+
var _data = require("@wordpress/data");
|
|
9
|
+
var _store = require("../../store");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function usePostTitleFocus(forwardedRef) {
|
|
19
|
+
const ref = (0, _element.useRef)();
|
|
20
|
+
const {
|
|
21
|
+
isCleanNewPost
|
|
22
|
+
} = (0, _data.useSelect)(select => {
|
|
23
|
+
const {
|
|
24
|
+
isCleanNewPost: _isCleanNewPost
|
|
25
|
+
} = select(_store.store);
|
|
26
|
+
return {
|
|
27
|
+
isCleanNewPost: _isCleanNewPost()
|
|
28
|
+
};
|
|
29
|
+
}, []);
|
|
30
|
+
(0, _element.useImperativeHandle)(forwardedRef, () => ({
|
|
31
|
+
focus: () => {
|
|
32
|
+
ref?.current?.focus();
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
(0, _element.useEffect)(() => {
|
|
36
|
+
if (!ref.current) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const {
|
|
40
|
+
defaultView
|
|
41
|
+
} = ref.current.ownerDocument;
|
|
42
|
+
const {
|
|
43
|
+
name,
|
|
44
|
+
parent
|
|
45
|
+
} = defaultView;
|
|
46
|
+
const ownerDocument = name === 'editor-canvas' ? parent.document : defaultView.document;
|
|
47
|
+
const {
|
|
48
|
+
activeElement,
|
|
49
|
+
body
|
|
50
|
+
} = ownerDocument;
|
|
51
|
+
|
|
52
|
+
// Only autofocus the title when the post is entirely empty. This should
|
|
53
|
+
// only happen for a new post, which means we focus the title on new
|
|
54
|
+
// post so the author can start typing right away, without needing to
|
|
55
|
+
// click anything.
|
|
56
|
+
if (isCleanNewPost && (!activeElement || body === activeElement)) {
|
|
57
|
+
ref.current.focus();
|
|
58
|
+
}
|
|
59
|
+
}, [isCleanNewPost]);
|
|
60
|
+
return {
|
|
61
|
+
ref
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=use-post-title-focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_store","usePostTitleFocus","forwardedRef","ref","useRef","isCleanNewPost","useSelect","select","_isCleanNewPost","editorStore","useImperativeHandle","focus","current","useEffect","defaultView","ownerDocument","name","parent","document","activeElement","body"],"sources":["@wordpress/editor/src/components/post-title/use-post-title-focus.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useImperativeHandle, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function usePostTitleFocus( forwardedRef ) {\n\tconst ref = useRef();\n\n\tconst { isCleanNewPost } = useSelect( ( select ) => {\n\t\tconst { isCleanNewPost: _isCleanNewPost } = select( editorStore );\n\n\t\treturn {\n\t\t\tisCleanNewPost: _isCleanNewPost(),\n\t\t};\n\t}, [] );\n\n\tuseImperativeHandle( forwardedRef, () => ( {\n\t\tfocus: () => {\n\t\t\tref?.current?.focus();\n\t\t},\n\t} ) );\n\n\tuseEffect( () => {\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = ref.current.ownerDocument;\n\t\tconst { name, parent } = defaultView;\n\t\tconst ownerDocument =\n\t\t\tname === 'editor-canvas' ? parent.document : defaultView.document;\n\t\tconst { activeElement, body } = ownerDocument;\n\n\t\t// Only autofocus the title when the post is entirely empty. This should\n\t\t// only happen for a new post, which means we focus the title on new\n\t\t// post so the author can start typing right away, without needing to\n\t\t// click anything.\n\t\tif ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {\n\t\t\tref.current.focus();\n\t\t}\n\t}, [ isCleanNewPost ] );\n\n\treturn { ref };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,iBAAiBA,CAAEC,YAAY,EAAG;EACzD,MAAMC,GAAG,GAAG,IAAAC,eAAM,EAAC,CAAC;EAEpB,MAAM;IAAEC;EAAe,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACnD,MAAM;MAAEF,cAAc,EAAEG;IAAgB,CAAC,GAAGD,MAAM,CAAEE,YAAY,CAAC;IAEjE,OAAO;MACNJ,cAAc,EAAEG,eAAe,CAAC;IACjC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAAE,4BAAmB,EAAER,YAAY,EAAE,OAAQ;IAC1CS,KAAK,EAAEA,CAAA,KAAM;MACZR,GAAG,EAAES,OAAO,EAAED,KAAK,CAAC,CAAC;IACtB;EACD,CAAC,CAAG,CAAC;EAEL,IAAAE,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEV,GAAG,CAACS,OAAO,EAAG;MACpB;IACD;IAEA,MAAM;MAAEE;IAAY,CAAC,GAAGX,GAAG,CAACS,OAAO,CAACG,aAAa;IACjD,MAAM;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGH,WAAW;IACpC,MAAMC,aAAa,GAClBC,IAAI,KAAK,eAAe,GAAGC,MAAM,CAACC,QAAQ,GAAGJ,WAAW,CAACI,QAAQ;IAClE,MAAM;MAAEC,aAAa;MAAEC;IAAK,CAAC,GAAGL,aAAa;;IAE7C;IACA;IACA;IACA;IACA,IAAKV,cAAc,KAAM,CAAEc,aAAa,IAAIC,IAAI,KAAKD,aAAa,CAAE,EAAG;MACtEhB,GAAG,CAACS,OAAO,CAACD,KAAK,CAAC,CAAC;IACpB;EACD,CAAC,EAAE,CAAEN,cAAc,CAAG,CAAC;EAEvB,OAAO;IAAEF;EAAI,CAAC;AACf"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = usePostTitle;
|
|
7
|
+
var _data = require("@wordpress/data");
|
|
8
|
+
var _store = require("../../store");
|
|
9
|
+
/**
|
|
10
|
+
* WordPress dependencies
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Internal dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function usePostTitle() {
|
|
18
|
+
const {
|
|
19
|
+
editPost
|
|
20
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
21
|
+
const {
|
|
22
|
+
title
|
|
23
|
+
} = (0, _data.useSelect)(select => {
|
|
24
|
+
const {
|
|
25
|
+
getEditedPostAttribute
|
|
26
|
+
} = select(_store.store);
|
|
27
|
+
return {
|
|
28
|
+
title: getEditedPostAttribute('title')
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
function updateTitle(newTitle) {
|
|
32
|
+
editPost({
|
|
33
|
+
title: newTitle
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
title,
|
|
38
|
+
setTitle: updateTitle
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=use-post-title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_data","require","_store","usePostTitle","editPost","useDispatch","editorStore","title","useSelect","select","getEditedPostAttribute","updateTitle","newTitle","setTitle"],"sources":["@wordpress/editor/src/components/post-title/use-post-title.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function usePostTitle() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { title } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t};\n\t}, [] );\n\n\tfunction updateTitle( newTitle ) {\n\t\teditPost( { title: newTitle } );\n\t}\n\n\treturn { title, setTitle: updateTitle };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAIA,IAAAC,MAAA,GAAAD,OAAA;AAPA;AACA;AACA;;AAEA;AACA;AACA;;AAGe,SAASE,YAAYA,CAAA,EAAG;EACtC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAY,CAAC;EAC/C,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC1C,MAAM;MAAEC;IAAuB,CAAC,GAAGD,MAAM,CAAEH,YAAY,CAAC;IAExD,OAAO;MACNC,KAAK,EAAEG,sBAAsB,CAAE,OAAQ;IACxC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,SAASC,WAAWA,CAAEC,QAAQ,EAAG;IAChCR,QAAQ,CAAE;MAAEG,KAAK,EAAEK;IAAS,CAAE,CAAC;EAChC;EAEA,OAAO;IAAEL,KAAK;IAAEM,QAAQ,EAAEF;EAAY,CAAC;AACxC"}
|
|
@@ -12,6 +12,7 @@ var _i18n = require("@wordpress/i18n");
|
|
|
12
12
|
var _check = _interopRequireDefault(require("./check"));
|
|
13
13
|
var _index = _interopRequireDefault(require("./index"));
|
|
14
14
|
var _label = require("./label");
|
|
15
|
+
var _postPanelRow = _interopRequireDefault(require("../post-panel-row"));
|
|
15
16
|
/**
|
|
16
17
|
* WordPress dependencies
|
|
17
18
|
*/
|
|
@@ -29,10 +30,10 @@ function PostURLPanel() {
|
|
|
29
30
|
anchor: popoverAnchor,
|
|
30
31
|
placement: 'bottom-end'
|
|
31
32
|
}), [popoverAnchor]);
|
|
32
|
-
return (0, _react.createElement)(_check.default, null, (0, _react.createElement)(
|
|
33
|
-
|
|
33
|
+
return (0, _react.createElement)(_check.default, null, (0, _react.createElement)(_postPanelRow.default, {
|
|
34
|
+
label: (0, _i18n.__)('URL'),
|
|
34
35
|
ref: setPopoverAnchor
|
|
35
|
-
}, (0, _react.createElement)(
|
|
36
|
+
}, (0, _react.createElement)(_components.Dropdown, {
|
|
36
37
|
popoverProps: popoverProps,
|
|
37
38
|
className: "editor-post-url__panel-dropdown",
|
|
38
39
|
contentClassName: "editor-post-url__panel-dialog",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_i18n","_check","_interopRequireDefault","_index","_label","PostURLPanel","popoverAnchor","setPopoverAnchor","useState","popoverProps","useMemo","anchor","placement","_react","createElement","default","
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_i18n","_check","_interopRequireDefault","_index","_label","_postPanelRow","PostURLPanel","popoverAnchor","setPopoverAnchor","useState","popoverProps","useMemo","anchor","placement","_react","createElement","default","label","__","ref","Dropdown","className","contentClassName","focusOnMount","renderToggle","isOpen","onToggle","PostURLToggle","onClick","renderContent","onClose","usePostURLLabel","Button","variant","sprintf"],"sources":["@wordpress/editor/src/components/post-url/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PostURLCheck from './check';\nimport PostURL from './index';\nimport { usePostURLLabel } from './label';\nimport PostPanelRow from '../post-panel-row';\n\nexport default function PostURLPanel() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor, placement: 'bottom-end' } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<PostURLCheck>\n\t\t\t<PostPanelRow label={ __( 'URL' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tclassName=\"editor-post-url__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-url__panel-dialog\"\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<PostURLToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostURL onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostURLCheck>\n\t);\n}\n\nfunction PostURLToggle( { isOpen, onClick } ) {\n\tconst label = usePostURLLabel();\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"editor-post-url__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\t// translators: %s: Current post URL.\n\t\t\taria-label={ sprintf( __( 'Change URL: %s' ), label ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAKA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAH,sBAAA,CAAAJ,OAAA;AAbA;AACA;AACA;;AAKA;AACA;AACA;;AAMe,SAASQ,YAAYA,CAAA,EAAG;EACtC;EACA;EACA,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAC5D;EACA,MAAMC,YAAY,GAAG,IAAAC,gBAAO,EAC3B,OAAQ;IAAEC,MAAM,EAAEL,aAAa;IAAEM,SAAS,EAAE;EAAa,CAAC,CAAE,EAC5D,CAAEN,aAAa,CAChB,CAAC;EAED,OACC,IAAAO,MAAA,CAAAC,aAAA,EAACd,MAAA,CAAAe,OAAY,QACZ,IAAAF,MAAA,CAAAC,aAAA,EAACV,aAAA,CAAAW,OAAY;IAACC,KAAK,EAAG,IAAAC,QAAE,EAAE,KAAM,CAAG;IAACC,GAAG,EAAGX;EAAkB,GAC3D,IAAAM,MAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAqB,QAAQ;IACRV,YAAY,EAAGA,YAAc;IAC7BW,SAAS,EAAC,iCAAiC;IAC3CC,gBAAgB,EAAC,+BAA+B;IAChDC,YAAY;IACZC,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,KACpC,IAAAZ,MAAA,CAAAC,aAAA,EAACY,aAAa;MAACF,MAAM,EAAGA,MAAQ;MAACG,OAAO,EAAGF;IAAU,CAAE,CACrD;IACHG,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5B,IAAAhB,MAAA,CAAAC,aAAA,EAACZ,MAAA,CAAAa,OAAO;MAACc,OAAO,EAAGA;IAAS,CAAE;EAC5B,CACH,CACY,CACD,CAAC;AAEjB;AAEA,SAASH,aAAaA,CAAE;EAAEF,MAAM;EAAEG;AAAQ,CAAC,EAAG;EAC7C,MAAMX,KAAK,GAAG,IAAAc,sBAAe,EAAC,CAAC;EAC/B,OACC,IAAAjB,MAAA,CAAAC,aAAA,EAAChB,WAAA,CAAAiC,MAAM;IACNX,SAAS,EAAC,+BAA+B;IACzCY,OAAO,EAAC,UAAU;IAClB,iBAAgBR;IAChB;IAAA;IACA,cAAa,IAAAS,aAAO,EAAE,IAAAhB,QAAE,EAAE,gBAAiB,CAAC,EAAED,KAAM,CAAG;IACvDW,OAAO,EAAGA;EAAS,GAEjBX,KACK,CAAC;AAEX"}
|