@wordpress/components
Version:
UI components for WordPress.
8 lines (7 loc) • 3.66 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/font-size-picker/font-size-picker-toggle-group.tsx"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { ToggleGroupControl, ToggleGroupControlOption } from '../toggle-group-control';\nimport { T_SHIRT_ABBREVIATIONS, T_SHIRT_NAMES } from './constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FontSizePickerToggleGroup = props => {\n const {\n fontSizes,\n value,\n valueMode = 'literal',\n __next40pxDefaultSize,\n size,\n onChange\n } = props;\n\n // Find the current value based on valueMode\n const currentValue = (() => {\n if (!value) {\n return undefined;\n }\n\n // If valueMode is 'slug', the value is already the slug\n if (valueMode === 'slug') {\n return String(value);\n }\n\n // If valueMode is 'literal', find the font size by size value\n // If multiple font sizes have the same size value, we can't distinguish them\n // without additional information, so we return undefined to avoid incorrect selection\n const matchingFontSizes = fontSizes.filter(fontSize => fontSize.size === value);\n\n // If there are multiple matches, return undefined to avoid selecting the wrong font size\n if (matchingFontSizes.length > 1) {\n return undefined;\n }\n\n // Find the font size by size value\n const fontSizeBySize = fontSizes.find(fontSize => fontSize.size === value);\n return fontSizeBySize?.slug;\n })();\n return /*#__PURE__*/_jsx(ToggleGroupControl, {\n __next40pxDefaultSize: __next40pxDefaultSize,\n __shouldNotWarnDeprecated36pxSize: true,\n label: __('Font size'),\n hideLabelFromVision: true,\n value: currentValue,\n onChange: newSlug => {\n if (newSlug === undefined) {\n onChange(undefined);\n } else {\n // Find the font size by slug\n const selectedFontSize = fontSizes.find(fontSize => fontSize.slug === String(newSlug));\n if (selectedFontSize) {\n onChange(selectedFontSize.size, selectedFontSize);\n }\n }\n },\n isBlock: true,\n size: size,\n children: fontSizes.map((fontSize, index) => /*#__PURE__*/_jsx(ToggleGroupControlOption, {\n value: fontSize.slug,\n label: T_SHIRT_ABBREVIATIONS[index],\n \"aria-label\": fontSize.name || T_SHIRT_NAMES[index],\n showTooltip: true\n }, fontSize.slug))\n });\n};\nexport default FontSizePickerToggleGroup;"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAKnB,kCAA6D;AAC7D,uBAAqD;AACrD,yBAA4B;AAC5B,IAAM,4BAA4B,WAAS;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,gBAAgB,MAAM;AAC1B,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAGA,QAAI,cAAc,QAAQ;AACxB,aAAO,OAAO,KAAK;AAAA,IACrB;AAKA,UAAM,oBAAoB,UAAU,OAAO,cAAY,SAAS,SAAS,KAAK;AAG9E,QAAI,kBAAkB,SAAS,GAAG;AAChC,aAAO;AAAA,IACT;AAGA,UAAM,iBAAiB,UAAU,KAAK,cAAY,SAAS,SAAS,KAAK;AACzE,WAAO,gBAAgB;AAAA,EACzB,GAAG;AACH,SAAoB,uCAAAA,KAAK,gDAAoB;AAAA,IAC3C;AAAA,IACA,mCAAmC;AAAA,IACnC,WAAO,gBAAG,WAAW;AAAA,IACrB,qBAAqB;AAAA,IACrB,OAAO;AAAA,IACP,UAAU,aAAW;AACnB,UAAI,YAAY,QAAW;AACzB,iBAAS,MAAS;AAAA,MACpB,OAAO;AAEL,cAAM,mBAAmB,UAAU,KAAK,cAAY,SAAS,SAAS,OAAO,OAAO,CAAC;AACrF,YAAI,kBAAkB;AACpB,mBAAS,iBAAiB,MAAM,gBAAgB;AAAA,QAClD;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,UAAU,UAAU,IAAI,CAAC,UAAU,UAAuB,uCAAAA,KAAK,sDAA0B;AAAA,MACvF,OAAO,SAAS;AAAA,MAChB,OAAO,uCAAsB,KAAK;AAAA,MAClC,cAAc,SAAS,QAAQ,+BAAc,KAAK;AAAA,MAClD,aAAa;AAAA,IACf,GAAG,SAAS,IAAI,CAAC;AAAA,EACnB,CAAC;AACH;AACA,IAAO,wCAAQ;",
"names": ["_jsx"]
}