@wordpress/editor 12.12.0 → 12.14.1-next.d6164808d3.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 +4 -0
- package/build/components/editor-history/redo.js +2 -1
- package/build/components/editor-history/redo.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +11 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/page-attributes/parent.js +6 -2
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-locked-modal/index.js +1 -1
- package/build/components/post-locked-modal/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-category-panel.js +2 -4
- package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +7 -1
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-title/index.js +22 -2
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/post-url/label.js +1 -1
- package/build/components/post-url/label.js.map +1 -1
- package/build/components/provider/index.native.js +3 -1
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +2 -2
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/hooks/custom-sources-backwards-compatibility.js +8 -5
- package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
- package/build/store/actions.js +1 -7
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +17 -9
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +37 -17
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/editor-history/redo.js +3 -2
- package/build-module/components/editor-history/redo.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +10 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +4 -3
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-locked-modal/index.js +1 -1
- package/build-module/components/post-locked-modal/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-category-panel.js +2 -4
- package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +8 -2
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-title/index.js +23 -3
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/post-url/label.js +2 -2
- package/build-module/components/post-url/label.js.map +1 -1
- package/build-module/components/provider/index.native.js +3 -1
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +2 -2
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/hooks/custom-sources-backwards-compatibility.js +9 -6
- package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
- package/build-module/store/actions.js +1 -6
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +17 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +37 -16
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +3 -0
- package/build-style/style.css +3 -0
- package/package.json +30 -29
- package/src/components/README.md +1 -1
- package/src/components/editor-history/redo.js +6 -2
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +13 -0
- package/src/components/page-attributes/parent.js +4 -9
- package/src/components/post-author/test/check.js +7 -7
- package/src/components/post-last-revision/test/check.js +7 -7
- package/src/components/post-locked-modal/index.js +1 -1
- package/src/components/post-pending-status/test/check.js +5 -5
- package/src/components/post-publish-panel/maybe-category-panel.js +3 -5
- package/src/components/post-schedule/test/check.js +5 -5
- package/src/components/post-slug/test/check.js +3 -3
- package/src/components/post-sticky/test/index.js +11 -7
- package/src/components/post-taxonomies/flat-term-selector.js +10 -2
- package/src/components/post-title/index.js +23 -3
- package/src/components/post-trash/style.scss +3 -0
- package/src/components/post-url/label.js +2 -2
- package/src/components/post-visibility/test/check.js +16 -8
- package/src/components/provider/index.native.js +3 -1
- package/src/components/provider/use-block-editor-settings.js +6 -1
- package/src/hooks/custom-sources-backwards-compatibility.js +14 -12
- package/src/store/actions.js +1 -6
- package/src/store/reducer.js +16 -10
- package/src/store/selectors.js +30 -29
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { pickBy, mapValues, isEmpty
|
|
4
|
+
import { pickBy, mapValues, isEmpty } from 'lodash';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -69,17 +69,19 @@ const createWithMetaAttributeSource = ( metaAttributes ) =>
|
|
|
69
69
|
<BlockEdit
|
|
70
70
|
attributes={ mergedAttributes }
|
|
71
71
|
setAttributes={ ( nextAttributes ) => {
|
|
72
|
-
const nextMeta =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
metaAttributes[ attributeKey ]
|
|
72
|
+
const nextMeta = Object.fromEntries(
|
|
73
|
+
Object.entries(
|
|
74
|
+
// Filter to intersection of keys between the updated
|
|
75
|
+
// attributes and those with an associated meta key.
|
|
76
|
+
pickBy(
|
|
77
|
+
nextAttributes,
|
|
78
|
+
( value, key ) => metaAttributes[ key ]
|
|
79
|
+
)
|
|
80
|
+
).map( ( [ attributeKey, value ] ) => [
|
|
81
|
+
// Rename the keys to the expected meta key name.
|
|
82
|
+
metaAttributes[ attributeKey ],
|
|
83
|
+
value,
|
|
84
|
+
] )
|
|
83
85
|
);
|
|
84
86
|
|
|
85
87
|
if ( ! isEmpty( nextMeta ) ) {
|
package/src/store/actions.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { has } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -48,7 +43,7 @@ export const setupEditor =
|
|
|
48
43
|
// included as part of editor setup action. Assume edited content as
|
|
49
44
|
// canonical if provided, falling back to post.
|
|
50
45
|
let content;
|
|
51
|
-
if (
|
|
46
|
+
if ( 'content' in edits ) {
|
|
52
47
|
content = edits.content;
|
|
53
48
|
} else {
|
|
54
49
|
content = post.content.raw;
|
package/src/store/reducer.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { omit, isEqual } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -39,7 +34,12 @@ export function getPostRawValue( value ) {
|
|
|
39
34
|
* @return {boolean} Whether the two objects have the same keys.
|
|
40
35
|
*/
|
|
41
36
|
export function hasSameKeys( a, b ) {
|
|
42
|
-
|
|
37
|
+
const keysA = Object.keys( a ).sort();
|
|
38
|
+
const keysB = Object.keys( b ).sort();
|
|
39
|
+
return (
|
|
40
|
+
keysA.length === keysB.length &&
|
|
41
|
+
keysA.every( ( key, index ) => keysB[ index ] === key )
|
|
42
|
+
);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -184,8 +184,11 @@ export function postSavingLock( state = {}, action ) {
|
|
|
184
184
|
case 'LOCK_POST_SAVING':
|
|
185
185
|
return { ...state, [ action.lockName ]: true };
|
|
186
186
|
|
|
187
|
-
case 'UNLOCK_POST_SAVING':
|
|
188
|
-
|
|
187
|
+
case 'UNLOCK_POST_SAVING': {
|
|
188
|
+
const { [ action.lockName ]: removedLockName, ...restState } =
|
|
189
|
+
state;
|
|
190
|
+
return restState;
|
|
191
|
+
}
|
|
189
192
|
}
|
|
190
193
|
return state;
|
|
191
194
|
}
|
|
@@ -205,8 +208,11 @@ export function postAutosavingLock( state = {}, action ) {
|
|
|
205
208
|
case 'LOCK_POST_AUTOSAVING':
|
|
206
209
|
return { ...state, [ action.lockName ]: true };
|
|
207
210
|
|
|
208
|
-
case 'UNLOCK_POST_AUTOSAVING':
|
|
209
|
-
|
|
211
|
+
case 'UNLOCK_POST_AUTOSAVING': {
|
|
212
|
+
const { [ action.lockName ]: removedLockName, ...restState } =
|
|
213
|
+
state;
|
|
214
|
+
return restState;
|
|
215
|
+
}
|
|
210
216
|
}
|
|
211
217
|
return state;
|
|
212
218
|
}
|
package/src/store/selectors.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { find, get, has, includes, some } from 'lodash';
|
|
5
4
|
import createSelector from 'rememo';
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -149,8 +148,7 @@ export const hasNonPostEntityChanges = createRegistrySelector(
|
|
|
149
148
|
const dirtyEntityRecords =
|
|
150
149
|
select( coreStore ).__experimentalGetDirtyEntityRecords();
|
|
151
150
|
const { type, id } = getCurrentPost( state );
|
|
152
|
-
return some(
|
|
153
|
-
dirtyEntityRecords,
|
|
151
|
+
return dirtyEntityRecords.some(
|
|
154
152
|
( entityRecord ) =>
|
|
155
153
|
entityRecord.kind !== 'postType' ||
|
|
156
154
|
entityRecord.name !== type ||
|
|
@@ -232,10 +230,8 @@ export function getCurrentPostId( state ) {
|
|
|
232
230
|
* @return {number} Number of revisions.
|
|
233
231
|
*/
|
|
234
232
|
export function getCurrentPostRevisionsCount( state ) {
|
|
235
|
-
return
|
|
236
|
-
getCurrentPost( state )
|
|
237
|
-
[ '_links', 'version-history', 0, 'count' ],
|
|
238
|
-
0
|
|
233
|
+
return (
|
|
234
|
+
getCurrentPost( state )._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0
|
|
239
235
|
);
|
|
240
236
|
}
|
|
241
237
|
|
|
@@ -248,9 +244,8 @@ export function getCurrentPostRevisionsCount( state ) {
|
|
|
248
244
|
* @return {?number} ID of the last revision.
|
|
249
245
|
*/
|
|
250
246
|
export function getCurrentPostLastRevisionId( state ) {
|
|
251
|
-
return
|
|
252
|
-
getCurrentPost( state )
|
|
253
|
-
[ '_links', 'predecessor-version', 0, 'id' ],
|
|
247
|
+
return (
|
|
248
|
+
getCurrentPost( state )._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ??
|
|
254
249
|
null
|
|
255
250
|
);
|
|
256
251
|
}
|
|
@@ -371,7 +366,7 @@ export function getEditedPostAttribute( state, attributeName ) {
|
|
|
371
366
|
export const getAutosaveAttribute = createRegistrySelector(
|
|
372
367
|
( select ) => ( state, attributeName ) => {
|
|
373
368
|
if (
|
|
374
|
-
! includes(
|
|
369
|
+
! AUTOSAVE_PROPERTIES.includes( attributeName ) &&
|
|
375
370
|
attributeName !== 'preview_link'
|
|
376
371
|
) {
|
|
377
372
|
return;
|
|
@@ -379,9 +374,7 @@ export const getAutosaveAttribute = createRegistrySelector(
|
|
|
379
374
|
|
|
380
375
|
const postType = getCurrentPostType( state );
|
|
381
376
|
const postId = getCurrentPostId( state );
|
|
382
|
-
const currentUserId =
|
|
383
|
-
'id',
|
|
384
|
-
] );
|
|
377
|
+
const currentUserId = select( coreStore ).getCurrentUser()?.id;
|
|
385
378
|
const autosave = select( coreStore ).getAutosave(
|
|
386
379
|
postType,
|
|
387
380
|
postId,
|
|
@@ -534,7 +527,7 @@ export function isEditedPostEmpty( state ) {
|
|
|
534
527
|
|
|
535
528
|
if ( blocks.length ) {
|
|
536
529
|
// Pierce the abstraction of the serializer in knowing that blocks are
|
|
537
|
-
// joined with
|
|
530
|
+
// joined with newlines such that even if every individual block
|
|
538
531
|
// produces an empty save result, the serialized content is non-empty.
|
|
539
532
|
if ( blocks.length > 1 ) {
|
|
540
533
|
return false;
|
|
@@ -589,9 +582,7 @@ export const isEditedPostAutosaveable = createRegistrySelector(
|
|
|
589
582
|
postType,
|
|
590
583
|
postId
|
|
591
584
|
);
|
|
592
|
-
const currentUserId =
|
|
593
|
-
'id',
|
|
594
|
-
] );
|
|
585
|
+
const currentUserId = select( coreStore ).getCurrentUser()?.id;
|
|
595
586
|
|
|
596
587
|
// Disable reason - this line causes the side-effect of fetching the autosave
|
|
597
588
|
// via a resolver, moving below the return would result in the autosave never
|
|
@@ -710,8 +701,7 @@ export const isSavingNonPostEntityChanges = createRegistrySelector(
|
|
|
710
701
|
const entitiesBeingSaved =
|
|
711
702
|
select( coreStore ).__experimentalGetEntitiesBeingSaved();
|
|
712
703
|
const { type, id } = getCurrentPost( state );
|
|
713
|
-
return some(
|
|
714
|
-
entitiesBeingSaved,
|
|
704
|
+
return entitiesBeingSaved.some(
|
|
715
705
|
( entityRecord ) =>
|
|
716
706
|
entityRecord.kind !== 'postType' ||
|
|
717
707
|
entityRecord.name !== type ||
|
|
@@ -771,7 +761,7 @@ export function isAutosavingPost( state ) {
|
|
|
771
761
|
if ( ! isSavingPost( state ) ) {
|
|
772
762
|
return false;
|
|
773
763
|
}
|
|
774
|
-
return
|
|
764
|
+
return Boolean( state.saving.options?.isAutosave );
|
|
775
765
|
}
|
|
776
766
|
|
|
777
767
|
/**
|
|
@@ -785,7 +775,7 @@ export function isPreviewingPost( state ) {
|
|
|
785
775
|
if ( ! isSavingPost( state ) ) {
|
|
786
776
|
return false;
|
|
787
777
|
}
|
|
788
|
-
return
|
|
778
|
+
return Boolean( state.saving.options?.isPreview );
|
|
789
779
|
}
|
|
790
780
|
|
|
791
781
|
/**
|
|
@@ -1081,10 +1071,11 @@ export function getActivePostLock( state ) {
|
|
|
1081
1071
|
* @return {boolean} Whether the user can or can't post unfiltered HTML.
|
|
1082
1072
|
*/
|
|
1083
1073
|
export function canUserUseUnfilteredHTML( state ) {
|
|
1084
|
-
return
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1074
|
+
return Boolean(
|
|
1075
|
+
getCurrentPost( state )._links?.hasOwnProperty(
|
|
1076
|
+
'wp:action-unfiltered-html'
|
|
1077
|
+
)
|
|
1078
|
+
);
|
|
1088
1079
|
}
|
|
1089
1080
|
|
|
1090
1081
|
/**
|
|
@@ -1583,8 +1574,18 @@ export const __experimentalGetDefaultTemplatePartAreas = createSelector(
|
|
|
1583
1574
|
* @return {Object} The template type.
|
|
1584
1575
|
*/
|
|
1585
1576
|
export const __experimentalGetDefaultTemplateType = createSelector(
|
|
1586
|
-
( state, slug ) =>
|
|
1587
|
-
|
|
1577
|
+
( state, slug ) => {
|
|
1578
|
+
const templateTypes = __experimentalGetDefaultTemplateTypes( state );
|
|
1579
|
+
if ( ! templateTypes ) {
|
|
1580
|
+
return EMPTY_OBJECT;
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
return (
|
|
1584
|
+
Object.values( templateTypes ).find(
|
|
1585
|
+
( type ) => type.slug === slug
|
|
1586
|
+
) ?? EMPTY_OBJECT
|
|
1587
|
+
);
|
|
1588
|
+
},
|
|
1588
1589
|
( state, slug ) => [ __experimentalGetDefaultTemplateTypes( state ), slug ]
|
|
1589
1590
|
);
|
|
1590
1591
|
|
|
@@ -1598,7 +1599,7 @@ export const __experimentalGetDefaultTemplateType = createSelector(
|
|
|
1598
1599
|
*/
|
|
1599
1600
|
export function __experimentalGetTemplateInfo( state, template ) {
|
|
1600
1601
|
if ( ! template ) {
|
|
1601
|
-
return
|
|
1602
|
+
return EMPTY_OBJECT;
|
|
1602
1603
|
}
|
|
1603
1604
|
|
|
1604
1605
|
const { description, slug, title, area } = template;
|