@licklist/design 0.44.522 → 0.44.524

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"IntervalInput.d.ts","sourceRoot":"","sources":["../../../src/events/edit-event-modal/IntervalInput.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,6DAA6D,CAAC;AAIzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,UAAU,kBAAkB;IAC1B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,EAAE,kBAAkB,eAkJpB"}
1
+ {"version":3,"file":"IntervalInput.d.ts","sourceRoot":"","sources":["../../../src/events/edit-event-modal/IntervalInput.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,6DAA6D,CAAC;AAIzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,UAAU,kBAAkB;IAC1B,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,EAAE,kBAAkB,eAqJpB"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),n=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=require("react-i18next"),o=require("react-bootstrap"),i=require("react-hook-form"),l=require("@react-aria/utils"),u=require("../../static/WarningMessage.js"),d=require("luxon");require("../../static/index.js");var s=require("react-intl"),c=require("../../recurrence-input/RecurrenceInput.js");var m=function(){var e=i.useFormContext().watch,n=e("start"),a=e("end"),o=s.useIntl(),l=o.formatList,u=o.formatNumber;return r.useMemo((function(){var e=d.Interval.fromDateTimes(d.DateTime.fromISO(n),d.DateTime.fromISO(a)).toDuration(["days","hours","minutes"]);if(e.isValid){var r=function(e,t){return u(e,{style:"unit",unit:t,unitDisplay:"long"})},o=[[e.days,"day"],[e.hours,"hour"],[e.minutes,"minute"]].filter((function(e){return t.__read(e,1)[0]}));return l(o.map((function(e){return r.apply(void 0,t.__spreadArray([],t.__read(e),!1))})),{style:"long",type:"unit"})}}),[n,a])},f=function(){var e=i.useFormContext().watch,t=a.useTranslation(["Design","Validation"]).t,n=e("start"),o=e("end");return{start:r.useMemo((function(){return{required:t("Validation:fieldRequired",{attribute:t("start")}),validate:function(e){return d.DateTime.fromISO(e).diffNow().toMillis()>0||t("Validation:fieldValidEventStart")}}}),[]),end:r.useMemo((function(){return{validate:function(e){return!e||(d.DateTime.fromISO(e).diff(d.DateTime.fromISO(n)).toMillis()>0||t("Validation:fieldValidEventEnd"))}}}),[n,o])}};exports.IntervalInput=function(e){var s,v,p=e.disabled,g=void 0!==p&&p,E=e.editedProductSet,I=e.productSetId,F=e.productSets,C=a.useTranslation(["Design","Validation"]).t,h=i.useFormContext(),b=h.register,_=h.formState.errors,y=h.watch,q=h.control,S=h.trigger,D=h.setValue,T=m(),k=f(),x=y("rrule"),M=y("start"),O=y("end"),V=t.__read(r.useState(Boolean(x)),2),w=V[0],R=V[1],B=t.__read(r.useState(!1),2),j=B[0],G=B[1],P=l.useId(),L=r.useRef(null),N=r.useRef(null);return r.useEffect((function(){E&&R(!1)}),[E]),r.useEffect((function(){if(F){var e=F.find((function(e){return E&&(null==e?void 0:e.id)===(null==E?void 0:E.id)||Boolean(null==e?void 0:e.parentMenuId)&&(null==e?void 0:e.id)===I}));G(Boolean(e))}}),[F,I,G,E]),n.createElement(n.Fragment,null,n.createElement(o.Form.Row,{className:"interval-container"},n.createElement(o.Form.Group,{as:o.Col,controlId:"start"},n.createElement(o.Form.Label,null,C("start")),n.createElement(o.Form.Control,t.__assign({type:"datetime-local"},b("start",k.start),{value:M,name:"start",required:!0,isInvalid:Boolean(_.start),onChange:function(e){var t=e.target.value;R(!1),D("start",t),d.DateTime.fromISO(O).diff(d.DateTime.fromISO(t)).toMillis()<0&&D("end",t)},onClick:function(){var e;return null===(e=null==L?void 0:L.current)||void 0===e?void 0:e.showPicker()},ref:L,disabled:g})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(s=_.start)||void 0===s?void 0:s.message)),n.createElement(o.Form.Group,{as:o.Col,controlId:"end"},n.createElement(o.Form.Label,null,C("end")),n.createElement(o.Form.Control,t.__assign({type:"datetime-local"},b("end",k.end),{value:O,name:"end",onChange:function(e){return function(e){D("end",e),S("end")}(e.target.value)},min:M,isInvalid:Boolean(_.end),onClick:function(){var e;return null===(e=null==N?void 0:N.current)||void 0===e?void 0:e.showPicker()},ref:N,disabled:g})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(v=_.end)||void 0===v?void 0:v.message),n.createElement(o.Form.Text,{muted:!0},T&&"lasts ".concat(T)))),M&&n.createElement(o.Form.Group,{controlId:P},n.createElement(o.Form.Check,{label:"Recurrent",custom:!0,checked:w,onChange:function(e){var t=e.target.checked;R(t)},disabled:g||Boolean(E)}),!w&&n.createElement(o.Form.Text,{muted:!0},C("reccurentDescription",{item:C("event")}))),j&&n.createElement(u.default,{message:C("recurrentOverridesWarining")}),w&&M&&n.createElement(o.Form.Group,null,n.createElement(i.Controller,{control:q,name:"rrule",render:function(e){var t=e.field,r=t.value,a=t.onChange;return n.createElement(c.RecurrenceInput,{value:r,onChange:a,date:M,disabled:g})}})))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),n=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=require("react-i18next"),o=require("react-bootstrap"),i=require("react-hook-form"),l=require("@react-aria/utils"),u=require("../../static/WarningMessage.js"),d=require("luxon");require("../../static/index.js");var s=require("react-intl"),c=require("../../recurrence-input/RecurrenceInput.js");var m=function(){var e=i.useFormContext().watch,n=e("start"),a=e("end"),o=s.useIntl(),l=o.formatList,u=o.formatNumber;return r.useMemo((function(){var e=d.Interval.fromDateTimes(d.DateTime.fromISO(n),d.DateTime.fromISO(a)).toDuration(["days","hours","minutes"]);if(e.isValid){var r=function(e,t){return u(e,{style:"unit",unit:t,unitDisplay:"long"})},o=[[e.days,"day"],[e.hours,"hour"],[e.minutes,"minute"]].filter((function(e){return t.__read(e,1)[0]}));return l(o.map((function(e){return r.apply(void 0,t.__spreadArray([],t.__read(e),!1))})),{style:"long",type:"unit"})}}),[n,a])},f=function(){var e=i.useFormContext().watch,t=a.useTranslation(["Design","Validation"]).t,n=e("start"),o=e("end");return{start:r.useMemo((function(){return{required:t("Validation:fieldRequired",{attribute:t("start")}),validate:function(e){return d.DateTime.fromISO(e).diffNow().toMillis()>0||t("Validation:fieldValidEventStart")}}}),[]),end:r.useMemo((function(){return{validate:function(e){return!e||(d.DateTime.fromISO(e).diff(d.DateTime.fromISO(n)).toMillis()>0||t("Validation:fieldValidEventEnd"))}}}),[n,o])}};exports.IntervalInput=function(e){var s,v,p=e.disabled,g=void 0!==p&&p,E=e.editedProductSet,I=e.productSetId,F=e.productSets,y=a.useTranslation(["Design","Validation"]).t,C=i.useFormContext(),h=C.register,b=C.formState.errors,_=C.watch,D=C.control,S=C.trigger,q=C.setValue,T=m(),M=f(),k=_("rrule"),x=_("start"),O=_("end"),V=t.__read(r.useState(Boolean(k)),2),w=V[0],R=V[1],B=t.__read(r.useState(!1),2),j=B[0],G=B[1],P=l.useId(),L=r.useRef(null),N=r.useRef(null);return r.useEffect((function(){E&&R(!1)}),[E]),r.useEffect((function(){if(F){var e=F.find((function(e){return E&&(null==e?void 0:e.id)===(null==E?void 0:E.id)||Boolean(null==e?void 0:e.parentMenuId)&&(null==e?void 0:e.id)===I}));G(Boolean(e))}}),[F,I,G,E]),n.createElement(n.Fragment,null,n.createElement(o.Form.Row,{className:"interval-container"},n.createElement(o.Form.Group,{as:o.Col,controlId:"start"},n.createElement(o.Form.Label,null,y("start")),n.createElement(o.Form.Control,t.__assign({type:"datetime-local"},h("start",M.start),{value:x,name:"start",required:!0,isInvalid:Boolean(b.start),onChange:function(e){var t=e.target.value;R(!1),q("start",t),d.DateTime.fromISO(O).diff(d.DateTime.fromISO(t)).toMillis()<0&&q("end",t)},onClick:function(){var e;return null===(e=null==L?void 0:L.current)||void 0===e?void 0:e.showPicker()},ref:L,disabled:g})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(s=b.start)||void 0===s?void 0:s.message)),n.createElement(o.Form.Group,{as:o.Col,controlId:"end"},n.createElement(o.Form.Label,null,y("end")),n.createElement(o.Form.Control,t.__assign({type:"datetime-local"},h("end",M.end),{value:O,name:"end",onChange:function(e){return function(e){q("end",e),S("end")}(e.target.value)},min:x,isInvalid:Boolean(b.end),onClick:function(){var e;return null===(e=null==N?void 0:N.current)||void 0===e?void 0:e.showPicker()},ref:N,disabled:g})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(v=b.end)||void 0===v?void 0:v.message),n.createElement(o.Form.Text,{muted:!0},T&&"lasts ".concat(T)))),x&&n.createElement(o.Form.Group,{controlId:P},n.createElement(o.Form.Check,{label:"Recurrent",custom:!0,checked:w,onChange:function(e){var t=e.target.checked;R(t)},disabled:g||Boolean(E)}),!w&&n.createElement(o.Form.Text,{muted:!0},y("reccurentDescription",{item:y("event")}))),j&&n.createElement(u.default,{message:y("recurrentOverridesWarining")}),w&&x&&n.createElement(o.Form.Group,null,n.createElement(i.Controller,{control:D,name:"rrule",render:function(e){var t=e.field,r=t.value,a=t.onChange;return n.createElement(c.RecurrenceInput,{value:r,onChange:a,date:x,minDate:d.DateTime.fromISO(x).plus({day:1}).toFormat("yyyy-MM-dd"),disabled:g})}})))};
@@ -1 +1 @@
1
- {"version":3,"file":"useImage.d.ts","sourceRoot":"","sources":["../../../../src/events/event-venue-map/hooks/useImage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,QAAQ,QACd,MAAM;WACiB,MAAM;YAAU,MAAM;MACjD,CAAC,SAAS,GAAG,gBAAgB,EAAE,mBAAmB,CA0EpD,CAAC"}
1
+ {"version":3,"file":"useImage.d.ts","sourceRoot":"","sources":["../../../../src/events/event-venue-map/hooks/useImage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,QAAQ,QACd,MAAM;WACiB,MAAM;YAAU,MAAM;MACjD,CAAC,SAAS,GAAG,gBAAgB,EAAE,mBAAmB,CAmFpD,CAAC"}
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),i=require("react"),a=(e(i),e(require("lodash/round")));exports.useImage=function(e,h){var r=h.width,c=h.height,d=i.useRef(void 0),n=t.__read(i.useState({width:0,height:0}),2),u=n[0],l=n[1],s=i.useCallback((function(e){d.current=new window.Image,d.current.src=e,d.current.addEventListener("load",(function(){d.current=this,l({width:this.naturalWidth,height:this.naturalHeight})}))}),[]);i.useEffect((function(){s(e)}),[e,s]);var o=i.useMemo((function(){if(!u.width||!u.height)return t.__assign({scaledWidth:1,scaledHeight:1,x:0,y:0,scale:1,widthScale:1,heightScale:1,imageScale:1,totalScaledWidth:0,totalScaledHeight:0},u);var e=r/u.width,i=c/u.height,h=Math.min(e,i),d=a(u.width*h,2),n=a(u.height*h,2),l=a(r/2-d/2,2),s=a(c/2-n/2,2),o=u.width/d,g=2*l+d,f=2*s+n;return t.__assign({scaledWidth:d,scaledHeight:n,x:l,y:s,scale:h,widthScale:e,heightScale:i,imageScale:o,totalScaledWidth:g,totalScaledHeight:f},u)}),[u,r,c]);return[d.current,o]};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),i=require("react"),r=(e(i),e(require("lodash/round")));exports.useImage=function(e,a){var h=a.width,n=a.height,c=i.useRef(void 0),d=t.__read(i.useState({width:0,height:0}),2),u=d[0],l=d[1],s=function(){c.current=this,l({width:this.naturalWidth,height:this.naturalHeight})},o=i.useCallback((function(e){c.current=new window.Image,c.current.src=e,c.current.addEventListener("load",s)}),[]);i.useEffect((function(){return o(e),function(){c.current.removeEventListener("load",s),c.current=void 0}}),[e,o]);var g=i.useMemo((function(){if(!u.width||!u.height)return t.__assign({scaledWidth:1,scaledHeight:1,x:0,y:0,scale:1,widthScale:1,heightScale:1,imageScale:1,totalScaledWidth:0,totalScaledHeight:0},u);var e=h/u.width,i=n/u.height,a=Math.min(e,i),c=r(u.width*a,2),d=r(u.height*a,2),l=r(h/2-c/2,2),s=r(n/2-d/2,2),o=u.width/c,g=2*l+c,f=2*s+d;return t.__assign({scaledWidth:c,scaledHeight:d,x:l,y:s,scale:a,widthScale:e,heightScale:i,imageScale:o,totalScaledWidth:g,totalScaledHeight:f},u)}),[u,h,n]);return[c.current,g]};
@@ -1 +1 @@
1
- {"version":3,"file":"EmailTemplateControl.d.ts","sourceRoot":"","sources":["../../../../src/notification/email-template/control/EmailTemplateControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,EACL,cAAc,EAEf,MAAM,sEAAsE,CAAC;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,kEAAkE,CAAC;AAM9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wEAAwE,CAAC;AAM1G,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,4BAA4B,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,KAAK,MAAM,CAAC;CAC3E;AAED,eAAO,MAAM,oBAAoB,2FAuZhC,CAAC"}
1
+ {"version":3,"file":"EmailTemplateControl.d.ts","sourceRoot":"","sources":["../../../../src/notification/email-template/control/EmailTemplateControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,EACL,cAAc,EAEf,MAAM,sEAAsE,CAAC;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,kEAAkE,CAAC;AAM9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wEAAwE,CAAC;AAM1G,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,4BAA4B,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,KAAK,MAAM,CAAC;CAC3E;AAED,eAAO,MAAM,oBAAoB,2FAgbhC,CAAC"}
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),a=require("react"),n=e(a),l=require("react-i18next"),r=require("react-bootstrap"),i=require("react-hook-form"),o=require("../../../file-upload/FileUpload.js"),s=e(require("react-email-editor")),u=require("@licklist/core/dist/DataMapper/Notification/TemplateOptionDataMapper"),m=require("@licklist/plugins/dist/hooks/Media/useAttachments"),c=require("@licklist/plugins/dist/hooks/Media/usePermanentImage"),d=require("@licklist/core/dist/DataMapper/Media/UploadPermanentImageDataMapper"),p=n.forwardRef((function(e,p){var g,f,E,v=e.setIsLoading,h=e.meta,_=e.options,F=void 0===_?[]:_,b=e.defaultAttachments,y=void 0===b?[]:b,N=e.notificationTypes,D=void 0===N?[]:N,T=e.getDefaultTemplateMetaByType,P=l.useTranslation(["Design"]).t,C=t.__read(a.useState(null),2),I=C[0],k=C[1],M=i.useFormContext(),O=M.register,q=M.setValue,R=M.formState.errors,x=M.getValues,A=M.watch,V=M.reset,j=t.__read(a.useState(!1),2),w=j[0],G=j[1],S=m.useAttachments(I),L=S.attachments,U=S.handleAttachmentRemove,Y=S.handleAttachmentUploading,B=S.isLoading,J=c.usePermanentImage(),H=J.permanentImages,z=J.handlePermanentImageRemove,K=J.handlePermanentImageUploading,Q=A("type"),W=A("id");a.useEffect((function(){var e;if(!W&&T&&Q){var a=x(),n=T(Q);V(t.__assign(t.__assign({},a),{meta:n})),null===(e=p.current)||void 0===e||e.loadDesign(JSON.parse(n))}}),[Q]),a.useEffect((function(){q("attachmentMetadata",L)}),[L,q]),a.useEffect((function(){H.length&&q("imagesMetadata",H)}),[H,q]),a.useEffect((function(){if(y&&y.length>0){var e=x("attachments");k(e)}else k([])}),[y]),a.useEffect((function(){if(null==F?void 0:F.length){var e=F.find((function(e){return e.type===u.OPTION_TYPE.files_selector}));(null==e?void 0:e.selectedValue)&&G(!0)}}),[F]);return n.createElement(n.Fragment,null,n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col,controlId:"type",xs:!0,sm:12,md:8,lg:10,xl:12},n.createElement(r.Form.Label,null,P("type")),n.createElement(r.Form.Control,t.__assign({as:"select"},O("type",{required:P("Validation:fieldRequired",{attribute:P("type")})}),{name:"type",required:!0,isInvalid:Boolean(R.type),placeholder:P("Design:type"),disabled:!!W}),n.createElement("option",{value:""},P("Design:choose")),D.map((function(e){return n.createElement("option",{key:e,value:e},P("Design:".concat(e)))}))),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(g=R.type)||void 0===g?void 0:g.message))),n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col,controlId:"formGroupName",xs:!0,sm:12,md:8,lg:10,xl:12},n.createElement(r.Form.Label,null,P("templateName")),n.createElement(r.Form.Control,t.__assign({},O("name",{maxLength:255,required:P("Validation:fieldRequired",{attribute:P("name")})}),{name:"name",required:!0,isInvalid:Boolean(R.name),placeholder:P("Design:templateName")})),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(f=R.name)||void 0===f?void 0:f.message))),n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col,xs:!0,sm:12,md:8,lg:10,xl:12,controlId:"formGroupSubject"},n.createElement(r.Form.Label,null,P("subject")),n.createElement(r.Form.Control,t.__assign({},O("subject",{maxLength:255,required:P("Validation:fieldRequired",{attribute:P("subject")})}),{name:"subject",required:!0,isInvalid:Boolean(R.subject),placeholder:P("Design:subject")})),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(E=R.subject)||void 0===E?void 0:E.message))),n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col},n.createElement(r.Form.Check,t.__assign({},O("isActive"),{name:"isActive",label:P("Design:active"),id:"formGroupIsActive",custom:!0})),n.createElement(r.Form.Check,t.__assign({},O("isDefault"),{name:"isDefault",label:P("Design:defaultTemplateForTheType"),id:"formGroupIsDefault",custom:!0})))),n.createElement(r.Row,{className:"mb-4"},n.createElement(r.Form.Group,{as:r.Col},n.createElement(r.Form.Label,null,P("Design:emailBody")),n.createElement("div",{className:"email-editor"},n.createElement(s,{ref:p,onReady:function(){var e,a,n,l;v(!0),null===(e=p.current)||void 0===e||e.registerCallback("design:updated",(function(e){var t,a;null===(t=p.current)||void 0===t||t.editor.exportHtml((function(e){q("body",e.html),q("meta",JSON.stringify(e.design))})),"content:removed"===e.type&&"image"===(null===(a=e.item)||void 0===a?void 0:a.type)&&function(e){var t=e.item.values.src.url;if(!t.includes("unlayer")){var a=x("imagesMetadata");if(a){var n=a.find((function(e){return e.permanentUrl===t}));if(n)z(n.hash,d.PERMANENT_IMAGE_TYPE_TEMP);else{var l=t.split("/"),r=l[l.length-2];if(!r)return;z(r,d.PERMANENT_IMAGE_TYPE_PERMANENT)}}else{var i=t.split("/"),o=i[i.length-2];if(!o)return;z(o,d.PERMANENT_IMAGE_TYPE_PERMANENT)}}}(e)})),h&&(null===(a=p.current)||void 0===a||a.loadDesign(JSON.parse(h)),null===(n=p.current)||void 0===n||n.editor.exportHtml((function(e){q("body",e.html),q("meta",JSON.stringify(e.design))}))),v(!1),null===(l=p.current)||void 0===l||l.registerCallback("image",(function(e,a){return t.__awaiter(void 0,void 0,void 0,(function(){var n;return t.__generator(this,(function(t){switch(t.label){case 0:return[4,K(e.attachments[0])];case 1:return n=t.sent(),a({progress:100,url:n.permanentUrl}),[2]}}))}))}))},style:{height:"50rem"}})))),n.createElement(r.Row,null,n.createElement(o.FileUpload,{className:"ml-4 mr-4",allowedExtensions:["jpg","jpeg","png","txt","pdf","doc"],enablePreview:!0,allowMultiple:!0,defaultFiles:L,onFilesChange:function(e){Y(e)},title:P("Design:attachments"),onFileRemove:function(e,t){return U(String(e),t)},isLoading:B})),(null==F?void 0:F.length)>0&&n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col},F.map((function(e){if(e.type===u.OPTION_TYPE.checkbox)return n.createElement(r.Form.Check,t.__assign({},O("templateOptionValues.".concat(null==e?void 0:e.id,".value")),{type:"checkbox",label:P("Design:".concat(e.name)),id:e.name+e.id,defaultChecked:"true"===e.selectedValue,custom:!0}));if(e.type===u.OPTION_TYPE.files_selector){var a=JSON.parse(e.defaultValue),l=Object.values(a),i=Object.keys(a);return n.createElement(n.Fragment,null,n.createElement(r.Form.Check,{checked:w,name:"IsIncludePDF",onChange:function(){G(!w),q("templateOptionValues.".concat(e.id,".value"),"")},label:P("Design:includePDF"),id:"formGroupIsIncludePdf",custom:!0}),w&&n.createElement(n.Fragment,null,n.createElement(r.Form.Label,{className:"mt-4"},P("Design:includeFile")),n.createElement(r.Form.Control,t.__assign({as:"select"},O("templateOptionValues.".concat(e.id,".value")),{defaultValue:e.selectedValue||""}),n.createElement("option",{value:""},P("Design:choose")),i.map((function(e,t){return n.createElement("option",{value:String(e),key:String(e)},l[t])})))))}return e.type===u.OPTION_TYPE.days_reminder?n.createElement(n.Fragment,null,n.createElement(r.Form.Label,{className:"mt-4"},P("Design:".concat(e.name))),n.createElement(r.Form.Control,t.__assign({},O("templateOptionValues.".concat(null==e?void 0:e.id,".value")),{type:"number",placeholder:P("Design:".concat(e.name)),id:e.name+e.id,defaultValue:e.selectedValue||""})),n.createElement(r.Form.Text,null,e.description)):null})))))}));p.displayName="EmailTemplateControl",exports.EmailTemplateControl=p;
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),a=require("react"),n=e(a),l=require("react-i18next"),r=require("react-bootstrap"),i=require("react-hook-form"),o=require("../../../file-upload/FileUpload.js"),s=e(require("react-email-editor")),m=require("@licklist/core/dist/DataMapper/Notification/TemplateOptionDataMapper"),c=require("@licklist/plugins/dist/hooks/Media/useAttachments"),u=require("@licklist/plugins/dist/hooks/Media/usePermanentImage"),d=require("@licklist/core/dist/DataMapper/Media/UploadPermanentImageDataMapper"),p=n.forwardRef((function(e,p){var g,f,v,E,h=e.setIsLoading,b=e.meta,_=e.options,y=void 0===_?[]:_,F=e.defaultAttachments,N=void 0===F?[]:F,D=e.notificationTypes,T=void 0===D?[]:D,C=e.getDefaultTemplateMetaByType,P=l.useTranslation(["Design"]).t,I=t.__read(a.useState(null),2),k=I[0],x=I[1],M=i.useFormContext(),O=M.register,q=M.setValue,R=M.formState.errors,V=M.getValues,A=M.watch,j=M.reset,w=t.__read(a.useState(!1),2),G=w[0],L=w[1],S=c.useAttachments(k),U=S.attachments,Y=S.handleAttachmentRemove,B=S.handleAttachmentUploading,J=S.isLoading,H=u.usePermanentImage(),z=H.permanentImages,K=H.handlePermanentImageRemove,Q=H.handlePermanentImageUploading,W=A("type"),X=A("id");a.useEffect((function(){var e;if(!X&&C&&W){var a=V(),n=C(W);j(t.__assign(t.__assign({},a),{meta:n})),null===(e=p.current)||void 0===e||e.loadDesign(JSON.parse(n))}}),[W]),a.useEffect((function(){q("attachmentMetadata",U)}),[U,q]),a.useEffect((function(){z.length&&q("imagesMetadata",z)}),[z,q]),a.useEffect((function(){if(N&&N.length>0){var e=V("attachments");x(e)}else x([])}),[N]),a.useEffect((function(){if(null==y?void 0:y.length){var e=y.find((function(e){return e.type===m.OPTION_TYPE.files_selector}));(null==e?void 0:e.selectedValue)&&L(!0)}}),[y]);return n.createElement(n.Fragment,null,n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col,controlId:"type",xs:!0,sm:12,md:8,lg:10,xl:12},n.createElement(r.Form.Label,null,P("type")),n.createElement(r.Form.Control,t.__assign({as:"select"},O("type",{required:P("Validation:fieldRequired",{attribute:P("type")})}),{name:"type",required:!0,isInvalid:Boolean(R.type),placeholder:P("Design:type"),disabled:!!X}),n.createElement("option",{value:""},P("Design:choose")),T.map((function(e){return n.createElement("option",{key:e,value:e},P("Design:".concat(e)))}))),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(g=R.type)||void 0===g?void 0:g.message))),n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col,controlId:"formGroupName",xs:!0,sm:12,md:8,lg:10,xl:12},n.createElement(r.Form.Label,null,P("templateName")),n.createElement(r.Form.Control,t.__assign({},O("name",{maxLength:255,required:P("Validation:fieldRequired",{attribute:P("name")})}),{name:"name",required:!0,isInvalid:Boolean(R.name),placeholder:P("Design:templateName")})),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(f=R.name)||void 0===f?void 0:f.message))),n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col,xs:!0,sm:12,md:8,lg:10,xl:12,controlId:"formGroupSubject"},n.createElement(r.Form.Label,null,P("subject")),n.createElement(r.Form.Control,t.__assign({},O("subject",{maxLength:255,required:P("Validation:fieldRequired",{attribute:P("subject")})}),{name:"subject",required:!0,isInvalid:Boolean(R.subject),placeholder:P("Design:subject")})),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(v=R.subject)||void 0===v?void 0:v.message))),n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col},n.createElement(r.Form.Check,t.__assign({},O("isActive"),{name:"isActive",label:P("Design:active"),id:"formGroupIsActive",custom:!0})),n.createElement(r.Form.Check,t.__assign({},O("isDefault"),{name:"isDefault",label:P("Design:defaultTemplateForTheType"),id:"formGroupIsDefault",custom:!0})))),n.createElement(r.Row,{className:"mb-4"},n.createElement(r.Form.Group,{as:r.Col},n.createElement(r.Form.Label,null,P("Design:emailBody")),n.createElement("div",{className:"alert alert-warning",role:"alert"},"Due to the mail services limitations on the length of the email body that can be sent or received - maximum length is set to 65,535 characters."),n.createElement("div",{className:"email-editor ".concat(R.body&&"is-invalid")},n.createElement(s,{ref:p,onReady:function(){var e,a,n,l;h(!0),null===(e=p.current)||void 0===e||e.registerCallback("design:updated",(function(e){var t,a;null===(t=p.current)||void 0===t||t.editor.exportHtml((function(e){q("body",e.html),q("meta",JSON.stringify(e.design))})),"content:removed"===e.type&&"image"===(null===(a=e.item)||void 0===a?void 0:a.type)&&function(e){var t=e.item.values.src.url;if(!t.includes("unlayer")){var a=V("imagesMetadata");if(a){var n=a.find((function(e){return e.permanentUrl===t}));if(n)K(n.hash,d.PERMANENT_IMAGE_TYPE_TEMP);else{var l=t.split("/"),r=l[l.length-2];if(!r)return;K(r,d.PERMANENT_IMAGE_TYPE_PERMANENT)}}else{var i=t.split("/"),o=i[i.length-2];if(!o)return;K(o,d.PERMANENT_IMAGE_TYPE_PERMANENT)}}}(e)})),b&&(null===(a=p.current)||void 0===a||a.loadDesign(JSON.parse(b)),null===(n=p.current)||void 0===n||n.editor.exportHtml((function(e){q("body",e.html),q("meta",JSON.stringify(e.design))}))),h(!1),null===(l=p.current)||void 0===l||l.registerCallback("image",(function(e,a){return t.__awaiter(void 0,void 0,void 0,(function(){var n;return t.__generator(this,(function(t){switch(t.label){case 0:return[4,Q(e.attachments[0])];case 1:return n=t.sent(),a({progress:100,url:n.permanentUrl}),[2]}}))}))}))},style:{height:"50rem"}}),n.createElement("input",t.__assign({type:"hidden",name:"body"},O("body",{maxLength:{value:65535,message:P("Validation:fieldMaxLength",{attribute:P("body"),max:65535})}})))),n.createElement(r.Form.Control.Feedback,{type:"invalid"},null===(E=R.body)||void 0===E?void 0:E.message))),n.createElement(r.Row,null,n.createElement(o.FileUpload,{className:"ml-4 mr-4",allowedExtensions:["jpg","jpeg","png","txt","pdf","doc"],enablePreview:!0,allowMultiple:!0,defaultFiles:U,onFilesChange:function(e){B(e)},title:P("Design:attachments"),onFileRemove:function(e,t){return Y(String(e),t)},isLoading:J})),(null==y?void 0:y.length)>0&&n.createElement(r.Row,null,n.createElement(r.Form.Group,{as:r.Col},y.map((function(e){if(e.type===m.OPTION_TYPE.checkbox)return n.createElement(r.Form.Check,t.__assign({},O("templateOptionValues.".concat(null==e?void 0:e.id,".value")),{type:"checkbox",label:P("Design:".concat(e.name)),id:e.name+e.id,defaultChecked:"true"===e.selectedValue,custom:!0}));if(e.type===m.OPTION_TYPE.files_selector){var a=JSON.parse(e.defaultValue),l=Object.values(a),i=Object.keys(a);return n.createElement(n.Fragment,null,n.createElement(r.Form.Check,{checked:G,name:"IsIncludePDF",onChange:function(){L(!G),q("templateOptionValues.".concat(e.id,".value"),"")},label:P("Design:includePDF"),id:"formGroupIsIncludePdf",custom:!0}),G&&n.createElement(n.Fragment,null,n.createElement(r.Form.Label,{className:"mt-4"},P("Design:includeFile")),n.createElement(r.Form.Control,t.__assign({as:"select"},O("templateOptionValues.".concat(e.id,".value")),{defaultValue:e.selectedValue||""}),n.createElement("option",{value:""},P("Design:choose")),i.map((function(e,t){return n.createElement("option",{value:String(e),key:String(e)},l[t])})))))}return e.type===m.OPTION_TYPE.days_reminder?n.createElement(n.Fragment,null,n.createElement(r.Form.Label,{className:"mt-4"},P("Design:".concat(e.name))),n.createElement(r.Form.Control,t.__assign({},O("templateOptionValues.".concat(null==e?void 0:e.id,".value")),{type:"number",placeholder:P("Design:".concat(e.name)),id:e.name+e.id,defaultValue:e.selectedValue||""})),n.createElement(r.Form.Text,null,e.description)):null})))))}));p.displayName="EmailTemplateControl",exports.EmailTemplateControl=p;
@@ -3,6 +3,7 @@ import { SupportedFrequency } from "./utils";
3
3
  interface Props {
4
4
  disabled?: boolean;
5
5
  date: string;
6
+ minDate?: string;
6
7
  frequency: SupportedFrequency;
7
8
  until?: string;
8
9
  count?: number;
@@ -11,6 +12,6 @@ interface Props {
11
12
  count?: number;
12
13
  }) => void;
