UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 5.41 kB
{ "version": 3, "sources": ["../../src/freeform/modal.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store } from '@wordpress/block-editor';\nimport { Modal, Button, Flex, FlexItem } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( { clientId, content, onClose, onChange } ) {\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\theaderActions={\n\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t}\n\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( window.wp.oldEditor.getContent( id ) );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAsB;AACtB,wBAA8C;AAC9C,qBAAoC;AACpC,kBAAmB;AACnB,kBAA0B;AAC1B,mBAA2B;AAC3B,qBAAiC;AAU/B;AARF,SAAS,sBAAuB,EAAE,SAAS,kBAAkB,GAAI;AAEhE,QAAM,uBAAmB,iCAAkB,SAAS,GAAI;AACxD,MAAK,kBAAmB;AACvB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL;AAAA,MACA,MAAO;AAAA,MACP,WAAY;AAAA,MACZ,OACC,wBACG,gBAAI,iBAAkB,QACtB,gBAAI,kBAAmB;AAAA;AAAA,EAE5B;AAEF;AAEA,SAAS,YAAa,OAAQ;AAC7B,QAAM,aAAS;AAAA,IACd,CAAE,WAAY,OAAQ,yBAAM,EAAE,YAAY,EAAE;AAAA,EAC7C;AACA,gCAAW,MAAM;AAChB,UAAM,EAAE,SAAS,QAAQ,SAAS,IAAI,OAAO,aAAa;AAE1D,WAAO,QAAQ,cAAc,iBAAkB;AAAA,MAC9C,UAAU;AAAA,MACV;AAAA,IACD,CAAE;AAEF,WAAO,GAAG,UAAU,WAAY,MAAM,IAAI;AAAA,MACzC,SAAS;AAAA,QACR,GAAG;AAAA,QACH,MAAO,QAAS;AACf,iBAAO,GAAI,QAAQ,MAAM;AACxB,kBAAM,MAAM,OAAO,OAAO;AAC1B,mBAAO,QAAS,CAAE,EAAE,IAAI,MAAO;AAC9B,oBAAM,UAAU,IAAI,cAAe,OAAQ;AAC3C,sBAAQ,YAAY;AACpB,kBAAI,KAAK,YAAa,OAAQ;AAAA,YAC/B,CAAE;AAAA,UACH,CAAE;AAAA,QACH;AAAA,MACD;AAAA,IACD,CAAE;AAEF,WAAO,MAAM;AACZ,aAAO,GAAG,UAAU,OAAQ,MAAM,EAAG;AAAA,IACtC;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,SAAO,4CAAC,cAAW,GAAG,OAAQ;AAC/B;AAEe,SAAR,UAA4B,EAAE,UAAU,SAAS,SAAS,SAAS,GAAI;AAC7E,QAAM,CAAE,mBAAmB,oBAAqB,QAAI,yBAAU,KAAM;AACpE,QAAM,KAAK,UAAW,QAAS;AAE/B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAQ,gBAAI,gBAAiB;AAAA,MAC7B,gBAAiB;AAAA,MACjB,2BAA4B;AAAA,MAC5B,kBAAiB;AAAA,MACjB,cAAe;AAAA,MACf,WAAU;AAAA,MACV,eACC;AAAA,QAAC;AAAA;AAAA,UACA,SAAU,MACT,qBAAsB,CAAE,iBAAkB;AAAA,UAE3C;AAAA;AAAA,MACD;AAAA,MAGD;AAAA,oDAAC,eAAY,IAAU,cAAe,SAAU;AAAA,QAChD;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,SAAQ;AAAA,YACR,UAAW;AAAA,YAEX;AAAA,0DAAC,8BACA;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,SAAQ;AAAA,kBACR,SAAU;AAAA,kBAER,8BAAI,QAAS;AAAA;AAAA,cAChB,GACD;AAAA,cACA,4CAAC,8BACA;AAAA,gBAAC;AAAA;AAAA,kBACA,uBAAqB;AAAA,kBACrB,SAAQ;AAAA,kBACR,SAAU,MAAM;AACf,6BAAU,OAAO,GAAG,UAAU,WAAY,EAAG,CAAE;AAC/C,4BAAQ;AAAA,kBACT;AAAA,kBAEE,8BAAI,MAAO;AAAA;AAAA,cACd,GACD;AAAA;AAAA;AAAA,QACD;AAAA;AAAA;AAAA,EACD;AAEF;", "names": [] }