{
  "version": 3,
  "sources": ["../../src/columns/transforms.js"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nconst MAXIMUM_SELECTED_BLOCKS = 6;\n\nconst getColumnBlocksFromGrid = ( innerBlocks, columnCount ) => {\n\tconst columnWidth = +( 100 / columnCount ).toFixed( 2 );\n\tconst innerBlocksTemplate = Array.from(\n\t\t{ length: columnCount },\n\t\t( _, columnIndex ) => [\n\t\t\t'core/column',\n\t\t\t{ width: `${ columnWidth }%` },\n\t\t\tinnerBlocks.filter(\n\t\t\t\t( _innerBlock, blockIndex ) =>\n\t\t\t\t\tblockIndex % columnCount === columnIndex\n\t\t\t),\n\t\t]\n\t);\n\n\treturn createBlocksFromInnerBlocksTemplate( innerBlocksTemplate );\n};\n\nconst getGridInnerBlocks = ( innerBlocks ) =>\n\tinnerBlocks.flatMap( ( column ) => {\n\t\tconst columnInnerBlocks = column.innerBlocks || [];\n\t\tif ( columnInnerBlocks.length > 1 ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{ layout: { type: 'constrained' } },\n\t\t\t\t\tcolumnInnerBlocks\n\t\t\t\t),\n\t\t\t];\n\t\t}\n\t\treturn columnInnerBlocks;\n\t} );\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tpriority: 1,\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst { layout, ...rest } = attributes;\n\t\t\t\tconst { columnCount } = layout;\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\trest,\n\t\t\t\t\tgetColumnBlocksFromGrid( innerBlocks, columnCount )\n\t\t\t\t);\n\t\t\t},\n\t\t\tisMatch: ( { layout } ) =>\n\t\t\t\tlayout?.type === 'grid' &&\n\t\t\t\tNumber.isInteger( layout?.columnCount ) &&\n\t\t\t\tlayout.columnCount > 0,\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert: ( blocks ) => {\n\t\t\t\tconst columnWidth = +( 100 / blocks.length ).toFixed( 2 );\n\t\t\t\tconst innerBlocksTemplate = blocks.map(\n\t\t\t\t\t( { name, attributes, innerBlocks } ) => [\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ columnWidth }%` },\n\t\t\t\t\t\t[ [ name, { ...attributes }, innerBlocks ] ],\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t\tisMatch: ( { length: selectedBlocksLength }, blocks ) => {\n\t\t\t\t// If a user is trying to transform a single Columns block, skip\n\t\t\t\t// the transformation. Enabling this functiontionality creates\n\t\t\t\t// nested Columns blocks resulting in an unintuitive user experience.\n\t\t\t\t// Multiple Columns blocks can still be transformed.\n\t\t\t\tif (\n\t\t\t\t\tblocks.length === 1 &&\n\t\t\t\t\tblocks[ 0 ].name === 'core/columns'\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tselectedBlocksLength &&\n\t\t\t\t\tselectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/media-text' ],\n\t\t\tpriority: 1,\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst {\n\t\t\t\t\talign,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tstyle,\n\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaPosition,\n\t\t\t\t\tmediaSizeSlug: sizeSlug,\n\t\t\t\t\tmediaType,\n\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\tmediaWidth,\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} = attributes;\n\t\t\t\tlet media;\n\t\t\t\tif ( mediaType === 'image' || ! mediaType ) {\n\t\t\t\t\tconst imageAttrs = { id, alt, url, sizeSlug };\n\t\t\t\t\tconst linkAttrs = {\n\t\t\t\t\t\thref: attributes.href,\n\t\t\t\t\t\tlinkClass: attributes.linkClass,\n\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\tlinkTarget: attributes.linkTarget,\n\t\t\t\t\t\trel: attributes.rel,\n\t\t\t\t\t};\n\t\t\t\t\tmedia = [ 'core/image', { ...imageAttrs, ...linkAttrs } ];\n\t\t\t\t} else {\n\t\t\t\t\tmedia = [ 'core/video', { id, src: url } ];\n\t\t\t\t}\n\t\t\t\tconst innerBlocksTemplate = [\n\t\t\t\t\t[ 'core/column', { width: `${ mediaWidth }%` }, [ media ] ],\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ 100 - mediaWidth }%` },\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t],\n\t\t\t\t];\n\t\t\t\tif ( mediaPosition === 'right' ) {\n\t\t\t\t\tinnerBlocksTemplate.reverse();\n\t\t\t\t}\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tvariationName: 'group-grid',\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst columnCount = innerBlocks.length;\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\tisStackedOnMobile: undefined,\n\t\t\t\t\t\tverticalAlignment: undefined,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\t\t...( columnCount && { columnCount } ),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tgetGridInnerBlocks( innerBlocks )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tungroup: ( attributes, innerBlocks ) =>\n\t\tinnerBlocks.flatMap( ( innerBlock ) => innerBlock.innerBlocks ),\n};\n\nexport default transforms;\n"],
  "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,OACM;AAEP,IAAM,0BAA0B;AAEhC,IAAM,0BAA0B,CAAE,aAAa,gBAAiB;AAC/D,QAAM,cAAc,EAAG,MAAM,aAAc,QAAS,CAAE;AACtD,QAAM,sBAAsB,MAAM;AAAA,IACjC,EAAE,QAAQ,YAAY;AAAA,IACtB,CAAE,GAAG,gBAAiB;AAAA,MACrB;AAAA,MACA,EAAE,OAAO,GAAI,WAAY,IAAI;AAAA,MAC7B,YAAY;AAAA,QACX,CAAE,aAAa,eACd,aAAa,gBAAgB;AAAA,MAC/B;AAAA,IACD;AAAA,EACD;AAEA,SAAO,oCAAqC,mBAAoB;AACjE;AAEA,IAAM,qBAAqB,CAAE,gBAC5B,YAAY,QAAS,CAAE,WAAY;AAClC,QAAM,oBAAoB,OAAO,eAAe,CAAC;AACjD,MAAK,kBAAkB,SAAS,GAAI;AACnC,WAAO;AAAA,MACN;AAAA,QACC;AAAA,QACA,EAAE,QAAQ,EAAE,MAAM,cAAc,EAAE;AAAA,QAClC;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR,CAAE;AAEH,IAAM,aAAa;AAAA,EAClB,MAAM;AAAA,IACL;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,CAAE,YAAa;AAAA,MACvB,UAAU;AAAA,MACV,WAAW,CAAE,YAAY,gBAAiB;AACzC,cAAM,EAAE,QAAQ,GAAG,KAAK,IAAI;AAC5B,cAAM,EAAE,YAAY,IAAI;AAExB,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA,wBAAyB,aAAa,WAAY;AAAA,QACnD;AAAA,MACD;AAAA,MACA,SAAS,CAAE,EAAE,OAAO,MACnB,QAAQ,SAAS,UACjB,OAAO,UAAW,QAAQ,WAAY,KACtC,OAAO,cAAc;AAAA,IACvB;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAE,GAAI;AAAA,MACd,uBAAuB,CAAE,WAAY;AACpC,cAAM,cAAc,EAAG,MAAM,OAAO,QAAS,QAAS,CAAE;AACxD,cAAM,sBAAsB,OAAO;AAAA,UAClC,CAAE,EAAE,MAAM,YAAY,YAAY,MAAO;AAAA,YACxC;AAAA,YACA,EAAE,OAAO,GAAI,WAAY,IAAI;AAAA,YAC7B,CAAE,CAAE,MAAM,EAAE,GAAG,WAAW,GAAG,WAAY,CAAE;AAAA,UAC5C;AAAA,QACD;AACA,eAAO;AAAA,UACN;AAAA,UACA,CAAC;AAAA,UACD,oCAAqC,mBAAoB;AAAA,QAC1D;AAAA,MACD;AAAA,MACA,SAAS,CAAE,EAAE,QAAQ,qBAAqB,GAAG,WAAY;AAKxD,YACC,OAAO,WAAW,KAClB,OAAQ,CAAE,EAAE,SAAS,gBACpB;AACD,iBAAO;AAAA,QACR;AAEA,eACC,wBACA,wBAAwB;AAAA,MAE1B;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,CAAE,iBAAkB;AAAA,MAC5B,UAAU;AAAA,MACV,WAAW,CAAE,YAAY,gBAAiB;AACzC,cAAM;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV,SAAS;AAAA,UACT;AAAA,UACA,eAAe;AAAA,UACf;AAAA,UACA,UAAU;AAAA,UACV;AAAA,UACA;AAAA,QACD,IAAI;AACJ,YAAI;AACJ,YAAK,cAAc,WAAW,CAAE,WAAY;AAC3C,gBAAM,aAAa,EAAE,IAAI,KAAK,KAAK,SAAS;AAC5C,gBAAM,YAAY;AAAA,YACjB,MAAM,WAAW;AAAA,YACjB,WAAW,WAAW;AAAA,YACtB,iBAAiB,WAAW;AAAA,YAC5B,YAAY,WAAW;AAAA,YACvB,KAAK,WAAW;AAAA,UACjB;AACA,kBAAQ,CAAE,cAAc,EAAE,GAAG,YAAY,GAAG,UAAU,CAAE;AAAA,QACzD,OAAO;AACN,kBAAQ,CAAE,cAAc,EAAE,IAAI,KAAK,IAAI,CAAE;AAAA,QAC1C;AACA,cAAM,sBAAsB;AAAA,UAC3B,CAAE,eAAe,EAAE,OAAO,GAAI,UAAW,IAAI,GAAG,CAAE,KAAM,CAAE;AAAA,UAC1D;AAAA,YACC;AAAA,YACA,EAAE,OAAO,GAAI,MAAM,UAAW,IAAI;AAAA,YAClC;AAAA,UACD;AAAA,QACD;AACA,YAAK,kBAAkB,SAAU;AAChC,8BAAoB,QAAQ;AAAA,QAC7B;AACA,eAAO;AAAA,UACN;AAAA,UACA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,UACA,oCAAqC,mBAAoB;AAAA,QAC1D;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,IAAI;AAAA,IACH;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,CAAE,YAAa;AAAA,MACvB,eAAe;AAAA,MACf,WAAW,CAAE,YAAY,gBAAiB;AACzC,cAAM,cAAc,YAAY;AAChC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,YACC,GAAG;AAAA,YACH,mBAAmB;AAAA,YACnB,mBAAmB;AAAA,YACnB,QAAQ;AAAA,cACP,MAAM;AAAA,cACN,GAAK,eAAe,EAAE,YAAY;AAAA,YACnC;AAAA,UACD;AAAA,UACA,mBAAoB,WAAY;AAAA,QACjC;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,SAAS,CAAE,YAAY,gBACtB,YAAY,QAAS,CAAE,eAAgB,WAAW,WAAY;AAChE;AAEA,IAAO,qBAAQ;",
  "names": []
}
