{
  "version": 3,
  "sources": ["../../src/math/edit.js"],
  "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedTextareaControl } = unlock( componentsPrivateApis );\n\nexport default function MathEdit( { attributes, setAttributes, isSelected } ) {\n\tconst { latex, mathML } = attributes;\n\tconst [ blockRef, setBlockRef ] = useState();\n\tconst [ error, setError ] = useState( null );\n\tconst [ latexToMathML, setLatexToMathML ] = useState();\n\tconst initialLatex = useRef( latex );\n\tconst formRef = useRef();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\timport( '@wordpress/latex-to-mathml' ).then( ( module ) => {\n\t\t\tsetLatexToMathML( () => module.default );\n\t\t\tif ( initialLatex.current ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tmathML: module.default( initialLatex.current, {\n\t\t\t\t\t\tdisplayMode: true,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tinitialLatex,\n\t\tsetAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: setBlockRef,\n\t\tposition: 'relative',\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ mathML ? (\n\t\t\t\t<math\n\t\t\t\t\t// We can't spread block props on the math element because\n\t\t\t\t\t// it only supports a limited amount of global attributes.\n\t\t\t\t\t// For example, draggable will have no effect.\n\t\t\t\t\tdisplay=\"block\"\n\t\t\t\t\tdangerouslySetInnerHTML={ { __html: mathML } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t'\\u200B'\n\t\t\t) }\n\t\t\t{ isSelected && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\toffset={ 8 }\n\t\t\t\t\tanchor={ blockRef }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\t// Surface any parsing error before focus leaves the block.\n\t\t\t\t\t// An invalid field is refocused, keeping the popover open.\n\t\t\t\t\tonFocusOutside={ () => formRef.current?.reportValidity() }\n\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tref={ formRef }\n\t\t\t\t\t\tstyle={ { padding: '4px', minWidth: '300px' } }\n\t\t\t\t\t\tonSubmit={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ValidatedTextareaControl\n\t\t\t\t\t\t\tlabel={ __( 'LaTeX math syntax' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tvalue={ latex }\n\t\t\t\t\t\t\tclassName=\"wp-block-math__textarea-control\"\n\t\t\t\t\t\t\tcustomValidity={\n\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t\t? { type: 'invalid', message: error }\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ ( newLatex ) => {\n\t\t\t\t\t\t\t\tif ( ! latexToMathML ) {\n\t\t\t\t\t\t\t\t\tsetAttributes( { latex: newLatex } );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlet newMathML = '';\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tnewMathML = latexToMathML( newLatex, {\n\t\t\t\t\t\t\t\t\t\tdisplayMode: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetError( null );\n\t\t\t\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\t\t\t\tsetError( err.message );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tmathML: newMathML,\n\t\t\t\t\t\t\t\t\tlatex: newLatex,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tplaceholder={ __( 'e.g., x^2, \\\\frac{a}{b}' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</form>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmB;AACnB,0BAGO;AACP,wBAGO;AACP,qBAA4C;AAC5C,kBAA4B;AAC5B,yBAAuB;AAsCrB;AApCF,IAAM,EAAE,yBAAyB,QAAI,2BAAQ,kBAAAA,WAAsB;AAEpD,SAAR,SAA2B,EAAE,YAAY,eAAe,WAAW,GAAI;AAC7E,QAAM,EAAE,OAAO,OAAO,IAAI;AAC1B,QAAM,CAAE,UAAU,WAAY,QAAI,yBAAS;AAC3C,QAAM,CAAE,OAAO,QAAS,QAAI,yBAAU,IAAK;AAC3C,QAAM,CAAE,eAAe,gBAAiB,QAAI,yBAAS;AACrD,QAAM,mBAAe,uBAAQ,KAAM;AACnC,QAAM,cAAU,uBAAO;AACvB,QAAM,EAAE,wCAAwC,QAC/C,yBAAa,oBAAAC,KAAiB;AAE/B,gCAAW,MAAM;AAChB,WAAQ,4BAA6B,EAAE,KAAM,CAAEC,YAAY;AAC1D,uBAAkB,MAAMA,QAAO,OAAQ;AACvC,UAAK,aAAa,SAAU;AAC3B,gDAAwC;AACxC,sBAAe;AAAA,UACd,QAAQA,QAAO,QAAS,aAAa,SAAS;AAAA,YAC7C,aAAa;AAAA,UACd,CAAE;AAAA,QACH,CAAE;AAAA,MACH;AAAA,IACD,CAAE;AAAA,EACH,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,iBAAa,mCAAe;AAAA,IACjC,KAAK;AAAA,IACL,UAAU;AAAA,EACX,CAAE;AAEF,SACC,6CAAC,SAAM,GAAG,YACP;AAAA,aACD;AAAA,MAAC;AAAA;AAAA,QAIA,SAAQ;AAAA,QACR,yBAA0B,EAAE,QAAQ,OAAO;AAAA;AAAA,IAC5C,IAEA;AAAA,IAEC,cACD;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,QAAS;AAAA,QACT,QAAS;AAAA,QACT,cAAe;AAAA,QAGf,gBAAiB,MAAM,QAAQ,SAAS,eAAe;AAAA,QACvD,oBAAmB;AAAA,QAEnB;AAAA,UAAC;AAAA;AAAA,YACA,KAAM;AAAA,YACN,OAAQ,EAAE,SAAS,OAAO,UAAU,QAAQ;AAAA,YAC5C,UAAW,CAAE,UAAW,MAAM,eAAe;AAAA,YAE7C;AAAA,cAAC;AAAA;AAAA,gBACA,WAAQ,gBAAI,mBAAoB;AAAA,gBAChC,qBAAmB;AAAA,gBACnB,OAAQ;AAAA,gBACR,WAAU;AAAA,gBACV,gBACC,QACG,EAAE,MAAM,WAAW,SAAS,MAAM,IAClC;AAAA,gBAEJ,UAAW,CAAE,aAAc;AAC1B,sBAAK,CAAE,eAAgB;AACtB,kCAAe,EAAE,OAAO,SAAS,CAAE;AACnC;AAAA,kBACD;AACA,sBAAI,YAAY;AAChB,sBAAI;AACH,gCAAY,cAAe,UAAU;AAAA,sBACpC,aAAa;AAAA,oBACd,CAAE;AACF,6BAAU,IAAK;AAAA,kBAChB,SAAU,KAAM;AACf,6BAAU,IAAI,OAAQ;AAAA,kBACvB;AACA,gCAAe;AAAA,oBACd,QAAQ;AAAA,oBACR,OAAO;AAAA,kBACR,CAAE;AAAA,gBACH;AAAA,gBACA,iBAAc,gBAAI,yBAA0B;AAAA;AAAA,YAC7C;AAAA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,KAEF;AAEF;",
  "names": ["componentsPrivateApis", "blockEditorStore", "module"]
}
