UNPKG

@wordpress/block-editor

Version:
8 lines (7 loc) 4.41 kB
{ "version": 3, "sources": ["../../../src/components/preset-input-control/utils.js"], "sourcesContent": ["export const isValuePreset = ( value, slug ) => {\n\tif ( ! value?.includes ) {\n\t\treturn false;\n\t}\n\n\treturn value === '0' || value.includes( `var:preset|${ slug }|` );\n};\n\n/**\n * Returns the slug section of the given preset string.\n *\n * @param {string} value Value to extract slug from.\n * @param {string} presetType Preset type slug.\n *\n * @return {string|undefined} The value slug from given preset.\n */\nexport function getPresetSlug( value, presetType ) {\n\tif ( ! value ) {\n\t\treturn;\n\t}\n\n\tif ( value === '0' || value === 'default' ) {\n\t\treturn value;\n\t}\n\n\tconst slug = value.match(\n\t\tnew RegExp( `var:preset\\\\|${ presetType }\\\\|(.+)` )\n\t);\n\n\treturn slug ? slug[ 1 ] : undefined;\n}\n\n/**\n * Converts preset value into a Range component value .\n *\n * @param {string} presetValue Value to convert to Range value.\n * @param {Array} presets Array of current preset value objects.\n * @param {string} presetType Preset type slug.\n *\n * @return {number} The int value for use in Range control.\n */\nexport function getSliderValueFromPreset( presetValue, presets, presetType ) {\n\tif ( presetValue === undefined ) {\n\t\treturn 0;\n\t}\n\tconst slug =\n\t\tparseFloat( presetValue, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getPresetSlug( presetValue, presetType );\n\tconst sliderValue = presets.findIndex( ( size ) => {\n\t\treturn String( size.slug ) === slug;\n\t} );\n\n\t// Returning NaN rather than undefined as undefined makes range control thumb sit in center\n\treturn sliderValue !== -1 ? sliderValue : NaN;\n}\n\n/**\n * Converts a preset into a custom value.\n *\n * @param {string} value Value to convert\n * @param {Array} presets Array of the current radius preset objects\n * @param {string} presetType Preset type slug e.g. border-radius\n *\n * @return {string} Mapping of the preset to its equivalent custom value.\n */\nexport function getCustomValueFromPreset( value, presets, presetType ) {\n\tif ( ! isValuePreset( value, presetType ) ) {\n\t\treturn value;\n\t}\n\n\tconst slug =\n\t\tparseFloat( value, 10 ) === 0\n\t\t\t? '0'\n\t\t\t: getPresetSlug( value, presetType );\n\n\tconst preset = presets.find( ( size ) => String( size.slug ) === slug );\n\n\treturn preset?.size;\n}\n\n/**\n * Converts a custom value to preset value if one can be found.\n *\n * Returns value as-is if no match is found.\n *\n * @param {string} value Value to convert\n * @param {Array} spacingSizes Array of the current spacing preset objects\n * @param {string} presetType Preset type slug e.g. border-radius\n *\n * @return {string} The preset value if it can be found.\n */\nexport function getPresetValueFromCustomValue(\n\tvalue,\n\tspacingSizes,\n\tpresetType\n) {\n\t// Return value as-is if it is undefined or is already a preset, or '0';\n\tif ( ! value || isValuePreset( value, presetType ) || value === '0' ) {\n\t\treturn value;\n\t}\n\n\tconst spacingMatch = spacingSizes.find(\n\t\t( size ) => String( size.size ) === String( value )\n\t);\n\n\tif ( spacingMatch?.slug ) {\n\t\treturn `var:preset|${ presetType }|${ spacingMatch.slug }`;\n\t}\n\n\treturn value;\n}\n"], "mappings": ";AAAO,IAAM,gBAAgB,CAAE,OAAO,SAAU;AAC/C,MAAK,CAAE,OAAO,UAAW;AACxB,WAAO;AAAA,EACR;AAEA,SAAO,UAAU,OAAO,MAAM,SAAU,cAAe,IAAK,GAAI;AACjE;AAUO,SAAS,cAAe,OAAO,YAAa;AAClD,MAAK,CAAE,OAAQ;AACd;AAAA,EACD;AAEA,MAAK,UAAU,OAAO,UAAU,WAAY;AAC3C,WAAO;AAAA,EACR;AAEA,QAAM,OAAO,MAAM;AAAA,IAClB,IAAI,OAAQ,gBAAiB,UAAW,SAAU;AAAA,EACnD;AAEA,SAAO,OAAO,KAAM,CAAE,IAAI;AAC3B;AAWO,SAAS,yBAA0B,aAAa,SAAS,YAAa;AAC5E,MAAK,gBAAgB,QAAY;AAChC,WAAO;AAAA,EACR;AACA,QAAM,OACL,WAAY,aAAa,EAAG,MAAM,IAC/B,MACA,cAAe,aAAa,UAAW;AAC3C,QAAM,cAAc,QAAQ,UAAW,CAAE,SAAU;AAClD,WAAO,OAAQ,KAAK,IAAK,MAAM;AAAA,EAChC,CAAE;AAGF,SAAO,gBAAgB,KAAK,cAAc;AAC3C;AAWO,SAAS,yBAA0B,OAAO,SAAS,YAAa;AACtE,MAAK,CAAE,cAAe,OAAO,UAAW,GAAI;AAC3C,WAAO;AAAA,EACR;AAEA,QAAM,OACL,WAAY,OAAO,EAAG,MAAM,IACzB,MACA,cAAe,OAAO,UAAW;AAErC,QAAM,SAAS,QAAQ,KAAM,CAAE,SAAU,OAAQ,KAAK,IAAK,MAAM,IAAK;AAEtE,SAAO,QAAQ;AAChB;AAaO,SAAS,8BACf,OACA,cACA,YACC;AAED,MAAK,CAAE,SAAS,cAAe,OAAO,UAAW,KAAK,UAAU,KAAM;AACrE,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,aAAa;AAAA,IACjC,CAAE,SAAU,OAAQ,KAAK,IAAK,MAAM,OAAQ,KAAM;AAAA,EACnD;AAEA,MAAK,cAAc,MAAO;AACzB,WAAO,cAAe,UAAW,IAAK,aAAa,IAAK;AAAA,EACzD;AAEA,SAAO;AACR;", "names": [] }