import save from './save'; const { attributes } = window.VPGutenbergVariables; const V2_23_0_ATTRIBUTES = { // Align. items_style_default__align: 'items_style_default__caption_text_align', items_style_fade__align: 'items_style_fade__overlay_text_align', items_style_fly__align: 'items_style_fly__overlay_text_align', items_style_emerge__align: 'items_style_emerge__caption_text_align', items_style_caption_move__align: 'items_style_caption_move__caption_text_align', // Color. items_style_default__bg_color: 'items_style_default__overlay_bg_color', items_style_default__text_color: 'items_style_default__overlay_text_color', items_style_default__meta_text_color: 'items_style_default__caption_text_color', items_style_default__meta_links_color: 'items_style_default__caption_links_color', items_style_default__meta_links_hover_color: 'items_style_default__caption_links_hover_color', items_style_fade__bg_color: 'items_style_fade__overlay_bg_color', items_style_fade__text_color: 'items_style_fade__overlay_text_color', items_style_fly__bg_color: 'items_style_fly__overlay_bg_color', items_style_fly__text_color: 'items_style_fly__overlay_text_color', items_style_emerge__bg_color: 'items_style_emerge__caption_bg_color', items_style_emerge__text_color: 'items_style_emerge__caption_text_color', items_style_emerge__links_color: 'items_style_emerge__caption_links_color', items_style_emerge__links_hover_color: 'items_style_emerge__caption_links_hover_color', items_style_emerge__img_overlay_bg_color: 'items_style_emerge__overlay_bg_color', 'items_style_caption-move__bg_color': 'items_style_caption-move__caption_bg_color', 'items_style_caption-move__text_color': 'items_style_caption-move__caption_text_color', 'items_style_caption-move__img_overlay_bg_color': 'items_style_caption-move__overlay_bg_color', 'items_style_caption-move__overlay_text_color': 'items_style_caption-move__overlay_text_color', // Move Under Image. items_style_fade__move_overlay_under_image: 'items_style_fade__overlay_under_image', items_style_fly__move_overlay_under_image: 'items_style_fly__overlay_under_image', items_style_emerge__move_overlay_under_image: 'items_style_emerge__caption_under_image', 'items_style_caption-move__move_overlay_under_image': 'items_style_caption-move__caption_under_image', }; const V2_23_0_BORDER_RADIUS = [ 'items_style_default__images_rounded_corners', 'items_style_fade__images_rounded_corners', 'items_style_fly__images_rounded_corners', 'items_style_emerge__images_rounded_corners', 'items_style_caption_move__images_rounded_corners', ]; export default [ // v3.0.0 // Changed items style builtin_controls structure. { attributes: { ...attributes, ...(() => { const attrs = {}; Object.keys(V2_23_0_ATTRIBUTES).forEach((k) => { attrs[k] = { type: 'string' }; }); return attrs; })(), ...(() => { const attrs = {}; V2_23_0_BORDER_RADIUS.forEach((k) => { attrs[k] = { type: 'number', default: 0 }; }); return attrs; })(), }, migrate(oldAttributes) { const newAttributes = { ...oldAttributes }; Object.keys(V2_23_0_ATTRIBUTES).forEach((k) => { if (k in newAttributes) { if (newAttributes[k]) { newAttributes[V2_23_0_ATTRIBUTES[k]] = newAttributes[k]; } delete newAttributes[k]; } }); V2_23_0_BORDER_RADIUS.forEach((k) => { if (typeof newAttributes[k] === 'number') { newAttributes[k] = `${newAttributes[k]}px`; } }); return [newAttributes, []]; }, isEligible(attrs) { const keys = Object.keys(V2_23_0_ATTRIBUTES); let eligible = false; keys.forEach((key) => { if (!eligible && key in attrs) { eligible = true; } }); V2_23_0_BORDER_RADIUS.forEach((k) => { if (!eligible && typeof attrs[k] === 'number') { eligible = true; } }); return eligible; }, save, }, ];