@wordpress/block-editor 8.5.4 → 9.0.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 +9 -0
- package/README.md +4 -2
- package/build/components/block-alignment-control/constants.js +48 -0
- package/build/components/block-alignment-control/constants.js.map +1 -0
- package/build/components/block-alignment-control/ui.js +9 -40
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +92 -0
- package/build/components/block-alignment-control/ui.native.js.map +1 -0
- package/build/components/block-content-overlay/index.js +13 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-list/block.native.js +3 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +1 -7
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-lock/modal.js +34 -4
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +2 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +4 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mover/button.js +4 -4
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +39 -65
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +11 -5
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-popover/inbetween.js +183 -0
- package/build/components/block-popover/inbetween.js.map +1 -0
- package/build/components/block-popover/index.js +97 -0
- package/build/components/block-popover/index.js.map +1 -0
- package/build/components/{block-tools → block-popover}/use-popover-scroll.js +4 -1
- package/build/components/block-popover/use-popover-scroll.js.map +1 -0
- package/build/components/block-styles/index.js +1 -10
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-tools/back-compat.js +2 -2
- package/build/components/block-tools/back-compat.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +4 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +5 -5
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -121
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -108
- package/build/components/block-tools/selected-block-popover.js.map +1 -0
- package/build/components/color-style-selector/index.js +9 -0
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/duotone-control/index.js +5 -1
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/index.js +0 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/index.native.js +30 -8
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/list-view/block.js +15 -15
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +9 -13
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/context.js +1 -4
- package/build/components/list-view/context.js.map +1 -1
- package/build/components/list-view/index.js +15 -32
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/rich-text/index.js +0 -5
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +0 -4
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/url-input/index.js +7 -3
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +3 -1
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-setting/index.js +42 -18
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/border.js +468 -44
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/dimensions.js +2 -2
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/index.js +3 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/margin.js +64 -12
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +60 -12
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/settings.js +32 -0
- package/build/hooks/settings.js.map +1 -0
- package/build/hooks/use-border-props.js +22 -32
- package/build/hooks/use-border-props.js.map +1 -1
- package/build/store/actions.js +14 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +0 -26
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +47 -15
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-alignment-control/constants.js +36 -0
- package/build-module/components/block-alignment-control/constants.js.map +1 -0
- package/build-module/components/block-alignment-control/ui.js +4 -35
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +78 -0
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -0
- package/build-module/components/block-content-overlay/index.js +13 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-list/block.native.js +3 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -7
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-lock/modal.js +34 -5
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +2 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +4 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mover/button.js +5 -5
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +38 -63
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +10 -5
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +165 -0
- package/build-module/components/block-popover/inbetween.js.map +1 -0
- package/build-module/components/block-popover/index.js +83 -0
- package/build-module/components/block-popover/index.js.map +1 -0
- package/build-module/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
- package/build-module/components/block-popover/use-popover-scroll.js.map +1 -0
- package/build-module/components/block-styles/index.js +1 -9
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-tools/back-compat.js +1 -1
- package/build-module/components/block-tools/back-compat.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +3 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +3 -3
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +16 -121
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/{block-popover.js → selected-block-popover.js} +25 -105
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -0
- package/build-module/components/color-style-selector/index.js +6 -0
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/duotone-control/index.js +4 -1
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/index.js +0 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +31 -10
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/list-view/block.js +15 -16
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +9 -13
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/context.js +1 -4
- package/build-module/components/list-view/context.js.map +1 -1
- package/build-module/components/list-view/index.js +15 -31
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +0 -4
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +0 -4
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +7 -3
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +3 -1
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +43 -19
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/border.js +458 -44
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/dimensions.js +5 -5
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/index.js +2 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/margin.js +61 -13
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +57 -13
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/settings.js +29 -0
- package/build-module/hooks/settings.js.map +1 -0
- package/build-module/hooks/use-border-props.js +21 -30
- package/build-module/hooks/use-border-props.js.map +1 -1
- package/build-module/store/actions.js +14 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +0 -24
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +44 -15
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +128 -276
- package/build-style/style.css +128 -276
- package/package.json +28 -28
- package/src/components/block-alignment-control/constants.js +45 -0
- package/src/components/block-alignment-control/ui.js +69 -109
- package/src/components/block-alignment-control/ui.native.js +86 -0
- package/src/components/block-content-overlay/index.js +19 -2
- package/src/components/block-list/block.native.js +2 -0
- package/src/components/block-list/style.scss +7 -18
- package/src/components/block-list/use-block-props/use-block-class-names.js +1 -11
- package/src/components/block-lock/modal.js +42 -3
- package/src/components/block-lock/toolbar.js +2 -2
- package/src/components/block-lock/use-block-lock.js +4 -1
- package/src/components/block-mover/button.js +5 -7
- package/src/components/block-mover/index.js +37 -60
- package/src/components/block-mover/stories/index.js +110 -0
- package/src/components/block-mover/style.scss +48 -138
- package/src/components/block-navigation/dropdown.js +12 -8
- package/src/components/block-popover/README.md +41 -0
- package/src/components/block-popover/inbetween.js +180 -0
- package/src/components/block-popover/index.js +90 -0
- package/src/components/block-popover/style.scss +27 -0
- package/src/components/{block-tools → block-popover}/use-popover-scroll.js +3 -1
- package/src/components/block-styles/index.js +1 -12
- package/src/components/block-switcher/style.scss +0 -4
- package/src/components/block-toolbar/style.scss +0 -12
- package/src/components/block-tools/back-compat.js +1 -1
- package/src/components/block-tools/block-selection-button.js +3 -1
- package/src/components/block-tools/index.js +6 -4
- package/src/components/block-tools/insertion-point.js +19 -152
- package/src/components/block-tools/{block-popover.js → selected-block-popover.js} +24 -116
- package/src/components/block-tools/style.scss +11 -123
- package/src/components/border-radius-control/style.scss +5 -2
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/color-style-selector/index.js +18 -9
- package/src/components/default-block-appender/style.scss +1 -2
- package/src/components/duotone-control/index.js +8 -1
- package/src/components/gradients/README.md +29 -0
- package/src/components/image-size-control/README.md +1 -1
- package/src/components/index.js +0 -1
- package/src/components/inserter/index.native.js +60 -25
- package/src/components/inserter/style.native.scss +25 -3
- package/src/components/list-view/block.js +24 -34
- package/src/components/list-view/branch.js +10 -20
- package/src/components/list-view/context.js +1 -4
- package/src/components/list-view/index.js +11 -41
- package/src/components/navigable-toolbar/README.md +16 -0
- package/src/components/rich-text/index.js +0 -2
- package/src/components/rich-text/index.native.js +0 -4
- package/src/components/url-input/index.js +6 -3
- package/src/components/use-block-display-information/index.js +2 -0
- package/src/components/use-setting/index.js +57 -21
- package/src/hooks/border.js +438 -72
- package/src/hooks/border.scss +48 -0
- package/src/hooks/dimensions.js +44 -38
- package/src/hooks/index.js +2 -1
- package/src/hooks/margin.js +64 -15
- package/src/hooks/padding.js +60 -15
- package/src/hooks/padding.scss +12 -0
- package/src/hooks/settings.js +32 -0
- package/src/hooks/test/settings.js +48 -0
- package/src/hooks/use-border-props.js +15 -32
- package/src/store/actions.js +14 -2
- package/src/store/defaults.js +0 -1
- package/src/store/reducer.js +0 -21
- package/src/store/selectors.js +46 -15
- package/src/store/test/actions.js +0 -18
- package/src/store/test/reducer.js +0 -19
- package/src/store/test/selectors.js +17 -19
- package/src/style.scss +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-mobile-toolbar/index.js +0 -42
- package/build/components/block-mobile-toolbar/index.js.map +0 -1
- package/build/components/block-tools/block-popover.js.map +0 -1
- package/build/components/block-tools/use-popover-scroll.js.map +0 -1
- package/build/components/border-style-control/index.js +0 -60
- package/build/components/border-style-control/index.js.map +0 -1
- package/build/components/list-view/appender.js +0 -93
- package/build/components/list-view/appender.js.map +0 -1
- package/build/components/list-view/list-item.js +0 -62
- package/build/components/list-view/list-item.js.map +0 -1
- package/build/components/rich-text/use-caret-in-format.js +0 -43
- package/build/components/rich-text/use-caret-in-format.js.map +0 -1
- package/build/hooks/border-color.js +0 -302
- package/build/hooks/border-color.js.map +0 -1
- package/build/hooks/border-style.js +0 -96
- package/build/hooks/border-style.js.map +0 -1
- package/build/hooks/border-width.js +0 -162
- package/build/hooks/border-width.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.js +0 -31
- package/build-module/components/block-mobile-toolbar/index.js.map +0 -1
- package/build-module/components/block-tools/block-popover.js.map +0 -1
- package/build-module/components/block-tools/use-popover-scroll.js.map +0 -1
- package/build-module/components/border-style-control/index.js +0 -50
- package/build-module/components/border-style-control/index.js.map +0 -1
- package/build-module/components/list-view/appender.js +0 -76
- package/build-module/components/list-view/appender.js.map +0 -1
- package/build-module/components/list-view/list-item.js +0 -47
- package/build-module/components/list-view/list-item.js.map +0 -1
- package/build-module/components/rich-text/use-caret-in-format.js +0 -33
- package/build-module/components/rich-text/use-caret-in-format.js.map +0 -1
- package/build-module/hooks/border-color.js +0 -276
- package/build-module/hooks/border-color.js.map +0 -1
- package/build-module/hooks/border-style.js +0 -78
- package/build-module/hooks/border-style.js.map +0 -1
- package/build-module/hooks/border-width.js +0 -143
- package/build-module/hooks/border-width.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.js +0 -24
- package/src/components/block-mobile-toolbar/style.scss +0 -29
- package/src/components/border-style-control/index.js +0 -47
- package/src/components/border-style-control/style.scss +0 -18
- package/src/components/list-view/appender.js +0 -82
- package/src/components/list-view/list-item.js +0 -59
- package/src/components/rich-text/use-caret-in-format.js +0 -28
- package/src/hooks/border-color.js +0 -315
- package/src/hooks/border-style.js +0 -64
- package/src/hooks/border-width.js +0 -139
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -13,6 +15,8 @@ var _i18n = require("@wordpress/i18n");
|
|
|
13
15
|
|
|
14
16
|
var _keycodes = require("@wordpress/keycodes");
|
|
15
17
|
|
|
18
|
+
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
|
|
19
|
+
|
|
16
20
|
/**
|
|
17
21
|
* WordPress dependencies
|
|
18
22
|
*/
|
|
@@ -89,6 +93,11 @@ const BlockColorsStyleSelector = _ref4 => {
|
|
|
89
93
|
children,
|
|
90
94
|
...other
|
|
91
95
|
} = _ref4;
|
|
96
|
+
(0, _deprecated.default)(`wp.blockEditor.BlockColorsStyleSelector`, {
|
|
97
|
+
alternative: 'block supports API',
|
|
98
|
+
since: '6.1',
|
|
99
|
+
version: '6.3'
|
|
100
|
+
});
|
|
92
101
|
return (0, _element.createElement)(_components.Dropdown, {
|
|
93
102
|
position: "bottom right",
|
|
94
103
|
className: "block-library-colors-selector",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/color-style-selector/index.js"],"names":["ColorSelectorSVGIcon","ColorSelectorIcon","style","className","renderToggleComponent","TextColor","BackgroundColor","onToggle","isOpen","openOnArrowDown","event","keyCode","DOWN","preventDefault","BlockColorsStyleSelector","children","other"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/color-style-selector/index.js"],"names":["ColorSelectorSVGIcon","ColorSelectorIcon","style","className","renderToggleComponent","TextColor","BackgroundColor","onToggle","isOpen","openOnArrowDown","event","keyCode","DOWN","preventDefault","BlockColorsStyleSelector","children","other","alternative","since","version"],"mappings":";;;;;;;;;;;AAGA;;AAOA;;AACA;;AACA;;AAZA;AACA;AACA;AAYA,MAAMA,oBAAoB,GAAG,MAC5B,4BAAC,eAAD;AAAK,EAAA,KAAK,EAAC,6BAAX;AAAyC,EAAA,OAAO,EAAC;AAAjD,GACC,4BAAC,gBAAD;AAAM,EAAA,CAAC,EAAC;AAAR,EADD,CADD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,iBAAiB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAA0B;AACrD,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AACC,IAAA,SAAS,EAAI,GAAGA,SAAW,iDAD5B;AAEC,IAAA,KAAK,EAAGD;AAFT,KAIC,4BAAC,oBAAD,OAJD,CADD,CADD;AAUA,CAXD;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,qBAAqB,GAAG;AAAA,MAAE;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAAF;AAAA,SAAsC,SAG7D;AAAA,QAH+D;AACrEC,MAAAA,QADqE;AAErEC,MAAAA;AAFqE,KAG/D;;AACN,UAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,UAAK,CAAEF,MAAF,IAAYE,KAAK,CAACC,OAAN,KAAkBC,cAAnC,EAA0C;AACzCF,QAAAA,KAAK,CAACG,cAAN;AACAN,QAAAA,QAAQ;AACR;AACD,KALD;;AAOA,WACC,4BAAC,wBAAD,QACC,4BAAC,yBAAD;AACC,MAAA,SAAS,EAAC,mEADX;AAEC,MAAA,KAAK,EAAG,cAAI,sBAAJ,CAFT;AAGC,MAAA,OAAO,EAAGA,QAHX;AAIC,MAAA,SAAS,EAAGE,eAJb;AAKC,MAAA,IAAI,EACH,4BAAC,eAAD,QACC,4BAAC,SAAD,QACC,4BAAC,iBAAD,OADD,CADD;AANF,MADD,CADD;AAiBA,GA5B6B;AAAA,CAA9B;;AA8BA,MAAMK,wBAAwB,GAAG,SAA8B;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAY,OAAGC;AAAf,GAA4B;AAC9D,2BAAa,yCAAb,EAAuD;AACtDC,IAAAA,WAAW,EAAE,oBADyC;AAEtDC,IAAAA,KAAK,EAAE,KAF+C;AAGtDC,IAAAA,OAAO,EAAE;AAH6C,GAAvD;AAMA,SACC,4BAAC,oBAAD;AACC,IAAA,QAAQ,EAAC,cADV;AAEC,IAAA,SAAS,EAAC,+BAFX;AAGC,IAAA,gBAAgB,EAAC,wCAHlB;AAIC,IAAA,YAAY,EAAGf,qBAAqB,CAAEY,KAAF,CAJrC;AAKC,IAAA,aAAa,EAAG,MAAMD;AALvB,IADD;AASA,CAhBD;;eAkBeD,wB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tDropdown,\n\tToolbarGroup,\n\tSVG,\n\tPath,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport deprecated from '@wordpress/deprecated';\n\nconst ColorSelectorSVGIcon = () => (\n\t<SVG xmlns=\"https://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t\t<Path d=\"M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z\" />\n\t</SVG>\n);\n\n/**\n * Color Selector Icon component.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.style Style object.\n * @param {string} props.className Class name for component.\n *\n * @return {*} React Icon component.\n */\nconst ColorSelectorIcon = ( { style, className } ) => {\n\treturn (\n\t\t<div className=\"block-library-colors-selector__icon-container\">\n\t\t\t<div\n\t\t\t\tclassName={ `${ className } block-library-colors-selector__state-selection` }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<ColorSelectorSVGIcon />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n/**\n * Renders the Colors Selector Toolbar with the icon button.\n *\n * @param {Object} props Component properties.\n * @param {Object} props.TextColor Text color component that wraps icon.\n * @param {Object} props.BackgroundColor Background color component that wraps icon.\n *\n * @return {*} React toggle button component.\n */\nconst renderToggleComponent = ( { TextColor, BackgroundColor } ) => ( {\n\tonToggle,\n\tisOpen,\n} ) => {\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tonToggle();\n\t\t}\n\t};\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"components-toolbar__control block-library-colors-selector__toggle\"\n\t\t\t\tlabel={ __( 'Open Colors Selector' ) }\n\t\t\t\tonClick={ onToggle }\n\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\ticon={\n\t\t\t\t\t<BackgroundColor>\n\t\t\t\t\t\t<TextColor>\n\t\t\t\t\t\t\t<ColorSelectorIcon />\n\t\t\t\t\t\t</TextColor>\n\t\t\t\t\t</BackgroundColor>\n\t\t\t\t}\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst BlockColorsStyleSelector = ( { children, ...other } ) => {\n\tdeprecated( `wp.blockEditor.BlockColorsStyleSelector`, {\n\t\talternative: 'block supports API',\n\t\tsince: '6.1',\n\t\tversion: '6.3',\n\t} );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tposition=\"bottom right\"\n\t\t\tclassName=\"block-library-colors-selector\"\n\t\t\tcontentClassName=\"block-library-colors-selector__popover\"\n\t\t\trenderToggle={ renderToggleComponent( other ) }\n\t\t\trenderContent={ () => children }\n\t\t/>\n\t);\n};\n\nexport default BlockColorsStyleSelector;\n"]}
|
|
@@ -13,6 +13,8 @@ var _i18n = require("@wordpress/i18n");
|
|
|
13
13
|
|
|
14
14
|
var _keycodes = require("@wordpress/keycodes");
|
|
15
15
|
|
|
16
|
+
var _icons = require("@wordpress/icons");
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* WordPress dependencies
|
|
18
20
|
*/
|
|
@@ -51,8 +53,10 @@ function DuotoneControl(_ref) {
|
|
|
51
53
|
"aria-expanded": isOpen,
|
|
52
54
|
onKeyDown: openOnArrowDown,
|
|
53
55
|
label: (0, _i18n.__)('Apply duotone filter'),
|
|
54
|
-
icon: (0, _element.createElement)(_components.DuotoneSwatch, {
|
|
56
|
+
icon: value ? (0, _element.createElement)(_components.DuotoneSwatch, {
|
|
55
57
|
values: value
|
|
58
|
+
}) : (0, _element.createElement)(_icons.Icon, {
|
|
59
|
+
icon: _icons.filter
|
|
56
60
|
})
|
|
57
61
|
});
|
|
58
62
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone-control/index.js"],"names":["DuotoneControl","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","className","headerTitle","isAlternate","isOpen","onToggle","openOnArrowDown","event","keyCode","DOWN","preventDefault"],"mappings":";;;;;;;;;AAGA;;AAOA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/duotone-control/index.js"],"names":["DuotoneControl","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","className","headerTitle","isAlternate","isOpen","onToggle","openOnArrowDown","event","keyCode","DOWN","preventDefault","filter"],"mappings":";;;;;;;;;AAGA;;AAOA;;AACA;;AACA;;AAZA;AACA;AACA;AAYA,SAASA,cAAT,OAOI;AAAA,MAPqB;AACxBC,IAAAA,YADwB;AAExBC,IAAAA,cAFwB;AAGxBC,IAAAA,mBAHwB;AAIxBC,IAAAA,oBAJwB;AAKxBC,IAAAA,KALwB;AAMxBC,IAAAA;AANwB,GAOrB;AACH,SACC,4BAAC,oBAAD;AACC,IAAA,YAAY,EAAG;AACdC,MAAAA,SAAS,EAAE,uCADG;AAEdC,MAAAA,WAAW,EAAE,cAAI,SAAJ,CAFC;AAGdC,MAAAA,WAAW,EAAE;AAHC,KADhB;AAMC,IAAA,YAAY,EAAG,SAA4B;AAAA,UAA1B;AAAEC,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAA0B;;AAC1C,YAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,YAAK,CAAEH,MAAF,IAAYG,KAAK,CAACC,OAAN,KAAkBC,cAAnC,EAA0C;AACzCF,UAAAA,KAAK,CAACG,cAAN;AACAL,UAAAA,QAAQ;AACR;AACD,OALD;;AAMA,aACC,4BAAC,yBAAD;AACC,QAAA,WAAW,MADZ;AAEC,QAAA,OAAO,EAAGA,QAFX;AAGC,yBAAc,MAHf;AAIC,yBAAgBD,MAJjB;AAKC,QAAA,SAAS,EAAGE,eALb;AAMC,QAAA,KAAK,EAAG,cAAI,sBAAJ,CANT;AAOC,QAAA,IAAI,EACHP,KAAK,GACJ,4BAAC,yBAAD;AAAe,UAAA,MAAM,EAAGA;AAAxB,UADI,GAGJ,4BAAC,WAAD;AAAM,UAAA,IAAI,EAAGY;AAAb;AAXH,QADD;AAiBA,KA9BF;AA+BC,IAAA,aAAa,EAAG,MACf,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,SAAJ;AAAnB,OACC;AAAK,MAAA,SAAS,EAAC;AAAf,OACG,cACD,oEADC,CADH,CADD,EAMC,4BAAC,yBAAD;AACC,MAAA,YAAY,EAAGhB,YADhB;AAEC,MAAA,cAAc,EAAGC,cAFlB;AAGC,MAAA,mBAAmB,EAAGC,mBAHvB;AAIC,MAAA,oBAAoB,EAAGC,oBAJxB;AAKC,MAAA,KAAK,EAAGC,KALT;AAMC,MAAA,QAAQ,EAAGC;AANZ,MAND;AAhCF,IADD;AAmDA;;eAEcN,c","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\tDuotonePicker,\n\tDuotoneSwatch,\n\tMenuGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { Icon, filter } from '@wordpress/icons';\n\nfunction DuotoneControl( {\n\tcolorPalette,\n\tduotonePalette,\n\tdisableCustomColors,\n\tdisableCustomDuotone,\n\tvalue,\n\tonChange,\n} ) {\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ {\n\t\t\t\tclassName: 'block-editor-duotone-control__popover',\n\t\t\t\theaderTitle: __( 'Duotone' ),\n\t\t\t\tisAlternate: true,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\tlabel={ __( 'Apply duotone filter' ) }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\tvalue ? (\n\t\t\t\t\t\t\t\t<DuotoneSwatch values={ value } />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Icon icon={ filter } />\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);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<MenuGroup label={ __( 'Duotone' ) }>\n\t\t\t\t\t<div className=\"block-editor-duotone-control__description\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\t\tdisableCustomDuotone={ disableCustomDuotone }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default DuotoneControl;\n"]}
|
|
@@ -30,7 +30,6 @@ var _exportNames = {
|
|
|
30
30
|
BlockVerticalAlignmentToolbar: true,
|
|
31
31
|
BlockVerticalAlignmentControl: true,
|
|
32
32
|
__experimentalBorderRadiusControl: true,
|
|
33
|
-
__experimentalBorderStyleControl: true,
|
|
34
33
|
ButtonBlockerAppender: true,
|
|
35
34
|
ButtonBlockAppender: true,
|
|
36
35
|
ColorPalette: true,
|
|
@@ -544,12 +543,6 @@ Object.defineProperty(exports, "__experimentalBorderRadiusControl", {
|
|
|
544
543
|
return _borderRadiusControl.default;
|
|
545
544
|
}
|
|
546
545
|
});
|
|
547
|
-
Object.defineProperty(exports, "__experimentalBorderStyleControl", {
|
|
548
|
-
enumerable: true,
|
|
549
|
-
get: function () {
|
|
550
|
-
return _borderStyleControl.default;
|
|
551
|
-
}
|
|
552
|
-
});
|
|
553
546
|
Object.defineProperty(exports, "__experimentalColorGradientControl", {
|
|
554
547
|
enumerable: true,
|
|
555
548
|
get: function () {
|
|
@@ -907,8 +900,6 @@ var _blockVerticalAlignmentControl = require("./block-vertical-alignment-control
|
|
|
907
900
|
|
|
908
901
|
var _borderRadiusControl = _interopRequireDefault(require("./border-radius-control"));
|
|
909
902
|
|
|
910
|
-
var _borderStyleControl = _interopRequireDefault(require("./border-style-control"));
|
|
911
|
-
|
|
912
903
|
var _buttonBlockAppender = _interopRequireWildcard(require("./button-block-appender"));
|
|
913
904
|
|
|
914
905
|
var _colorPalette = _interopRequireDefault(require("./color-palette"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA","sourcesContent":["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalBlockContentOverlay } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport { default as __experimentalBorderStyleControl } from './border-style-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalToolsPanelColorDropdown } from './colors-gradients/tools-panel-color-dropdown';\nexport {\n\tdefault as __experimentalImageEditor,\n\tImageEditingProvider as __experimentalImageEditingProvider,\n} from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as __experimentalLinkControl } from './link-control';\nexport { default as __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { default as __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { default as __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as ToolSelector } from './tool-selector';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\n\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableBlockNameContext } from './block-toolbar/block-name-context';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { LayoutStyle as __experimentalLayoutStyle } from './block-list/layout';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\tuseClipboardHandler as __unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { default as useSetting } from './use-setting';\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA","sourcesContent":["/*\n * Block Creation Components\n */\n\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as Autocomplete } from './autocomplete';\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { default as __experimentalBlockFullHeightAligmentControl } from './block-full-height-alignment-control';\nexport { default as __experimentalBlockAlignmentMatrixControl } from './block-alignment-matrix-control';\nexport { default as BlockBreadcrumb } from './block-breadcrumb';\nexport { default as __experimentalBlockContentOverlay } from './block-content-overlay';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockColorsStyleSelector } from './color-style-selector';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport { default as BlockNavigationDropdown } from './block-navigation/dropdown';\nexport { default as BlockStyles } from './block-styles';\nexport { default as __experimentalBlockVariationPicker } from './block-variation-picker';\nexport { default as __experimentalBlockPatternSetup } from './block-pattern-setup';\nexport { default as __experimentalBlockVariationTransforms } from './block-variation-transforms';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport { default as __experimentalBorderRadiusControl } from './border-radius-control';\nexport {\n\t// This is a typo, but kept here for back-compat.\n\tButtonBlockerAppender,\n\tdefault as ButtonBlockAppender,\n} from './button-block-appender';\nexport { default as ColorPalette } from './color-palette';\nexport { default as ColorPaletteControl } from './color-palette/control';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as __experimentalDateFormatPicker } from './date-format-picker';\nexport { default as __experimentalDuotoneControl } from './duotone-control';\nexport { default as __experimentalFontAppearanceControl } from './font-appearance-control';\nexport { default as __experimentalFontFamilyControl } from './font-family';\nexport { default as __experimentalLetterSpacingControl } from './letter-spacing-control';\nexport { default as __experimentalTextDecorationControl } from './text-decoration-control';\nexport { default as __experimentalTextTransformControl } from './text-transform-control';\nexport { default as __experimentalColorGradientControl } from './colors-gradients/control';\nexport { default as __experimentalColorGradientSettingsDropdown } from './colors-gradients/dropdown';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as __experimentalToolsPanelColorDropdown } from './colors-gradients/tools-panel-color-dropdown';\nexport {\n\tdefault as __experimentalImageEditor,\n\tImageEditingProvider as __experimentalImageEditingProvider,\n} from './image-editor';\nexport { default as __experimentalImageSizeControl } from './image-size-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as __experimentalLinkControl } from './link-control';\nexport { default as __experimentalLinkControlSearchInput } from './link-control/search-input';\nexport { default as __experimentalLinkControlSearchResults } from './link-control/search-results';\nexport { default as __experimentalLinkControlSearchItem } from './link-control/search-item';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as __experimentalListView } from './list-view';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport { default as MediaUploadCheck } from './media-upload/check';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as PlainText } from './plain-text';\nexport { default as __experimentalResponsiveBlockControl } from './responsive-block-control';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as ToolSelector } from './tool-selector';\nexport { default as __experimentalUnitControl } from './unit-control';\nexport { default as URLInput } from './url-input';\nexport { default as URLInputButton } from './url-input/button';\nexport { default as URLPopover } from './url-popover';\nexport { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';\nexport { default as withColorContext } from './color-palette/with-color-context';\n\n/*\n * Content Related Components\n */\n\nexport { default as __unstableBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';\nexport { default as __unstableBlockToolbarLastItem } from './block-toolbar/block-toolbar-last-item';\nexport { default as __unstableBlockNameContext } from './block-toolbar/block-name-context';\nexport { default as __unstableInserterMenuExtension } from './inserter-menu-extension';\nexport { default as __experimentalPreviewOptions } from './preview-options';\nexport { default as __experimentalUseResizeCanvas } from './use-resize-canvas';\nexport { default as BlockInspector } from './block-inspector';\nexport { default as BlockList } from './block-list';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { LayoutStyle as __experimentalLayoutStyle } from './block-list/layout';\nexport { default as BlockMover } from './block-mover';\nexport {\n\tdefault as BlockPreview,\n\tuseBlockPreview as __experimentalUseBlockPreview,\n} from './block-preview';\nexport {\n\tdefault as BlockSelectionClearer,\n\tuseBlockSelectionClearer as __unstableUseBlockSelectionClearer,\n} from './block-selection-clearer';\nexport { default as BlockSettingsMenu } from './block-settings-menu';\nexport { default as BlockSettingsMenuControls } from './block-settings-menu-controls';\nexport { default as BlockTitle } from './block-title';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockTools } from './block-tools';\nexport {\n\tdefault as CopyHandler,\n\tuseClipboardHandler as __unstableUseClipboardHandler,\n} from './copy-handler';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { default as __experimentalLibrary } from './inserter/library';\nexport { default as BlockEditorKeyboardShortcuts } from './keyboard-shortcuts';\nexport { MultiSelectScrollIntoView } from './selection-scroll-into-view';\nexport { default as NavigableToolbar } from './navigable-toolbar';\nexport {\n\tdefault as ObserveTyping,\n\tuseTypingObserver as __unstableUseTypingObserver,\n\tuseMouseMoveTypingReset as __unstableUseMouseMoveTypingReset,\n} from './observe-typing';\nexport { default as SkipToSelectedBlock } from './skip-to-selected-block';\nexport {\n\tdefault as Typewriter,\n\tuseTypewriter as __unstableUseTypewriter,\n} from './typewriter';\nexport { default as Warning } from './warning';\nexport { default as WritingFlow } from './writing-flow';\nexport { default as useBlockDisplayInformation } from './use-block-display-information';\nexport { default as __unstableIframe } from './iframe';\nexport { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';\nexport { default as __experimentalBlockPatternsList } from './block-patterns-list';\n\n/*\n * State Related Components\n */\n\nexport { default as BlockEditorProvider } from './provider';\nexport { default as useSetting } from './use-setting';\n"]}
|
|
@@ -9,6 +9,8 @@ exports.default = exports.Inserter = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
12
14
|
var _reactNative = require("react-native");
|
|
13
15
|
|
|
14
16
|
var _lodash = require("lodash");
|
|
@@ -53,14 +55,30 @@ const defaultRenderToggle = _ref => {
|
|
|
53
55
|
onToggle,
|
|
54
56
|
disabled,
|
|
55
57
|
style,
|
|
56
|
-
|
|
58
|
+
containerStyle,
|
|
59
|
+
onLongPress,
|
|
60
|
+
useExpandedMode
|
|
57
61
|
} = _ref;
|
|
58
|
-
|
|
62
|
+
// The "expanded mode" refers to the editor's appearance when no blocks
|
|
63
|
+
// are currently selected. The "add block" button has a separate style
|
|
64
|
+
// for the "expanded mode", which are added via the below "expandedModeViewProps"
|
|
65
|
+
// and "expandedModeViewText" variables.
|
|
66
|
+
const expandedModeViewProps = useExpandedMode && {
|
|
67
|
+
icon: (0, _element.createElement)(_icons.Icon, {
|
|
68
|
+
icon: _icons.plus,
|
|
69
|
+
style: style
|
|
70
|
+
}),
|
|
71
|
+
customContainerStyles: containerStyle,
|
|
72
|
+
fixedRatio: false
|
|
73
|
+
};
|
|
74
|
+
const expandedModeViewText = (0, _element.createElement)(_reactNative.Text, {
|
|
75
|
+
style: _style.default['inserter-menu__add-block-button-text']
|
|
76
|
+
}, (0, _i18n.__)('Add blocks'));
|
|
77
|
+
return (0, _element.createElement)(_components.ToolbarButton, (0, _extends2.default)({
|
|
59
78
|
title: (0, _i18n._x)('Add block', 'Generic label for block inserter button'),
|
|
60
79
|
icon: (0, _element.createElement)(_icons.Icon, {
|
|
61
80
|
icon: _icons.plusCircleFilled,
|
|
62
|
-
style: style
|
|
63
|
-
color: style.color
|
|
81
|
+
style: style
|
|
64
82
|
}),
|
|
65
83
|
onClick: onToggle,
|
|
66
84
|
extraProps: {
|
|
@@ -71,7 +89,7 @@ const defaultRenderToggle = _ref => {
|
|
|
71
89
|
onLongPress
|
|
72
90
|
},
|
|
73
91
|
isDisabled: disabled
|
|
74
|
-
});
|
|
92
|
+
}, expandedModeViewProps), useExpandedMode && expandedModeViewText);
|
|
75
93
|
};
|
|
76
94
|
|
|
77
95
|
class Inserter extends _element.Component {
|
|
@@ -232,14 +250,16 @@ class Inserter extends _element.Component {
|
|
|
232
250
|
disabled,
|
|
233
251
|
renderToggle = defaultRenderToggle,
|
|
234
252
|
getStylesFromColorScheme,
|
|
235
|
-
showSeparator
|
|
253
|
+
showSeparator,
|
|
254
|
+
useExpandedMode
|
|
236
255
|
} = this.props;
|
|
237
256
|
|
|
238
257
|
if (showSeparator && isOpen) {
|
|
239
258
|
return (0, _element.createElement)(_insertionPoint.default, null);
|
|
240
259
|
}
|
|
241
260
|
|
|
242
|
-
const style = getStylesFromColorScheme(_style.default
|
|
261
|
+
const style = useExpandedMode ? _style.default['inserter-menu__add-block-button-icon--expanded'] : getStylesFromColorScheme(_style.default['inserter-menu__add-block-button-icon'], _style.default['inserter-menu__add-block-button-icon--dark']);
|
|
262
|
+
const containerStyle = getStylesFromColorScheme(_style.default['inserter-menu__add-block-button'], _style.default['inserter-menu__add-block-button--dark']);
|
|
243
263
|
|
|
244
264
|
const onPress = () => {
|
|
245
265
|
this.setState({
|
|
@@ -268,7 +288,9 @@ class Inserter extends _element.Component {
|
|
|
268
288
|
isOpen,
|
|
269
289
|
disabled,
|
|
270
290
|
style,
|
|
271
|
-
|
|
291
|
+
containerStyle,
|
|
292
|
+
onLongPress,
|
|
293
|
+
useExpandedMode
|
|
272
294
|
}), (0, _element.createElement)(_components.Picker, {
|
|
273
295
|
ref: instance => this.picker = instance,
|
|
274
296
|
options: this.getInsertionOptions(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","onLongPress","plusCircleFilled","color","hint","testID","Inserter","Component","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","icon","plusCircle","replaceCurrentOption","addAfterOption","addToBeginningOption","insertBefore","addToEndOption","insertAfter","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","AccessibilityInfo","isScreenReaderEnabled","done","isEnabled","isIOS","Platform","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","styles","addBlockButton","addBlockButtonDark","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","blockEditorStore","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop","withPreferredColorScheme"],"mappings":";;;;;;;;;AAWA;;AARA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAOA;;AAKA;;AACA;;AACA;;AACA;;AA9BA;AACA;AACA;;AAIA;AACA;AACA;;AAgBA;AACA;AACA;AAMA,MAAMA,6BAA6B,GAAG,IAAtC;;AAEA,MAAMC,mBAAmB,GAAG;AAAA,MAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,KAAtB;AAA6BC,IAAAA;AAA7B,GAAF;AAAA,SAC3B,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,WAAJ,EAAiB,yCAAjB,CADT;AAEC,IAAA,IAAI,EACH,4BAAC,WAAD;AACC,MAAA,IAAI,EAAGC,uBADR;AAEC,MAAA,KAAK,EAAGF,KAFT;AAGC,MAAA,KAAK,EAAGA,KAAK,CAACG;AAHf,MAHF;AASC,IAAA,OAAO,EAAGL,QATX;AAUC,IAAA,UAAU,EAAG;AACZM,MAAAA,IAAI,EAAE,cAAI,2BAAJ,CADM;AAEZ;AACA;AACAC,MAAAA,MAAM,EAAE,kBAJI;AAKZJ,MAAAA;AALY,KAVd;AAiBC,IAAA,UAAU,EAAGF;AAjBd,IAD2B;AAAA,CAA5B;;AAsBO,MAAMO,QAAN,SAAuBC,kBAAvB,CAAiC;AACvCC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKX,QAAL,GAAgB,KAAKA,QAAL,CAAcY,IAAd,CAAoB,IAApB,CAAhB;AACA,SAAKC,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BD,IAA1B,CAAgC,IAAhC,CAA5B;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAyB,IAAzB,CAArB;AACA;;AAEDG,EAAAA,mBAAmB,GAAG;AACrB,UAAMC,eAAe,GAAG;AACvBC,MAAAA,KAAK,EAAE,QADgB;AAEvBC,MAAAA,KAAK,EAAE,cAAI,kBAAJ,CAFgB;AAGvBC,MAAAA,IAAI,EAAEC;AAHiB,KAAxB;AAMA,UAAMC,oBAAoB,GAAG;AAC5BJ,MAAAA,KAAK,EAAE,SADqB;AAE5BC,MAAAA,KAAK,EAAE,cAAI,uBAAJ,CAFqB;AAG5BC,MAAAA,IAAI,EAAEf;AAHsB,KAA7B;AAMA,UAAMkB,cAAc,GAAG;AACtBL,MAAAA,KAAK,EAAE,OADe;AAEtBC,MAAAA,KAAK,EAAE,cAAI,iBAAJ,CAFe;AAGtBC,MAAAA,IAAI,EAAEC;AAHgB,KAAvB;AAMA,UAAMG,oBAAoB,GAAG;AAC5BN,MAAAA,KAAK,EAAE,OADqB;AAE5BC,MAAAA,KAAK,EAAE,cAAI,kBAAJ,CAFqB;AAG5BC,MAAAA,IAAI,EAAEK;AAHsB,KAA7B;AAMA,UAAMC,cAAc,GAAG;AACtBR,MAAAA,KAAK,EAAE,KADe;AAEtBC,MAAAA,KAAK,EAAE,cAAI,YAAJ,CAFe;AAGtBC,MAAAA,IAAI,EAAEO;AAHgB,KAAvB;AAMA,UAAM;AAAEC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QAAqD,KAAKC,KAAhE;;AACA,QAAKF,kBAAL,EAA0B;AACzB,UAAKC,0BAAL,EAAkC;AACjC,eAAO,CACNL,oBADM,EAENP,eAFM,EAGNK,oBAHM,EAINC,cAJM,EAKNG,cALM,CAAP;AAOA;;AACD,aAAO,CACNF,oBADM,EAENP,eAFM,EAGNM,cAHM,EAING,cAJM,CAAP;AAMA;;AACD,WAAO,CAAEF,oBAAF,EAAwBE,cAAxB,CAAP;AACA;;AAEDK,EAAAA,iBAAiB,CAAEC,aAAF,EAAkB;AAClC,UAAM;AACLC,MAAAA,qBADK;AAELC,MAAAA,mBAFK;AAGLC,MAAAA,oBAHK;AAILC,MAAAA,mBAJK;AAKLC,MAAAA;AALK,QAMF,KAAKP,KANT;;AAOA,QAAKE,aAAa,KAAK,OAAvB,EAAiC;AAChC,aAAOE,mBAAP;AACA;;AACD,QAAKF,aAAa,KAAK,QAAlB,IAA8BA,aAAa,KAAK,SAArD,EAAiE;AAChE,aAAOG,oBAAP;AACA;;AACD,QAAKH,aAAa,KAAK,OAAvB,EAAiC;AAChC,aAAOI,mBAAP;AACA;;AACD,QAAKJ,aAAa,KAAK,KAAvB,EAA+B;AAC9B,aAAOK,iBAAP;AACA;;AACD,WAAOJ,qBAAP;AACA;;AAEDK,EAAAA,kBAAkB,CAAEN,aAAF,EAAkB;AACnC,UAAM;AAAEH,MAAAA;AAAF,QAAiC,KAAKC,KAA5C;;AACA,QAAKE,aAAa,KAAK,SAAvB,EAAmC;AAClC,aAAO,IAAP;AACA;;AACD,QAAKA,aAAa,KAAK,SAAlB,IAA+BH,0BAApC,EAAiE;AAChE,aAAO,IAAP;AACA;;AACD,WAAO,KAAP;AACA;;AAED5B,EAAAA,QAAQ,CAAEsC,MAAF,EAAW;AAClB,UAAM;AAAEC,MAAAA,oBAAF;AAAwBvC,MAAAA,QAAxB;AAAkCwC,MAAAA;AAAlC,QAAqD,KAAKX,KAAhE;;AAEA,QAAK,CAAES,MAAP,EAAgB;AACf,YAAMG,iBAAiB,GAAGC,MAAM,CAACC,MAAP,CACzBJ,oBADyB,EAExBK,IAFwB,CAEhBC,KAAF,IAAaA,KAAK,GAAG,CAFH,CAA1B;;AAIA,UAAKJ,iBAAL,EAAyB;AACxB,cAAMK,sBAAsB,GAAGJ,MAAM,CAACK,OAAP,CAC9BR,oBAD8B,EAE7BS,MAF6B,CAG9B,CAAEC,GAAF;AAAA,cAAO,CAAEC,SAAF,EAAaL,KAAb,CAAP;AAAA,iBAAmC,EAClC,GAAGI,GAD+B;AAElC,aAAEC,SAAF,GAAeC,IAAI,CAACC,GAAL,CAAUP,KAAK,GAAG,CAAlB,EAAqB,CAArB;AAFmB,WAAnC;AAAA,SAH8B,EAO9B,EAP8B,CAA/B,CADwB,CAWxB;;AACAL,QAAAA,cAAc,CAAE;AACfa,UAAAA,WAAW,EAAEP;AADE,SAAF,CAAd,CAZwB,CAgBxB;;AACA,wDAAyBA,sBAAzB;AACA;AACD,KA3BiB,CA6BlB;;;AACA,QAAK9C,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEsC,MAAF,CAAR;AACA;;AACD,SAAKgB,6BAAL,CAAoChB,MAApC;AACA;;AAEDgB,EAAAA,6BAA6B,CAAEhB,MAAF,EAAW;AACvCiB,mCAAkBC,qBAAlB,GAA0CC,IAA1C,CAAkDC,SAAF,IAAiB;AAChE,UAAKA,SAAL,EAAiB;AAChB,cAAMC,KAAK,GAAGC,sBAASC,EAAT,KAAgB,KAA9B;AACA,cAAMC,YAAY,GAAGxB,MAAM,GACxB,cAAI,+CAAJ,CADwB,GAExB,cAAI,+BAAJ,CAFH;AAGA,2BACC,MACCiB,+BAAkBQ,wBAAlB,CACCD,YADD,CAFF,EAKCH,KAAK,GAAG7D,6BAAH,GAAmC,CALzC;AAOA;AACD,KAdD;AAeA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACCe,EAAAA,oBAAoB,QAAyB;AAAA,QAAvB;AAAEb,MAAAA,QAAF;AAAYsC,MAAAA;AAAZ,KAAuB;AAC5C,UAAM;AACLrC,MAAAA,QADK;AAEL+D,MAAAA,YAAY,GAAGjE,mBAFV;AAGLkE,MAAAA,wBAHK;AAILC,MAAAA;AAJK,QAKF,KAAKrC,KALT;;AAMA,QAAKqC,aAAa,IAAI5B,MAAtB,EAA+B;AAC9B,aAAO,4BAAC,uBAAD,OAAP;AACA;;AACD,UAAMpC,KAAK,GAAG+D,wBAAwB,CACrCE,eAAOC,cAD8B,EAErCD,eAAOE,kBAF8B,CAAtC;;AAKA,UAAMC,OAAO,GAAG,MAAM;AACrB,WAAKC,QAAL,CACC;AACCC,QAAAA,uBAAuB,EAAE,KAAK3C,KAAL,CAAW2C,uBADrC;AAECnC,QAAAA,kBAAkB,EAAE,KAAKA,kBAAL,CAAyB,SAAzB,CAFrB;AAGCoC,QAAAA,cAAc,EAAE,KAAK3C,iBAAL,CAAwB,SAAxB;AAHjB,OADD,EAMC9B,QAND;AAQA,KATD;;AAWA,UAAMG,WAAW,GAAG,MAAM;AACzB,UAAK,KAAKuE,MAAV,EAAmB;AAClB,aAAKA,MAAL,CAAYC,aAAZ;AACA;AACD,KAJD;;AAMA,UAAMC,cAAc,GAAK7C,aAAF,IAAqB;AAC3C,WAAKwC,QAAL,CACC;AACCC,QAAAA,uBAAuB,EAAE,KAAK3C,KAAL,CAAW2C,uBADrC;AAECnC,QAAAA,kBAAkB,EAAE,KAAKA,kBAAL,CACnBN,aADmB,CAFrB;AAKC0C,QAAAA,cAAc,EAAE,KAAK3C,iBAAL,CAAwBC,aAAxB;AALjB,OADD,EAQC/B,QARD;AAUA,KAXD;;AAaA,WACC,qDACGgE,YAAY,CAAE;AACfhE,MAAAA,QAAQ,EAAEsE,OADK;AAEfhC,MAAAA,MAFe;AAGfrC,MAAAA,QAHe;AAIfC,MAAAA,KAJe;AAKfC,MAAAA;AALe,KAAF,CADf,EAQC,4BAAC,kBAAD;AACC,MAAA,GAAG,EAAK0E,QAAF,IAAkB,KAAKH,MAAL,GAAcG,QADvC;AAEC,MAAA,OAAO,EAAG,KAAK9D,mBAAL,EAFX;AAGC,MAAA,QAAQ,EAAG6D,cAHZ;AAIC,MAAA,gBAAgB;AAJjB,MARD,CADD;AAiBA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACC9D,EAAAA,aAAa,QAAwB;AAAA,QAAtB;AAAEgE,MAAAA,OAAF;AAAWxC,MAAAA;AAAX,KAAsB;AACpC,UAAM;AAAEyC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAA2B,KAAKnD,KAAtC;AACA,UAAM;AACL2C,MAAAA,uBADK;AAELnC,MAAAA,kBAFK;AAGLoC,MAAAA;AAHK,QAIF,KAAKQ,KAJT;AAKA,WACC,4BAAC,aAAD;AACC,MAAA,MAAM,EAAG3C,MADV;AAEC,MAAA,QAAQ,EAAGwC,OAFZ;AAGC,MAAA,SAAS,EAAGA,OAHb;AAIC,MAAA,YAAY,EAAGN,uBAJhB;AAKC,MAAA,QAAQ,EAAGO,QALZ;AAMC,MAAA,UAAU,EAAGC,UANd;AAOC,MAAA,kBAAkB,EAAG3C,kBAPtB;AAQC,MAAA,cAAc,EAAGoC;AARlB,MADD;AAYA;;AAEDS,EAAAA,MAAM,GAAG;AACR,WACC,4BAAC,oBAAD;AACC,MAAA,QAAQ,EAAG,KAAKlF,QADjB;AAEC,MAAA,WAAW,EAAG,cAAI,aAAJ,CAFf;AAGC,MAAA,YAAY,EAAG,KAAKa,oBAHrB;AAIC,MAAA,aAAa,EAAG,KAAKC;AAJtB,MADD;AAQA;;AAvQsC;;;;eA0QzB,sBAAS,CACvB,wBAAgBqE,QAAF,IAAgB;AAC7B,QAAM;AAAE3C,IAAAA;AAAF,MAAqB2C,QAAQ,CAAEC,YAAF,CAAnC;AACA,SAAO;AAAE5C,IAAAA;AAAF,GAAP;AACA,CAHD,CADuB,EAKvB,sBAAY,CAAE6C,MAAF,YAAsD;AAAA,MAA5C;AAAEN,IAAAA,QAAF;AAAYC,IAAAA,UAAZ;AAAwBM,IAAAA;AAAxB,GAA4C;AACjE,QAAM;AACLC,IAAAA,oBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,aAJK;AAKLC,IAAAA,QALK;AAMLC,IAAAA,WAAW,EAAEC;AANR,MAOFR,MAAM,CAAED,YAAF,CAPV;AASA,QAAMU,GAAG,GAAGN,oBAAoB,EAAhC,CAViE,CAWjE;AACA;AACA;;AACA,QAAM7D,kBAAkB,GAAG,CAAEqD,UAAF,IAAgBc,GAAhB,IAAuBH,QAAQ,CAAEG,GAAF,CAA1D;AACA,QAAMtB,uBAAuB,GAAG7C,kBAAkB,GAC/C4D,oBAAoB,CAAEO,GAAF,CAD2B,GAE/CR,YAFH;AAGA,QAAMS,kBAAkB,GAAGL,aAAa,CAAEI,GAAF,CAAxC;AACA,QAAME,cAAc,GAAGP,aAAa,CAAEH,YAAF,CAAb,CAA8BW,MAArD;AACA,QAAMC,gCAAgC,GAAGvE,kBAAkB,GACxD,sCAA0BgE,QAAQ,CAAEG,GAAF,CAAlC,CADwD,GAExDK,SAFH;;AAIA,WAASC,wBAAT,GAAoC;AACnC,UAAM;AACLC,MAAAA,kCAAkC,EAAEC;AAD/B,QAEFT,sBAAsB,EAF1B,CADmC,CAKnC;;AACA,QAAKS,oBAAL,EAA4B;AAC3B,aAAO,CAAP;AACA,KARkC,CAUnC;;;AACA,QAAKvB,QAAL,EAAgB;AACf,aAAOW,aAAa,CAAEX,QAAF,CAApB;AACA,KAbkC,CAenC;;;AACA,QAAKpD,kBAAL,EAA0B;AACzB;AACA,UAAKuE,gCAAL,EAAwC;AACvC,eAAOH,kBAAP;AACA,OAJwB,CAMzB;;;AACA,aAAOA,kBAAkB,GAAG,CAA5B;AACA,KAxBkC,CA0BnC;;;AACA,WAAOC,cAAP;AACA;;AAED,QAAM/D,mBAAmB,GAAG,CAA5B;AAEA,QAAMC,oBAAoB,GAAGP,kBAAkB,GAC5CoE,kBAD4C,GAE5C9D,mBAFH;AAIA,QAAME,mBAAmB,GAAGR,kBAAkB,GAC3CoE,kBAAkB,GAAG,CADsB,GAE3CC,cAFH;AAIA,QAAM5D,iBAAiB,GAAG4D,cAA1B;AAEA,SAAO;AACNzD,IAAAA,oBAAoB,EAAEsD,sBAAsB,GAAGxC,WADzC;AAENmB,IAAAA,uBAFM;AAGNxC,IAAAA,qBAAqB,EAAEoE,wBAAwB,EAHzC;AAINlE,IAAAA,oBAJM;AAKNC,IAAAA,mBALM;AAMNF,IAAAA,mBANM;AAONG,IAAAA,iBAPM;AAQNT,IAAAA,kBAAkB,EAAE,CAAC,CAAEA,kBARjB;AASNC,IAAAA,0BAA0B,EAAEsE;AATtB,GAAP;AAWA,CA7ED,CALuB,EAoFvBK,iCApFuB,CAAT,EAqFV/F,QArFU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( { onToggle, disabled, style, onLongPress } ) => (\n\t<ToolbarButton\n\t\ttitle={ _x( 'Add block', 'Generic label for block inserter button' ) }\n\t\ticon={\n\t\t\t<Icon\n\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\tstyle={ style }\n\t\t\t\tcolor={ style.color }\n\t\t\t/>\n\t\t}\n\t\tonClick={ onToggle }\n\t\textraProps={ {\n\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t// usually required for components. See: https://git.io/JeQ7G.\n\t\t\ttestID: 'add-block-button',\n\t\t\tonLongPress,\n\t\t} }\n\t\tisDisabled={ disabled }\n\t/>\n);\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store.\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store.\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = getStylesFromColorScheme(\n\t\t\tstyles.addBlockButton,\n\t\t\tstyles.addBlockButtonDark\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex( end );\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// If post title is selected insert as first block.\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// And the last selected block is unmodified (empty), it will be replaced.\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// We insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","containerStyle","onLongPress","useExpandedMode","expandedModeViewProps","icon","plus","customContainerStyles","fixedRatio","expandedModeViewText","styles","plusCircleFilled","hint","testID","Inserter","Component","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","plusCircle","replaceCurrentOption","addAfterOption","addToBeginningOption","insertBefore","addToEndOption","insertAfter","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","AccessibilityInfo","isScreenReaderEnabled","done","isEnabled","isIOS","Platform","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","blockEditorStore","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform, Text } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplus,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tstyle,\n\tcontainerStyle,\n\tonLongPress,\n\tuseExpandedMode,\n} ) => {\n\t// The \"expanded mode\" refers to the editor's appearance when no blocks\n\t// are currently selected. The \"add block\" button has a separate style\n\t// for the \"expanded mode\", which are added via the below \"expandedModeViewProps\"\n\t// and \"expandedModeViewText\" variables.\n\tconst expandedModeViewProps = useExpandedMode && {\n\t\ticon: <Icon icon={ plus } style={ style } />,\n\t\tcustomContainerStyles: containerStyle,\n\t\tfixedRatio: false,\n\t};\n\tconst expandedModeViewText = (\n\t\t<Text style={ styles[ 'inserter-menu__add-block-button-text' ] }>\n\t\t\t{ __( 'Add blocks' ) }\n\t\t</Text>\n\t);\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\ttitle={ _x(\n\t\t\t\t'Add block',\n\t\t\t\t'Generic label for block inserter button'\n\t\t\t) }\n\t\t\ticon={ <Icon icon={ plusCircleFilled } style={ style } /> }\n\t\t\tonClick={ onToggle }\n\t\t\textraProps={ {\n\t\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t\t// usually required for components. See: https://git.io/JeQ7G.\n\t\t\t\ttestID: 'add-block-button',\n\t\t\t\tonLongPress,\n\t\t\t} }\n\t\t\tisDisabled={ disabled }\n\t\t\t{ ...expandedModeViewProps }\n\t\t>\n\t\t\t{ useExpandedMode && expandedModeViewText }\n\t\t</ToolbarButton>\n\t);\n};\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store.\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store.\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t\tuseExpandedMode,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = useExpandedMode\n\t\t\t? styles[ 'inserter-menu__add-block-button-icon--expanded' ]\n\t\t\t: getStylesFromColorScheme(\n\t\t\t\t\tstyles[ 'inserter-menu__add-block-button-icon' ],\n\t\t\t\t\tstyles[ 'inserter-menu__add-block-button-icon--dark' ]\n\t\t\t );\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyles[ 'inserter-menu__add-block-button' ],\n\t\t\tstyles[ 'inserter-menu__add-block-button--dark' ]\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tcontainerStyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t\tuseExpandedMode,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex( end );\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// If post title is selected insert as first block.\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// And the last selected block is unmodified (empty), it will be replaced.\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// We insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
|
|
@@ -11,6 +11,8 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
+
var _blocks = require("@wordpress/blocks");
|
|
15
|
+
|
|
14
16
|
var _components = require("@wordpress/components");
|
|
15
17
|
|
|
16
18
|
var _compose = require("@wordpress/compose");
|
|
@@ -78,6 +80,11 @@ function ListViewBlock(_ref) {
|
|
|
78
80
|
toggleBlockHighlight
|
|
79
81
|
} = (0, _data.useDispatch)(_store.store);
|
|
80
82
|
const blockInformation = (0, _useBlockDisplayInformation.default)(clientId);
|
|
83
|
+
const blockName = (0, _data.useSelect)(select => select(_store.store).getBlockName(clientId), [clientId]); // When a block hides its toolbar it also hides the block settings menu,
|
|
84
|
+
// since that menu is part of the toolbar in the editor canvas.
|
|
85
|
+
// List View respects this by also hiding the block settings menu.
|
|
86
|
+
|
|
87
|
+
const showBlockActions = (0, _blocks.hasBlockSupport)(blockName, '__experimentalToolbar', true);
|
|
81
88
|
const {
|
|
82
89
|
isLocked
|
|
83
90
|
} = (0, _blockLock.useBlockLock)(clientId);
|
|
@@ -95,9 +102,6 @@ function ListViewBlock(_ref) {
|
|
|
95
102
|
const settingsAriaLabel = blockInformation ? (0, _i18n.sprintf)( // translators: %s: The title of the block.
|
|
96
103
|
(0, _i18n.__)('Options for %s block'), blockInformation.title) : (0, _i18n.__)('Options');
|
|
97
104
|
const {
|
|
98
|
-
__experimentalFeatures: withExperimentalFeatures,
|
|
99
|
-
__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,
|
|
100
|
-
__experimentalHideContainerBlockActions: hideContainerBlockActions,
|
|
101
105
|
isTreeGridMounted,
|
|
102
106
|
expand,
|
|
103
107
|
collapse
|
|
@@ -114,19 +118,18 @@ function ListViewBlock(_ref) {
|
|
|
114
118
|
// try to steal the focus from the editor canvas.
|
|
115
119
|
|
|
116
120
|
(0, _element.useEffect)(() => {
|
|
117
|
-
if (
|
|
121
|
+
if (!isTreeGridMounted && isSelected) {
|
|
118
122
|
cellRef.current.focus();
|
|
119
123
|
}
|
|
120
124
|
}, []);
|
|
121
|
-
const highlightBlock = withExperimentalPersistentListViewFeatures ? toggleBlockHighlight : () => {};
|
|
122
125
|
const onMouseEnter = (0, _element.useCallback)(() => {
|
|
123
126
|
setIsHovered(true);
|
|
124
|
-
|
|
125
|
-
}, [clientId, setIsHovered,
|
|
127
|
+
toggleBlockHighlight(clientId, true);
|
|
128
|
+
}, [clientId, setIsHovered, toggleBlockHighlight]);
|
|
126
129
|
const onMouseLeave = (0, _element.useCallback)(() => {
|
|
127
130
|
setIsHovered(false);
|
|
128
|
-
|
|
129
|
-
}, [clientId, setIsHovered,
|
|
131
|
+
toggleBlockHighlight(clientId, false);
|
|
132
|
+
}, [clientId, setIsHovered, toggleBlockHighlight]);
|
|
130
133
|
const selectEditorBlock = (0, _element.useCallback)(event => {
|
|
131
134
|
selectBlock(event, clientId);
|
|
132
135
|
event.preventDefault();
|
|
@@ -145,14 +148,11 @@ function ListViewBlock(_ref) {
|
|
|
145
148
|
expand(clientId);
|
|
146
149
|
}
|
|
147
150
|
}, [clientId, expand, collapse, isExpanded]);
|
|
148
|
-
const showBlockActions = withExperimentalFeatures && ( // hide actions for blocks like core/widget-areas
|
|
149
|
-
!hideContainerBlockActions || hideContainerBlockActions && level > 1);
|
|
150
|
-
const hideBlockActions = withExperimentalFeatures && !showBlockActions;
|
|
151
151
|
let colSpan;
|
|
152
152
|
|
|
153
153
|
if (hasRenderedMovers) {
|
|
154
154
|
colSpan = 2;
|
|
155
|
-
} else if (
|
|
155
|
+
} else if (!showBlockActions) {
|
|
156
156
|
colSpan = 3;
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -160,9 +160,9 @@ function ListViewBlock(_ref) {
|
|
|
160
160
|
'is-selected': isSelected,
|
|
161
161
|
'is-first-selected': isFirstSelectedBlock,
|
|
162
162
|
'is-last-selected': isLastSelectedBlock,
|
|
163
|
-
'is-branch-selected':
|
|
163
|
+
'is-branch-selected': isBranchSelected,
|
|
164
164
|
'is-dragging': isDragged,
|
|
165
|
-
'has-single-cell':
|
|
165
|
+
'has-single-cell': !showBlockActions
|
|
166
166
|
}); // Only include all selected blocks if the currently clicked on block
|
|
167
167
|
// is one of the selected blocks. This ensures that if a user attempts
|
|
168
168
|
// to alter a block that isn't part of the selection, they're still able
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"names":["ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","preventAnnouncement","cellRef","isHovered","setIsHovered","clientId","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","blockEditorStore","blockInformation","isLocked","instanceId","descriptionId","blockPositionDescription","blockAriaLabel","title","settingsAriaLabel","__experimentalFeatures","withExperimentalFeatures","__experimentalPersistentListViewFeatures","withExperimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","hideContainerBlockActions","isTreeGridMounted","expand","collapse","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","current","focus","highlightBlock","onMouseEnter","onMouseLeave","selectEditorBlock","event","preventDefault","updateSelection","newClientId","undefined","toggleExpanded","stopPropagation","showBlockActions","hideBlockActions","colSpan","classes","dropdownClientIds","includes","ref","tabIndex","onFocus","moreVertical","className"],"mappings":";;;;;;;;;AAcA;;AAXA;;AAKA;;AAIA;;AACA;;AAQA;;AACA;;AAKA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAtCA;AACA;AACA;;AAGA;AACA;AACA;;AAiBA;AACA;AACA;AAcA,SAASA,aAAT,OAeI;AAAA,MAfoB;AACvBC,IAAAA,KADuB;AAEvBC,IAAAA,SAFuB;AAGvBC,IAAAA,UAHuB;AAIvBC,IAAAA,gBAJuB;AAKvBC,IAAAA,WALuB;AAMvBC,IAAAA,QANuB;AAOvBC,IAAAA,KAPuB;AAQvBC,IAAAA,QARuB;AASvBC,IAAAA,iBATuB;AAUvBC,IAAAA,eAVuB;AAWvBC,IAAAA,IAXuB;AAYvBC,IAAAA,UAZuB;AAavBC,IAAAA,iBAbuB;AAcvBC,IAAAA;AAduB,GAepB;AACH,QAAMC,OAAO,GAAG,qBAAQ,IAAR,CAAhB;AACA,QAAM,CAAEC,SAAF,EAAaC,YAAb,IAA8B,uBAAU,KAAV,CAApC;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAejB,KAArB;AACA,QAAMkB,oBAAoB,GACzBhB,UAAU,IAAIU,iBAAiB,CAAE,CAAF,CAAjB,KAA2BK,QAD1C;AAEA,QAAME,mBAAmB,GACxBjB,UAAU,IACVU,iBAAiB,CAAEA,iBAAiB,CAACQ,MAAlB,GAA2B,CAA7B,CAAjB,KAAsDH,QAFvD;AAIA,QAAM;AAAEI,IAAAA;AAAF,MAA2B,uBAAaC,YAAb,CAAjC;AAEA,QAAMC,gBAAgB,GAAG,yCAA4BN,QAA5B,CAAzB;AACA,QAAM;AAAEO,IAAAA;AAAF,MAAe,6BAAcP,QAAd,CAArB;AACA,QAAMQ,UAAU,GAAG,4BAAe1B,aAAf,CAAnB;AACA,QAAM2B,aAAa,GAAI,kCAAkCD,UAAY,EAArE;AACA,QAAME,wBAAwB,GAAG,wCAChCtB,QADgC,EAEhCG,iBAFgC,EAGhCF,KAHgC,CAAjC;AAMA,MAAIsB,cAAc,GAAG,cAAI,MAAJ,CAArB;;AACA,MAAKL,gBAAL,EAAwB;AACvBK,IAAAA,cAAc,GAAGJ,QAAQ,GACtB,oBACA;AACA,kBAAI,kBAAJ,CAFA,EAGAD,gBAAgB,CAACM,KAHjB,CADsB,GAMtB,oBACA;AACA,kBAAI,SAAJ,CAFA,EAGAN,gBAAgB,CAACM,KAHjB,CANH;AAWA;;AAED,QAAMC,iBAAiB,GAAGP,gBAAgB,GACvC,oBACA;AACA,gBAAI,sBAAJ,CAFA,EAGAA,gBAAgB,CAACM,KAHjB,CADuC,GAMvC,cAAI,SAAJ,CANH;AAQA,QAAM;AACLE,IAAAA,sBAAsB,EAAEC,wBADnB;AAELC,IAAAA,wCAAwC,EAAEC,0CAFrC;AAGLC,IAAAA,uCAAuC,EAAEC,yBAHpC;AAILC,IAAAA,iBAJK;AAKLC,IAAAA,MALK;AAMLC,IAAAA;AANK,MAOF,kCAPJ;AASA,QAAMC,WAAW,GAAGhC,iBAAiB,GAAG,CAAxC;AACA,QAAMiC,iBAAiB,GAAGhC,eAAe,IAAI+B,WAA7C;AACA,QAAME,kBAAkB,GAAG,yBAC1B,0CAD0B,EAE1B;AAAE,kBAAc3B,SAAS,IAAIb;AAA7B,GAF0B,CAA3B;AAKA,QAAMyC,8BAA8B,GAAG,yBACtC,yCADsC,EAEtC;AAAE,kBAAc5B,SAAS,IAAIG;AAA7B,GAFsC,CAAvC,CA7DG,CAkEH;AACA;AACA;;AACA,0BAAW,MAAM;AAChB,QACCgB,0CAA0C,IAC1C,CAAEG,iBADF,IAEAnC,UAHD,EAIE;AACDY,MAAAA,OAAO,CAAC8B,OAAR,CAAgBC,KAAhB;AACA;AACD,GARD,EAQG,EARH;AAUA,QAAMC,cAAc,GAAGZ,0CAA0C,GAC9Db,oBAD8D,GAE9D,MAAM,CAAE,CAFX;AAIA,QAAM0B,YAAY,GAAG,0BAAa,MAAM;AACvC/B,IAAAA,YAAY,CAAE,IAAF,CAAZ;AACA8B,IAAAA,cAAc,CAAE7B,QAAF,EAAY,IAAZ,CAAd;AACA,GAHoB,EAGlB,CAAEA,QAAF,EAAYD,YAAZ,EAA0B8B,cAA1B,CAHkB,CAArB;AAIA,QAAME,YAAY,GAAG,0BAAa,MAAM;AACvChC,IAAAA,YAAY,CAAE,KAAF,CAAZ;AACA8B,IAAAA,cAAc,CAAE7B,QAAF,EAAY,KAAZ,CAAd;AACA,GAHoB,EAGlB,CAAEA,QAAF,EAAYD,YAAZ,EAA0B8B,cAA1B,CAHkB,CAArB;AAKA,QAAMG,iBAAiB,GAAG,0BACvBC,KAAF,IAAa;AACZ9C,IAAAA,WAAW,CAAE8C,KAAF,EAASjC,QAAT,CAAX;AACAiC,IAAAA,KAAK,CAACC,cAAN;AACA,GAJwB,EAKzB,CAAElC,QAAF,EAAYb,WAAZ,CALyB,CAA1B;AAQA,QAAMgD,eAAe,GAAG,0BACrBC,WAAF,IAAmB;AAClBjD,IAAAA,WAAW,CAAEkD,SAAF,EAAaD,WAAb,CAAX;AACA,GAHsB,EAIvB,CAAEjD,WAAF,CAJuB,CAAxB;AAOA,QAAMmD,cAAc,GAAG,0BACpBL,KAAF,IAAa;AACZ;AACAA,IAAAA,KAAK,CAACC,cAAN;AACAD,IAAAA,KAAK,CAACM,eAAN;;AACA,QAAK7C,UAAU,KAAK,IAApB,EAA2B;AAC1B4B,MAAAA,QAAQ,CAAEtB,QAAF,CAAR;AACA,KAFD,MAEO,IAAKN,UAAU,KAAK,KAApB,EAA4B;AAClC2B,MAAAA,MAAM,CAAErB,QAAF,CAAN;AACA;AACD,GAVqB,EAWtB,CAAEA,QAAF,EAAYqB,MAAZ,EAAoBC,QAApB,EAA8B5B,UAA9B,CAXsB,CAAvB;AAcA,QAAM8C,gBAAgB,GACrBzB,wBAAwB,MACxB;AACE,GAAEI,yBAAF,IACCA,yBAAyB,IAAI9B,KAAK,GAAG,CAHhB,CADzB;AAMA,QAAMoD,gBAAgB,GAAG1B,wBAAwB,IAAI,CAAEyB,gBAAvD;AAEA,MAAIE,OAAJ;;AACA,MAAKlB,iBAAL,EAAyB;AACxBkB,IAAAA,OAAO,GAAG,CAAV;AACA,GAFD,MAEO,IAAKD,gBAAL,EAAwB;AAC9BC,IAAAA,OAAO,GAAG,CAAV;AACA;;AAED,QAAMC,OAAO,GAAG,yBAAY;AAC3B,mBAAe1D,UADY;AAE3B,yBAAqBgB,oBAFM;AAG3B,wBAAoBC,mBAHO;AAI3B,0BACCe,0CAA0C,IAAI/B,gBALpB;AAM3B,mBAAeF,SANY;AAO3B,uBAAmByD;AAPQ,GAAZ,CAAhB,CAxIG,CAkJH;AACA;AACA;AACA;;AACA,QAAMG,iBAAiB,GAAGjD,iBAAiB,CAACkD,QAAlB,CAA4B7C,QAA5B,IACvBL,iBADuB,GAEvB,CAAEK,QAAF,CAFH;AAIA,SACC,4BAAC,aAAD;AACC,IAAA,SAAS,EAAG2C,OADb;AAEC,IAAA,YAAY,EAAGb,YAFhB;AAGC,IAAA,YAAY,EAAGC,YAHhB;AAIC,IAAA,OAAO,EAAGD,YAJX;AAKC,IAAA,MAAM,EAAGC,YALV;AAMC,IAAA,KAAK,EAAG1C,KANT;AAOC,IAAA,QAAQ,EAAGD,QAPZ;AAQC,IAAA,QAAQ,EAAGE,QARZ;AASC,IAAA,IAAI,EAAGG,IATR;AAUC,IAAA,EAAE,EAAI,mBAAmBO,QAAU,EAVpC;AAWC,kBAAaA,QAXd;AAYC,IAAA,UAAU,EAAGN,UAZd;AAaC,qBAAgB,CAAC,CAAET;AAbpB,KAeC,4BAAC,sCAAD;AACC,IAAA,SAAS,EAAC,6CADX;AAEC,IAAA,OAAO,EAAGyD,OAFX;AAGC,IAAA,GAAG,EAAG7C,OAHP;AAIC,kBAAac,cAJd;AAKC,qBAAgB,CAAC,CAAE1B,UALpB;AAMC,qBAAgBS,UANjB;AAOC,wBAAmBe;AAPpB,KASG;AAAA,QAAE;AAAEqC,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,sBAAD;AACC,MAAA,KAAK,EAAGjE,KADT;AAEC,MAAA,OAAO,EAAGiD,iBAFX;AAGC,MAAA,gBAAgB,EAAGM,cAHpB;AAIC,MAAA,UAAU,EAAGrD,UAJd;AAKC,MAAA,QAAQ,EAAGG,QALZ;AAMC,MAAA,iBAAiB,EAAGG,iBANrB;AAOC,MAAA,KAAK,EAAGF,KAPT;AAQC,MAAA,GAAG,EAAGyD,GARP;AASC,MAAA,QAAQ,EAAGC,QATZ;AAUC,MAAA,OAAO,EAAGC,OAVX;AAWC,MAAA,UAAU,EAAGtD,UAXd;AAYC,MAAA,iBAAiB,EAAGC,iBAZrB;AAaC,MAAA,mBAAmB,EAAGC;AAbvB,MADD,EAgBC;AACC,MAAA,SAAS,EAAC,yDADX;AAEC,MAAA,EAAE,EAAGa;AAFN,OAIGC,wBAJH,CAhBD,CADC;AAAA,GATH,CAfD,EAkDGc,iBAAiB,IAClB,qDACC,4BAAC,sCAAD;AACC,IAAA,SAAS,EAAGC,kBADb;AAEC,IAAA,eAAe;AAFhB,KAIC,4BAAC,sCAAD,QACG;AAAA,QAAE;AAAEqB,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD,4BAAC,0BAAD;AACC,MAAA,WAAW,EAAC,UADb;AAEC,MAAA,SAAS,EAAG,CAAEhD,QAAF,CAFb;AAGC,MAAA,GAAG,EAAG8C,GAHP;AAIC,MAAA,QAAQ,EAAGC,QAJZ;AAKC,MAAA,OAAO,EAAGC;AALX,MADC;AAAA,GADH,CAJD,EAeC,4BAAC,sCAAD,QACG;AAAA,QAAE;AAAEF,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD,4BAAC,4BAAD;AACC,MAAA,WAAW,EAAC,UADb;AAEC,MAAA,SAAS,EAAG,CAAEhD,QAAF,CAFb;AAGC,MAAA,GAAG,EAAG8C,GAHP;AAIC,MAAA,QAAQ,EAAGC,QAJZ;AAKC,MAAA,OAAO,EAAGC;AALX,MADC;AAAA,GADH,CAfD,CADD,CAnDF,EAkFGR,gBAAgB,IACjB,4BAAC,sCAAD;AACC,IAAA,SAAS,EAAGd,8BADb;AAEC,qBAAgB,CAAC,CAAEzC;AAFpB,KAIG;AAAA,QAAE;AAAE6D,MAAAA,GAAF;AAAOC,MAAAA,QAAP;AAAiBC,MAAAA;AAAjB,KAAF;AAAA,WACD,4BAAC,8BAAD;AACC,MAAA,SAAS,EAAGJ,iBADb;AAEC,MAAA,IAAI,EAAGK,mBAFR;AAGC,MAAA,KAAK,EAAGpC,iBAHT;AAIC,MAAA,WAAW,EAAG;AACbiC,QAAAA,GADa;AAEbI,QAAAA,SAAS,EAAE,oCAFE;AAGbH,QAAAA,QAHa;AAIbC,QAAAA;AAJa,OAJf;AAUC,MAAA,sBAAsB,MAVvB;AAWC,MAAA,yBAAyB,EAAGb;AAX7B,MADC;AAAA,GAJH,CAnFF,CADD;AA2GA;;eAEc,mBAAMrD,aAAN,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tpreventAnnouncement,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId } = block;\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tlet blockAriaLabel = __( 'Link' );\n\tif ( blockInformation ) {\n\t\tblockAriaLabel = isLocked\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t\t__( '%s link (locked)' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the block.\n\t\t\t\t\t__( '%s link' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t );\n\t}\n\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\tconst {\n\t\t__experimentalFeatures: withExperimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions: hideContainerBlockActions,\n\t\tisTreeGridMounted,\n\t\texpand,\n\t\tcollapse,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif (\n\t\t\twithExperimentalPersistentListViewFeatures &&\n\t\t\t! isTreeGridMounted &&\n\t\t\tisSelected\n\t\t) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst highlightBlock = withExperimentalPersistentListViewFeatures\n\t\t? toggleBlockHighlight\n\t\t: () => {};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\thighlightBlock( clientId, true );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\thighlightBlock( clientId, false );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst showBlockActions =\n\t\twithExperimentalFeatures &&\n\t\t// hide actions for blocks like core/widget-areas\n\t\t( ! hideContainerBlockActions ||\n\t\t\t( hideContainerBlockActions && level > 1 ) );\n\n\tconst hideBlockActions = withExperimentalFeatures && ! showBlockActions;\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( hideBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected':\n\t\t\twithExperimentalPersistentListViewFeatures && isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': hideBlockActions,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isExpanded }\n\t\t\taria-selected={ !! isSelected }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-label={ blockAriaLabel }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tpreventAnnouncement={ preventAnnouncement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t__experimentalSelectBlock={ updateSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"names":["ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","preventAnnouncement","cellRef","isHovered","setIsHovered","clientId","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","blockEditorStore","blockInformation","blockName","select","getBlockName","showBlockActions","isLocked","instanceId","descriptionId","blockPositionDescription","blockAriaLabel","title","settingsAriaLabel","isTreeGridMounted","expand","collapse","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","current","focus","onMouseEnter","onMouseLeave","selectEditorBlock","event","preventDefault","updateSelection","newClientId","undefined","toggleExpanded","stopPropagation","colSpan","classes","dropdownClientIds","includes","ref","tabIndex","onFocus","moreVertical","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tpreventAnnouncement,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId } = block;\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockName = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockName( clientId ),\n\t\t[ clientId ]\n\t);\n\n\t// When a block hides its toolbar it also hides the block settings menu,\n\t// since that menu is part of the toolbar in the editor canvas.\n\t// List View respects this by also hiding the block settings menu.\n\tconst showBlockActions = hasBlockSupport(\n\t\tblockName,\n\t\t'__experimentalToolbar',\n\t\ttrue\n\t);\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tlet blockAriaLabel = __( 'Link' );\n\tif ( blockInformation ) {\n\t\tblockAriaLabel = isLocked\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t\t__( '%s link (locked)' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the block.\n\t\t\t\t\t__( '%s link' ),\n\t\t\t\t\tblockInformation.title\n\t\t\t );\n\t}\n\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\tconst { isTreeGridMounted, expand, collapse } = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif ( ! isTreeGridMounted && isSelected ) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isExpanded }\n\t\t\taria-selected={ !! isSelected }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-label={ blockAriaLabel }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tpreventAnnouncement={ preventAnnouncement }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t__experimentalSelectBlock={ updateSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
|
|
@@ -85,19 +85,17 @@ function ListViewBranch(props) {
|
|
|
85
85
|
blocks,
|
|
86
86
|
selectBlock,
|
|
87
87
|
showBlockMovers,
|
|
88
|
-
showNestedBlocks,
|
|
89
88
|
selectedClientIds,
|
|
90
89
|
level = 1,
|
|
91
90
|
path = '',
|
|
92
91
|
isBranchSelected = false,
|
|
93
92
|
listPosition = 0,
|
|
94
93
|
fixedListWindow,
|
|
95
|
-
|
|
94
|
+
isExpanded
|
|
96
95
|
} = props;
|
|
97
96
|
const {
|
|
98
97
|
expandedState,
|
|
99
|
-
draggedClientIds
|
|
100
|
-
__experimentalPersistentListViewFeatures
|
|
98
|
+
draggedClientIds
|
|
101
99
|
} = (0, _context.useListViewContext)();
|
|
102
100
|
const filteredBlocks = (0, _lodash.compact)(blocks);
|
|
103
101
|
const blockCount = filteredBlocks.length;
|
|
@@ -111,18 +109,17 @@ function ListViewBranch(props) {
|
|
|
111
109
|
} = block;
|
|
112
110
|
|
|
113
111
|
if (index > 0) {
|
|
114
|
-
nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds,
|
|
112
|
+
nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, isExpanded);
|
|
115
113
|
}
|
|
116
114
|
|
|
117
|
-
const usesWindowing = __experimentalPersistentListViewFeatures;
|
|
118
115
|
const {
|
|
119
116
|
itemInView
|
|
120
117
|
} = fixedListWindow;
|
|
121
|
-
const blockInView =
|
|
118
|
+
const blockInView = itemInView(nextPosition);
|
|
122
119
|
const position = index + 1;
|
|
123
120
|
const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`;
|
|
124
|
-
const hasNestedBlocks =
|
|
125
|
-
const
|
|
121
|
+
const hasNestedBlocks = !!(innerBlocks !== null && innerBlocks !== void 0 && innerBlocks.length);
|
|
122
|
+
const shouldExpand = hasNestedBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined;
|
|
126
123
|
const isDragged = !!(draggedClientIds !== null && draggedClientIds !== void 0 && draggedClientIds.includes(clientId));
|
|
127
124
|
const showBlock = isDragged || blockInView; // Make updates to the selected or dragged blocks synchronous,
|
|
128
125
|
// but asynchronous for any other block.
|
|
@@ -144,23 +141,22 @@ function ListViewBranch(props) {
|
|
|
144
141
|
siblingBlockCount: blockCount,
|
|
145
142
|
showBlockMovers: showBlockMovers,
|
|
146
143
|
path: updatedPath,
|
|
147
|
-
isExpanded:
|
|
144
|
+
isExpanded: shouldExpand,
|
|
148
145
|
listPosition: nextPosition,
|
|
149
146
|
selectedClientIds: selectedClientIds
|
|
150
147
|
}), !showBlock && (0, _element.createElement)("tr", null, (0, _element.createElement)("td", {
|
|
151
148
|
className: "block-editor-list-view-placeholder"
|
|
152
|
-
})), hasNestedBlocks &&
|
|
149
|
+
})), hasNestedBlocks && shouldExpand && !isDragged && (0, _element.createElement)(ListViewBranch, {
|
|
153
150
|
blocks: innerBlocks,
|
|
154
151
|
selectBlock: selectBlock,
|
|
155
152
|
showBlockMovers: showBlockMovers,
|
|
156
|
-
showNestedBlocks: showNestedBlocks,
|
|
157
153
|
level: level + 1,
|
|
158
154
|
path: updatedPath,
|
|
159
155
|
listPosition: nextPosition + 1,
|
|
160
156
|
fixedListWindow: fixedListWindow,
|
|
161
157
|
isBranchSelected: isSelectedBranch,
|
|
162
158
|
selectedClientIds: selectedClientIds,
|
|
163
|
-
|
|
159
|
+
isExpanded: isExpanded
|
|
164
160
|
}));
|
|
165
161
|
}));
|
|
166
162
|
}
|