@wordpress/block-library 9.31.1-next.f56bd8138.0 → 9.32.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/accordion/edit.js +62 -12
- package/build/accordion/edit.js.map +1 -1
- package/build/accordion/index.js +15 -8
- package/build/accordion/index.js.map +1 -1
- package/build/accordion/view.js +15 -15
- package/build/accordion/view.js.map +1 -1
- package/build/accordion-heading/edit.js +68 -0
- package/build/accordion-heading/edit.js.map +1 -0
- package/build/accordion-heading/icon.js.map +1 -0
- package/build/{accordion-header → accordion-heading}/index.js +9 -17
- package/build/accordion-heading/index.js.map +1 -0
- package/build/{accordion-content → accordion-heading}/init.js.map +1 -1
- package/build/{accordion-header → accordion-heading}/save.js +7 -20
- package/build/accordion-heading/save.js.map +1 -0
- package/build/{accordion-content → accordion-item}/edit.js +8 -2
- package/build/accordion-item/edit.js.map +1 -0
- package/build/accordion-item/icon.js.map +1 -0
- package/build/{accordion-content → accordion-item}/index.js +6 -5
- package/build/accordion-item/index.js.map +1 -0
- package/build/accordion-item/init.js.map +1 -0
- package/build/{accordion-content → accordion-item}/save.js +5 -7
- package/build/accordion-item/save.js.map +1 -0
- package/build/accordion-panel/edit.js +2 -1
- package/build/accordion-panel/edit.js.map +1 -1
- package/build/accordion-panel/index.js +5 -3
- package/build/accordion-panel/index.js.map +1 -1
- package/build/accordion-panel/save.js +3 -1
- package/build/accordion-panel/save.js.map +1 -1
- package/build/block/index.js +1 -0
- package/build/block/index.js.map +1 -1
- package/build/group/variations.js +3 -4
- package/build/group/variations.js.map +1 -1
- package/build/index.js +24 -4
- package/build/index.js.map +1 -1
- package/build/navigation/edit/leaf-more-menu.js +6 -1
- package/build/navigation/edit/leaf-more-menu.js.map +1 -1
- package/build/navigation-link/edit.js +3 -140
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/shared/controls.js +171 -0
- package/build/navigation-link/shared/controls.js.map +1 -0
- package/build/navigation-link/shared/index.js +13 -0
- package/build/navigation-link/shared/index.js.map +1 -0
- package/build/navigation-submenu/edit.js +7 -114
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/index.js +1 -0
- package/build/pattern/index.js.map +1 -1
- package/build/post-date/edit.js +16 -3
- package/build/post-date/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +27 -15
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +7 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/post-time-to-read/variations.js +41 -0
- package/build/post-time-to-read/variations.js.map +1 -0
- package/build/query-title/edit.js +1 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/table-of-contents/index.js +1 -0
- package/build/table-of-contents/index.js.map +1 -1
- package/build/template-part/index.js +1 -0
- package/build/template-part/index.js.map +1 -1
- package/build/utils/get-transformed-metadata.js +7 -0
- package/build/utils/get-transformed-metadata.js.map +1 -1
- package/build-module/accordion/edit.js +66 -16
- package/build-module/accordion/edit.js.map +1 -1
- package/build-module/accordion/index.js +15 -8
- package/build-module/accordion/index.js.map +1 -1
- package/build-module/accordion/view.js +15 -15
- package/build-module/accordion/view.js.map +1 -1
- package/build-module/accordion-heading/edit.js +61 -0
- package/build-module/accordion-heading/edit.js.map +1 -0
- package/build-module/accordion-heading/icon.js.map +1 -0
- package/build-module/{accordion-header → accordion-heading}/index.js +9 -17
- package/build-module/accordion-heading/index.js.map +1 -0
- package/build-module/{accordion-content → accordion-heading}/init.js.map +1 -1
- package/build-module/{accordion-header → accordion-heading}/save.js +7 -18
- package/build-module/accordion-heading/save.js.map +1 -0
- package/build-module/{accordion-content → accordion-item}/edit.js +8 -2
- package/build-module/accordion-item/edit.js.map +1 -0
- package/build-module/accordion-item/icon.js.map +1 -0
- package/build-module/{accordion-content → accordion-item}/index.js +6 -5
- package/build-module/accordion-item/index.js.map +1 -0
- package/build-module/accordion-item/init.js.map +1 -0
- package/build-module/{accordion-content → accordion-item}/save.js +5 -7
- package/build-module/accordion-item/save.js.map +1 -0
- package/build-module/accordion-panel/edit.js +2 -1
- package/build-module/accordion-panel/edit.js.map +1 -1
- package/build-module/accordion-panel/index.js +5 -3
- package/build-module/accordion-panel/index.js.map +1 -1
- package/build-module/accordion-panel/save.js +3 -1
- package/build-module/accordion-panel/save.js.map +1 -1
- package/build-module/block/index.js +1 -0
- package/build-module/block/index.js.map +1 -1
- package/build-module/group/variations.js +3 -4
- package/build-module/group/variations.js.map +1 -1
- package/build-module/index.js +25 -5
- package/build-module/index.js.map +1 -1
- package/build-module/navigation/edit/leaf-more-menu.js +6 -1
- package/build-module/navigation/edit/leaf-more-menu.js.map +1 -1
- package/build-module/navigation-link/edit.js +4 -141
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/shared/controls.js +165 -0
- package/build-module/navigation-link/shared/controls.js.map +1 -0
- package/build-module/navigation-link/shared/index.js +9 -0
- package/build-module/navigation-link/shared/index.js.map +1 -0
- package/build-module/navigation-submenu/edit.js +7 -114
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/index.js +1 -0
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/post-date/edit.js +17 -4
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +27 -15
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +7 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/post-time-to-read/variations.js +33 -0
- package/build-module/post-time-to-read/variations.js.map +1 -0
- package/build-module/query-title/edit.js +1 -1
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/table-of-contents/index.js +1 -0
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/template-part/index.js +1 -0
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/utils/get-transformed-metadata.js +7 -0
- package/build-module/utils/get-transformed-metadata.js.map +1 -1
- package/build-style/{accordion → accordion-heading}/style-rtl.css +9 -54
- package/build-style/{accordion → accordion-heading}/style.css +9 -54
- package/build-style/accordion-item/style-rtl.css +155 -0
- package/build-style/accordion-item/style.css +155 -0
- package/build-style/accordion-panel/style-rtl.css +140 -0
- package/build-style/accordion-panel/style.css +140 -0
- package/build-style/style-rtl.css +23 -42
- package/build-style/style.css +23 -42
- package/package.json +35 -35
- package/src/accordion/block.json +11 -4
- package/src/accordion/edit.js +70 -13
- package/src/accordion/index.js +4 -4
- package/src/accordion/index.php +1 -1
- package/src/accordion/view.js +15 -15
- package/src/{accordion-header → accordion-heading}/block.json +10 -17
- package/src/accordion-heading/edit.js +70 -0
- package/src/{accordion-header → accordion-heading}/save.js +8 -18
- package/src/accordion-heading/style.scss +43 -0
- package/src/{accordion-content → accordion-item}/block.json +6 -5
- package/src/{accordion-content → accordion-item}/edit.js +12 -2
- package/src/{accordion-content → accordion-item}/index.php +11 -11
- package/src/{accordion-content → accordion-item}/save.js +4 -10
- package/src/accordion-item/style.scss +21 -0
- package/src/accordion-panel/block.json +5 -3
- package/src/accordion-panel/edit.js +1 -0
- package/src/accordion-panel/save.js +3 -1
- package/src/accordion-panel/style.scss +8 -0
- package/src/block/block.json +1 -0
- package/src/comments/index.php +2 -2
- package/src/group/variations.js +3 -14
- package/src/index.js +23 -4
- package/src/navigation/edit/leaf-more-menu.js +9 -1
- package/src/navigation/index.php +2 -2
- package/src/navigation-link/edit.js +3 -142
- package/src/navigation-link/shared/README.md +47 -0
- package/src/navigation-link/shared/controls.js +167 -0
- package/src/navigation-link/shared/index.js +8 -0
- package/src/navigation-link/shared/test/controls.js +210 -0
- package/src/navigation-submenu/edit.js +8 -129
- package/src/pattern/block.json +1 -0
- package/src/post-date/edit.js +16 -16
- package/src/post-time-to-read/block.json +5 -1
- package/src/post-time-to-read/edit.js +87 -59
- package/src/post-time-to-read/index.js +2 -0
- package/src/post-time-to-read/index.php +48 -23
- package/src/post-time-to-read/variations.js +39 -0
- package/src/query-title/edit.js +2 -1
- package/src/query-title/index.php +3 -1
- package/src/social-link/index.php +2 -2
- package/src/style.scss +3 -1
- package/src/table-of-contents/block.json +1 -0
- package/src/table-of-contents/index.php +44 -0
- package/src/template-part/block.json +1 -0
- package/src/utils/get-transformed-metadata.js +8 -0
- package/build/accordion-content/edit.js.map +0 -1
- package/build/accordion-content/icon.js.map +0 -1
- package/build/accordion-content/index.js.map +0 -1
- package/build/accordion-content/save.js.map +0 -1
- package/build/accordion-header/edit.js +0 -94
- package/build/accordion-header/edit.js.map +0 -1
- package/build/accordion-header/icon.js.map +0 -1
- package/build/accordion-header/index.js.map +0 -1
- package/build/accordion-header/init.js.map +0 -1
- package/build/accordion-header/save.js.map +0 -1
- package/build-module/accordion-content/edit.js.map +0 -1
- package/build-module/accordion-content/icon.js.map +0 -1
- package/build-module/accordion-content/index.js.map +0 -1
- package/build-module/accordion-content/save.js.map +0 -1
- package/build-module/accordion-header/edit.js +0 -85
- package/build-module/accordion-header/edit.js.map +0 -1
- package/build-module/accordion-header/icon.js.map +0 -1
- package/build-module/accordion-header/index.js.map +0 -1
- package/build-module/accordion-header/init.js.map +0 -1
- package/build-module/accordion-header/save.js.map +0 -1
- package/src/accordion/style.scss +0 -90
- package/src/accordion-header/edit.js +0 -94
- /package/build/{accordion-header → accordion-heading}/icon.js +0 -0
- /package/build/{accordion-content → accordion-heading}/init.js +0 -0
- /package/build/{accordion-content → accordion-item}/icon.js +0 -0
- /package/build/{accordion-header → accordion-item}/init.js +0 -0
- /package/build-module/{accordion-header → accordion-heading}/icon.js +0 -0
- /package/build-module/{accordion-content → accordion-heading}/init.js +0 -0
- /package/build-module/{accordion-content → accordion-item}/icon.js +0 -0
- /package/build-module/{accordion-header → accordion-item}/init.js +0 -0
- /package/src/{accordion-header → accordion-heading}/icon.js +0 -0
- /package/src/{accordion-content → accordion-heading}/index.js +0 -0
- /package/src/{accordion-content → accordion-heading}/init.js +0 -0
- /package/src/{accordion-content → accordion-item}/icon.js +0 -0
- /package/src/{accordion-header → accordion-item}/index.js +0 -0
- /package/src/{accordion-header → accordion-item}/init.js +0 -0
|
@@ -20,8 +20,9 @@ var _compose = require("@wordpress/compose");
|
|
|
20
20
|
var _icons2 = require("./icons");
|
|
21
21
|
var _linkUi = require("../navigation-link/link-ui");
|
|
22
22
|
var _updateAttributes = require("../navigation-link/update-attributes");
|
|
23
|
+
var _shared = require("../navigation-link/shared");
|
|
23
24
|
var _utils = require("../navigation/edit/utils");
|
|
24
|
-
var
|
|
25
|
+
var _constants = require("../navigation/constants");
|
|
25
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
27
|
/**
|
|
27
28
|
* External dependencies
|
|
@@ -36,9 +37,6 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
36
37
|
*/
|
|
37
38
|
|
|
38
39
|
const ALLOWED_BLOCKS = ['core/navigation-link', 'core/navigation-submenu', 'core/page-list'];
|
|
39
|
-
const DEFAULT_BLOCK = {
|
|
40
|
-
name: 'core/navigation-link'
|
|
41
|
-
};
|
|
42
40
|
|
|
43
41
|
/**
|
|
44
42
|
* A React hook to determine if it's dragging within the target element.
|
|
@@ -118,9 +116,7 @@ function NavigationSubmenuEdit({
|
|
|
118
116
|
const {
|
|
119
117
|
label,
|
|
120
118
|
url,
|
|
121
|
-
description
|
|
122
|
-
rel,
|
|
123
|
-
opensInNewTab
|
|
119
|
+
description
|
|
124
120
|
} = attributes;
|
|
125
121
|
const {
|
|
126
122
|
showSubmenuIcon,
|
|
@@ -142,7 +138,6 @@ function NavigationSubmenuEdit({
|
|
|
142
138
|
const isDraggingWithin = useIsDraggingWithin(listItemRef);
|
|
143
139
|
const itemLabelPlaceholder = (0, _i18n.__)('Add text…');
|
|
144
140
|
const ref = (0, _element.useRef)();
|
|
145
|
-
const dropdownMenuProps = (0, _hooks.useToolsPanelDropdownMenuProps)();
|
|
146
141
|
const {
|
|
147
142
|
parentCount,
|
|
148
143
|
isParentOfSelectedBlock,
|
|
@@ -274,7 +269,7 @@ function NavigationSubmenuEdit({
|
|
|
274
269
|
const navigationChildBlockProps = (0, _utils.getNavigationChildBlockProps)(innerBlocksColors);
|
|
275
270
|
const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(navigationChildBlockProps, {
|
|
276
271
|
allowedBlocks,
|
|
277
|
-
defaultBlock: DEFAULT_BLOCK,
|
|
272
|
+
defaultBlock: _constants.DEFAULT_BLOCK,
|
|
278
273
|
directInsert: true,
|
|
279
274
|
// Ensure block toolbar is not too far removed from item
|
|
280
275
|
// being edited.
|
|
@@ -321,111 +316,9 @@ function NavigationSubmenuEdit({
|
|
|
321
316
|
})]
|
|
322
317
|
})
|
|
323
318
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
|
|
324
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
setAttributes({
|
|
328
|
-
label: '',
|
|
329
|
-
url: '',
|
|
330
|
-
description: '',
|
|
331
|
-
rel: '',
|
|
332
|
-
opensInNewTab: false
|
|
333
|
-
});
|
|
334
|
-
},
|
|
335
|
-
dropdownMenuProps: dropdownMenuProps,
|
|
336
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
337
|
-
label: (0, _i18n.__)('Text'),
|
|
338
|
-
isShownByDefault: true,
|
|
339
|
-
hasValue: () => !!label,
|
|
340
|
-
onDeselect: () => setAttributes({
|
|
341
|
-
label: ''
|
|
342
|
-
}),
|
|
343
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
344
|
-
__nextHasNoMarginBottom: true,
|
|
345
|
-
__next40pxDefaultSize: true,
|
|
346
|
-
value: label || '',
|
|
347
|
-
onChange: labelValue => {
|
|
348
|
-
setAttributes({
|
|
349
|
-
label: labelValue
|
|
350
|
-
});
|
|
351
|
-
},
|
|
352
|
-
label: (0, _i18n.__)('Text'),
|
|
353
|
-
autoComplete: "off"
|
|
354
|
-
})
|
|
355
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
356
|
-
label: (0, _i18n.__)('Link'),
|
|
357
|
-
isShownByDefault: true,
|
|
358
|
-
hasValue: () => !!url,
|
|
359
|
-
onDeselect: () => setAttributes({
|
|
360
|
-
url: ''
|
|
361
|
-
}),
|
|
362
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
363
|
-
__nextHasNoMarginBottom: true,
|
|
364
|
-
__next40pxDefaultSize: true,
|
|
365
|
-
value: url || '',
|
|
366
|
-
onChange: urlValue => {
|
|
367
|
-
setAttributes({
|
|
368
|
-
url: urlValue
|
|
369
|
-
});
|
|
370
|
-
},
|
|
371
|
-
label: (0, _i18n.__)('Link'),
|
|
372
|
-
autoComplete: "off",
|
|
373
|
-
type: "url"
|
|
374
|
-
})
|
|
375
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
376
|
-
hasValue: () => !!opensInNewTab,
|
|
377
|
-
label: (0, _i18n.__)('Open in new tab'),
|
|
378
|
-
onDeselect: () => setAttributes({
|
|
379
|
-
opensInNewTab: false
|
|
380
|
-
}),
|
|
381
|
-
isShownByDefault: true,
|
|
382
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
|
|
383
|
-
__nextHasNoMarginBottom: true,
|
|
384
|
-
label: (0, _i18n.__)('Open in new tab'),
|
|
385
|
-
checked: opensInNewTab,
|
|
386
|
-
onChange: value => setAttributes({
|
|
387
|
-
opensInNewTab: value
|
|
388
|
-
})
|
|
389
|
-
})
|
|
390
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
391
|
-
label: (0, _i18n.__)('Description'),
|
|
392
|
-
isShownByDefault: true,
|
|
393
|
-
hasValue: () => !!description,
|
|
394
|
-
onDeselect: () => setAttributes({
|
|
395
|
-
description: ''
|
|
396
|
-
}),
|
|
397
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextareaControl, {
|
|
398
|
-
__nextHasNoMarginBottom: true,
|
|
399
|
-
value: description || '',
|
|
400
|
-
onChange: descriptionValue => {
|
|
401
|
-
setAttributes({
|
|
402
|
-
description: descriptionValue
|
|
403
|
-
});
|
|
404
|
-
},
|
|
405
|
-
label: (0, _i18n.__)('Description'),
|
|
406
|
-
help: (0, _i18n.__)('The description will be displayed in the menu if the current theme supports it.')
|
|
407
|
-
})
|
|
408
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
409
|
-
label: (0, _i18n.__)('Rel attribute'),
|
|
410
|
-
isShownByDefault: true,
|
|
411
|
-
hasValue: () => !!rel,
|
|
412
|
-
onDeselect: () => setAttributes({
|
|
413
|
-
rel: ''
|
|
414
|
-
}),
|
|
415
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
416
|
-
__nextHasNoMarginBottom: true,
|
|
417
|
-
__next40pxDefaultSize: true,
|
|
418
|
-
value: rel || '',
|
|
419
|
-
onChange: relValue => {
|
|
420
|
-
setAttributes({
|
|
421
|
-
rel: relValue
|
|
422
|
-
});
|
|
423
|
-
},
|
|
424
|
-
label: (0, _i18n.__)('Rel attribute'),
|
|
425
|
-
autoComplete: "off",
|
|
426
|
-
help: (0, _i18n.__)('The relationship of the linked URL as space-separated link types.')
|
|
427
|
-
})
|
|
428
|
-
})]
|
|
319
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_shared.Controls, {
|
|
320
|
+
attributes: attributes,
|
|
321
|
+
setAttributes: setAttributes
|
|
429
322
|
})
|
|
430
323
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
431
324
|
...blockProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_components","_keycodes","_i18n","_blockEditor","_url","_element","_icons","_a11y","_blocks","_compose","_icons2","_linkUi","_updateAttributes","_utils","_hooks","_jsxRuntime","ALLOWED_BLOCKS","DEFAULT_BLOCK","name","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","useState","useEffect","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","NavigationSubmenuEdit","attributes","isSelected","setAttributes","mergeBlocks","onReplace","context","clientId","label","url","description","rel","opensInNewTab","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","__unstableMarkNextChangeAsNotPersistent","replaceBlock","selectBlock","useDispatch","blockEditorStore","isLinkOpen","setIsLinkOpen","openedBy","setOpenedBy","popoverAnchor","setPopoverAnchor","listItemRef","useRef","itemLabelPlaceholder","__","ref","dropdownMenuProps","useToolsPanelDropdownMenuProps","parentCount","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","useSelect","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","prevHasChildren","usePrevious","isURL","prependHTTP","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","textColor","customTextColor","backgroundColor","customBackgroundColor","getColors","onKeyDown","isKeyboardEvent","primary","preventDefault","stopPropagation","blockProps","useBlockProps","useMergeRefs","className","clsx","getColorClassName","style","color","innerBlocksColors","allowedBlocks","filter","blockName","navigationChildBlockProps","getNavigationChildBlockProps","innerBlocksProps","useInnerBlocksProps","defaultBlock","directInsert","__experimentalCaptureToolbars","renderAppender","InnerBlocks","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","createBlock","canConvertToLink","jsxs","Fragment","children","jsx","BlockControls","ToolbarGroup","ToolbarButton","icon","linkIcon","title","shortcut","displayShortcut","onClick","currentTarget","removeSubmenu","disabled","InspectorControls","__experimentalToolsPanel","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","labelValue","autoComplete","urlValue","type","CheckboxControl","checked","TextareaControl","descriptionValue","help","relValue","RichText","identifier","onMerge","placeholder","withoutInteractiveFormatting","LinkUI","link","onClose","anchor","onRemove","speak","updatedValue","updateAttributes","ItemSubmenuIcon"],"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tCheckboxControl,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n};\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, url, description, rel, opensInNewTab } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlock,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)\n\tconst [ openedBy, setOpenedBy ] = useState( null );\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\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst {\n\t\tparentCount,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentCount: getBlockParentsByBlockName(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'core/navigation-submenu'\n\t\t\t\t).length,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, parentCount > 0 );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\t// Required to prevent the command center from opening,\n\t\t\t// as it shares the CMD+K shortcut.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/59845.\n\t\t\tevent.preventDefault();\n\t\t\t// If we don't stop propagation, this event bubbles up to the parent submenu item\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t\tsetOpenedBy( ref.current );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks =\n\t\tparentCount >= maxNestingLevel\n\t\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t\t )\n\t\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\t// This side-effect should not create an undo level as those should\n\t\t\t// only be created via user interactions.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( event.currentTarget );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tdisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ /* Warning, this duplicated in packages/block-library/src/navigation-link/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlabel: '',\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tdescription: '',\n\t\t\t\t\t\t\trel: '',\n\t\t\t\t\t\t\topensInNewTab: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! label }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { label: '' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalue={ label || '' }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! url }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { url: '' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: urlValue } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! opensInNewTab }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { opensInNewTab: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ opensInNewTab }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { opensInNewTab: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! description }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { description: '' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! rel }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { rel: '' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The relationship of the linked URL as space-separated link types.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( ref.current );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t\tif ( openedBy ) {\n\t\t\t\t\t\t\t\t\topenedBy.focus();\n\t\t\t\t\t\t\t\t\tsetOpenedBy( null );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_components","_keycodes","_i18n","_blockEditor","_url","_element","_icons","_a11y","_blocks","_compose","_icons2","_linkUi","_updateAttributes","_shared","_utils","_constants","_jsxRuntime","ALLOWED_BLOCKS","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","useState","useEffect","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","NavigationSubmenuEdit","attributes","isSelected","setAttributes","mergeBlocks","onReplace","context","clientId","label","url","description","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","__unstableMarkNextChangeAsNotPersistent","replaceBlock","selectBlock","useDispatch","blockEditorStore","isLinkOpen","setIsLinkOpen","openedBy","setOpenedBy","popoverAnchor","setPopoverAnchor","listItemRef","useRef","itemLabelPlaceholder","__","ref","parentCount","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","useSelect","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","name","prevHasChildren","usePrevious","isURL","prependHTTP","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","textColor","customTextColor","backgroundColor","customBackgroundColor","getColors","onKeyDown","isKeyboardEvent","primary","preventDefault","stopPropagation","blockProps","useBlockProps","useMergeRefs","className","clsx","getColorClassName","style","color","innerBlocksColors","allowedBlocks","filter","blockName","navigationChildBlockProps","getNavigationChildBlockProps","innerBlocksProps","useInnerBlocksProps","defaultBlock","DEFAULT_BLOCK","directInsert","__experimentalCaptureToolbars","renderAppender","InnerBlocks","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","createBlock","canConvertToLink","jsxs","Fragment","children","jsx","BlockControls","ToolbarGroup","ToolbarButton","icon","linkIcon","title","shortcut","displayShortcut","onClick","currentTarget","removeSubmenu","disabled","InspectorControls","Controls","RichText","identifier","value","onChange","labelValue","onMerge","placeholder","withoutInteractiveFormatting","LinkUI","link","onClose","anchor","onRemove","speak","updatedValue","updateAttributes","ItemSubmenuIcon"],"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport { Controls } from '../navigation-link/shared';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\nimport { DEFAULT_BLOCK } from '../navigation/constants';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, url, description } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlock,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)\n\tconst [ openedBy, setOpenedBy ] = useState( null );\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\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tparentCount,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentCount: getBlockParentsByBlockName(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'core/navigation-submenu'\n\t\t\t\t).length,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, parentCount > 0 );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\t// Required to prevent the command center from opening,\n\t\t\t// as it shares the CMD+K shortcut.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/59845.\n\t\t\tevent.preventDefault();\n\t\t\t// If we don't stop propagation, this event bubbles up to the parent submenu item\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t\tsetOpenedBy( ref.current );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks =\n\t\tparentCount >= maxNestingLevel\n\t\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t\t )\n\t\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\t// This side-effect should not create an undo level as those should\n\t\t\t// only be created via user interactions.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( event.currentTarget );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tdisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<Controls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( ref.current );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t\tif ( openedBy ) {\n\t\t\t\t\t\t\t\t\topenedBy.focus();\n\t\t\t\t\t\t\t\t\tsetOpenedBy( null );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/pattern/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","metadata","exports","$schema","apiVersion","name","title","category","description","supports","html","inserter","renaming","interactivity","clientNavigation","textdomain","attributes","slug","type","settings","edit","PatternEdit","init","initBlock"],"sources":["@wordpress/block-library/src/pattern/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;AAFA,MAAAE,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;EAAA;AAAA;AAOA,MAAM;
|
|
1
|
+
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","metadata","exports","$schema","apiVersion","name","title","category","description","supports","html","inserter","renaming","blockVisibility","interactivity","clientNavigation","textdomain","attributes","slug","type","settings","edit","PatternEdit","init","initBlock"],"sources":["@wordpress/block-library/src/pattern/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;AAFA,MAAAE,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,eAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;EAAA;AAAA;AAOA,MAAM;EAAEd;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAGnB,MAAMe,QAAQ,GAAAlB,OAAA,CAAAkB,QAAA,GAAG;EACvBC,IAAI,EAAEC;AACP,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEnB,IAAI;EAAEJ,QAAQ;EAAEmB;AAAS,CAAE,CAAC;AAAClB,OAAA,CAAAqB,IAAA,GAAAA,IAAA","ignoreList":[]}
|
package/build/post-date/edit.js
CHANGED
|
@@ -76,9 +76,22 @@ function PostDateEdit({
|
|
|
76
76
|
}, [datetime]);
|
|
77
77
|
const isDescendentOfQueryLoop = Number.isFinite(queryId);
|
|
78
78
|
const dateSettings = (0, _date.getSettings)();
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
const {
|
|
80
|
+
postType,
|
|
81
|
+
siteFormat = dateSettings.formats.date,
|
|
82
|
+
siteTimeFormat = dateSettings.formats.time
|
|
83
|
+
} = (0, _data.useSelect)(select => {
|
|
84
|
+
const {
|
|
85
|
+
getPostType,
|
|
86
|
+
getEntityRecord
|
|
87
|
+
} = select(_coreData.store);
|
|
88
|
+
const siteSettings = getEntityRecord('root', 'site');
|
|
89
|
+
return {
|
|
90
|
+
siteFormat: siteSettings?.date_format,
|
|
91
|
+
siteTimeFormat: siteSettings?.time_format,
|
|
92
|
+
postType: postTypeSlug ? getPostType(postTypeSlug) : null
|
|
93
|
+
};
|
|
94
|
+
}, [postTypeSlug]);
|
|
82
95
|
const blockEditingMode = (0, _blockEditor.useBlockEditingMode)();
|
|
83
96
|
let postDate = /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
|
|
84
97
|
dateTime: (0, _date.dateI18n)('c', datetime),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_coreData","_element","_date","_blockEditor","_components","_i18n","_icons","_keycodes","_data","_hooks","_jsxRuntime","PostDateEdit","attributes","datetime","textAlign","format","isLink","metadata","context","postType","postTypeSlug","queryId","setAttributes","displayType","bindings","source","args","key","blockProps","useBlockProps","className","clsx","dropdownMenuProps","useToolsPanelDropdownMenuProps","popoverAnchor","setPopoverAnchor","useState","popoverProps","useMemo","anchor","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","useEffect","undefined","Date","isDescendentOfQueryLoop","Number","isFinite","dateSettings","getDateSettings","siteFormat","formats","date","useEntityProp","siteTimeFormat","time","useSelect","select","coreStore","getPostType","blockEditingMode","useBlockEditingMode","postDate","jsx","dateTime","dateI18n","ref","children","humanTimeDiff","href","onClick","event","preventDefault","jsxs","Fragment","BlockControls","group","AlignmentControl","value","onChange","nextAlign","ToolbarGroup","Dropdown","renderContent","onClose","__experimentalPublishDateTimePicker","title","__","currentDate","newDatetime","is12Hour","is12HourFormat","dateOrder","_x","renderToggle","isOpen","onToggle","openOnArrowDown","keyCode","DOWN","ToolbarButton","icon","edit","onKeyDown","InspectorControls","__experimentalToolsPanel","label","resetAll","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","__experimentalDateFormatPicker","defaultFormat","nextFormat","labels","singular_name","sprintf","toLowerCase","ToggleControl","__nextHasNoMarginBottom","checked","test"],"sources":["@wordpress/block-library/src/post-date/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes: { datetime, textAlign, format, isLink, metadata },\n\tcontext: { postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst displayType =\n\t\tmetadata?.bindings?.datetime?.source === 'core/post-data' &&\n\t\tmetadata?.bindings?.datetime?.args?.key;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\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 } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tlet postDate = (\n\t\t<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( datetime )\n\t\t\t\t: dateI18n( format || siteFormat, datetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ( blockEditingMode === 'default' ||\n\t\t\t\t! isDescendentOfQueryLoop ) && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ displayType !== 'modified' &&\n\t\t\t\t\t\t! isDescendentOfQueryLoop && (\n\t\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayType === 'date'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\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</ToolbarGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_coreData","_element","_date","_blockEditor","_components","_i18n","_icons","_keycodes","_data","_hooks","_jsxRuntime","PostDateEdit","attributes","datetime","textAlign","format","isLink","metadata","context","postType","postTypeSlug","queryId","setAttributes","displayType","bindings","source","args","key","blockProps","useBlockProps","className","clsx","dropdownMenuProps","useToolsPanelDropdownMenuProps","popoverAnchor","setPopoverAnchor","useState","popoverProps","useMemo","anchor","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","useEffect","undefined","Date","isDescendentOfQueryLoop","Number","isFinite","dateSettings","getDateSettings","siteFormat","formats","date","siteTimeFormat","time","useSelect","select","getPostType","getEntityRecord","coreStore","siteSettings","date_format","time_format","blockEditingMode","useBlockEditingMode","postDate","jsx","dateTime","dateI18n","ref","children","humanTimeDiff","href","onClick","event","preventDefault","jsxs","Fragment","BlockControls","group","AlignmentControl","value","onChange","nextAlign","ToolbarGroup","Dropdown","renderContent","onClose","__experimentalPublishDateTimePicker","title","__","currentDate","newDatetime","is12Hour","is12HourFormat","dateOrder","_x","renderToggle","isOpen","onToggle","openOnArrowDown","keyCode","DOWN","ToolbarButton","icon","edit","onKeyDown","InspectorControls","__experimentalToolsPanel","label","resetAll","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","__experimentalDateFormatPicker","defaultFormat","nextFormat","labels","singular_name","sprintf","toLowerCase","ToggleControl","__nextHasNoMarginBottom","checked","test"],"sources":["@wordpress/block-library/src/post-date/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes: { datetime, textAlign, format, isLink, metadata },\n\tcontext: { postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst displayType =\n\t\tmetadata?.bindings?.datetime?.source === 'core/post-data' &&\n\t\tmetadata?.bindings?.datetime?.args?.key;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\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 } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\n\tconst {\n\t\tpostType,\n\t\tsiteFormat = dateSettings.formats.date,\n\t\tsiteTimeFormat = dateSettings.formats.time,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\n\t\t\treturn {\n\t\t\t\tsiteFormat: siteSettings?.date_format,\n\t\t\t\tsiteTimeFormat: siteSettings?.time_format,\n\t\t\t\tpostType: postTypeSlug ? getPostType( postTypeSlug ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postTypeSlug ]\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tlet postDate = (\n\t\t<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( datetime )\n\t\t\t\t: dateI18n( format || siteFormat, datetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ( blockEditingMode === 'default' ||\n\t\t\t\t! isDescendentOfQueryLoop ) && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ displayType !== 'modified' &&\n\t\t\t\t\t\t! isDescendentOfQueryLoop && (\n\t\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayType === 'date'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\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</ToolbarGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,6 +35,7 @@ function PostTimeToReadEdit({
|
|
|
35
35
|
const {
|
|
36
36
|
textAlign,
|
|
37
37
|
displayAsRange,
|
|
38
|
+
displayMode,
|
|
38
39
|
averageReadingSpeed
|
|
39
40
|
} = attributes;
|
|
40
41
|
const {
|
|
@@ -46,7 +47,7 @@ function PostTimeToReadEdit({
|
|
|
46
47
|
const [blocks] = (0, _coreData.useEntityBlockEditor)('postType', postType, {
|
|
47
48
|
id: postId
|
|
48
49
|
});
|
|
49
|
-
const
|
|
50
|
+
const displayString = (0, _element.useMemo)(() => {
|
|
50
51
|
// Replicates the logic found in getEditedPostContent().
|
|
51
52
|
let content;
|
|
52
53
|
if (contentStructure instanceof Function) {
|
|
@@ -69,20 +70,31 @@ function PostTimeToReadEdit({
|
|
|
69
70
|
*/
|
|
70
71
|
const wordCountType = (0, _i18n._x)('words', 'Word count type. Do not translate!');
|
|
71
72
|
const totalWords = (0, _wordcount.count)(content || '', wordCountType);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
maxMinutes =
|
|
73
|
+
|
|
74
|
+
// Add "time to read" part, if enabled.
|
|
75
|
+
if (displayMode === 'time') {
|
|
76
|
+
if (displayAsRange) {
|
|
77
|
+
let maxMinutes = Math.max(1, Math.round(totalWords / averageReadingSpeed * 1.2));
|
|
78
|
+
const minMinutes = Math.max(1, Math.round(totalWords / averageReadingSpeed * 0.8));
|
|
79
|
+
if (minMinutes === maxMinutes) {
|
|
80
|
+
maxMinutes = maxMinutes + 1;
|
|
81
|
+
}
|
|
82
|
+
// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.
|
|
83
|
+
const rangeLabel = (0, _i18n._x)('%1$s–%2$s minutes', 'Range of minutes to read');
|
|
84
|
+
return (0, _i18n.sprintf)(rangeLabel, minMinutes, maxMinutes);
|
|
77
85
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
const minutesToRead = Math.max(1, Math.round(totalWords / averageReadingSpeed));
|
|
87
|
+
return (0, _i18n.sprintf)(/* translators: %s: the number of minutes to read the post. */
|
|
88
|
+
(0, _i18n._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Add "word count" part, if enabled.
|
|
92
|
+
if (displayMode === 'words') {
|
|
93
|
+
return wordCountType === 'words' ? (0, _i18n.sprintf)(/* translators: %s: the number of words in the post. */
|
|
94
|
+
(0, _i18n._n)('%s word', '%s words', totalWords), totalWords.toLocaleString()) : (0, _i18n.sprintf)(/* translators: %s: the number of characters in the post. */
|
|
95
|
+
(0, _i18n._n)('%s character', '%s characters', totalWords), totalWords.toLocaleString());
|
|
81
96
|
}
|
|
82
|
-
|
|
83
|
-
return (0, _i18n.sprintf)(/* translators: %s: the number of minutes to read the post. */
|
|
84
|
-
(0, _i18n._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
|
|
85
|
-
}, [contentStructure, blocks, displayAsRange, averageReadingSpeed]);
|
|
97
|
+
}, [contentStructure, blocks, displayAsRange, displayMode, averageReadingSpeed]);
|
|
86
98
|
const blockProps = (0, _blockEditor.useBlockProps)({
|
|
87
99
|
className: (0, _clsx.default)({
|
|
88
100
|
[`has-text-align-${textAlign}`]: textAlign
|
|
@@ -99,7 +111,7 @@ function PostTimeToReadEdit({
|
|
|
99
111
|
});
|
|
100
112
|
}
|
|
101
113
|
})
|
|
102
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
|
|
114
|
+
}), displayMode === 'time' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
|
|
103
115
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanel, {
|
|
104
116
|
label: (0, _i18n.__)('Settings'),
|
|
105
117
|
resetAll: () => {
|
|
@@ -129,7 +141,7 @@ function PostTimeToReadEdit({
|
|
|
129
141
|
})
|
|
130
142
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
131
143
|
...blockProps,
|
|
132
|
-
children:
|
|
144
|
+
children: displayString
|
|
133
145
|
})]
|
|
134
146
|
});
|
|
135
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_element","_blockEditor","_components","_blocks","_coreData","_wordcount","_hooks","_jsxRuntime","PostTimeToReadEdit","attributes","setAttributes","context","textAlign","displayAsRange","averageReadingSpeed","postId","postType","dropdownMenuProps","useToolsPanelDropdownMenuProps","contentStructure","useEntityProp","blocks","useEntityBlockEditor","id","minutesToReadString","useMemo","content","Function","__unstableSerializeAndClean","wordCountType","_x","totalWords","wordCount","maxMinutes","Math","max","round","minMinutes","rangeLabel","sprintf","minutesToRead","_n","blockProps","useBlockProps","className","clsx","jsxs","Fragment","children","jsx","BlockControls","group","AlignmentControl","value","onChange","nextAlign","InspectorControls","__experimentalToolsPanel","label","__","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","ToggleControl","__nextHasNoMarginBottom","checked","_default","exports","default"],"sources":["@wordpress/block-library/src/post-time-to-read/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign, displayAsRange, averageReadingSpeed } = attributes;\n\tconst { postId, postType } = context;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst minutesToReadString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst totalWords = wordCount( content || '', wordCountType );\n\t\tif ( displayAsRange ) {\n\t\t\tlet maxMinutes = Math.max(\n\t\t\t\t1,\n\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 1.2 )\n\t\t\t);\n\t\t\tconst minMinutes = Math.max(\n\t\t\t\t1,\n\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 0.8 )\n\t\t\t);\n\n\t\t\tif ( minMinutes === maxMinutes ) {\n\t\t\t\tmaxMinutes = maxMinutes + 1;\n\t\t\t}\n\t\t\t// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.\n\t\t\tconst rangeLabel = _x(\n\t\t\t\t'%1$s–%2$s minutes',\n\t\t\t\t'Range of minutes to read'\n\t\t\t);\n\t\t\treturn sprintf( rangeLabel, minMinutes, maxMinutes );\n\t\t}\n\n\t\tconst minutesToRead = Math.max(\n\t\t\t1,\n\t\t\tMath.round( totalWords / averageReadingSpeed )\n\t\t);\n\n\t\treturn sprintf(\n\t\t\t/* translators: %s: the number of minutes to read the post. */\n\t\t\t_n( '%s minute', '%s minutes', minutesToRead ),\n\t\t\tminutesToRead\n\t\t);\n\t}, [ contentStructure, blocks, displayAsRange, averageReadingSpeed ] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Display as range',\n\t\t\t\t\t\t\t'Turns reading time range display on or off'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thasValue={ () => ! displayAsRange }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Display as range' ) }\n\t\t\t\t\t\t\tchecked={ !! displayAsRange }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAsRange: ! displayAsRange,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>{ minutesToReadString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_element","_blockEditor","_components","_blocks","_coreData","_wordcount","_hooks","_jsxRuntime","PostTimeToReadEdit","attributes","setAttributes","context","textAlign","displayAsRange","displayMode","averageReadingSpeed","postId","postType","dropdownMenuProps","useToolsPanelDropdownMenuProps","contentStructure","useEntityProp","blocks","useEntityBlockEditor","id","displayString","useMemo","content","Function","__unstableSerializeAndClean","wordCountType","_x","totalWords","wordCount","maxMinutes","Math","max","round","minMinutes","rangeLabel","sprintf","minutesToRead","_n","toLocaleString","blockProps","useBlockProps","className","clsx","jsxs","Fragment","children","jsx","BlockControls","group","AlignmentControl","value","onChange","nextAlign","InspectorControls","__experimentalToolsPanel","label","__","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","ToggleControl","__nextHasNoMarginBottom","checked","_default","exports","default"],"sources":["@wordpress/block-library/src/post-time-to-read/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign, displayAsRange, displayMode, averageReadingSpeed } =\n\t\tattributes;\n\n\tconst { postId, postType } = context;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst displayString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst totalWords = wordCount( content || '', wordCountType );\n\n\t\t// Add \"time to read\" part, if enabled.\n\t\tif ( displayMode === 'time' ) {\n\t\t\tif ( displayAsRange ) {\n\t\t\t\tlet maxMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 1.2 )\n\t\t\t\t);\n\t\t\t\tconst minMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 0.8 )\n\t\t\t\t);\n\n\t\t\t\tif ( minMinutes === maxMinutes ) {\n\t\t\t\t\tmaxMinutes = maxMinutes + 1;\n\t\t\t\t}\n\t\t\t\t// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.\n\t\t\t\tconst rangeLabel = _x(\n\t\t\t\t\t'%1$s–%2$s minutes',\n\t\t\t\t\t'Range of minutes to read'\n\t\t\t\t);\n\t\t\t\treturn sprintf( rangeLabel, minMinutes, maxMinutes );\n\t\t\t}\n\t\t\tconst minutesToRead = Math.max(\n\t\t\t\t1,\n\t\t\t\tMath.round( totalWords / averageReadingSpeed )\n\t\t\t);\n\n\t\t\treturn sprintf(\n\t\t\t\t/* translators: %s: the number of minutes to read the post. */\n\t\t\t\t_n( '%s minute', '%s minutes', minutesToRead ),\n\t\t\t\tminutesToRead\n\t\t\t);\n\t\t}\n\n\t\t// Add \"word count\" part, if enabled.\n\t\tif ( displayMode === 'words' ) {\n\t\t\treturn wordCountType === 'words'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: the number of words in the post. */\n\t\t\t\t\t\t_n( '%s word', '%s words', totalWords ),\n\t\t\t\t\t\ttotalWords.toLocaleString()\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: the number of characters in the post. */\n\t\t\t\t\t\t_n( '%s character', '%s characters', totalWords ),\n\t\t\t\t\t\ttotalWords.toLocaleString()\n\t\t\t\t );\n\t\t}\n\t}, [\n\t\tcontentStructure,\n\t\tblocks,\n\t\tdisplayAsRange,\n\t\tdisplayMode,\n\t\taverageReadingSpeed,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ displayMode === 'time' && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Display as range',\n\t\t\t\t\t\t\t\t'Turns reading time range display on or off'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\thasValue={ () => ! displayAsRange }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Display as range' ) }\n\t\t\t\t\t\t\t\tchecked={ !! displayAsRange }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdisplayAsRange: ! displayAsRange,\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</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<div { ...blockProps }>{ displayString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n"],"mappings":"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","ignoreList":[]}
|