@wordpress/block-editor 9.8.0 → 9.8.1-next.957ca95e4c.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/block-list/block-list-compact.native.js +73 -0
- package/build/components/block-list/block-list-compact.native.js.map +1 -0
- package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-popover/index.js +1 -3
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/colors-gradients/control.js +1 -0
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +6 -2
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/rich-text/index.js +10 -0
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +32 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-decoration-control/index.js +28 -17
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +21 -14
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -0
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +7 -10
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/hooks/align.js +3 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +3 -7
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/dimensions.js +6 -6
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/font-appearance.js +2 -1
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +3 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +3 -1
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -6
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +3 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/letter-spacing.js +2 -1
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +2 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +3 -7
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/text-decoration.js +2 -1
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +2 -1
- package/build/hooks/text-transform.js.map +1 -1
- package/build/layouts/constrained.js +12 -2
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flow.js +12 -2
- package/build/layouts/flow.js.map +1 -1
- package/build-module/components/block-list/block-list-compact.native.js +58 -0
- package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -3
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +1 -0
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +5 -2
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/rich-text/index.js +10 -0
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +30 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +25 -18
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +19 -15
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -0
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +7 -10
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/hooks/align.js +4 -2
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +3 -6
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/dimensions.js +6 -6
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/font-appearance.js +2 -1
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +3 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -6
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +4 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +2 -1
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +2 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +3 -6
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/text-decoration.js +2 -1
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +2 -1
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/layouts/constrained.js +13 -3
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flow.js +13 -3
- package/build-module/layouts/flow.js.map +1 -1
- package/build-style/style-rtl.css +42 -41
- package/build-style/style.css +42 -41
- package/package.json +28 -28
- package/src/components/block-list/block-list-compact.native.js +62 -0
- package/src/components/block-list/style.scss +29 -6
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -1
- package/src/components/block-popover/index.js +0 -2
- package/src/components/block-switcher/test/index.js +1 -2
- package/src/components/button-block-appender/style.scss +23 -0
- package/src/components/colors-gradients/control.js +1 -0
- package/src/components/inner-blocks/index.native.js +5 -1
- package/src/components/rich-text/index.js +9 -0
- package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
- package/src/components/spacing-sizes-control/test/utils.js +26 -0
- package/src/components/spacing-sizes-control/utils.js +36 -9
- package/src/components/text-decoration-control/index.js +41 -30
- package/src/components/text-decoration-control/stories/index.js +37 -0
- package/src/components/text-transform-control/index.js +27 -27
- package/src/components/text-transform-control/stories/index.js +37 -0
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-select-all.js +10 -13
- package/src/hooks/align.js +2 -2
- package/src/hooks/anchor.js +1 -6
- package/src/hooks/dimensions.js +7 -8
- package/src/hooks/font-appearance.js +1 -0
- package/src/hooks/font-family.js +2 -0
- package/src/hooks/font-size.js +2 -0
- package/src/hooks/gap.js +43 -25
- package/src/hooks/layout.js +2 -2
- package/src/hooks/letter-spacing.js +1 -0
- package/src/hooks/line-height.js +1 -0
- package/src/hooks/lock.js +1 -6
- package/src/hooks/test/gap.js +16 -22
- package/src/hooks/text-decoration.js +1 -0
- package/src/hooks/text-transform.js +1 -0
- package/src/hooks/typography.scss +0 -6
- package/src/layouts/constrained.js +12 -9
- package/src/layouts/flow.js +12 -10
- package/src/style.scss +0 -2
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _reactNative = require("react-native");
|
|
13
|
+
|
|
14
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
15
|
+
|
|
16
|
+
var _data = require("@wordpress/data");
|
|
17
|
+
|
|
18
|
+
var _style = _interopRequireDefault(require("./style.scss"));
|
|
19
|
+
|
|
20
|
+
var _block = _interopRequireDefault(require("./block"));
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* External dependencies
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* WordPress dependencies
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Internal dependencies
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* NOTE: This is a component currently used by the List block (V2)
|
|
36
|
+
* It only passes the needed props for this block, if other blocks will use it
|
|
37
|
+
* make sure you pass other props that might be required coming from:
|
|
38
|
+
* components/inner-blocks/index.native.js
|
|
39
|
+
*/
|
|
40
|
+
function BlockListCompact(props) {
|
|
41
|
+
const {
|
|
42
|
+
marginHorizontal = _style.default.defaultBlock.marginLeft,
|
|
43
|
+
marginVertical = _style.default.defaultBlock.marginTop,
|
|
44
|
+
rootClientId
|
|
45
|
+
} = props;
|
|
46
|
+
const {
|
|
47
|
+
blockClientIds
|
|
48
|
+
} = (0, _data.useSelect)(select => {
|
|
49
|
+
const {
|
|
50
|
+
getBlockOrder
|
|
51
|
+
} = select(_blockEditor.store);
|
|
52
|
+
const blockOrder = getBlockOrder(rootClientId);
|
|
53
|
+
return {
|
|
54
|
+
blockClientIds: blockOrder
|
|
55
|
+
};
|
|
56
|
+
}, [rootClientId]);
|
|
57
|
+
const containerStyle = {
|
|
58
|
+
marginVertical: -marginVertical,
|
|
59
|
+
marginHorizontal: -marginHorizontal
|
|
60
|
+
};
|
|
61
|
+
return (0, _element.createElement)(_reactNative.View, {
|
|
62
|
+
style: containerStyle
|
|
63
|
+
}, blockClientIds.map(currentClientId => (0, _element.createElement)(_block.default, {
|
|
64
|
+
clientId: currentClientId,
|
|
65
|
+
key: currentClientId,
|
|
66
|
+
marginHorizontal: marginHorizontal,
|
|
67
|
+
marginVertical: marginVertical
|
|
68
|
+
})));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var _default = BlockListCompact;
|
|
72
|
+
exports.default = _default;
|
|
73
|
+
//# sourceMappingURL=block-list-compact.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-compact.native.js"],"names":["BlockListCompact","props","marginHorizontal","styles","defaultBlock","marginLeft","marginVertical","marginTop","rootClientId","blockClientIds","select","getBlockOrder","blockEditorStore","blockOrder","containerStyle","map","currentClientId"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AACA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,gBAAT,CAA2BC,KAA3B,EAAmC;AAClC,QAAM;AACLC,IAAAA,gBAAgB,GAAGC,eAAOC,YAAP,CAAoBC,UADlC;AAELC,IAAAA,cAAc,GAAGH,eAAOC,YAAP,CAAoBG,SAFhC;AAGLC,IAAAA;AAHK,MAIFP,KAJJ;AAKA,QAAM;AAAEQ,IAAAA;AAAF,MAAqB,qBACxBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAoBD,MAAM,CAAEE,kBAAF,CAAhC;AACA,UAAMC,UAAU,GAAGF,aAAa,CAAEH,YAAF,CAAhC;AAEA,WAAO;AACNC,MAAAA,cAAc,EAAEI;AADV,KAAP;AAGA,GARyB,EAS1B,CAAEL,YAAF,CAT0B,CAA3B;AAYA,QAAMM,cAAc,GAAG;AACtBR,IAAAA,cAAc,EAAE,CAACA,cADK;AAEtBJ,IAAAA,gBAAgB,EAAE,CAACA;AAFG,GAAvB;AAKA,SACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGY;AAAd,KACGL,cAAc,CAACM,GAAf,CAAsBC,eAAF,IACrB,4BAAC,cAAD;AACC,IAAA,QAAQ,EAAGA,eADZ;AAEC,IAAA,GAAG,EAAGA,eAFP;AAGC,IAAA,gBAAgB,EAAGd,gBAHpB;AAIC,IAAA,cAAc,EAAGI;AAJlB,IADC,CADH,CADD;AAYA;;eAEcN,gB","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListBlock from './block';\n\n/**\n * NOTE: This is a component currently used by the List block (V2)\n * It only passes the needed props for this block, if other blocks will use it\n * make sure you pass other props that might be required coming from:\n * components/inner-blocks/index.native.js\n */\n\nfunction BlockListCompact( props ) {\n\tconst {\n\t\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\t\tmarginVertical = styles.defaultBlock.marginTop,\n\t\trootClientId,\n\t} = props;\n\tconst { blockClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder } = select( blockEditorStore );\n\t\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\t\treturn {\n\t\t\t\tblockClientIds: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst containerStyle = {\n\t\tmarginVertical: -marginVertical,\n\t\tmarginHorizontal: -marginHorizontal,\n\t};\n\n\treturn (\n\t\t<View style={ containerStyle }>\n\t\t\t{ blockClientIds.map( ( currentClientId ) => (\n\t\t\t\t<BlockListBlock\n\t\t\t\t\tclientId={ currentClientId }\n\t\t\t\t\tkey={ currentClientId }\n\t\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</View>\n\t);\n}\n\nexport default BlockListCompact;\n"]}
|
|
@@ -94,7 +94,7 @@ function useFocusFirstElement(clientId) {
|
|
|
94
94
|
ownerDocument
|
|
95
95
|
} = ref.current; // Do not focus the block if it already contains the active element.
|
|
96
96
|
|
|
97
|
-
if (ref.current
|
|
97
|
+
if ((0, _dom2.isInsideRootBlock)(ref.current, ownerDocument.activeElement)) {
|
|
98
98
|
return;
|
|
99
99
|
} // Find all tabbables within node.
|
|
100
100
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js"],"names":["useInitialPosition","clientId","select","getSelectedBlocksInitialCaretPosition","isNavigationMode","isBlockSelected","blockEditorStore","useFocusFirstElement","ref","initialPosition","isMultiSelecting","undefined","current","ownerDocument","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js"],"names":["useInitialPosition","clientId","select","getSelectedBlocksInitialCaretPosition","isNavigationMode","isBlockSelected","blockEditorStore","useFocusFirstElement","ref","initialPosition","isMultiSelecting","undefined","current","ownerDocument","activeElement","textInputs","focus","tabbable","find","filter","node","isReverse","target","last","first","getAttribute","focusElement","findNext"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AAMA;;AAKA;;AACA;;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AAUA;AACA;AACA;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,kBAAT,CAA6BC,QAA7B,EAAwC;AACvC,SAAO,qBACJC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,qCADK;AAELC,MAAAA,gBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,YAAF,CAJV;;AAMA,QAAK,CAAED,eAAe,CAAEJ,QAAF,CAAtB,EAAqC;AACpC;AACA;;AAED,QAAKG,gBAAgB,EAArB,EAA0B;AACzB;AACA,KAbY,CAeb;;;AACA,WAAOD,qCAAqC,EAA5C;AACA,GAlBK,EAmBN,CAAEF,QAAF,CAnBM,CAAP;AAqBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASM,oBAAT,CAA+BN,QAA/B,EAA0C;AAChD,QAAMO,GAAG,GAAG,sBAAZ;AACA,QAAMC,eAAe,GAAGT,kBAAkB,CAAEC,QAAF,CAA1C;AACA,QAAM;AAAEI,IAAAA,eAAF;AAAmBK,IAAAA;AAAnB,MAAwC,qBAAWJ,YAAX,CAA9C;AAEA,0BAAW,MAAM;AAChB;AACA,QAAK,CAAED,eAAe,CAAEJ,QAAF,CAAjB,IAAiCS,gBAAgB,EAAtD,EAA2D;AAC1D;AACA;;AAED,QAAKD,eAAe,KAAKE,SAApB,IAAiCF,eAAe,KAAK,IAA1D,EAAiE;AAChE;AACA;;AAED,QAAK,CAAED,GAAG,CAACI,OAAX,EAAqB;AACpB;AACA;;AAED,UAAM;AAAEC,MAAAA;AAAF,QAAoBL,GAAG,CAACI,OAA9B,CAdgB,CAgBhB;;AACA,QAAK,6BAAmBJ,GAAG,CAACI,OAAvB,EAAgCC,aAAa,CAACC,aAA9C,CAAL,EAAqE;AACpE;AACA,KAnBe,CAqBhB;;;AACA,UAAMC,UAAU,GAAGC,WAAMC,QAAN,CACjBC,IADiB,CACXV,GAAG,CAACI,OADO,EAEjBO,MAFiB,CAEPC,IAAF,IAAY,sBAAaA,IAAb,CAFH,CAAnB,CAtBgB,CA0BhB;AACA;;;AACA,UAAMC,SAAS,GAAG,CAAC,CAAD,KAAOZ,eAAzB;AACA,UAAMa,MAAM,GACX,CAAED,SAAS,GAAGE,YAAH,GAAUC,aAArB,EAA8BT,UAA9B,KAA8CP,GAAG,CAACI,OADnD;;AAGA,QAAK,CAAE,6BAAmBJ,GAAG,CAACI,OAAvB,EAAgCU,MAAhC,CAAP,EAAkD;AACjDd,MAAAA,GAAG,CAACI,OAAJ,CAAYI,KAAZ;AACA;AACA,KAnCe,CAqChB;;;AACA,QAAK,CAAER,GAAG,CAACI,OAAJ,CAAYa,YAAZ,CAA0B,iBAA1B,CAAP,EAAuD;AACtD,YAAMC,YAAY,GAAGV,WAAMC,QAAN,CAAeU,QAAf,CAAyBnB,GAAG,CAACI,OAA7B,CAArB,CADsD,CAEtD;;;AACA,UACCc,YAAY,IACZ,6BAAmBlB,GAAG,CAACI,OAAvB,EAAgCc,YAAhC,CADA,IAEA,wBAAeA,YAAf,CAHD,EAIE;AACDA,QAAAA,YAAY,CAACV,KAAb;AACA;AACA;AACD;;AAED,yCAA4BM,MAA5B,EAAoCD,SAApC;AACA,GApDD,EAoDG,CAAEZ,eAAF,EAAmBR,QAAnB,CApDH;AAsDA,SAAOO,GAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tfocus,\n\tisFormElement,\n\tisTextField,\n\tplaceCaretAtHorizontalEdge,\n} from '@wordpress/dom';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { isInsideRootBlock } from '../../../utils/dom';\nimport { store as blockEditorStore } from '../../../store';\n\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\n/**\n * Returns the initial position if the block needs to be focussed, `undefined`\n * otherwise. The initial position is either 0 (start) or -1 (end).\n *\n * @param {string} clientId Block client ID.\n *\n * @return {number} The initial position, either 0 (start) or -1 (end).\n */\nfunction useInitialPosition( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t\tisNavigationMode,\n\t\t\t\tisBlockSelected,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockSelected( clientId ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isNavigationMode() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there's no initial position, return 0 to focus the start.\n\t\t\treturn getSelectedBlocksInitialCaretPosition();\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n\n/**\n * Transitions focus to the block or inner tabbable when the block becomes\n * selected and an initial position is set.\n *\n * @param {string} clientId Block client ID.\n *\n * @return {RefObject} React ref with the block element.\n */\nexport function useFocusFirstElement( clientId ) {\n\tconst ref = useRef();\n\tconst initialPosition = useInitialPosition( clientId );\n\tconst { isBlockSelected, isMultiSelecting } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// Check if the block is still selected at the time this effect runs.\n\t\tif ( ! isBlockSelected( clientId ) || isMultiSelecting() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( initialPosition === undefined || initialPosition === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = ref.current;\n\n\t\t// Do not focus the block if it already contains the active element.\n\t\tif ( isInsideRootBlock( ref.current, ownerDocument.activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find all tabbables within node.\n\t\tconst textInputs = focus.tabbable\n\t\t\t.find( ref.current )\n\t\t\t.filter( ( node ) => isTextField( node ) );\n\n\t\t// If reversed (e.g. merge via backspace), use the last in the set of\n\t\t// tabbables.\n\t\tconst isReverse = -1 === initialPosition;\n\t\tconst target =\n\t\t\t( isReverse ? last : first )( textInputs ) || ref.current;\n\n\t\tif ( ! isInsideRootBlock( ref.current, target ) ) {\n\t\t\tref.current.focus();\n\t\t\treturn;\n\t\t}\n\n\t\t// Check to see if element is focussable before a generic caret insert.\n\t\tif ( ! ref.current.getAttribute( 'contenteditable' ) ) {\n\t\t\tconst focusElement = focus.tabbable.findNext( ref.current );\n\t\t\t// Make sure focusElement is valid, contained in the same block, and a form field.\n\t\t\tif (\n\t\t\t\tfocusElement &&\n\t\t\t\tisInsideRootBlock( ref.current, focusElement ) &&\n\t\t\t\tisFormElement( focusElement )\n\t\t\t) {\n\t\t\t\tfocusElement.focus();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tplaceCaretAtHorizontalEdge( target, isReverse );\n\t}, [ initialPosition, clientId ] );\n\n\treturn ref;\n}\n"]}
|
|
@@ -74,9 +74,7 @@ function BlockPopover(_ref, ref) {
|
|
|
74
74
|
anchorRef: anchorRef // Render in the old slot if needed for backward compatibility,
|
|
75
75
|
// otherwise render in place (not in the default popover slot).
|
|
76
76
|
,
|
|
77
|
-
__unstableSlotName: __unstablePopoverSlot || null
|
|
78
|
-
,
|
|
79
|
-
__unstableObserveElement: selectedElement,
|
|
77
|
+
__unstableSlotName: __unstablePopoverSlot || null,
|
|
80
78
|
__unstableForcePosition: true,
|
|
81
79
|
__unstableShift: true
|
|
82
80
|
}, props, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;;;;;;;AAUA;;;;AAPA;;AAKA;;AACA;;AAMA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAIA,SAASA,YAAT,OAWCC,GAXD,EAYE;AAAA,MAXD;AACCC,IAAAA,QADD;AAECC,IAAAA,cAFD;AAGCC,IAAAA,QAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,qBAAqB,GAAG,KALzB;AAMCC,IAAAA,qBAND;AAOCC,IAAAA,oBAPD;AAQC,OAAGC;AARJ,GAWC;AACD,QAAMC,eAAe,GAAG,6CAAiBR,QAAjB,CAAxB;AACA,QAAMS,mBAAmB,GAAG,6CAAiBR,cAAjB,aAAiBA,cAAjB,cAAiBA,cAAjB,GAAmCD,QAAnC,CAA5B;AACA,QAAMU,UAAU,GAAG,2BAAc,CAChCX,GADgC,EAEhC,+BAAkBO,oBAAlB,CAFgC,CAAd,CAAnB;AAIA,QAAMK,KAAK,GAAG,sBAAS,MAAM;AAC5B,QAAK,CAAEH,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVa,EAUX,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVW,CAAd;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,4BAAC,mBAAD;AACC,IAAA,GAAG,EAAGC,UADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;;;;;;;AAUA;;;;AAPA;;AAKA;;AACA;;AAMA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAIA,SAASA,YAAT,OAWCC,GAXD,EAYE;AAAA,MAXD;AACCC,IAAAA,QADD;AAECC,IAAAA,cAFD;AAGCC,IAAAA,QAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,qBAAqB,GAAG,KALzB;AAMCC,IAAAA,qBAND;AAOCC,IAAAA,oBAPD;AAQC,OAAGC;AARJ,GAWC;AACD,QAAMC,eAAe,GAAG,6CAAiBR,QAAjB,CAAxB;AACA,QAAMS,mBAAmB,GAAG,6CAAiBR,cAAjB,aAAiBA,cAAjB,cAAiBA,cAAjB,GAAmCD,QAAnC,CAA5B;AACA,QAAMU,UAAU,GAAG,2BAAc,CAChCX,GADgC,EAEhC,+BAAkBO,oBAAlB,CAFgC,CAAd,CAAnB;AAIA,QAAMK,KAAK,GAAG,sBAAS,MAAM;AAC5B,QAAK,CAAEH,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVa,EAUX,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVW,CAAd;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,4BAAC,mBAAD;AACC,IAAA,GAAG,EAAGC,UADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C;AASC,IAAA,uBAAuB,MATxB;AAUC,IAAA,eAAe;AAVhB,KAWME,KAXN;AAYC,IAAA,SAAS,EAAG,yBACX,4BADW,EAEXA,KAAK,CAACa,SAFK;AAZb,MAiBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAjB5B,EAkBG,CAAEE,qBAAF,IAA2BF,QAlB9B,CADD;AAsBA;;eAEc,yBAAYJ,YAAZ,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstableRefreshSize,\n\t\t__unstableCoverTarget = false,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\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 default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t__unstableForcePosition\n\t\t\t__unstableShift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n\nexport default forwardRef( BlockPopover );\n"]}
|
|
@@ -83,6 +83,7 @@ function ColorGradientControlInner(_ref) {
|
|
|
83
83
|
enableAlpha: enableAlpha
|
|
84
84
|
}),
|
|
85
85
|
[TAB_GRADIENT.value]: (0, _element.createElement)(_components.GradientPicker, {
|
|
86
|
+
__nextHasNoMargin: true,
|
|
86
87
|
value: gradientValue,
|
|
87
88
|
onChange: canChooseAColor ? newGradient => {
|
|
88
89
|
onGradientChange(newGradient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["colorsAndGradientKeys","TAB_COLOR","name","title","value","TAB_GRADIENT","TABS_SETTINGS","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","canChooseAColor","canChooseAGradient","tabPanels","newColor","newGradient","renderPanelType","type","tab","ColorGradientControlSelect","props","colorGradientSettings","ColorGradientControl","key","hasOwnProperty"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AAWA;;AApBA;AACA;AACA;;AAIA;AACA;AACA;;AASA;AACA;AACA;AAGA,MAAMA,qBAAqB,GAAG,CAC7B,QAD6B,EAE7B,qBAF6B,EAG7B,WAH6B,EAI7B,wBAJ6B,CAA9B;AAOA,MAAMC,SAAS,GAAG;AACjBC,EAAAA,IAAI,EAAE,OADW;AAEjBC,EAAAA,KAAK,EAAE,OAFU;AAGjBC,EAAAA,KAAK,EAAE;AAHU,CAAlB;AAKA,MAAMC,YAAY,GAAG;AACpBH,EAAAA,IAAI,EAAE,UADc;AAEpBC,EAAAA,KAAK,EAAE,UAFa;AAGpBC,EAAAA,KAAK,EAAE;AAHa,CAArB;AAMA,MAAME,aAAa,GAAG,CAAEL,SAAF,EAAaI,YAAb,CAAtB;;AAEA,SAASE,yBAAT,OAgBI;AAAA,MAhBgC;AACnCC,IAAAA,MADmC;AAEnCC,IAAAA,SAFmC;AAGnCC,IAAAA,mBAHmC;AAInCC,IAAAA,sBAJmC;AAKnCC,IAAAA,gCALmC;AAMnCC,IAAAA,iCANmC;AAOnCC,IAAAA,SAPmC;AAQnCC,IAAAA,KARmC;AASnCC,IAAAA,aATmC;AAUnCC,IAAAA,gBAVmC;AAWnCC,IAAAA,UAXmC;AAYnCC,IAAAA,aAZmC;AAanCC,IAAAA,SAbmC;AAcnCC,IAAAA,SAAS,GAAG,IAduB;AAenCC,IAAAA;AAfmC,GAgBhC;AACH,QAAMC,eAAe,GACpBP,aAAa,KAAM,CAAE,qBAASR,MAAT,CAAF,IAAuB,CAAEE,mBAA/B,CADd;AAEA,QAAMc,kBAAkB,GACvBP,gBAAgB,KACd,CAAE,qBAASR,SAAT,CAAF,IAA0B,CAAEE,sBADd,CADjB;;AAIA,MAAK,CAAEY,eAAF,IAAqB,CAAEC,kBAA5B,EAAiD;AAChD,WAAO,IAAP;AACA;;AAED,QAAMC,SAAS,GAAG;AACjB,KAAExB,SAAS,CAACG,KAAZ,GACC,4BAAC,wBAAD;AACC,MAAA,KAAK,EAAGc,UADT;AAEC,MAAA,QAAQ,EACPM,kBAAkB,GACbE,QAAF,IAAgB;AAChBV,QAAAA,aAAa,CAAEU,QAAF,CAAb;AACAT,QAAAA,gBAAgB;AACf,OAJc,GAKfD,aARL;AAUQR,MAAAA,MAVR;AAUgBE,MAAAA,mBAVhB;AAWC,MAAA,gCAAgC,EAC/BE,gCAZF;AAcC,MAAA,iCAAiC,EAChCC,iCAfF;AAiBC,MAAA,SAAS,EAAGO,SAjBb;AAkBC,MAAA,WAAW,EAAGE;AAlBf,MAFgB;AAuBjB,KAAEjB,YAAY,CAACD,KAAf,GACC,4BAAC,0BAAD;AACC,MAAA,KAAK,EAAGe,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["colorsAndGradientKeys","TAB_COLOR","name","title","value","TAB_GRADIENT","TABS_SETTINGS","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","canChooseAColor","canChooseAGradient","tabPanels","newColor","newGradient","renderPanelType","type","tab","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 {\n\tBaseControl,\n\t__experimentalVStack as VStack,\n\tTabPanel,\n\tColorPalette,\n\tGradientPicker,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst TAB_COLOR = {\n\tname: 'color',\n\ttitle: 'Solid',\n\tvalue: 'color',\n};\nconst TAB_GRADIENT = {\n\tname: 'gradient',\n\ttitle: 'Gradient',\n\tvalue: 'gradient',\n};\n\nconst TABS_SETTINGS = [ TAB_COLOR, TAB_GRADIENT ];\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\t__experimentalHasMultipleOrigins,\n\t__experimentalIsRenderedInSidebar,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n\tshowTitle = true,\n\tenableAlpha,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange && ( ! isEmpty( colors ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ! isEmpty( gradients ) || ! disableCustomGradients );\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\n\tconst tabPanels = {\n\t\t[ TAB_COLOR.value ]: (\n\t\t\t<ColorPalette\n\t\t\t\tvalue={ colorValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onColorChange\n\t\t\t\t}\n\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t__experimentalHasMultipleOrigins={\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t}\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t/>\n\t\t),\n\t\t[ TAB_GRADIENT.value ]: (\n\t\t\t<GradientPicker\n\t\t\t\t__nextHasNoMargin\n\t\t\t\tvalue={ gradientValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onGradientChange\n\t\t\t\t}\n\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t__experimentalHasMultipleOrigins={\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t}\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t/>\n\t\t),\n\t};\n\n\tconst renderPanelType = ( type ) => (\n\t\t<div className=\"block-editor-color-gradient-control__panel\">\n\t\t\t{ tabPanels[ type ] }\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\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 className=\"block-editor-color-gradient-control__fieldset\">\n\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</legend>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t\t<TabPanel\n\t\t\t\t\t\t\tclassName=\"block-editor-color-gradient-control__tabs\"\n\t\t\t\t\t\t\ttabs={ TABS_SETTINGS }\n\t\t\t\t\t\t\tinitialTabName={\n\t\t\t\t\t\t\t\tgradientValue\n\t\t\t\t\t\t\t\t\t? TAB_GRADIENT.value\n\t\t\t\t\t\t\t\t\t: !! canChooseAColor && TAB_COLOR.value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( tab ) => renderPanelType( tab.value ) }\n\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canChooseAGradient &&\n\t\t\t\t\t\trenderPanelType( TAB_COLOR.value ) }\n\t\t\t\t\t{ ! canChooseAColor &&\n\t\t\t\t\t\trenderPanelType( TAB_GRADIENT.value ) }\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"]}
|
|
@@ -28,6 +28,8 @@ var _getBlockContext = _interopRequireDefault(require("./get-block-context"));
|
|
|
28
28
|
|
|
29
29
|
var _blockList = _interopRequireDefault(require("../block-list"));
|
|
30
30
|
|
|
31
|
+
var _blockListCompact = _interopRequireDefault(require("../block-list/block-list-compact"));
|
|
32
|
+
|
|
31
33
|
var _context = require("../block-edit/context");
|
|
32
34
|
|
|
33
35
|
var _useBlockSync = _interopRequireDefault(require("../provider/use-block-sync"));
|
|
@@ -114,14 +116,16 @@ function UncontrolledInnerBlocks(props) {
|
|
|
114
116
|
filterInnerBlocks,
|
|
115
117
|
blockWidth,
|
|
116
118
|
__experimentalLayout: layout = _layout.defaultLayout,
|
|
117
|
-
gridProperties
|
|
119
|
+
gridProperties,
|
|
120
|
+
useCompactList
|
|
118
121
|
} = props;
|
|
119
122
|
const block = (0, _data.useSelect)(select => select(_store.store).getBlock(clientId), [clientId]) || {
|
|
120
123
|
innerBlocks: []
|
|
121
124
|
};
|
|
122
125
|
(0, _useNestedSettingsUpdate.default)(clientId, allowedBlocks, templateLock);
|
|
123
126
|
(0, _useInnerBlockTemplateSync.default)(clientId, template, templateLock, templateInsertUpdatesSelection);
|
|
124
|
-
|
|
127
|
+
const BlockListComponent = useCompactList ? _blockListCompact.default : _blockList.default;
|
|
128
|
+
let blockList = (0, _element.createElement)(BlockListComponent, {
|
|
125
129
|
marginVertical: marginVertical,
|
|
126
130
|
marginHorizontal: marginHorizontal,
|
|
127
131
|
rootClientId: clientId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/index.native.js"],"names":["useInnerBlocksProps","props","options","fallbackRef","clientId","ref","InnerBlocks","value","onChange","ControlledInnerBlocks","UncontrolledInnerBlocks","children","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","orientation","renderAppender","renderFooterAppender","parentWidth","horizontal","contentResizeMode","contentStyle","onAddBlock","onDeleteBlock","marginVertical","marginHorizontal","horizontalAlignment","filterInnerBlocks","blockWidth","__experimentalLayout","layout","defaultLayout","gridProperties","block","select","blockEditorStore","getBlock","innerBlocks","blockList","blockType","name","providesContext","context","attributes","allProps","DefaultBlockAppender","ButtonBlockAppender","save","getInnerBlocksProps","Content"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\t__unstableGetInnerBlocksProps as getInnerBlocksProps,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ButtonBlockAppender from './button-block-appender';\nimport DefaultBlockAppender from './default-block-appender';\nimport useNestedSettingsUpdate from './use-nested-settings-update';\nimport useInnerBlockTemplateSync from './use-inner-block-template-sync';\nimport getBlockContext from './get-block-context';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport { useBlockEditContext } from '../block-edit/context';\nimport useBlockSync from '../provider/use-block-sync';\nimport { BlockContextProvider } from '../block-context';\nimport { defaultLayout, LayoutProvider } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook is used to lightly mark an element as an inner blocks wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * an inner blocks wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Optional. Inner blocks options.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport function useInnerBlocksProps( props = {}, options = {} ) {\n\tconst fallbackRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\n\tconst ref = props.ref || fallbackRef;\n\tconst InnerBlocks =\n\t\toptions.value && options.onChange\n\t\t\t? ControlledInnerBlocks\n\t\t\t: UncontrolledInnerBlocks;\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tchildren: (\n\t\t\t<InnerBlocks\n\t\t\t\t{ ...options }\n\t\t\t\tclientId={ clientId }\n\t\t\t\twrapperRef={ ref }\n\t\t\t/>\n\t\t),\n\t};\n}\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\nfunction UncontrolledInnerBlocks( props ) {\n\tconst {\n\t\tclientId,\n\t\tallowedBlocks,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection,\n\t\torientation,\n\t\trenderAppender,\n\t\trenderFooterAppender,\n\t\tparentWidth,\n\t\thorizontal,\n\t\tcontentResizeMode,\n\t\tcontentStyle,\n\t\tonAddBlock,\n\t\tonDeleteBlock,\n\t\tmarginVertical,\n\t\tmarginHorizontal,\n\t\thorizontalAlignment,\n\t\tfilterInnerBlocks,\n\t\tblockWidth,\n\t\t__experimentalLayout: layout = defaultLayout,\n\t\tgridProperties,\n\t} = props;\n\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t) || { innerBlocks: [] };\n\n\tuseNestedSettingsUpdate( clientId, allowedBlocks, templateLock );\n\n\tuseInnerBlockTemplateSync(\n\t\tclientId,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection\n\t);\n\n\tlet blockList = (\n\t\t<BlockList\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\trootClientId={ clientId }\n\t\t\trenderAppender={ renderAppender }\n\t\t\trenderFooterAppender={ renderFooterAppender }\n\t\t\twithFooter={ false }\n\t\t\torientation={ orientation }\n\t\t\tparentWidth={ parentWidth }\n\t\t\thorizontalAlignment={ horizontalAlignment }\n\t\t\thorizontal={ horizontal }\n\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\tcontentStyle={ contentStyle }\n\t\t\tonAddBlock={ onAddBlock }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tfilterInnerBlocks={ filterInnerBlocks }\n\t\t\tgridProperties={ gridProperties }\n\t\t\tblockWidth={ blockWidth }\n\t\t/>\n\t);\n\n\t// Wrap context provider if (and only if) block has context to provide.\n\tconst blockType = getBlockType( block.name );\n\tif ( blockType && blockType.providesContext ) {\n\t\tconst context = getBlockContext( block.attributes, blockType );\n\n\t\tblockList = (\n\t\t\t<LayoutProvider value={ layout }>\n\t\t\t\t<BlockContextProvider value={ context }>\n\t\t\t\t\t{ blockList }\n\t\t\t\t</BlockContextProvider>\n\t\t\t</LayoutProvider>\n\t\t);\n\t}\n\n\treturn blockList;\n}\n\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\nfunction ControlledInnerBlocks( props ) {\n\tuseBlockSync( props );\n\treturn <UncontrolledInnerBlocks { ...props } />;\n}\n\n/**\n * Wrapped InnerBlocks component which detects whether to use the controlled or\n * uncontrolled variations of the InnerBlocks component. This is the component\n * which should be used throughout the application.\n *\n * @param {Object} props The component props.\n */\nconst InnerBlocks = ( props ) => {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst allProps = {\n\t\tclientId,\n\t\t...props,\n\t};\n\n\t// Detects if the InnerBlocks should be controlled by an incoming value.\n\treturn props.value && props.onChange ? (\n\t\t<ControlledInnerBlocks { ...allProps } />\n\t) : (\n\t\t<UncontrolledInnerBlocks { ...allProps } />\n\t);\n};\n\n// Expose default appender placeholders as components.\nInnerBlocks.DefaultBlockAppender = DefaultBlockAppender;\nInnerBlocks.ButtonBlockAppender = ButtonBlockAppender;\n\nuseInnerBlocksProps.save = getInnerBlocksProps;\n\nInnerBlocks.Content = () => useInnerBlocksProps.save().children;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport default InnerBlocks;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inner-blocks/index.native.js"],"names":["useInnerBlocksProps","props","options","fallbackRef","clientId","ref","InnerBlocks","value","onChange","ControlledInnerBlocks","UncontrolledInnerBlocks","children","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","orientation","renderAppender","renderFooterAppender","parentWidth","horizontal","contentResizeMode","contentStyle","onAddBlock","onDeleteBlock","marginVertical","marginHorizontal","horizontalAlignment","filterInnerBlocks","blockWidth","__experimentalLayout","layout","defaultLayout","gridProperties","useCompactList","block","select","blockEditorStore","getBlock","innerBlocks","BlockListComponent","BlockListCompact","BlockList","blockList","blockType","name","providesContext","context","attributes","allProps","DefaultBlockAppender","ButtonBlockAppender","save","getInnerBlocksProps","Content"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\t__unstableGetInnerBlocksProps as getInnerBlocksProps,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ButtonBlockAppender from './button-block-appender';\nimport DefaultBlockAppender from './default-block-appender';\nimport useNestedSettingsUpdate from './use-nested-settings-update';\nimport useInnerBlockTemplateSync from './use-inner-block-template-sync';\nimport getBlockContext from './get-block-context';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockListCompact from '../block-list/block-list-compact';\nimport { useBlockEditContext } from '../block-edit/context';\nimport useBlockSync from '../provider/use-block-sync';\nimport { BlockContextProvider } from '../block-context';\nimport { defaultLayout, LayoutProvider } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * This hook is used to lightly mark an element as an inner blocks wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * an inner blocks wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Optional. Inner blocks options.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport function useInnerBlocksProps( props = {}, options = {} ) {\n\tconst fallbackRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\n\tconst ref = props.ref || fallbackRef;\n\tconst InnerBlocks =\n\t\toptions.value && options.onChange\n\t\t\t? ControlledInnerBlocks\n\t\t\t: UncontrolledInnerBlocks;\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tchildren: (\n\t\t\t<InnerBlocks\n\t\t\t\t{ ...options }\n\t\t\t\tclientId={ clientId }\n\t\t\t\twrapperRef={ ref }\n\t\t\t/>\n\t\t),\n\t};\n}\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\nfunction UncontrolledInnerBlocks( props ) {\n\tconst {\n\t\tclientId,\n\t\tallowedBlocks,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection,\n\t\torientation,\n\t\trenderAppender,\n\t\trenderFooterAppender,\n\t\tparentWidth,\n\t\thorizontal,\n\t\tcontentResizeMode,\n\t\tcontentStyle,\n\t\tonAddBlock,\n\t\tonDeleteBlock,\n\t\tmarginVertical,\n\t\tmarginHorizontal,\n\t\thorizontalAlignment,\n\t\tfilterInnerBlocks,\n\t\tblockWidth,\n\t\t__experimentalLayout: layout = defaultLayout,\n\t\tgridProperties,\n\t\tuseCompactList,\n\t} = props;\n\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t) || { innerBlocks: [] };\n\n\tuseNestedSettingsUpdate( clientId, allowedBlocks, templateLock );\n\n\tuseInnerBlockTemplateSync(\n\t\tclientId,\n\t\ttemplate,\n\t\ttemplateLock,\n\t\ttemplateInsertUpdatesSelection\n\t);\n\n\tconst BlockListComponent = useCompactList ? BlockListCompact : BlockList;\n\n\tlet blockList = (\n\t\t<BlockListComponent\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\trootClientId={ clientId }\n\t\t\trenderAppender={ renderAppender }\n\t\t\trenderFooterAppender={ renderFooterAppender }\n\t\t\twithFooter={ false }\n\t\t\torientation={ orientation }\n\t\t\tparentWidth={ parentWidth }\n\t\t\thorizontalAlignment={ horizontalAlignment }\n\t\t\thorizontal={ horizontal }\n\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\tcontentStyle={ contentStyle }\n\t\t\tonAddBlock={ onAddBlock }\n\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\tfilterInnerBlocks={ filterInnerBlocks }\n\t\t\tgridProperties={ gridProperties }\n\t\t\tblockWidth={ blockWidth }\n\t\t/>\n\t);\n\n\t// Wrap context provider if (and only if) block has context to provide.\n\tconst blockType = getBlockType( block.name );\n\tif ( blockType && blockType.providesContext ) {\n\t\tconst context = getBlockContext( block.attributes, blockType );\n\n\t\tblockList = (\n\t\t\t<LayoutProvider value={ layout }>\n\t\t\t\t<BlockContextProvider value={ context }>\n\t\t\t\t\t{ blockList }\n\t\t\t\t</BlockContextProvider>\n\t\t\t</LayoutProvider>\n\t\t);\n\t}\n\n\treturn blockList;\n}\n\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\nfunction ControlledInnerBlocks( props ) {\n\tuseBlockSync( props );\n\treturn <UncontrolledInnerBlocks { ...props } />;\n}\n\n/**\n * Wrapped InnerBlocks component which detects whether to use the controlled or\n * uncontrolled variations of the InnerBlocks component. This is the component\n * which should be used throughout the application.\n *\n * @param {Object} props The component props.\n */\nconst InnerBlocks = ( props ) => {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst allProps = {\n\t\tclientId,\n\t\t...props,\n\t};\n\n\t// Detects if the InnerBlocks should be controlled by an incoming value.\n\treturn props.value && props.onChange ? (\n\t\t<ControlledInnerBlocks { ...allProps } />\n\t) : (\n\t\t<UncontrolledInnerBlocks { ...allProps } />\n\t);\n};\n\n// Expose default appender placeholders as components.\nInnerBlocks.DefaultBlockAppender = DefaultBlockAppender;\nInnerBlocks.ButtonBlockAppender = ButtonBlockAppender;\n\nuseInnerBlocksProps.save = getInnerBlocksProps;\n\nInnerBlocks.Content = () => useInnerBlocksProps.save().children;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md\n */\nexport default InnerBlocks;\n"]}
|
|
@@ -147,6 +147,16 @@ function RichTextWrapper(_ref, forwardedRef) {
|
|
|
147
147
|
__unstableAllowPrefixTransformations,
|
|
148
148
|
...props
|
|
149
149
|
} = _ref;
|
|
150
|
+
|
|
151
|
+
if (multiline) {
|
|
152
|
+
(0, _deprecated.default)('wp.blockEditor.RichText multiline prop', {
|
|
153
|
+
since: '6.1',
|
|
154
|
+
version: '6.3',
|
|
155
|
+
alternative: 'nested blocks (InnerBlocks)',
|
|
156
|
+
link: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/'
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
150
160
|
const instanceId = (0, _compose.useInstanceId)(RichTextWrapper);
|
|
151
161
|
identifier = identifier || instanceId;
|
|
152
162
|
props = removeNativeProps(props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"names":["keyboardShortcutContext","inputEventContext","removeNativeProps","props","RichTextWrapper","forwardedRef","children","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","formattingControls","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","instanceId","anchorRef","clientId","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","selectionChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","childrenSource","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","name","addInvisibleFormats","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableMultilineTag","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onKeyDown","event","keyCode","defaultPrevented","DELETE","BACKSPACE","isReverse","hasActiveFormats","activeFormats","preventDefault","onFocus","current","focus","TagName","content","className","since","alternative","version","ForwardedRichTextContainer","Content","Tag","MultilineTag","isEmpty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRawHTML,\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { children as childrenSource } from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\t__unstableCreateElement,\n\tisEmpty,\n\tisCollapsed,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getMultilineTag, getAllowedFormats } from './utils';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\treturn omit( props, [\n\t\t'__unstableMobileNoFocusOnMount',\n\t\t'deleteEnter',\n\t\t'placeholderTextColor',\n\t\t'textAlign',\n\t\t'selectionColor',\n\t\t'tagsToEliminate',\n\t\t'rootTagsToEliminate',\n\t\t'disableEditingMenu',\n\t\t'fontSize',\n\t\t'fontFamily',\n\t\t'fontWeight',\n\t\t'fontStyle',\n\t\t'minWidth',\n\t\t'maxWidth',\n\t\t'setRef',\n\t\t'disableSuggestions',\n\t\t'disableAutocorrection',\n\t] );\n}\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: originalValue = '',\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableMultilineTag: multilineTag,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === DELETE || keyCode === BACKSPACE ) {\n\t\t\tconst { start, end, text } = value;\n\t\t\tconst isReverse = keyCode === BACKSPACE;\n\t\t\tconst hasActiveFormats =\n\t\t\t\tvalue.activeFormats && !! value.activeFormats.length;\n\n\t\t\t// Only process delete if the key press occurs at an uncollapsed edge.\n\t\t\tif (\n\t\t\t\t! isCollapsed( value ) ||\n\t\t\t\thasActiveFormats ||\n\t\t\t\t( isReverse && start !== 0 ) ||\n\t\t\t\t( ! isReverse && end !== text.length )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\tif ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onFocus() {\n\t\tanchorRef.current.focus();\n\t}\n\n\tconst TagName = tagName;\n\tconst content = (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\tanchorRef={ anchorRef }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ true }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\tonFocus={ unstableOnFocus }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t/>\n\t\t</>\n\t);\n\n\tif ( ! wrapperClassName ) {\n\t\treturn content;\n\t}\n\n\tdeprecated( 'wp.blockEditor.RichText wrapperClassName prop', {\n\t\tsince: '5.4',\n\t\talternative: 'className prop or create your own wrapper div',\n\t\tversion: '6.2',\n\t} );\n\n\tconst className = classnames( 'block-editor-rich-text', wrapperClassName );\n\treturn <div className={ className }>{ content }</div>;\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = ( {\n\tvalue,\n\ttagName: Tag,\n\tmultiline,\n\t...props\n} ) => {\n\t// Handle deprecated `children` and `node` sources.\n\tif ( Array.isArray( value ) ) {\n\t\tvalue = childrenSource.toHTML( value );\n\t}\n\n\tconst MultilineTag = getMultilineTag( multiline );\n\n\tif ( ! value && MultilineTag ) {\n\t\tvalue = `<${ MultilineTag }></${ MultilineTag }>`;\n\t}\n\n\tconst content = <RawHTML>{ value }</RawHTML>;\n\n\tif ( Tag ) {\n\t\treturn <Tag { ...omit( props, [ 'format' ] ) }>{ content }</Tag>;\n\t}\n\n\treturn content;\n};\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/index.js"],"names":["keyboardShortcutContext","inputEventContext","removeNativeProps","props","RichTextWrapper","forwardedRef","children","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","formattingControls","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","since","version","alternative","link","instanceId","anchorRef","clientId","selector","select","getSelectionStart","getSelectionEnd","blockEditorStore","selectionStart","selectionEnd","undefined","attributeKey","offset","selectionChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","childrenSource","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","selection","unset","formatTypes","prepareHandlers","valueHandlers","changeHandlers","dependencies","addEditorOnlyFormats","reduce","accumulator","fn","text","formats","removeEditorOnlyFormats","forEach","formatType","__experimentalCreatePrepareEditableTree","name","addInvisibleFormats","ref","richTextRef","html","__unstableFormats","__unstableText","Object","values","changeHandler","__unstableIsSelected","__unstableMultilineTag","__unstableDependencies","__unstableAfterParse","__unstableBeforeSerialize","__unstableAddInvisibleFormats","autocompleteProps","completers","record","keyboardShortcuts","Set","inputEvents","onKeyDown","event","keyCode","defaultPrevented","DELETE","BACKSPACE","isReverse","hasActiveFormats","activeFormats","preventDefault","onFocus","current","focus","TagName","content","className","ForwardedRichTextContainer","Content","Tag","MultilineTag","isEmpty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRawHTML,\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n\tcreateContext,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { children as childrenSource } from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__unstableUseRichText as useRichText,\n\t__unstableCreateElement,\n\tisEmpty,\n\tisCollapsed,\n\tremoveFormat,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { Popover } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditorAutocompleteProps } from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { store as blockEditorStore } from '../../store';\nimport { useUndoAutomaticChange } from './use-undo-automatic-change';\nimport { useMarkPersistent } from './use-mark-persistent';\nimport { usePasteHandler } from './use-paste-handler';\nimport { useBeforeInputRules } from './use-before-input-rules';\nimport { useInputRules } from './use-input-rules';\nimport { useEnter } from './use-enter';\nimport { useFormatTypes } from './use-format-types';\nimport { useRemoveBrowserShortcuts } from './use-remove-browser-shortcuts';\nimport { useShortcuts } from './use-shortcuts';\nimport { useInputEvents } from './use-input-events';\nimport { useFirefoxCompat } from './use-firefox-compat';\nimport FormatEdit from './format-edit';\nimport { getMultilineTag, getAllowedFormats } from './utils';\n\nexport const keyboardShortcutContext = createContext();\nexport const inputEventContext = createContext();\n\n/**\n * Removes props used for the native version of RichText so that they are not\n * passed to the DOM element and log warnings.\n *\n * @param {Object} props Props to filter.\n *\n * @return {Object} Filtered props.\n */\nfunction removeNativeProps( props ) {\n\treturn omit( props, [\n\t\t'__unstableMobileNoFocusOnMount',\n\t\t'deleteEnter',\n\t\t'placeholderTextColor',\n\t\t'textAlign',\n\t\t'selectionColor',\n\t\t'tagsToEliminate',\n\t\t'rootTagsToEliminate',\n\t\t'disableEditingMenu',\n\t\t'fontSize',\n\t\t'fontFamily',\n\t\t'fontWeight',\n\t\t'fontStyle',\n\t\t'minWidth',\n\t\t'maxWidth',\n\t\t'setRef',\n\t\t'disableSuggestions',\n\t\t'disableAutocorrection',\n\t] );\n}\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName = 'div',\n\t\tvalue: originalValue = '',\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tif ( multiline ) {\n\t\tdeprecated( 'wp.blockEditor.RichText multiline prop', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: 'nested blocks (InnerBlocks)',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/nested-blocks-inner-blocks/',\n\t\t} );\n\t}\n\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\tprops = removeNativeProps( props );\n\n\tconst anchorRef = useRef();\n\tconst { clientId } = useBlockEditContext();\n\tconst selector = ( select ) => {\n\t\tconst { getSelectionStart, getSelectionEnd } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionEnd.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\treturn {\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst { selectionStart, selectionEnd, isSelected } = useSelect( selector );\n\tconst { selectionChange } = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tconst selection = {};\n\t\t\tconst unset = start === undefined && end === undefined;\n\n\t\t\tif ( typeof start === 'number' || unset ) {\n\t\t\t\tselection.start = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: start,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( typeof end === 'number' || unset ) {\n\t\t\t\tselection.end = {\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeKey: identifier,\n\t\t\t\t\toffset: end,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tselectionChange( selection );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst {\n\t\tformatTypes,\n\t\tprepareHandlers,\n\t\tvalueHandlers,\n\t\tchangeHandlers,\n\t\tdependencies,\n\t} = useFormatTypes( {\n\t\tclientId,\n\t\tidentifier,\n\t\twithoutInteractiveFormatting,\n\t\tallowedFormats: adjustedAllowedFormats,\n\t} );\n\n\tfunction addEditorOnlyFormats( value ) {\n\t\treturn valueHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tfunction removeEditorOnlyFormats( value ) {\n\t\tformatTypes.forEach( ( formatType ) => {\n\t\t\t// Remove formats created by prepareEditableTree, because they are editor only.\n\t\t\tif ( formatType.__experimentalCreatePrepareEditableTree ) {\n\t\t\t\tvalue = removeFormat(\n\t\t\t\t\tvalue,\n\t\t\t\t\tformatType.name,\n\t\t\t\t\t0,\n\t\t\t\t\tvalue.text.length\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t\treturn value.formats;\n\t}\n\n\tfunction addInvisibleFormats( value ) {\n\t\treturn prepareHandlers.reduce(\n\t\t\t( accumulator, fn ) => fn( accumulator, value.text ),\n\t\t\tvalue.formats\n\t\t);\n\t}\n\n\tconst {\n\t\tvalue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: adjustedValue,\n\t\tonChange( html, { __unstableFormats, __unstableText } ) {\n\t\t\tadjustedOnChange( html );\n\t\t\tObject.values( changeHandlers ).forEach( ( changeHandler ) => {\n\t\t\t\tchangeHandler( __unstableFormats, __unstableText );\n\t\t\t} );\n\t\t},\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tonSelectionChange,\n\t\tplaceholder,\n\t\t__unstableIsSelected: isSelected,\n\t\t__unstableMultilineTag: multilineTag,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tpreserveWhiteSpace,\n\t\t__unstableDependencies: [ ...dependencies, tagName ],\n\t\t__unstableAfterParse: addEditorOnlyFormats,\n\t\t__unstableBeforeSerialize: removeEditorOnlyFormats,\n\t\t__unstableAddInvisibleFormats: addInvisibleFormats,\n\t} );\n\tconst autocompleteProps = useBlockEditorAutocompleteProps( {\n\t\tonReplace,\n\t\tcompleters: autocompleters,\n\t\trecord: value,\n\t\tonChange,\n\t} );\n\n\tuseMarkPersistent( { html: adjustedValue, value } );\n\n\tconst keyboardShortcuts = useRef( new Set() );\n\tconst inputEvents = useRef( new Set() );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === DELETE || keyCode === BACKSPACE ) {\n\t\t\tconst { start, end, text } = value;\n\t\t\tconst isReverse = keyCode === BACKSPACE;\n\t\t\tconst hasActiveFormats =\n\t\t\t\tvalue.activeFormats && !! value.activeFormats.length;\n\n\t\t\t// Only process delete if the key press occurs at an uncollapsed edge.\n\t\t\tif (\n\t\t\t\t! isCollapsed( value ) ||\n\t\t\t\thasActiveFormats ||\n\t\t\t\t( isReverse && start !== 0 ) ||\n\t\t\t\t( ! isReverse && end !== text.length )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\tif ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onFocus() {\n\t\tanchorRef.current.focus();\n\t}\n\n\tconst TagName = tagName;\n\tconst content = (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<keyboardShortcutContext.Provider value={ keyboardShortcuts }>\n\t\t\t\t\t<inputEventContext.Provider value={ inputEvents }>\n\t\t\t\t\t\t<Popover.__unstableSlotNameProvider value=\"__unstable-block-tools-after\">\n\t\t\t\t\t\t\t{ children &&\n\t\t\t\t\t\t\t\tchildren( { value, onChange, onFocus } ) }\n\t\t\t\t\t\t\t<FormatEdit\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tformatTypes={ formatTypes }\n\t\t\t\t\t\t\t\tforwardedRef={ anchorRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.__unstableSlotNameProvider>\n\t\t\t\t\t</inputEventContext.Provider>\n\t\t\t\t</keyboardShortcutContext.Provider>\n\t\t\t) }\n\t\t\t{ isSelected && hasFormats && (\n\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\tanchorRef={ anchorRef }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<TagName\n\t\t\t\t// Overridable props.\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline={ ! disableLineBreaks }\n\t\t\t\taria-label={ placeholder }\n\t\t\t\t{ ...props }\n\t\t\t\t{ ...autocompleteProps }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tforwardedRef,\n\t\t\t\t\tautocompleteProps.ref,\n\t\t\t\t\tprops.ref,\n\t\t\t\t\trichTextRef,\n\t\t\t\t\tuseBeforeInputRules( { value, onChange } ),\n\t\t\t\t\tuseInputRules( {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\t__unstableAllowPrefixTransformations,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tselectionChange,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseRemoveBrowserShortcuts(),\n\t\t\t\t\tuseShortcuts( keyboardShortcuts ),\n\t\t\t\t\tuseInputEvents( inputEvents ),\n\t\t\t\t\tuseUndoAutomaticChange(),\n\t\t\t\t\tusePasteHandler( {\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tdisableFormats,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tformatTypes,\n\t\t\t\t\t\ttagName,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\t__unstableEmbedURLOnPaste,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t\t\tpastePlainText,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseEnter( {\n\t\t\t\t\t\tremoveEditorOnlyFormats,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tonReplace,\n\t\t\t\t\t\tonSplit,\n\t\t\t\t\t\tonSplitMiddle,\n\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\tonChange,\n\t\t\t\t\t\tdisableLineBreaks,\n\t\t\t\t\t\tonSplitAtEnd,\n\t\t\t\t\t} ),\n\t\t\t\t\tuseFirefoxCompat(),\n\t\t\t\t\tanchorRef,\n\t\t\t\t] ) }\n\t\t\t\tcontentEditable={ true }\n\t\t\t\tsuppressContentEditableWarning={ true }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-rich-text__editable',\n\t\t\t\t\tprops.className,\n\t\t\t\t\t'rich-text'\n\t\t\t\t) }\n\t\t\t\tonFocus={ unstableOnFocus }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t/>\n\t\t</>\n\t);\n\n\tif ( ! wrapperClassName ) {\n\t\treturn content;\n\t}\n\n\tdeprecated( 'wp.blockEditor.RichText wrapperClassName prop', {\n\t\tsince: '5.4',\n\t\talternative: 'className prop or create your own wrapper div',\n\t\tversion: '6.2',\n\t} );\n\n\tconst className = classnames( 'block-editor-rich-text', wrapperClassName );\n\treturn <div className={ className }>{ content }</div>;\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = ( {\n\tvalue,\n\ttagName: Tag,\n\tmultiline,\n\t...props\n} ) => {\n\t// Handle deprecated `children` and `node` sources.\n\tif ( Array.isArray( value ) ) {\n\t\tvalue = childrenSource.toHTML( value );\n\t}\n\n\tconst MultilineTag = getMultilineTag( multiline );\n\n\tif ( ! value && MultilineTag ) {\n\t\tvalue = `<${ MultilineTag }></${ MultilineTag }>`;\n\t}\n\n\tconst content = <RawHTML>{ value }</RawHTML>;\n\n\tif ( Tag ) {\n\t\treturn <Tag { ...omit( props, [ 'format' ] ) }>{ content }</Tag>;\n\t}\n\n\treturn content;\n};\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"]}
|
|
@@ -48,6 +48,8 @@ function SpacingInputControl(_ref) {
|
|
|
48
48
|
type,
|
|
49
49
|
minimumCustomValue
|
|
50
50
|
} = _ref;
|
|
51
|
+
// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.
|
|
52
|
+
value = (0, _utils.getPresetValueFromCustomValue)(value, spacingSizes);
|
|
51
53
|
let selectListSizes = spacingSizes;
|
|
52
54
|
const showRangeControl = spacingSizes.length <= 8;
|
|
53
55
|
const disableCustomSpacingSizes = (0, _data.useSelect)(select => {
|
|
@@ -162,7 +164,10 @@ function SpacingInputControl(_ref) {
|
|
|
162
164
|
disableUnits: isMixed,
|
|
163
165
|
label: ariaLabel,
|
|
164
166
|
hideLabelFromVision: true,
|
|
165
|
-
className: "components-spacing-sizes-control__custom-value-input"
|
|
167
|
+
className: "components-spacing-sizes-control__custom-value-input",
|
|
168
|
+
style: {
|
|
169
|
+
gridColumn: '1'
|
|
170
|
+
}
|
|
166
171
|
}), (0, _element.createElement)(_components.RangeControl, {
|
|
167
172
|
value: customRangeValue,
|
|
168
173
|
min: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/spacing-input-control.js"],"names":["SpacingInputControl","spacingSizes","value","side","onChange","isMixed","type","minimumCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","blockEditorStore","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","units","availableUnits","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseInt","getNewCustomValue","newSize","isNumeric","isNaN","parseFloat","nextValue","getNewPresetValue","controlType","handleCustomValueSliderChange","next","join","allPlaceholder","currentValueHint","options","map","index","key","marks","label","ariaLabel","LABELS","toLowerCase","showHint","settings","event","nativeEvent","offsetX","find","option","selection","selectedItem"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AACA;;AAUA;;AACA;;AAKA;;AACA;;AACA;;AA5BA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;AAUe,SAASA,mBAAT,OAQX;AAAA;;AAAA,MARyC;AAC5CC,IAAAA,YAD4C;AAE5CC,IAAAA,KAF4C;AAG5CC,IAAAA,IAH4C;AAI5CC,IAAAA,QAJ4C;AAK5CC,IAAAA,OAAO,GAAG,KALkC;AAM5CC,IAAAA,IAN4C;AAO5CC,IAAAA;AAP4C,GAQzC;AACH,MAAIC,eAAe,GAAGP,YAAtB;AACA,QAAMQ,gBAAgB,GAAGR,YAAY,CAACS,MAAb,IAAuB,CAAhD;AAEA,QAAMC,yBAAyB,GAAG,qBAAaC,MAAF,IAAc;AAC1D,UAAMC,cAAc,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAA2BC,WAA3B,EAAvB;AACA,WAAOF,cAAP,aAAOA,cAAP,uBAAOA,cAAc,CAAEF,yBAAvB;AACA,GAHiC,CAAlC;AAKA,QAAM,CAAEK,sBAAF,EAA0BC,yBAA1B,IAAwD,uBAC7D,CAAEN,yBAAF,IACCT,KAAK,KAAKgB,SADX,IAEC,CAAE,iCAAsBhB,KAAtB,CAH0D,CAA9D;AAMA,QAAMiB,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,yBAAY,eAAZ,KAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADpB,GAAhB,CAAd;AAIA,MAAIC,YAAY,GAAG,IAAnB;AAEA,QAAMC,2BAA2B,GAChC,CAAEb,gBAAF,IACA,CAAEO,sBADF,IAEAd,KAAK,KAAKgB,SAFV,KAGE,CAAE,iCAAsBhB,KAAtB,CAAF,IACC,iCAAsBA,KAAtB,KAAiCG,OAJpC,CADD;;AAOA,MAAKiB,2BAAL,EAAmC;AAClCd,IAAAA,eAAe,GAAG,CACjB,GAAGP,YADc,EAEjB;AACCsB,MAAAA,IAAI,EAAE,CAAElB,OAAF,GACH;AACA,yBAAS,cAAI,aAAJ,CAAT,EAA8BH,KAA9B,CAFG,GAGH,cAAI,OAAJ,CAJJ;AAKCsB,MAAAA,IAAI,EAAE,QALP;AAMCC,MAAAA,IAAI,EAAEvB;AANP,KAFiB,CAAlB;AAWAmB,IAAAA,YAAY,GAAGb,eAAe,CAACE,MAAhB,GAAyB,CAAxC;AACA,GAbD,MAaO,IAAK,CAAEL,OAAP,EAAiB;AACvBgB,IAAAA,YAAY,GAAG,CAAEL,sBAAF,GACZ,qCAA0Bd,KAA1B,EAAiCD,YAAjC,CADY,GAEZ,qCAA0BC,KAA1B,EAAiCD,YAAjC,CAFH;AAGA;;AAED,QAAMyB,YAAY,GACjB,sBACC,MAAM,gEAAkCL,YAAlC,CADP,EAEC,CAAEA,YAAF,CAFD,EAGG,CAHH,KAGUF,KAAK,CAAE,CAAF,CAAL,CAAWjB,KAJtB;;AAMA,QAAMyB,eAAe,GAAG,MAAM;AAC7B,QAAKzB,KAAK,KAAKgB,SAAf,EAA2B;AAC1Bd,MAAAA,QAAQ,CAAE,GAAF,CAAR;AACA;AACD,GAJD;;AAMA,QAAMwB,oBAAoB,GAAKC,QAAF;AAAA;;AAAA,WAC5B3B,KAAK,KAAKgB,SAAV,GAAsBA,SAAtB,4BAAkCjB,YAAY,CAAE4B,QAAF,CAA9C,0DAAkC,sBAA0BN,IADhC;AAAA,GAA7B;;AAGA,QAAMO,gBAAgB,GAAGC,QAAQ,CAAEV,YAAF,EAAgB,EAAhB,CAAjC;;AAEA,QAAMW,iBAAiB,GAAKC,OAAF,IAAe;AACxC,UAAMC,SAAS,GAAG,CAAEC,KAAK,CAAEC,UAAU,CAAEH,OAAF,CAAZ,CAAzB;AACA,UAAMI,SAAS,GAAGH,SAAS,GAAGD,OAAH,GAAaf,SAAxC;AACA,WAAOmB,SAAP;AACA,GAJD;;AAMA,QAAMC,iBAAiB,GAAG,CAAEL,OAAF,EAAWM,WAAX,KAA4B;AAAA;;AACrD,UAAMd,IAAI,GAAGM,QAAQ,CAAEE,OAAF,EAAW,EAAX,CAArB;;AAEA,QAAKM,WAAW,KAAK,YAArB,EAAoC;AACnC,UAAKd,IAAI,KAAK,CAAd,EAAkB;AACjB,eAAOP,SAAP;AACA;;AACD,UAAKO,IAAI,KAAK,CAAd,EAAkB;AACjB,eAAO,GAAP;AACA;AACD,KAPD,MAOO,IAAKA,IAAI,KAAK,CAAd,EAAkB;AACxB,aAAO,GAAP;AACA;;AACD,WAAQ,sBAAD,yBAAuBxB,YAAY,CAAEgC,OAAF,CAAnC,0DAAuB,sBAAyBT,IAAM,EAA7D;AACA,GAdD;;AAgBA,QAAMgB,6BAA6B,GAAKC,IAAF,IAAY;AACjDrC,IAAAA,QAAQ,CAAE,CAAEqC,IAAF,EAAQf,YAAR,EAAuBgB,IAAvB,CAA6B,EAA7B,CAAF,CAAR;AACA,GAFD;;AAIA,QAAMC,cAAc,GAAGtC,OAAO,GAAG,cAAI,OAAJ,CAAH,GAAmB,IAAjD;AAEA,QAAMuC,gBAAgB,GAAG,CAAEvC,OAAF,GACtBuB,oBAAoB,CAAEP,YAAF,CADE,GAEtB,cAAI,OAAJ,CAFH;AAIA,QAAMwB,OAAO,GAAGrC,eAAe,CAACsC,GAAhB,CAAqB,CAAErB,IAAF,EAAQsB,KAAR,MAAqB;AACzDC,IAAAA,GAAG,EAAED,KADoD;AAEzDxB,IAAAA,IAAI,EAAEE,IAAI,CAACF;AAF8C,GAArB,CAArB,CAAhB;AAKA,QAAM0B,KAAK,GAAGhD,YAAY,CAAC6C,GAAb,CAAkB,CAAEjB,QAAF,EAAYkB,KAAZ,MAAyB;AACxD7C,IAAAA,KAAK,EAAE6C,KADiD;AAExDG,IAAAA,KAAK,EAAEhC;AAFiD,GAAzB,CAAlB,CAAd;AAKA,QAAMiC,SAAS,GAAG,oBACjB;AACA,gBAAI,WAAJ,CAFiB,EAGjBC,cAAQjD,IAAR,CAHiB,EAIjBG,IAJiB,aAIjBA,IAJiB,uBAIjBA,IAAI,CAAE+C,WAAN,EAJiB,CAAlB;AAOA,QAAMC,QAAQ,GACb7C,gBAAgB,IAChB,CAAEO,sBADF,IAEA4B,gBAAgB,KAAK1B,SAHtB;AAKA,SACC,qDACGf,IAAI,KAAK,KAAT,IACD,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,4BAAC,8BAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGiD,cAAQjD,IAAR,CADH,CADD,EAKGmD,QAAQ,IACT,4BAAC,8BAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGV,gBADH,CANF,CAFF,EAcGzC,IAAI,KAAK,KAAT,IAAkBmD,QAAlB,IACD,4BAAC,8BAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGV,gBADH,CAfF,EAoBG,CAAEjC,yBAAF,IACD,4BAAC,kBAAD;AACC,IAAA,KAAK,EACJK,sBAAsB,GACnB,cAAI,iBAAJ,CADmB,GAEnB,cAAI,iBAAJ,CAJL;AAMC,IAAA,IAAI,EAAGuC,eANR;AAOC,IAAA,OAAO,EAAG,MAAM;AACftC,MAAAA,yBAAyB,CAAE,CAAED,sBAAJ,CAAzB;AACA,KATF;AAUC,IAAA,SAAS,EAAGA,sBAVb;AAWC,IAAA,OAAO,MAXR;AAYC,IAAA,SAAS,EAAG,yBAAY;AACvB,6DACCb,IAAI,KAAK,KAFa;AAGvB,gEACCA,IAAI,KAAK;AAJa,KAAZ,CAZb;AAkBC,IAAA,QAAQ,EAAG;AAlBZ,IArBF,EA0CGa,sBAAsB,IACvB,qDACC,4BAAC,qCAAD;AACC,IAAA,QAAQ,EAAKiB,OAAF,IACV7B,QAAQ,CAAE4B,iBAAiB,CAAEC,OAAF,CAAnB,CAFV;AAIC,IAAA,KAAK,EAAGZ,YAJT;AAKC,IAAA,KAAK,EAAGF,KALT;AAMC,IAAA,GAAG,EAAGZ,kBANP;AAOC,IAAA,WAAW,EAAGoC,cAPf;AAQC,IAAA,YAAY,EAAGtC,OARhB;AASC,IAAA,KAAK,EAAG8C,SATT;AAUC,IAAA,mBAAmB,EAAG,IAVvB;AAWC,IAAA,SAAS,EAAC;AAXX,IADD,EAeC,4BAAC,wBAAD;AACC,IAAA,KAAK,EAAGrB,gBADT;AAEC,IAAA,GAAG,EAAG,CAFP;AAGC,IAAA,GAAG,EAAG,GAHP;AAIC,IAAA,cAAc,EAAG,KAJlB;AAKC,IAAA,QAAQ,EAAGU,6BALZ;AAMC,IAAA,SAAS,EAAC;AANX,IAfD,CA3CF,EAoEG/B,gBAAgB,IAAI,CAAEO,sBAAtB,IACD,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,KAAK,EAAGK,YAFT;AAGC,IAAA,QAAQ,EAAKY,OAAF,IACV7B,QAAQ,CAAEkC,iBAAiB,CAAEL,OAAF,CAAnB,CAJV;AAMC,IAAA,WAAW,EAAKuB,KAAF,IAAa;AAAA;;AAC1B;AACA;AACA,UAAK,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,kCAAAA,KAAK,CAAEC,WAAP,0EAAoBC,OAApB,IAA8B,EAAnC,EAAwC;AACvC/B,QAAAA,eAAe;AACf;AACD,KAZF;AAaC,IAAA,cAAc,EAAG,KAblB;AAcC,qBAAgBN,YAdjB;AAeC,+CAAiBpB,YAAY,CAAEoB,YAAF,CAA7B,0DAAiB,sBAA8BE,IAfhD;AAgBC,IAAA,oBAAoB,EAAGK,oBAhBxB;AAiBC,IAAA,GAAG,EAAG,CAjBP;AAkBC,IAAA,GAAG,EAAG3B,YAAY,CAACS,MAAb,GAAsB,CAlB7B;AAmBC,IAAA,KAAK,EAAGuC,KAnBT;AAoBC,IAAA,KAAK,EAAGE,SApBT;AAqBC,IAAA,mBAAmB,EAAG;AArBvB,IArEF,EA6FG,CAAE1C,gBAAF,IAAsB,CAAEO,sBAAxB,IACD,4BAAC,+BAAD;AACC,IAAA,SAAS,EAAC,yDADX;AAEC,IAAA,KAAK,EACJ6B,OAAO,CAACc,IAAR,CACGC,MAAF,IAAcA,MAAM,CAACZ,GAAP,KAAe3B,YAD9B,KAEK,EAHD,CAGI;AALV;AAOC,IAAA,QAAQ,EAAKwC,SAAF,IAAiB;AAC3BzD,MAAAA,QAAQ,CACPkC,iBAAiB,CAChBuB,SAAS,CAACC,YAAV,CAAuBd,GADP,EAEhB,YAFgB,CADV,CAAR;AAMA,KAdF;AAeC,IAAA,OAAO,EAAGH,OAfX;AAgBC,IAAA,KAAK,EAAGM,SAhBT;AAiBC,IAAA,mBAAmB,EAAG,IAjBvB;AAkBC,IAAA,wBAAwB,EAAG;AAlB5B,IA9FF,CADD;AAsHA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tRangeControl,\n\tCustomSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tisValueSpacingPreset,\n} from './utils';\n\nexport default function SpacingInputControl( {\n\tspacingSizes,\n\tvalue,\n\tside,\n\tonChange,\n\tisMixed = false,\n\ttype,\n\tminimumCustomValue,\n} ) {\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseInt( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst currentValueHint = ! isMixed\n\t\t? customTooltipContent( currentValue )\n\t\t: __( 'Mixed' );\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tLABELS[ side ],\n\t\ttype?.toLowerCase()\n\t);\n\n\tconst showHint =\n\t\tshowRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tcurrentValueHint !== undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ side !== 'all' && (\n\t\t\t\t<HStack className=\"components-spacing-sizes-control__side-labels\">\n\t\t\t\t\t<Text className=\"components-spacing-sizes-control__side-label\">\n\t\t\t\t\t\t{ LABELS[ side ] }\n\t\t\t\t\t</Text>\n\n\t\t\t\t\t{ showHint && (\n\t\t\t\t\t\t<Text className=\"components-spacing-sizes-control__hint-single\">\n\t\t\t\t\t\t\t{ currentValueHint }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ side === 'all' && showHint && (\n\t\t\t\t<Text className=\"components-spacing-sizes-control__hint-all\">\n\t\t\t\t\t{ currentValueHint }\n\t\t\t\t</Text>\n\t\t\t) }\n\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-all':\n\t\t\t\t\t\t\tside === 'all',\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-single':\n\t\t\t\t\t\t\tside !== 'all',\n\t\t\t\t\t} ) }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/spacing-input-control.js"],"names":["SpacingInputControl","spacingSizes","value","side","onChange","isMixed","type","minimumCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","select","editorSettings","blockEditorStore","getSettings","showCustomValueControl","setShowCustomValueControl","undefined","units","availableUnits","currentValue","showCustomValueInSelectList","name","slug","size","selectedUnit","setInitialValue","customTooltipContent","newValue","customRangeValue","parseInt","getNewCustomValue","newSize","isNumeric","isNaN","parseFloat","nextValue","getNewPresetValue","controlType","handleCustomValueSliderChange","next","join","allPlaceholder","currentValueHint","options","map","index","key","marks","label","ariaLabel","LABELS","toLowerCase","showHint","settings","gridColumn","event","nativeEvent","offsetX","find","option","selection","selectedItem"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AACA;;AAUA;;AACA;;AAKA;;AACA;;AACA;;AA5BA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;AAWe,SAASA,mBAAT,OAQX;AAAA;;AAAA,MARyC;AAC5CC,IAAAA,YAD4C;AAE5CC,IAAAA,KAF4C;AAG5CC,IAAAA,IAH4C;AAI5CC,IAAAA,QAJ4C;AAK5CC,IAAAA,OAAO,GAAG,KALkC;AAM5CC,IAAAA,IAN4C;AAO5CC,IAAAA;AAP4C,GAQzC;AACH;AACAL,EAAAA,KAAK,GAAG,0CAA+BA,KAA/B,EAAsCD,YAAtC,CAAR;AAEA,MAAIO,eAAe,GAAGP,YAAtB;AACA,QAAMQ,gBAAgB,GAAGR,YAAY,CAACS,MAAb,IAAuB,CAAhD;AAEA,QAAMC,yBAAyB,GAAG,qBAAaC,MAAF,IAAc;AAC1D,UAAMC,cAAc,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAA2BC,WAA3B,EAAvB;AACA,WAAOF,cAAP,aAAOA,cAAP,uBAAOA,cAAc,CAAEF,yBAAvB;AACA,GAHiC,CAAlC;AAKA,QAAM,CAAEK,sBAAF,EAA0BC,yBAA1B,IAAwD,uBAC7D,CAAEN,yBAAF,IACCT,KAAK,KAAKgB,SADX,IAEC,CAAE,iCAAsBhB,KAAtB,CAH0D,CAA9D;AAMA,QAAMiB,KAAK,GAAG,8CAAgB;AAC7BC,IAAAA,cAAc,EAAE,yBAAY,eAAZ,KAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADpB,GAAhB,CAAd;AAIA,MAAIC,YAAY,GAAG,IAAnB;AAEA,QAAMC,2BAA2B,GAChC,CAAEb,gBAAF,IACA,CAAEO,sBADF,IAEAd,KAAK,KAAKgB,SAFV,KAGE,CAAE,iCAAsBhB,KAAtB,CAAF,IACC,iCAAsBA,KAAtB,KAAiCG,OAJpC,CADD;;AAOA,MAAKiB,2BAAL,EAAmC;AAClCd,IAAAA,eAAe,GAAG,CACjB,GAAGP,YADc,EAEjB;AACCsB,MAAAA,IAAI,EAAE,CAAElB,OAAF,GACH;AACA,yBAAS,cAAI,aAAJ,CAAT,EAA8BH,KAA9B,CAFG,GAGH,cAAI,OAAJ,CAJJ;AAKCsB,MAAAA,IAAI,EAAE,QALP;AAMCC,MAAAA,IAAI,EAAEvB;AANP,KAFiB,CAAlB;AAWAmB,IAAAA,YAAY,GAAGb,eAAe,CAACE,MAAhB,GAAyB,CAAxC;AACA,GAbD,MAaO,IAAK,CAAEL,OAAP,EAAiB;AACvBgB,IAAAA,YAAY,GAAG,CAAEL,sBAAF,GACZ,qCAA0Bd,KAA1B,EAAiCD,YAAjC,CADY,GAEZ,qCAA0BC,KAA1B,EAAiCD,YAAjC,CAFH;AAGA;;AAED,QAAMyB,YAAY,GACjB,sBACC,MAAM,gEAAkCL,YAAlC,CADP,EAEC,CAAEA,YAAF,CAFD,EAGG,CAHH,KAGUF,KAAK,CAAE,CAAF,CAAL,CAAWjB,KAJtB;;AAMA,QAAMyB,eAAe,GAAG,MAAM;AAC7B,QAAKzB,KAAK,KAAKgB,SAAf,EAA2B;AAC1Bd,MAAAA,QAAQ,CAAE,GAAF,CAAR;AACA;AACD,GAJD;;AAMA,QAAMwB,oBAAoB,GAAKC,QAAF;AAAA;;AAAA,WAC5B3B,KAAK,KAAKgB,SAAV,GAAsBA,SAAtB,4BAAkCjB,YAAY,CAAE4B,QAAF,CAA9C,0DAAkC,sBAA0BN,IADhC;AAAA,GAA7B;;AAGA,QAAMO,gBAAgB,GAAGC,QAAQ,CAAEV,YAAF,EAAgB,EAAhB,CAAjC;;AAEA,QAAMW,iBAAiB,GAAKC,OAAF,IAAe;AACxC,UAAMC,SAAS,GAAG,CAAEC,KAAK,CAAEC,UAAU,CAAEH,OAAF,CAAZ,CAAzB;AACA,UAAMI,SAAS,GAAGH,SAAS,GAAGD,OAAH,GAAaf,SAAxC;AACA,WAAOmB,SAAP;AACA,GAJD;;AAMA,QAAMC,iBAAiB,GAAG,CAAEL,OAAF,EAAWM,WAAX,KAA4B;AAAA;;AACrD,UAAMd,IAAI,GAAGM,QAAQ,CAAEE,OAAF,EAAW,EAAX,CAArB;;AAEA,QAAKM,WAAW,KAAK,YAArB,EAAoC;AACnC,UAAKd,IAAI,KAAK,CAAd,EAAkB;AACjB,eAAOP,SAAP;AACA;;AACD,UAAKO,IAAI,KAAK,CAAd,EAAkB;AACjB,eAAO,GAAP;AACA;AACD,KAPD,MAOO,IAAKA,IAAI,KAAK,CAAd,EAAkB;AACxB,aAAO,GAAP;AACA;;AACD,WAAQ,sBAAD,yBAAuBxB,YAAY,CAAEgC,OAAF,CAAnC,0DAAuB,sBAAyBT,IAAM,EAA7D;AACA,GAdD;;AAgBA,QAAMgB,6BAA6B,GAAKC,IAAF,IAAY;AACjDrC,IAAAA,QAAQ,CAAE,CAAEqC,IAAF,EAAQf,YAAR,EAAuBgB,IAAvB,CAA6B,EAA7B,CAAF,CAAR;AACA,GAFD;;AAIA,QAAMC,cAAc,GAAGtC,OAAO,GAAG,cAAI,OAAJ,CAAH,GAAmB,IAAjD;AAEA,QAAMuC,gBAAgB,GAAG,CAAEvC,OAAF,GACtBuB,oBAAoB,CAAEP,YAAF,CADE,GAEtB,cAAI,OAAJ,CAFH;AAIA,QAAMwB,OAAO,GAAGrC,eAAe,CAACsC,GAAhB,CAAqB,CAAErB,IAAF,EAAQsB,KAAR,MAAqB;AACzDC,IAAAA,GAAG,EAAED,KADoD;AAEzDxB,IAAAA,IAAI,EAAEE,IAAI,CAACF;AAF8C,GAArB,CAArB,CAAhB;AAKA,QAAM0B,KAAK,GAAGhD,YAAY,CAAC6C,GAAb,CAAkB,CAAEjB,QAAF,EAAYkB,KAAZ,MAAyB;AACxD7C,IAAAA,KAAK,EAAE6C,KADiD;AAExDG,IAAAA,KAAK,EAAEhC;AAFiD,GAAzB,CAAlB,CAAd;AAKA,QAAMiC,SAAS,GAAG,oBACjB;AACA,gBAAI,WAAJ,CAFiB,EAGjBC,cAAQjD,IAAR,CAHiB,EAIjBG,IAJiB,aAIjBA,IAJiB,uBAIjBA,IAAI,CAAE+C,WAAN,EAJiB,CAAlB;AAOA,QAAMC,QAAQ,GACb7C,gBAAgB,IAChB,CAAEO,sBADF,IAEA4B,gBAAgB,KAAK1B,SAHtB;AAKA,SACC,qDACGf,IAAI,KAAK,KAAT,IACD,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,4BAAC,8BAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGiD,cAAQjD,IAAR,CADH,CADD,EAKGmD,QAAQ,IACT,4BAAC,8BAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGV,gBADH,CANF,CAFF,EAcGzC,IAAI,KAAK,KAAT,IAAkBmD,QAAlB,IACD,4BAAC,8BAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGV,gBADH,CAfF,EAoBG,CAAEjC,yBAAF,IACD,4BAAC,kBAAD;AACC,IAAA,KAAK,EACJK,sBAAsB,GACnB,cAAI,iBAAJ,CADmB,GAEnB,cAAI,iBAAJ,CAJL;AAMC,IAAA,IAAI,EAAGuC,eANR;AAOC,IAAA,OAAO,EAAG,MAAM;AACftC,MAAAA,yBAAyB,CAAE,CAAED,sBAAJ,CAAzB;AACA,KATF;AAUC,IAAA,SAAS,EAAGA,sBAVb;AAWC,IAAA,OAAO,MAXR;AAYC,IAAA,SAAS,EAAG,yBAAY;AACvB,6DACCb,IAAI,KAAK,KAFa;AAGvB,gEACCA,IAAI,KAAK;AAJa,KAAZ,CAZb;AAkBC,IAAA,QAAQ,EAAG;AAlBZ,IArBF,EA0CGa,sBAAsB,IACvB,qDACC,4BAAC,qCAAD;AACC,IAAA,QAAQ,EAAKiB,OAAF,IACV7B,QAAQ,CAAE4B,iBAAiB,CAAEC,OAAF,CAAnB,CAFV;AAIC,IAAA,KAAK,EAAGZ,YAJT;AAKC,IAAA,KAAK,EAAGF,KALT;AAMC,IAAA,GAAG,EAAGZ,kBANP;AAOC,IAAA,WAAW,EAAGoC,cAPf;AAQC,IAAA,YAAY,EAAGtC,OARhB;AASC,IAAA,KAAK,EAAG8C,SATT;AAUC,IAAA,mBAAmB,EAAG,IAVvB;AAWC,IAAA,SAAS,EAAC,sDAXX;AAYC,IAAA,KAAK,EAAG;AAAEK,MAAAA,UAAU,EAAE;AAAd;AAZT,IADD,EAgBC,4BAAC,wBAAD;AACC,IAAA,KAAK,EAAG1B,gBADT;AAEC,IAAA,GAAG,EAAG,CAFP;AAGC,IAAA,GAAG,EAAG,GAHP;AAIC,IAAA,cAAc,EAAG,KAJlB;AAKC,IAAA,QAAQ,EAAGU,6BALZ;AAMC,IAAA,SAAS,EAAC;AANX,IAhBD,CA3CF,EAqEG/B,gBAAgB,IAAI,CAAEO,sBAAtB,IACD,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,KAAK,EAAGK,YAFT;AAGC,IAAA,QAAQ,EAAKY,OAAF,IACV7B,QAAQ,CAAEkC,iBAAiB,CAAEL,OAAF,CAAnB,CAJV;AAMC,IAAA,WAAW,EAAKwB,KAAF,IAAa;AAAA;;AAC1B;AACA;AACA,UAAK,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,kCAAAA,KAAK,CAAEC,WAAP,0EAAoBC,OAApB,IAA8B,EAAnC,EAAwC;AACvChC,QAAAA,eAAe;AACf;AACD,KAZF;AAaC,IAAA,cAAc,EAAG,KAblB;AAcC,qBAAgBN,YAdjB;AAeC,+CAAiBpB,YAAY,CAAEoB,YAAF,CAA7B,0DAAiB,sBAA8BE,IAfhD;AAgBC,IAAA,oBAAoB,EAAGK,oBAhBxB;AAiBC,IAAA,GAAG,EAAG,CAjBP;AAkBC,IAAA,GAAG,EAAG3B,YAAY,CAACS,MAAb,GAAsB,CAlB7B;AAmBC,IAAA,KAAK,EAAGuC,KAnBT;AAoBC,IAAA,KAAK,EAAGE,SApBT;AAqBC,IAAA,mBAAmB,EAAG;AArBvB,IAtEF,EA8FG,CAAE1C,gBAAF,IAAsB,CAAEO,sBAAxB,IACD,4BAAC,+BAAD;AACC,IAAA,SAAS,EAAC,yDADX;AAEC,IAAA,KAAK,EACJ6B,OAAO,CAACe,IAAR,CACGC,MAAF,IAAcA,MAAM,CAACb,GAAP,KAAe3B,YAD9B,KAEK,EAHD,CAGI;AALV;AAOC,IAAA,QAAQ,EAAKyC,SAAF,IAAiB;AAC3B1D,MAAAA,QAAQ,CACPkC,iBAAiB,CAChBwB,SAAS,CAACC,YAAV,CAAuBf,GADP,EAEhB,YAFgB,CADV,CAAR;AAMA,KAdF;AAeC,IAAA,OAAO,EAAGH,OAfX;AAgBC,IAAA,KAAK,EAAGM,SAhBT;AAiBC,IAAA,mBAAmB,EAAG,IAjBvB;AAkBC,IAAA,wBAAwB,EAAG;AAlB5B,IA/FF,CADD;AAuHA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tRangeControl,\n\tCustomSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from './utils';\n\nexport default function SpacingInputControl( {\n\tspacingSizes,\n\tvalue,\n\tside,\n\tonChange,\n\tisMixed = false,\n\ttype,\n\tminimumCustomValue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseInt( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst currentValueHint = ! isMixed\n\t\t? customTooltipContent( currentValue )\n\t\t: __( 'Mixed' );\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tLABELS[ side ],\n\t\ttype?.toLowerCase()\n\t);\n\n\tconst showHint =\n\t\tshowRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tcurrentValueHint !== undefined;\n\n\treturn (\n\t\t<>\n\t\t\t{ side !== 'all' && (\n\t\t\t\t<HStack className=\"components-spacing-sizes-control__side-labels\">\n\t\t\t\t\t<Text className=\"components-spacing-sizes-control__side-label\">\n\t\t\t\t\t\t{ LABELS[ side ] }\n\t\t\t\t\t</Text>\n\n\t\t\t\t\t{ showHint && (\n\t\t\t\t\t\t<Text className=\"components-spacing-sizes-control__hint-single\">\n\t\t\t\t\t\t\t{ currentValueHint }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ side === 'all' && showHint && (\n\t\t\t\t<Text className=\"components-spacing-sizes-control__hint-all\">\n\t\t\t\t\t{ currentValueHint }\n\t\t\t\t</Text>\n\t\t\t) }\n\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-all':\n\t\t\t\t\t\t\tside === 'all',\n\t\t\t\t\t\t'components-spacing-sizes-control__custom-toggle-single':\n\t\t\t\t\t\t\tside !== 'all',\n\t\t\t\t\t} ) }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1' } }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"components-spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.LABELS = exports.DEFAULT_VALUES = exports.ALL_SIDES = void 0;
|
|
7
7
|
exports.getAllRawValue = getAllRawValue;
|
|
8
8
|
exports.getCustomValueFromPreset = getCustomValueFromPreset;
|
|
9
|
+
exports.getPresetValueFromCustomValue = getPresetValueFromCustomValue;
|
|
9
10
|
exports.getSliderValueFromPreset = getSliderValueFromPreset;
|
|
10
11
|
exports.getSpacingPresetCssVar = getSpacingPresetCssVar;
|
|
11
12
|
exports.getSpacingPresetSlug = getSpacingPresetSlug;
|
|
@@ -58,6 +59,32 @@ function getCustomValueFromPreset(value, spacingSizes) {
|
|
|
58
59
|
const spacingSize = spacingSizes.find(size => String(size.slug) === slug);
|
|
59
60
|
return spacingSize === null || spacingSize === void 0 ? void 0 : spacingSize.size;
|
|
60
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Converts a custom value to preset value if one can be found.
|
|
64
|
+
*
|
|
65
|
+
* Returns value as-is if no match is found.
|
|
66
|
+
*
|
|
67
|
+
* @param {string} value Value to convert
|
|
68
|
+
* @param {Array} spacingSizes Array of the current spacing preset objects
|
|
69
|
+
*
|
|
70
|
+
* @return {string} The preset value if it can be found.
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
function getPresetValueFromCustomValue(value, spacingSizes) {
|
|
75
|
+
// Return value as-is if it is already a preset;
|
|
76
|
+
if (isValueSpacingPreset(value)) {
|
|
77
|
+
return value;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const spacingMatch = spacingSizes.find(size => String(size.size) === String(value));
|
|
81
|
+
|
|
82
|
+
if (spacingMatch !== null && spacingMatch !== void 0 && spacingMatch.slug) {
|
|
83
|
+
return `var:preset|spacing|${spacingMatch.slug}`;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return value;
|
|
87
|
+
}
|
|
61
88
|
/**
|
|
62
89
|
* Converts a spacing preset into a custom value.
|
|
63
90
|
*
|
|
@@ -194,7 +221,11 @@ function isValuesMixed() {
|
|
|
194
221
|
|
|
195
222
|
|
|
196
223
|
function isValuesDefined(values) {
|
|
197
|
-
|
|
224
|
+
if (values === undefined || values === null) {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return !(0, _lodash.isEmpty)(Object.values(values).filter( // Switching units when input is empty causes values only
|
|
198
229
|
// containing units. This gives false positive on mixed values
|
|
199
230
|
// unless filtered.
|
|
200
231
|
value => !!value && /\d/.test(value)));
|