125 lines
3.8 KiB
JavaScript
125 lines
3.8 KiB
JavaScript
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,
|
|
},
|
|
];
|