13
14
  }
14
- declare function RecurrenceEndInput({ disabled, date, frequency, until, count, onChange, }: Props): JSX.Element;
15
+ declare function RecurrenceEndInput({ disabled, date, frequency, until, count, onChange, minDate, }: Props): JSX.Element;
15
16
  export default RecurrenceEndInput;
16
17
  //# sourceMappingURL=RecurrenceEndInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecurrenceEndInput.d.ts","sourceRoot":"","sources":["../../src/recurrence-input/RecurrenceEndInput.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAChE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,QAAgB,EAChB,IAAI,EACJ,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,KAAK,eAoFP;AA2BD,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"RecurrenceEndInput.d.ts","sourceRoot":"","sources":["../../src/recurrence-input/RecurrenceEndInput.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAChE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,QAAgB,EAChB,IAAI,EACJ,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE,KAAK,eAmGP;AA2BD,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t,r=require("react"),n=e(r),a=require("react-bootstrap"),l=require("@react-aria/utils"),u=require("luxon"),c=e(require("rrule"));var o=((t={})[c.DAILY]=30,t[c.WEEKLY]=13,t[c.MONTHLY]=12,t[c.YEARLY]=5,t),m=function(e){var t,r,n=e.date,a=e.frequency,l=(t={},t[c.DAILY]="days",t[c.WEEKLY]="weeks",t[c.MONTHLY]="months",t[c.YEARLY]="years",t)[a];return u.DateTime.fromISO(n).plus((r={},r[l]=o[a],r)).toISODate()};exports.default=function(e){var t=e.disabled,u=void 0!==t&&t,c=e.date,i=e.frequency,d=e.until,s=e.count,E=e.onChange,p=l.useId(),h=l.useId(),f=l.useId(),C=r.useRef(null);return n.createElement(a.Form.Group,null,n.createElement(a.Form.Label,null,"Ends"),n.createElement(a.Form.Check,{type:"radio",id:p,custom:!0,className:"mt-3"},n.createElement(a.Form.Check.Input,{type:"radio",checked:!d&&500===s,onChange:function(){return E({count:500})},disabled:u}),n.createElement(a.Form.Check.Label,null,"Never")),n.createElement(a.Form.Check,{type:"radio",id:h,custom:!0,className:"mt-3"},n.createElement(a.Row,{className:"align-items-center"},n.createElement(a.Col,{xs:2},n.createElement(a.Form.Check.Input,{type:"radio",checked:Boolean(d)&&!s,onChange:function(){return E({until:m({date:c,frequency:i})})},disabled:u}),n.createElement(a.Form.Check.Label,null,"On")),n.createElement(a.Col,null,n.createElement(a.Form.Control,{type:"date",disabled:u||!d,"aria-label":"Date on which the recurrence ends",value:null!=d?d:m({date:c,frequency:i}),className:d&&"date-input-with-value",ref:C,onClick:function(){var e;return null===(e=null==C?void 0:C.current)||void 0===e?void 0:e.showPicker()},onChange:function(e){var t=e.target.value;return E({until:t})}})))),n.createElement(a.Form.Check,{type:"radio",id:f,custom:!0,className:"mt-3"},n.createElement(a.Row,{className:"align-items-center"},n.createElement(a.Col,{xs:2},n.createElement(a.Form.Check.Input,{type:"radio",checked:s<500&&!d,onChange:function(){return E({count:o[i]})},disabled:u}),n.createElement(a.Form.Check.Label,null,"After")),n.createElement(a.Col,null,n.createElement(a.InputGroup,null,n.createElement(a.Form.Control,{type:"number",min:1,max:500,disabled:u||!s||500===s,"aria-label":"Occurrence count",value:null!=s?s:o[i],onChange:function(e){var t=e.target.value;return E({count:Number(t)})}}),n.createElement(a.InputGroup.Append,null,n.createElement(a.InputGroup.Text,null,"occurrences")))))))};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t,r=require("react"),n=e(r),a=require("@licklist/core/dist/Config"),l=require("react-i18next"),u=require("react-bootstrap"),c=require("@react-aria/utils"),o=require("luxon"),i=e(require("rrule"));var m=((t={})[i.DAILY]=30,t[i.WEEKLY]=13,t[i.MONTHLY]=12,t[i.YEARLY]=5,t),s=function(e){var t,r,n=e.date,a=e.frequency,l=(t={},t[i.DAILY]="days",t[i.WEEKLY]="weeks",t[i.MONTHLY]="months",t[i.YEARLY]="years",t)[a];return o.DateTime.fromISO(n).plus((r={},r[l]=m[a],r)).toISODate()};exports.default=function(e){var t=e.disabled,i=void 0!==t&&t,d=e.date,E=e.frequency,f=e.until,p=e.count,h=e.onChange,C=e.minDate,v=l.useTranslation("Design").t,b=c.useId(),y=c.useId(),F=c.useId(),k=r.useRef(null);return r.useEffect((function(){var e=o.DateTime.fromFormat(null!=f?f:s({date:d,frequency:E}),a.DATE_FORMAT);o.DateTime.fromFormat(C,a.DATE_FORMAT)>e&&h({until:C})}),[C,h,f,d,E]),n.createElement(u.Form.Group,null,n.createElement(u.Form.Label,null,v("ends")),n.createElement(u.Form.Check,{type:"radio",id:b,custom:!0,className:"mt-3"},n.createElement(u.Form.Check.Input,{type:"radio",checked:!f&&500===p,onChange:function(){return h({count:500})},disabled:i}),n.createElement(u.Form.Check.Label,null,v("never"))),n.createElement(u.Form.Check,{type:"radio",id:y,custom:!0,className:"mt-3"},n.createElement(u.Row,{className:"align-items-center"},n.createElement(u.Col,{xs:2},n.createElement(u.Form.Check.Input,{type:"radio",checked:Boolean(f)&&!p,onChange:function(){return h({until:s({date:d,frequency:E})})},disabled:i}),n.createElement(u.Form.Check.Label,null,v("on"))),n.createElement(u.Col,null,n.createElement(u.Form.Control,{type:"date",min:C,disabled:i||!f,"aria-label":"Date on which the recurrence ends",value:null!=f?f:s({date:d,frequency:E}),className:f&&"date-input-with-value",ref:k,onClick:function(){var e;return null===(e=null==k?void 0:k.current)||void 0===e?void 0:e.showPicker()},onChange:function(e){var t=e.target.value;return h({until:t})}})))),n.createElement(u.Form.Check,{type:"radio",id:F,custom:!0,className:"mt-3"},n.createElement(u.Row,{className:"align-items-center"},n.createElement(u.Col,{xs:2},n.createElement(u.Form.Check.Input,{type:"radio",checked:p<500&&!f,onChange:function(){return h({count:m[E]})},disabled:i}),n.createElement(u.Form.Check.Label,null,v("after"))),n.createElement(u.Col,null,n.createElement(u.InputGroup,null,n.createElement(u.Form.Control,{type:"number",min:1,max:500,disabled:i||!p||500===p,"aria-label":"Occurrence count",value:null!=p?p:m[E],onChange:function(e){var t=e.target.value;return h({count:Number(t)})}}),n.createElement(u.InputGroup.Append,null,n.createElement(u.InputGroup.Text,null,v("occurences"))))))))};
