design-comuni-plone-theme
Version:
Volto Theme for Italia design guidelines
357 lines (334 loc) • 14.7 kB
JavaScript
import SimpleCardTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/SimpleCard/SimpleCardTemplate';
import CardWithImageTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate';
import CardWithImageTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/CardWithImageTemplateSkeleton';
import InEvidenceTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate';
import InEvidenceTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/InEvidenceTemplateSkeleton';
import ContentInEvidenceTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate';
import ContentInEvidenceTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/ContentInEvidenceTemplateSkeleton';
import RibbonCardTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/RibbonCardTemplate';
import RibbonCardTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/RibbonCardTemplateSkeleton';
import MapTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/MapTemplate';
import MapTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/MapTemplateSkeleton';
import SmallBlockLinksTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/SmallBlockLinksTemplate';
import SmallBlockLinksTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/SmallBlockLinksTemplateSkeleton';
import CompleteBlockLinksTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate';
import CompleteBlockLinksTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/CompleteBlockLinksTemplateSkeleton';
import PhotogalleryTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate';
import PhotogalleryTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/PhotogalleryTemplateSkeleton';
import SliderTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/SliderTemplate';
import SliderTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/SliderTemplateSkeleton';
import SlideItemDefault from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/Slider/SlideItemDefault';
import SlideItemSimpleCard from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/SimpleCard/Card/SimpleCardDefault';
import SlideItemImageCard from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/CardWithImage/CardWithImageDefault';
import GridGalleryTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate';
import GridGalleryTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/GridGalleryTemplateSkeleton';
import BandiInEvidenceTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/BandiInEvidenceTemplate';
import BandiInEvidenceTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/BandiInEvidenceTemplateSkeleton';
import SquaresImageTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/SquaresImageTemplate';
import SquaresImageTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/SquaresImageTemplateSkeleton';
import SimpleListTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/SimpleListTemplate';
import SimpleListTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/SimpleListTemplateSkeleton';
import CardWithSlideUpTextTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/CardWithSlideUpTextTemplate';
import CardWithSlideUpTextTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/CardWithSlideUpTextTemplateSkeleton';
import AttachmentCardTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/AttachmentCardTemplate';
import TableTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TableTemplate';
import TableTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/TableTemplateSkeleton';
// import AmministrazioneTrasparenteTablesTemplate from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/AmministrazioneTrasparenteTablesTemplate';
// import AmministrazioneTrasparenteTablesTemplateSkeleton from 'design-comuni-plone-theme/components/ItaliaTheme/Blocks/Listing/TemplatesSkeletons/AmministrazioneTrasparenteTablesTemplateSkeleton';
import {
addSimpleCardTemplateOptions,
addCardWithImageTemplateOptions,
addInEvidenceTemplateOptions,
addRibbonCardTemplateOptions,
addMapTemplateOptions,
addCompleteBlockLinksTemplateOptions,
addBandiInEvidenceTemplateOptions,
addDefaultOptions,
addSliderTemplateOptions,
addSimpleListTemplateOptions,
addCardWithSlideUpTextTemplateOptions,
addPhotogalleryTemplateOptions,
addLinkMoreOptions,
addSmallBlockLinksTemplateOptions,
addAttachmentCardTemplateOptions,
addTableTemplateOptions,
} from 'design-comuni-plone-theme/config/Blocks/ListingOptions';
import { cloneBlock } from 'design-comuni-plone-theme/helpers/blocks';
import { addLighthouseField } from 'design-comuni-plone-theme/config/Blocks/ListingOptions/utils';
const italiaListingVariations = [
{
id: 'simpleCard',
isDefault: true,
title: 'Card semplice',
template: SimpleCardTemplate,
schemaEnhancer: ({ schema, formData, intl }) => {
addSimpleCardTemplateOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'cardWithImageTemplate',
isDefault: false,
title: 'Card con immagine',
template: CardWithImageTemplate,
skeleton: CardWithImageTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
addCardWithImageTemplateOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'inEvidenceTemplate',
isDefault: false,
title: 'In evidenza',
template: InEvidenceTemplate,
skeleton: InEvidenceTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
addInEvidenceTemplateOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'contentInEvidenceTemplate',
isDefault: false,
title: 'Contenuto in evidenza',
template: ContentInEvidenceTemplate,
skeleton: ContentInEvidenceTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addLighthouseField(schema, intl);
addDefaultOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'ribbonCardTemplate',
isDefault: false,
title: 'Card con nastro',
template: RibbonCardTemplate,
skeleton: RibbonCardTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
addRibbonCardTemplateOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'cardSlideUpTextTemplate',
isDefault: false,
title: 'Card con testo animato',
template: CardWithSlideUpTextTemplate,
skeleton: CardWithSlideUpTextTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
addCardWithSlideUpTextTemplateOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'quaresImageTemplate',
isDefault: false,
title: 'Quadratoni con immagine',
template: SquaresImageTemplate,
skeleton: SquaresImageTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addLighthouseField(schema, intl);
addDefaultOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'mapTemplate',
isDefault: false,
title: 'Mappa',
template: MapTemplate,
skeleton: MapTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addMapTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'smallBlockLinksTemplate',
isDefault: false,
title: 'Blocco link solo immagini',
template: SmallBlockLinksTemplate,
skeleton: SmallBlockLinksTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addSmallBlockLinksTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'completeBlockLinksTemplate',
isDefault: false,
title: 'Blocco link completo',
template: CompleteBlockLinksTemplate,
skeleton: CompleteBlockLinksTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
addCompleteBlockLinksTemplateOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'photogallery',
isDefault: false,
title: 'Photogallery',
template: PhotogalleryTemplate,
skeleton: PhotogalleryTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addPhotogalleryTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'slider',
isDefault: false,
title: 'Slider',
template: SliderTemplate,
skeleton: SliderTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addSliderTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
appearance: {
default: SlideItemDefault,
simple_card: SlideItemSimpleCard,
image_card: SlideItemImageCard,
},
},
{
id: 'gridGalleryTemplate',
isDefault: false,
title: 'Gallery a griglia',
template: GridGalleryTemplate,
skeleton: GridGalleryTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
/*let pos = */ addDefaultOptions(schema, formData, intl);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'bandiInEvidenceTemplate',
isDefault: false,
title: 'Bandi',
template: BandiInEvidenceTemplate,
skeleton: BandiInEvidenceTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addBandiInEvidenceTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'simpleListTemplate',
isDefault: false,
title: 'Lista semplice',
template: SimpleListTemplate,
skeleton: SimpleListTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addSimpleListTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
{
id: 'attachmentCardTemplate',
isDefault: false,
title: 'Allegati',
template: AttachmentCardTemplate,
// used default skeleton
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addAttachmentCardTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
cloneData: cloneBlock,
},
// {
// id: 'amministrazioneTrasparenteTablesTemplate',
// isDefault: false,
// title: 'Tabelle Amministrazione Trasparente',
// fullobjects: 1,
// template: AmministrazioneTrasparenteTablesTemplate,
// skeleton: AmministrazioneTrasparenteTablesTemplateSkeleton,
// schemaEnhancer: ({ schema, formData, intl }) => {
// /*let pos = */ addDefaultOptions(schema, formData, intl);
// addLinkMoreOptions(schema, formData, intl);
// return schema;
// },
// },
// ****** Example: ******
// { id:template_id,
// isDefault: false,
// title: 'Template label',
// template: TemplateComponent,
// skeleton: TemplateSkeletonComponent,
// schemaEnhancer: ({ schema, formData, intl }) => {
// let pos = addDefaultOptions(schema, formData, intl);
// return schema;
// },
// },
];
export const getItaliaListingVariations = (config) => {
return italiaListingVariations;
};
export const removeListingVariation = (config, id) => {
let indexOfVariation = -1;
indexOfVariation =
config.blocks?.blocksConfig?.listing?.variations?.findIndex(
(x) => x.id === id,
);
if (indexOfVariation >= 0) {
config.blocks.blocksConfig.listing.variations.splice(indexOfVariation, 1);
}
};
export const addTableListingVariation = (config) => {
config.blocks.blocksConfig.listing.variations.push({
id: 'table',
isDefault: false,
title: 'Tabella',
template: TableTemplate,
skeleton: TableTemplateSkeleton,
schemaEnhancer: ({ schema, formData, intl }) => {
let pos = addDefaultOptions(schema, formData, intl);
addTableTemplateOptions(schema, formData, intl, pos);
addLinkMoreOptions(schema, formData, intl);
return schema;
},
fullobjects: true,
cloneData: cloneBlock,
});
};