From efdf29aa67a0d48d828fd7446e7becb216f0f2d2 Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:21:32 -0400 Subject: [PATCH 01/26] Update AdvancedListingBlockTemplate.jsx Event details options --- src/AdvancedListingBlockTemplate.jsx | 93 +++++++++++++++++++++------- 1 file changed, 72 insertions(+), 21 deletions(-) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 21d316d..a1d2ea3 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -1,28 +1,32 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { ConditionalLink } from '@plone/volto/components'; -import { flattenToAppURL } from '@plone/volto/helpers'; +import {ConditionalLink} from '@plone/volto/components'; +import {flattenToAppURL} from '@plone/volto/helpers'; import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; -import { isInternalURL } from '@plone/volto/helpers/Url/Url'; -import { Grid, Image } from 'semantic-ui-react'; +import {isInternalURL} from '@plone/volto/helpers/Url/Url'; +import {Grid, Image} from 'semantic-ui-react'; import moment from 'moment'; -import { useIntl } from 'react-intl'; +import {useIntl} from 'react-intl'; + const AdvancedListingBlockTemplate = ({ - items, - moreLinkText, - moreLinkUrl, - header, - headerUrl, - headerTag, - isEditMode, - imageSide, - imageWidth, - howManyColumns, - effectiveDate, - titleTag, - showDescription, -}) => { + items, + moreLinkText, + moreLinkUrl, + header, + headerUrl, + headerTag, + isEditMode, + imageSide, + imageWidth, + howManyColumns, + effectiveDate, + titleTag, + showDescription, + eventDate, + eventLocation, + eventTime + }) => { let moreLink = null; let moreHref = moreLinkUrl?.[0]?.['@id'] || ''; if (isInternalURL(moreHref)) { @@ -46,7 +50,49 @@ const AdvancedListingBlockTemplate = ({ } else if (headerHref) { moreLink = {moreLinkText || headerHref}; } + const getEventDate = (item) => { + let start = '', + end = ''; + + if (item.start) { + const parsedDate = new Date(Date.parse(item.start)); + start = `${parsedDate.toLocaleString('default', { + month: 'short', + })} ${parsedDate.getDate()}, ${parsedDate.getFullYear()}`; + } + + if (item.end) { + const parsedDate = new Date(Date.parse(item.end)); + end = `${parsedDate.toLocaleString('default', { + month: 'short', + })} ${parsedDate.getDate()}, ${parsedDate.getFullYear()}`; + } + if (end == start) {return start} + else {return start + ' - ' + end;}; + }; + const getEventTime = (item) => { + let start = '', + end = ''; + if (item.start) { + const parsedDate = new Date(Date.parse(item.start)); + start = `${parsedDate.toLocaleString( + 'en-US', + {hour: 'numeric', minute: 'numeric', hour12: true}, + )}`; + } + + if (item.end) { + const parsedDate = new Date(Date.parse(item.end)); + end = ` - ${parsedDate.toLocaleString('en-US', { + hour: 'numeric', + minute: 'numeric', + hour12: true, + })}`; + } + + return start + end; + }; const hasImage = imageSide !== null; const oneColumnElement = ['up', 'down', null].includes(imageSide); const columnSize = oneColumnElement ? 1 : 2; @@ -54,8 +100,8 @@ const AdvancedListingBlockTemplate = ({ const contentGridWidth = oneColumnElement ? 12 : hasImage - ? 12 - imageWidth - : 12; + ? 12 - imageWidth + : 12; const intl = useIntl(); const TitleTag = titleTag ? titleTag : 'h3'; const HeaderTag = headerTag ? headerTag : 'h3'; @@ -99,10 +145,15 @@ const AdvancedListingBlockTemplate = ({ {item.title ? item.title : item.id} + {eventDate|eventTime &&

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

||null} + {eventLocation &&

{item.location}

} {effectiveDate &&

{moment(item.effective).format('L')}

} {showDescription && item.description && (

{item.description}

)} + {['right', 'down'].includes(imageSide) && ( From 90e9cf0aca3a164aa1265bde0920ad0ccf9b088e Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:22:11 -0400 Subject: [PATCH 02/26] Update advancedSchema.js Event Details option and reduced the number of dropdowns --- src/advancedSchema.js | 67 +++++++++++-------------------------------- 1 file changed, 17 insertions(+), 50 deletions(-) diff --git a/src/advancedSchema.js b/src/advancedSchema.js index 01bb8ec..e760d14 100644 --- a/src/advancedSchema.js +++ b/src/advancedSchema.js @@ -1,7 +1,7 @@ import messages from './messages'; export const advancedSchema = (props) => { - const { intl, schema, formData } = props; + const {intl, schema, formData} = props; const imageWidth = ['right', 'left'].includes(formData.imageSide) ? ['imageWidth'] : []; @@ -16,7 +16,7 @@ export const advancedSchema = (props) => { { id: 'default', title: 'Default', - fields: ['variation'], + fields: ['variation','headline','headlineTag'], }, { id: 'querystring', @@ -24,34 +24,9 @@ export const advancedSchema = (props) => { fields: ['querystring'], }, { - id: 'header', - title: intl.formatMessage(messages.headerConfiguration), - fields: ['header', 'headerUrl', 'headerTag'], - }, - { - id: 'columns', - title: intl.formatMessage(messages.columnsConfiguration), - fields: ['howManyColumns'], - }, - { - id: 'image', - title: intl.formatMessage(messages.imageConfiguration), - fields: ['imageSide', ...imageWidth], - }, - { - id: 'title', - title: intl.formatMessage(messages.titleConfiguration), - fields: ['titleTag'], - }, - { - id: 'description', - title: intl.formatMessage(messages.descriptionConfiguration), - fields: ['showDescription'], - }, - { - id: 'date', - title: intl.formatMessage(messages.dateConfiguration), - fields: ['effectiveDate'], + id: 'display', + title: intl.formatMessage(messages.itemDisplayOptions), + fields: ['howManyColumns', 'imageSide', 'imageWidth','titleTag', 'showDescription', 'effectiveDate','eventDate','eventTime','eventLocation'], }, { id: 'moreLink', @@ -61,22 +36,6 @@ export const advancedSchema = (props) => { ], properties: { ...schema.properties, - header: { - title: intl.formatMessage(messages.header), - description: intl.formatMessage(messages.headerDescription), - }, - headerUrl: { - title: intl.formatMessage(messages.headerUrl), - description: intl.formatMessage(messages.headerUrlDescription), - widget: 'object_browser', - mode: 'link', - allowExternals: true, - }, - headerTag: { - title: intl.formatMessage(messages.headerTag), - description: intl.formatMessage(messages.headerTagDescription), - choices: [['h1', 'H1'], ...headingChoices], - }, howManyColumns: { title: intl.formatMessage(messages.columnsCount), choices: [ @@ -99,7 +58,6 @@ export const advancedSchema = (props) => { }, imageSide: { title: intl.formatMessage(messages.imagePosition), - description: intl.formatMessage(messages.imagePositionDescription), choices: [ [null, 'No image'], ['up', 'up'], @@ -110,18 +68,27 @@ export const advancedSchema = (props) => { }, titleTag: { title: intl.formatMessage(messages.titleTag), - description: intl.formatMessage(messages.titleTagDescription), choices: headingChoices, }, showDescription: { title: intl.formatMessage(messages.descriptionTitle), - description: intl.formatMessage(messages.descriptionDescription), type: 'boolean', default: true, }, effectiveDate: { title: intl.formatMessage(messages.date), - description: intl.formatMessage(messages.dateDescription), + type: 'boolean', + }, + eventDate: { + title: intl.formatMessage(messages.eventDate), + type: 'boolean', + }, + eventTime: { + title: intl.formatMessage(messages.eventTime), + type: 'boolean', + }, + eventLocation: { + title: intl.formatMessage(messages.eventLocation), type: 'boolean', }, moreLinkText: { From 6a64e8ecfd3243f052d3fcf86eb97c27253e2565 Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:23:24 -0400 Subject: [PATCH 03/26] Update messages.js New entries for events fields and reduced complexity --- src/messages.js | 57 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/src/messages.js b/src/messages.js index 640122e..1132560 100644 --- a/src/messages.js +++ b/src/messages.js @@ -1,4 +1,5 @@ -import { defineMessages } from 'react-intl'; +import {defineMessages} from 'react-intl'; + const messages = defineMessages({ querystring: { id: 'Query', @@ -16,6 +17,10 @@ const messages = defineMessages({ id: 'Header description', defaultMessage: 'Block header text', }, + headerDescription: { + id: 'Header description', + defaultMessage: 'Block header text', + }, headerUrl: { id: 'Header url', defaultMessage: 'Header url or object', @@ -37,24 +42,24 @@ const messages = defineMessages({ defaultMessage: 'Columns', }, columnsCount: { - id: 'How many columns:', - defaultMessage: 'How many columns:', + id: 'Number of columns', + defaultMessage: 'Number of columns', }, imageConfiguration: { id: 'Image position/size', defaultMessage: 'Image position/size', }, imageWidth: { - id: 'Image width (x/12):', - defaultMessage: 'Image width (x/12):', + id: 'Image width', + defaultMessage: 'Image width', }, imageWidthDescription: { - id: 'Default image width will be 2/12', - defaultMessage: 'Default image width will be 2/12', + id: 'Left/Right image width (default 2/12)', + defaultMessage: 'Left/Right image width (default 2/12)', }, imagePosition: { - id: 'Image position:', - defaultMessage: 'Image position:', + id: 'Image position', + defaultMessage: 'Image position', }, imagePositionDescription: { id: 'Default with no image', @@ -65,8 +70,8 @@ const messages = defineMessages({ defaultMessage: 'Title', }, titleTag: { - id: 'Title text HTML tag', - defaultMessage: 'HTML tag', + id: 'titleTag', + defaultMessage: 'Title Level', }, titleTagDescription: { id: 'Default HTML tag will be H3', @@ -78,20 +83,12 @@ const messages = defineMessages({ }, descriptionTitle: { id: 'descriptionTitle', - defaultMessage: 'Show the description?', + defaultMessage: 'Description', }, descriptionDescription: { id: 'descriptionDescription', defaultMessage: 'If selected, the description will be shown', }, - dateConfiguration: { - id: 'effectiveDate', - defaultMessage: 'Effective date', - }, - date: { - id: 'effectiveDate', - defaultMessage: 'Effective date', - }, dateDescription: { id: 'Show effectiveDate', defaultMessage: 'Show effectiveDate', @@ -116,6 +113,26 @@ const messages = defineMessages({ id: 'moreLinkUrlDescription', defaultMessage: 'Paste an external link or a plone object', }, + itemDisplayOptions: { + id: 'itemDisplayOptions', + defaultMessage: 'Item Display Options', + }, + eventDate: { + id: 'eventDate', + defaultMessage: 'Show Event Date', + }, + eventTime: { + id: 'eventTime', + defaultMessage: 'Show Event Time', + }, + eventLocation: { + id: 'eventLocation', + defaultMessage: 'Show Event Location', + }, + date: { + id: 'date', + defaultMessage: 'Show Effective Date', + }, }); export default messages; From 415886867321ced01cc3adb538ed380cf8a21e0d Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:30:34 -0400 Subject: [PATCH 04/26] Update README.md events option added to readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c4f7b0d..c74fcba 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,15 @@ Volto addon to add an additional variation to the default listing block with adv This add-on adds a fully customizable variation to the default listing block. It adds the following features: +- Select the number of columns in which the content will be shown - Select to show the image of the item or not - Select the position of the image in the item card - Select the size of the card (to build mosaic-like listings) +- An option to select to show the description - An option to select to show the publication date -- Select the number of columns in which the content will be shown +- An option to select to show the event date +- An option to select to show the event time +- An option to select to show the event location Installation: From 9b12fd1389aba2d80b5a10a3eee6a55df65e9cad Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:36:22 -0400 Subject: [PATCH 05/26] Update CHANGELOG.md new features added --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e457f4..e962154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [0.10.1](unreleased) + +> 24 October 2022 + +- Optional Event Date (End dates shows if different from Start Date) +- Optional Event Time (Separator show if both date and time are selected) +- Optional Event Location +- Simplified Block side menu to reduce the number of collapsible accordions +- Simplified fields labels +- Move Heading information to the same location as default variants + + #### [0.10.0](https://github.com/codesyntax/volto-listingadvanced-variation/compare/0.9.0...0.10.0) - Develop [`#27`](https://github.com/codesyntax/volto-listingadvanced-variation/pull/27) From cf1437d2394140d752d69e9a9e961ea902c1e4a1 Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:37:16 -0400 Subject: [PATCH 06/26] Update CHANGELOG.md --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e962154..f9b6715 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,8 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [0.10.1](unreleased) +#### [0.10.1] > 24 October 2022 From 61f3e6b816175cbfd5b62ecc140ea2d683b7e6cd Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:39:20 -0400 Subject: [PATCH 07/26] Add files via upload screenshot of simplified item options --- Screenshot 2022-10-24 at 12.28.49 PM.png | Bin 0 -> 54793 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshot 2022-10-24 at 12.28.49 PM.png diff --git a/Screenshot 2022-10-24 at 12.28.49 PM.png b/Screenshot 2022-10-24 at 12.28.49 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..da89cb315b7365a9e70f23bb0021b2bdff823a8e GIT binary patch literal 54793 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

mx7VeUoL&kSL^B9yi(VvLV6TD zINt!->pQDEuU=ESijc_Lskn5yh@` zI1Cj4>1x$ZY$|7KTev!yHWsaOIKP|mEaKZ6s4cmF-d?<`?j@WgGWzau^zKa{XCuC9 zNatPqW?+-YUa|G0QL~Raw_~+)+bcY$%l&i#`+SXJOXh&r!`w(JJpR@pJWt%Nq6m*c zjGiuNp8pesV}qH#EAxFPK>GmPR|1u6j8{uH^i|qJdpNaowL>qqt8Z#KBJOk4xXdSm z5l_UdwzanA3Sv&2MZGrRR8ZPHX{_k{18(&Lo!7n!E`u;-CIepQ-!6_REZucNr~>L zrv+l?UmYhmoL);=nEtul(tOX_xYS_1OoSRsM2dh4KV4ZH?&Av#m2PB&feSwb%2@uNAi zBLtZ1LK{f@^2C0e`(P^}D7w~b|2GXL8UMKCy6biHqtFd%Y>~s@#DGilKJdbnSrY$` zk9GD8Ko_a;)y>MYrAy9cC0`lB78DuO6%%l3{fLGLx(ZJqQmq64{sA}hKRNMS>AFXhwvRU@2j%|fI=zh z__+Zh8Ugp0EXw_U@3U>~w6k6+Ymq>Wab{J(ivQ%7PvQLBd#i2wdy06UXKjp#(2i61@-qYLE$#zcN>$|L~-1?QxiA2{`MMj?8*=K1EY#W86; zEk3N(Ys2Mp->iNKEd0<7LrTk5^J7xYNThlGwN4_0j#3C$SJ2XfoB0B~@=Ykdx=^f4 zb~W7Sip1OOFjp4&?RZJ-_cHRN|HZ!chIcf7Wj*SsUbRP2^Jr}m`;!kihZ3!u(zQyT z9?OeeUs?ds;Dn@GyV~(44E3gmVZ9Rva`XqdLI2ZTmM_m^_*ag>8Ex-F$Pua8EYmL0 zuE}3S?uP3=TqkqZb7o^3eWE1WZrCy7+>*zYwD#5M&hO;UoP3K-MjS{4lo(b&}ytdxzZD(>$_6c#mamj>^P&aqf<7ny3lpv z_}8~Qqf)66v-|C}chMuGMkIb0y2K?qO(yGeA(xGska+y#6z(Z?|br7z$z>|z-hJ- zmxFYcO>Obp#jg623%;mfg-Pwx>t(=Q9ZTHbRyEO^$qauMP&ElW(?%`QRy@?nVesCc z?PoZnlIrOCC~Jdgwa+U2zJanaW3jbb0lW;iW+l~8(Q?86q9yX=GI98NFycK~lHp+S zsw)-7Vt&XsWyM}>@x-4!hTW_ydjr~(0f&;^*yKn2I-M>LS-apZ;aneOxVLmL4C4Fq zs%*F4^E@6jy)m$ZWyP*<5~2kW`i*XqOdsFwtFhxSzaNj_BIgWG!LYvsxEGG?b|3`) z3rkL_W~)Ck8mZe4UZP-oy$xLq^n2wmDX(dtQ*vMsE58Kfa>zU6R~su4*rc4Xlo9C6 zR{g1MbcWuls8YTWk&y!eVaNmD_Wq@9T%6q3p7L!VN*1>?+YLL0*eM8!P<||gs{rAF~{+qw%eQzAE z0@`5+Uw^=(upc59^dNw|LxCqR!FCnb6te#v`Ydnu@4m7-3$a_4&1=QQ_mAckd|X` zOk)W2eTflc{h9tG;VOcRp3&a4S2ptX2ee5CZHvV-kP@o~GPpoPAkfN7%H9R!H``B> zpgD|&472vLA0uBTsZYquiA#hTve)?Vc~!VK1CGa8>|=dj?OwXFcsQ#WAiszu^sN5C zw@4|J+knyC>T)0O$g=SVcjf*3&B0Eu5Ab<%^nk^wFl&rE3hRvYbWX8~k!KaF+2ph8 zr}sTsb$tiVXQ+XQ*axD+iNPfG9vCj9J3QKV(KhB2-@I^K1gOcKu?{)9{A3G8>lBHT zM67ouTzh4IrI}&C9Y^w@lv;(1yxn{xhQj91C=|;i^vGMIUg^<_WfJ5^*Q@He65}y(`W+6A{>Ab%C?n0KxZA7fr@7kwq zk&lh^geL*1=6O#v1)J#mM6tE1WkL!ON6#W9{CMtr!xiP5VT?*~2-3C$|q?C`i3aOI|WV8QOd)B?*=xJ&ERt0_pNbPsM3< zr+i7cz7UD-UP{eLVS;ZZwpKAuGtf>;WQkfb8p>m;2vIokZ);1x3ACu*6!E-6;!LuR zKxYsOouYDR^*!u23D*v~C z<798LXGBW2lwGnyMiH425~7g3XGUiBNQi7ID|?d>Sq*z;Z!&+^efmD%=lSFJ->1)U z?tSj}b-mUl*ZzHEIP-IN!e_s`nKw@k`>FI56@xWht%eJta>7Le4+!+-62mJ}xbNlU zB?^>OTG4(CmZv4!(f7av`Flmdno<)^aSxOs2O$hdl`8uk2`8TUB7#J5V>iEW3YETIR#&4rOlGsYO^ zDgCx6C3jN9*yxhWteJw;%dCv$9(F*f_wgH687nz!_WugtB88@%1Q-k2Mac=#tY#Xy zx2PX=tp(9vVRTcR1}MNxa_~8{I;al;R@x%e&`P9C{DU1oZiN`*DWsNSRmZ0dP3nI~ zI@o4bi~J7^R9FPthsD2Y=tdnY0i!ND=N;)Jj`@ylqs%LfBM4ya0F|5c?A08J>m4X2a5_(QP?ScH=hCOWD zbKIK;jbydR!Pa?i)u0Wmo_7JQ>0^j&MU#Y;a9P{sg7?uJcmzHWYC&#ohtH2n7t!0~ z@`2V%v%g*G6*+S0z}o?A_5yLoG#YWShT{EIILSJ?HpW0q6&UnUTIlOq3A8sQ4cj=f z6HI9?sQCZ;EqwrpW-hcGAv>6CM^!S{vIrYKew@V;8!ZR7+U_!@0?$1nxxhctMZWw- z+*QD=DS`$ckoj|o6Ic=m-=O|rSX=F|_WMSaR{Acm{UuS}ne+X8`jzVQJ;@8@t_Z6LE@wL7 zC+eS$Cfv8f38cMFYY5f{Kg57aQ2~^v?1$O~nE(bwAL7Sf4M1Rft5+b#T zqvk~%^54~@wfeM+^mU~U7uk0UM5ZBjB@2`wnxCF%SPte!g)!b3a1gk8BQqsaAtG*X z^;iCJLEq9g6tNxNnArDqHRM}9SBD$AZ_1r_1ak3mZ72=jl7b7mXF`$NbsO`2$uv712`ZpC1n(q`6Svw0!=)=OJN*jT#*MyZ#*J7mf9K+dK=Ub! z_|tz>+2^<)Z?Ti+m zp?x=9sxWp5R%SC$d>+kMTmDfcgGg0ezEHs?I2T1?rSs&M7Rhnqw^>NVTIR> zWv1;Uj)i9p=lv=$u9o~{Lr^j7%g43)ON?uYATvsmu5`XdR4>8fado)& zR?r{zw1CA-616v%--r!8yTsHBZ*#y{?=+AXF&N-qQmzy?zSvw*gur}vqMBAS&T~)| zJc6fLNmr(zUahlhu%iKudm9}R-O*R8ruaI7? z%7XtJ0S)PvzaweAm>An7r%P@`-6n_Z?rXyp!J}OPpWc2GAo13fp~ZkAz0}zK9kflQ zl3i#|S)?)6>#cr0l-r42Ew%WRJ{5++!KjH z7I{BJW4P3=ovgBW9%LlZ`BxBh7x>gObye4IYT3A-t2=^zB=5r;+EAICXmO`!B8p*$ zH&^o1+`qOsbCBhtc)hO4J}VfdG~ES+56eK4_H-c^&y>y=pq$RAi=&&n0i+Be*WigZ zgwCrywil@0_5@t1r- zp8DaX4XWn?)YveMDC}}p#sXS%R8D9Zqt6HNc9!j5X{E2-3s%)!&afUh`w?UkzL1~% zdb|H9Z@RnP4Q1RZ+v&CU!vYZ_ib$Sk@tQiqfy|C13?3Jqos#j4Ny_|LjWysFuZ|_a?Z$Q4 zWejzHCkYi{$nGr?h&Yq#L^ps)NC4BJvEzu&*!5Bgish>h%+?=YjHq}@($@AfrREPe zrn}R|Ppje&q>Uw~>HvRBs7Ck2$oPUgq9)B{hL`8&tMO24$EoX`1~U(7F1tRsP*Wa` zQ77oRKjt)aD5--l3|h+a>>htbRw_8B(ah$+)^$EyvtD`2yt6ZegI0C zEZHCuUlI3>^8)cNONg&h-oe0hCpve^H)G;&9XNcX3yAhPD;f>>{kto$vQl|`f3G@Z%u=9uXMmDcz{LOI zv!4b^B~J|CMKm^Mf|zFGk#Y*3Ck8EF<07+bnV*E{GwsmeM_LLi=|3ToN(A>80p4=9 z@kde~lfYVIx4ji^cwLps3-k$K1n*9n{xYI=xzG#L_Szt5(#s6||Z}W!{bqKB7x9M&7 zg1fJXTQiQmu9fe}R;zb=->Y?X{LDXcrMTw8&#PJc0j&f{i{2Z%TwTFKB8cEq%iLNZ z*anwvk?5Mu&n)e#!7myg7!YwO60Z@N#iFwMn@ZtHZ zd-LtzO=slu416s zbtB<*&?@SYOD49rW@{kF!$}Gs&6iqrho0^cv{ZxNPfPrt0ZBZRIl8SyD8>|=9}N*t zb-Ly&QUN`;9XvLOx`M>eEU0Rz4aKJXEp*jtM4|X%Bz!zb1dLSAmc!HVutE*fXXwub z>DPN2FpZr&A5$CNrSGfsY{<+(s;wav&2+u(cGVF{i&B?hYU@2>Y3VkGk{_biI6r9R z#~E{D{4)n9$wXH_@84%BX7yvK=Q_m~=Ab z!yiN4c-d{0bIVLOfd*N%I6k}!GGZh&c+^0_pk+)t3~PTEET$Jlo(`%PVow|c+V*C; z#hVA^SCL?XKT#>(NJQJc*r>upG=HH75YfDdJdeJFw# zT0yA@;^x7$ieZa?M)Gk^@6x;N?)>LiuK#9$mE(2k_(mu0xpQ)Q3leP|ZNx?^d<=T0 zl}->Agik_pt^NFTNFTZ|hA^l0ORit8wCx~|hc{}CLUEu`=NcAr0+HTM_zilu=vbNPzD%`&pF(K-TM-AvPpcd%MJFtr4~ZObS48m-1+51*A051$B6S>(DI2k$P`)sLYRnJolRd7RQeo9x(t_}y!m$1hBcvNR=DX-)3`sk~LH>ia0rrRMjQu}5nD6KM)5gBQ8^pOzz42nz-mGVO zj`1B=y~*-qG^(Dcjmg@WP@C33tmQDqot-= zHDG>7+JqmASzHF#>I7fRD!vK}6JCd)JGhR=J~9x}82xgF{DC642qU45=vwU0ya>ha zRudr~qNkh#Nk$Z?%D+N;kqyi(1r-$s$nIh!-S#@($%S%g<=xK{lBo%!69P^`73|jR z1E7I?BL_9x5cms22WnjGZ@3?nNNl!HYQB}hytzOIB<620;NaZtc-iMm_o@I@yAN8AcjKN%HgAeE)Q22FJ^AiJ znBYw!v!W)lKJ}%`L|)_0GsNfX>=*8yr`dtUvOBBeNXJdn2XQ4lH4wDcswh4KUdg z{+4~{@DPl*F~G~*ffxPII{e?uUF9~v9PXpzUK%!0{1H-0`(fd))DaKKSXZie1=1|N zb^i>nEUi@f+7ExkLAZ6}#U*%4NuD=`2r1?li9a>&P?u`kK^}PE^2B4|^P9%Q};7_gHv6 zKLnCna7%;{(F-e*Fo|&>{L&IpL8_m~)k{vt@a*JFv)SbTYEQcM@2&m{HThwKFm!zA zB6h;18ZD`VN$l(u0YCG_ZyAU!1#R=DVxkdp@q{%R>A06rWX1PCXrfKkG11^?P)C~L zx#~t92GdCGao6Rme4l^Gi#1nvb#C+IGx+jUVH* zIvC3Y#W0nbN@iF!sIjTcPh^N%i_8aUu}k+QY3@DTmwPNzfPyakU0CDhrRG{{D~V;* znL?f}=c5p?o~MW;EO3z7VvWSFzdjU|+rGqTaIxI2==sUtp9ic%i65UytQvfL+&O*i z75r3{0tn8>I=;r#C2BH>Lzav|)+;!A1{dFd(x2HBdx=Fm+g3p=-%jUt`|B8@!&+yD z_OZ*C>Ex4k z){y$(R6q3u3V!?JbS0k$(Ref8Pyf@bJaFOCmC{ipj+2a2Xh=B#yd=-;{7zU3#}yq6 zv#`cx2ztmDh=IsxMF1WKM|utnF=to~8Sr$b5-Ma( zxD!5dKj4JiMlzl#4KRU!7Cu+^*?aQJBA_PuqGcds{%~%K-}^2bkkmgz6r68eb+LM= zKCM0v2OpYWHgbn~s&bu5Nt;^oExaiornzq^?b_dAM?Jg&H4<+dP0K)`p6KWI>VU20 zU1-{QLFsk+H)m&QNLf|4b>KV#&(wJwd{|nPF|-O2*Me)Z{!7_(BpQ!i$2~m)-oE2b_{F7Jp6FOy5w%dP$iJ2C`oq0v#c56iT0@I_jgI3G)aqTs{oPm^z4D zg@xc+e63yhS1SrT5U*}+jOcmnRmSV|cQF%;civ&%&3vb3ePz4qIzFPDuwkt2_W!cZ z{yU&?|Jiw>l^2~)u8^m--)_+ATy}nW#VzOIRxTf>00)CyL|5Cz%~zBU=xbO+F?kq> zS&radzmsd*>QC@Zq|KOCBl_Ing%cw6-seH#ie%~1O|m#i&%1GtGZtlKWwRka0%C64 zX@6l|(Q9(tfI_;BHb``Z{ad+>UZeL4L_K~m|89&!(nP^NdfOb<5#MXVQbl)EDBL+^ z@E@;^TpxDXQr`=v?C|~brt?<6>79!&Y_5g(nWj^~MkcqXO z<@I-t<})T<99x4qOG$O1Z-fbd>)rKTf{Ql03npuO0L=}?imz~o3PT1)essemi_~!A zyT@&>HJ^@)JR@SbrZPurBp}t>7<6s)p}MlZ3(`SINgrpOKBYg;&6qB|BSa6f+ysvTI%*YIhF-D3q<8O+?-@_#M?G#Mc{-u+v_ z92}!E@1Xu)mfwG%LwGK(lKS9DDMY+38HYE&P+-(?duV)Oswdsz(=Z*xnhMKWZZ^qe z9wM0_Q0rjvGq2eiw4B~{yXv?!sF9qnGXP2TDAY3@;}zV?afyd2 zSPJ!4HfGQ?`@T zGJ;kk_uAR8ki*6!;`cgFv%_6R)PJ^lrx~}Ah+!UhmResm|D$uxeomm4^e-{9giZYlz!^%dNIp`6?(#+hnNvK@(1ZkHCNbSX&^0fOV@mzP~0Q$0u%pbiv8SDu(C zMgiJo3=$r6dxhfh;rP7x$fF+Ih{wLd#%C_2Ch#OHsbZMMD=lTJJ;mro3xA`rp%;jj zz4GxjeA)?NmmX!$Jhju{)_=p#J%0|XHoAZX-EUf8z1GEIyCI6Tj3$W2IlLQnpo>sS zKsd8VZ)|{K#NU$Zp#F6;K94`%sI0*FkB40h_K`AviwC`>Q5k4V7+3}Ik-xMPguaKX zg5)cjwqiys+p^y7XkrM;{Ak{%FTv|B&A;_aa2~AgIc7$sjzMbMrsf=z#i*xm_-4Mp zv)2$xpEfs#qvx1(L-Iq@ZrG!_wsh$I_PL*#qqkgl5e$WOb3MP2OU0@Lkzr~SE8S=l zn!Bv`_bVRFiB;%sFq-16Tzb|);tk}aozsE5+ouyk(|n4W(3L5Lq$i@!cONm}r3=`j zc_I$5vj6Xw;t|a*uhDz-byB*Ek?hCyMB`&gGI>8iDz}XCL01RGncm(O;gG;9#T9Wgy1|f;2Vc;rYC1kpBtj959$g0j~cLg1|Ei zPLSLt&buj>7OCXJXxZS09fhPe1(7hp>L}D7op24JE^U6^mkdG&Kes$H)>LUZ@*Vd=LH>PJh;y8KsZTvvZxvq9_*piSEHd4{?LoD3C^WU z5G)ggP-1|pXo(}~f_feH_8H)}L^GjZq}bj2 zWt%@5cuQ;K^V6Y_5dJQdKx`F(tc2``eEwsXnQ+nj2THp>f*WVzl^WE2hCaDV9 z246&e35ae#Sjp-pKR-R$H`--PGpcxI@aa<+NkiBOV!2y^#DE_De`vonnO!WroFkD4 z7;Uj4SgSr1xTTEbYGC7Dgm9<=F=h~kA>O`TphQww}hnaYI?@;GZR2+B6lz?zlxX5^; z+RH0IvUhcLY<1iw;mc8og{`@(Yu=X$!@T@_Hzyczkkt+`S~vcH+n(A#s6fZy#*5iV z1s0F{YxQTI9;;w+|Hxxh_uKs6yGlZ>f#`OIO>vlZXs`HsjkDZ&Zq3_BkHlZ6jYQ$( zJn;`tW%r+ngHpDNFICQn=Wb=|eDjD)QlkI(E!xiR>nYZwO#U>tWYLg=;uX|D&j=M{ zKWij{!dJIoAsoe%Tb&I>j_VBo*|_Nb=BOmT8=)2E_wzPZZ+zGY1?SEXH097Zz8cKc zkX`?mdzf_|EA3&JDz`9CuZe{!Fsj*LZS*w|ghy`VoPI?wEU<W*QTx&MIpx;o0==Ne_mf>$fo5-X^FKBa_$5^+vru*D@HzKG&Ed* zeJg*XZuuR-B>w*S%a&;YZ&skM_bn1EI;%KlUO@}2l)js zq4`d)HAv){zgQd3mUe`+YI`ZE#Cu5@a^1yn2b%Du3lJcbeJ$b~WSCg|Yy4aMd(Zl$ zvgPacV~Gc5{fuG?xwlx0A8;7ZAGS;yK5sowUyek;1zK-#|FSBolK;s5Y`va=OF&YE zGz~)v0~fn*>`tSQY3~NbhUgx*$X2e_%!_l6=UI-Th4=WkI{a!3$^47Hn=Nv3R~}pt zao#&{MXkIl)-Fu)Ec6|ViW&S^Lqm`0-@c)XV;x_pnH{2%E@dG7iZO|Lp3`T8tOSSo zCsx1<->a?khi!AcF?6IUW1SZ1pXHhVRIZ=9xyWg-QjLGk9Mq=>40K2^cVnJ76{9?7 zdYQ9i5n{=Vf{MJ=BE50(b+Ab@U&o8=847Pv8wCpOlut>>$29;Hv}=zyy7e$uJ)?tK zew8DV2y?loIVOmsTqZe;exba+w4K=b&~R%uwJRxx=zOM=Xv#tqyB)wQCx>|3Co%(2 zkaV2C-NQkK!mNl=s2P_wXYmj5)-5Ov^4Two>WdUO^pjd~q8j$*6i$ z*B>(14NUhAPFV@?Z~J-IM>)kO4oW)J&GtT;Wix!$iJNDeL^x*rsL>PSvbtXawHwv} z^9A=yJ?=ue_Y#@JUoMW^EY>M)QUXWA?Iesa7Zbwb;g1T;DLMCRtS4=f2L_86wndr` zMR38}{B2CIocy#MiK?$}9XO*bzQ$6ADui4yUs8psqd(kHTpPoBww-|eR4sFED*P)twcRHj4_(Ng^W_IqBUu}7nzfA=VF|h{WYPOc>EBGG z>Wh)@Z;7f&Z2F%@I$uiHmdnM(ZaFGXj*q_C_Yl zUVG!_win=1ulN1f_MD71V|)%)b=;FVsCNqv&hGNmb$4GqXj8(gaav>sPpSP8qKE)K zJ-?l_m?eF(#c4_%z2-}j2U{-UOfVuY_IA6zbZH|mA!;LyjS(X+?ggOnEq`Xm8|E3_ zkkYjEB0~kT7@mSEbl1sb)B9`$&s2lV*S4r-y{EeVKA~GJ`Fin#;9hDv1FYU4umS!FOuVo6V$!O5HxKgLVzH^RtLui*r!+a+8Z|g*bj=5AVBVN z;{%d?=-IbtaOEaTf2Fg2>Qd*F8uVkqXx}fLRA^s~@c$+8@5(*oB)ca|%E#1peu|p* zne+OnX}Ivpx6zLl5uX0zo|_2_pH6H>W<9xvPr}Y_)GfRRHZduzSl*jA_^;1%$t`qb zY!)t-fI(R6e&fu@TQaG}{Wqqf#GXZ@rLHZ50Am)0Ma}ck(z2dP-!btz8$)kOnB!_{DA zy4rbix8TI?%}M_{DkK3d&;OGm(@pFF#Rru@T@!U^_TI0HQPwE{#xrS>HyNgahI}2@Hn-ymmN_804fN%cp|#rt?i0 zDO1!gW$IwU;|*u%sCg*wbabc7I2_AN$X(Brn=arS2+d+0dt3 z7#WMgyXWzgeCBMwaLNVk!;>N?=#${KGv&+Dm1EYd#kq@AUosC_BcBm@JoN4nLr{I0 zPx!13va&2TOFZbn_;-q|pnnnG(U|Rdhkn*LQH%ZUC~-oBm-JaAf144(Y!!!&C=y_k zk!7J=;XzlP?_^o$Clpvx&CAehWJe{+40>IpNgY+B&I6lU>euxa@qCrfMxmWD%Zlb-~m7zha(wI&HxQjfuBW=r5~os z&eZx8ea?6A`Q_6!Um(HD-lzdG%(ZGI+0@p&f1lxf`83Zc$Ms8^=rCdD z1erko9k zZ5f1oi}L+3t8&~~+)LL05mgbN3GKqTzWU=k8$wU%ROQ_zwI_f3UjU_5)EV)S=5Wy& zdu)4xXgFC1S)eCOx6-UK2@oE*SYZAXKSj*rVVhdgg$E**m%w&%r?6UhS3=@1#H}h- zg?9PhUxzwaapv$rSAs29S0d5%>w%~%#O8ND2730aFPklP^p~0JCUKOC+a8yl)oyys zaz4ZQbuoy^=FnY%llD^*Q!>s+@A%#l&_Gq0#-6qr|LUrqV{%Sn@5iC`CqH#3 z*2|PXn~0iZrqC`vGT2)9dPVo+<0u=>zNOFgglW$S#~1A9`C_r3WIgiej1~!1 zIeqS0<6xL&18?BxcFu-<^@s0MuC=Sr0*E2FmHb@ulij1LlEHIJJ~jPkk~gdC3;v$e zi%PB4-k9`o+5B8LaI{-7n=N|O8QgFBIOi`Zt`C>P&ZvMS>3msQy%&n}soXj4YKzOwWAS!2Y7SYsjadq*r@ zUF%-f!SQjU0cUQ!rS2J7rjfG2_!POTr`7KhZeqS}9GJTz!n1oQj@{$7pi*P~L@jY3 zTV$0+C^$TkU#ZPgw6k-&kxO<~newOZqb`sA=7>4McvJh=osKh(BZ0yPH$q&db+Hbf zZzP;<1oH*lYZ0kGWBXBN{)W0I`I0^nm5$0``*CzgeSzND1Ov;y``N+l`{BZ@hi^j7 z&U~)_Jq@zl8mhFNn>t#L%AvG zK1b@Wi3@Y5si}KzXY4|m`rIPTfln- z&+^-LJ&o7rDJ-hGGfdAeJ?zZQ@6WgIp^%jLXMX30z1C3j$pnr2^~nG(=I8gnOdQ;u zuIJ*vEt+&jv=PQ1KKAG|MkV=%9&^n)Z;y`w!-S`_+}^76TWsZQg1L(@4eP~pi&CT4 z1w3<%jpz*)Jk6r+fPu}pmu*Yw?8S7okutlt#LR_@lg^&>NslZ4+J0J(NzaukY3tMb zVr#DF3e&S^R!h`5yA5xnhKTG&Dk|^fJrF-46yZM&&My-B{(Mn3`C)~1#-qX<<~8mc zFCND?E4-%VdzP{?`dRre6`%HfV4ZGk&qm>{$!R&Xw;m|Pd@cl9JC5)URXmC4ST4>@ zq2nWqp6cDLlZfvy7ja*_(*xI&l_pt)Y=;!}MN~eV$<|?F;S;Ht#u;BdU48~?hjK}y z_UFYzqMuQ;#VxeW_cr4Tf0bM5k9%EjDZ27Y>N>u~i1oBMPGj9dlIYX7ZNgRi?YROo z*-xUH2C{BS<|JJiDR@I??-`f2?_fU={q#%EC#!vC;!Yj*h#kRfWy^z3`a_SSv+%wz zO|g3}j812}@sQ@$|K~eGB={IrxfTjte=NYpa_sf1+9pU}|JCxtXP%b3jO7C{fu4=; zS_OA=5(nB;*z>hNScmm_j*(+v|5^)No(;4rj!F-E?seR_)^!?^6mLa4-x=h#m^}DW z@rAAX?5{f09Qu0uo_AwPl+`z0POrR_@VA#@5V%7>SbK{eOf&L3;*>`xt0P02rN8CM z@fx+u^OJ<5t3N-@#gx6Y_@z@ip}Hc{g4u=NxOSy^W14?A5I2OTmxfP|*J-R@V=J*$ zAa=j=+f+0JnhBNYbD4$3hup+CHZX>cHpnbcxJ4YAj=!4hhRlNs@RugSM+ zyW^RXYcVNM1vIrPJC+K5`5Qs5((E&~dt`Hc&pe8J zUHYnUA7rt&c|~nD6c$`tE!}iUo|h`G$xA%aY?j;j9hz>$W9SM&IgZ4zNHWI>yI}@h z%21y5neP@2tQ($-?=;iOS2VxZ*#sfgs+{u#wwI`sR>JEyMlL>Glsa7@q}v-3)odrC z+Iali_rUzs^g=#)&_ay(176FCHTh06>c78zcLE;_Yp5|SpA+HzGDv$CzQ)6rDrz$- zBWbYM>W$N^{-c}Yvi^PTuTRWtl$@Kbdc2;tIG*tb)-JEEW+!YiK027%G;mV2&*>&k zzP8Ld^!XlcYDi}4Zc%PFb7jw`C!Lzy&W4zlPt6q)N+*Y^nhV9U&z2_=LwZ6N8qNM} zeGL6({OVfsm4K)K*1P)OchdDviQX}<9j|Sx)0&zG-W<64ge8m)XSU@~aByG0WS!JW zvdQJOBi@dxq>!^N=6)HC;S;_XNlzh9-_6B7RkC@k`bxh|nx`>ZZA59DWE0gcS$TL` z$JGv1KaNf(UQ;h`HVF}FQ@G8fCyQ6mV>|c3>)_$jk=!(yi%pE#5PKMDSfCi?Y{|d& ztSVQ<^4|WW(~HXV)~a8jzCL~xgtF^#x6bu_w{({J_ytRzWeT%`wfCvn*I^q?R--!9 zGHy2Sr4Jv;XJwrUr#?IwcO8+MXMChWz(Cq}RfMcD>OWA zcuxB_U`x(DWNhb+nq8XWZT4U$nAr}cj+ziX{^O}{A(0*Z=d1dJePf;Uv{sA$vFUKI z=9T5Jn+mi9R;t&^Nm6N_6c>10lSMxweK!P}6 z<0N^!{=@2QkE@jyhiSY@FXUW*d`8`ZuZx$l2MW7TuOu#-zR@_OWS*&F%(`a(499_J zu-Z#X#;fXUbNBM{^NG%RP#3VvygfJKflHDglH`B)wH|5TcWNJh?N;pFprCL$jW4U@ z-#egCqLZx`FGi045q2AwwaT)3 zdG98aKg55}C+pF7F7u=2-xo_f#@Lw0&fUV3a=6j6KVK*E412xrOJbK?TchvmkYzE~ z4(>Y&VjVM^I_v+!LKKZXKbn73i|I7PY93K`C&?!st*z>FwLmw(iU1)3O&u%d55J8AumG=;MD~ zUM%&0_2*^fhr+v20*h}+__arU>7LZr9X-mIRxUvA^KlQS94nrT-#710%g_6!y+YL_ z6KEjcaj%KzeYK>!Q{wgd-~P56Llhgch4(+`D@n^}m)^ROoTadcEq&%{9HbsCDgK-!jbhH(5w>{d#tk2V2~{eh zv_(SeBE4%7mVOxH*bB7Hi{dt6mMNR}3F#wPxo@~%IK@rw?P31=9LwlV zKx?D=xi37%iY4}37kz90j?Vc-d~2p`t1~^eU=(!E;?*}H%#24dv)AZYhuaelkTQvV zQKPqM62YmgGGAWe3yr_=>&mLox2W9-1O97Qe=ETIu8`r7th$N!g7u>vBO|+gGZV9* z!!$zqh3DIi*NJXLQ4|z6C^hk1$o4gmIFK3kFc4o3yPEBKkg|{GEa))P7E8e%u|VF` z0Ek>ye`Y)CsJS%%TpOi4^F1SLu7ZS+GZpSawHJLEo~QETQbHXoyiE$LQzwlbrbesp zE`ANi)#);S{+jmN@yL~wLBO`o>X%beIu87>8WoCN5`YY$ax z3>CiBz$gX9wpvz}r@vk^N?zXXe&;cRvpYzKx9c*$f6d3iYOy(h>HF53{E@&}SsI#;1e~&r*b!{%F2=;PPd(Fp0trkKbYD z?Ib!MBug4AtUsq-$}AM!eq&;~?%+rAqitFPG??^ zn$bz;Fd9*i!1}GgLW+wff>=E$@GMz8D#?${>J0yl)}srTd9htt zFSg01Hs+x};(+TwiJv!!o`J&*2t|0im_OPI=3__sHsinFih#4-*9j^SL&Fevv5ut< z?FO>YX+9gQnC_|qlCGpLiSp5)2m~Ch|My!QG7(bI4j+<{Jxj=V2aaQ>HeCL9+W6nTDMa%+ zqPag@fIHmYQtF&T12a?zFhixggchNblD}10&*(MQLLcF8RAsH;@7o{HkcNaJJYu-w z0qBA7K6VsvvA9&1(BTrK@Q;1toRT~LxmanUJEQdf6mb-aH!#&04l66Ke*nl)V&|Le zt8zOK#v@5>5M1l|&ZWlPv?G!Y@_||S9z;2^`v@yfHheXmJ17u&HO#Uf$t9`W?ZxOm z+2EsDZvDf%7zrmv#;E|?I6xz2(iwdbF-6gVzWzI(xYJrJpV#nk*#Be!)E(R!E>Nlw zO6|tH3&yCdx#r2XTkk=DQF>XNdUcl%bQdv*!Rjvz5#R!~6QadDw3rgX&q|O1Cc?}q z<^eXn8!e34N!#H8Kw$%kUIcb8gU_26vSsWIvhSSdzMmV3sE6u~x0F|LX#(vdONGTwUR8IkKM(Cp#eUkefU@mc-AI?^$xdFq@ zj|9?UWJ2&8f@xAWt+7mP!zI=NOcveLez2-a9f{I}DD#~~tG zOaTE^uOkRi&&gMUcZ)vBr+*QGuU~-MZ68V8S;EA@g3xKr9x!@o_3R@$Qvj~9%~S=6 z=SXS!We_6P@C+itxdFJZmGUdmgvrmd0AIe&nF0CEcfn1@$Do`+kZCLWB|rW_;9RFA zV+{F>N3mZSIJumi>}SKw5?|f(INKn3{nKp?N=F}NQ+oWYVDI`;wGUAWQ{i9FM<#l$ zC=ZM_cd)}r+%#dXRwBW=3c);3+GHaVTWl)EIKgKZ2UE{GK!JPFsLuVxQ~*sL7bHfQ z=P)Btio<_Ht`tQAucid3zVM(wnU<;0byZOLI2Iaw8Ft~!Ond7ES`983nDYPyNbrE^ zbqi~{H&=f#rF;JxW!I<7)B*#3w*_2bzVNsn}@{s{s=2u8@y$TcH zzhNE#?-2zofI*ZnsFgA^A00`munL&2%dy)En3r<>nF^-Epx$GJN!u@yK0#otWRSu* z@RD4TA1J$t5La6aq!dnchLBNG2a`uPvU*z)UB>84H8x!{%|K+g^S&q|kQxOYZS6AHClE({4_Oi;m|8GXDwg8v#-Bo!Cnm zf640_pGAX~c*)!QcFQ(7)~#--T4hjoO@F5Rm+*^D-(kEB7RL3fK=W;JLk8n{*O1u}=0khP3yxU@K*WJ7Ms5?#6N zgyBZh+YPuON{NDI4pGC>^|fuiq|S?E1-OVbBK%s|euiw&j-Os|D?93Yg{{$1LJ{R# z!(s0qm6C#=o(|nXNM$&vPr#Aumy8CFO5Bnjl}?YEgQR$592Rltk8iZpX7EB}2bobv z$CJ@LehTjlweCng(+G*-?`lf@h9Vo~SM4Id$7U$t;pm+&4aFgR$3G4N=Ze*Sb}6M$ z(h1h#P#TlP(ExjR=@7hJtAu*Ig~nelNgbSH8WqFy83_p(10v>^HQiRQE;-IEq9$Ot-h}ei>CE@0<_o3a zGCQ-%3O>qgR%1OQw28S-fSpdyo}TrBbWEb%xvlPd+j6+L`)z`GWuxb&{tqWFUdW1} zZ(PAN^msbG6g)EXX3#h$NzC<+uDdaTcvi`B2h+P-i}Ph)dB69`v8Dv;hn}v6J}(2RcwZ$=DXcO=@PnZW5hhY?)<{v8LeF!xQ-e4Y`__}>=36je;5c0cFt6<=@4S}V7&na8<)aAgE%V_*;|El60s;%w00*87IUtD)Q=+aQHC0B zY6mBJ(bt4s$GmI)XRmC-w`1|3UzgEF@7k9QN(I_G-Dt~|Wh_R;gZKTfO+TY|MuoMr zD4Wq*gFX%%*_I9sQy3 zuw?<-_Thi)AH$S^Vfyd8p};WZv>KYGqBpCEMKp%O5BY&EItnRd7CDu9uAGhdRO(Qt zuYKiBkv6*j>$=sCkleWTCPmgliYE@bL%G@~jN3itb>A&|6@O2$Yw{b7=Ti4JA)D|< zT|h{r4k2@V^r79u65bJL?Q25ss|Z}td~zu#i;{EM zEqu`1H-Iy{9WSbkF3S_hj2AgMM|IINGj2yfefxjdv9`s`*D2@Fbkq)%uMtxAacHVc z<02H7TEBVFV?cl$3zRzS*1dq#g}2|p7Vba)$d4}Lc#)&!wT(l|#ek-ZkoxbQf-uS- zn7_KK;iG(Gp|lul0*`HIf3J{j)?6F;W`{G%24Zx4zC{?VWuQ4obE1)fl{LE5o7aKW(@GQE+Ib(mDfrzyvgzYiXN z-#Rfn)=!==ORs`Nv)ns&skD#lrGBYNfWCc?2$JnyH63y#3*rdMU@%HcnNTW9;wI~S zMzZmxh7PC07d~MR%jJ4|(&WsYY%dQfQ{l~P^!TmHF^M@uLJUuSzXXgusX5vEH2@>h z6G2>t7}|VzCH&;Vo)8eVfyq6FN055=PT8$THLuDuBB0o$D%0+kFMIrVeKkc>a?STd z7YU<(Sn=#CXaV9z4Bb>;u8gwvNomVX1##=N*R1~S)fqxJxc%!j^=v*FI$`W?nE&LZ-tRE zGvyvz*_+7d4#c9K7Xud84;tQgukb7KQ=Q_Rz)gyR((%E^DXALy3f2PuPocckinxWK zrmMF73boxVxJ}|f*7f0(#?YBfNsZF*2nyC>n^vLg5uu@>Ig~U=o#?RoQwtXCD_~}f zB9%Ij;a7jC3kzy*tlb%?u3|w{_Dj#zLE5XG$*BVzn5Yys$WiI9zCemIjTB1X`%hm{ zaxMLZL(HCg=dmblS3ecV@EC%;?=GUokD)3ygQWC4QX8Mj-N{4HGsSYHIp3noh)8!` z;)a@<@Y#pavTrnTB0sGyJdre8@V0*d$N19@P{!~9Q$J8vNW!cHjitoy%p~Q5^~g0- zny)^lIgEGtw^9{&@2ib-4s#o*Gh69*8sa!Y_E_#bgq|lMHtfDD_jBKl>wvC_i3x9_ zJ5~Gv66gOvYhV4y{kVSAdAR)r#h36`P#eyc|9Tb!3NOfd zlj4?i-68w*8T5=|qdJm%!I&NNb6}jo!#PLfPn-K2E0fp&$u2~SOx$wN3UG_gHaB>? zHn;^&)lT{nB8i0>ej!IlAt@Ch`V++Os5Y3QX#~+uCsY-Vg(!D*oGb{0bG`i&>gioZ z>{U=sy7O{WW?!kTH3Lk zn82O3qt}X3P_T4~8CltwVk~}m;l77BzR$1@!MS z&-6cKp3yi|Io9qA7wA8_wD3Op*?{m&?b9Ryeks$@l!Y;_v!jVK;bQSsc-;;Nn^vaI zf*(-pJ13OkmX~l>1+jf&+G+WEOsPduh22bsv3AD6Zebl=#_yN(KKY05dvLLhSm0oB zk=_m49FZ_@9Jaurl@w*Jn#b&`7fON=0+j7%dWIgxmaz8a`3Uk61fEDwHQKSyv(b7Tuj#i#zFco8Jb7iyk4 zt<=HfCnO#}{EBH5&BDgvWb0k%!@@SnP3=Be`%93SRKftIm|V+AJv@gI@zh z@pVg#eW*Zd8MYZCI_@lM)ON5aY1+NJc>^D&ROJqS5zsCst8ezy~NhmJgD9Uolx-?YckVvEYm-6kn^#4QRWd1F6vRT zjPDUG2AO<=w{L>rE#9`!!Os{%e&0$k2k3>LkSWT&v&2h9oIF*eU~Ho!z4e`JyNwlV zY>g)D@-6yP-#wY2`brw1N0V%$ua|~lIMqvHd^X0wy$cQjm^hB!Q9%N&4NqncI?_`h z-Qs!`&nET5DBYaQ`6pkM?qUvWU=5uk+$xtWgHt1`;iSsuMBIPHcJEtnHAPS zJs|5+%J1zTKRLQGP3K0)#VF4lTB@^h1TLh4hX#?&=cdOR6#*z2(%YZ##rJz{^D4Mh z)_756@s^5?T;Eici3XXWC^g}u1M=@A9BYZU-X6Wm2Jg07xPZxOam`jpov{Pq`O6#t zE+}v4K%|Y?Ok23v$LA9eLc@}({L7F>>S5}2ljjt!;4CQ=N&#Q}VncurrO>&SGelKI zdw)vci{q^uMdU~Fb?PYWY`q3r6N`(^Lcbc7Y!6O8fN5SP$N;a+hRE1i&0lQ8r2hcA z%e^Z;@f?!|SZVw_4U`?DLCqbqqG8lcjF4ea#!F^GPnwDMTFphrp_X_D5laLNatH%ocEj+x1CwwnSevr|; zERxv&ZSPA)fFnfP2cu=wLTeV%+#Kw%tyTn^7EmR2#MCd#XN@Xaia?$E1AB)EtQ57D zD|L-BsGBTr-D&N+FCCu?^@4>Yn zuK%yQuZ*hdYxkwQQP`k_fPm6z(4d3@q8K28gc6E0($Wahp@5PiDM|`RcXuO5E8QS1 z_gS0&>+5^&IcMC@cMLx4SZl61=h}Po#4pCv9CyzJHkAx}r;7xj#GAmRW{wAihk9n8 zQbk0OwA>nL^lXJ2*kB(GtO`x6)${Nzd<|dqVFM7%{}@=B9tSf zifEHt+=hf~2Zv|gcmX$Qo@{r}NbiH5a1J(}CpKbD_Klr{;x5I{YHkA{ggTPTpOmMJ zmvYn1#=!UD&t}AQZvg3r!iBF}jyEr4(lJYI4$p|FQ@D0AF78#evw|X>NVBx-eVMN) zoa|+fqJ7XoF*To~T%h0C%+ut)E3a5P9>8#OIriQfiVu!6@bdp!9 z^U|ms3Il|A+~=ExsVeWsrHbzv+YtWtOzm$>ic9oieBUJ+F)`Xkr5xQvXaAA)9BZ(6 z)0*P4gO;k5!uIFr>2>z!QeO_47Mb5_>?(7(8&j#Jvc1L4vO>bzLt0#eO6Y zx^NAFf5!zh8Rmllz~I7z#3EJDZ$KL1vx1GB(};nCDsIAvZDohV;gKoiIdmmQLyj;B z8&$}FY(~M_6G;`^FeDty$&uWMITotiH)a@GeZtM30yR*|fwrflRc4o0lhs!RDW{Ea47FjLKx9Z{>$K zu(BtF>kh~es~6q5b27&+1-rbSpL8)Fd;5gpHae4?i7sqYLS&aorh+aOeQKOXmyuZ@st;HHkTDSM?!p$jz35#;-$pjf=}F$&P+lRpJ>A z{I+vosf!SKB=;AEwxS?%eufxFwt~+hP~+c9)5c*YfX(*^1m|-n-oe}@9zt%p2&@yv z7dv`ik*eV{kT!F42Kh8L5a4PTN|%7}zT{EU`j{5>2>dih-2c)fDP`Qrd=6ar5SNoT zyxJM35vINS1k}o{b32Afes2}diHAwcpB;Ay9(^|5rS$Sf%$ppp0`K03AP07L%JQ!? zu)D(56;VBK%(y!Q=0?eo+FJd1eeW8ugKU@w!NRKSlY-X`{!?k7ChemfGUnq^Y`4OT z_4ZUHG|F$lIRnk_$ZarDUD{R5;q5 z4>j!jPXIf3k3ggh=*(xq5A_VS$tlbS1O z8=&O!Wz>B>*h%qasE;!&z=MuRd<%4c8WGtd?95T+Y4Y{EppCGF@W0_cav0A5nQLC$ zz1YC5!1f4a6mazlk<#e~+g;ZYWu@2{5AcLEiIQf|>UEi%XXtiW)W2l07@>X^wcE}L zHGgyJg$Q2GV3E&{_&hJe&fneuIRKR)CaKReP%#fNigS>!VY^FMeF5QoA+|u!)nVhG zxBG4zS;ixEuvel$|aS#*!76iuagm`a&k@Zx9vPFSGZwDAYe1KE$L$oha2ar5?#;jyX zROS=~jVuGi;yjTLto+Dq#(RK`?LxM65#&4QHEI_R2ZZE_;XHGQZuho#7 z1-ZO8sm&e-)^o{`%{+x8EMUa0URn%l7&83+U!fH-4YTR1vIU)ww;VZpkbTJ9jU7S+ zTv}bt#?pIIU0j)bYfNrmWn@VHp`w#l^U}KX$<|R-;nA$pSh~>B&SjGLl@C)ovF=iP zWT(aEdb=c7*w`!uA2m`ug!;2{z3;BFajj7`qa^kA^EiIITPrJI8m}ZIf2{|R(J(O- z9T)QHH=3+hjRRprNW*aV17<$W)Thn6L|FHzTrhbnkone7+%#UmqkUtUy0@x!*ae|g zYzSJ~x9Q7rWHg{I%}`FAefr{^t~eOp7!pH@XLwFh$a9UZCe0*``eKx(Z+JuIogHQ4 z7Ncsmw}yBZpvUulW~6~IPN4ol!;!w+NID9u-+7wT`XAc@)lwAUmGT`kBjKVKd( z36EiIZjdm@gv8E6@R`d^yH(3=%Jxtn@w-@kQoWZowc%^%$Q)8fT+^P*aKy9D^R4*C zXGU@L=9ow=dA_mv+vITv5hbUT%1;wc&8eoasRm3?dR-jvV{LWImIYNPT+0c-`Ok*0 zh7q6G;rliAL5Z3)7!f-x<|N3X@%LIDbXofL1rd0puMx$&-!aqnE>*}I42ev9XTN}6 zIizaF^wlgys>&3_?vh+PblJLfyu1d69+4*(r-20ZaMKEesjc8gQtX*Li~etdP#mt+ z^)aUviP*J#<1X3kQ~0A|J1jPy_n^{%RN;fqQ|0ryVe1eKx`~28Tn~0>h0wCpQZAs!j-4Zd1~6@Rr#(#XCL^YYFRgbL-W{H zD@7#4*BqL!GxQ}2&Wt+wB0+m+0bH6ZncMfMp(c0hjutt-^?vgl%d%iTr5fdy2lPe^L{AK7% zvjc^f0#0!6ZL4y@tni7n1-Z`iY>%toXdgP?%>I!Bg%=N(#X)njDUFI3E_bjE{Q2=@ zWe2Cos>m2WlpX!vzmKm1zqP+I3|6x}a@CG>aXe8494w{1AjKikz;aGf+1vXO0g3SQ zyb<^+d05bpTzy zq{L-psJBrZj0lN2em7LPLNQromT=0v^d_VIIA)vARpVX;;^{$eFAFj}0k7T>smftoYoKhS|Pnvqmx1QAh}_OexDTA8KEC#Cqm z%cL1h4;Q-@eY#4jxa(Pxq7!$rQ6}*X@6$9RcM84o@TV~Mm3@^q5=hhD?Mg>L;Yao5 zYk{=4WG>GI`VEB{OXm64EZ+-gh)pmU!ewCQX zx-ce^)H*KpN+pxl-<7w|f1bmi?8vfpTHH3DIx(phN5F>r$}okh{_d@CMq1ibp@iO9 zf=%w7q-W>Soj%N;NQ+Zu#pI({Ri0(P&##NR^>q5?y%M!kpB!J_CzBkS|84U$VMajh z>itCyry6b5Cp!umsuO0cTcOfL1UMCTd=JjvLW6EXq;C_}jwH?8BUSiPp$Rk^X*@QH z9+V5-bQ?PY9f7x_9&6~$vS&0R??MkE5<{|4NsdYTCwCwc{JvL(G+@3_lNtSHFh)6+ zyN{$}sU{Wrc`SzH0`QJ(7yqI9D7g9ObQ!dTAptP6AwoJLkswBVU)>v#F3MjG9Fp&~ zC!~nctfyI|i*h+e6D{dg3!%MBYiFJ=5)J!`W7f~Ic0`?piG@hFB3%>*+H8cy!$zSA zxzS%;A7}`zVBJ0L6lf^JP!vO>bPrl^oj zkDk>zWL7NK%h1UICf0$a1-T8@M|1=q%2vsQAIzpbkM_Y0hDF!2GE_Z5FYP};On?;% ze0kaP4jLP!2xuqvTaVH~`~omQvVZ~la~9GmRCvX`h4h%*@CjD;XC*obGtmj=l`xEo zl#73$L$Yp(e_@fB0nikha4i-+$uofa`Zqv`3Sn;jg{DINm1a@F9sCP2FMHe-ZHf$XD$W57!HaRJoson4Nd{~ryX#K8tanj6v6k3hj5x!3Q`n6%;scR_|HO5kHaa_c%+AKGu))SJ#5y`WO zvlP^FOrz{)Z;-7oh-p=X{WzU}NU$4^`KOs?~+=$AU(``ErjcF`M3qe2ft7814S) z*aX~e64a*Obj!PeH6O4~KW|=f6#C$HO8&@;7L^Qx?YN3ZokkC%jLbrsPqv6TE)i}< zoYQXBnYRSWilF0x9bufiWvsxA(cFuH*!qvWoUR97Z>A{6pK(1byBGM3Q0P?AP%o*i zN9o8m!`IC)|32oG?}ZPIWFGTz^Avu0_G#$-?m&E5rWsjho*LETju2i=V$X}E;GC?rS>`cR#)3vM97QYm-|QZ3^;L; zW7lp3Z+9O4lJ_JaxgG(!M3+$H%)ZAOYAn^~EF&yStfwiYYUqA}xSS+?w`)Y9$o6f>#vp z@;iEmi2b^>tRJ0;HQfozCvUC1y6<7p=agcGvS0=*O4!3l-T^gQyt4P+#OXN<63b#` zu8)`Qht-e>^JfAVkZo(>LE>E1LHZ*@`Lq7*CB}2)uf?qD!srWJ@zpPlxz0ZOZe%Mwz z?g#YCRS8{Fqh_ia`0^+pt08l)J2M#~3y;DDidUQOp{62$ETT<2SY(ptSh4Etf8spb zP~KzWLG{&od{Vmkk*7Tw$v%p@iUSAbI`}8VOJ=ev`qC~u(|EX1%`fX{TXAoI-r_}5 z-Rr(VUY+0XgiCYD!tzI6u2d*=tSxF`OGQYvlHhsJ$+w$a3LJ0_dZ1a7lH$Fdx`|6W zJMK|slektN{O;;XP+>lGFM|hW+L1#1#XP)C?9u~<`YF4}m(et`8WN;NT)68q)U_J| zJNmy6)mMTbjD9{(@)W$(p1iMSMZf6hEbZ=z?Cg`*Hra)zHkU9tFWT>*Xb8W2A=I$7GzlrV#XA?ZZk1`UiNRY9(>Zd zL}DXCEvclOP4O0lu4f+8UO3hN@nhUYJg&wOTw;;UTiXvkOIy6WviV<8kc&H&X09Fe zkO4J}lz={8cz?$0pA_mJh| zVzW(eOSQM7!n&&vNXZ)EBZA;jQM$y}3tA68Wx>}2C3msK{`=FIB8gJ-!ojDg&+13? z)zZX;_CEuL4n5B*dwEc_@79#Ap2oxTy7OWzTSnI+^e)iOmh~rN4Ssgc_2;cQZ-SXPZ@duoT$eElSH|zn69Q4lRYNX6|jG z>5eSD6R7g_qcK!l07o}K(B@F-MPEY$1(uVP97WUB~$C05mQEllumM8D- z4m@!fd<@$F@pB{aWdLx9V znO{}TZ;dI&O@TncWm!Yci0>g39B60F1)VVcA!l#+t918T#*^2zHJraWpAMw)64UVX z$6g{>U?vf=UKZcV;M*U#o^|W%`+!(}rT$N2?Bq| zHvMMW#3*20X+*>yrJK0vaRtwhXZU$zQ+TS)p?*z@ipSyBxU>4g-TQbNdTWl2tD(gd zTC1g4&17fT3w80lEPA)4R4RmxIZsmG6c=y zPE`Se)#uCKmTGr$#{I3biGQxQw41FcXDU1EJ^>PQ`?GEQl*Rt*_8l6E&xvVn4S(;v zmZH3`RIhR{nyz(S-AFt#^I+lr1%CemEzkfWRDZ!w+=<&dxjf{pbu=U3E1jL^EB z7l-|xYi;+9ci9SR^?Zbn2PLC~B8L*!v)q+gp7xqUQar-nlp%j{-W#8jqQoNmh5HMl zJ7f%!+z#y$7kV3_0PHpX5G%Wot~$wX`(o)rYn6S`@=L6knRW)(2~p`cQD=X&Mzb0| z#y@{C=hFxG^}W=t#(io4Kzqq!s9L0SGU}Nj(JZrjzC80!Mv3w#QOA)P1sxW__gZ0j z*VaWhnat5;O!DMtjZC@L3#mi+jMoArBLt(+5okBIdzAeqf4A?c3F@Sf2zp0xa*0j_ zBvOT+MP+7oAI3XXZ!XzS?hL-ThAYqLh^W=UpC7g2*Vif!jB@QV70Bgcsmw=dbR`^| z@}W2i!7B#gfdX=Boz|3T@X;MVqvMk%STKy<4s+F94L`1^d*X~M_jEdC8)%$GUycJB z5q|qZpuXi z!eCUhtW9Z-Y$9ZLC`=HH+FSlDbY2qx&7OuLYz=XAR`wQBs1JndQpl6qD0mVe=2nM3 z?gJe6=Ohxs)rKkqg7~ZGw}c7cS&~fjV{}3iKnSdgDKgzP^tF^=7q0x9YyiZQKTGI_ z^v6$FZyue=p`aBNY>A(3k8BY1#$dOoQ_y`e-!qubOcJCnBw}vIm-|4t`t%j6O4J^b zd{tsY^7TIu7=TA1`4=OC1#o(bp~=S^Md2QGc=4iqbZUu>lE|w8seR?_3~*RSuCAzv z@k;e>GBa z6$0tc0#rvOgs}~Wl+KtJ z&#})zIk_}nQ3vFjw7{r^1y}?RD)m2q{YkG0#UBqR5EzaCxO~%SnGmoNj`o|YF@QEiVX{$2oZ!=b?xwdQPd(1#3fZ&SbCM7uXf-hY z=Nm(_y+#%GCQAJU5JSef?3|%Ug1Ln*?K0g6k(2TKz;07U&fstcU_Rh`c=RP z4XJbBNuPE5)BQWpf=b_g#+e3&A?x!Wvo7xfPmPU##4Px<&j}NN9oVjaz43P!qo>q8 zF8ZS7`+3=6W@sRVflH1CD0C;!@s+N66fKNpY6>9$!h|?uruDL4-=3;+692)Q?E%L@ zYUT6WxJaONFZi%d16d-#E|5Y4pkbS%usOFo05py0c3E{@rENlbWq@Pssp`+gYeDqL zDqDCEY@F^J&)kF!Pjbo5nGpv>h(1KzokVXIgyb^Vbanru8vzcRD{8VkhRY*g*T+4{ zuR-9BBY*h0WZ7yNX@5MirwFqLcf-CNM5mNgYO`9pCaucayA?!$fD^;wtF@nc=ktT1 zu6HAZBon|rp~^f1E=9LGMM>~Lpe}satV9J=@iK%wfF6-1vox5KWFQU7&;vU0(^I~=f-28+1&T;|D@G|Mt)%oeqal*9k0Y3%GUFoufg#BCAHqjnnCTukSOZa zswTBsmr0aa^~)Wf(L&9Qb$z-$R!j0=RgU5I{?y`WWsP zW8|+Y&(<0RxUDp`$Ex39jC;vAdtEhvV}VOOC7=T(7*80ugP^;FEFaC}w9C^jANLjT zkxcjfZ0^$DMOpU}Dq_48i*-$$u(q>=y_7~`m?FL|4$Jxavkcm9)-;@9u z^!65%S=&0G5{G(#|rRf+@Y|%eXd}b)!`ShSF&$tJa%7jU00Gav8nu(*n@kz93 z7m2APwPQ}CAEQc)j_o^R~Zgu+ilq#bD!#4UiXr?AemfbchgUogGo zKZ9MA>vctY=~=wXi^N(AXI4K?^wkjipr$^Je(w7M^rmySKKMG$n3t~kjEgw$ShOKl z(Grv7)hcFH?}cg9a_s5P$)vRs?RZ!Ny2n;jzlZXcr*6Ny+6kSs@Mpw9Qbz}QKQ#e= z%eV`qHs*_1bov7Q?>TS2_d;c9KJ-0e5!MyA3LIu7CrQ>qbF6d%Xg$=4wjWoQ+ zuVzB21sHwy8M03)rqMN|px=L)V+N8-^F*8Ydh}CW97T7EZA?T$pz$qK5Ahd~_w zxr~!3CvV&>WWRCPbe#_eopsOaK4XdUts8`v;{B%Id2MuNBoWVbGu*svY zLl^flJ~?BiCm~73cWvs$jfv)$L;V1ZV~g@WBkq0Gkeh-ty&0MF|v13IF(Ad7@ev5Rf0=1T%=5$+SAv`cmrCJhP?s|8%OrdVh0HNwBG6wf^);nnY{qGv>* zA{YYJu4g=6jnGr}Ye2N zM!9(HG~0z=&6oOdyTftrm#W-YGSE_F?#2;p{nf1Kc?{iIJ&)87cQW*jttF(V2_PH} z4sK-C337=`B%+z8c&C73k3hMk{oqH3Rv#W?X;26HDUh=UUR5p`6HE4C?2rpS3JT00 zIhQGh1Ycg^7^aV)+)3|#^(KVG%Nr3y^dUOW-+YL`j7Jj)rU^cbG_$8(^4srEdYP!| zcftIQ){RldXP1MIBVZ%KT5cQ9$xoIA3eW$U)(&B1;?G~rtJcZ#=rHsI#F{s3@ww1( z?F0wJnlDm%kBuK$Al6J@)-yqXF;3|KK&9{OvFo;1Jj97R z(YKBr$b2wQB(j)*F=L`kAT4p0ANe%e@h)-U~iRe~qqB z%eX-(-9?&-gAPQ4kWkv-dK?{*cH#eFQtS{{*MaGCd z%N>U9mnb36RK9Vep+ovt+!EiR+>LUO9iSjZ!e~#y7T8f{cN7)uo6oAIFnXu_VW<9I zWEUbKE?&bUui+$pAitS ziJA_E7{?ip6akZ9l5PvaQ^LI+&{XW=jC&j+{g#Cyyi+BgP>&fPj>mW(ApsZrR)D`3 zY%UI|1Jvg%P|Z}-&Wcm}Tc`oh72y}!%!mI+@Cz1j>*oHtcmo#w0}ltl?D8>0tg3>0 z&%54VZMVIqN@Wm6r45pCrLs^LE*>g%$V2cx|6T0M*NGHP{tI}=;uQ7tyGzz7?RXh? zKb;3_rQQS46TM|lb`D#8_dZ>|WHTF5X(5+-5_RhXk9Kh{dz~2k-?#_9A+x1mqm<%+ zEg=NN$v*D_8L+=P3nYPTVC!D*d1yc3ZC{@a%R_J+G7?>q(@slY24d7`N_P>j86eSY z0YCwyRKJInxFw#xY?Fp2Vs05&FbL>hDQ&2v{vj+%qV^m4AHx65Or~VHXo^e$-%u-R zXmHO>3;_z=l0blBI&vIwU&3xbJVS2d(FOhAMBA^k@BKF=a={_yqlW^O;s(y@k)Zlp z^Q#o3oCxXS?O&t|W`q;tqm)U6iU5v7GX&6_z~s1vrdr9WMRF#1Q>b>1!+4AXA~&rX@1 z6d42F#%G@r_`o3krHw$Y$gJN56mj4FOL8Uz_tOG)i?_G)IwU{JgO|mxb~l_CXqwCC9erJp)8ZTh~OR%ad^J!W;XiPVh7zL!HoC=oI z*#ibx>Rf&JHsqYD9f>tW_I7jKbr%2(qLQIi_?g_+VmnZiwsQs`c8vQPmARdgLOUjL z(|bhGVe{71D|XG0Z@_=q?0Zn{YT$et;Mb}W+J}LGL4~PwMdo(2kOBe<&{p&^8U@5d zLybZl;Jy^yv2ZOiK%ARe0x%r$xlY?=Td2Uq0NRo)px2+^)=-<@{c^uZKyRM_2EzY|!n^G%UFiBJX1`@+6E=k^+nk`RdE3@!1GzaHa zq6t9{Dp<1W5Xfu`(q7pLkg3+%S9XI8i?e9L?0_24Z*i4 zdYN5{BkyM=*~F5l*~(rro!>u(E)N=wY=8F|i)EY@k1EgYINLWPN*>G>(vP$Z5N-kr z@$HNGooo3WDwr2dlwu>eHE)%f9`QtJV0bH-Zs}D~>udwO26qNwb>qs}k7!JLO*D{& zMiA%^MN#T@N|%23@;)sB>54jQaNX6~u{FnWcYGY5vIk$SRLiGTb-mOlzt=4I=!#C! zWV<2y+adUI>#&a^q^{W^fpwa#YKY%`06mknUu2XLDkj1zt`o_K^b z9A^e6Jo3Tt;^9JqpWi{1qy-7%T{W6{a+&B(Psar1!qgyllF@Qa>`q(_`v!pM_56A} zSa2tDk@BB--H>unh)Ge``BUQ69b5;>6q#KOin?my0x|tA`aB}9_Y_1m)oXxBe@{GU z|I>P-$@tWy?4_v3dK_ei^n)k88Tj8Ml`s-~)#b1A;G3UaiN^1_XXXNcqD^IHIh3RF ze$G4W;SIniCLa=d`e<|Ui&hampRAm^s!WFj_yQ*OT^C<6+qicU1@IPF$*TQE#A+wr z0G8?LeSKGc1B(v&@h`(m(Sv>-pZuYEZ#sfyPNzlJ_Wsi{D%Z9Kzh?D;mA;gaTkI9z zRD(mTwSB}yWISmwS|4|T0qRsSx^^lP)!tvoqJA)cCaVeV;F9LAoTP4C9nZOoB||s( z)e95DBb#2959M0{h*K2>O*8h!m%=0%sB!+C$xDSeJ@=Lm(90P=oyi_An$uHMqwqnu zJa6rr;sw+wyMA$5o9yE!6$>ea0!6+m95mZo=ERe=oMNb{nWM~odZ%e585lS;{m=o< zyypRv99)<{Hz#KtANQ6kBS|{I%uTALZ9RFN1G)`dM9N=lc5r zxcv45N_3IBiQl}x>24?pG4^EA1mF97iD96D|Pu8yskUJabQtN#V zig4`<{M{P0`2ydLOX$xV6z{K)^h0$YxXv<2Eu6IKJ*W7Zbi4;iK_dTpCz2{5Wz86A zWsej^Y1TJODrc2eU#6?1`z+ zAYGAvs^}EOenaHJ2{&CCeEn|^ryWCOt|wUhcE0&ZOPSOq|J12FxyOX-|01x%T#0h| ziyk21_@_lM!45J0pVb4+Vdam`&j_-Fe@Otz;q06w__vtPRgek(qx0hix;(;= zX@s&XAEI*s1BAl9j6s7oj}JwzWm4UXejDl&R^Kw0jEMt>LToyho-Ce3c3S$@uiPsbF1cQbZ+q& z>5on`0-Gu>)ujLDB)|`46di-YYTevA8niD6RJOCAu~LpW?U&#Rj`{z;7+pRM=ki`!2auQ$~!iozP~kkZ=&#qTl0hW0^N*W9P+Jj zOC|hZB_PVntGZXd^(J6vy#=T3!Ph6ROQDLr4iV(M1ZqBxT!PI7_~779W~a$$eV`El?i+0HEf#{c|9X4vv?Wox=UNs#n*Oud_z4tlOgnt%}@*jCdQY5lo6bfPWoYhRM;9+V!jvj;SC99o9 z^2F)3$d04C8K1R4Iq3EIJ7K|6yKFZlAjJ&70OlIoV@@|r#i-g^PockHEbevJBd={U zO4QQZY)>iHNK7kziZM9h^@EGz8vyrf6aqpZl{AShrxTL@HfoT#`x5+&+xN?`LSa*rn(?PUqNr zS(yp@j5hDGpT-_4b1GD^3KCP{X1vuZZjS4pj!0N>1%$2`^<#{zuO-N=C)3?t&7C;C zeW=?(9Ie)wR6n>ay0!<25{ErWPkNSoFioc1vA+Nn&Ox9{5eVg+F337p&yjWc`66dc zz#4;j>2!S{y^^16pcs+IO`gZ4R$g)kKVCAq_QnbkOi5EDRV1l%I3zgPMGIIPV##Uc zD^i}jo1a$R>DH?V8}kF2DUrdg;}d**WjpU9Zs|rN`sr2hca23d_uZd`0p> zT_#y{Darp(K$ ze|R6N^$|kDf>MGddO(YR`p|uHuhC!oG6Cy^w>&#LDnX6Uv|=+7be3AQ*yUY2Th(;< z<)w0R58@%pLrQMfD(UwvPC4|lszbnl=R@Ve`YYOwKgSVev>3b{IUlLb&J-=9yK7#d zB$lU8mN%4~S7n;&>^ffQ<{vw#b<|ixPW)>U?&$p%xAs$@f>5vWZl3teduc&1D@k^b zzBBIaj;p^tzaJk7=y}HZA@z;%;1ZR=tHRl?u9`Vk$(uqY-sq|e#W^hgU-sTw6iHGI zre$lfqGCF~$3_`43n;PmFrLdfKHdM#XCi0mB#AK_S|G`XttdhCD zd2c^BKDER3$iigh;pR^1kBG7dySrokEmPKq%5E5#Sld`x<~+;V%Uxqq&wuw+q%Q0} z;Ub`5mL4y|su(5fFBvIzFvs}Kgo%YiaGGb_Um=L*moq$ePOEH5rRCToZ*zO7>W1O& ziTh&ze3hrSL>!EHgE>Lr2uFzm3(g9n()b*}wW%=Y$P3Tnq;(4m?@3nacu6A{$9Dg5 zxrF)h>Y(_U0aR?|l2{<=#*{;L5 zA?L^W4Ag}<%;4k`xTOmz1dr+9;$gV?W?^|8&*4>NoROq>jA(XgH|b)x$hXNxY6mbv z6u}PvbF4>iVO$2B%~`QWU5qeVHp_T_8&QBBG80OeNtn_;GCv=;{x-azbI7X{YX3eq zL7@W6APPo^#fg~}d)%XgUZ>hDKBo^n>Qs_WT!~O|LN7%+ktqQMOP8j_+=eabMz$pT z%=ncGcY{|jz#P`+dnv~g<0QD)MH|8mXG!O}$;QV>0cxNHdTIHQXr zUfm5iz|W1`;P}-}8R_71IhrMRIF<`;UuGo=xev530&jFaIc%sYf$?|K@hD_#@G-sr zeXQdq7rzgT+o@FPSFSF)$e*{OJzckmeuw6KTKTtzW@LL literal 0 HcmV?d00001 From e37f8b3dcb07dabf86ebdc2ed7ab108eb8df608a Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 12:41:46 -0400 Subject: [PATCH 08/26] Update README.md image added --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c74fcba..0d1cc41 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ This add-on adds a fully customizable variation to the default listing block. It - An option to select to show the event time - An option to select to show the event location +![volto-listingadvanced-variation block details](https://github.com/rnunez80/volto-listingadvanced-variation/blob/main/Screenshot%202022-10-24%20at%2012.28.49%20PM.png?raw=true) + Installation: - Add this package to your Volto's package.json dependencies From d25cbd586285d1bc7202b5604daddc0094212e2a Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Mon, 24 Oct 2022 15:01:08 -0400 Subject: [PATCH 09/26] Update advancedSchema.js schema fieldsets imported from default to avoid issues in the search block plus will allow removing unnecessary code. --- src/advancedSchema.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/advancedSchema.js b/src/advancedSchema.js index e760d14..4f77701 100644 --- a/src/advancedSchema.js +++ b/src/advancedSchema.js @@ -2,9 +2,9 @@ import messages from './messages'; export const advancedSchema = (props) => { const {intl, schema, formData} = props; - const imageWidth = ['right', 'left'].includes(formData.imageSide) - ? ['imageWidth'] - : []; + // const imageWidth = ['right', 'left'].includes(formData.imageSide) + // ? ['imageWidth'] + // : []; const headingChoices = [ ['h2', 'H2'], ['h3', 'H3'], @@ -13,20 +13,21 @@ export const advancedSchema = (props) => { return { ...schema, fieldsets: [ - { - id: 'default', - title: 'Default', - fields: ['variation','headline','headlineTag'], - }, - { - id: 'querystring', - title: intl.formatMessage(messages.querystring), - fields: ['querystring'], - }, + ...schema.fieldsets, + // { + // id: 'default', + // title: 'Default', + // fields: ['variation', 'headline', 'headlineTag'], + // }, + // { + // id: 'querystring', + // title: intl.formatMessage(messages.querystring), + // fields: ['querystring'], + // }, { id: 'display', title: intl.formatMessage(messages.itemDisplayOptions), - fields: ['howManyColumns', 'imageSide', 'imageWidth','titleTag', 'showDescription', 'effectiveDate','eventDate','eventTime','eventLocation'], + fields: ['howManyColumns', 'imageSide', 'imageWidth', 'titleTag', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], }, { id: 'moreLink', From 1e1d285578e178860fbe0911d170aeaea9775238 Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Wed, 26 Oct 2022 15:45:07 -0400 Subject: [PATCH 10/26] Update AdvancedListingBlockTemplate.jsx added srcSet and sizes to image to improve image size handleling by the browser make time locale default instead of en-US --- src/AdvancedListingBlockTemplate.jsx | 46 +++++++++++++++++++++------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index a1d2ea3..330938c 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -67,8 +67,12 @@ const AdvancedListingBlockTemplate = ({ month: 'short', })} ${parsedDate.getDate()}, ${parsedDate.getFullYear()}`; } - if (end == start) {return start} - else {return start + ' - ' + end;}; + if (end == start) { + return start + } else { + return start + ' - ' + end; + } + ; }; const getEventTime = (item) => { let start = '', @@ -77,18 +81,17 @@ const AdvancedListingBlockTemplate = ({ if (item.start) { const parsedDate = new Date(Date.parse(item.start)); start = `${parsedDate.toLocaleString( - 'en-US', + 'default', {hour: 'numeric', minute: 'numeric', hour12: true}, )}`; } if (item.end) { const parsedDate = new Date(Date.parse(item.end)); - end = ` - ${parsedDate.toLocaleString('en-US', { - hour: 'numeric', - minute: 'numeric', - hour12: true, - })}`; + end = ` - ${parsedDate.toLocaleString( + 'default', + {hour: 'numeric', minute: 'numeric', hour12: true,} + )}`; } return start + end; @@ -132,6 +135,16 @@ const AdvancedListingBlockTemplate = ({ src={flattenToAppURL( `${item['@id']}/@@images/${item.image_field}/large`, )} + srcSet={flattenToAppURL( + `${item['@id']}/@@images/${item.image_field}/mini 200w,' + + ${item['@id']}/@@images/${item.image_field}/preview 400w,' + + ${item['@id']}/@@images/${item.image_field}/teaser 600w,' + + ${item['@id']}/@@images/${item.image_field}/large 800w,' + + ${item['@id']}/@@images/${item.image_field}/larger 1000w,' + + ${item['@id']}/@@images/${item.image_field}/great 1200w,' + + ${item['@id']}/@@images/${item.image_field}/huge 1600w'`, + )} + sizes="(max-width: 200px) 200px, (max-width: 400px) 400px, (max-width: 600px) 600px,(max-width: 800px) 800px,(max-width: 1000px) 1000px,(max-width: 1200px) 1200px, 1600px" alt={item.title} size="small" /> @@ -145,9 +158,10 @@ const AdvancedListingBlockTemplate = ({ {item.title ? item.title : item.id} - {eventDate|eventTime &&

{eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}

||null} + {item.location && eventDate | eventTime && +

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

|| null} {eventLocation &&

{item.location}

} {effectiveDate &&

{moment(item.effective).format('L')}

} {showDescription && item.description && ( @@ -172,6 +186,16 @@ const AdvancedListingBlockTemplate = ({ src={flattenToAppURL( `${item['@id']}/@@images/${item.image_field}/large`, )} + srcSet={flattenToAppURL( + `${item['@id']}/@@images/${item.image_field}/mini 200w,' + + ${item['@id']}/@@images/${item.image_field}/preview 400w,' + + ${item['@id']}/@@images/${item.image_field}/teaser 600w,' + + ${item['@id']}/@@images/${item.image_field}/large 800w,' + + ${item['@id']}/@@images/${item.image_field}/larger 1000w,' + + ${item['@id']}/@@images/${item.image_field}/great 1200w,' + + ${item['@id']}/@@images/${item.image_field}/huge 1600w'`, + )} + sizes="(max-width: 200px) 200px, (max-width: 400px) 400px, (max-width: 600px) 600px,(max-width: 800px) 800px,(max-width: 1000px) 1000px,(max-width: 1200px) 1200px, 1600px" alt={item.title} size="small" /> From 43595919028289410558ef83be26316714568b5a Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Wed, 26 Oct 2022 15:49:06 -0400 Subject: [PATCH 11/26] Update CHANGELOG.md removed changes I made to change in my previous PM --- CHANGELOG.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9b6715..5e457f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,18 +2,7 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. - -#### [0.10.1] - -> 24 October 2022 - -- Optional Event Date (End dates shows if different from Start Date) -- Optional Event Time (Separator show if both date and time are selected) -- Optional Event Location -- Simplified Block side menu to reduce the number of collapsible accordions -- Simplified fields labels -- Move Heading information to the same location as default variants - +Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). #### [0.10.0](https://github.com/codesyntax/volto-listingadvanced-variation/compare/0.9.0...0.10.0) From 05085dfed2707e18f419809894c8e8955c5827d6 Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Wed, 26 Oct 2022 16:08:51 -0400 Subject: [PATCH 12/26] Delete Screenshot 2022-10-24 at 12.28.49 PM.png --- Screenshot 2022-10-24 at 12.28.49 PM.png | Bin 54793 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Screenshot 2022-10-24 at 12.28.49 PM.png diff --git a/Screenshot 2022-10-24 at 12.28.49 PM.png b/Screenshot 2022-10-24 at 12.28.49 PM.png deleted file mode 100644 index da89cb315b7365a9e70f23bb0021b2bdff823a8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54793 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

mx7VeUoL&kSL^B9yi(VvLV6TD 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 From 14c85f226ad59d45509f3b77ede841f24d80a455 Mon Sep 17 00:00:00 2001 From: rnunez80 Date: Wed, 26 Oct 2022 16:10:46 -0400 Subject: [PATCH 13/26] Add files via upload search block with advanced options --- search-block.png | Bin 0 -> 60932 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 search-block.png diff --git a/search-block.png b/search-block.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5599be5a1d1b3c056665f3898247d9a5b8c847 GIT binary patch literal 60932 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 Date: Sat, 26 Nov 2022 16:06:31 -0500 Subject: [PATCH 14/26] image styles --- src/AdvancedListingBlockTemplate.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 330938c..367a587 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -174,6 +174,7 @@ const AdvancedListingBlockTemplate = ({ {!item.image_field && ( This content has no image, this is a default placeholder. Date: Tue, 29 Nov 2022 14:00:05 -0500 Subject: [PATCH 15/26] added class to image and Image placeholder --- src/AdvancedListingBlockTemplate.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 367a587..cb2082d 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -123,6 +123,7 @@ const AdvancedListingBlockTemplate = ({ {!item.image_field && ( This content has no image, this is a default placeholder. Date: Wed, 30 Nov 2022 18:33:19 -0500 Subject: [PATCH 16/26] background image listing --- src/AdvancedListingBlockTemplate.jsx | 123 ++++++++++++++++++--------- src/advancedSchema.js | 1 + 2 files changed, 84 insertions(+), 40 deletions(-) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index cb2082d..9b0eb1f 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -116,9 +116,49 @@ const AdvancedListingBlockTemplate = ({ {items.map((item) => ( - + + + {['background'].includes(imageSide) && ( +

+ +
+ {item.title} +
+
+ {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {item.title ? item.title : item.id} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} + )} +

+
+
+
+ )} + - {['up', 'left'].includes(imageSide) && ( + {imageSide !== 'background' && ( {!item.image_field && ( @@ -134,43 +174,45 @@ const AdvancedListingBlockTemplate = ({ {item.title} )} )} - - - - {item.title ? item.title : item.id} - - - {item.location && eventDate | eventTime && -

{eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}

|| null} - {eventLocation &&

{item.location}

} - {effectiveDate &&

{moment(item.effective).format('L')}

} - {showDescription && item.description && ( -

{item.description}

- )} + {imageSide !== 'background' && ( + + + + {item.title ? item.title : item.id} + + + {item.location && eventDate | eventTime && +

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

|| null} + {eventLocation &&

{item.location}

} + {effectiveDate &&

{moment(item.effective).format('L')}

} + {showDescription && item.description && ( +

{item.description}

+ )} -
+
+ )} {['right', 'down'].includes(imageSide) && ( {!item.image_field && ( @@ -187,27 +229,28 @@ const AdvancedListingBlockTemplate = ({ {item.title} )} )}
+
))} diff --git a/src/advancedSchema.js b/src/advancedSchema.js index 4f77701..901bdc0 100644 --- a/src/advancedSchema.js +++ b/src/advancedSchema.js @@ -65,6 +65,7 @@ export const advancedSchema = (props) => { ['left', 'left'], ['right', 'right'], ['down', 'down'], + ['background', 'background'], ], }, titleTag: { From e43504d6a198fbe54a826ac964baf63ae7127545 Mon Sep 17 00:00:00 2001 From: rnunez Date: Sat, 3 Dec 2022 10:45:37 -0500 Subject: [PATCH 17/26] corrected 'It looks like there is a mistake in the srcset attribute. The srcset attribute should contain a list of image URLs separated by commas, but in this code, the URLs are separated by , and \n, which is not valid. '' --- src/AdvancedListingBlockTemplate.jsx | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 9b0eb1f..9f26aa2 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -123,13 +123,7 @@ const AdvancedListingBlockTemplate = ({
{item.title} Date: Wed, 7 Dec 2022 09:20:23 -0500 Subject: [PATCH 18/26] prin class --- src/AdvancedListingBlockTemplate.jsx | 13 ++++++++++++- src/advancedSchema.js | 14 +++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 9f26aa2..0eff67a 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -122,6 +122,17 @@ const AdvancedListingBlockTemplate = ({
+ {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + />)}
{item.location && eventDate | eventTime && diff --git a/src/advancedSchema.js b/src/advancedSchema.js index 901bdc0..c6623b4 100644 --- a/src/advancedSchema.js +++ b/src/advancedSchema.js @@ -27,7 +27,7 @@ export const advancedSchema = (props) => { { id: 'display', title: intl.formatMessage(messages.itemDisplayOptions), - fields: ['howManyColumns', 'imageSide', 'imageWidth', 'titleTag', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], + fields: ['titleTag', 'howManyColumns', 'imageSide', 'imageWidth', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], }, { id: 'moreLink', @@ -37,6 +37,11 @@ export const advancedSchema = (props) => { ], properties: { ...schema.properties, + titleTag: { + title: intl.formatMessage(messages.titleTag), + choices: headingChoices, + default: 'h2', + }, howManyColumns: { title: intl.formatMessage(messages.columnsCount), choices: [ @@ -45,6 +50,7 @@ export const advancedSchema = (props) => { [3, '3'], [4, '4'], ], + default: 4, }, imageWidth: { title: intl.formatMessage(messages.imageWidth), @@ -56,6 +62,7 @@ export const advancedSchema = (props) => { [5, '5/12'], [6, '6/12'], ], + default: 2, }, imageSide: { title: intl.formatMessage(messages.imagePosition), @@ -67,10 +74,7 @@ export const advancedSchema = (props) => { ['down', 'down'], ['background', 'background'], ], - }, - titleTag: { - title: intl.formatMessage(messages.titleTag), - choices: headingChoices, + default: 'up', }, showDescription: { title: intl.formatMessage(messages.descriptionTitle), From 47f3285be0bd165b621d8e8ebb6aba17ca953d9a Mon Sep 17 00:00:00 2001 From: rnunez Date: Fri, 9 Dec 2022 19:08:00 -0500 Subject: [PATCH 19/26] listing working properly, carousel needs work --- src/AdvancedCarouselBlockTemplate.jsx | 306 ++++++++++++++++++ src/AdvancedCarouselSchema.js | 83 +++++ src/AdvancedListingBlockTemplate.jsx | 155 +++++---- ...ncedSchema.js => AdvancedListingSchema.js} | 23 +- src/index.js | 13 +- src/messages.js | 2 +- 6 files changed, 481 insertions(+), 101 deletions(-) create mode 100644 src/AdvancedCarouselBlockTemplate.jsx create mode 100644 src/AdvancedCarouselSchema.js rename src/{advancedSchema.js => AdvancedListingSchema.js} (84%) diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx new file mode 100644 index 0000000..b9e0a9b --- /dev/null +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -0,0 +1,306 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import {ConditionalLink} from '@plone/volto/components'; +import {flattenToAppURL} from '@plone/volto/helpers'; + +import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; +import {isInternalURL} from '@plone/volto/helpers/Url/Url'; +import {Grid, Image} from 'semantic-ui-react'; +import moment from 'moment'; +import {useIntl} from 'react-intl'; +import {Button, Icon} from 'semantic-ui-react'; +import loadable from '@loadable/component'; +import Slider from "react-slick"; + +import 'slick-carousel/slick/slick.css'; +import 'slick-carousel/slick/slick-theme.css'; + +import UniversalCard from '@eeacms/volto-listing-block/components/UniversalCard/UniversalCard'; +import ResponsiveContainer from '@eeacms/volto-listing-block/components/ResponsiveContainer'; + +const AdvancedCarouselBlockTemplate = ({ + items, + moreLinkText, + moreLinkUrl, + header, + headerUrl, + headerTag, + isEditMode, + imageSide, + imageWidth, + howManyColumns, + effectiveDate, + titleTag, + showDescription, + eventDate, + eventLocation, + eventTime + }) => { + let moreLink = null; + let moreHref = moreLinkUrl?.[0]?.['@id'] || ''; + if (isInternalURL(moreHref)) { + moreLink = ( + + {moreLinkText || moreHref} + + ); + } else if (moreHref) { + moreLink = {moreLinkText || moreHref}; + } + + let headerLink = null; + let headerHref = headerUrl?.[0]?.['@id'] || ''; + if (isInternalURL(headerHref)) { + headerLink = ( + + {header || headerHref} + + ); + } else if (headerHref) { + moreLink = {moreLinkText || headerHref}; + } + const getEventDate = (item) => { + let start = '', + end = ''; + + if (item.start) { + const parsedDate = new Date(Date.parse(item.start)); + start = `${parsedDate.toLocaleString('default', { + month: 'short', + })} ${parsedDate.getDate()}, ${parsedDate.getFullYear()}`; + } + + if (item.end) { + const parsedDate = new Date(Date.parse(item.end)); + end = `${parsedDate.toLocaleString('default', { + month: 'short', + })} ${parsedDate.getDate()}, ${parsedDate.getFullYear()}`; + } + if (end == start) { + return start + } else { + return start + ' - ' + end; + } + ; + }; + const getEventTime = (item) => { + let start = '', + end = ''; + + if (item.start) { + const parsedDate = new Date(Date.parse(item.start)); + start = `${parsedDate.toLocaleString( + 'default', + {hour: 'numeric', minute: 'numeric', hour12: true}, + )}`; + } + + if (item.end) { + const parsedDate = new Date(Date.parse(item.end)); + end = ` - ${parsedDate.toLocaleString( + 'default', + {hour: 'numeric', minute: 'numeric', hour12: true,} + )}`; + } + + return start + end; + }; + const hasImage = imageSide !== null; + const oneColumnElement = ['up', 'down', 'background', null].includes(imageSide); + const columnSize = oneColumnElement ? 1 : 2; + const imageGridWidth = oneColumnElement ? 12 : imageWidth ? imageWidth : 2; + const contentGridWidth = oneColumnElement + ? 12 + : hasImage + ? 12 - imageWidth + : 12; + const intl = useIntl(); + const TitleTag = titleTag ? titleTag : 'h3'; + const HeaderTag = headerTag ? headerTag : 'h3'; + moment.locale(intl.locale); + return ( + <> + {headerLink && + {headerLink ? headerLink : header} + } + + {!['background'].includes(imageSide) && ( + <>{items.map((item) => ( + + {['up', 'left'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + + {item.title} + + )} + )} + + + + {item.title ? item.title : item.id} + + + {item.location && eventDate | eventTime && +

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

|| null} + {eventLocation &&

{item.location}

} + {effectiveDate &&

{moment(item.effective).format('L')}

} + {showDescription && item.description && ( +

{item.description}

+ )} +
+ {['right', 'down'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + + {item.title} + + )} + )} +
+ ))} + )} + {['background'].includes(imageSide) && ( + <>{items.map((item) => ( + + +
+ +
+ {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + {item.title})} +
+
+ {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {item.title ? item.title : item.id} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} + )} +

+
+
+
+
+
+ ))} + )} +
+ + + ); + + +}; + +AdvancedCarouselBlockTemplate.propTypes = { + items: PropTypes.arrayOf(PropTypes.any).isRequired, + linkMore: PropTypes.any, + isEditMode: PropTypes.bool, +}; + +export default AdvancedCarouselBlockTemplate; diff --git a/src/AdvancedCarouselSchema.js b/src/AdvancedCarouselSchema.js new file mode 100644 index 0000000..fd77804 --- /dev/null +++ b/src/AdvancedCarouselSchema.js @@ -0,0 +1,83 @@ +import messages from './messages'; + +export const advancedCarouselSchema = (props) => { + const {intl, schema, formData} = props; + // const imageWidth = ['right', 'left'].includes(formData.imageSide) + // ? ['imageWidth'] + // : []; + const headingChoices = [ + ['h2', 'H2'], + ['h3', 'H3'], + ['h4', 'H4'], + ]; + return { + ...schema, + fieldsets: [ + ...schema.fieldsets, + { + id: 'carousel', + title: 'Carousel/Slider Options', + fields: ['howManyColumns', ], + }, + { + id: 'display', + title: intl.formatMessage(messages.itemDisplayOptions), + fields: ['titleTag', 'imageSide', 'showTitle', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], + }, + ], + properties: { + ...schema.properties, + titleTag: { + title: intl.formatMessage(messages.titleTag), + choices: headingChoices, + default: 'h2', + }, + howManyColumns: { + title: intl.formatMessage(messages.columnsCount), + choices: [ + [1, '1'], + [2, '2'], + [3, '3'], + [4, '4'], + ], + default: 2, + }, + imageSide: { + title: intl.formatMessage(messages.imagePosition), + choices: [ + [null, 'No image'], + ['background', 'background'], + ['up', 'up'], + ], + default: 'up', + }, + showTitle: { + title: 'Show Title', + type: 'boolean', + default: true, + }, + showDescription: { + title: intl.formatMessage(messages.descriptionTitle), + type: 'boolean', + default: true, + }, + effectiveDate: { + title: intl.formatMessage(messages.date), + type: 'boolean', + }, + eventDate: { + title: intl.formatMessage(messages.eventDate), + type: 'boolean', + }, + eventTime: { + title: intl.formatMessage(messages.eventTime), + type: 'boolean', + }, + eventLocation: { + title: intl.formatMessage(messages.eventLocation), + type: 'boolean', + }, + + }, + }; +}; diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 0eff67a..fe09e33 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -97,7 +97,7 @@ const AdvancedListingBlockTemplate = ({ return start + end; }; const hasImage = imageSide !== null; - const oneColumnElement = ['up', 'down', null].includes(imageSide); + const oneColumnElement = ['up', 'down', 'background', null].includes(imageSide); const columnSize = oneColumnElement ? 1 : 2; const imageGridWidth = oneColumnElement ? 12 : imageWidth ? imageWidth : 2; const contentGridWidth = oneColumnElement @@ -111,59 +111,14 @@ const AdvancedListingBlockTemplate = ({ moment.locale(intl.locale); return ( <> - + {headerLink && {headerLink ? headerLink : header} - - - {items.map((item) => ( - - - {['background'].includes(imageSide) && ( -
- -
- {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - {item.title})} -
-
- {item.location && eventDate | eventTime && - {eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}} || null} - {item.title ? item.title : item.id} -

- {eventLocation && {item.location}
} - {effectiveDate && {moment(item.effective).format('L')}
} - {showDescription && item.description && ( - {item.description} - )} -

-
-
-
- )} - +
} + + {!['background'].includes(imageSide) && ( + <>{items.map((item) => ( - {imageSide !== 'background' && ( + {['up', 'left'].includes(imageSide) && ( {!item.image_field && ( @@ -191,27 +146,23 @@ const AdvancedListingBlockTemplate = ({ /> )} - - )} - {imageSide !== 'background' && ( - - - - {item.title ? item.title : item.id} - - - {item.location && eventDate | eventTime && -

{eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}

|| null} - {eventLocation &&

{item.location}

} - {effectiveDate &&

{moment(item.effective).format('L')}

} - {showDescription && item.description && ( -

{item.description}

- )} - -
- )} + )} + + + + {item.title ? item.title : item.id} + + + {item.location && eventDate | eventTime && +

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

|| null} + {eventLocation &&

{item.location}

} + {effectiveDate &&

{moment(item.effective).format('L')}

} + {showDescription && item.description && ( +

{item.description}

+ )} +
{['right', 'down'].includes(imageSide) && ( {!item.image_field && ( @@ -240,14 +191,60 @@ const AdvancedListingBlockTemplate = ({ /> )} - - )} + )}
- - - ))} + ))} + )} + {['background'].includes(imageSide) && ( + <>{items.map((item) => ( + + +
+ +
+ {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + {item.title})} +
+
+ {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {item.title ? item.title : item.id} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} + )} +

+
+
+
+
+
+ ))} + )}
- {moreLink &&
{moreLink}
} ); }; diff --git a/src/advancedSchema.js b/src/AdvancedListingSchema.js similarity index 84% rename from src/advancedSchema.js rename to src/AdvancedListingSchema.js index c6623b4..be4130b 100644 --- a/src/advancedSchema.js +++ b/src/AdvancedListingSchema.js @@ -1,6 +1,6 @@ import messages from './messages'; -export const advancedSchema = (props) => { +export const advancedListingSchema = (props) => { const {intl, schema, formData} = props; // const imageWidth = ['right', 'left'].includes(formData.imageSide) // ? ['imageWidth'] @@ -14,26 +14,11 @@ export const advancedSchema = (props) => { ...schema, fieldsets: [ ...schema.fieldsets, - // { - // id: 'default', - // title: 'Default', - // fields: ['variation', 'headline', 'headlineTag'], - // }, - // { - // id: 'querystring', - // title: intl.formatMessage(messages.querystring), - // fields: ['querystring'], - // }, { id: 'display', title: intl.formatMessage(messages.itemDisplayOptions), fields: ['titleTag', 'howManyColumns', 'imageSide', 'imageWidth', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], }, - { - id: 'moreLink', - title: intl.formatMessage(messages.moreLinkConfiguration), - fields: ['moreLinkText', 'moreLinkUrl'], - }, ], properties: { ...schema.properties, @@ -50,7 +35,7 @@ export const advancedSchema = (props) => { [3, '3'], [4, '4'], ], - default: 4, + default: 2, }, imageWidth: { title: intl.formatMessage(messages.imageWidth), @@ -62,17 +47,17 @@ export const advancedSchema = (props) => { [5, '5/12'], [6, '6/12'], ], - default: 2, + default: 4, }, imageSide: { title: intl.formatMessage(messages.imagePosition), choices: [ [null, 'No image'], + ['background', 'background'], ['up', 'up'], ['left', 'left'], ['right', 'right'], ['down', 'down'], - ['background', 'background'], ], default: 'up', }, diff --git a/src/index.js b/src/index.js index 2b7763a..d278054 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,8 @@ import AdvancedListingBlockTemplate from './AdvancedListingBlockTemplate'; -import { advancedSchema } from './advancedSchema'; +import AdvancedCarouselBlockTemplate from './AdvancedCarouselBlockTemplate'; +import {advancedSchema} from './advancedSchema'; +import {advancedListingSchema} from './AdvancedListingSchema'; +import {advancedCarouselSchema} from './AdvancedCarouselSchema'; const applyConfig = (config) => { config.blocks.blocksConfig.listing.variations = [ @@ -8,7 +11,13 @@ const applyConfig = (config) => { id: 'advanced', title: 'Advanced', template: AdvancedListingBlockTemplate, - schemaEnhancer: advancedSchema, + schemaEnhancer: advancedListingSchema, + }, + { + id: 'advancedCarousel', + title: 'Carousel', + template: AdvancedCarouselBlockTemplate, + schemaEnhancer: advancedCarouselSchema, }, ]; return config; diff --git a/src/messages.js b/src/messages.js index 1132560..aaf82b8 100644 --- a/src/messages.js +++ b/src/messages.js @@ -55,7 +55,7 @@ const messages = defineMessages({ }, imageWidthDescription: { id: 'Left/Right image width (default 2/12)', - defaultMessage: 'Left/Right image width (default 2/12)', + defaultMessage: 'Left/Right image width (default 4/12)', }, imagePosition: { id: 'Image position', From 45b4ee33ef9fc493b9fe1e981573768c7dc896c4 Mon Sep 17 00:00:00 2001 From: rnunez Date: Fri, 9 Dec 2022 20:17:08 -0500 Subject: [PATCH 20/26] slider working, needs more option and adjust width when editing --- src/AdvancedCarouselBlockTemplate.jsx | 150 ++++++-------------------- src/messages.js | 8 -- 2 files changed, 33 insertions(+), 125 deletions(-) diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx index b9e0a9b..bc86f39 100644 --- a/src/AdvancedCarouselBlockTemplate.jsx +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -123,6 +123,7 @@ const AdvancedCarouselBlockTemplate = ({ {headerLink && {headerLink ? headerLink : header} } + - {!['background'].includes(imageSide) && ( - <>{items.map((item) => ( - - {['up', 'left'].includes(imageSide) && ( - - {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - - {item.title} - - )} - )} - - - - {item.title ? item.title : item.id} - - - {item.location && eventDate | eventTime && -

{eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}

|| null} - {eventLocation &&

{item.location}

} - {effectiveDate &&

{moment(item.effective).format('L')}

} - {showDescription && item.description && ( -

{item.description}

- )} -
- {['right', 'down'].includes(imageSide) && ( - +{items.map((item) => ( + +
+ +
{!item.image_field && ( )} {item.image_field && ( - - {item.title} - - )} - )} - - ))} - )} - {['background'].includes(imageSide) && ( - <>{items.map((item) => ( - - -
- -
- {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - {item.title})} -
-
- {item.location && eventDate | eventTime && - {eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}} || null} - {item.title ? item.title : item.id} -

- {eventLocation && {item.location}
} - {effectiveDate && {moment(item.effective).format('L')}
} - {showDescription && item.description && ( - {item.description} - )} -

-
-
+ {item.title})} +
+
+ {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {item.title ? item.title : item.id} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} + )} +

-
-
- ))} - )} +
+
+ ))} diff --git a/src/messages.js b/src/messages.js index aaf82b8..847be9f 100644 --- a/src/messages.js +++ b/src/messages.js @@ -13,14 +13,6 @@ const messages = defineMessages({ id: 'Header text', defaultMessage: 'Header text', }, - headerDescription: { - id: 'Header description', - defaultMessage: 'Block header text', - }, - headerDescription: { - id: 'Header description', - defaultMessage: 'Block header text', - }, headerUrl: { id: 'Header url', defaultMessage: 'Header url or object', From 50b66a53b62c2608e407660547615298a89d1288 Mon Sep 17 00:00:00 2001 From: rnunez Date: Mon, 12 Dec 2022 11:40:26 -0500 Subject: [PATCH 21/26] Slider working with options, styles needs refinement --- src/AdvancedCarouselBlockTemplate.jsx | 160 ++++++++++++++++++++------ src/AdvancedCarouselSchema.js | 32 +++++- 2 files changed, 154 insertions(+), 38 deletions(-) diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx index bc86f39..5df69c2 100644 --- a/src/AdvancedCarouselBlockTemplate.jsx +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -34,7 +34,10 @@ const AdvancedCarouselBlockTemplate = ({ showDescription, eventDate, eventLocation, - eventTime + eventTime, + slidesToScroll, + autoPlay, + autoplaySpeed }) => { let moreLink = null; let moreHref = moreLinkUrl?.[0]?.['@id'] || ''; @@ -127,11 +130,12 @@ const AdvancedCarouselBlockTemplate = ({ -{items.map((item) => ( - -
- -
+ {['background'].includes(imageSide) && ( + items.map((item) => ( +
+ +
+ {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + {item.title})} +
+
+ {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {item.title ? item.title : item.id} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} + )} +

+
+
+
+ )) + )} + {!['background'].includes(imageSide) && ( + items.map((item) => ( + + {['up', 'left'].includes(imageSide) && ( + {!item.image_field && ( )} {item.image_field && ( - {item.title})} -
-
- {item.location && eventDate | eventTime && - {eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}} || null} - {item.title ? item.title : item.id} -

- {eventLocation && {item.location}
} - {effectiveDate && {moment(item.effective).format('L')}
} - {showDescription && item.description && ( - {item.description} - )} -

-
-
-
- ))} + + {item.title} + + )} + )} + + + + {item.title ? item.title : item.id} + + + {item.location && eventDate | eventTime && +

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

|| null} + {eventLocation &&

{item.location}

} + {effectiveDate &&

{moment(item.effective).format('L')}

} + {showDescription && item.description && ( +

{item.description}

+ )} +
+ {['right', 'down'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + + {item.title} + + )} + )} + + )) + )} +
diff --git a/src/AdvancedCarouselSchema.js b/src/AdvancedCarouselSchema.js index fd77804..e2d71d0 100644 --- a/src/AdvancedCarouselSchema.js +++ b/src/AdvancedCarouselSchema.js @@ -17,7 +17,7 @@ export const advancedCarouselSchema = (props) => { { id: 'carousel', title: 'Carousel/Slider Options', - fields: ['howManyColumns', ], + fields: ['howManyColumns', 'slidesToScroll', 'autoPlay','autoplaySpeed'], }, { id: 'display', @@ -42,6 +42,36 @@ export const advancedCarouselSchema = (props) => { ], default: 2, }, + slidesToScroll: { + title: 'Slides to scroll', + choices: [ + [1, '1'], + [2, '2'], + [3, '3'], + [4, '4'], + ], + default: 1, + }, + autoPlay: { + title: "Autoplay", + type: 'boolean', + default: true + }, + autoplaySpeed: { + title: 'Speed Autoplay', + type: 'number', + choices: [ + [3, '3'], + [4, '4'], + [5, '5'], + [6, '6'], + [7, '7'], + [8, '8'], + [9, '9'], + [10, '10'], + ], + default: 5000 + }, imageSide: { title: intl.formatMessage(messages.imagePosition), choices: [ From 773ab13b0258aa88c6de78e194dd41a794d11d87 Mon Sep 17 00:00:00 2001 From: rnunez Date: Tue, 13 Dec 2022 15:34:02 -0500 Subject: [PATCH 22/26] refined styles to make sure it display properly --- src/Advanced.css | 268 +++++++++++++++++++++ src/AdvancedCarouselBlockTemplate.jsx | 328 +++++++++++++------------- src/AdvancedCarouselSchema.js | 2 +- src/AdvancedListingBlockTemplate.jsx | 17 +- src/placeholder.png | Bin 0 -> 7144 bytes 5 files changed, 446 insertions(+), 169 deletions(-) create mode 100644 src/Advanced.css create mode 100644 src/placeholder.png diff --git a/src/Advanced.css b/src/Advanced.css new file mode 100644 index 0000000..692d565 --- /dev/null +++ b/src/Advanced.css @@ -0,0 +1,268 @@ +/* Start existing-content-backgroundimage */ + +.backgroundimage { + background: #000; + aspect-ratio: 16/9; + object-fit: cover; + position: relative; + overflow: hidden; + width: 100%; +} + +.backgroundimage .info-text { + color: #fff; + width: 100%; + display: block; + position: absolute; + bottom: 0px; + left: 0px; + z-index: 2; + background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, #000 75%); + padding: 0 0.5em; + height: auto; +} + +.backgroundimage .info-text h2, +.backgroundimage .info-text h3, +.backgroundimage .info-text h4 { + color: #fff; + text-shadow: 1px 1px 10px #000; + margin-bottom: 5px; +} + +.card h2, .card h3, .card h4 { + margin-top: 0; +} + +.backgroundimage .info-text p { + margin: 0em; +} + +.backgroundimage .focuspoint img { + aspect-ratio: 16/9; + object-fit: cover; + z-index: 1 +} + +.backgroundimage:hover .info-text p { + height: 5em; + transition: 0.5s; +} + +.backgroundimage a:hover .focuspoint { + filter: drop-shadow(2px 4px 6px black); + transition: 0.5s; +} + +.backgroundimage .info-text p { + height: 0.2em; + overflow: hidden; + transition: 0.5s; +} + +.backgroundimage:hover .info-text p.date { + height: 1.5em; + transition: 0.5s; +} + +.backgroundimage:hover { + box-shadow: 1px 6px 8px; + transition: 0.5s; +} + +.backgroundimage .event-when { + background: #ef4035; + padding: 0 0.5em; +} + +/* End existing-content-backgroundimage */ + +/* Start Slick */ +.slick-slide { + padding: 0 0.5em 0.5em 0.5em; +} + +.backgroundimage h2, .backgroundimage h3, .backgroundimage h4 { + margin-top: 0 !important; +} + +.top h2, .top h3, .top h4 { + margin-top: 0 !important; +} + +.advancedCarousel { + max-width: 100vw !important; +} + +.advancedCarousel { + width: calc(100% + 1em); + margin-left: -0.5em +} + +.slick-prev:before, .slick-next:before { + color: #000; + box-shadow: 0px 1px 2px 0 rgba(0, 0, 0, 0.75); + border-radius: 50%; + background: #ef4035; + padding: 2px 1px 0 1px; +} + +.advancedCarousel.has--stretch--stretch { + margin-left: 0; +} + +.advancedCarousel.has--stretch--stretch { + margin-left: 0; +} + +.advancedCarousel.has--stretch--stretch .slick-slide { + padding: 0; +} + +/*@media screen and (min-width: 767px) and (max-width: 1790px) {*/ +/* body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar-collapsed) .stretch .advancedCarousel {*/ +/* margin: 0 0 0 186px;*/ +/* width: calc(100% - 80px);*/ +/* }*/ + +/* body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar) .stretch .advancedCarousel {*/ +/* margin: 0 0 0 166px;*/ +/* width: calc(100% - 20px);*/ + +/* }*/ +/*}*/ +@media only screen and (max-width: 1222px) { + .view-editview .advancedCarousel { + max-width: calc(100vw - 475px) !important; + } +} + +@media only screen and (min-width: 1223px) and (max-width: 1446px) { + .view-editview .advancedCarousel { + max-width: 730px !important; + } +} + +@media only screen and (min-width: 1447px) and (max-width: 1654px) { + .view-editview .advancedCarousel { + max-width: 940px !important; + } +} + +@media only screen and (min-width: 1655px) { + .view-editview .advancedCarousel { + max-width: 1134px !important; + } +} + +@media screen and (max-width: 766px) { + .view-editview .advancedCarousel { + max-width: calc(100vw - 28px) !important; + } + + .styled-listing.has--stretch--stretch.styled.stretch { + left: calc(50% - 50vw) !important; + width: 100vw !important; + margin: 0 !important + } +} + +@media screen and (min-width: 767px) { + body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar-collapsed) .stretch { + max-width: 100vw !important; + width: calc(100vw - 80px) !important; + margin: 0 0 0 40px !important; + left: calc(50% - 50vw); + } + + body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar) .stretch { + max-width: 100vw !important; + width: calc(100vw - 20px) !important; + margin: 0 0 0 10px !important; + left: calc(50% - 50vw); + } +} + + +@media (max-width: 766px) { + .advancedCarousel .slick-prev { + z-index: 2; + transform: translateX(0); + opacity: 0 + } + + .advancedCarousel:hover .slick-prev { + transform: translateX(42px); + opacity: 1; + transition: 1s; + } + + .advancedCarousel .slick-next { + z-index: 2; + transform: translateX(0); + opacity: 0 + } + + .advancedCarousel:hover .slick-next { + transform: translateX(-42px); + opacity: 1; + transition: 1s; + } +} + +.advancedCarousel .column1 .slick-prev { + z-index: 2; + transform: translateX(0); + opacity: 0 +} + +.advancedCarousel:hover .column1 .slick-prev { + transform: translateX(42px); + opacity: 1; + transition: 1s; +} + +.advancedCarousel .column1 .slick-next { + z-index: 2; + transform: translateX(0); + opacity: 0 +} + +.advancedCarousel:hover .column1 .slick-next { + transform: translateX(-42px); + opacity: 1; + transition: 1s; +} +.advancedCarousel .column1 .backgroundimage:hover { + box-shadow: 0 0 0; +} +.advancedCarousel .ui.one.column.grid { + padding: 0; + margin: 0; +} + +.advancedCarousel .twelve.wide.column.advanced-item { + padding: 0; + margin: 0;} +.slick-dots { + position: absolute; + bottom: -7px;} +/* End Slick */ + +/* start listing */ +.ui.one.column.grid.advanced-item { + padding: 0; + margin: 0; +} + +.ui.one.column.grid.advanced-item .column { + padding: 0.5em; + margin: 0; +} + +.block.listing.advanced .ui.stackable.three.column.grid { + margin: 1em -0.5em +} + +/* end listing */ + diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx index 5df69c2..835e700 100644 --- a/src/AdvancedCarouselBlockTemplate.jsx +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import {ConditionalLink} from '@plone/volto/components'; import {flattenToAppURL} from '@plone/volto/helpers'; -import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; +import DefaultImageSVG from './placeholder.png'; import {isInternalURL} from '@plone/volto/helpers/Url/Url'; import {Grid, Image} from 'semantic-ui-react'; import moment from 'moment'; @@ -11,9 +11,11 @@ import {useIntl} from 'react-intl'; import {Button, Icon} from 'semantic-ui-react'; import loadable from '@loadable/component'; import Slider from "react-slick"; +import './Advanced.css'; -import 'slick-carousel/slick/slick.css'; -import 'slick-carousel/slick/slick-theme.css'; +// +// import 'slick-carousel/slick/slick.css'; +// import 'slick-carousel/slick/slick-theme.css'; import UniversalCard from '@eeacms/volto-listing-block/components/UniversalCard/UniversalCard'; import ResponsiveContainer from '@eeacms/volto-listing-block/components/ResponsiveContainer'; @@ -31,6 +33,7 @@ const AdvancedCarouselBlockTemplate = ({ howManyColumns, effectiveDate, titleTag, + showTitle, showDescription, eventDate, eventLocation, @@ -127,171 +130,176 @@ const AdvancedCarouselBlockTemplate = ({ {headerLink ? headerLink : header} } - = 3 ? [ + { + breakpoint: 1169, + settings: { + slidesToShow: 3, + }, }, - }, - { - breakpoint: 600, - settings: { - slidesToShow: 2, - slidesToScroll: 1, - initialSlide: 2, + { + breakpoint: 991, + settings: { + slidesToShow: 2, + slidesToScroll: 1, + }, }, - }, - { - breakpoint: 480, - settings: { - slidesToShow: 1, - slidesToScroll: 1, + { + breakpoint: 767, + settings: { + slidesToShow: 1, + slidesToScroll: 1, + }, }, - }, - ]} - > - {['background'].includes(imageSide) && ( - items.map((item) => ( -
- -
- {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - {item.title})} -
-
- {item.location && eventDate | eventTime && - {eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}} || null} - {item.title ? item.title : item.id} -

- {eventLocation && {item.location}
} - {effectiveDate && {moment(item.effective).format('L')}
} - {showDescription && item.description && ( - {item.description} - )} -

+ ] : [ + { + breakpoint: 767, + settings: { + slidesToShow: 1, + slidesToScroll: 1, + }, + }, + ]} + > + {['background'].includes(imageSide) && ( + items.map((item) => ( +
+ +
+ {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + {item.title})} +
+
+ {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {showTitle && {item.title ? item.title : item.id}} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} + )} +

+
+
- -
- )) - )} - {!['background'].includes(imageSide) && ( - items.map((item) => ( - - {['up', 'left'].includes(imageSide) && ( - - {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( + )) + )} + {!['background'].includes(imageSide) && ( + items.map((item) => ( + + {['up', 'left'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + + {item.title} + + )} + )} + + {showTitle && + - {item.title} - - )} - )} - - - - {item.title ? item.title : item.id} - - - {item.location && eventDate | eventTime && -

{eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}

|| null} - {eventLocation &&

{item.location}

} - {effectiveDate &&

{moment(item.effective).format('L')}

} - {showDescription && item.description && ( -

{item.description}

- )} -
- {['right', 'down'].includes(imageSide) && ( - - {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - - {item.title} + {item.title ? item.title : item.id} + } + {item.location && eventDate | eventTime && +

{eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}

|| null} + {eventLocation &&

{item.location}

} + {effectiveDate &&

{moment(item.effective).format('L')}

} + {showDescription && item.description && ( +

{item.description}

)} -
)} -
- )) - )} +
+ {['right', 'down'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + + {item.title} + + )} + )} +
+ )) + )} - + ); diff --git a/src/AdvancedCarouselSchema.js b/src/AdvancedCarouselSchema.js index e2d71d0..57929a1 100644 --- a/src/AdvancedCarouselSchema.js +++ b/src/AdvancedCarouselSchema.js @@ -17,7 +17,7 @@ export const advancedCarouselSchema = (props) => { { id: 'carousel', title: 'Carousel/Slider Options', - fields: ['howManyColumns', 'slidesToScroll', 'autoPlay','autoplaySpeed'], + fields: ['howManyColumns', 'slidesToScroll', 'autoPlay', 'autoplaySpeed'], }, { id: 'display', diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index fe09e33..3295ab7 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -3,7 +3,8 @@ import PropTypes from 'prop-types'; import {ConditionalLink} from '@plone/volto/components'; import {flattenToAppURL} from '@plone/volto/helpers'; -import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; +// import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg'; +import DefaultImageSVG from './placeholder.png'; import {isInternalURL} from '@plone/volto/helpers/Url/Url'; import {Grid, Image} from 'semantic-ui-react'; import moment from 'moment'; @@ -114,10 +115,10 @@ const AdvancedListingBlockTemplate = ({ {headerLink && {headerLink ? headerLink : header} } - + {!['background'].includes(imageSide) && ( - <>{items.map((item) => ( - + items.map((item) => ( + {['up', 'left'].includes(imageSide) && ( {!item.image_field && ( @@ -193,11 +194,11 @@ const AdvancedListingBlockTemplate = ({ )} )} - ))} + )) )} {['background'].includes(imageSide) && ( - <>{items.map((item) => ( - + items.map((item) => ( +
@@ -242,7 +243,7 @@ const AdvancedListingBlockTemplate = ({
- ))} + )) )}
diff --git a/src/placeholder.png b/src/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..743d0f3bce1bead43d482a77b5e95162ad89b6a5 GIT binary patch literal 7144 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 z z%_WUHx-ts*1X*4^MH?1uobsvh?T^Oe(uSr*fL!N=aEw2TU}1zdxs%~R@UwHA*N1xQ zf1DqG;!)1>q_-Nxp$bcb@GmjOV{dQgroI96tCOrq5v|2p*>ke1AAQC|b5jce8@Mcu zIYB|r^l<8Q!cv>V^{Fy>yvKtZ5UKL95c9LEVJCEb3`;SIEhaB78E$YCV(#+=wo$X} zeL9YJP~e99SfnkP_C`vqO=uNZU@jQOjbfcG(JQnetIuzHdFOx5#qW}jWUg}-IJ6hC zK65eVNc^V{rMji*>T9Zr;XsNMnrbOX*iKdZ1mm`ofJ`I4G1{XeCTSjOwjUJn1tu8P zq|iK(j+Gvj{_PG@S9D|gDE6@fTL0E1VZ&8U-JN^&d2_1qp-z^Hiq;P36_@tb!4-Ea zGq5O9tI45n$y$(y$3~biQ`sDXtEnibl2wL|iz-OFsl zp;8LPiv=XCB}>PB+cWdWs~c z8vx|?Y16Q>rz7*O_ifA7@qvPVbs(|+_o-ewO8DJr_llVrYM0R=hOqsXvt=4-qJAj=Y4v8|j=aB7=$dmRy|>7~8a`z!a*XKn;mzrSe?OR*aze_0AXv z?t44MXMBP!Ci}2qNxY%T5DSK&qhTNVi@y7zQ&aDjoY4$4uh1I^OJjt0Ybo$i3PcFk zsOn6+ofR{WC+M09B!85^WE&m}4n!Y+U10cZR}4-^*#!vr1*zkg&7xiXKjeMxHWuP) zSw6Sq{Et#UJ^Hj_#joiS`vMUxo#;j0=u=d^X(K^EZX5(=#FNXJ7qR7~s(<2{(kVNe zHl0#!FGjJ}k!XG-rdw6GE8Z{G()USBwB@Yh{#&6Y}Sg2%vvt*8!QJ({r!&Fit6)3B@tzb zfom%`yBhaqb4~tK}Pd`=a`<+tXXU3%Mq&NrVJX~QX~0BnLLg{Qzi)@%3VwtR zc0@|cJYyl+3*_hp;O01R{#t2TJ&Ylof96GQ@Dvw>~nnhb-;!z0!~`}@O4Ba zW%8La-pGuysTE!O2g@)x&S*x#C!d+Ev*oH^(1{vX!Wtsb3H@NcojSi;;)Lf{bOXjOt#h`Z!nV;OK2tRh(cZFg$B5Dl lQl#+z@74TQ_G!Wir$FusAT2jsRQ`7dj2@alsJ`zW`@b-V?5O|% literal 0 HcmV?d00001 From 56c64ebafc02e4c1e5a5bc3a3640386d5fba6158 Mon Sep 17 00:00:00 2001 From: rnunez Date: Wed, 14 Dec 2022 09:11:06 -0500 Subject: [PATCH 23/26] pixel perfect --- src/Advanced.css | 17 +++++++++-------- src/AdvancedCarouselBlockTemplate.jsx | 18 ++++++++++-------- src/AdvancedCarouselSchema.js | 2 +- src/AdvancedListingBlockTemplate.jsx | 13 +++++++------ src/AdvancedListingSchema.js | 9 +++++++-- src/placeholder.png | Bin 7144 -> 6178 bytes 6 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/Advanced.css b/src/Advanced.css index 692d565..e1e24ee 100644 --- a/src/Advanced.css +++ b/src/Advanced.css @@ -71,7 +71,7 @@ } .backgroundimage .event-when { - background: #ef4035; + background: #b11116; padding: 0 0.5em; } @@ -103,7 +103,7 @@ color: #000; box-shadow: 0px 1px 2px 0 rgba(0, 0, 0, 0.75); border-radius: 50%; - background: #ef4035; + background: #2e3233; padding: 2px 1px 0 1px; } @@ -245,8 +245,7 @@ padding: 0; margin: 0;} .slick-dots { - position: absolute; - bottom: -7px;} + bottom: -1em !important;} /* End Slick */ /* start listing */ @@ -259,10 +258,12 @@ padding: 0.5em; margin: 0; } - -.block.listing.advanced .ui.stackable.three.column.grid { - margin: 1em -0.5em +.block.listing.advanced .ui.stackable.one.column.grid, +.block.listing.advanced .ui.stackable.two.column.grid, +.block.listing.advanced .ui.stackable.three.column.grid, +.block.listing.advanced .ui.stackable.four.column.grid { + margin: 0 -0.5em 0 -0.5em } - +.event-when {font-weight: bold;} /* end listing */ diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx index 835e700..569f39f 100644 --- a/src/AdvancedCarouselBlockTemplate.jsx +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -5,10 +5,9 @@ import {flattenToAppURL} from '@plone/volto/helpers'; import DefaultImageSVG from './placeholder.png'; import {isInternalURL} from '@plone/volto/helpers/Url/Url'; -import {Grid, Image} from 'semantic-ui-react'; +import {Grid, Image, Label, Icon} from 'semantic-ui-react'; import moment from 'moment'; import {useIntl} from 'react-intl'; -import {Button, Icon} from 'semantic-ui-react'; import loadable from '@loadable/component'; import Slider from "react-slick"; import './Advanced.css'; @@ -123,9 +122,11 @@ const AdvancedCarouselBlockTemplate = ({ const intl = useIntl(); const TitleTag = titleTag ? titleTag : 'h3'; const HeaderTag = headerTag ? headerTag : 'h3'; + const AutoPlay = autoPlay ? autoPlay : '1'; + const AutoPlaySpeed = autoplaySpeed ? autoplaySpeed : '3'; moment.locale(intl.locale); return ( - <> +
{headerLink && {headerLink ? headerLink : header} } @@ -137,8 +138,8 @@ const AdvancedCarouselBlockTemplate = ({ speed={500} slidesToShow={howManyColumns ? howManyColumns : 1} slidesToScroll={slidesToScroll ? slidesToScroll : 1} - autoplay={autoPlay} - autoplaySpeed={autoplaySpeed * 1000} + autoplay={AutoPlay} + autoplaySpeed={AutoPlaySpeed * 1000} pauseOnHover={true} arrows={true} responsive={howManyColumns >= 3 ? [ @@ -257,9 +258,10 @@ const AdvancedCarouselBlockTemplate = ({ } {item.location && eventDate | eventTime && -

{eventDate && {getEventDate(item)}} +

+ {eventDate && {getEventDate(item)}} {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}

|| null} + {eventTime && {getEventTime(item)}}
|| null} {eventLocation &&

{item.location}

} {effectiveDate &&

{moment(item.effective).format('L')}

} {showDescription && item.description && ( @@ -301,7 +303,7 @@ const AdvancedCarouselBlockTemplate = ({ - +
); diff --git a/src/AdvancedCarouselSchema.js b/src/AdvancedCarouselSchema.js index 57929a1..331a044 100644 --- a/src/AdvancedCarouselSchema.js +++ b/src/AdvancedCarouselSchema.js @@ -20,7 +20,7 @@ export const advancedCarouselSchema = (props) => { fields: ['howManyColumns', 'slidesToScroll', 'autoPlay', 'autoplaySpeed'], }, { - id: 'display', + id: 'carouselDisplay', title: intl.formatMessage(messages.itemDisplayOptions), fields: ['titleTag', 'imageSide', 'showTitle', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], }, diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 3295ab7..4930e8e 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -26,7 +26,8 @@ const AdvancedListingBlockTemplate = ({ showDescription, eventDate, eventLocation, - eventTime + eventTime, + showTitle }) => { let moreLink = null; let moreHref = moreLinkUrl?.[0]?.['@id'] || ''; @@ -115,10 +116,10 @@ const AdvancedListingBlockTemplate = ({ {headerLink && {headerLink ? headerLink : header} } - + {!['background'].includes(imageSide) && ( items.map((item) => ( - + {['up', 'left'].includes(imageSide) && ( {!item.image_field && ( @@ -149,11 +150,11 @@ const AdvancedListingBlockTemplate = ({ )} )} - + {showTitle && {item.title ? item.title : item.id} - + } {item.location && eventDate | eventTime &&

{eventDate && {getEventDate(item)}} {eventTime && eventDate && | } @@ -230,7 +231,7 @@ const AdvancedListingBlockTemplate = ({ {eventDate && {getEventDate(item)}} {eventTime && eventDate && | } {eventTime && {getEventTime(item)}} || null} - {item.title ? item.title : item.id} + {showTitle && {item.title ? item.title : item.id}}

{eventLocation && {item.location}
} {effectiveDate && {moment(item.effective).format('L')}
} diff --git a/src/AdvancedListingSchema.js b/src/AdvancedListingSchema.js index be4130b..ea7ce6d 100644 --- a/src/AdvancedListingSchema.js +++ b/src/AdvancedListingSchema.js @@ -15,9 +15,9 @@ export const advancedListingSchema = (props) => { fieldsets: [ ...schema.fieldsets, { - id: 'display', + id: 'listingDisplay', title: intl.formatMessage(messages.itemDisplayOptions), - fields: ['titleTag', 'howManyColumns', 'imageSide', 'imageWidth', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], + fields: ['titleTag', 'howManyColumns', 'imageSide', 'imageWidth', 'showTitle', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], }, ], properties: { @@ -61,6 +61,11 @@ export const advancedListingSchema = (props) => { ], default: 'up', }, + showTitle: { + title: 'Show Title', + type: 'boolean', + default: true, + }, showDescription: { title: intl.formatMessage(messages.descriptionTitle), type: 'boolean', diff --git a/src/placeholder.png b/src/placeholder.png index 743d0f3bce1bead43d482a77b5e95162ad89b6a5..0b19272587c16265aa35385f7d364e02cd0fae5d 100644 GIT binary patch literal 6178 zcmeHLc{r49+rKCg528pE)1Z`QV=OZa*$L%gdQz#3nZaNdGs6r;)1oZxmQ*T=Y?Uob zp+$IP>nXeJN=ULVS^92m$Mb&g`)%)^-_d>C_c7Ofoxkf`e%E=P$9+wh!%iznaYbY8xtuvSm8TiNPFABLqa+E!j&T;iQ7>_My;}r=hpt z$K}?o@qPMA=0X-cJj5hxS|~tFqqj>#m)IfQp%|3YSFFdJ$|#<~d0hV#7i0u1T{F$E zhNKBmcF2u|0u@7Dr1ECoGI1j8*fPQPScF8_#Cc)RH8(mk1W9Lvmv`0Bw*$avUVf@u zfBvY$+RC@$KE$`<0c}N(;P%fC2T=u4Tag zwc4~W$kTAzD!lzR*uJT9O&It~3OHZBy(R)=x&n>Li=iB$%xl2)QbKhUaQy@X*SE-1 zmaS3%uD4c6I0=bOfu|R&EJlEswvfh|s0{w=JuVw-od6igrbN8E6h#zaY1~y3K|zsS6?WD22(*_`k|WV-4Hj# z5Ys+)kIUDtd27l@&_hxWP0rq2c~t1oWX?NC+SznsE<94C@;4D>nXVHOIa=9KY{UJV zR)zasGgcn$M9z=%>>^fej(F#m>Tt%&w)CMaO}w`1Qn;G9P0X6h)?XsSj^+$W#};`5 z*M{H~Q>ObJ3M*F(T}Hw(`vvMl!r(2h^LXm3RVx5y#feCsG(gW@`?A4v9f)tav}QdJ ztd$9oh#rf3p&$eVVpsQfG($Mv0osdb3m1vBKfklhZ; z)iY)COy!17?MpdrsV|IR3D=g06bLtU$r}m|DhS@A#hI?_O;%}@m^+8+x(Q<8jiIU~ z7VaB^t~j>n@^cUK%tRGwAFor|+TZX{F?5~bH!2AdhhD^zZ8 zNm2GX)tcZ^uOw-D`>$C~@ke4cRuZoyJ=OP}P&U2xDyLs=LcTS^$m&n@(|!d}?NT2! zvi!Me7Ju8iNODz{+g;)GXNp<6cUKo4n{-ocJ}eye6yCL5>A1nh3+T%*wQcZio1xN$PFyn>Rg+j4ctL`q$vLYyrVU@*IC7CVa%5X_%5O;&JN zzhyCsA0FknJvDxPV%#m4 zH8(}l$|u~)wdJZMs{{LRedIm^xtQ>K;)g5}vrUusCGCCps8V8gT3Tva{-AKfkp}UG z+i81tTh*s{xqBJv9BXCgdgb5gIbM6;?_K62`zEf&BRR{qxihP<<@Qy@tJ>JxI^)=Mon2m2Z1lNx zr(eG4it;_jVsMP?UR~=USQt_lqRO{4B^NbZO?#K5-ng~V>-D3gNfV`}sk)s_9f|F? z7OYRllap58k4(?8eP2{tL7XB^rm;D&2?|? z^L8@LZ{Gftbo0&=i!V`&nL<^rF~>?>Bc9Ptcob|JKI_pH%@;NDO7T|kOu@E!H`DbQ z6b7~_?BiE*joR$Y&2y6d31Ih~m9m7d<1lADuT8kp?& z65E4qqP?c+)D1VIeTwL8A4Q+fKDfMRc_Mj;Jk*fgP|ru*7Qfb@JYM$8%#7TlUGd%M zHwjM@YP$8TG_4ZIxxF<5)dP!ld+eCk7ulyKe;Yk>KzkUU6=xdPh|e_$V*C5X80g`p z3u6n^9u2V`KBsb?7bLYs+&AB&(j<3(vrA_ou5e4+xq^j3M(>T`;J<=A@66hbR<~YR zP_|SSK3}X{oHMdFEN7~Ea1uMQhTq6H8r7PT4QL3E4BQ`>9H255+)e(ZI*scak9l9d zzucfVVs^!h{G9(BZKh^2eeCcM^X<)^&Msrct~HrzU3M@GT7%`(wc)Yyp^A+6=WG41 z6#MvFty0y{O4-_Ples(7umG`K^2&y6+}rN;b-33!M8c{{>Gt)XHL4ALes4bCoj8&? zGB}bfBPC<2idWrxQ9@PP@^RQ$*w%wHET}~ zw@1zQ-sszz{+UNJSpmW0d9_N`tQ{IV3J9G?f;;AICAjjGZTb%#{1RNdUzxkP+4Vdt zJ%8N68gm2Luek@u@Q~K_$dpizIIvoo#33&FQ0h9hld{TUm z{8YwD=Q@W(M>W)=oW`J!!+t0IF8Q^8NY3bdyvWH)nPGb$#~ z+1ROJt@qgnlx&oel$gx1Hg3F2vEh@VqnwJqKEzB+4wmOawS~iDKJDmJ%()sK zlo*7YyU}RbSWVwk88q=P=(szu9^vm&ow4K4C7|L`T`T+f`_eY%3 z9RKjO!*8-w=ttX*mW-HB+SEi+lRcBgciG3)8Wa32{oUXCRJJTmg?yB*ExS?JBGd6I z$f$q5Ok#0utzRJT#^Zk9(Ngt%+dokpRKAPvivc`C*M5hXTZ}tOux4`K z{+HD^oSFz3H;cOu_m!su$C3~=yyX%pyXgjv=|;9j){r6d-ra0b8|^a zNli^netv#$Z*M|Eg76Luhg_Co}0t5{2nT zMe^w^2n~RtF`q>udsDeEH>wAXL4bcMd;*8jCrcrR%R|wae05@4O2y?b~fSEDbR2UA4 zMv&2HG)xbN#OPtjT6*pzw{0*jw3ZeMt&hS$pVnGMw#0Ee9Y76qO4Q!Rt@ohgVj6raRGVUXyhsJ;RzV4S|7fZ6XGX$KvqX+6c4`9*zD6wP#Xj?g9S{)y1PRc(ndMK%u;$khrA(5lkWD z-I;7U2@07;CwWj&EQSXh_LE4w8PkW!h72!x_xE`l=n%(dy3>3h!9N}5zPf8~kGElP zxFiOdYGY1-L-ZhNGzwmqOrmJHko@MAsY|G0h^n+DY($>-nJvs9f+*@L&HaiDz-_+C6tRNwC-9~$gy!r)2dr9vRU z$x9hPrNF;W)BbG+zNzJTQX!@POhu$Hoc*fkYVdh_nVyZFA9J z!~42c5xF}H1DNa9*&Kve_JP%>asCQ?5*8Uy)(-jm%hy_P z8{d6!|6#6U*n@ad`*_OB;LXUx)x_X`ley}3FT4N)5oRuPniB-~%mCc!TG8M{(Ui`i zVO&|s@d`ty>u6?elOowgjTv~+-UJgOM4vLY-7%HCIzEruiytqYVxdF^^_^`if=ay2 zMfQMnx#}O9oBF8RZU;aZK}$%9)lZi?e%!$4cTDn*c~W|Trt+2NsrpF^F_E+&_lqum z`~bmRKWMMzZ~D^13C*>>qF#743iT_<{j!TUAK_GlcdVR`K5(rUt_EnsT5B&%nX+gu zp1jlS#_2d<*(ju+UJ5KRnz&THn6{IRkDjNZ?P=*;$)lH9Z=k*mlp`qqGZS&dsJtU?@zWx|1ith>gYar_IgnfEz}j*sJS8Bf>u`Q%H3 z{h_7LxLE1b=U1F>^IG-~e_4CF5McKb>5nFf515gymwjXyewyyrbF7c`{L$3DLV&LU z9;+lHQ+=mvs>#VNg9vO(QE|D##a~Pj{bwg3s@+(-2(V%#Ui)u-e+;34dQbz4wg0Gm z#tH%Wuy)M&IocfG(Zc7r*>BmNy4xRwf`=l~{bw$f^5_CR zPRf-6o={4_u%Ts7hO$4;Vfh*WwX405`4hKCKMsBqGJ&0>_(I~22RY+C5-mP-AcssV z9Zvnaux?WoZgv@Z&S?UpK4}DN86YT2A%28xaNwe8HB{8!^eO3eXiDQT6{m3U zYv*Hm6-Mw+4$R2+IsG?#55gzL$wlYp_^fD&kTxNw6naoZg69jGQc+}h>h<#QlU~B~ zl%Pgbpq<~Ts1MLHeA{lIn{(e)jY5>@(&gnr6G^lFuZtM(r++?k?BP{AoW5MCqAsXN zI?#P1aXy@TZ>dgn#k=+*Y4+D<0R`tse(+v_JNp@``1PwKXzQ2U*e`H5Zk9hV=WvG!@B z=38r;1Yl&KZ#1s#*NamNdlFJU%*VrkB+z4`ytTV)hpK0pPwv|dE_-ZjcPu^U7+r^H zX_&HGvdTE09Jn%maM^q#{F%&bv$B+9>(%n+nBX7}+knEhL6?Uu!I?dcpJu?sedV&! zglgjf;nA(gB{P=}^Xk8HQ_WK(q_THk>2(C(4Fq8G$VZU#jC=B7ZLXqRYDv8!9hA%` zyMvsF+~RCH*&=4Av%CW7XXUln7hQ9d5riO~9Gt8`3~#;T&sWh>6>y->Rp?yd$r}vy zeKOx{E!C43bvSe!Fod*_WxzTG-pqYVt_i*eQ4qX4Rr)2+yT~rLs+*YG52A)mm;*>z zVC934yxa-=`+?8$>g40VrZKZ16JYV`JY-ym``V;+G;R6HUd&%QzBae!OD4f7PwZ4& zc`F&9ah1Rew6FsjvSrbhQ^U53Rcz_&I<3&1ztYoiS-Wx?B{Qw8x?T~8US9S*F1#Av zo}_b)=iacZWG2S%rcr$R4|RMta#W8BY+{&^aBI()NXYrYRv$6K_pXg(ds|5%N>;?tXI{9j-NbICK?zV|K3?=m}EMubk zv#esQWtA=yt>!>|wlmL5E-!TX_9pv@S(#-EB)x7f%U79D!|z(Fx%+*X6Q}~FFUD*L zVj9|ICqryqROd^Yz$rVkVJGp#w$!9|8(ofmvpL`Ab3R>a5XCG`mD!5t@J91SYQiE%!?4?b}=Y(l6j?aJjFV@@8|OgexU`u$~R*(IZQ{zQD8) zTYnotLx=3^m3q>VZp{?tpekk5fA&zg64u(lpm`2 z1fmwKrUds}*xZ7IpZ<6`pWO4hMWT51br!-lhdpAcvuxrk{2tnPXc9f1*sN z;$^ZOP0y0Kq*jNt1u|-2Xwi2Rx(OT&4PVFE1o6omkAo7T;UW{tSMdq0Twk6)kjZ!) z_|Ab{UAuAu&s3{v7n+yWhOkXr$`6gN27KA!Vi7BQ=4e_a&8BV@hB=%caj&7b$jO_0 zOB8TdE1UUM`W%!1$S+>kh7>Pa%1@SD$1`DjOok}I`B$(WTD+pC?Je8kNN356Vd^Zvxq+#hzHTx}id ze$I%+skTbHUAl}DQNQ`=5|cSUww=PBHYHc^?z+pw`?r~%V~cDj8f(wYm>}FZ_b$8wL|P8U zOb7|Szk>gnqWjOu!Iq9T&5yFd^eLIyJM)9*SQjNe4C4bdL~T@<$!e`Ml1l?E6NNP@8%6{3c3__F*Zas8)K%Y-QujboL#r zAqw5&5>IT{1h|)vSCZ;XId+CVM=5CAqV3b@pafoGn4sFf>(sz&dBWMyJfoRt1%#~N z|LI-+J!83Hp1K0j=x*g`U%IZ z0sY%!@VNR{k_1HGc$V`)d{SYtIGYSj%~Dh6KH5H$4wC$0xi?-;hpU}_t^P)zI>$FW z`BE|{NM34-`2{2A;kcty+Tc81u~~Xho6L9|g9X*!I07%Gvb8kN!ZuD~AnI4~QeMwu zAlj3ybyy=58qg2pi_b0zq$rItmsl0-*Cag-RR1^~yoh7~rYUYOZl?L(5+RWFUbobT zE8($rD72mf?wz%%H+nAD0~+*K=xLwF+y{v)u2qJbFdIIX*glCqiJa6z(}2F=mt^L`!d}s%Ded4@2vf{bz_i zF1p`00Zcw!LOPAL9CW!R&TSgugMOSjM18u^pR!pMlRzAQWA;*<-f`F^>-$EWFtXaI z133LwEurZd1v)?dq&enx!GSsGHjvKO$T&EnA}aS|+qX_#v^{1UlwiBYQJ#kX{Tjos z-@#Wmz0`jNk2Q8iyADRh!Il3>KW^v*)%(nVc}$6wi376vZ53MS8XdJVeqO>7d)M$- zLuWJ&B6dBesR|39kI;;ESp0gS6;uyMGbxU#T@bsCh9i1svxJLg%oby}yJ|LkV~gA{ z*E*2k>_)+3jhLAdpUwJp#T+Q4H}?&dW5p9v5_1_E(_G418RCQp`4FXIVADk-%5t^3 zx-D=dnz&8~T7j%IRkPH}hJsNSD0`HM->XXTM~0fl|7E%4M?;YN(}nK+_-o~wto&R5r;JaSv=M{88oaIp#6F4rg@X7>%YkTI9DzD#;>1_IB__d)^MzILnyYp zu;DB@jQDPG-rwU|R`jdIxK|NiPg95Qtizs#LaqKDdDKYo3F<@8PIpu7b#9hi^1_n( zO{Q<#`do13N!ZT-ez(bDT{K_Vp+rzXR!B(t#0Q|#F3Mx3R+gKkBM&F1Xj1LOt)LlHK0cas}KY*Rzm#1}p&Z%XfFSL(bvYiub=h$Z>iPHJpnN^K=yNVG7| znSHOvQk@q_Jqi<0jlQA%%ezKS`j!i{o;N=@)L}5n)%m*0%HT=mNyVnAb9!qC?M>Dg zj3r>wu~k~pZ|+pKMm0>HGmYK{iO3rw(cyBvpB3&mTU(=kx!?r*VnQ$CI2D=O0Ete! z(-5d&6Bn@OQnpI{Ce*7p)96^>X0fTQ)Mh9#$-Vrg@ur628w|mgmZ>Hyl2LRApICIy zUEe*~6A_`@mnBof;ePYMDvYI8p6O5X0nTjUFG$@D87c1jz`|mDelB|esa9+PZ00w{ zvk;wQ^5rB{8)xfE9oDO1G(8xtSqW^4HKlZU~+6bQO$)4AZS`~0P4Fjxe<;< z!Tu@vC-l$bN-3oOi#+9M0sgXn{6r+cH&l7T3UW9xnk;7Yt-^{!z41K)S}E*&piLXu z-A*%f=T21Fu}j|u^<6LJl})%<<{XHOPLV!5sV|OyBc9k>@q=AG(g@NJ2kG4xKV*2L zBtsl#w{aJS9-`38D}d>Lg%u-K@Z_z#d&{rss8N`A&s`j=h8?rm^ey|nX9c5;ne(|&y5T^))<9;Qlk>-`sw5;xU1!GC3WEtC4AiK&ORIFHt8V%M$zBV z4^BHzyz3+PXdJk$)A8g76EFVMHg#%F2kxLPdWtDa0g%lf+7N=wnwT@T$7oDw=S0X( z!|zQ>>EH|GwBkTZ_T#)|nUaK8pFe?ghU3X0JxhpnW^WR+5cRyDBWehq{}Vp6e!e2x z^(e%a)%|B;=lMUQTW+lz;6;3>{{PmDhzGb!p*oHJB`yc&Xzkhp~^N%fV;Ll0_ z#*5J8_uU;g`1zvS(%VLw8P02v$Itzud2&60+gR4!Is&KY2gz&W3!HAs*=I9nCo;R2 zE2K1r>~KP^f}ybA7a{XS$UV({JF#a8jFG6}$^7zRGI+=mOzFZyf{Q zKDN2W1?0c5`$GeI1`so^?+hy$Oa|8aoB?ZxkYw-vARbkDH>AW_-#m-RvRAlkb8yu7 zd`YfCJ~uHIgtL2_c$X7#*cezW?hCy@$owy$wWWS}qNcsqp|5+EpG{pcUh$}9CU`qJ z{-es4x*aAK)Yte{Dqjehg0vXNV;ywS$z9Me+rG+7`ZR!_kv)entQ340mkc=*>iRMb zb;g9X9xesuVf4>6M9+%VEGlTg*zc&)OP|^2y#cv~2N=$${8%%J{PYbI=z^11Qt&&K1@hNcCOOy`Agj31L=ZiqI%li^PA zwRHgI^xz(PALqs%yO%Sa>a7M*xZL6Z;%ki2=-b=5sc%4iszgg-L~C(Y_N?^ENAFSL z+|)wQIxb6XmY<(JJ)AO?u-ImQeX>jz?|%OVOrm@=#O&-!*a=M!!&FRSiOI`LM(7`f zn0bE~IvvB?%W)#S&C?c5dLqSEfpLujbIb*UxDl+A1$vn}X!+%B5BJ=!+4x=3 zk<@ke0{iwt=C3Zs9Etw&CRevKU42b4Ht0{0KvOLE3EQbEp945;#b8s&@AUTQhzY8@ zip>Xke1S1WIVm(xsAKt)Qr~t5u`9YUeFXc+9<6ullAyr~yY`N5ecr5ce5fN}Aun%b zk6w0eZyi{6vowVYqcocAdl#+vxwxza3DaeHJ8XRxTXRX95^cOWn3R4=`2-cHAVIxC z^R8w{-jrLJO*mXau6Ut-^7kFI z`IzhG&g7lQy>upI-}z*J12|8ZzrG2X?32DyF9?U51Ak z!uDJCmMN^6$=K(Q#mif@V=TE{ J0gCDTJ&kfvTxHR*7+@{WTGc&y;olOrnMLWwSEwo5l<>- zT*Q`_D*ugVNT%#;Sa(Xay%@n-MWT5b2p;`H5^@svv=ERpIgil6Q2W}NfgR^GN_h8W zIbQPn&;`G)m$vg;;b@smvl8}})1KYbpHd7-o-_ljbtGDeeQ=9;v)QZ>6PdMC-aAkZ zmiXr#qZR1&0Ft((w@9%Ri;ILUcQnM7q|KNbSW2N&te{yUgr6HT)#1HLw@_*XtTkK2 ziZ~7Ucr4kmPiFcIQfkBSIEL4fRnzWXT`Mh;n$NLQ1M!}${0sktG%_xY`LqI(jORry z&r}}I^$1Zh9Xeb?`ljfbU{=i;erb+~hSk&V8VOX$E;)~yu)EJbm^8r_p`5GgmFbdJ zu9vUkhzc0N+M1%3RMJ#C-~X+JpNi~t0D8NlCfL*=hI9Yqn4D3sS#9RY5vb%O59r@g zA^JoaKZ-(A77LoQ0sh?A6(C-(kkapa4^)`j+G6wjFnexe8weM1{dSQjt?)8<2zKOu z|MB1^ORma4x5IA*KST#Rpd_W9G7-&rQuMrHrSv%1EZ_(^{*QI#c|;VS<}nO-o(n1y z^5scnBII6kXj;QS<+txs?NCP)xAK;aDB+xXHUtNECVuOWUVws+75NK&*M~eA6TV+zSd3s0;o%TRa&t<+BJC9rH*`s(y-j- z-2<*p4FJC(IMUFP6>0gzcaOn$(B|H&{rlk|g?Z6`_wWG2tn(j^UfiRi7<~|(IVa>v z4=?IJ&E(D)r|qJ_wb3m}Ix$l4&*MTESU8+;3g)Z;Q** Date: Wed, 14 Dec 2022 12:59:20 -0500 Subject: [PATCH 24/26] event card added as option --- src/Advanced.css | 92 +++++-- src/AdvancedCarouselBlockTemplate.jsx | 354 ++++++++++++++------------ src/AdvancedCarouselSchema.js | 7 +- src/AdvancedListingBlockTemplate.jsx | 30 ++- src/AdvancedListingSchema.js | 17 +- 5 files changed, 294 insertions(+), 206 deletions(-) diff --git a/src/Advanced.css b/src/Advanced.css index e1e24ee..e63ae61 100644 --- a/src/Advanced.css +++ b/src/Advanced.css @@ -90,11 +90,11 @@ margin-top: 0 !important; } -.advancedCarousel { +.advancedView { max-width: 100vw !important; } -.advancedCarousel { +.advancedView { width: calc(100% + 1em); margin-left: -0.5em } @@ -107,56 +107,60 @@ padding: 2px 1px 0 1px; } -.advancedCarousel.has--stretch--stretch { +.advancedView.has--stretch--stretch { margin-left: 0; } -.advancedCarousel.has--stretch--stretch { +.advancedView.has--stretch--stretch { margin-left: 0; } -.advancedCarousel.has--stretch--stretch .slick-slide { +.advancedView.has--stretch--stretch .slick-slide { padding: 0; } +.advancedView.has--stretch--stretch .slick-slide { + padding: 0; +} +.advancedList .top.aligned.twelve.wide.column {padding:0 1em} /*@media screen and (min-width: 767px) and (max-width: 1790px) {*/ -/* body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar-collapsed) .stretch .advancedCarousel {*/ +/* body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar-collapsed) .stretch .advancedView {*/ /* margin: 0 0 0 186px;*/ /* width: calc(100% - 80px);*/ /* }*/ -/* body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar) .stretch .advancedCarousel {*/ +/* body:not(.view-editview):not(.view-addview):not(.document_wide_view):not(.is-anonymous):not(.has-toolbar) .stretch .advancedView {*/ /* margin: 0 0 0 166px;*/ /* width: calc(100% - 20px);*/ /* }*/ /*}*/ @media only screen and (max-width: 1222px) { - .view-editview .advancedCarousel { + .view-editview .advancedView { max-width: calc(100vw - 475px) !important; } } @media only screen and (min-width: 1223px) and (max-width: 1446px) { - .view-editview .advancedCarousel { + .view-editview .advancedView { max-width: 730px !important; } } @media only screen and (min-width: 1447px) and (max-width: 1654px) { - .view-editview .advancedCarousel { + .view-editview .advancedView { max-width: 940px !important; } } @media only screen and (min-width: 1655px) { - .view-editview .advancedCarousel { + .view-editview .advancedView { max-width: 1134px !important; } } @media screen and (max-width: 766px) { - .view-editview .advancedCarousel { + .view-editview .advancedView { max-width: calc(100vw - 28px) !important; } @@ -185,63 +189,65 @@ @media (max-width: 766px) { - .advancedCarousel .slick-prev { + .advancedView .slick-prev { z-index: 2; transform: translateX(0); opacity: 0 } - .advancedCarousel:hover .slick-prev { + .advancedView:hover .slick-prev { transform: translateX(42px); opacity: 1; transition: 1s; } - .advancedCarousel .slick-next { + .advancedView .slick-next { z-index: 2; transform: translateX(0); opacity: 0 } - .advancedCarousel:hover .slick-next { + .advancedView:hover .slick-next { transform: translateX(-42px); opacity: 1; transition: 1s; } } -.advancedCarousel .column1 .slick-prev { +.advancedView .column1 .slick-prev { z-index: 2; transform: translateX(0); opacity: 0 } -.advancedCarousel:hover .column1 .slick-prev { +.advancedView:hover .column1 .slick-prev { transform: translateX(42px); opacity: 1; transition: 1s; } -.advancedCarousel .column1 .slick-next { +.advancedView .column1 .slick-next { z-index: 2; transform: translateX(0); opacity: 0 } -.advancedCarousel:hover .column1 .slick-next { +.advancedView:hover .column1 .slick-next { transform: translateX(-42px); opacity: 1; transition: 1s; } -.advancedCarousel .column1 .backgroundimage:hover { +.advancedView .column1 .backgroundimage:hover { box-shadow: 0 0 0; } -.advancedCarousel .ui.one.column.grid { +.advancedView .ui.one.column.grid { padding: 0; margin: 0; } - -.advancedCarousel .twelve.wide.column.advanced-item { +.advancedView.advancedList{ + padding-left: 7px; +} +.advancedView .twelve.wide.column.advanced-item { padding: 0; margin: 0;} .slick-dots { @@ -267,3 +273,41 @@ .event-when {font-weight: bold;} /* end listing */ + +/* start eventCard */ +.cal_date { + box-shadow: 0 1px 3px rgb(0 0 0 / 25%), inset 0 -1px 0 rgb(0 0 0 / 10%); + overflow: hidden; + font-size: 0.8em; + float: left; + vertical-align: top; + text-align: center; + background-color: white; + border-radius: 0.5em; + min-width: 4.4em; + margin: 0 1em 0.5em 0 !important; +} +.cal_month { + background: #b11116; + padding: 0 0.5em; + color: #fff; + font-size: 1.1em; + line-height: 1.3em; + display: block; +} +.cal_day { + font-size: 2em; + display: block; + padding-top: 0.3em; +} +.cal_wkday { + display: block; + font-size: 1em; + font-weight: normal; + padding-bottom: 0.3em; + min-width: 7em; +} +.info-text .cal_wkday, .info-text .cal_day { + color: #000000; +} +/* end eventCard */ diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx index 569f39f..392ca64 100644 --- a/src/AdvancedCarouselBlockTemplate.jsx +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -39,7 +39,8 @@ const AdvancedCarouselBlockTemplate = ({ eventTime, slidesToScroll, autoPlay, - autoplaySpeed + autoplaySpeed, + eventCard }) => { let moreLink = null; let moreHref = moreLinkUrl?.[0]?.['@id'] || ''; @@ -64,6 +65,27 @@ const AdvancedCarouselBlockTemplate = ({ } else if (headerHref) { moreLink = {moreLinkText || headerHref}; } + const getEventCard = (item) => { + let startMonth = '', startDay = '', startWeekday = '', startTime = ''; + if (item.start) { + const parsedDate = new Date(Date.parse(item.start)); + startMonth = `${parsedDate.toLocaleString('default', { + month: 'long', + })}`; + startDay = parsedDate.getDate(); + startWeekday = parsedDate.toLocaleString('default', { + weekday: 'long', + }); + return

+ {startMonth} + {startDay} + {startWeekday} +
; + } else { + return ''; + } + ; + }; const getEventDate = (item) => { let start = '', end = ''; @@ -126,182 +148,184 @@ const AdvancedCarouselBlockTemplate = ({ const AutoPlaySpeed = autoplaySpeed ? autoplaySpeed : '3'; moment.locale(intl.locale); return ( -
+
{headerLink && {headerLink ? headerLink : header} } - = 3 ? [ - { - breakpoint: 1169, - settings: { - slidesToShow: 3, - }, - }, - { - breakpoint: 991, - settings: { - slidesToShow: 2, - slidesToScroll: 1, - }, - }, - { - breakpoint: 767, - settings: { - slidesToShow: 1, - slidesToScroll: 1, - }, - }, - ] : [ - { - breakpoint: 767, - settings: { - slidesToShow: 1, - slidesToScroll: 1, - }, - }, - ]} - > - {['background'].includes(imageSide) && ( - items.map((item) => ( -
- -
- {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - {item.title})} -
-
- {item.location && eventDate | eventTime && - {eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}} || null} - {showTitle && {item.title ? item.title : item.id}} -

- {eventLocation && {item.location}
} - {effectiveDate && {moment(item.effective).format('L')}
} - {showDescription && item.description && ( - {item.description} - )} -

-
-
-
- )) - )} - {!['background'].includes(imageSide) && ( - items.map((item) => ( - - {['up', 'left'].includes(imageSide) && ( - - {!item.image_field && ( - - This content has no image, this is a default placeholder. - + = 3 ? [ + { + breakpoint: 1169, + settings: { + slidesToShow: 3, + }, + }, + { + breakpoint: 991, + settings: { + slidesToShow: 2, + slidesToScroll: 1, + }, + }, + { + breakpoint: 767, + settings: { + slidesToShow: 1, + slidesToScroll: 1, + }, + }, + ] : [ + { + breakpoint: 767, + settings: { + slidesToShow: 1, + slidesToScroll: 1, + }, + }, + ]} + > + {['background'].includes(imageSide) && ( + items.map((item) => ( +
+ +
+ {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + - {item.title} - + sizes="(max-width: 2560px) 100vw, 2560px" + alt={item.title} + size="small" + src={flattenToAppURL( + `${item['@id']}/@@images/${item.image_field}/large`, + )} + />)} +
+
+ {eventCard && <>{getEventCard(item)}} + {item.location && eventDate | eventTime && + {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}} || null} + {showTitle && {item.title ? item.title : item.id}} +

+ {eventLocation && {item.location}
} + {effectiveDate && {moment(item.effective).format('L')}
} + {showDescription && item.description && ( + {item.description} )} - )} - - {showTitle && - +

+
+
+
+ )) + )} + {!['background'].includes(imageSide) && ( + items.map((item) => ( + + {['up', 'left'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + + )} + {item.image_field && ( + + {item.title} + + )} + )} + + {eventCard && <>{getEventCard(item)}} + {showTitle && + {item.title ? item.title : item.id} } - {item.location && eventDate | eventTime && -
- {eventDate && {getEventDate(item)}} - {eventTime && eventDate && | } - {eventTime && {getEventTime(item)}}
|| null} - {eventLocation &&

{item.location}

} - {effectiveDate &&

{moment(item.effective).format('L')}

} - {showDescription && item.description && ( -

{item.description}

+ {item.location && eventDate | eventTime && +
+ {eventDate && {getEventDate(item)}} + {eventTime && eventDate && | } + {eventTime && {getEventTime(item)}}
|| null} + {eventLocation &&

{item.location}

} + {effectiveDate &&

{moment(item.effective).format('L')}

} + {showDescription && item.description && ( +

{item.description}

+ )} +
+ {['right', 'down'].includes(imageSide) && ( + + {!item.image_field && ( + + This content has no image, this is a default placeholder. + )} - - {['right', 'down'].includes(imageSide) && ( - - {!item.image_field && ( - - This content has no image, this is a default placeholder. - - )} - {item.image_field && ( - - {item.title} - - )} - )} -
- )) - )} + {item.image_field && ( + + {item.title} + + )} +
)} +
+ )) + )} -
+
); diff --git a/src/AdvancedCarouselSchema.js b/src/AdvancedCarouselSchema.js index 331a044..b3d657c 100644 --- a/src/AdvancedCarouselSchema.js +++ b/src/AdvancedCarouselSchema.js @@ -22,7 +22,7 @@ export const advancedCarouselSchema = (props) => { { id: 'carouselDisplay', title: intl.formatMessage(messages.itemDisplayOptions), - fields: ['titleTag', 'imageSide', 'showTitle', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], + fields: ['titleTag', 'imageSide', 'showTitle', 'showDescription','eventCard', 'eventDate', 'eventTime', 'eventLocation', 'effectiveDate'], }, ], properties: { @@ -107,7 +107,10 @@ export const advancedCarouselSchema = (props) => { title: intl.formatMessage(messages.eventLocation), type: 'boolean', }, - + eventCard: { + title: 'Show Event Card', + type: 'boolean', + }, }, }; }; diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index 4930e8e..e6c8f34 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -27,7 +27,8 @@ const AdvancedListingBlockTemplate = ({ eventDate, eventLocation, eventTime, - showTitle + showTitle, + eventCard }) => { let moreLink = null; let moreHref = moreLinkUrl?.[0]?.['@id'] || ''; @@ -52,6 +53,27 @@ const AdvancedListingBlockTemplate = ({ } else if (headerHref) { moreLink = {moreLinkText || headerHref}; } + const getEventCard = (item) => { + let startMonth = '', startDay = '', startWeekday = '', startTime = ''; + if (item.start) { + const parsedDate = new Date(Date.parse(item.start)); + startMonth = `${parsedDate.toLocaleString('default', { + month: 'long', + })}`; + startDay = parsedDate.getDate(); + startWeekday = parsedDate.toLocaleString('default', { + weekday: 'long', + }); + return
+ {startMonth} + {startDay} + {startWeekday} +
; + } else { + return ''; + } + ; + }; const getEventDate = (item) => { let start = '', end = ''; @@ -112,7 +134,7 @@ const AdvancedListingBlockTemplate = ({ const HeaderTag = headerTag ? headerTag : 'h3'; moment.locale(intl.locale); return ( - <> +
{headerLink && {headerLink ? headerLink : header} } @@ -150,6 +172,7 @@ const AdvancedListingBlockTemplate = ({ )} )} + {eventCard && <>{getEventCard(item)}} {showTitle && {item.title ? item.title : item.id} @@ -227,6 +250,7 @@ const AdvancedListingBlockTemplate = ({ />)}
+ {eventCard && <>{getEventCard(item)}} {item.location && eventDate | eventTime && {eventDate && {getEventDate(item)}} {eventTime && eventDate && | } @@ -247,7 +271,7 @@ const AdvancedListingBlockTemplate = ({ )) )} - +
); }; diff --git a/src/AdvancedListingSchema.js b/src/AdvancedListingSchema.js index ea7ce6d..6e88c0f 100644 --- a/src/AdvancedListingSchema.js +++ b/src/AdvancedListingSchema.js @@ -17,7 +17,7 @@ export const advancedListingSchema = (props) => { { id: 'listingDisplay', title: intl.formatMessage(messages.itemDisplayOptions), - fields: ['titleTag', 'howManyColumns', 'imageSide', 'imageWidth', 'showTitle', 'showDescription', 'effectiveDate', 'eventDate', 'eventTime', 'eventLocation'], + fields: ['titleTag', 'howManyColumns', 'imageSide', 'imageWidth', 'showTitle', 'showDescription', 'eventCard', 'eventDate', 'eventTime', 'eventLocation', 'effectiveDate'], }, ], properties: { @@ -75,6 +75,10 @@ export const advancedListingSchema = (props) => { title: intl.formatMessage(messages.date), type: 'boolean', }, + eventCard: { + title: 'Show Event Card', + type: 'boolean', + }, eventDate: { title: intl.formatMessage(messages.eventDate), type: 'boolean', @@ -87,17 +91,6 @@ export const advancedListingSchema = (props) => { title: intl.formatMessage(messages.eventLocation), type: 'boolean', }, - moreLinkText: { - title: intl.formatMessage(messages.moreLinkText), - description: intl.formatMessage(messages.moreLinkTextDescription), - }, - moreLinkUrl: { - title: intl.formatMessage(messages.moreLinkUrl), - description: intl.formatMessage(messages.moreLinkUrlDescription), - widget: 'object_browser', - mode: 'link', - allowExternals: true, - }, }, }; }; From 646269b089e920b0b44d4b746673a26c0eaadf37 Mon Sep 17 00:00:00 2001 From: rnunez Date: Wed, 14 Dec 2022 17:19:19 -0500 Subject: [PATCH 25/26] limit number of lines in background item --- src/Advanced.css | 14 +++++++++++++- src/AdvancedCarouselBlockTemplate.jsx | 4 ++-- src/AdvancedListingBlockTemplate.jsx | 4 ++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Advanced.css b/src/Advanced.css index e63ae61..986422d 100644 --- a/src/Advanced.css +++ b/src/Advanced.css @@ -74,7 +74,19 @@ background: #b11116; padding: 0 0.5em; } - +.limited-text { + text-overflow:ellipsis; + overflow:hidden; + display: -webkit-box !important; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + white-space: normal; +} +.text-ellipsis{ + text-overflow:ellipsis; + white-space:nowrap; + overflow:hidden; +} /* End existing-content-backgroundimage */ /* Start Slick */ diff --git a/src/AdvancedCarouselBlockTemplate.jsx b/src/AdvancedCarouselBlockTemplate.jsx index 392ca64..44c8dbe 100644 --- a/src/AdvancedCarouselBlockTemplate.jsx +++ b/src/AdvancedCarouselBlockTemplate.jsx @@ -228,12 +228,12 @@ const AdvancedCarouselBlockTemplate = ({ {eventDate && {getEventDate(item)}} {eventTime && eventDate && | } {eventTime && {getEventTime(item)}} || null} - {showTitle && {item.title ? item.title : item.id}} + {showTitle && {item.title ? item.title : item.id}}

{eventLocation && {item.location}
} {effectiveDate && {moment(item.effective).format('L')}
} {showDescription && item.description && ( - {item.description} + {item.description} )}

diff --git a/src/AdvancedListingBlockTemplate.jsx b/src/AdvancedListingBlockTemplate.jsx index e6c8f34..7904174 100644 --- a/src/AdvancedListingBlockTemplate.jsx +++ b/src/AdvancedListingBlockTemplate.jsx @@ -255,12 +255,12 @@ const AdvancedListingBlockTemplate = ({ {eventDate && {getEventDate(item)}} {eventTime && eventDate && | } {eventTime && {getEventTime(item)}} || null} - {showTitle && {item.title ? item.title : item.id}} + {showTitle && {item.title ? item.title : item.id}}

{eventLocation && {item.location}
} {effectiveDate && {moment(item.effective).format('L')}
} {showDescription && item.description && ( - {item.description} + {item.description} )}

From 242acfc0b4f00c5ae8bea169e8a0b8b875f84e2b Mon Sep 17 00:00:00 2001 From: rnunez Date: Fri, 16 Dec 2022 12:46:55 -0500 Subject: [PATCH 26/26] limit number of lines in background item --- src/AdvancedCarouselSchema.js | 14 +++++++------- src/index.js | 5 ++--- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/AdvancedCarouselSchema.js b/src/AdvancedCarouselSchema.js index b3d657c..f8e546d 100644 --- a/src/AdvancedCarouselSchema.js +++ b/src/AdvancedCarouselSchema.js @@ -17,12 +17,12 @@ export const advancedCarouselSchema = (props) => { { id: 'carousel', title: 'Carousel/Slider Options', - fields: ['howManyColumns', 'slidesToScroll', 'autoPlay', 'autoplaySpeed'], + fields: ['howManyColumns', 'slidesToScroll', 'autoPlay', 'autoplaySpeed', 'align'], }, { id: 'carouselDisplay', title: intl.formatMessage(messages.itemDisplayOptions), - fields: ['titleTag', 'imageSide', 'showTitle', 'showDescription','eventCard', 'eventDate', 'eventTime', 'eventLocation', 'effectiveDate'], + fields: ['titleTag', 'imageSide', 'showTitle', 'showDescription', 'eventCard', 'eventDate', 'eventTime', 'eventLocation', 'effectiveDate'], }, ], properties: { @@ -52,11 +52,6 @@ export const advancedCarouselSchema = (props) => { ], default: 1, }, - autoPlay: { - title: "Autoplay", - type: 'boolean', - default: true - }, autoplaySpeed: { title: 'Speed Autoplay', type: 'number', @@ -72,6 +67,11 @@ export const advancedCarouselSchema = (props) => { ], default: 5000 }, + align: { + title: 'Alignment', + widget: 'align', + default: 'left', + }, imageSide: { title: intl.formatMessage(messages.imagePosition), choices: [ diff --git a/src/index.js b/src/index.js index d278054..de92d38 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,5 @@ import AdvancedListingBlockTemplate from './AdvancedListingBlockTemplate'; import AdvancedCarouselBlockTemplate from './AdvancedCarouselBlockTemplate'; -import {advancedSchema} from './advancedSchema'; import {advancedListingSchema} from './AdvancedListingSchema'; import {advancedCarouselSchema} from './AdvancedCarouselSchema'; @@ -9,13 +8,13 @@ const applyConfig = (config) => { ...config.blocks.blocksConfig.listing.variations, { id: 'advanced', - title: 'Advanced', + title: 'Advanced Listing', template: AdvancedListingBlockTemplate, schemaEnhancer: advancedListingSchema, }, { id: 'advancedCarousel', - title: 'Carousel', + title: 'Advanced Carousel', template: AdvancedCarouselBlockTemplate, schemaEnhancer: advancedCarouselSchema, },