@@ -3,9 +3,10 @@ import { Frequency } from "rrule";
3
3
  export interface RecurrenceInputProps {
4
4
  disabled?: boolean;
5
5
  date: string;
6
+ minDate?: string;
6
7
  value?: string;
7
8
  onChange: (value: string) => void;
8
9
  initialFrequency?: Frequency;
9
10
  }
10
- export declare function RecurrenceInput({ disabled, date, value, onChange, initialFrequency, }: RecurrenceInputProps): JSX.Element;
11
+ export declare function RecurrenceInput({ disabled, date, minDate, value, onChange, initialFrequency, }: RecurrenceInputProps): JSX.Element;
11
12
  //# sourceMappingURL=RecurrenceInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecurrenceInput.d.ts","sourceRoot":"","sources":["../../src/recurrence-input/RecurrenceInput.tsx"],"names":[],"mappings":";AAIA,OAAc,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAWlD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAgB,EAChB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,gBAAmC,GACpC,EAAE,oBAAoB,eAoEtB"}
1
+ {"version":3,"file":"RecurrenceInput.d.ts","sourceRoot":"","sources":["../../src/recurrence-input/RecurrenceInput.tsx"],"names":[],"mappings":";AAIA,OAAc,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAWlD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAgB,EAChB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,gBAAmC,GACpC,EAAE,oBAAoB,eAqEtB"}
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib"),n=require("react"),t=e(n),a=require("luxon"),u=require("rrule"),i=e(u),d=require("./RecurrenceEndInput.js"),y=require("./RecurrenceIntervalAndFrequencyInput.js"),l=require("./utils.js"),c=require("./RecurrenceMonthlyRepeatByInput.js"),o=require("./RecurrenceWeekdaysInput.js");var s=function(e){var n,t=e.rrule,a=e.date,i=e.initialFrequency,d=void 0===i?u.Frequency.WEEKLY:i,y=r.__assign({interval:1,freq:d},t&&a&&l.parseAndValidateRRule({rrule:t,date:a})),c=y.byweekday;return y.freq!==u.Frequency.WEEKLY||(null===(n=y.byweekday)||void 0===n?void 0:n.length)?y.freq===u.Frequency.MONTHLY&&y.byweekday&&(c=y.byweekday[0]):c=[l.getWeekdayForFrequency({date:a,frequency:y.freq})],r.__assign(r.__assign({},y),{byweekday:c})};exports.RecurrenceInput=function(e){var f=e.disabled,q=void 0!==f&&f,v=e.date,b=e.value,E=e.onChange,_=e.initialFrequency,g=void 0===_?u.Frequency.WEEKLY:_,k=r.__read(n.useReducer((function(e,n){return r.__assign(r.__assign({},e),n)}),s({rrule:b,date:v,initialFrequency:g})),2),p=k[0],w=k[1];return n.useEffect((function(){return E(i.optionsToString(r.__assign(r.__assign({},p),{tzid:"Europe/London"})).replace("RRULE:",""))}),[p]),t.createElement("div",null,t.createElement(y.default,{interval:p.interval,frequency:p.freq,onChange:function(e){var r=e.interval,n=e.frequency;w({interval:r,freq:n,byweekday:n===p.freq?p.byweekday:n===i.WEEKLY?[l.getWeekdayForFrequency({date:v,frequency:n})]:void 0})},disabled:q}),p.freq===i.WEEKLY&&Array.isArray(p.byweekday)&&t.createElement(o.default,{date:v,value:p.byweekday,onChange:function(e){return w({byweekday:e})},disabled:q}),p.freq===i.MONTHLY&&!Array.isArray(p.byweekday)&&t.createElement(c.default,{date:v,value:p.byweekday,onChange:function(e){return w({byweekday:e})},disabled:q}),t.createElement(d.default,{date:v,frequency:p.freq,until:p.until&&a.DateTime.fromJSDate(p.until).toISODate(),count:p.count,onChange:function(e){var r=e.count,n=e.until;return w({count:r,until:n?a.DateTime.fromISO(n).toJSDate():void 0})},disabled:q}))};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib"),n=require("react"),t=e(n),a=require("luxon"),u=require("rrule"),i=e(u),d=require("./RecurrenceEndInput.js"),y=require("./RecurrenceIntervalAndFrequencyInput.js"),l=require("./utils.js"),c=require("./RecurrenceMonthlyRepeatByInput.js"),o=require("./RecurrenceWeekdaysInput.js");var s=function(e){var n,t=e.rrule,a=e.date,i=e.initialFrequency,d=void 0===i?u.Frequency.WEEKLY:i,y=r.__assign({interval:1,freq:d},t&&a&&l.parseAndValidateRRule({rrule:t,date:a})),c=y.byweekday;return y.freq!==u.Frequency.WEEKLY||(null===(n=y.byweekday)||void 0===n?void 0:n.length)?y.freq===u.Frequency.MONTHLY&&y.byweekday&&(c=y.byweekday[0]):c=[l.getWeekdayForFrequency({date:a,frequency:y.freq})],r.__assign(r.__assign({},y),{byweekday:c})};exports.RecurrenceInput=function(e){var f=e.disabled,q=void 0!==f&&f,v=e.date,b=e.minDate,E=e.value,_=e.onChange,g=e.initialFrequency,k=void 0===g?u.Frequency.WEEKLY:g,p=r.__read(n.useReducer((function(e,n){return r.__assign(r.__assign({},e),n)}),s({rrule:E,date:v,initialFrequency:k})),2),w=p[0],F=p[1];return n.useEffect((function(){return _(i.optionsToString(r.__assign(r.__assign({},w),{tzid:"Europe/London"})).replace("RRULE:",""))}),[w]),t.createElement("div",null,t.createElement(y.default,{interval:w.interval,frequency:w.freq,onChange:function(e){var r=e.interval,n=e.frequency;F({interval:r,freq:n,byweekday:n===w.freq?w.byweekday:n===i.WEEKLY?[l.getWeekdayForFrequency({date:v,frequency:n})]:void 0})},disabled:q}),w.freq===i.WEEKLY&&Array.isArray(w.byweekday)&&t.createElement(o.default,{date:v,value:w.byweekday,onChange:function(e){return F({byweekday:e})},disabled:q}),w.freq===i.MONTHLY&&!Array.isArray(w.byweekday)&&t.createElement(c.default,{date:v,value:w.byweekday,onChange:function(e){return F({byweekday:e})},disabled:q}),t.createElement(d.default,{date:v,minDate:b,frequency:w.freq,until:w.until&&a.DateTime.fromJSDate(w.until).toISODate(),count:w.count,onChange:function(e){var r=e.count,n=e.until;return F({count:r,until:n?a.DateTime.fromISO(n).toJSDate():void 0})},disabled:q}))};
@@ -15,6 +15,10 @@
15
15
  display: none !important;
