@wordpress/block-library 6.0.12 → 6.0.16
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/build/group/edit.native.js +1 -1
- package/build/group/edit.native.js.map +1 -1
- package/build/group/index.js +3 -1
- package/build/group/index.js.map +1 -1
- package/build/image/image.js +30 -6
- package/build/image/image.js.map +1 -1
- package/build/navigation/deprecated.js +1 -3
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +109 -43
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +10 -3
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +15 -7
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +9 -7
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +3 -11
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +54 -0
- package/build/navigation/edit/use-navigation-notice.js.map +1 -0
- package/build/navigation/index.js +1 -2
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/menu-items-to-blocks.js +4 -1
- package/build/navigation/menu-items-to-blocks.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +9 -2
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view.js +14 -9
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/post-comments/index.js +1 -1
- package/build/post-template/edit.js +54 -13
- package/build/post-template/edit.js.map +1 -1
- package/build/site-logo/edit.js +9 -6
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +0 -3
- package/build/site-logo/index.js.map +1 -1
- package/build/template-part/edit/index.js +7 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build-module/group/edit.native.js +1 -1
- package/build-module/group/edit.native.js.map +1 -1
- package/build-module/group/index.js +3 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/image.js +31 -7
- package/build-module/image/image.js.map +1 -1
- package/build-module/navigation/deprecated.js +1 -3
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +107 -44
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +9 -3
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +15 -7
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +9 -7
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -13
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +44 -0
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -0
- package/build-module/navigation/index.js +1 -2
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/menu-items-to-blocks.js +3 -1
- package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +9 -2
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view.js +14 -9
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/post-comments/index.js +1 -1
- package/build-module/post-template/edit.js +54 -15
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +9 -6
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +0 -3
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/template-part/edit/index.js +6 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-style/common-rtl.css +10 -0
- package/build-style/common.css +10 -0
- package/build-style/editor-rtl.css +38 -11
- package/build-style/editor.css +38 -11
- package/build-style/image/editor-rtl.css +16 -0
- package/build-style/image/editor.css +16 -0
- package/build-style/navigation/editor-rtl.css +11 -0
- package/build-style/navigation/editor.css +11 -0
- package/build-style/navigation/style-rtl.css +56 -24
- package/build-style/navigation/style.css +56 -24
- package/build-style/post-comments/style-rtl.css +3 -1
- package/build-style/post-comments/style.css +3 -1
- package/build-style/post-comments-form/style-rtl.css +2 -2
- package/build-style/post-comments-form/style.css +2 -2
- package/build-style/site-logo/editor-rtl.css +1 -11
- package/build-style/site-logo/editor.css +1 -11
- package/build-style/site-logo/style-rtl.css +3 -1
- package/build-style/site-logo/style.css +3 -1
- package/build-style/style-rtl.css +74 -28
- package/build-style/style.css +74 -28
- package/package.json +14 -14
- package/src/common.scss +12 -0
- package/src/editor.scss +12 -0
- package/src/gallery/index.php +7 -8
- package/src/group/block.json +3 -1
- package/src/group/edit.native.js +1 -1
- package/src/home-link/index.php +1 -1
- package/src/image/editor.scss +18 -0
- package/src/image/image.js +32 -8
- package/src/image/index.php +1 -1
- package/src/navigation/block.json +1 -2
- package/src/navigation/deprecated.js +0 -2
- package/src/navigation/edit/index.js +166 -60
- package/src/navigation/edit/navigation-menu-selector.js +20 -6
- package/src/navigation/edit/placeholder/index.js +40 -24
- package/src/navigation/edit/responsive-wrapper.js +10 -7
- package/src/navigation/edit/unsaved-inner-blocks.js +13 -25
- package/src/navigation/edit/use-navigation-notice.js +37 -0
- package/src/navigation/editor.scss +14 -0
- package/src/navigation/index.php +19 -8
- package/src/navigation/menu-items-to-blocks.js +7 -1
- package/src/navigation/style.scss +82 -32
- package/src/navigation/use-navigation-menu.js +20 -0
- package/src/navigation/view.js +15 -9
- package/src/navigation-link/index.php +1 -1
- package/src/navigation-submenu/edit.js +1 -1
- package/src/navigation-submenu/index.php +9 -3
- package/src/page-list/index.php +9 -4
- package/src/post-comments/block.json +5 -1
- package/src/post-comments/index.php +17 -0
- package/src/post-comments/style.scss +7 -3
- package/src/post-comments-form/index.php +6 -4
- package/src/post-comments-form/style.scss +7 -5
- package/src/post-template/edit.js +54 -17
- package/src/site-logo/block.json +0 -3
- package/src/site-logo/edit.js +6 -5
- package/src/site-logo/editor.scss +1 -15
- package/src/site-logo/index.php +0 -4
- package/src/site-logo/style.scss +3 -1
- package/src/template-part/edit/index.js +6 -1
- package/src/template-part/index.php +5 -2
|
@@ -50,9 +50,16 @@ function ResponsiveWrapper(_ref) {
|
|
|
50
50
|
'always-shown': isHiddenByDefault
|
|
51
51
|
});
|
|
52
52
|
const modalId = `${id}-modal`;
|
|
53
|
+
const dialogProps = {
|
|
54
|
+
className: 'wp-block-navigation__responsive-dialog',
|
|
55
|
+
...(isOpen && {
|
|
56
|
+
role: 'dialog',
|
|
57
|
+
'aria-modal': true,
|
|
58
|
+
'aria-label': (0, _i18n.__)('Menu')
|
|
59
|
+
})
|
|
60
|
+
};
|
|
53
61
|
return (0, _element.createElement)(_element.Fragment, null, !isOpen && (0, _element.createElement)(_components.Button, {
|
|
54
62
|
"aria-haspopup": "true",
|
|
55
|
-
"aria-expanded": isOpen,
|
|
56
63
|
"aria-label": (0, _i18n.__)('Open menu'),
|
|
57
64
|
className: openButtonClasses,
|
|
58
65
|
onClick: () => onToggle(true)
|
|
@@ -81,12 +88,7 @@ function ResponsiveWrapper(_ref) {
|
|
|
81
88
|
}, (0, _element.createElement)("div", {
|
|
82
89
|
className: "wp-block-navigation__responsive-close",
|
|
83
90
|
tabIndex: "-1"
|
|
84
|
-
}, (0, _element.createElement)("div", {
|
|
85
|
-
className: "wp-block-navigation__responsive-dialog",
|
|
86
|
-
role: "dialog",
|
|
87
|
-
"aria-modal": "true",
|
|
88
|
-
"aria-labelledby": `${modalId}-title`
|
|
89
|
-
}, (0, _element.createElement)(_components.Button, {
|
|
91
|
+
}, (0, _element.createElement)("div", dialogProps, (0, _element.createElement)(_components.Button, {
|
|
90
92
|
className: "wp-block-navigation__responsive-container-close",
|
|
91
93
|
"aria-label": (0, _i18n.__)('Close menu'),
|
|
92
94
|
onClick: () => onToggle(false)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/responsive-wrapper.js"],"names":["ResponsiveWrapper","children","id","isOpen","isResponsive","onToggle","isHiddenByDefault","classNames","styles","responsiveContainerClasses","openButtonClasses","modalId","close"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;AAMe,SAASA,iBAAT,OASX;AAAA,MATuC;AAC1CC,IAAAA,QAD0C;AAE1CC,IAAAA,EAF0C;AAG1CC,IAAAA,MAH0C;AAI1CC,IAAAA,YAJ0C;AAK1CC,IAAAA,QAL0C;AAM1CC,IAAAA,iBAN0C;AAO1CC,IAAAA,UAP0C;AAQ1CC,IAAAA;AAR0C,GASvC;;AACH,MAAK,CAAEJ,YAAP,EAAsB;AACrB,WAAOH,QAAP;AACA;;AACD,QAAMQ,0BAA0B,GAAG,yBAClC,2CADkC,EAElCF,UAFkC,EAGlC;AACC,oBAAgBJ,MADjB;AAEC,yBAAqBG;AAFtB,GAHkC,CAAnC;AAQA,QAAMI,iBAAiB,GAAG,yBACzB,gDADyB,EAEzB;AAAE,oBAAgBJ;AAAlB,GAFyB,CAA1B;AAKA,QAAMK,OAAO,GAAI,GAAGT,EAAI,QAAxB;AAEA,SACC,qDACG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/responsive-wrapper.js"],"names":["ResponsiveWrapper","children","id","isOpen","isResponsive","onToggle","isHiddenByDefault","classNames","styles","responsiveContainerClasses","openButtonClasses","modalId","dialogProps","className","role","close"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;AAMe,SAASA,iBAAT,OASX;AAAA,MATuC;AAC1CC,IAAAA,QAD0C;AAE1CC,IAAAA,EAF0C;AAG1CC,IAAAA,MAH0C;AAI1CC,IAAAA,YAJ0C;AAK1CC,IAAAA,QAL0C;AAM1CC,IAAAA,iBAN0C;AAO1CC,IAAAA,UAP0C;AAQ1CC,IAAAA;AAR0C,GASvC;;AACH,MAAK,CAAEJ,YAAP,EAAsB;AACrB,WAAOH,QAAP;AACA;;AACD,QAAMQ,0BAA0B,GAAG,yBAClC,2CADkC,EAElCF,UAFkC,EAGlC;AACC,oBAAgBJ,MADjB;AAEC,yBAAqBG;AAFtB,GAHkC,CAAnC;AAQA,QAAMI,iBAAiB,GAAG,yBACzB,gDADyB,EAEzB;AAAE,oBAAgBJ;AAAlB,GAFyB,CAA1B;AAKA,QAAMK,OAAO,GAAI,GAAGT,EAAI,QAAxB;AAEA,QAAMU,WAAW,GAAG;AACnBC,IAAAA,SAAS,EAAE,wCADQ;AAEnB,QAAKV,MAAM,IAAI;AACdW,MAAAA,IAAI,EAAE,QADQ;AAEd,oBAAc,IAFA;AAGd,oBAAc,cAAI,MAAJ;AAHA,KAAf;AAFmB,GAApB;AASA,SACC,qDACG,CAAEX,MAAF,IACD,4BAAC,kBAAD;AACC,qBAAc,MADf;AAEC,kBAAa,cAAI,WAAJ,CAFd;AAGC,IAAA,SAAS,EAAGO,iBAHb;AAIC,IAAA,OAAO,EAAG,MAAML,QAAQ,CAAE,IAAF;AAJzB,KAMC,4BAAC,eAAD;AACC,IAAA,KAAK,EAAC,4BADP;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,KAAK,EAAC,IAHP;AAIC,IAAA,MAAM,EAAC,IAJR;AAKC,IAAA,IAAI,EAAC,KALN;AAMC,mBAAY,MANb;AAOC,IAAA,SAAS,EAAC;AAPX,KASC,4BAAC,gBAAD;AAAM,IAAA,CAAC,EAAC,GAAR;AAAY,IAAA,CAAC,EAAC,KAAd;AAAoB,IAAA,KAAK,EAAC,IAA1B;AAA+B,IAAA,MAAM,EAAC;AAAtC,IATD,EAUC,4BAAC,gBAAD;AAAM,IAAA,CAAC,EAAC,GAAR;AAAY,IAAA,CAAC,EAAC,IAAd;AAAmB,IAAA,KAAK,EAAC,IAAzB;AAA8B,IAAA,MAAM,EAAC;AAArC,IAVD,CAND,CAFF,EAuBC;AACC,IAAA,SAAS,EAAGI,0BADb;AAEC,IAAA,KAAK,EAAGD,MAFT;AAGC,IAAA,EAAE,EAAGG;AAHN,KAKC;AACC,IAAA,SAAS,EAAC,uCADX;AAEC,IAAA,QAAQ,EAAC;AAFV,KAIC,mCAAUC,WAAV,EACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,kBAAa,cAAI,YAAJ,CAFd;AAGC,IAAA,OAAO,EAAG,MAAMP,QAAQ,CAAE,KAAF;AAHzB,KAKC,4BAAC,WAAD;AAAM,IAAA,IAAI,EAAGU;AAAb,IALD,CADD,EAQC;AACC,IAAA,SAAS,EAAC,mDADX;AAEC,IAAA,EAAE,EAAI,GAAGJ,OAAS;AAFnB,KAIGV,QAJH,CARD,CAJD,CALD,CAvBD,CADD;AAoDA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { close, Icon } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { SVG, Rect } from '@wordpress/primitives';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ResponsiveWrapper( {\n\tchildren,\n\tid,\n\tisOpen,\n\tisResponsive,\n\tonToggle,\n\tisHiddenByDefault,\n\tclassNames,\n\tstyles,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\tconst responsiveContainerClasses = classnames(\n\t\t'wp-block-navigation__responsive-container',\n\t\tclassNames,\n\t\t{\n\t\t\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\tconst openButtonClasses = classnames(\n\t\t'wp-block-navigation__responsive-container-open',\n\t\t{ 'always-shown': isHiddenByDefault }\n\t);\n\n\tconst modalId = `${ id }-modal`;\n\n\tconst dialogProps = {\n\t\tclassName: 'wp-block-navigation__responsive-dialog',\n\t\t...( isOpen && {\n\t\t\trole: 'dialog',\n\t\t\t'aria-modal': true,\n\t\t\t'aria-label': __( 'Menu' ),\n\t\t} ),\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-label={ __( 'Open menu' ) }\n\t\t\t\t\tclassName={ openButtonClasses }\n\t\t\t\t\tonClick={ () => onToggle( true ) }\n\t\t\t\t>\n\t\t\t\t\t<SVG\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\twidth=\"24\"\n\t\t\t\t\t\theight=\"24\"\n\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Rect x=\"4\" y=\"7.5\" width=\"16\" height=\"1.5\" />\n\t\t\t\t\t\t<Rect x=\"4\" y=\"15\" width=\"16\" height=\"1.5\" />\n\t\t\t\t\t</SVG>\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<div\n\t\t\t\tclassName={ responsiveContainerClasses }\n\t\t\t\tstyle={ styles }\n\t\t\t\tid={ modalId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-navigation__responsive-close\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<div { ...dialogProps }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-close\"\n\t\t\t\t\t\t\taria-label={ __( 'Close menu' ) }\n\t\t\t\t\t\t\tonClick={ () => onToggle( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-content\"\n\t\t\t\t\t\t\tid={ `${ modalId }-content` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -34,8 +34,6 @@ var _useCreateNavigationMenu = _interopRequireDefault(require("./use-create-navi
|
|
|
34
34
|
/**
|
|
35
35
|
* Internal dependencies
|
|
36
36
|
*/
|
|
37
|
-
const NOOP = () => {};
|
|
38
|
-
|
|
39
37
|
const EMPTY_OBJECT = {};
|
|
40
38
|
const DRAFT_MENU_PARAMS = ['postType', 'wp_navigation', {
|
|
41
39
|
status: 'draft',
|
|
@@ -56,13 +54,7 @@ function UnsavedInnerBlocks(_ref) {
|
|
|
56
54
|
const isDisabled = (0, _element.useContext)(_components.Disabled.Context);
|
|
57
55
|
const savingLock = (0, _element.useRef)(false);
|
|
58
56
|
const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
|
|
59
|
-
renderAppender: hasSelection ? undefined : false
|
|
60
|
-
// Make the inner blocks 'controlled'. This allows the block to always
|
|
61
|
-
// work with controlled inner blocks, smoothing out the switch to using
|
|
62
|
-
// an entity.
|
|
63
|
-
value: blocks,
|
|
64
|
-
onChange: NOOP,
|
|
65
|
-
onInput: NOOP
|
|
57
|
+
renderAppender: hasSelection ? undefined : false
|
|
66
58
|
});
|
|
67
59
|
const {
|
|
68
60
|
isSaving,
|
|
@@ -112,12 +104,12 @@ function UnsavedInnerBlocks(_ref) {
|
|
|
112
104
|
onSave(menu);
|
|
113
105
|
savingLock.current = false;
|
|
114
106
|
}, [isDisabled, isSaving, hasResolvedDraftNavigationMenus, hasResolvedNavigationMenus, draftNavigationMenus, navigationMenus, hasSelection, createNavigationMenu, blocks]);
|
|
115
|
-
return (0, _element.createElement)(
|
|
107
|
+
return (0, _element.createElement)("div", {
|
|
116
108
|
className: "wp-block-navigation__unsaved-changes"
|
|
117
109
|
}, (0, _element.createElement)(_components.Disabled, {
|
|
118
110
|
className: (0, _classnames.default)('wp-block-navigation__unsaved-changes-overlay', {
|
|
119
111
|
'is-saving': hasSelection
|
|
120
112
|
})
|
|
121
|
-
}, (0, _element.createElement)("div", innerBlocksProps)), hasSelection && (0, _element.createElement)(_components.Spinner, null))
|
|
113
|
+
}, (0, _element.createElement)("div", innerBlocksProps)), hasSelection && (0, _element.createElement)(_components.Spinner, null));
|
|
122
114
|
}
|
|
123
115
|
//# sourceMappingURL=unsaved-inner-blocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/unsaved-inner-blocks.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/unsaved-inner-blocks.js"],"names":["EMPTY_OBJECT","DRAFT_MENU_PARAMS","status","per_page","UnsavedInnerBlocks","blockProps","blocks","clientId","hasSavedUnsavedInnerBlocks","onSave","hasSelection","isDisabled","Disabled","Context","savingLock","innerBlocksProps","renderAppender","undefined","isSaving","draftNavigationMenus","hasResolvedDraftNavigationMenus","select","getEntityRecords","hasFinishedResolution","isSavingEntityRecord","coreStore","hasResolvedNavigationMenus","navigationMenus","createNavigationMenu","current","menu"],"mappings":";;;;;;;;;AAYA;;AATA;;AAKA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;AAIA,MAAMA,YAAY,GAAG,EAArB;AACA,MAAMC,iBAAiB,GAAG,CACzB,UADyB,EAEzB,eAFyB,EAGzB;AAAEC,EAAAA,MAAM,EAAE,OAAV;AAAmBC,EAAAA,QAAQ,EAAE,CAAC;AAA9B,CAHyB,CAA1B;;AAMe,SAASC,kBAAT,OAOX;AAAA,MAPwC;AAC3CC,IAAAA,UAD2C;AAE3CC,IAAAA,MAF2C;AAG3CC,IAAAA,QAH2C;AAI3CC,IAAAA,0BAJ2C;AAK3CC,IAAAA,MAL2C;AAM3CC,IAAAA;AAN2C,GAOxC;AACH;AACA;AACA,QAAMC,UAAU,GAAG,yBAAYC,qBAASC,OAArB,CAAnB;AACA,QAAMC,UAAU,GAAG,qBAAQ,KAAR,CAAnB;AAEA,QAAMC,gBAAgB,GAAG,sCAAqBV,UAArB,EAAiC;AACzDW,IAAAA,cAAc,EAAEN,YAAY,GAAGO,SAAH,GAAe;AADc,GAAjC,CAAzB;AAIA,QAAM;AACLC,IAAAA,QADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA;AAHK,MAIF,qBACDC,MAAF,IAAc;AACb,QAAKV,UAAL,EAAkB;AACjB,aAAOX,YAAP;AACA;;AAED,UAAM;AACLsB,MAAAA,gBADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,eAAF,CAJV;AAMA,WAAO;AACNP,MAAAA,QAAQ,EAAEM,oBAAoB,CAAE,UAAF,EAAc,eAAd,CADxB;AAENL,MAAAA,oBAAoB,EAAEG,gBAAgB,CAAE,GAAGrB,iBAAL,CAFhC;AAGNmB,MAAAA,+BAA+B,EAAEG,qBAAqB,CACrD,kBADqD,EAErDtB,iBAFqD;AAHhD,KAAP;AAQA,GApBE,EAqBH,CAAEU,UAAF,CArBG,CAJJ;AA4BA,QAAM;AAAEe,IAAAA,0BAAF;AAA8BC,IAAAA;AAA9B,MAAkD,iCAAxD;AAEA,QAAMC,oBAAoB,GAAG,sCAAyBrB,QAAzB,CAA7B,CAxCG,CA0CH;;AACA,0BAAW,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QACCI,UAAU,IACVH,0BADA,IAEAU,QAFA,IAGAJ,UAAU,CAACe,OAHX,IAIA,CAAET,+BAJF,IAKA,CAAEM,0BALF,IAMA,CAAEhB,YAPH,EAQE;AACD;AACA;;AAEDI,IAAAA,UAAU,CAACe,OAAX,GAAqB,IAArB;AACA,UAAMC,IAAI,GAAG,MAAMF,oBAAoB,CAAE,IAAF,EAAQtB,MAAR,CAAvC;AACAG,IAAAA,MAAM,CAAEqB,IAAF,CAAN;AACAhB,IAAAA,UAAU,CAACe,OAAX,GAAqB,KAArB;AACA,GA7BD,EA6BG,CACFlB,UADE,EAEFO,QAFE,EAGFE,+BAHE,EAIFM,0BAJE,EAKFP,oBALE,EAMFQ,eANE,EAOFjB,YAPE,EAQFkB,oBARE,EASFtB,MATE,CA7BH;AAyCA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAG,yBACX,8CADW,EAEX;AACC,mBAAaI;AADd,KAFW;AADb,KAQC,mCAAUK,gBAAV,CARD,CADD,EAWGL,YAAY,IAAI,4BAAC,mBAAD,OAXnB,CADD;AAeA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps } from '@wordpress/block-editor';\nimport { Disabled, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\n\nconst EMPTY_OBJECT = {};\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nexport default function UnsavedInnerBlocks( {\n\tblockProps,\n\tblocks,\n\tclientId,\n\thasSavedUnsavedInnerBlocks,\n\tonSave,\n\thasSelection,\n} ) {\n\t// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\tconst savingLock = useRef( false );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: hasSelection ? undefined : false,\n\t} );\n\n\tconst {\n\t\tisSaving,\n\t\tdraftNavigationMenus,\n\t\thasResolvedDraftNavigationMenus,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isDisabled ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tisSavingEntityRecord,\n\t\t\t} = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tisSaving: isSavingEntityRecord( 'postType', 'wp_navigation' ),\n\t\t\t\tdraftNavigationMenus: getEntityRecords( ...DRAFT_MENU_PARAMS ),\n\t\t\t\thasResolvedDraftNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tDRAFT_MENU_PARAMS\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ isDisabled ]\n\t);\n\n\tconst { hasResolvedNavigationMenus, navigationMenus } = useNavigationMenu();\n\n\tconst createNavigationMenu = useCreateNavigationMenu( clientId );\n\n\t// Automatically save the uncontrolled blocks.\n\tuseEffect( async () => {\n\t\t// The block will be disabled when used in a BlockPreview.\n\t\t// In this case avoid automatic creation of a wp_navigation post.\n\t\t// Otherwise the user will be spammed with lots of menus!\n\t\t//\n\t\t// Also ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\t//\n\t\t// Don't try saving when another save is already\n\t\t// in progress.\n\t\t//\n\t\t// And finally only create the menu when the block is selected,\n\t\t// which is an indication they want to start editing.\n\t\tif (\n\t\t\tisDisabled ||\n\t\t\thasSavedUnsavedInnerBlocks ||\n\t\t\tisSaving ||\n\t\t\tsavingLock.current ||\n\t\t\t! hasResolvedDraftNavigationMenus ||\n\t\t\t! hasResolvedNavigationMenus ||\n\t\t\t! hasSelection\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsavingLock.current = true;\n\t\tconst menu = await createNavigationMenu( null, blocks );\n\t\tonSave( menu );\n\t\tsavingLock.current = false;\n\t}, [\n\t\tisDisabled,\n\t\tisSaving,\n\t\thasResolvedDraftNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tdraftNavigationMenus,\n\t\tnavigationMenus,\n\t\thasSelection,\n\t\tcreateNavigationMenu,\n\t\tblocks,\n\t] );\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__unsaved-changes\">\n\t\t\t<Disabled\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-navigation__unsaved-changes-overlay',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-saving': hasSelection,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</Disabled>\n\t\t\t{ hasSelection && <Spinner /> }\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
|
|
12
|
+
var _notices = require("@wordpress/notices");
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* WordPress dependencies
|
|
16
|
+
*/
|
|
17
|
+
function useNavigationNotice() {
|
|
18
|
+
let {
|
|
19
|
+
name,
|
|
20
|
+
message
|
|
21
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
22
|
+
const noticeRef = (0, _element.useRef)();
|
|
23
|
+
const {
|
|
24
|
+
createWarningNotice,
|
|
25
|
+
removeNotice
|
|
26
|
+
} = (0, _data.useDispatch)(_notices.store);
|
|
27
|
+
|
|
28
|
+
const showNotice = () => {
|
|
29
|
+
if (noticeRef.current) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
noticeRef.current = name;
|
|
34
|
+
createWarningNotice(message, {
|
|
35
|
+
id: noticeRef.current,
|
|
36
|
+
type: 'snackbar'
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const hideNotice = () => {
|
|
41
|
+
if (!noticeRef.current) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
removeNotice(noticeRef.current);
|
|
46
|
+
noticeRef.current = null;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return [showNotice, hideNotice];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
var _default = useNavigationNotice;
|
|
53
|
+
exports.default = _default;
|
|
54
|
+
//# sourceMappingURL=use-navigation-notice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/use-navigation-notice.js"],"names":["useNavigationNotice","name","message","noticeRef","createWarningNotice","removeNotice","noticeStore","showNotice","current","id","type","hideNotice"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;AAKA,SAASA,mBAAT,GAAuD;AAAA,MAAzB;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAyB,uEAAL,EAAK;AACtD,QAAMC,SAAS,GAAG,sBAAlB;AAEA,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAAwC,uBAAaC,cAAb,CAA9C;;AAEA,QAAMC,UAAU,GAAG,MAAM;AACxB,QAAKJ,SAAS,CAACK,OAAf,EAAyB;AACxB;AACA;;AAEDL,IAAAA,SAAS,CAACK,OAAV,GAAoBP,IAApB;AAEAG,IAAAA,mBAAmB,CAAEF,OAAF,EAAW;AAC7BO,MAAAA,EAAE,EAAEN,SAAS,CAACK,OADe;AAE7BE,MAAAA,IAAI,EAAE;AAFuB,KAAX,CAAnB;AAIA,GAXD;;AAaA,QAAMC,UAAU,GAAG,MAAM;AACxB,QAAK,CAAER,SAAS,CAACK,OAAjB,EAA2B;AAC1B;AACA;;AACDH,IAAAA,YAAY,CAAEF,SAAS,CAACK,OAAZ,CAAZ;AACAL,IAAAA,SAAS,CAACK,OAAV,GAAoB,IAApB;AACA,GAND;;AAQA,SAAO,CAAED,UAAF,EAAcI,UAAd,CAAP;AACA;;eAEcX,mB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticeStore } from '@wordpress/notices';\n\nfunction useNavigationNotice( { name, message } = {} ) {\n\tconst noticeRef = useRef();\n\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\n\tconst showNotice = () => {\n\t\tif ( noticeRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnoticeRef.current = name;\n\n\t\tcreateWarningNotice( message, {\n\t\t\tid: noticeRef.current,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst hideNotice = () => {\n\t\tif ( ! noticeRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tremoveNotice( noticeRef.current );\n\t\tnoticeRef.current = null;\n\t};\n\n\treturn [ showNotice, hideNotice ];\n}\n\nexport default useNavigationNotice;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["name","metadata","settings","icon","example","innerBlocks","attributes","label","url","edit","save","deprecated"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["name","metadata","settings","icon","example","innerBlocks","attributes","label","url","edit","save","deprecated"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,iBADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,WAAW,EAAE,CACZ;AACCL,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,MAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KADY,EASZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,OAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KATY,EAiBZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,SAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KAjBY;AADL,GAFc;AA8BvBC,EAAAA,IAAI,EAAJA,aA9BuB;AA+BvBC,EAAAA,IAAI,EAAJA,aA/BuB;AAgCvBC,EAAAA,UAAU,EAAVA;AAhCuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
|
|
@@ -9,6 +9,8 @@ var _lodash = require("lodash");
|
|
|
9
9
|
|
|
10
10
|
var _blocks = require("@wordpress/blocks");
|
|
11
11
|
|
|
12
|
+
var _hooks = require("@wordpress/hooks");
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* External dependencies
|
|
14
16
|
*/
|
|
@@ -30,7 +32,8 @@ function menuItemsToBlocks(menuItems) {
|
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
const menuTree = createDataTree(menuItems);
|
|
33
|
-
|
|
35
|
+
const blocks = mapMenuItemsToBlocks(menuTree);
|
|
36
|
+
return (0, _hooks.applyFilters)('blocks.navigation.__unstableMenuItemsToBlocks', blocks, menuItems);
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* A recursive function that maps menu item nodes to blocks.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/menu-items-to-blocks.js"],"names":["menuItemsToBlocks","menuItems","menuTree","createDataTree","mapMenuItemsToBlocks","mapping","sortedItems","innerBlocks","map","menuItem","type","block","content","raw","attributes","menuItemToBlockAttributes","nestedBlocks","nestedMapping","children","length","blockType","id","clientId","title","menuItemTitleField","xfn","classes","attr_title","object","object_id","description","url","menuItemTypeField","target","label","rendered","kind","replace","join","trim","rel","className","opensInNewTab","dataset","relation","hashTable","Object","create","dataTree","data","push"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\treturn mapMenuItemsToBlocks( menuTree );\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = sortBy( menuItems, 'menu_order' );\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst attributes = menuItemToBlockAttributes( menuItem );\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes( {\n\ttitle: menuItemTitleField,\n\txfn,\n\tclasses,\n\t// eslint-disable-next-line camelcase\n\tattr_title,\n\tobject,\n\t// eslint-disable-next-line camelcase\n\tobject_id,\n\tdescription,\n\turl,\n\ttype: menuItemTypeField,\n\ttarget,\n} ) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t// eslint-disable-next-line camelcase\n\t\t...( object_id &&\n\t\t\t'custom' !== object && {\n\t\t\t\tid: object_id,\n\t\t\t} ),\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/menu-items-to-blocks.js"],"names":["menuItemsToBlocks","menuItems","menuTree","createDataTree","blocks","mapMenuItemsToBlocks","mapping","sortedItems","innerBlocks","map","menuItem","type","block","content","raw","attributes","menuItemToBlockAttributes","nestedBlocks","nestedMapping","children","length","blockType","id","clientId","title","menuItemTitleField","xfn","classes","attr_title","object","object_id","description","url","menuItemTypeField","target","label","rendered","kind","replace","join","trim","rel","className","opensInNewTab","dataset","relation","hashTable","Object","create","dataTree","data","push"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\tconst blocks = mapMenuItemsToBlocks( menuTree );\n\treturn applyFilters(\n\t\t'blocks.navigation.__unstableMenuItemsToBlocks',\n\t\tblocks,\n\t\tmenuItems\n\t);\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = sortBy( menuItems, 'menu_order' );\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst attributes = menuItemToBlockAttributes( menuItem );\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * Changes made here should also be mirrored in packages/edit-navigation/src/store/utils.js.\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes( {\n\ttitle: menuItemTitleField,\n\txfn,\n\tclasses,\n\t// eslint-disable-next-line camelcase\n\tattr_title,\n\tobject,\n\t// eslint-disable-next-line camelcase\n\tobject_id,\n\tdescription,\n\turl,\n\ttype: menuItemTypeField,\n\ttarget,\n} ) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t// eslint-disable-next-line camelcase\n\t\t...( object_id &&\n\t\t\t'custom' !== object && {\n\t\t\t\tid: object_id,\n\t\t\t} ),\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n"]}
|
|
@@ -20,7 +20,8 @@ function useNavigationMenu(ref) {
|
|
|
20
20
|
getEntityRecord,
|
|
21
21
|
getEditedEntityRecord,
|
|
22
22
|
getEntityRecords,
|
|
23
|
-
hasFinishedResolution
|
|
23
|
+
hasFinishedResolution,
|
|
24
|
+
canUser
|
|
24
25
|
} = select(_coreData.store);
|
|
25
26
|
const navigationMenuSingleArgs = ['postType', 'wp_navigation', ref];
|
|
26
27
|
const rawNavigationMenu = ref ? getEntityRecord(...navigationMenuSingleArgs) : null;
|
|
@@ -44,7 +45,13 @@ function useNavigationMenu(ref) {
|
|
|
44
45
|
canSwitchNavigationMenu,
|
|
45
46
|
hasResolvedNavigationMenus: hasFinishedResolution('getEntityRecords', navigationMenuMultipleArgs),
|
|
46
47
|
navigationMenu,
|
|
47
|
-
navigationMenus
|
|
48
|
+
navigationMenus,
|
|
49
|
+
canUserUpdateNavigationEntity: ref ? canUser('update', 'navigation', ref) : undefined,
|
|
50
|
+
hasResolvedCanUserUpdateNavigationEntity: hasFinishedResolution('canUser', ['update', 'navigation', ref]),
|
|
51
|
+
canUserDeleteNavigationEntity: ref ? canUser('delete', 'navigation', ref) : undefined,
|
|
52
|
+
hasResolvedCanUserDeleteNavigationEntity: hasFinishedResolution('canUser', ['delete', 'navigation', ref]),
|
|
53
|
+
canUserCreateNavigation: canUser('create', 'navigation'),
|
|
54
|
+
hasResolvedCanUserCreateNavigation: hasFinishedResolution('canUser', ['create', 'navigation'])
|
|
48
55
|
};
|
|
49
56
|
}, [ref]);
|
|
50
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["useNavigationMenu","ref","select","getEntityRecord","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","coreStore","navigationMenuSingleArgs","rawNavigationMenu","navigationMenu","status","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","hasResolvedNavigationMenus"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,GAA5B,EAAkC;AAChD,SAAO,qBACJC,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["useNavigationMenu","ref","select","getEntityRecord","getEditedEntityRecord","getEntityRecords","hasFinishedResolution","canUser","coreStore","navigationMenuSingleArgs","rawNavigationMenu","navigationMenu","status","hasResolvedNavigationMenu","navigationMenuMultipleArgs","per_page","navigationMenus","canSwitchNavigationMenu","length","isNavigationMenuResolved","isNavigationMenuMissing","hasResolvedNavigationMenus","canUserUpdateNavigationEntity","undefined","hasResolvedCanUserUpdateNavigationEntity","canUserDeleteNavigationEntity","hasResolvedCanUserDeleteNavigationEntity","canUserCreateNavigation","hasResolvedCanUserCreateNavigation"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,GAA5B,EAAkC;AAChD,SAAO,qBACJC,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA,qBAJK;AAKLC,MAAAA;AALK,QAMFL,MAAM,CAAEM,eAAF,CANV;AAQA,UAAMC,wBAAwB,GAAG,CAChC,UADgC,EAEhC,eAFgC,EAGhCR,GAHgC,CAAjC;AAKA,UAAMS,iBAAiB,GAAGT,GAAG,GAC1BE,eAAe,CAAE,GAAGM,wBAAL,CADW,GAE1B,IAFH;AAGA,QAAIE,cAAc,GAAGV,GAAG,GACrBG,qBAAqB,CAAE,GAAGK,wBAAL,CADA,GAErB,IAFH,CAjBa,CAqBb;AACA;;AACA,QAAK,oBAAAE,cAAc,UAAd,0DAAgBC,MAAhB,MAA2B,SAAhC,EAA4C;AAC3CD,MAAAA,cAAc,GAAG,IAAjB;AACA;;AAED,UAAME,yBAAyB,GAAGZ,GAAG,GAClCK,qBAAqB,CACrB,uBADqB,EAErBG,wBAFqB,CADa,GAKlC,KALH;AAOA,UAAMK,0BAA0B,GAAG,CAClC,UADkC,EAElC,eAFkC,EAGlC;AAAEC,MAAAA,QAAQ,EAAE,CAAC,CAAb;AAAgBH,MAAAA,MAAM,EAAE;AAAxB,KAHkC,CAAnC;AAKA,UAAMI,eAAe,GAAGX,gBAAgB,CACvC,GAAGS,0BADoC,CAAxC;AAIA,UAAMG,uBAAuB,GAAGhB,GAAG,GAChC,CAAAe,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CADM,GAEhC,CAAAF,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAEE,MAAjB,IAA0B,CAF7B;AAIA,WAAO;AACNC,MAAAA,wBAAwB,EAAEN,yBADpB;AAENO,MAAAA,uBAAuB,EACtB,CAAEnB,GAAF,IACEY,yBAAyB,IAAI,CAAEH,iBAJ5B;AAKNO,MAAAA,uBALM;AAMNI,MAAAA,0BAA0B,EAAEf,qBAAqB,CAChD,kBADgD,EAEhDQ,0BAFgD,CAN3C;AAUNH,MAAAA,cAVM;AAWNK,MAAAA,eAXM;AAYNM,MAAAA,6BAA6B,EAAErB,GAAG,GAC/BM,OAAO,CAAE,QAAF,EAAY,YAAZ,EAA0BN,GAA1B,CADwB,GAE/BsB,SAdG;AAeNC,MAAAA,wCAAwC,EAAElB,qBAAqB,CAC9D,SAD8D,EAE9D,CAAE,QAAF,EAAY,YAAZ,EAA0BL,GAA1B,CAF8D,CAfzD;AAmBNwB,MAAAA,6BAA6B,EAAExB,GAAG,GAC/BM,OAAO,CAAE,QAAF,EAAY,YAAZ,EAA0BN,GAA1B,CADwB,GAE/BsB,SArBG;AAsBNG,MAAAA,wCAAwC,EAAEpB,qBAAqB,CAC9D,SAD8D,EAE9D,CAAE,QAAF,EAAY,YAAZ,EAA0BL,GAA1B,CAF8D,CAtBzD;AA0BN0B,MAAAA,uBAAuB,EAAEpB,OAAO,CAAE,QAAF,EAAY,YAAZ,CA1B1B;AA2BNqB,MAAAA,kCAAkC,EAAEtB,qBAAqB,CACxD,SADwD,EAExD,CAAE,QAAF,EAAY,YAAZ,CAFwD;AA3BnD,KAAP;AAgCA,GAhFK,EAiFN,CAAEL,GAAF,CAjFM,CAAP;AAmFA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\n\t\t\tconst navigationMenuSingleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\tref,\n\t\t\t];\n\t\t\tconst rawNavigationMenu = ref\n\t\t\t\t? getEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\t\t\tlet navigationMenu = ref\n\t\t\t\t? getEditedEntityRecord( ...navigationMenuSingleArgs )\n\t\t\t\t: null;\n\n\t\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t\t// Therefore if the found post is not published then we should ignore it.\n\t\t\tif ( navigationMenu?.status !== 'publish' ) {\n\t\t\t\tnavigationMenu = null;\n\t\t\t}\n\n\t\t\tconst hasResolvedNavigationMenu = ref\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tnavigationMenuSingleArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst navigationMenuMultipleArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_navigation',\n\t\t\t\t{ per_page: -1, status: 'publish' },\n\t\t\t];\n\t\t\tconst navigationMenus = getEntityRecords(\n\t\t\t\t...navigationMenuMultipleArgs\n\t\t\t);\n\n\t\t\tconst canSwitchNavigationMenu = ref\n\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t: navigationMenus?.length > 0;\n\n\t\t\treturn {\n\t\t\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\t\t\tisNavigationMenuMissing:\n\t\t\t\t\t! ref ||\n\t\t\t\t\t( hasResolvedNavigationMenu && ! rawNavigationMenu ),\n\t\t\t\tcanSwitchNavigationMenu,\n\t\t\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tnavigationMenuMultipleArgs\n\t\t\t\t),\n\t\t\t\tnavigationMenu,\n\t\t\t\tnavigationMenus,\n\t\t\t\tcanUserUpdateNavigationEntity: ref\n\t\t\t\t\t? canUser( 'update', 'navigation', ref )\n\t\t\t\t\t: undefined,\n\t\t\t\thasResolvedCanUserUpdateNavigationEntity: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'update', 'navigation', ref ]\n\t\t\t\t),\n\t\t\t\tcanUserDeleteNavigationEntity: ref\n\t\t\t\t\t? canUser( 'delete', 'navigation', ref )\n\t\t\t\t\t: undefined,\n\t\t\t\thasResolvedCanUserDeleteNavigationEntity: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'delete', 'navigation', ref ]\n\t\t\t\t),\n\t\t\t\tcanUserCreateNavigation: canUser( 'create', 'navigation' ),\n\t\t\t\thasResolvedCanUserCreateNavigation: hasFinishedResolution(\n\t\t\t\t\t'canUser',\n\t\t\t\t\t[ 'create', 'navigation' ]\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ ref ]\n\t);\n}\n"]}
|
package/build/navigation/view.js
CHANGED
|
@@ -9,14 +9,19 @@ var _micromodal = _interopRequireDefault(require("micromodal"));
|
|
|
9
9
|
*/
|
|
10
10
|
// Responsive navigation toggle.
|
|
11
11
|
function navigationToggleModal(modal) {
|
|
12
|
-
const
|
|
13
|
-
const closeButton = modal.querySelector('button[data-micromodal-close]'); // Use aria-hidden to determine the status of the modal, as this attribute is
|
|
14
|
-
// managed by micromodal.
|
|
15
|
-
|
|
12
|
+
const dialogContainer = document.querySelector(`.wp-block-navigation__responsive-dialog`);
|
|
16
13
|
const isHidden = 'true' === modal.getAttribute('aria-hidden');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
modal.classList.toggle('has-modal-open', !isHidden);
|
|
15
|
+
dialogContainer.toggleAttribute('aria-modal', !isHidden);
|
|
16
|
+
|
|
17
|
+
if (isHidden) {
|
|
18
|
+
dialogContainer.removeAttribute('role');
|
|
19
|
+
dialogContainer.removeAttribute('aria-modal');
|
|
20
|
+
} else {
|
|
21
|
+
dialogContainer.setAttribute('role', 'dialog');
|
|
22
|
+
dialogContainer.setAttribute('aria-modal', 'true');
|
|
23
|
+
} // Add a class to indicate the modal is open.
|
|
24
|
+
|
|
20
25
|
|
|
21
26
|
const htmlElement = document.documentElement;
|
|
22
27
|
htmlElement.classList.toggle('has-modal-open');
|
|
@@ -51,7 +56,7 @@ function toggleSubmenuOnClick(event) {
|
|
|
51
56
|
// scripts could be loaded before the body.
|
|
52
57
|
|
|
53
58
|
|
|
54
|
-
window.
|
|
59
|
+
window.addEventListener('load', () => {
|
|
55
60
|
_micromodal.default.init({
|
|
56
61
|
onShow: navigationToggleModal,
|
|
57
62
|
onClose: navigationToggleModal,
|
|
@@ -80,5 +85,5 @@ window.onload = () => {
|
|
|
80
85
|
}
|
|
81
86
|
});
|
|
82
87
|
});
|
|
83
|
-
};
|
|
88
|
+
});
|
|
84
89
|
//# sourceMappingURL=view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/view.js"],"names":["navigationToggleModal","modal","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/view.js"],"names":["navigationToggleModal","modal","dialogContainer","document","querySelector","isHidden","getAttribute","classList","toggle","toggleAttribute","removeAttribute","setAttribute","htmlElement","documentElement","closeSubmenus","element","querySelectorAll","forEach","toggleSubmenuOnClick","event","buttonToggle","target","closest","isSubmenuOpen","parentElement","navigationParent","child","window","addEventListener","MicroModal","init","onShow","onClose","openClass","submenuButtons","button","navigationBlocks","block","contains","submenuBlocks"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport MicroModal from 'micromodal';\n\n// Responsive navigation toggle.\nfunction navigationToggleModal( modal ) {\n\tconst dialogContainer = document.querySelector(\n\t\t`.wp-block-navigation__responsive-dialog`\n\t);\n\n\tconst isHidden = 'true' === modal.getAttribute( 'aria-hidden' );\n\n\tmodal.classList.toggle( 'has-modal-open', ! isHidden );\n\tdialogContainer.toggleAttribute( 'aria-modal', ! isHidden );\n\n\tif ( isHidden ) {\n\t\tdialogContainer.removeAttribute( 'role' );\n\t\tdialogContainer.removeAttribute( 'aria-modal' );\n\t} else {\n\t\tdialogContainer.setAttribute( 'role', 'dialog' );\n\t\tdialogContainer.setAttribute( 'aria-modal', 'true' );\n\t}\n\n\t// Add a class to indicate the modal is open.\n\tconst htmlElement = document.documentElement;\n\thtmlElement.classList.toggle( 'has-modal-open' );\n}\n\n// Open on click functionality.\nfunction closeSubmenus( element ) {\n\telement\n\t\t.querySelectorAll( '[aria-expanded=\"true\"]' )\n\t\t.forEach( function ( toggle ) {\n\t\t\ttoggle.setAttribute( 'aria-expanded', 'false' );\n\t\t} );\n}\n\nfunction toggleSubmenuOnClick( event ) {\n\tconst buttonToggle = event.target.closest( '[aria-expanded]' );\n\tconst isSubmenuOpen = buttonToggle.getAttribute( 'aria-expanded' );\n\n\tif ( isSubmenuOpen === 'true' ) {\n\t\tcloseSubmenus( buttonToggle.closest( '.wp-block-navigation-item' ) );\n\t} else {\n\t\t// Close all sibling submenus.\n\t\tconst parentElement = buttonToggle.closest(\n\t\t\t'.wp-block-navigation-item'\n\t\t);\n\t\tconst navigationParent = buttonToggle.closest(\n\t\t\t'.wp-block-navigation__submenu-container, .wp-block-navigation__container, .wp-block-page-list'\n\t\t);\n\t\tnavigationParent\n\t\t\t.querySelectorAll( '.wp-block-navigation-item' )\n\t\t\t.forEach( function ( child ) {\n\t\t\t\tif ( child !== parentElement ) {\n\t\t\t\t\tcloseSubmenus( child );\n\t\t\t\t}\n\t\t\t} );\n\t\t// Open submenu.\n\t\tbuttonToggle.setAttribute( 'aria-expanded', 'true' );\n\t}\n}\n\n// Necessary for some themes such as TT1 Blocks, where\n// scripts could be loaded before the body.\nwindow.addEventListener( 'load', () => {\n\tMicroModal.init( {\n\t\tonShow: navigationToggleModal,\n\t\tonClose: navigationToggleModal,\n\t\topenClass: 'is-menu-open',\n\t} );\n\n\tconst submenuButtons = document.querySelectorAll(\n\t\t'.wp-block-navigation-submenu__toggle'\n\t);\n\n\tsubmenuButtons.forEach( function ( button ) {\n\t\tbutton.addEventListener( 'click', toggleSubmenuOnClick );\n\t} );\n\n\t// Close on click outside.\n\tdocument.addEventListener( 'click', function ( event ) {\n\t\tconst navigationBlocks = document.querySelectorAll(\n\t\t\t'.wp-block-navigation'\n\t\t);\n\t\tnavigationBlocks.forEach( function ( block ) {\n\t\t\tif ( ! block.contains( event.target ) ) {\n\t\t\t\tcloseSubmenus( block );\n\t\t\t}\n\t\t} );\n\t} );\n\t// Close on focus outside.\n\tdocument.addEventListener( 'keyup', function ( event ) {\n\t\tconst submenuBlocks = document.querySelectorAll(\n\t\t\t'.wp-block-navigation-item.has-child'\n\t\t);\n\t\tsubmenuBlocks.forEach( function ( block ) {\n\t\t\tif ( ! block.contains( event.target ) ) {\n\t\t\t\tcloseSubmenus( block );\n\t\t\t}\n\t\t} );\n\t} );\n} );\n"]}
|
|
@@ -558,7 +558,7 @@ function NavigationSubmenuEdit(_ref) {
|
|
|
558
558
|
// see: https://github.com/WordPress/gutenberg/pull/34615.
|
|
559
559
|
__experimentalCaptureToolbars: true,
|
|
560
560
|
renderAppender: isSelected || isImmediateParentOfSelectedBlock && !selectedBlockHasDescendants || // Show the appender while dragging to allow inserting element between item and the appender.
|
|
561
|
-
hasDescendants ? _blockEditor.InnerBlocks.
|
|
561
|
+
hasDescendants ? _blockEditor.InnerBlocks.ButtonBlockAppender : false
|
|
562
562
|
});
|
|
563
563
|
const ParentElement = openSubmenusOnClick ? 'button' : 'a';
|
|
564
564
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_components.ToolbarGroup, null, !openSubmenusOnClick && (0, _element.createElement)(_components.ToolbarButton, {
|