@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 3.72 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/term-count/edit.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, BlockControls } from '@wordpress/block-editor';\nimport { ToolbarDropdownMenu } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbareNumber,\n\tnumberInParenthesis,\n\tnumberInSquareBrackets,\n\tnumberInCurlyBrackets,\n\tnumberInAngleBrackets,\n} from './icons';\nimport { useTermCount } from './use-term-count';\n\nconst BRACKET_TYPES = {\n\tnone: { label: __( 'No brackets' ), icon: bareNumber },\n\tround: {\n\t\tlabel: __( 'Round brackets' ),\n\t\ticon: numberInParenthesis,\n\t\tbefore: '(',\n\t\tafter: ')',\n\t},\n\tsquare: {\n\t\tlabel: __( 'Square brackets' ),\n\t\ticon: numberInSquareBrackets,\n\t\tbefore: '[',\n\t\tafter: ']',\n\t},\n\tcurly: {\n\t\tlabel: __( 'Curly brackets' ),\n\t\ticon: numberInCurlyBrackets,\n\t\tbefore: '{',\n\t\tafter: '}',\n\t},\n\tangle: {\n\t\tlabel: __( 'Angle brackets' ),\n\t\ticon: numberInAngleBrackets,\n\t\tbefore: '<',\n\t\tafter: '>',\n\t},\n};\n\nexport default function TermCountEdit( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { termId, taxonomy },\n} ) {\n\tconst { bracketType } = attributes;\n\tconst term = useTermCount( termId, taxonomy );\n\n\tconst termCount = term?.termCount || 0;\n\n\tconst blockProps = useBlockProps();\n\n\tconst bracketTypeControls = Object.entries( BRACKET_TYPES ).map(\n\t\t( [ type, { label, icon } ] ) => ( {\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: label,\n\t\t\tisActive: bracketType === type,\n\t\t\ticon,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( { bracketType: type } );\n\t\t\t},\n\t\t} )\n\t);\n\n\tconst formatTermCount = ( count, type ) => {\n\t\tconst { before = '', after = '' } = BRACKET_TYPES[ type ] || {};\n\t\treturn `${ before }${ count }${ after }`;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\ticon={ BRACKET_TYPES[ bracketType ]?.icon ?? bareNumber }\n\t\t\t\t\tlabel={ __( 'Change bracket type' ) }\n\t\t\t\t\tcontrols={ bracketTypeControls }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ formatTermCount( termCount, bracketType ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,0BAA6C;AAC7C,wBAAoC;AAKpC,mBAMO;AACP,4BAA6B;AA4D3B;AA1DF,IAAM,gBAAgB;AAAA,EACrB,MAAM,EAAE,WAAO,gBAAI,aAAc,GAAG,MAAM,wBAAW;AAAA,EACrD,OAAO;AAAA,IACN,WAAO,gBAAI,gBAAiB;AAAA,IAC5B,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACR;AAAA,EACA,QAAQ;AAAA,IACP,WAAO,gBAAI,iBAAkB;AAAA,IAC7B,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACN,WAAO,gBAAI,gBAAiB;AAAA,IAC5B,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACN,WAAO,gBAAI,gBAAiB;AAAA,IAC5B,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACR;AACD;AAEe,SAAR,cAAgC;AAAA,EACtC;AAAA,EACA;AAAA,EACA,SAAS,EAAE,QAAQ,SAAS;AAC7B,GAAI;AACH,QAAM,EAAE,YAAY,IAAI;AACxB,QAAM,WAAO,oCAAc,QAAQ,QAAS;AAE5C,QAAM,YAAY,MAAM,aAAa;AAErC,QAAM,iBAAa,mCAAc;AAEjC,QAAM,sBAAsB,OAAO,QAAS,aAAc,EAAE;AAAA,IAC3D,CAAE,CAAE,MAAM,EAAE,OAAO,KAAK,CAAE,OAAS;AAAA,MAClC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,gBAAgB;AAAA,MAC1B;AAAA,MACA,SAAS,MAAM;AACd,sBAAe,EAAE,aAAa,KAAK,CAAE;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,QAAM,kBAAkB,CAAE,OAAO,SAAU;AAC1C,UAAM,EAAE,SAAS,IAAI,QAAQ,GAAG,IAAI,cAAe,IAAK,KAAK,CAAC;AAC9D,WAAO,GAAI,MAAO,GAAI,KAAM,GAAI,KAAM;AAAA,EACvC;AAEA,SACC,4EACC;AAAA,gDAAC,qCAAc,OAAM,SACpB;AAAA,MAAC;AAAA;AAAA,QACA,MAAO,cAAe,WAAY,GAAG,QAAQ;AAAA,QAC7C,WAAQ,gBAAI,qBAAsB;AAAA,QAClC,UAAW;AAAA;AAAA,IACZ,GACD;AAAA,IACA,4CAAC,SAAM,GAAG,YACP,0BAAiB,WAAW,WAAY,GAC3C;AAAA,KACD;AAEF;",
"names": []
}