16
16
  }
17
17
  }
18
+
19
+ &.is-invalid {
20
+ border-color: theme-color("danger");
21
+ }
18
22
  }
19
23
 
20
24
  .placeholder-row {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.44.522",
3
+ "version": "0.44.524",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -168,6 +168,9 @@ export function IntervalInput({
168
168
  value={value}
169
169
  onChange={onChange}
170
170
  date={start}
171
+ minDate={DateTime.fromISO(start)
172
+ .plus({ day: 1 })
173
+ .toFormat("yyyy-MM-dd")}
171
174
  disabled={disabled}
172
175
  />
173
176
  )}
@@ -12,21 +12,30 @@ export const useImage = (
12
12
  height: 0,
13
13
  });
14
14
 
15
+ const setImageEventHandler = function setImageEventHandler(
16
+ this: HTMLImageElement
17
+ ) {
18
+ imageRef.current = this;
19
+
20
+ setImageAttributes({
21
+ width: this.naturalWidth,
22
+ height: this.naturalHeight,
23
+ });
24
+ };
25
+
15
26
  const loadImage = useCallback((imageUrl?: string) => {
16
27
  imageRef.current = new window.Image();
17
28
  imageRef.current.src = imageUrl;
18
- imageRef.current.addEventListener("load", function () {
19
- imageRef.current = this;
20
-
21
- setImageAttributes({
22
- width: this.naturalWidth,
23
- height: this.naturalHeight,
24
- });
25
- });
29
+ imageRef.current.addEventListener("load", setImageEventHandler);
26
30
  }, []);
