UNPKG

23.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["@wordpress/block-library/src/table/edit.js"],"names":["BACKGROUND_COLORS","color","name","slug","withCustomBackgroundColors","TableEdit","arguments","onCreateTable","bind","onChangeFixedLayout","onChange","onChangeInitialColumnCount","onChangeInitialRowCount","renderSection","getTableControls","onInsertRow","onInsertRowBefore","onInsertRowAfter","onDeleteRow","onInsertColumn","onInsertColumnBefore","onInsertColumnAfter","onDeleteColumn","state","initialRowCount","initialColumnCount","selectedCell","setState","event","preventDefault","setAttributes","props","parseInt","rowCount","columnCount","attributes","hasFixedLayout","content","section","rowIndex","columnIndex","delta","icon","title","isDisabled","onClick","type","rows","length","Tag","map","cells","CellTag","tag","isSelected","cell","cellClasses","createOnFocus","className","backgroundColor","setBackgroundColor","head","body","foot","isEmpty","Section","classes","class","value","label","disableCustomColors","colors","Component"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment, Component } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tRichText,\n\tPanelColorSettings,\n\tcreateCustomColorsHOC,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n\tToolbar,\n\tDropdownMenu,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateCellContent,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n} from './state';\n\nconst BACKGROUND_COLORS = [\n\t{\n\t\tcolor: '#f3f4f5',\n\t\tname: 'Subtle light gray',\n\t\tslug: 'subtle-light-gray',\n\t},\n\t{\n\t\tcolor: '#e9fbe5',\n\t\tname: 'Subtle pale green',\n\t\tslug: 'subtle-pale-green',\n\t},\n\t{\n\t\tcolor: '#e7f5fe',\n\t\tname: 'Subtle pale blue',\n\t\tslug: 'subtle-pale-blue',\n\t},\n\t{\n\t\tcolor: '#fcf0ef',\n\t\tname: 'Subtle pale pink',\n\t\tslug: 'subtle-pale-pink',\n\t},\n];\n\nconst withCustomBackgroundColors = createCustomColorsHOC( BACKGROUND_COLORS );\n\nexport class TableEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onCreateTable = this.onCreateTable.bind( this );\n\t\tthis.onChangeFixedLayout = this.onChangeFixedLayout.bind( this );\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onChangeInitialColumnCount = this.onChangeInitialColumnCount.bind( this );\n\t\tthis.onChangeInitialRowCount = this.onChangeInitialRowCount.bind( this );\n\t\tthis.renderSection = this.renderSection.bind( this );\n\t\tthis.getTableControls = this.getTableControls.bind( this );\n\t\tthis.onInsertRow = this.onInsertRow.bind( this );\n\t\tthis.onInsertRowBefore = this.onInsertRowBefore.bind( this );\n\t\tthis.onInsertRowAfter = this.onInsertRowAfter.bind( this );\n\t\tthis.onDeleteRow = this.onDeleteRow.bind( this );\n\t\tthis.onInsertColumn = this.onInsertColumn.bind( this );\n\t\tthis.onInsertColumnBefore = this.onInsertColumnBefore.bind( this );\n\t\tthis.onInsertColumnAfter = this.onInsertColumnAfter.bind( this );\n\t\tthis.onDeleteColumn = this.onDeleteColumn.bind( this );\n\n\t\tthis.state = {\n\t\t\tinitialRowCount: 2,\n\t\t\tinitialColumnCount: 2,\n\t\t\tselectedCell: null,\n\t\t};\n\t}\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} initialColumnCount New initial column count.\n\t */\n\tonChangeInitialColumnCount( initialColumnCount ) {\n\t\tthis.setState( { initialColumnCount } );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} initialRowCount New initial row count.\n\t */\n\tonChangeInitialRowCount( initialRowCount ) {\n\t\tthis.setState( { initialRowCount } );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tonCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tconst { setAttributes } = this.props;\n\t\tlet { initialRowCount, initialColumnCount } = this.state;\n\n\t\tinitialRowCount = parseInt( initialRowCount, 10 ) || 2;\n\t\tinitialColumnCount = parseInt( initialColumnCount, 10 ) || 2;\n\n\t\tsetAttributes( createTable( {\n\t\t\trowCount: initialRowCount,\n\t\t\tcolumnCount: initialColumnCount,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tonChangeFixedLayout() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { hasFixedLayout } = attributes;\n\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tonChange( content ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex, columnIndex } = selectedCell;\n\n\t\tsetAttributes( updateCellContent( attributes, {\n\t\t\tsection,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcontent,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tonInsertRow( delta ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( insertRow( attributes, {\n\t\t\tsection,\n\t\t\trowIndex: rowIndex + delta,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tonInsertRowBefore() {\n\t\tthis.onInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tonInsertRowAfter() {\n\t\tthis.onInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tonDeleteRow() {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( deleteRow( attributes, { section, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tonInsertColumn( delta = 0 ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, columnIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( insertColumn( attributes, {\n\t\t\tsection,\n\t\t\tcolumnIndex: columnIndex + delta,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tonInsertColumnBefore() {\n\t\tthis.onInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tonInsertColumnAfter() {\n\t\tthis.onInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tonDeleteColumn() {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, columnIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( deleteColumn( attributes, { section, columnIndex } ) );\n\t}\n\n\t/**\n\t * Creates an onFocus handler for a specified cell.\n\t *\n\t * @param {Object} selectedCell Object with `section`, `rowIndex`, and\n\t * `columnIndex` properties.\n\t *\n\t * @return {Function} Function to call on focus.\n\t */\n\tcreateOnFocus( selectedCell ) {\n\t\treturn () => {\n\t\t\tthis.setState( { selectedCell } );\n\t\t};\n\t}\n\n\t/**\n\t * Gets the table controls to display in the block toolbar.\n\t *\n\t * @return {Array} Table controls.\n\t */\n\tgetTableControls() {\n\t\tconst { selectedCell } = this.state;\n\n\t\treturn [\n\t\t\t{\n\t\t\t\ticon: 'table-row-before',\n\t\t\t\ttitle: __( 'Add Row Before' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertRowBefore,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-row-after',\n\t\t\t\ttitle: __( 'Add Row After' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertRowAfter,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-row-delete',\n\t\t\t\ttitle: __( 'Delete Row' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onDeleteRow,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-before',\n\t\t\t\ttitle: __( 'Add Column Before' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertColumnBefore,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-after',\n\t\t\t\ttitle: __( 'Add Column After' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertColumnAfter,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-delete',\n\t\t\t\ttitle: __( 'Delete Column' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onDeleteColumn,\n\t\t\t},\n\t\t];\n\t}\n\n\t/**\n\t * Renders a table section.\n\t *\n\t * @param {string} options.type Section type: head, body, or foot.\n\t * @param {Array} options.rows The rows to render.\n\t *\n\t * @return {Object} React element for the section.\n\t */\n\trenderSection( { type, rows } ) {\n\t\tif ( ! rows.length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst Tag = `t${ type }`;\n\t\tconst { selectedCell } = this.state;\n\n\t\treturn (\n\t\t\t<Tag>\n\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t{ cells.map( ( { content, tag: CellTag }, columnIndex ) => {\n\t\t\t\t\t\t\tconst isSelected = selectedCell && (\n\t\t\t\t\t\t\t\ttype === selectedCell.section &&\n\t\t\t\t\t\t\t\trowIndex === selectedCell.rowIndex &&\n\t\t\t\t\t\t\t\tcolumnIndex === selectedCell.columnIndex\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst cell = {\n\t\t\t\t\t\t\t\tsection: type,\n\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst cellClasses = classnames( { 'is-selected': isSelected } );\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<CellTag\n\t\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\t\tclassName={ cellClasses }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-table__cell-content\"\n\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChange }\n\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ this.createOnFocus( cell ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</CellTag>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</tr>\n\t\t\t\t) ) }\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst { isSelected } = this.props;\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! isSelected && selectedCell ) {\n\t\t\tthis.setState( { selectedCell: null } );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tclassName,\n\t\t\tbackgroundColor,\n\t\t\tsetBackgroundColor,\n\t\t} = this.props;\n\t\tconst { initialRowCount, initialColumnCount } = this.state;\n\t\tconst { hasFixedLayout, head, body, foot } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\t\tconst Section = this.renderSection;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn (\n\t\t\t\t<form onSubmit={ this.onCreateTable }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tlabel={ __( 'Column Count' ) }\n\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\tonChange={ this.onChangeInitialColumnCount }\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tlabel={ __( 'Row Count' ) }\n\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\tonChange={ this.onChangeInitialRowCount }\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<Button isPrimary type=\"submit\">{ __( 'Create' ) }</Button>\n\t\t\t\t</form>\n\t\t\t);\n\t\t}\n\n\t\tconst classes = classnames( className, backgroundColor.class, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t'has-background': !! backgroundColor.color,\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon=\"editor-table\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit table' ) }\n\t\t\t\t\t\t\tcontrols={ this.getTableControls() }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Table Settings' ) } className=\"blocks-table-settings\">\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\t\tonChange={ this.onChangeFixedLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\ttitle={ __( 'Color Settings' ) }\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\tlabel: __( 'Background Color' ),\n\t\t\t\t\t\t\t\tdisableCustomColors: true,\n\t\t\t\t\t\t\t\tcolors: BACKGROUND_COLORS,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<table className={ classes }>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withCustomBackgroundColors( 'backgroundColor' )( TableEdit );\n"]}
\No newline at end of file