@wordpress/block-editor 7.0.3 → 7.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/block-actions/index.js +6 -5
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +17 -4
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +5 -0
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -2
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list-appender/index.js +9 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +10 -3
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +1 -1
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +96 -7
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +17 -8
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +17 -13
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/copy-handler/index.js +3 -3
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +2 -2
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -5
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/index.js +0 -18
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +11 -1
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +28 -0
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build/components/inspector-controls/block-support-tools-panel.js +7 -4
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +16 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/slot.js +5 -2
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -20
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +5 -36
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/list-item.js +3 -2
- package/build/components/list-view/list-item.js.map +1 -1
- package/build/components/media-placeholder/index.js +26 -17
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +3 -2
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +30 -1
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +65 -0
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build/components/rich-text/index.js +5 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +41 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +28 -9
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/utils.js +22 -0
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/hooks/align.js +10 -7
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/font-family.js +93 -23
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/style.js +6 -3
- package/build/hooks/style.js.map +1 -1
- package/build/layouts/flow.js +4 -1
- package/build/layouts/flow.js.map +1 -1
- package/build/store/reducer.js +11 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +1 -3
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/transforms/wrap.js +16 -0
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/components/block-actions/index.js +6 -5
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +17 -4
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +5 -0
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -2
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +9 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +10 -3
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +96 -8
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +16 -9
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +18 -14
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/copy-handler/index.js +3 -3
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +2 -2
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -5
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/index.js +0 -2
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +11 -1
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +18 -0
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build-module/components/inspector-controls/block-support-tools-panel.js +7 -4
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +16 -2
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +4 -2
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -18
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +7 -37
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/list-item.js +3 -2
- package/build-module/components/list-view/list-item.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +26 -17
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +3 -2
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +29 -2
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +53 -0
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build-module/components/rich-text/index.js +4 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +41 -3
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +28 -9
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/utils.js +20 -0
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/hooks/align.js +10 -7
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/font-family.js +91 -24
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/style.js +6 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/layouts/flow.js +4 -1
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/reducer.js +11 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +2 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +16 -0
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/style-rtl.css +52 -76
- package/build-style/style.css +52 -76
- package/package.json +14 -14
- package/src/components/block-actions/index.js +5 -5
- package/src/components/block-alignment-control/use-available-alignments.js +18 -3
- package/src/components/block-inspector/index.js +1 -1
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block.native.js +2 -2
- package/src/components/block-list-appender/index.js +8 -0
- package/src/components/block-preview/README.md +1 -1
- package/src/components/block-preview/style.scss +0 -17
- package/src/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/src/components/block-settings-menu-controls/index.js +9 -6
- package/src/components/block-switcher/block-styles-menu.js +1 -1
- package/src/components/block-tools/index.js +5 -2
- package/src/components/block-tools/insertion-point.js +97 -9
- package/src/components/block-tools/style.scss +4 -35
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/test/utils.js +216 -0
- package/src/components/border-radius-control/utils.js +18 -10
- package/src/components/color-palette/test/__snapshots__/control.js.snap +103 -72
- package/src/components/colors-gradients/control.js +64 -61
- package/src/components/colors-gradients/style.scss +8 -5
- package/src/components/colors-gradients/test/control.js +43 -52
- package/src/components/copy-handler/index.js +1 -1
- package/src/components/default-block-appender/index.js +2 -2
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +3 -3
- package/src/components/font-appearance-control/index.js +12 -14
- package/src/components/font-appearance-control/style.scss +1 -1
- package/src/components/index.js +0 -2
- package/src/components/inserter/block-patterns-tab.js +11 -4
- package/src/components/inserter/hooks/use-clipboard-block.native.js +3 -2
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/style.scss +1 -2
- package/src/components/inspector-controls/block-support-slot-container.js +10 -0
- package/src/components/inspector-controls/block-support-tools-panel.js +4 -2
- package/src/components/inspector-controls/fill.js +23 -2
- package/src/components/inspector-controls/slot.js +6 -1
- package/src/components/link-control/style.scss +9 -5
- package/src/components/list-view/block-contents.js +17 -38
- package/src/components/list-view/block.js +6 -51
- package/src/components/list-view/list-item.js +5 -4
- package/src/components/list-view/style.scss +56 -30
- package/src/components/media-placeholder/index.js +24 -17
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +2 -0
- package/src/components/plain-text/index.native.js +26 -4
- package/src/components/rich-text/embed-handler-picker.native.js +67 -0
- package/src/components/rich-text/index.js +12 -8
- package/src/components/rich-text/index.native.js +35 -1
- package/src/components/rich-text/use-paste-handler.js +30 -12
- package/src/components/rich-text/utils.js +16 -0
- package/src/components/skip-to-selected-block/README.md +39 -0
- package/src/hooks/align.js +11 -7
- package/src/hooks/anchor.js +2 -2
- package/src/hooks/font-family.js +107 -27
- package/src/hooks/style.js +14 -8
- package/src/layouts/flow.js +4 -1
- package/src/store/reducer.js +17 -0
- package/src/store/selectors.js +2 -3
- package/src/store/test/reducer.js +22 -0
- package/src/utils/transform-styles/transforms/test/wrap.js +1 -1
- package/src/utils/transform-styles/transforms/wrap.js +16 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/list-view/block-slot.js +0 -121
- package/build/components/list-view/block-slot.js.map +0 -1
- package/build/components/list-view/editor.js +0 -35
- package/build/components/list-view/editor.js.map +0 -1
- package/build-module/components/list-view/block-slot.js +0 -96
- package/build-module/components/list-view/block-slot.js.map +0 -1
- package/build-module/components/list-view/editor.js +0 -25
- package/build-module/components/list-view/editor.js.map +0 -1
- package/src/components/list-view/block-slot.js +0 -120
- package/src/components/list-view/editor.js +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"names":["BlockTools","children","__unstableContentRef","props","isLargeViewport","hasFixedToolbar","select","blockEditorStore","getSettings","isMatch","getSelectedBlockClientIds","getBlockRootClientId","duplicateBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","clearSelectedBlock","moveBlocksUp","moveBlocksDown","onKeyDown","event","clientIds","length","preventDefault","rootClientId","target","ownerDocument","defaultView","getSelection","removeAllRanges"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AApBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,UAAT,CAAqB;AACnCC,EAAAA,QADmC;AAEnCC,EAAAA,oBAFmC;AAGnC,KAAGC;AAHgC,CAArB,EAIX;AACH,QAAMC,eAAe,GAAG,+BAAkB,QAAlB,CAAxB;AACA,QAAMC,eAAe,GAAG,qBACrBC,MAAF,IAAcA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,WAA3B,GAAyCH,eADhC,EAEvB,EAFuB,CAAxB;AAIA,QAAMI,OAAO,GAAG,yDAAhB;AACA,QAAM;AAAEC,IAAAA,yBAAF;AAA6BC,IAAAA;AAA7B,MAAsD,qBAC3DJ,YAD2D,CAA5D;AAGA,QAAM;AACLK,IAAAA,eADK;AAELC,IAAAA,YAFK;AAGLC,IAAAA,gBAHK;AAILC,IAAAA,iBAJK;AAKLC,IAAAA,kBALK;AAMLC,IAAAA,YANK;AAOLC,IAAAA;AAPK,MAQF,uBAAaX,YAAb,CARJ;;AAUA,WAASY,SAAT,CAAoBC,KAApB,EAA4B;AAC3B,QAAKX,OAAO,CAAE,2BAAF,EAA+BW,KAA/B,CAAZ,EAAqD;AACpD,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAf,EAAwB;AACvBF,QAAAA,KAAK,CAACG,cAAN;AACA,cAAMC,YAAY,GAAGb,oBAAoB,CAAE,mBAAOU,SAAP,CAAF,CAAzC;AACAJ,QAAAA,YAAY,CAAEI,SAAF,EAAaG,YAAb,CAAZ;AACA;AACD,KAPD,MAOO,IAAKf,OAAO,CAAE,6BAAF,EAAiCW,KAAjC,CAAZ,EAAuD;AAC7D,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAf,EAAwB;AACvBF,QAAAA,KAAK,CAACG,cAAN;AACA,cAAMC,YAAY,GAAGb,oBAAoB,CAAE,mBAAOU,SAAP,CAAF,CAAzC;AACAH,QAAAA,cAAc,CAAEG,SAAF,EAAaG,YAAb,CAAd;AACA;AACD,KAPM,MAOA,IAAKf,OAAO,CAAE,6BAAF,EAAiCW,KAAjC,CAAZ,EAAuD;AAC7D,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAf,EAAwB;AACvBF,QAAAA,KAAK,CAACG,cAAN;AACAX,QAAAA,eAAe,CAAES,SAAF,CAAf;AACA;AACD,KANM,MAMA,IAAKZ,OAAO,CAAE,0BAAF,EAA8BW,KAA9B,CAAZ,EAAoD;AAC1D,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAf,EAAwB;AACvBF,QAAAA,KAAK,CAACG,cAAN;AACAV,QAAAA,YAAY,CAAEQ,SAAF,CAAZ;AACA;AACD,KANM,MAMA,IAAKZ,OAAO,CAAE,gCAAF,EAAoCW,KAApC,CAAZ,EAA0D;AAChE,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAf,EAAwB;AACvBF,QAAAA,KAAK,CAACG,cAAN;AACAT,QAAAA,gBAAgB,CAAE,kBAAMO,SAAN,CAAF,CAAhB;AACA;AACD,KANM,MAMA,IAAKZ,OAAO,CAAE,iCAAF,EAAqCW,KAArC,CAAZ,EAA2D;AACjE,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAf,EAAwB;AACvBF,QAAAA,KAAK,CAACG,cAAN;AACAR,QAAAA,iBAAiB,CAAE,mBAAOM,SAAP,CAAF,CAAjB;AACA;AACD,KANM,MAMA,IACNZ,OAAO,CAAE,0CAAF,EAA8CW,KAA9C,CADD,EAEL;AACD,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAV,GAAmB,CAAxB,EAA4B;AAC3BF,QAAAA,KAAK,CAACG,cAAN;AACAV,QAAAA,YAAY,CAAEQ,SAAF,CAAZ;AACA;AACD,KARM,MAQA,IAAKZ,OAAO,CAAE,4BAAF,EAAgCW,KAAhC,CAAZ,EAAsD;AAC5D,YAAMC,SAAS,GAAGX,yBAAyB,EAA3C;;AACA,UAAKW,SAAS,CAACC,MAAV,GAAmB,CAAxB,EAA4B;AAC3BF,QAAAA,KAAK,CAACG,cAAN;AACAP,QAAAA,kBAAkB;AAClBI,QAAAA,KAAK,CAACK,MAAN,CAAaC,aAAb,CAA2BC,WAA3B,CACEC,YADF,GAEEC,eAFF;AAGA;AACD;AACD;;AAED,SACC;AACA,kEAAU1B,KAAV;AAAkB,MAAA,SAAS,EAAGgB;AAA9B,QACC,4BAAC,uBAAD;AAAgB,MAAA,oBAAoB,EAAGjB;AAAvC,OACG,CAAEG,eAAe,IAAI,CAAED,eAAvB,KACD,4BAAC,+BAAD;AAAwB,MAAA,OAAO;AAA/B,MAFF,EAMC,4BAAC,qBAAD;AAAc,MAAA,oBAAoB,EAAGF;AAArC,MAND,EAQC,4BAAC,mBAAD,CAAS,IAAT;AACC,MAAA,IAAI,EAAC,eADN;AAEC,MAAA,GAAG,EAAG,wCAAkBA,oBAAlB;AAFP,MARD,EAYGD,QAZH,CADD;AAFD;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"names":["BlockTools","children","__unstableContentRef","props","isLargeViewport","hasFixedToolbar","select","blockEditorStore","getSettings","isMatch","getSelectedBlockClientIds","getBlockRootClientId","duplicateBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","clearSelectedBlock","moveBlocksUp","moveBlocksDown","onKeyDown","event","clientIds","length","preventDefault","rootClientId","target","ownerDocument","defaultView","getSelection","removeAllRanges"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport InsertionPoint from './insertion-point';\nimport BlockPopover from './block-popover';\nimport { store as blockEditorStore } from '../../store';\nimport BlockContextualToolbar from './block-contextual-toolbar';\nimport { usePopoverScroll } from './use-popover-scroll';\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst hasFixedToolbar = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().hasFixedToolbar,\n\t\t[]\n\t);\n\tconst isMatch = useShortcutEventMatch();\n\tconst { getSelectedBlockClientIds, getBlockRootClientId } = useSelect(\n\t\tblockEditorStore\n\t);\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tclearSelectedBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( first( clientIds ) );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( first( clientIds ) );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( last( clientIds ) );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( first( clientIds ) );\n\t\t\t}\n\t\t} else if (\n\t\t\tisMatch( 'core/block-editor/delete-multi-selection', event )\n\t\t) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tevent.target.ownerDocument.defaultView\n\t\t\t\t\t.getSelection()\n\t\t\t\t\t.removeAllRanges();\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPoint __unstableContentRef={ __unstableContentRef }>\n\t\t\t\t{ ( hasFixedToolbar || ! isLargeViewport ) && (\n\t\t\t\t\t<BlockContextualToolbar isFixed />\n\t\t\t\t) }\n\t\t\t\t{ /* Even if the toolbar is fixed, the block popover is still\n needed for navigation mode. */ }\n\t\t\t\t<BlockPopover __unstableContentRef={ __unstableContentRef } />\n\t\t\t\t{ /* Used for the inline rich text toolbar. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\tref={ usePopoverScroll( __unstableContentRef ) }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ usePopoverScroll( __unstableContentRef ) }\n\t\t\t\t/>\n\t\t\t</InsertionPoint>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -16,6 +16,8 @@ var _data = require("@wordpress/data");
|
|
|
16
16
|
|
|
17
17
|
var _components = require("@wordpress/components");
|
|
18
18
|
|
|
19
|
+
var _compose = require("@wordpress/compose");
|
|
20
|
+
|
|
19
21
|
var _i18n = require("@wordpress/i18n");
|
|
20
22
|
|
|
21
23
|
var _inserter = _interopRequireDefault(require("../inserter"));
|
|
@@ -94,6 +96,7 @@ function InsertionPointPopover({
|
|
|
94
96
|
}, []);
|
|
95
97
|
const previousElement = (0, _useBlockRefs.__unstableUseBlockElement)(previousClientId);
|
|
96
98
|
const nextElement = (0, _useBlockRefs.__unstableUseBlockElement)(nextClientId);
|
|
99
|
+
const isVertical = orientation === 'vertical';
|
|
97
100
|
const style = (0, _element.useMemo)(() => {
|
|
98
101
|
if (!previousElement && !nextElement) {
|
|
99
102
|
return {};
|
|
@@ -102,7 +105,7 @@ function InsertionPointPopover({
|
|
|
102
105
|
const previousRect = previousElement ? previousElement.getBoundingClientRect() : null;
|
|
103
106
|
const nextRect = nextElement ? nextElement.getBoundingClientRect() : null;
|
|
104
107
|
|
|
105
|
-
if (
|
|
108
|
+
if (isVertical) {
|
|
106
109
|
return {
|
|
107
110
|
width: previousElement ? previousElement.offsetWidth : nextElement.offsetWidth,
|
|
108
111
|
height: nextRect && previousRect ? nextRect.top - previousRect.bottom : 0
|
|
@@ -131,7 +134,7 @@ function InsertionPointPopover({
|
|
|
131
134
|
const previousRect = previousElement ? previousElement.getBoundingClientRect() : null;
|
|
132
135
|
const nextRect = nextElement ? nextElement.getBoundingClientRect() : null;
|
|
133
136
|
|
|
134
|
-
if (
|
|
137
|
+
if (isVertical) {
|
|
135
138
|
if ((0, _i18n.isRTL)()) {
|
|
136
139
|
return {
|
|
137
140
|
top: previousRect ? previousRect.bottom : nextRect.top,
|
|
@@ -170,6 +173,7 @@ function InsertionPointPopover({
|
|
|
170
173
|
};
|
|
171
174
|
}, [previousElement, nextElement]);
|
|
172
175
|
const popoverScrollRef = (0, _usePopoverScroll.usePopoverScroll)(__unstableContentRef);
|
|
176
|
+
const disableMotion = (0, _compose.useReducedMotion)();
|
|
173
177
|
const className = (0, _classnames.default)('block-editor-block-list__insertion-point', 'is-' + orientation);
|
|
174
178
|
|
|
175
179
|
function onClick(event) {
|
|
@@ -188,7 +192,81 @@ function InsertionPointPopover({
|
|
|
188
192
|
// previous and a next element.
|
|
189
193
|
|
|
190
194
|
|
|
191
|
-
const showInsertionPointInserter = previousElement && nextElement && isInserterShown;
|
|
195
|
+
const showInsertionPointInserter = previousElement && nextElement && isInserterShown; // Define animation variants for the line element.
|
|
196
|
+
|
|
197
|
+
const horizontalLine = {
|
|
198
|
+
start: {
|
|
199
|
+
width: 0,
|
|
200
|
+
top: '50%',
|
|
201
|
+
bottom: '50%',
|
|
202
|
+
x: 0
|
|
203
|
+
},
|
|
204
|
+
rest: {
|
|
205
|
+
width: 4,
|
|
206
|
+
top: 0,
|
|
207
|
+
bottom: 0,
|
|
208
|
+
x: -2
|
|
209
|
+
},
|
|
210
|
+
hover: {
|
|
211
|
+
width: 4,
|
|
212
|
+
top: 0,
|
|
213
|
+
bottom: 0,
|
|
214
|
+
x: -2
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const verticalLine = {
|
|
218
|
+
start: {
|
|
219
|
+
height: 0,
|
|
220
|
+
left: '50%',
|
|
221
|
+
right: '50%',
|
|
222
|
+
y: 0
|
|
223
|
+
},
|
|
224
|
+
rest: {
|
|
225
|
+
height: 4,
|
|
226
|
+
left: 0,
|
|
227
|
+
right: 0,
|
|
228
|
+
y: -2
|
|
229
|
+
},
|
|
230
|
+
hover: {
|
|
231
|
+
height: 4,
|
|
232
|
+
left: 0,
|
|
233
|
+
right: 0,
|
|
234
|
+
y: -2
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
const lineVariants = {
|
|
238
|
+
// Initial position starts from the center and invisible.
|
|
239
|
+
start: { ...(!isVertical ? horizontalLine.start : verticalLine.start),
|
|
240
|
+
opacity: 0
|
|
241
|
+
},
|
|
242
|
+
// The line expands to fill the container. If the inserter is visible it
|
|
243
|
+
// is delayed so it appears orchestrated.
|
|
244
|
+
rest: { ...(!isVertical ? horizontalLine.rest : verticalLine.rest),
|
|
245
|
+
opacity: 1,
|
|
246
|
+
borderRadius: '2px',
|
|
247
|
+
transition: {
|
|
248
|
+
delay: showInsertionPointInserter ? 0.4 : 0
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
hover: { ...(!isVertical ? horizontalLine.hover : verticalLine.hover),
|
|
252
|
+
opacity: 1,
|
|
253
|
+
borderRadius: '2px',
|
|
254
|
+
transition: {
|
|
255
|
+
delay: 0.4
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
const inserterVariants = {
|
|
260
|
+
start: {
|
|
261
|
+
scale: disableMotion ? 1 : 0
|
|
262
|
+
},
|
|
263
|
+
rest: {
|
|
264
|
+
scale: 1,
|
|
265
|
+
transition: {
|
|
266
|
+
delay: 0.2
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
};
|
|
192
270
|
/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
|
|
193
271
|
// While ideally it would be enough to capture the
|
|
194
272
|
// bubbling focus event from the Inserter, due to the
|
|
@@ -206,8 +284,17 @@ function InsertionPointPopover({
|
|
|
206
284
|
className: "block-editor-block-list__insertion-point-popover" // Render in the old slot if needed for backward compatibility,
|
|
207
285
|
// otherwise render in place (not in the the default popover slot).
|
|
208
286
|
,
|
|
209
|
-
__unstableSlotName: __unstablePopoverSlot || null
|
|
210
|
-
|
|
287
|
+
__unstableSlotName: __unstablePopoverSlot || null // Forces a remount of the popover when its position changes
|
|
288
|
+
// This makes sure the popover doesn't animate from its previous position.
|
|
289
|
+
,
|
|
290
|
+
key: nextClientId + '--' + rootClientId
|
|
291
|
+
}, (0, _element.createElement)(_components.__unstableMotion.div, {
|
|
292
|
+
layout: !disableMotion,
|
|
293
|
+
initial: disableMotion ? 'rest' : 'start',
|
|
294
|
+
animate: "rest",
|
|
295
|
+
whileHover: "hover",
|
|
296
|
+
whileTap: "pressed",
|
|
297
|
+
exit: "start",
|
|
211
298
|
ref: ref,
|
|
212
299
|
tabIndex: -1,
|
|
213
300
|
onClick: onClick,
|
|
@@ -216,9 +303,11 @@ function InsertionPointPopover({
|
|
|
216
303
|
'is-with-inserter': showInsertionPointInserter
|
|
217
304
|
}),
|
|
218
305
|
style: style
|
|
219
|
-
}, (0, _element.createElement)(
|
|
306
|
+
}, (0, _element.createElement)(_components.__unstableMotion.div, {
|
|
307
|
+
variants: lineVariants,
|
|
220
308
|
className: "block-editor-block-list__insertion-point-indicator"
|
|
221
|
-
}), showInsertionPointInserter && (0, _element.createElement)(
|
|
309
|
+
}), showInsertionPointInserter && (0, _element.createElement)(_components.__unstableMotion.div, {
|
|
310
|
+
variants: inserterVariants,
|
|
222
311
|
className: (0, _classnames.default)('block-editor-block-list__insertion-point-inserter')
|
|
223
312
|
}, (0, _element.createElement)(_inserter.default, {
|
|
224
313
|
position: "bottom center",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"names":["InsertionPointOpenRef","InsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","selectBlock","blockEditorStore","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","insertionPoint","order","length","_previousClientId","index","_nextClientId","__unstableWithInserter","previousElement","nextElement","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","ownerDocument","popoverScrollRef","className","onClick","event","target","current","onFocus","showInsertionPointInserter","isOpen","InsertionPoint","children","isVisible","isBlockInsertionPointVisible"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseRef,\n\tuseMemo,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport { usePopoverScroll } from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\n\tconst style = useMemo( () => {\n\t\tif ( ! previousElement && ! nextElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( orientation === 'vertical' ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement\n\t\t\t\t\t? previousElement.offsetWidth\n\t\t\t\t\t: nextElement.offsetWidth,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement\n\t\t\t\t? previousElement.offsetHeight\n\t\t\t\t: nextElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ! previousElement && ! nextElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( orientation === 'vertical' ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\t'is-' + orientation\n\t);\n\n\tfunction onClick( event ) {\n\t\tif ( event.target === ref.current && nextClientId ) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\t// Only show the in-between inserter between blocks, so when there's a\n\t// previous and a next element.\n\tconst showInsertionPointInserter =\n\t\tpreviousElement && nextElement && isInserterShown;\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tnoArrow\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-block-list__insertion-point-popover\"\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t>\n\t\t\t<div\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ classnames( className, {\n\t\t\t\t\t'is-with-inserter': showInsertionPointInserter,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-list__insertion-point-indicator\" />\n\t\t\t\t{ showInsertionPointInserter && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default function InsertionPoint( {\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst isVisible = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).isBlockInsertionPointVisible();\n\t}, [] );\n\n\treturn (\n\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t{ isVisible && (\n\t\t\t\t<InsertionPointPopover\n\t\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ children }\n\t\t</InsertionPointOpenRef.Provider>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"names":["InsertionPointOpenRef","InsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","selectBlock","blockEditorStore","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","insertionPoint","order","length","_previousClientId","index","_nextClientId","__unstableWithInserter","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","ownerDocument","popoverScrollRef","disableMotion","className","onClick","event","target","current","onFocus","showInsertionPointInserter","horizontalLine","start","x","rest","hover","verticalLine","y","lineVariants","opacity","borderRadius","transition","delay","inserterVariants","scale","isOpen","InsertionPoint","children","isVisible","isBlockInsertionPointVisible"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseRef,\n\tuseMemo,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { Popover, __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport { usePopoverScroll } from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ! previousElement && ! nextElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement\n\t\t\t\t\t? previousElement.offsetWidth\n\t\t\t\t\t: nextElement.offsetWidth,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement\n\t\t\t\t? previousElement.offsetHeight\n\t\t\t\t: nextElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ! previousElement && ! nextElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\tconst disableMotion = useReducedMotion();\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\t'is-' + orientation\n\t);\n\n\tfunction onClick( event ) {\n\t\tif ( event.target === ref.current && nextClientId ) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\t// Only show the in-between inserter between blocks, so when there's a\n\t// previous and a next element.\n\tconst showInsertionPointInserter =\n\t\tpreviousElement && nextElement && isInserterShown;\n\n\t// Define animation variants for the line element.\n\tconst horizontalLine = {\n\t\tstart: {\n\t\t\twidth: 0,\n\t\t\ttop: '50%',\n\t\t\tbottom: '50%',\n\t\t\tx: 0,\n\t\t},\n\t\trest: {\n\t\t\twidth: 4,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tx: -2,\n\t\t},\n\t\thover: {\n\t\t\twidth: 4,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tx: -2,\n\t\t},\n\t};\n\tconst verticalLine = {\n\t\tstart: {\n\t\t\theight: 0,\n\t\t\tleft: '50%',\n\t\t\tright: '50%',\n\t\t\ty: 0,\n\t\t},\n\t\trest: {\n\t\t\theight: 4,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ty: -2,\n\t\t},\n\t\thover: {\n\t\t\theight: 4,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ty: -2,\n\t\t},\n\t};\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\t...( ! isVertical ? horizontalLine.start : verticalLine.start ),\n\t\t\topacity: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\t...( ! isVertical ? horizontalLine.rest : verticalLine.rest ),\n\t\t\topacity: 1,\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: { delay: showInsertionPointInserter ? 0.4 : 0 },\n\t\t},\n\t\thover: {\n\t\t\t...( ! isVertical ? horizontalLine.hover : verticalLine.hover ),\n\t\t\topacity: 1,\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: { delay: 0.4 },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.2 },\n\t\t},\n\t};\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tnoArrow\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-block-list__insertion-point-popover\"\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ classnames( className, {\n\t\t\t\t\t'is-with-inserter': showInsertionPointInserter,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ showInsertionPointInserter && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default function InsertionPoint( {\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n} ) {\n\tconst isVisible = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).isBlockInsertionPointVisible();\n\t}, [] );\n\n\treturn (\n\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t{ isVisible && (\n\t\t\t\t<InsertionPointPopover\n\t\t\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ children }\n\t\t</InsertionPointOpenRef.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/index.js"],"names":["DEFAULT_VALUES","topLeft","topRight","bottomLeft","bottomRight","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUES","px","em","rem","BorderRadiusControl","onChange","values","isLinked","setIsLinked","units","availableUnits","unit","unitConfig","find","item","value","step","allValue","toggleLinked","handleSliderChange","next","undefined"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAlBA;AACA;AACA;;AASA;AACA;AACA;AAYA,MAAMA,cAAc,GAAG;AACtBC,EAAAA,OAAO,EAAE,IADa;AAEtBC,EAAAA,QAAQ,EAAE,IAFY;AAGtBC,EAAAA,UAAU,EAAE,IAHU;AAItBC,EAAAA,WAAW,EAAE;AAJS,CAAvB;AAMA,MAAMC,uBAAuB,GAAG,CAAhC;AACA,MAAMC,wBAAwB,GAAG;AAChCC,EAAAA,EAAE,EAAE,GAD4B;AAEhCC,EAAAA,EAAE,EAAE,EAF4B;AAGhCC,EAAAA,GAAG,EAAE;AAH2B,CAAjC;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASC,mBAAT,CAA8B;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAA9B,EAAqD;AACnE,QAAM,CAAEC,QAAF,EAAYC,WAAZ,IAA4B,uBACjC,CAAE,6BAAkBF,MAAlB,CAAF,IAAgC,CAAE,2BAAgBA,MAAhB,CADD,CAAlC;AAIA,QAAMG,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,yBAAY,eAAZ,KAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADpB,GAAhB,CAAd;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/index.js"],"names":["DEFAULT_VALUES","topLeft","topRight","bottomLeft","bottomRight","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUES","px","em","rem","BorderRadiusControl","onChange","values","isLinked","setIsLinked","units","availableUnits","unit","unitConfig","find","item","value","step","allValue","toggleLinked","handleSliderChange","next","undefined"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAlBA;AACA;AACA;;AASA;AACA;AACA;AAYA,MAAMA,cAAc,GAAG;AACtBC,EAAAA,OAAO,EAAE,IADa;AAEtBC,EAAAA,QAAQ,EAAE,IAFY;AAGtBC,EAAAA,UAAU,EAAE,IAHU;AAItBC,EAAAA,WAAW,EAAE;AAJS,CAAvB;AAMA,MAAMC,uBAAuB,GAAG,CAAhC;AACA,MAAMC,wBAAwB,GAAG;AAChCC,EAAAA,EAAE,EAAE,GAD4B;AAEhCC,EAAAA,EAAE,EAAE,EAF4B;AAGhCC,EAAAA,GAAG,EAAE;AAH2B,CAAjC;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASC,mBAAT,CAA8B;AAAEC,EAAAA,QAAF;AAAYC,EAAAA;AAAZ,CAA9B,EAAqD;AACnE,QAAM,CAAEC,QAAF,EAAYC,WAAZ,IAA4B,uBACjC,CAAE,6BAAkBF,MAAlB,CAAF,IAAgC,CAAE,2BAAgBA,MAAhB,CADD,CAAlC;AAIA,QAAMG,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,yBAAY,eAAZ,KAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADpB,GAAhB,CAAd;AAIA,QAAMC,IAAI,GAAG,uBAAYL,MAAZ,CAAb;AACA,QAAMM,UAAU,GAAGH,KAAK,IAAIA,KAAK,CAACI,IAAN,CAAcC,IAAF,IAAYA,IAAI,CAACC,KAAL,KAAeJ,IAAvC,CAA5B;AACA,QAAMK,IAAI,GAAG,CAAAJ,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,KAAoB,CAAjC;AAEA,QAAM,CAAEC,QAAF,IAAe,yCAAW,wBAAaX,MAAb,CAAX,CAArB;;AAEA,QAAMY,YAAY,GAAG,MAAMV,WAAW,CAAE,CAAED,QAAJ,CAAtC;;AAEA,QAAMY,kBAAkB,GAAKC,IAAF,IAAY;AACtCf,IAAAA,QAAQ,CAAEe,IAAI,KAAKC,SAAT,GAAsB,GAAGD,IAAM,GAAGT,IAAM,EAAxC,GAA4CU,SAA9C,CAAR;AACA,GAFD;;AAIA,SACC;AAAU,IAAA,SAAS,EAAC;AAApB,KACC,4CAAU,cAAI,QAAJ,CAAV,CADD,EAEC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGd,QAAQ,GACT,qDACC,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,gDADX;AAEC,IAAA,MAAM,EAAGD,MAFV;AAGC,IAAA,GAAG,EAAGP,uBAHP;AAIC,IAAA,QAAQ,EAAGM,QAJZ;AAKC,IAAA,IAAI,EAAGM,IALR;AAMC,IAAA,KAAK,EAAGF;AANT,IADD,EASC,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,KAAK,EAAGQ,QAFT;AAGC,IAAA,GAAG,EAAGlB,uBAHP;AAIC,IAAA,GAAG,EAAGC,wBAAwB,CAAEW,IAAF,CAJ/B;AAKC,IAAA,eAAe,EAAG,CALnB;AAMC,IAAA,cAAc,EAAG,KANlB;AAOC,IAAA,QAAQ,EAAGQ,kBAPZ;AAQC,IAAA,IAAI,EAAGH;AARR,IATD,CADS,GAsBT,4BAAC,sBAAD;AACC,IAAA,GAAG,EAAGjB,uBADP;AAEC,IAAA,QAAQ,EAAGM,QAFZ;AAGC,IAAA,MAAM,EAAGC,MAAM,IAAIZ,cAHpB;AAIC,IAAA,KAAK,EAAGe;AAJT,IAvBF,EA8BC,4BAAC,qBAAD;AAAc,IAAA,OAAO,EAAGS,YAAxB;AAAuC,IAAA,QAAQ,EAAGX;AAAlD,IA9BD,CAFD,CADD;AAqCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRangeControl,\n\t__experimentalParseUnit as parseUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AllInputControl from './all-input-control';\nimport InputControls from './input-controls';\nimport LinkedButton from './linked-button';\nimport useSetting from '../use-setting';\nimport {\n\tgetAllValue,\n\tgetAllUnit,\n\thasDefinedValues,\n\thasMixedValues,\n} from './utils';\n\nconst DEFAULT_VALUES = {\n\ttopLeft: null,\n\ttopRight: null,\n\tbottomLeft: null,\n\tbottomRight: null,\n};\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUES = {\n\tpx: 100,\n\tem: 20,\n\trem: 20,\n};\n\n/**\n * Control to display border radius options.\n *\n * @param {Object} props Component props.\n * @param {Function} props.onChange Callback to handle onChange.\n * @param {Object} props.values Border radius values.\n *\n * @return {WPElement} Custom border radius control.\n */\nexport default function BorderRadiusControl( { onChange, values } ) {\n\tconst [ isLinked, setIsLinked ] = useState(\n\t\t! hasDefinedValues( values ) || ! hasMixedValues( values )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tconst unit = getAllUnit( values );\n\tconst unitConfig = units && units.find( ( item ) => item.value === unit );\n\tconst step = unitConfig?.step || 1;\n\n\tconst [ allValue ] = parseUnit( getAllValue( values ) );\n\n\tconst toggleLinked = () => setIsLinked( ! isLinked );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( next !== undefined ? `${ next }${ unit }` : undefined );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"components-border-radius-control\">\n\t\t\t<legend>{ __( 'Radius' ) }</legend>\n\t\t\t<div className=\"components-border-radius-control__wrapper\">\n\t\t\t\t{ isLinked ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AllInputControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__unit-control\"\n\t\t\t\t\t\t\tvalues={ values }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tunit={ unit }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__range-control\"\n\t\t\t\t\t\t\tvalue={ allValue }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUES[ unit ] }\n\t\t\t\t\t\t\tinitialPosition={ 0 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<InputControls\n\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tvalues={ values || DEFAULT_VALUES }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<LinkedButton onClick={ toggleLinked } isLinked={ isLinked } />\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.mode = mode;
|
|
6
7
|
exports.getAllUnit = getAllUnit;
|
|
7
8
|
exports.getAllValue = getAllValue;
|
|
8
9
|
exports.hasMixedValues = hasMixedValues;
|
|
@@ -15,20 +16,28 @@ var _components = require("@wordpress/components");
|
|
|
15
16
|
*/
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
|
-
* Gets the item with the highest occurrence within an array
|
|
19
|
-
* https://stackoverflow.com/a/20762713
|
|
19
|
+
* Gets the (non-undefined) item with the highest occurrence within an array
|
|
20
|
+
* Based in part on: https://stackoverflow.com/a/20762713
|
|
20
21
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
22
|
+
* Undefined values are always sorted to the end by `sort`, so this function
|
|
23
|
+
* returns the first element, to always prioritize real values over undefined
|
|
24
|
+
* values.
|
|
25
|
+
*
|
|
26
|
+
* See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description
|
|
27
|
+
*
|
|
28
|
+
* @param {Array<any>} inputArray Array of items to check.
|
|
29
|
+
* @return {any} The item with the most occurrences.
|
|
23
30
|
*/
|
|
24
|
-
function mode(
|
|
25
|
-
|
|
31
|
+
function mode(inputArray) {
|
|
32
|
+
const arr = [...inputArray];
|
|
33
|
+
return arr.sort((a, b) => inputArray.filter(v => v === b).length - inputArray.filter(v => v === a).length).shift();
|
|
26
34
|
}
|
|
27
35
|
/**
|
|
28
36
|
* Returns the most common CSS unit in the radius values.
|
|
37
|
+
* Falls back to `px` as a default unit.
|
|
29
38
|
*
|
|
30
39
|
* @param {Object|string} values Radius values.
|
|
31
|
-
* @return {string} Most common CSS unit in values.
|
|
40
|
+
* @return {string} Most common CSS unit in values. Default: `px`.
|
|
32
41
|
*/
|
|
33
42
|
|
|
34
43
|
|
|
@@ -42,7 +51,7 @@ function getAllUnit(values = {}) {
|
|
|
42
51
|
const [, unit] = (0, _components.__experimentalParseUnit)(value);
|
|
43
52
|
return unit;
|
|
44
53
|
});
|
|
45
|
-
return mode(allUnits);
|
|
54
|
+
return mode(allUnits) || 'px';
|
|
46
55
|
}
|
|
47
56
|
/**
|
|
48
57
|
* Gets the 'all' input value and unit from values data.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/utils.js"],"names":["mode","arr","sort","a","b","filter","v","length","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/border-radius-control/utils.js"],"names":["mode","inputArray","arr","sort","a","b","filter","v","length","shift","getAllUnit","values","unit","allUnits","Object","map","value","getAllValue","parsedValues","allValues","every","allValue","hasMixedValues","isMixed","isNaN","parseFloat","hasDefinedValues","filteredValues"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalParseUnit as parseUnit } from '@wordpress/components';\n\n/**\n * Gets the (non-undefined) item with the highest occurrence within an array\n * Based in part on: https://stackoverflow.com/a/20762713\n *\n * Undefined values are always sorted to the end by `sort`, so this function\n * returns the first element, to always prioritize real values over undefined\n * values.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description\n *\n * @param {Array<any>} inputArray Array of items to check.\n * @return {any} The item with the most occurrences.\n */\nexport function mode( inputArray ) {\n\tconst arr = [ ...inputArray ];\n\treturn arr\n\t\t.sort(\n\t\t\t( a, b ) =>\n\t\t\t\tinputArray.filter( ( v ) => v === b ).length -\n\t\t\t\tinputArray.filter( ( v ) => v === a ).length\n\t\t)\n\t\t.shift();\n}\n\n/**\n * Returns the most common CSS unit in the radius values.\n * Falls back to `px` as a default unit.\n *\n * @param {Object|string} values Radius values.\n * @return {string} Most common CSS unit in values. Default: `px`.\n */\nexport function getAllUnit( values = {} ) {\n\tif ( typeof values === 'string' ) {\n\t\tconst [ , unit ] = parseUnit( values );\n\t\treturn unit || 'px';\n\t}\n\n\tconst allUnits = Object.values( values ).map( ( value ) => {\n\t\tconst [ , unit ] = parseUnit( value );\n\t\treturn unit;\n\t} );\n\n\treturn mode( allUnits ) || 'px';\n}\n\n/**\n * Gets the 'all' input value and unit from values data.\n *\n * @param {Object|string} values Radius values.\n * @return {string} A value + unit for the 'all' input.\n */\nexport function getAllValue( values = {} ) {\n\t/**\n\t * Border radius support was originally a single pixel value.\n\t *\n\t * To maintain backwards compatibility treat this case as the all value.\n\t */\n\tif ( typeof values === 'string' ) {\n\t\treturn values;\n\t}\n\n\tconst parsedValues = Object.values( values ).map( ( value ) =>\n\t\tparseUnit( value )\n\t);\n\n\tconst allValues = parsedValues.map( ( value ) => value[ 0 ] );\n\tconst allUnits = parsedValues.map( ( value ) => value[ 1 ] );\n\n\tconst value = allValues.every( ( v ) => v === allValues[ 0 ] )\n\t\t? allValues[ 0 ]\n\t\t: '';\n\tconst unit = mode( allUnits );\n\n\tconst allValue = value === 0 || value ? `${ value }${ unit }` : null;\n\n\treturn allValue;\n}\n\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasMixedValues( values = {} ) {\n\tconst allValue = getAllValue( values );\n\tconst isMixed = isNaN( parseFloat( allValue ) );\n\n\treturn isMixed;\n}\n\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Radius values.\n * @return {boolean} Whether values are mixed.\n */\nexport function hasDefinedValues( values ) {\n\tif ( ! values ) {\n\t\treturn false;\n\t}\n\n\t// A string value represents a shorthand value.\n\tif ( typeof values === 'string' ) {\n\t\treturn true;\n\t}\n\n\t// An object represents longhand border radius values, if any are set\n\t// flag values as being defined.\n\tconst filteredValues = Object.values( values ).filter( ( value ) => {\n\t\treturn !! value || value === 0;\n\t} );\n\n\treturn !! filteredValues.length;\n}\n"]}
|
|
@@ -95,24 +95,28 @@ function ColorGradientControlInner({
|
|
|
95
95
|
|
|
96
96
|
return (0, _element.createElement)(_components.BaseControl, {
|
|
97
97
|
className: (0, _classnames.default)('block-editor-color-gradient-control', className)
|
|
98
|
-
}, (0, _element.createElement)("fieldset", null, (0, _element.createElement)(
|
|
98
|
+
}, (0, _element.createElement)("fieldset", null, (0, _element.createElement)(_components.__experimentalVStack, {
|
|
99
|
+
space: 3
|
|
100
|
+
}, (0, _element.createElement)("legend", null, (0, _element.createElement)("div", {
|
|
99
101
|
className: "block-editor-color-gradient-control__color-indicator"
|
|
100
102
|
}, (0, _element.createElement)(_components.BaseControl.VisualLabel, null, (0, _element.createElement)(VisualLabel, {
|
|
101
103
|
currentTab: currentTab,
|
|
102
104
|
label: label,
|
|
103
105
|
colorValue: colorValue,
|
|
104
106
|
gradientValue: gradientValue
|
|
105
|
-
})))), canChooseAColor && canChooseAGradient && (0, _element.createElement)(_components.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}, (0,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
107
|
+
})))), canChooseAColor && canChooseAGradient && (0, _element.createElement)(_components.__experimentalToggleGroupControl, {
|
|
108
|
+
value: currentTab,
|
|
109
|
+
onChange: setCurrentTab,
|
|
110
|
+
label: (0, _i18n.__)('Select color type'),
|
|
111
|
+
hideLabelFromVision: true,
|
|
112
|
+
isBlock: true
|
|
113
|
+
}, (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
|
|
114
|
+
value: "color",
|
|
115
|
+
label: (0, _i18n.__)('Solid')
|
|
116
|
+
}), (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
|
|
117
|
+
value: "gradient",
|
|
118
|
+
label: (0, _i18n.__)('Gradient')
|
|
119
|
+
})), (currentTab === 'color' || !canChooseAGradient) && (0, _element.createElement)(_components.ColorPalette, {
|
|
116
120
|
value: colorValue,
|
|
117
121
|
onChange: canChooseAGradient ? newColor => {
|
|
118
122
|
onColorChange(newColor);
|
|
@@ -130,7 +134,7 @@ function ColorGradientControlInner({
|
|
|
130
134
|
gradients,
|
|
131
135
|
disableCustomGradients,
|
|
132
136
|
clearable: clearable
|
|
133
|
-
})));
|
|
137
|
+
}))));
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
function ColorGradientControlSelect(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["colorIndicatorAriaLabel","gradientIndicatorAriaLabel","colorsAndGradientKeys","VisualLabel","colors","gradients","label","currentTab","colorValue","gradientValue","value","ariaLabel","colorObject","colorName","name","gradientObject","gradientName","ColorGradientControlInner","disableCustomColors","disableCustomGradients","className","onColorChange","onGradientChange","clearable","canChooseAColor","canChooseAGradient","setCurrentTab","newColor","newGradient","ColorGradientControlSelect","props","colorGradientSettings","ColorGradientControl","key","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { every, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\tBaseControl,\n\tButton,\n\tButtonGroup,\n\tColorIndicator,\n\tColorPalette,\n\tGradientPicker,\n} from '@wordpress/components';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getColorObjectByColorValue } from '../colors';\nimport { __experimentalGetGradientObjectByGradientValue } from '../gradients';\nimport useSetting from '../use-setting';\n\n// translators: first %s: the color name or value (e.g. red or #ff0000)\nconst colorIndicatorAriaLabel = __( '(Color: %s)' );\n\n// translators: first %s: the gradient name or value (e.g. red to green or linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)\nconst gradientIndicatorAriaLabel = __( '(Gradient: %s)' );\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nfunction VisualLabel( {\n\tcolors,\n\tgradients,\n\tlabel,\n\tcurrentTab,\n\tcolorValue,\n\tgradientValue,\n} ) {\n\tlet value, ariaLabel;\n\tif ( currentTab === 'color' ) {\n\t\tif ( colorValue ) {\n\t\t\tvalue = colorValue;\n\t\t\tconst colorObject = getColorObjectByColorValue( colors, value );\n\t\t\tconst colorName = colorObject && colorObject.name;\n\t\t\tariaLabel = sprintf( colorIndicatorAriaLabel, colorName || value );\n\t\t}\n\t} else if ( currentTab === 'gradient' && gradientValue ) {\n\t\tvalue = gradientValue;\n\t\tconst gradientObject = __experimentalGetGradientObjectByGradientValue(\n\t\t\tgradients,\n\t\t\tvalue\n\t\t);\n\t\tconst gradientName = gradientObject && gradientObject.name;\n\t\tariaLabel = sprintf(\n\t\t\tgradientIndicatorAriaLabel,\n\t\t\tgradientName || value\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ label }\n\t\t\t{ !! value && (\n\t\t\t\t<ColorIndicator colorValue={ value } aria-label={ ariaLabel } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange && ( ! isEmpty( colors ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ! isEmpty( gradients ) || ! disableCustomGradients );\n\tconst [ currentTab, setCurrentTab ] = useState(\n\t\tgradientValue ? 'gradient' : !! canChooseAColor && 'color'\n\t);\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BaseControl\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-color-gradient-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<fieldset>\n\t\t\t\t<legend>\n\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<VisualLabel\n\t\t\t\t\t\t\t\tcurrentTab={ currentTab }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tcolorValue={ colorValue }\n\t\t\t\t\t\t\t\tgradientValue={ gradientValue }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t</div>\n\t\t\t\t</legend>\n\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t<ButtonGroup className=\"block-editor-color-gradient-control__button-tabs\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tisPressed={ currentTab === 'color' }\n\t\t\t\t\t\t\tonClick={ () => setCurrentTab( 'color' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Solid' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tisPressed={ currentTab === 'gradient' }\n\t\t\t\t\t\t\tonClick={ () => setCurrentTab( 'gradient' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Gradient' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</ButtonGroup>\n\t\t\t\t) }\n\t\t\t\t{ ( currentTab === 'color' || ! canChooseAGradient ) && (\n\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\tvalue={ colorValue }\n\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: onColorChange\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t\t\tclearable={ clearable }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ( currentTab === 'gradient' || ! canChooseAColor ) && (\n\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\tvalue={ gradientValue }\n\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: onGradientChange\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t\t\tclearable={ clearable }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n\nfunction ColorGradientControlSelect( props ) {\n\tconst colorGradientSettings = {};\n\tcolorGradientSettings.colors = useSetting( 'color.palette' );\n\tcolorGradientSettings.gradients = useSetting( 'color.gradients' );\n\tcolorGradientSettings.disableCustomColors = ! useSetting( 'color.custom' );\n\tcolorGradientSettings.disableCustomGradients = ! useSetting(\n\t\t'color.customGradient'\n\t);\n\n\treturn (\n\t\t<ColorGradientControlInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n}\n\nfunction ColorGradientControl( props ) {\n\tif (\n\t\tevery( colorsAndGradientKeys, ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <ColorGradientControlInner { ...props } />;\n\t}\n\treturn <ColorGradientControlSelect { ...props } />;\n}\n\nexport default ColorGradientControl;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["colorIndicatorAriaLabel","gradientIndicatorAriaLabel","colorsAndGradientKeys","VisualLabel","colors","gradients","label","currentTab","colorValue","gradientValue","value","ariaLabel","colorObject","colorName","name","gradientObject","gradientName","ColorGradientControlInner","disableCustomColors","disableCustomGradients","className","onColorChange","onGradientChange","clearable","canChooseAColor","canChooseAGradient","setCurrentTab","newColor","newGradient","ColorGradientControlSelect","props","colorGradientSettings","ColorGradientControl","key","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { every, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\tBaseControl,\n\t__experimentalVStack as VStack,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tColorIndicator,\n\tColorPalette,\n\tGradientPicker,\n} from '@wordpress/components';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getColorObjectByColorValue } from '../colors';\nimport { __experimentalGetGradientObjectByGradientValue } from '../gradients';\nimport useSetting from '../use-setting';\n\n// translators: first %s: the color name or value (e.g. red or #ff0000)\nconst colorIndicatorAriaLabel = __( '(Color: %s)' );\n\n// translators: first %s: the gradient name or value (e.g. red to green or linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)\nconst gradientIndicatorAriaLabel = __( '(Gradient: %s)' );\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nfunction VisualLabel( {\n\tcolors,\n\tgradients,\n\tlabel,\n\tcurrentTab,\n\tcolorValue,\n\tgradientValue,\n} ) {\n\tlet value, ariaLabel;\n\tif ( currentTab === 'color' ) {\n\t\tif ( colorValue ) {\n\t\t\tvalue = colorValue;\n\t\t\tconst colorObject = getColorObjectByColorValue( colors, value );\n\t\t\tconst colorName = colorObject && colorObject.name;\n\t\t\tariaLabel = sprintf( colorIndicatorAriaLabel, colorName || value );\n\t\t}\n\t} else if ( currentTab === 'gradient' && gradientValue ) {\n\t\tvalue = gradientValue;\n\t\tconst gradientObject = __experimentalGetGradientObjectByGradientValue(\n\t\t\tgradients,\n\t\t\tvalue\n\t\t);\n\t\tconst gradientName = gradientObject && gradientObject.name;\n\t\tariaLabel = sprintf(\n\t\t\tgradientIndicatorAriaLabel,\n\t\t\tgradientName || value\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ label }\n\t\t\t{ !! value && (\n\t\t\t\t<ColorIndicator colorValue={ value } aria-label={ ariaLabel } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange && ( ! isEmpty( colors ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ! isEmpty( gradients ) || ! disableCustomGradients );\n\tconst [ currentTab, setCurrentTab ] = useState(\n\t\tgradientValue ? 'gradient' : !! canChooseAColor && 'color'\n\t);\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BaseControl\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-color-gradient-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<fieldset>\n\t\t\t\t<VStack space={ 3 }>\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t<VisualLabel\n\t\t\t\t\t\t\t\t\tcurrentTab={ currentTab }\n\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\tcolorValue={ colorValue }\n\t\t\t\t\t\t\t\t\tgradientValue={ gradientValue }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tvalue={ currentTab }\n\t\t\t\t\t\t\tonChange={ setCurrentTab }\n\t\t\t\t\t\t\tlabel={ __( 'Select color type' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"color\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Solid' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"gradient\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Gradient' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ( currentTab === 'color' || ! canChooseAGradient ) && (\n\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\tvalue={ colorValue }\n\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t: onColorChange\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t\t\t\tclearable={ clearable }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ( currentTab === 'gradient' || ! canChooseAColor ) && (\n\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\tvalue={ gradientValue }\n\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t: onGradientChange\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t\t\t\tclearable={ clearable }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</VStack>\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n\nfunction ColorGradientControlSelect( props ) {\n\tconst colorGradientSettings = {};\n\tcolorGradientSettings.colors = useSetting( 'color.palette' );\n\tcolorGradientSettings.gradients = useSetting( 'color.gradients' );\n\tcolorGradientSettings.disableCustomColors = ! useSetting( 'color.custom' );\n\tcolorGradientSettings.disableCustomGradients = ! useSetting(\n\t\t'color.customGradient'\n\t);\n\n\treturn (\n\t\t<ColorGradientControlInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n}\n\nfunction ColorGradientControl( props ) {\n\tif (\n\t\tevery( colorsAndGradientKeys, ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <ColorGradientControlInner { ...props } />;\n\t}\n\treturn <ColorGradientControlSelect { ...props } />;\n}\n\nexport default ColorGradientControl;\n"]}
|
|
@@ -46,10 +46,10 @@ function useNotifyCopy() {
|
|
|
46
46
|
let notice = '';
|
|
47
47
|
|
|
48
48
|
if (selectedBlockClientIds.length === 1) {
|
|
49
|
+
var _getBlockType;
|
|
50
|
+
|
|
49
51
|
const clientId = selectedBlockClientIds[0];
|
|
50
|
-
const
|
|
51
|
-
title
|
|
52
|
-
} = getBlockType(getBlockName(clientId));
|
|
52
|
+
const title = (_getBlockType = getBlockType(getBlockName(clientId))) === null || _getBlockType === void 0 ? void 0 : _getBlockType.title;
|
|
53
53
|
notice = eventType === 'copy' ? (0, _i18n.sprintf)( // Translators: Name of the block being copied, e.g. "Paragraph".
|
|
54
54
|
(0, _i18n.__)('Copied "%s" to clipboard.'), title) : (0, _i18n.sprintf)( // Translators: Name of the block being cut, e.g. "Paragraph".
|
|
55
55
|
(0, _i18n.__)('Moved "%s" to clipboard.'), title);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useNotifyCopy","getBlockName","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","noticesStore","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","flashBlock","removeBlocks","replaceBlocks","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","blocks","serialized","clipboardData","setData","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/get-paste-event-data';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst { title } = getBlockType( getBlockName( clientId ) );\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\tevent.clipboardData.setData( 'text/plain', serialized );\n\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\nexport default CopyHandler;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/copy-handler/index.js"],"names":["useNotifyCopy","getBlockName","blockEditorStore","getBlockType","blocksStore","createSuccessNotice","noticesStore","eventType","selectedBlockClientIds","notice","length","clientId","title","type","useClipboardHandler","getBlocksByClientId","getSelectedBlockClientIds","hasMultiSelection","getSettings","flashBlock","removeBlocks","replaceBlocks","notifyCopy","node","handler","event","target","ownerDocument","hasSelection","contains","activeElement","eventDefaultPrevented","defaultPrevented","preventDefault","blocks","serialized","clipboardData","setData","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","plainText","html","HTML","mode","addEventListener","removeEventListener","CopyHandler","children"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tserialize,\n\tpasteHandler,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tdocumentHasSelection,\n\tdocumentHasUncollapsedSelection,\n} from '@wordpress/dom';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getPasteEventData } from '../../utils/get-paste-event-data';\nimport { store as blockEditorStore } from '../../store';\n\nexport function useNotifyCopy() {\n\tconst { getBlockName } = useSelect( blockEditorStore );\n\tconst { getBlockType } = useSelect( blocksStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\treturn useCallback( ( eventType, selectedBlockClientIds ) => {\n\t\tlet notice = '';\n\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\tconst clientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst title = getBlockType( getBlockName( clientId ) )?.title;\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being copied, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Copied \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: Name of the block being cut, e.g. \"Paragraph\".\n\t\t\t\t\t\t\t__( 'Moved \"%s\" to clipboard.' ),\n\t\t\t\t\t\t\ttitle\n\t\t\t\t\t );\n\t\t} else {\n\t\t\tnotice =\n\t\t\t\teventType === 'copy'\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being copied.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Copied %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Copied %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %d: Number of blocks being cut.\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Moved %d block to clipboard.',\n\t\t\t\t\t\t\t\t'Moved %d blocks to clipboard.',\n\t\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tselectedBlockClientIds.length\n\t\t\t\t\t );\n\t\t}\n\t\tcreateSuccessNotice( notice, {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}, [] );\n}\n\nexport function useClipboardHandler() {\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\tgetSettings,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction handler( event ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Always handle multiple selected blocks.\n\t\t\tif ( ! hasMultiSelection() ) {\n\t\t\t\tconst { target } = event;\n\t\t\t\tconst { ownerDocument } = target;\n\t\t\t\t// If copying, only consider actual text selection as selection.\n\t\t\t\t// Otherwise, any focus on an input field is considered.\n\t\t\t\tconst hasSelection =\n\t\t\t\t\tevent.type === 'copy' || event.type === 'cut'\n\t\t\t\t\t\t? documentHasUncollapsedSelection( ownerDocument )\n\t\t\t\t\t\t: documentHasSelection( ownerDocument );\n\n\t\t\t\t// Let native copy behaviour take over in input fields.\n\t\t\t\tif ( hasSelection ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventDefaultPrevented = event.defaultPrevented;\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tconst serialized = serialize( blocks );\n\n\t\t\t\tevent.clipboardData.setData( 'text/plain', serialized );\n\t\t\t\tevent.clipboardData.setData( 'text/html', serialized );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\tremoveBlocks( selectedBlockClientIds );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tif ( eventDefaultPrevented ) {\n\t\t\t\t\t// This was likely already handled in rich-text/use-paste-handler.js\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst { plainText, html } = getPasteEventData( event );\n\t\t\t\tconst blocks = pasteHandler( {\n\t\t\t\t\tHTML: html,\n\t\t\t\t\tplainText,\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} );\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n\nfunction CopyHandler( { children } ) {\n\treturn <div ref={ useClipboardHandler() }>{ children }</div>;\n}\n\nexport default CopyHandler;\n"]}
|
|
@@ -75,9 +75,9 @@ function DefaultBlockAppender({
|
|
|
75
75
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
|
|
76
76
|
,
|
|
77
77
|
role: "button",
|
|
78
|
-
"aria-label": (0, _i18n.__)('Add block') //
|
|
78
|
+
"aria-label": (0, _i18n.__)('Add block') // A wrapping container for this one already has the wp-block className.
|
|
79
79
|
,
|
|
80
|
-
className: "
|
|
80
|
+
className: "block-editor-default-block-appender__content",
|
|
81
81
|
onFocus: onAppend
|
|
82
82
|
}, showPrompt ? value : ZWNBSP), (0, _element.createElement)(_inserter.default, {
|
|
83
83
|
rootClientId: rootClientId,
|