27
31
 
28
32
  useEffect(() => {
29
33
  loadImage(url);
34
+
35
+ return () => {
36
+ imageRef.current.removeEventListener("load", setImageEventHandler);
37
+ imageRef.current = undefined;
38
+ };
30
39
  }, [url, loadImage]);
31
40
 
32
41
  const memoizedImageAttributes = useMemo(() => {
@@ -314,13 +314,38 @@ export const EmailTemplateControl = React.forwardRef(
314
314
  <Row className="mb-4">
315
315
  <Form.Group as={Col}>
316
316
  <Form.Label>{t("Design:emailBody")}</Form.Label>
317
- <div className="email-editor">
317
+
318
+ <div className="alert alert-warning" role="alert">
319
+ Due to the mail services limitations on the length of the email
320
+ body that can be sent or received - maximum length is set to
321
+ 65,535 characters.
322
+ </div>
323
+
324
+ <div className={`email-editor ${errors.body && "is-invalid"}`}>
318
325
  <EmailEditor
319
326
  ref={ref}
320
327
  onReady={onReadyEditor}
321
328
  style={{ height: "50rem" }}
322
329
  />
330
+
331
+ <input
332
+ type="hidden"
333
+ name="body"
334
+ {...register("body", {
335
+ maxLength: {
336
+ value: 65535,
337
+ message: t("Validation:fieldMaxLength", {
338
+ attribute: t("body"),
339
+ max: 65535,
340
+ }) as string,
341
+ },
342
+ })}
343
+ />
323
344
  </div>
345
+
346
+ <Form.Control.Feedback type="invalid">
347
+ {errors.body?.message}
348
+ </Form.Control.Feedback>
324
349
  </Form.Group>
325
350
  </Row>
326
351
  <Row>
@@ -1,17 +1,19 @@
1
- import React, { useRef } from "react";
1
+ import React, { useEffect, useRef } from "react";
2
2
  import { useId } from "@react-aria/utils";
3
3
  import { DateTime, DurationUnit } from "luxon";
4
4
  import { Col, Form, InputGroup, Row } from "react-bootstrap";
5
5
  import RRule from "rrule";
6
-
6
+ import { DATE_FORMAT } from "@licklist/core/dist/Config";
7
+ import { useTranslation } from "react-i18next";
7
8
  import { SupportedFrequency } from "./utils";
8
9
  import HTMLInputDateElement from "../types/static/HTMLInputDateElement";
9
10
 
10
11
  interface Props {
11
12
  disabled?: boolean;
12
- date: string;
13
+ date: string; // yyyy-mm-ddThh:mm
14
+ minDate?: string; // should be in yyyy-mm-dd format
13
15
  frequency: SupportedFrequency;
14
- until?: string;
16
+ until?: string; // yyyy-mm-dd
15
17
  count?: number;
16
18
  onChange: (values: { until?: string; count?: number }) => void;
17
19
  }
@@ -23,16 +25,31 @@ function RecurrenceEndInput({
23
25
  until,
24
26
  count,
25
27
  onChange,
28
+ minDate,
26
29
  }: Props) {
30
+ const { t } = useTranslation("Design");
27
31
  // unique ids for radios
28
32
  const neverId = useId();
29
33
  const onId = useId();
30
34
  const afterId = useId();
31
35
  const dateInput = useRef<HTMLInputDateElement | null>(null);
32
36
 
37
+ useEffect(() => {
38
+ const untilDatetime = DateTime.fromFormat(
39
+ until ?? getUntil({ date, frequency }),
40
+ DATE_FORMAT
41
+ );
42
+
43
+ const minDatetime = DateTime.fromFormat(minDate, DATE_FORMAT);
44
+
45
+ if (minDatetime > untilDatetime) {
46
+ onChange({ until: minDate });
47
+ }
48
+ }, [minDate, onChange, until, date, frequency]);
49
+
33
50
  return (
34
51
  <Form.Group>
35
- <Form.Label>Ends</Form.Label>
52
+ <Form.Label>{t("ends")}</Form.Label>
36
53
 
37
54
  <Form.Check type="radio" id={neverId} custom className="mt-3">
38
55
  <Form.Check.Input
@@ -41,7 +58,7 @@ function RecurrenceEndInput({
41
58
  onChange={() => onChange({ count: 500 })}
42
59
  disabled={disabled}
43
60
  />
44
- <Form.Check.Label>Never</Form.Check.Label>
61
+ <Form.Check.Label>{t("never")}</Form.Check.Label>
45
62
  </Form.Check>
46
63
 
47
64
  <Form.Check type="radio" id={onId} custom className="mt-3">
@@ -55,11 +72,12 @@ function RecurrenceEndInput({
55
72
  }
56
73
  disabled={disabled}
57
74
  />
58
- <Form.Check.Label>On</Form.Check.Label>
75
+ <Form.Check.Label>{t("on")}</Form.Check.Label>
59
76
  </Col>
60
77
  <Col>
61
78
  <Form.Control
62
79
  type="date"
80
+ min={minDate}
63
81
  disabled={disabled || !until}
64
82
  aria-label="Date on which the recurrence ends"
65
83
  value={until ?? getUntil({ date, frequency })}
@@ -83,7 +101,7 @@ function RecurrenceEndInput({
83
101
  }
84
102
  disabled={disabled}
85
103
  />
86
- <Form.Check.Label>After</Form.Check.Label>
104
+ <Form.Check.Label>{t("after")}</Form.Check.Label>
87
105
  </Col>
88
106
  <Col>
89
107
  <InputGroup>
@@ -99,7 +117,7 @@ function RecurrenceEndInput({
99
117
  }
100
118
  />
101
119
  <InputGroup.Append>
102
- <InputGroup.Text>occurrences</InputGroup.Text>
120
+ <InputGroup.Text>{t("occurences")}</InputGroup.Text>
103
121
  </InputGroup.Append>
104
122
  </InputGroup>
105
123
  </Col>
@@ -16,6 +16,7 @@ import {
16
16
  export interface RecurrenceInputProps {
17
17
  disabled?: boolean;
18
18
  date: string;
19
+ minDate?: string;
19
20
  value?: string;
20
21
  onChange: (value: string) => void;
21
22
  initialFrequency?: Frequency;
@@ -24,6 +25,7 @@ export interface RecurrenceInputProps {
24
25
  export function RecurrenceInput({
25
26
  disabled = false,
26
27
  date,
28
+ minDate,
27
29
  value,
28
30
  onChange,
29
31
  initialFrequency = Frequency.WEEKLY,
@@ -82,6 +84,7 @@ export function RecurrenceInput({
82
84
  )}
83
85
  <RecurrenceEndInput
84
86
  date={date}
87
+ minDate={minDate}
85
88
  frequency={state.freq}
86
89
  until={state.until && DateTime.fromJSDate(state.until).toISODate()}
87
90
  count={state.count}
@@ -15,6 +15,10 @@
15
15
  display: none !important;
16
16
  }
17
17
  }
18
+
19
+ &.is-invalid {
20
+ border-color: theme-color("danger");
21
+ }
18
22
  }
19
23
 
20
24
  .placeholder-row {