@licklist/design 0.44.465 → 0.44.466-hf.1

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.
Files changed (31) hide show
  1. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.d.ts.map +1 -1
  2. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.js +1 -1
  3. package/dist/events/edit-event-modal/utils/isUrlValid.d.ts +2 -0
  4. package/dist/events/edit-event-modal/utils/isUrlValid.d.ts.map +1 -0
  5. package/dist/events/edit-event-modal/utils/isUrlValid.js +1 -0
  6. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  7. package/dist/product-set/form/ProductCategoriesControl.js +1 -1
  8. package/dist/product-set/form/context.d.ts +4 -2
  9. package/dist/product-set/form/context.d.ts.map +1 -1
  10. package/dist/product-set/form/context.js +1 -1
  11. package/dist/product-set/product-category/ProductCategoryControl.d.ts +1 -1
  12. package/dist/product-set/utils/index.d.ts +5 -0
  13. package/dist/product-set/utils/index.d.ts.map +1 -0
  14. package/dist/product-set/utils/index.js +1 -0
  15. package/dist/sales/manual-booking/formatDays.js +1 -1
  16. package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts.map +1 -1
  17. package/dist/sales/manual-booking/summary/ManualBookingSummary.js +1 -1
  18. package/dist/sortable-tree/SortableTreeItem.d.ts +2 -1
  19. package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
  20. package/dist/sortable-tree/SortableTreeItem.js +1 -1
  21. package/package.json +1 -1
  22. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.stories.tsx +1 -0
  23. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.tsx +17 -23
  24. package/src/events/edit-event-modal/utils/isUrlValid.ts +7 -0
  25. package/src/product-set/form/ProductCategoriesControl.tsx +67 -18
  26. package/src/product-set/form/context.tsx +18 -1
  27. package/src/product-set/product-category/ProductCategoryControl.tsx +1 -1
  28. package/src/product-set/utils/index.ts +16 -0
  29. package/src/sales/manual-booking/formatDays.ts +2 -2
  30. package/src/sales/manual-booking/summary/ManualBookingSummary.tsx +1 -2
  31. package/src/sortable-tree/SortableTreeItem.tsx +13 -2
@@ -1 +1 @@
1
- {"version":3,"file":"EditEventForm.d.ts","sourceRoot":"","sources":["../../../../../src/events/edit-event-modal/component/EditEventForm/EditEventForm.tsx"],"names":[],"mappings":";AAEA,OAAO,EAIL,KAAK,EACN,MAAM,sDAAsD,CAAC;AAM9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAI5E,OAAO,EAAE,UAAU,EAAE,MAAM,6DAA6D,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAS7D,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAIzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEnF,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAOD,eAAO,MAAM,aAAa,qLAYvB,kBAAkB,gBAyVpB,CAAC"}
1
+ {"version":3,"file":"EditEventForm.d.ts","sourceRoot":"","sources":["../../../../../src/events/edit-event-modal/component/EditEventForm/EditEventForm.tsx"],"names":[],"mappings":";AAEA,OAAO,EAIL,KAAK,EACN,MAAM,sDAAsD,CAAC;AAM9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAGvF,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAI5E,OAAO,EAAE,UAAU,EAAE,MAAM,6DAA6D,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAS7D,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAIzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGnF,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,WAAW,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAOD,eAAO,MAAM,aAAa,qLAYvB,kBAAkB,gBAkVpB,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"),r=require("react"),i=e(r),n=require("react-i18next"),o=require("react-bootstrap"),l=require("react-hook-form"),a=e(require("@licklist/plugins/dist/services/Form/FormErrorService")),u=require("@react-aria/utils"),d=require("luxon"),s=require("../../../../collapsible-input-group/CollapsibleInputGroup.js"),c=require("../../../../modals/dialog/Dialog.js"),m=require("../../../../modals/dialog/DialogContext.js"),p=require("@licklist/core/dist/DataMapper/Media/ImageDataMapper"),v=require("../../../../file-upload/FileUpload.js"),g=require("../../../../tiptap-editor/TipTapEditor.js"),E=require("../SelectEventProductSet/SelectEventProductSet.js"),f=require("@licklist/plugins/dist/hooks/Media/useMultipleImages"),I=require("@licklist/plugins/dist/utils/ScrollUtils"),b=require("@licklist/plugins/dist/utils/FormValues"),S=require("../SaleDeadline/SaleDeadline.js"),F=require("../../../../provider/categories-input/CategoriesInput.js"),P=require("../../../../provider/categories-input/CategoriesInputDescription.js");require("../../../../provider/location-input/LocationInput.js"),require("../../../../provider/location-input/LocationInputDescription.js"),require("../../../../provider/provider-links-input/ProviderLinksInput.js"),require("../../../../provider/provider-details-input/ProviderDetailsInput.js"),require("../../../../provider/provider-form/ProviderForm.js"),require("../../../../provider/working-hours-input/WorkingHoursInput.js"),require("../../../../provider/working-hours-input/WorkingHoursInputDescription.js"),require("../../../../provider/venue-form/VenueForm.js"),require("../../../../provider/company/user-form/UserForm.js");var q=require("../../IntervalInput.js"),h={uploadImage:p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_IMAGE],uploadCover:p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_COVER]},A=function(e){var t,r,i,n,o,l,a,u,s,c,m,p=function(e){return e&&d.DateTime.fromISO(e).toISO({includeOffset:!1,suppressMilliseconds:!0,suppressSeconds:!0})};return{name:null!==(t=null==e?void 0:e.name)&&void 0!==t?t:"",description:null!==(r=null==e?void 0:e.description)&&void 0!==r?r:"",start:p(null!==(i=null==e?void 0:e.startAt)&&void 0!==i?i:""),end:p(null!==(n=null==e?void 0:e.endAt)&&void 0!==n?n:""),rrule:null!==(o=null==e?void 0:e.rrule)&&void 0!==o?o:void 0,categories:null!==(l=null==e?void 0:e.categories)&&void 0!==l?l:[],termsAndConditions:null!==(a=null==e?void 0:e.termsAndConditions)&&void 0!==a?a:"",visible:null!==(u=null==e?void 0:e.visible)&&void 0!==u?u:"",externalPaymentLink:null!==(s=null==e?void 0:e.externalPaymentLink)&&void 0!==s?s:"",productSetId:null==e?void 0:e.productSetId,images:null==e?void 0:e.images,saleDeadline:null==e?void 0:e.saleDeadline,integrationUrl:null!==(c=null==e?void 0:e.integrationUrl)&&void 0!==c?c:"",recurrenceEndAt:null!==(m=null==e?void 0:e.recurrenceEndAt)&&void 0!==m?m:void 0}};exports.EditEventForm=function(e){var d,D,C=e.disabled,_=void 0!==C&&C,M=e.categories,y=e.title,j=e.hasPermission,k=void 0===j||j,L=e.defaultEventValues,w=e.serverErrors,G=e.onSaveEvent,U=e.productSets,T=e.createProductSet,x=e.setEditProductSetId,V=e.isExternalPaymentLinkEnabled,Y=n.useTranslation(["Design","Validation"]).t,O=u.useId(),R=u.useId(),B=u.useId(),N=u.useId(),W=u.useId(),H=t.__read(r.useState(null),2),K=H[0],z=H[1],J=t.__read(r.useState(!1),2),Q=J[0],X=J[1],Z=m.useDialogContext(),$=Z.isShownDialog,ee=Z.onBeforeUnload,te=Z.onPopState,re=Z.onApproveDialog,ie=Z.onDeclineDialog,ne=l.useForm({defaultValues:A(L)}),oe=ne.register,le=ne.formState.errors,ae=ne.handleSubmit,ue=ne.formState,de=ne.reset,se=ne.watch,ce=ne.setValue,me=ne.setError,pe=ne.getValues,ve=ne.control,ge=se("visible"),Ee=se("editedProductSet"),fe=f.useMultipleImages(K),Ie=fe.images,be=fe.handleImageRemove,Se=fe.handleImageUploading,Fe=fe.isImagesLoading,Pe=fe.isCoverImagesLoading,qe=r.useCallback((function(e){var t=Y("Validation:fieldValidWebURL",{attribute:Y("Design:integrationUrl")});try{var r=new URL(e),i=r.protocol,n=r.origin;return/^http(s)?:/.test(i)&&n===e?void 0:t}catch(e){return t}}),[]);return r.useEffect((function(){de(A(L))}),[L]),r.useEffect((function(){if(L.images&&L.images.length>0){var e=pe("images");z(e)}else z([])}),[z,pe,L]),r.useEffect((function(){Array.isArray(Ie)&&ce("images",Ie)}),[Ie]),r.useEffect((function(){a.handleServerErrors(w,me)}),[w]),r.useEffect((function(){return window.history.pushState(null,"",window.location.pathname),window.addEventListener("beforeunload",ee),window.addEventListener("popstate",te),function(){window.removeEventListener("beforeunload",ee),window.removeEventListener("popstate",te)}}),[]),i.createElement(i.Fragment,null,i.createElement(c.Dialog,{isActive:$,title:Y("Design:leavePage"),content:Y("Design:changesNotBeSaved"),onApprove:re,onDecline:ie}),i.createElement("h5",{className:"edit-event-modal-title highlited-primary-title"},y),i.createElement(l.FormProvider,t.__assign({},ne),i.createElement(o.Modal.Body,{as:"form",noValidate:!0,onSubmit:ae(G,(function(e){I.scrollToError(b.getFirstErrorKey(e))}))},i.createElement(o.Form.Group,{controlId:"name"},i.createElement(o.Form.Label,null,Y("nameOfEvent")),i.createElement(o.Form.Control,t.__assign({},oe("name",{required:Y("Validation:fieldRequired",{attribute:Y("name")}),maxLength:{value:255,message:Y("Validation:fieldMaxLength",{attribute:Y("name"),max:255})}}),{name:"name",required:!0,isInvalid:Boolean(le.name),disabled:_})),i.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(d=le.name)||void 0===d?void 0:d.message)),Object.keys(h).map((function(e){var t=h[e];return i.createElement(v.FileUpload,{key:e,allowedExtensions:["jpg","jpeg","png"],enablePreview:!0,defaultFiles:null==Ie?void 0:Ie.filter((function(e){return p.IMAGE_TYPE_MAP[e.imageType]===t})),onFilesChange:function(e){Se(e,t)},secondSubtitle:t===p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_IMAGE]?"1200x600":void 0,title:Y("Design:".concat(e)),onFileRemove:function(e,r){return be(String(e),r,t)},isLoading:t===p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_IMAGE]?Fe:Pe,disabled:_})})),i.createElement(o.Form.Group,{controlId:O},i.createElement(o.Form.Label,null,Y("description")),i.createElement(l.Controller,{render:function(e){var t=e.field;return i.createElement(g.TipTapEditor,{withEmoji:!1,viewMode:!1,onUpdate:t.onChange,content:t.value,disabled:_})},name:"description"})),i.createElement(q.IntervalInput,{key:se("rrule"),disabled:_,editedProductSet:Ee}),0!==M.length&&i.createElement(o.Form.Group,null,i.createElement(o.Accordion,null,i.createElement(s.CollapsibleInputGroup,{eventKey:"categories",label:Y("categories"),description:i.createElement(P.CategoriesInputDescription,{categories:M})},i.createElement(F.CategoriesInput,{categories:M})))),i.createElement(S.SaleDeadline,{disabled:_}),i.createElement(o.Form.Group,{controlId:R},i.createElement(o.Form.Label,null,Y("termsAndConditions")),i.createElement(l.Controller,{render:function(e){var t=e.field;return i.createElement(g.TipTapEditor,{withEmoji:!1,viewMode:!1,onUpdate:t.onChange,content:t.value,disabled:_})},name:"termsAndConditions"})),V&&i.createElement(o.Form.Group,{controlId:W},i.createElement(o.Form.Label,null,Y("externalPaymentLink")),i.createElement(o.Form.Control,t.__assign({},oe("externalPaymentLink"),{name:"externalPaymentLink",type:"url",inputMode:"url",disabled:_}))),i.createElement(o.Form.Group,{controlId:B,className:"mt-5"},i.createElement(o.Form.Label,null,Y("public")," / ",Y("private")),i.createElement(l.Controller,{control:ve,name:"visible",rules:{validate:function(e){return"boolean"==typeof e||Y("Validation:fieldRequired",{attribute:Y("visible")})}},render:function(e){var t=e.field,r=e.fieldState,n=r.invalid,l=r.error,a=String(t.value);return i.createElement(i.Fragment,null,i.createElement(o.Form.Control,{as:"select",onChange:function(e){var r=e.target.value;t.onChange(r?"true"===r:r)},isInvalid:n,defaultValue:"",value:a,disabled:_},i.createElement("option",{value:""},Y("Design:pleaseChooseOne")),i.createElement("option",{value:"false"},Y("Design:private")),i.createElement("option",{value:"true"},Y("Design:public"))),i.createElement(o.Form.Control.Feedback,{type:"invalid"},null==l?void 0:l.message))}})),"boolean"!=typeof ge||ge?null:i.createElement(o.Form.Group,{controlId:N},i.createElement(o.Form.Label,null,Y("Design:integrationUrl")),i.createElement(o.Form.Control,t.__assign({},oe("integrationUrl",{required:Y("Validation:fieldRequired",{attribute:Y("Design:integrationUrl")}),validate:qe}),{name:"integrationUrl",isInvalid:Boolean(le.integrationUrl),placeholder:Y("Design:integrationUrl"),disabled:_})),i.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(D=le.integrationUrl)||void 0===D?void 0:D.message)),i.createElement(E.SelectEventProductSet,{productSets:U||[],createProductSet:T,setEditProductSetId:x,setShowEditProductSet:X,showEditProductSet:Q}),k&&!Q&&i.createElement(o.Button,{disabled:_||ue.isSubmitting||Fe||Pe,className:"save-event",type:"submit"},ue.isSubmitting?"".concat(Y("saveAndAdd"),"..."):Y("saveAndAdd")))))};
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"),r=require("react"),i=e(r),n=require("react-i18next"),l=require("react-bootstrap"),o=require("react-hook-form"),a=e(require("@licklist/plugins/dist/services/Form/FormErrorService")),d=require("@react-aria/utils"),u=require("luxon"),s=require("../../../../collapsible-input-group/CollapsibleInputGroup.js"),c=require("../../../../modals/dialog/Dialog.js"),m=require("../../../../modals/dialog/DialogContext.js"),p=require("@licklist/core/dist/DataMapper/Media/ImageDataMapper"),v=require("../../../../file-upload/FileUpload.js"),g=require("../../../../tiptap-editor/TipTapEditor.js"),E=require("../SelectEventProductSet/SelectEventProductSet.js"),f=require("@licklist/plugins/dist/hooks/Media/useMultipleImages"),b=require("@licklist/plugins/dist/utils/ScrollUtils"),I=require("@licklist/plugins/dist/utils/FormValues"),S=require("../SaleDeadline/SaleDeadline.js"),P=require("../../../../provider/categories-input/CategoriesInput.js"),F=require("../../../../provider/categories-input/CategoriesInputDescription.js");require("../../../../provider/location-input/LocationInput.js"),require("../../../../provider/location-input/LocationInputDescription.js"),require("../../../../provider/provider-links-input/ProviderLinksInput.js"),require("../../../../provider/provider-details-input/ProviderDetailsInput.js"),require("../../../../provider/provider-form/ProviderForm.js"),require("../../../../provider/working-hours-input/WorkingHoursInput.js"),require("../../../../provider/working-hours-input/WorkingHoursInputDescription.js"),require("../../../../provider/venue-form/VenueForm.js"),require("../../../../provider/company/user-form/UserForm.js");var q=require("../../IntervalInput.js"),A=require("../../utils/isUrlValid.js"),D={uploadImage:p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_IMAGE],uploadCover:p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_COVER]},h=function(e){var t,r,i,n,l,o,a,d,s,c,m,p=function(e){return e&&u.DateTime.fromISO(e).toISO({includeOffset:!1,suppressMilliseconds:!0,suppressSeconds:!0})};return{name:null!==(t=null==e?void 0:e.name)&&void 0!==t?t:"",description:null!==(r=null==e?void 0:e.description)&&void 0!==r?r:"",start:p(null!==(i=null==e?void 0:e.startAt)&&void 0!==i?i:""),end:p(null!==(n=null==e?void 0:e.endAt)&&void 0!==n?n:""),rrule:null!==(l=null==e?void 0:e.rrule)&&void 0!==l?l:void 0,categories:null!==(o=null==e?void 0:e.categories)&&void 0!==o?o:[],termsAndConditions:null!==(a=null==e?void 0:e.termsAndConditions)&&void 0!==a?a:"",visible:null!==(d=null==e?void 0:e.visible)&&void 0!==d?d:"",externalPaymentLink:null!==(s=null==e?void 0:e.externalPaymentLink)&&void 0!==s?s:"",productSetId:null==e?void 0:e.productSetId,images:null==e?void 0:e.images,saleDeadline:null==e?void 0:e.saleDeadline,integrationUrl:null!==(c=null==e?void 0:e.integrationUrl)&&void 0!==c?c:"",recurrenceEndAt:null!==(m=null==e?void 0:e.recurrenceEndAt)&&void 0!==m?m:void 0}};exports.EditEventForm=function(e){var u,C,y,_=e.disabled,k=void 0!==_&&_,M=e.categories,L=e.title,j=e.hasPermission,w=void 0===j||j,x=e.defaultEventValues,G=e.serverErrors,U=e.onSaveEvent,T=e.productSets,V=e.createProductSet,Y=e.setEditProductSetId,O=e.isExternalPaymentLinkEnabled,R=n.useTranslation(["Design","Validation"]).t,B=d.useId(),N=d.useId(),W=d.useId(),H=d.useId(),K=d.useId(),z=t.__read(r.useState(null),2),J=z[0],Q=z[1],X=t.__read(r.useState(!1),2),Z=X[0],$=X[1],ee=m.useDialogContext(),te=ee.isShownDialog,re=ee.onBeforeUnload,ie=ee.onPopState,ne=ee.onApproveDialog,le=ee.onDeclineDialog,oe=o.useForm({defaultValues:h(x)}),ae=oe.register,de=oe.formState.errors,ue=oe.handleSubmit,se=oe.formState,ce=oe.reset,me=oe.watch,pe=oe.setValue,ve=oe.setError,ge=oe.getValues,Ee=oe.control,fe=me("visible"),be=me("editedProductSet"),Ie=f.useMultipleImages(J),Se=Ie.images,Pe=Ie.handleImageRemove,Fe=Ie.handleImageUploading,qe=Ie.isImagesLoading,Ae=Ie.isCoverImagesLoading,De=r.useCallback((function(e,t){return!!A.isUrlValid(e)||R("Validation:fieldValidWebURL",{attribute:t})}),[]);return r.useEffect((function(){ce(h(x))}),[x]),r.useEffect((function(){if(x.images&&x.images.length>0){var e=ge("images");Q(e)}else Q([])}),[Q,ge,x]),r.useEffect((function(){Array.isArray(Se)&&pe("images",Se)}),[Se]),r.useEffect((function(){a.handleServerErrors(G,ve)}),[G]),r.useEffect((function(){return window.history.pushState(null,"",window.location.pathname),window.addEventListener("beforeunload",re),window.addEventListener("popstate",ie),function(){window.removeEventListener("beforeunload",re),window.removeEventListener("popstate",ie)}}),[]),i.createElement(i.Fragment,null,i.createElement(c.Dialog,{isActive:te,title:R("Design:leavePage"),content:R("Design:changesNotBeSaved"),onApprove:ne,onDecline:le}),i.createElement("h5",{className:"edit-event-modal-title highlited-primary-title"},L),i.createElement(o.FormProvider,t.__assign({},oe),i.createElement(l.Modal.Body,{as:"form",noValidate:!0,onSubmit:ue(U,(function(e){b.scrollToError(I.getFirstErrorKey(e))}))},i.createElement(l.Form.Group,{controlId:"name"},i.createElement(l.Form.Label,null,R("nameOfEvent")),i.createElement(l.Form.Control,t.__assign({},ae("name",{required:R("Validation:fieldRequired",{attribute:R("name")}),maxLength:{value:255,message:R("Validation:fieldMaxLength",{attribute:R("name"),max:255})}}),{name:"name",required:!0,isInvalid:Boolean(de.name),disabled:k})),i.createElement(l.Form.Control.Feedback,{type:"invalid"},null===(u=de.name)||void 0===u?void 0:u.message)),Object.keys(D).map((function(e){var t=D[e];return i.createElement(v.FileUpload,{key:e,allowedExtensions:["jpg","jpeg","png"],enablePreview:!0,defaultFiles:null==Se?void 0:Se.filter((function(e){return p.IMAGE_TYPE_MAP[e.imageType]===t})),onFilesChange:function(e){Fe(e,t)},secondSubtitle:t===p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_IMAGE]?"1200x600":void 0,title:R("Design:".concat(e)),onFileRemove:function(e,r){return Pe(String(e),r,t)},isLoading:t===p.IMAGE_TYPE_MAP[p.IMAGE_TYPE_IMAGE]?qe:Ae,disabled:k})})),i.createElement(l.Form.Group,{controlId:B},i.createElement(l.Form.Label,null,R("description")),i.createElement(o.Controller,{render:function(e){var t=e.field;return i.createElement(g.TipTapEditor,{withEmoji:!1,viewMode:!1,onUpdate:t.onChange,content:t.value,disabled:k})},name:"description"})),i.createElement(q.IntervalInput,{key:me("rrule"),disabled:k,editedProductSet:be}),0!==M.length&&i.createElement(l.Form.Group,null,i.createElement(l.Accordion,null,i.createElement(s.CollapsibleInputGroup,{eventKey:"categories",label:R("categories"),description:i.createElement(F.CategoriesInputDescription,{categories:M})},i.createElement(P.CategoriesInput,{categories:M})))),i.createElement(S.SaleDeadline,{disabled:k}),i.createElement(l.Form.Group,{controlId:N},i.createElement(l.Form.Label,null,R("termsAndConditions")),i.createElement(o.Controller,{render:function(e){var t=e.field;return i.createElement(g.TipTapEditor,{withEmoji:!1,viewMode:!1,onUpdate:t.onChange,content:t.value,disabled:k})},name:"termsAndConditions"})),O&&i.createElement(l.Form.Group,{controlId:K},i.createElement(l.Form.Label,null,R("externalPaymentLink")),i.createElement(l.Form.Control,t.__assign({},ae("externalPaymentLink",{required:R("Validation:fieldRequired",{attribute:R("Design:externalPaymentLink")}),validate:function(e){return De(e,R("Design:externalPaymentLink"))}}),{name:"externalPaymentLink",type:"url",inputMode:"url",disabled:k,isInvalid:Boolean(de.externalPaymentLink)})),i.createElement(l.Form.Control.Feedback,{type:"invalid"},null===(C=de.externalPaymentLink)||void 0===C?void 0:C.message)),i.createElement(l.Form.Group,{controlId:W,className:"mt-5"},i.createElement(l.Form.Label,null,R("public")," / ",R("private")),i.createElement(o.Controller,{control:Ee,name:"visible",rules:{validate:function(e){return"boolean"==typeof e||R("Validation:fieldRequired",{attribute:R("visible")})}},render:function(e){var t=e.field,r=e.fieldState,n=r.invalid,o=r.error,a=String(t.value);return i.createElement(i.Fragment,null,i.createElement(l.Form.Control,{as:"select",onChange:function(e){var r=e.target.value;t.onChange(r?"true"===r:r)},isInvalid:n,defaultValue:"",value:a,disabled:k},i.createElement("option",{value:""},R("Design:pleaseChooseOne")),i.createElement("option",{value:"false"},R("Design:private")),i.createElement("option",{value:"true"},R("Design:public"))),i.createElement(l.Form.Control.Feedback,{type:"invalid"},null==o?void 0:o.message))}})),"boolean"!=typeof fe||fe?null:i.createElement(l.Form.Group,{controlId:H},i.createElement(l.Form.Label,null,R("Design:integrationUrl")),i.createElement(l.Form.Control,t.__assign({},ae("integrationUrl",{required:R("Validation:fieldRequired",{attribute:R("Design:integrationUrl")}),validate:function(e){return De(e,R("Design:integrationUrl"))}}),{name:"integrationUrl",isInvalid:Boolean(de.integrationUrl),placeholder:R("Design:integrationUrl"),disabled:k})),i.createElement(l.Form.Control.Feedback,{type:"invalid"},null===(y=de.integrationUrl)||void 0===y?void 0:y.message)),i.createElement(E.SelectEventProductSet,{productSets:T||[],createProductSet:V,setEditProductSetId:Y,setShowEditProductSet:$,showEditProductSet:Z}),w&&!Z&&i.createElement(l.Button,{disabled:k||se.isSubmitting||qe||Ae,className:"save-event",type:"submit"},se.isSubmitting?"".concat(R("saveAndAdd"),"..."):R("saveAndAdd")))))};
@@ -0,0 +1,2 @@
1
+ export declare const isUrlValid: (url: string) => boolean;
2
+ //# sourceMappingURL=isUrlValid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isUrlValid.d.ts","sourceRoot":"","sources":["../../../../src/events/edit-event-modal/utils/isUrlValid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,QAAS,MAAM,YAIrC,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("@licklist/plugins/dist/validation/Rules/urlRule");(e=t)&&"object"==typeof e&&"default"in e&&e.default;exports.isUrlValid=function(e){return!!t.ruleForUrlWithProtocol.test(e)};
@@ -1 +1 @@
1
- {"version":3,"file":"ProductCategoriesControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductCategoriesControl.tsx"],"names":[],"mappings":";AAYA,OAAO,EAKL,YAAY,EACb,MAAM,kEAAkE,CAAC;AAQ1E,OAAO,EAAwB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOvE,UAAU,6BAA8B,SAAQ,aAAa;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AA4BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,GACV,EAAE,6BAA6B,eAqO/B;AAED,eAAO,MAAM,cAAc,iBACX,YAAY,SACnB,MAAM;WACH,MAAM;eAAa,MAAM;CAcpC,CAAC"}
1
+ {"version":3,"file":"ProductCategoriesControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductCategoriesControl.tsx"],"names":[],"mappings":";AAYA,OAAO,EAKL,YAAY,EACb,MAAM,kEAAkE,CAAC;AAQ1E,OAAO,EAAwB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQvE,UAAU,6BAA8B,SAAQ,aAAa;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AA4BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,GACV,EAAE,6BAA6B,eAqR/B;AAED,eAAO,MAAM,cAAc,iBACX,YAAY,SACnB,MAAM;WACH,MAAM;eAAa,MAAM;CAcpC,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"),r=require("react"),o=e(r),a=require("react-i18next"),n=require("react-bootstrap"),i=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),l=e(require("clsx")),d=require("@dnd-kit/core"),s=require("lodash"),c=require("../../sortable-tree/SortableTreeItem.js"),m=require("../../sortable-tree/SortableTree.js"),p=require("../item/CreateProductSetItem.js"),g=require("./context.js"),v=require("@licklist/core/dist/DataMapper/Product/ProductCategoryDataMapper"),y=require("../product-category/ProductCategoryControl.js"),C=require("./ProductsControl.js"),f=require("./SelectCategoryModal.js"),b=require("./VenueMapSetModal.js");var E=function(e,t){return e===v.CATEGORY_TYPE_GAME?{className:"game-badge",label:t}:e===v.CATEGORY_TYPE_FIXED_DURATION?{className:"fixed-duration-badge",label:t}:null};exports.ProductCategoriesControl=function(e){var S,T,I,q,_,N,P=e.isLoading,x=e.stepIndex,M=a.useTranslation("Design").t,h=r.useContext(g.ProductSetLoadingContext).providerHasMap,A=i.useFormContext(),k=t.__read(r.useState(!1),2),D=k[0],R=k[1],j=t.__read(r.useState(!1),2),Y=j[0],V=j[1],F=t.__read(r.useState(!1),2),O=F[0],L=F[1],w=A.control,B=A.formState.errors,G=A.clearErrors,H=A.watch,Q=A.trigger,U=H("steps.".concat(x,".hasMap"))||!1,K="steps.".concat(x,".productCategories"),z=i.useFieldArray({name:K,control:w,keyName:"_id"}),W=z.fields,X=z.append,J=z.remove,Z=t.__read(r.useState([]),2),$=Z[0],ee=Z[1],te=1===W.length,re=i.useWatch({control:w,name:K}),oe=null===(T=null===(S=null==B?void 0:B.steps)||void 0===S?void 0:S[x])||void 0===T?void 0:T.productCategories,ae=null===(q=null===(I=null==B?void 0:B.steps)||void 0===I?void 0:I[x])||void 0===q?void 0:q.venueMapSetId,ne=null===(N=null===(_=null==B?void 0:B.steps)||void 0===_?void 0:_[x])||void 0===N?void 0:N.pointProducts,ie=Boolean(ae||ne),ue=d.useSensor(d.MouseSensor,{activationConstraint:{distance:10}});return r.useEffect((function(){re&&re.length&&re.forEach((function(e){var t,r,o,a=null===(r=e.products)||void 0===r?void 0:r.reduce((function(e,t){return e+Number(t.price)*Number(t.totalQuantity)}),0),n=null===(o=e.products)||void 0===o?void 0:o.reduce((function(e,t){return e+Number(t.totalQuantity)}),0);ee(((t={})[e.uniqueId]={price:a,quantity:n},t))}))}),[re]),o.createElement(o.Fragment,null,o.createElement(m.SortableTree,{sensors:[ue],items:W.map((function(e){return String(e._id)})),onDragEnd:function(e){}},W.map((function(e,t){return o.createElement(i.Controller,{key:"product-category-".concat(e._id),name:"".concat(K,".").concat(t,".name"),control:w,rules:{required:M("Validation:fieldRequired",{attribute:M("name")})},render:function(r){var a,i,u=r.field,l=u.value,d=u.onChange;return o.createElement(m.SortableTree.Item,{id:e._id,title:l,isExpanded:te,isInvalid:!!oe,badge:o.createElement(n.Badge,{className:"category-badge"},M("productCategory")),isIconInHeader:!1,subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-category-dot"}),o.createElement("span",null,null!==(i=null===(a=$[e.uniqueId])||void 0===a?void 0:a.quantity)&&void 0!==i?i:"N/A"," ",M("products"))),treeLineIconColor:"#1A93AA",modalLabel:M("addNewCategory"),secondaryBadge:E(e.type,M(e.type)),modalClass:c.ProductSetModalClasses.category,isNewAdded:O,body:o.createElement(y.ProductCategoryControl,{isLoading:P,onCategoryNameChange:d,categoryName:l,stepIndex:x,productCategoryIndex:t}),onDelete:function(){return J(t)},validate:function(){return Q("steps.".concat(x,".productCategories.").concat(t))},sortableItems:e.products?e.products.filter((function(e){return e.id})).map((function(e){var t=e.id;return String(t)})):[]},o.createElement(C.ProductsControl,{isLoading:P,quantityType:e.quantityType,hasTicket:null==e?void 0:e.hasTicket,stepIndex:x,productCategoryIndex:t,categoryType:e.type}))}})}))),o.createElement(p.CreateProductSetItem,{title:M("addCategory"),onClick:function(){R(!0)}}),o.createElement(f.SelectCategoryModal,{isVisible:D,onHide:function(){return R(!1)},onCategorySelect:function(e){X(function(e,t){return{id:null,uniqueId:Number(s.uniqueId()),name:"",minSubItems:null,maxSubItems:null,quantityType:v.QUANTITY_TYPE_STANDARD,type:e,isRelyOnPeople:e===v.CATEGORY_TYPE_TICKETS,isTimeRelated:!1,collectUserInfo:!1,hasTicket:e===v.CATEGORY_TYPE_TICKETS,allowDeposits:!1,remainderExpireAfter:void 0,hasBookingManagement:!1,weight:0,isReusable:!1,hasSubEvents:!1,products:[],zoneId:null,sort:t}}(e,W.length)),L(!0),(null==oe?void 0:oe.type)===u.manualErrorType&&G(K)}}),h&&U&&o.createElement(o.Fragment,null,o.createElement(p.CreateProductSetItem,{title:M("editMap"),onClick:function(){V(!0)},className:l("mt-3",ie&&"mb-3",ie&&"is-invalid")}),ie&&o.createElement("div",{className:"manual-form-error"},ae&&M("Validation:fieldRequired",{attribute:M("Design:venueMapSet")}),ne&&M("Validation:fieldMinNumber",{attribute:M("pointProduct"),min:1})),o.createElement(b.VenueMapSetModal,{isVisible:Y,setIsVisible:V,stepIndex:x})),o.createElement("div",{className:"manual-form-error"},oe&&oe.message))},exports.getBadgeConfig=E;
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"),r=require("react"),n=e(r),o=require("react-i18next"),i=require("react-bootstrap"),a=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),d=e(require("clsx")),l=require("@dnd-kit/core"),s=require("lodash"),c=require("../../sortable-tree/SortableTreeItem.js"),m=require("../../sortable-tree/SortableTree.js"),p=require("../item/CreateProductSetItem.js"),v=require("./context.js"),g=require("@licklist/core/dist/DataMapper/Product/ProductCategoryDataMapper"),f=require("../product-category/ProductCategoryControl.js"),y=require("./ProductsControl.js"),C=require("./SelectCategoryModal.js"),E=require("./VenueMapSetModal.js"),b=require("../utils/index.js");var I=function(e,t){return e===g.CATEGORY_TYPE_GAME?{className:"game-badge",label:t}:e===g.CATEGORY_TYPE_FIXED_DURATION?{className:"fixed-duration-badge",label:t}:null};exports.ProductCategoriesControl=function(e){var _,S,q,T,x,P,N=e.isLoading,M=e.stepIndex,A=o.useTranslation("Design").t,h=r.useContext(v.ProductSetLoadingContext),k=h.providerHasMap,j=h.expandedProductCategories,D=h.setExpandedProductCategories,R=a.useFormContext(),V=t.__read(r.useState(!1),2),Y=V[0],F=V[1],O=t.__read(r.useState(!1),2),B=O[0],L=O[1],w=t.__read(r.useState(!1),2),G=w[0],H=w[1],Q=R.control,U=R.formState.errors,K=R.clearErrors,z=R.watch,W=R.trigger,X=R.getValues,J=R.setValue,Z=z("steps.".concat(M,".hasMap"))||!1,$="steps.".concat(M,".productCategories"),ee=a.useFieldArray({name:$,control:Q,keyName:"_id"}),te=ee.fields,re=ee.append,ne=ee.remove,oe=t.__read(r.useState([]),2),ie=oe[0],ae=oe[1],ue=a.useWatch({control:Q,name:$}),de=null===(S=null===(_=null==U?void 0:U.steps)||void 0===_?void 0:_[M])||void 0===S?void 0:S.productCategories,le=null===(T=null===(q=null==U?void 0:U.steps)||void 0===q?void 0:q[M])||void 0===T?void 0:T.venueMapSetId,se=null===(P=null===(x=null==U?void 0:U.steps)||void 0===x?void 0:x[M])||void 0===P?void 0:P.pointProducts,ce=Boolean(le||se),me=l.useSensor(l.MouseSensor,{activationConstraint:{distance:10}});return r.useEffect((function(){ue&&ue.length&&ue.forEach((function(e){var t,r,n,o=null===(r=e.products)||void 0===r?void 0:r.reduce((function(e,t){return e+Number(t.price)*Number(t.totalQuantity)}),0),i=null===(n=e.products)||void 0===n?void 0:n.reduce((function(e,t){return e+Number(t.totalQuantity)}),0);ae(((t={})[(null==e?void 0:e.id)||e.uniqueId]={price:o,quantity:i},t))}))}),[ue]),r.useEffect((function(){1===te.length&&D((function(e){var r,n,o;return t.__assign(t.__assign({},e),((r={})[String((null===(n=te[0])||void 0===n?void 0:n.id)||(null===(o=te[0])||void 0===o?void 0:o.uniqueId))]=!0,r))}))}),[te]),n.createElement(n.Fragment,null,n.createElement(m.SortableTree,{sensors:[me],items:te.map((function(e){return String(e._id)})),onDragEnd:function(e){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var n=te.findIndex((function(e){return e._id===t.id})),o=te.findIndex((function(e){return e._id===r.id}));if(n!==o){var i=X($);if(i){var a=b.sortArrayByIndex(b.moveArrayElements(i,n,o));J($,a)}}}}},te.map((function(e,r){var o=(null==e?void 0:e.id)?String(e.id):e.uniqueId,u=function(){!function(e){D((function(r){var n;return t.__assign(t.__assign({},r),((n={})[e]=!r[e],n))}))}(o)};return n.createElement(a.Controller,{key:"product-category-".concat(e._id),name:"".concat($,".").concat(r,".name"),control:Q,rules:{required:A("Validation:fieldRequired",{attribute:A("name")})},render:function(t){var a,d,l,s=t.field,p=s.value,v=s.onChange;return n.createElement(m.SortableTree.Item,{id:e._id,title:p,isExpanded:j[o],setIsExpanded:u,isInvalid:!!de,badge:n.createElement(i.Badge,{className:"category-badge"},A("productCategory")),isIconInHeader:!1,subTitle:n.createElement("div",{className:"product-set-badges-container"},n.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-category-dot"}),n.createElement("span",null,null!==(l=null===(d=ie[null!==(a=null==e?void 0:e.id)&&void 0!==a?a:e.uniqueId])||void 0===d?void 0:d.quantity)&&void 0!==l?l:"N/A"," ",A("products"))),treeLineIconColor:"#1A93AA",modalLabel:A("addNewCategory"),secondaryBadge:I(e.type,A(e.type)),modalClass:c.ProductSetModalClasses.category,isNewAdded:G,body:n.createElement(f.ProductCategoryControl,{isLoading:N,onCategoryNameChange:v,categoryName:p,stepIndex:M,productCategoryIndex:r}),onDelete:function(){return ne(r)},validate:function(){return W("steps.".concat(M,".productCategories.").concat(r))},sortableItems:e.products?e.products.filter((function(e){return e.id})).map((function(e){var t=e.id;return String(t)})):[]},n.createElement(y.ProductsControl,{isLoading:N,quantityType:e.quantityType,hasTicket:null==e?void 0:e.hasTicket,stepIndex:M,productCategoryIndex:r,categoryType:e.type}))}})}))),n.createElement(p.CreateProductSetItem,{title:A("addCategory"),onClick:function(){F(!0)}}),n.createElement(C.SelectCategoryModal,{isVisible:Y,onHide:function(){return F(!1)},onCategorySelect:function(e){re(function(e,t){return{id:null,uniqueId:s.uniqueId("product-category"),name:"",minSubItems:null,maxSubItems:null,quantityType:g.QUANTITY_TYPE_STANDARD,type:e,isRelyOnPeople:e===g.CATEGORY_TYPE_TICKETS,isTimeRelated:!1,collectUserInfo:!1,hasTicket:e===g.CATEGORY_TYPE_TICKETS,allowDeposits:!1,remainderExpireAfter:void 0,hasBookingManagement:!1,weight:0,isReusable:!1,hasSubEvents:!1,products:[],zoneId:null,sort:t}}(e,te.length)),H(!0),(null==de?void 0:de.type)===u.manualErrorType&&K($)}}),k&&Z&&n.createElement(n.Fragment,null,n.createElement(p.CreateProductSetItem,{title:A("editMap"),onClick:function(){L(!0)},className:d("mt-3",ce&&"mb-3",ce&&"is-invalid")}),ce&&n.createElement("div",{className:"manual-form-error"},le&&A("Validation:fieldRequired",{attribute:A("Design:venueMapSet")}),se&&A("Validation:fieldMinNumber",{attribute:A("pointProduct"),min:1})),n.createElement(E.VenueMapSetModal,{isVisible:B,setIsVisible:L,stepIndex:M})),n.createElement("div",{className:"manual-form-error"},de&&de.message))},exports.getBadgeConfig=I;
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren } from "react";
1
+ import React, { PropsWithChildren, SetStateAction, Dispatch } from "react";
2
2
  import { VenueMapSet } from "@licklist/core/dist/DataMapper/Product/VenueMapSetDataMapper";
3
3
  import { ProviderBookingManagementSetting } from "@licklist/core/dist/DataMapper/Provider/ProviderBookingManagementSettingDataMapper";
4
4
  import { Zone } from "@licklist/core/dist/DataMapper/Provider/ZoneDataMapper";
@@ -11,9 +11,11 @@ interface LoadingContext {
11
11
  venueMapSets?: VenueMapSet[];
12
12
  providerHasBookingManagement?: ProviderBookingManagementSetting["hasBookingManagement"];
13
13
  zones?: Zone[] | null;
14
+ expandedProductCategories: Record<string, boolean>;
15
+ setExpandedProductCategories: Dispatch<SetStateAction<Record<string, boolean>>>;
14
16
  }
15
17
  export declare const ProductSetLoadingContext: React.Context<LoadingContext>;
16
- declare type ProductSetContextProviderProps = PropsWithChildren<Omit<LoadingContext, "isLoading" | "setLoading">>;
18
+ declare type ProductSetContextProviderProps = PropsWithChildren<Omit<LoadingContext, "isLoading" | "setLoading" | "expandedProductCategories" | "setExpandedProductCategories">>;
17
19
  export declare function ProductSetContextProvider({ children, productGroupList, providerHasMap, venueMapSets, providerHasBookingManagement, zones, }: ProductSetContextProviderProps): JSX.Element;
18
20
  export {};
19
21
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAIlB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,8DAA8D,CAAC;AAE3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,oFAAoF,CAAC;AACtI,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,UAAU,cAAc;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,4BAA4B,CAAC,EAAE,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;IACxF,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,+BAEpC,CAAC;AAEF,aAAK,8BAA8B,GAAG,iBAAiB,CACrD,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,YAAY,CAAC,CACjD,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,gBAAqB,EACrB,cAAsB,EACtB,YAAiB,EACjB,4BAA4B,EAC5B,KAAK,GACN,EAAE,8BAA8B,eAqBhC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EACjB,cAAc,EAId,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,8DAA8D,CAAC;AAE3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,oFAAoF,CAAC;AACtI,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,UAAU,cAAc;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,4BAA4B,CAAC,EAAE,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;IACxF,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,4BAA4B,EAAE,QAAQ,CACpC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACxC,CAAC;CACH;AAED,eAAO,MAAM,wBAAwB,+BAEpC,CAAC;AAEF,aAAK,8BAA8B,GAAG,iBAAiB,CACrD,IAAI,CACF,cAAc,EACZ,WAAW,GACX,YAAY,GACZ,2BAA2B,GAC3B,8BAA8B,CACjC,CACF,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,gBAAqB,EACrB,cAAsB,EACtB,YAAiB,EACjB,4BAA4B,EAC5B,KAAK,GACN,EAAE,8BAA8B,eA0BhC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=r.createContext(null);exports.ProductSetContextProvider=function(e){var i=e.children,n=e.productGroupList,d=void 0===n?[]:n,u=e.providerHasMap,s=void 0!==u&&u,p=e.venueMapSets,v=void 0===p?[]:p,c=e.providerHasBookingManagement,l=e.zones,f=t.__read(r.useState(void 0),2),g=f[0],M=f[1],x=t.__read(r.useState(!1),2),S=x[0],_=x[1];return r.useEffect((function(){return M(l)}),[l]),o.createElement(a.Provider,{value:{isLoading:S,setLoading:_,productGroupList:d,providerHasMap:s,venueMapSets:v,providerHasBookingManagement:c,zones:g}},i)},exports.ProductSetLoadingContext=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=r.createContext(null);exports.ProductSetContextProvider=function(e){var d=e.children,i=e.productGroupList,n=void 0===i?[]:i,u=e.providerHasMap,s=void 0!==u&&u,p=e.venueMapSets,c=void 0===p?[]:p,v=e.providerHasBookingManagement,l=e.zones,g=t.__read(r.useState(void 0),2),f=g[0],x=g[1],_=t.__read(r.useState(!1),2),M=_[0],P=_[1],S=t.__read(r.useState({}),2),C=S[0],L=S[1];return r.useEffect((function(){return x(l)}),[l]),o.createElement(a.Provider,{value:{isLoading:M,setLoading:P,productGroupList:n,providerHasMap:s,venueMapSets:c,providerHasBookingManagement:v,zones:f,expandedProductCategories:C,setExpandedProductCategories:L}},d)},exports.ProductSetLoadingContext=a;
@@ -5,7 +5,7 @@ import { Zone } from "@licklist/core/dist/DataMapper/Provider/ZoneDataMapper";
5
5
  import { IsDeletableEvent } from "../types";
6
6
  export interface ProductCategoryControlValues extends FormValues {
7
7
  id: number;
8
- uniqueId?: number;
8
+ uniqueId?: string;
9
9
  name: string;
10
10
  minSubItems: number | null;
11
11
  maxSubItems: number | null;
@@ -0,0 +1,5 @@
1
+ export declare const moveArrayElements: <T>(array: T[], prevIndex: number, nextIndex: number) => T[];
2
+ export declare const sortArrayByIndex: <T>(array: T[]) => (T & {
3
+ sort: number;
4
+ })[];
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/product-set/utils/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,6BAEjB,MAAM,aACN,MAAM,QAQlB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;IAE5B,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib");exports.moveArrayElements=function(e,s,t){var n=r.__spreadArray([],r.__read(e),!1);return n.splice(t,0,n.splice(s,1)[0]),n},exports.sortArrayByIndex=function(e){return e.map((function(e,s){return r.__assign(r.__assign({},e),{sort:s})}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@licklist/core/dist/Config"),e=require("luxon");exports.formatToDays=function(r){if(!r)return null;if(7===r.length)return"Everyday";var e=!0,t=r.map((function(t,n){switch(n>0&&r[n-1]!==t-1&&(e=!1),t){case 0:return"Mon";case 1:return"Tue";case 2:return"Wed";case 3:return"Thu";case 4:return"Fri";case 5:return"Sat";case 6:return"Sun";default:return""}}));return r.length>3&&e?"".concat(t[0]," - ").concat(t[t.length-1]):t.join(", ")},exports.formatToHours=function(t,n){var o=e.DateTime.fromISO(t).toUTC().toFormat(r.TIME_FORMAT),u=e.DateTime.fromISO(n).toUTC().toFormat(r.TIME_FORMAT);return"".concat(o," - ").concat(u)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@licklist/core/dist/Config"),e=require("luxon");exports.formatToDays=function(r){if(!r)return null;if(7===r.length)return"Everyday";var e=!0,t=r.map((function(t,n){switch(n>0&&r[n-1]!==t-1&&(e=!1),t){case 0:return"Mon";case 1:return"Tue";case 2:return"Wed";case 3:return"Thu";case 4:return"Fri";case 5:return"Sat";case 6:return"Sun";default:return""}}));return r.length>3&&e?"".concat(t[0]," - ").concat(t[t.length-1]):t.join(", ")},exports.formatToHours=function(t,n){var o=e.DateTime.fromISO(t).toFormat(r.TIME_FORMAT),u=e.DateTime.fromISO(n).toFormat(r.TIME_FORMAT);return"".concat(o," - ").concat(u)};
@@ -1 +1 @@
1
- {"version":3,"file":"ManualBookingSummary.d.ts","sourceRoot":"","sources":["../../../../src/sales/manual-booking/summary/ManualBookingSummary.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+DAA+D,CAAC;AAWnG,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,sFAO9B,yBAAyB,gBAyE3B,CAAC"}
1
+ {"version":3,"file":"ManualBookingSummary.d.ts","sourceRoot":"","sources":["../../../../src/sales/manual-booking/summary/ManualBookingSummary.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+DAA+D,CAAC;AAUnG,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,sFAO9B,yBAAyB,gBAyE3B,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,a=require("@licklist/core/dist/Config");require("../../../static/loader/LoaderIndicator.js");var n=require("../../../static/loader/BlockLoader.js"),l=require("react-i18next");require("../../../static/loader/ButtonLoader.js"),require("../../../static/loader/SnippetLoader.js"),require("../../../static/loader/PaymentLoader.js");var c=require("luxon"),i=require("react-intl"),m=require("@licklist/core/dist/Config/Date");exports.ManualBookingSummary=function(e){var t=e.eventName,s=e.orders,o=e.ordersSum,u=e.orderSumIncludingFee,d=e.isFeeFetching,y=e.orderDate,E=l.useTranslation(["Design","Sale"]).t,v=i.useIntl().formatNumber,N=c.DateTime.fromISO(y,{zone:m.TIMEZONE}),p=N.toFormat(a.DATE_TIME_MANUAL_BOOKING_FORMAT),q=N.toFormat(a.TIME_FORMAT);return r.createElement("div",{className:"manual-booking-summary"},r.createElement("div",{className:"receipt-title"},E("Sale:receipt")),r.createElement("div",{className:"event-name border-summary-item"},t),r.createElement("div",{className:"border-summary-item"},p),r.createElement("div",{className:"border-summary-item"},q),s.length>0?r.createElement("div",{className:"summary-item-container"},s.map((function(e){return r.createElement("div",{key:e.id,className:"d-flex justify-content-between border-summary-item"},r.createElement("div",null,e.name),r.createElement("div",null,e.isRelyOnPeople?"x ".concat(e.quantity," People"):""),r.createElement("div",null,v(e.quantity*e.price,{style:"currency",currency:a.Currency.GBP})))})),r.createElement("div",null,r.createElement("div",{className:"total-container"},r.createElement("div",null,E("Sale:total")),r.createElement("div",{className:"total-amount"},v(o,{style:"currency",currency:a.Currency.GBP}))),u&&r.createElement("div",{className:"total-container ".concat(d?"mt-6":"mt-4")},d||!u?r.createElement(n.BlockLoader,null):r.createElement(r.Fragment,null,r.createElement("div",null,E("Sale:includingOperationalCost")),r.createElement("div",{className:"total-amount"},v(u,{style:"currency",currency:a.Currency.GBP})))))):r.createElement("div",{className:"cart-items"},r.createElement("p",{className:"empty-cart"},E("Design:emptyBasket"))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,a=require("@licklist/core/dist/Config");require("../../../static/loader/LoaderIndicator.js");var n=require("../../../static/loader/BlockLoader.js"),l=require("react-i18next");require("../../../static/loader/ButtonLoader.js"),require("../../../static/loader/SnippetLoader.js"),require("../../../static/loader/PaymentLoader.js");var c=require("luxon"),i=require("react-intl");exports.ManualBookingSummary=function(e){var t=e.eventName,m=e.orders,s=e.ordersSum,o=e.orderSumIncludingFee,u=e.isFeeFetching,d=e.orderDate,y=l.useTranslation(["Design","Sale"]).t,v=i.useIntl().formatNumber,E=c.DateTime.fromISO(d),N=E.toFormat(a.DATE_TIME_MANUAL_BOOKING_FORMAT),p=E.toFormat(a.TIME_FORMAT);return r.createElement("div",{className:"manual-booking-summary"},r.createElement("div",{className:"receipt-title"},y("Sale:receipt")),r.createElement("div",{className:"event-name border-summary-item"},t),r.createElement("div",{className:"border-summary-item"},N),r.createElement("div",{className:"border-summary-item"},p),m.length>0?r.createElement("div",{className:"summary-item-container"},m.map((function(e){return r.createElement("div",{key:e.id,className:"d-flex justify-content-between border-summary-item"},r.createElement("div",null,e.name),r.createElement("div",null,e.isRelyOnPeople?"x ".concat(e.quantity," People"):""),r.createElement("div",null,v(e.quantity*e.price,{style:"currency",currency:a.Currency.GBP})))})),r.createElement("div",null,r.createElement("div",{className:"total-container"},r.createElement("div",null,y("Sale:total")),r.createElement("div",{className:"total-amount"},v(s,{style:"currency",currency:a.Currency.GBP}))),o&&r.createElement("div",{className:"total-container ".concat(u?"mt-6":"mt-4")},u||!o?r.createElement(n.BlockLoader,null):r.createElement(r.Fragment,null,r.createElement("div",null,y("Sale:includingOperationalCost")),r.createElement("div",{className:"total-amount"},v(o,{style:"currency",currency:a.Currency.GBP})))))):r.createElement("div",{className:"cart-items"},r.createElement("p",{className:"empty-cart"},y("Design:emptyBasket"))))};
@@ -28,6 +28,7 @@ export interface SortableTreeItemProps {
28
28
  label: string;
29
29
  className: string;
30
30
  };
31
+ setIsExpanded?: () => void;
31
32
  }
32
- export declare function SortableTreeItem({ id, title, badge, subTitle, body, children, preItem, postItem, sortableItems, isExpanded, isInvalid, isIconInHeader, treeLineIconColor, modalLabel, modalClass, isNewAdded, onDelete, validate, secondaryBadge, }: SortableTreeItemProps): JSX.Element;
33
+ export declare function SortableTreeItem({ id, title, badge, subTitle, body, children, preItem, postItem, sortableItems, isExpanded, isInvalid, isIconInHeader, treeLineIconColor, modalLabel, modalClass, isNewAdded, onDelete, validate, secondaryBadge, setIsExpanded, }: SortableTreeItemProps): JSX.Element;
33
34
  //# sourceMappingURL=SortableTreeItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SortableTreeItem.d.ts","sourceRoot":"","sources":["../../src/sortable-tree/SortableTreeItem.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAkBhE,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,oBAAY,0BAA0B,GACpC,OAAO,sBAAsB,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,UAAkB,EAClB,SAAiB,EACjB,cAAqB,EACrB,iBAAsB,EACtB,UAAe,EACf,UAAU,EACV,UAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,cAAc,GACf,EAAE,qBAAqB,eAoRvB"}
1
+ {"version":3,"file":"SortableTreeItem.d.ts","sourceRoot":"","sources":["../../src/sortable-tree/SortableTreeItem.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAoC,MAAM,OAAO,CAAC;AAkB3E,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,oBAAY,0BAA0B,GACpC,OAAO,sBAAsB,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,UAAkB,EAClB,SAAiB,EACjB,cAAqB,EACrB,iBAAsB,EACtB,UAAe,EACf,UAAU,EACV,UAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,GACd,EAAE,qBAAqB,eA6RvB"}
@@ -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"),r=e(a),n=require("react-i18next"),l=require("react-bootstrap"),o=require("../static/Icon.js"),s=e(require("clsx")),i=require("@dnd-kit/core"),c=require("@dnd-kit/sortable"),d=require("@dnd-kit/utilities"),m=require("../modals/confirmation/ConfirmModal.js");require("../modals/dialog/Dialog.js"),require("../modals/dialog/DialogContext.js");var u=require("../product-set/elements/DeleteFieldButton.js"),p={step:"edit-product-step",category:"edit-product-category",product:"edit-product"};exports.ProductSetModalClasses=p,exports.SortableTreeItem=function(e){var b=this,g=e.id,v=e.title,E=e.badge,f=e.subTitle,N=e.body,y=e.children,h=e.preItem,w=e.postItem,C=e.sortableItems,_=e.isExpanded,x=void 0!==_&&_,D=e.isInvalid,S=void 0!==D&&D,q=e.isIconInHeader,M=void 0===q||q,k=e.treeLineIconColor,I=void 0===k?"":k,B=e.modalLabel,j=void 0===B?"":B,P=e.modalClass,T=e.isNewAdded,X=void 0!==T&&T,Y=e.onDelete,A=e.validate,L=e.secondaryBadge,R=t.__read(a.useState(x),2),U=R[0],z=R[1],F=t.__read(a.useState(X),2),H=F[0],K=F[1],V=n.useTranslation("Design").t,O=c.useSortable({id:g}),G=O.attributes,J=O.listeners,Q=O.setNodeRef,W=O.transform,Z=O.transition,$=t.__read(a.useState({pageX:0,pageY:0}),2),ee=$[0],te=$[1],ae=i.useDraggable({id:g}),re=ae.isDragging,ne=ae.attributes,le=ae.listeners,oe=ae.setNodeRef,se=ae.transform,ie=a.useCallback((function(e){var t=e.pageX-ee.pageX,a=e.pageY-ee.pageY;Math.sqrt(t*t+a*a)>5||z((function(e){return!e}))}),[ee]),ce=a.useCallback((function(e){te({pageX:e.pageX,pageY:e.pageY})}),[]),de=function(){return t.__awaiter(b,void 0,void 0,(function(){return t.__generator(this,(function(e){switch(e.label){case 0:return A||K(!1),[4,null==A?void 0:A()];case 1:return e.sent()&&K(!1),[2]}}))}))};return r.createElement("div",t.__assign({className:"sortable-tree-root",style:{transform:d.CSS.Translate.toString(W),transition:Z}},ne,le,{ref:Q}),r.createElement("div",t.__assign({className:"sortable-tree-wrapper",ref:oe},ne,le,{onKeyDown:function(e){return e.stopPropagation()},onMouseDown:function(e){H&&e.stopPropagation()},onMouseUp:function(e){H&&e.stopPropagation()},role:"button",tabIndex:0,style:P===p.step?{transform:d.CSS.Translate.toString(se),opacity:re?.7:1}:null}),r.createElement("div",{className:"sortable-tree-line"},r.createElement(l.Button,{variant:"link",size:"sm",onMouseDown:ce,onMouseUp:ie},U?r.createElement(o.default,{type:"minus",width:".7rem"}):r.createElement("div",{className:"expand-icon-container"},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))),U&&r.createElement("svg",{className:"sortable-tree-line-icon",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none"},r.createElement("g",null,r.createElement("path",{className:s("sortable-tree-line-icon-path",I&&"sortable-tree-line-product-element"),style:{stroke:I},d:"M 50 0 V 100"})))),r.createElement("div",{className:"sortable-tree-item-wrapper"},r.createElement("div",{className:s("sortable-tree-item",S?"invalid":"")},r.createElement("div",{className:"sortable-tree-item-header"},M&&r.createElement(l.Button,t.__assign({variant:"link",className:"sortable-tree-item-handle"},G,J),r.createElement(o.default,{type:"grip-vertical"})),r.createElement(l.Button,{className:"sortable-tree-item-toggle",variant:"link",onMouseDown:ce,onMouseUp:ie},E&&r.createElement("span",{className:"sortable-tree-item-badge"},E),r.createElement("div",{className:s(j?"sortable-tree-product-set-title-container":"sortable-tree-title-container")},r.createElement("span",{className:s("sortable-tree-item-title",j&&"sortable-tree-product-set-element-title")},v),!U&&r.createElement("span",{className:"sortable-tree-item-subtitle"},f)),r.createElement("div",{className:"border-0 open-edit-right-modal-button",role:"button",tabIndex:0,onClick:function(e){e.stopPropagation(),K(!0)},onKeyDown:function(e){return e.stopPropagation()}},r.createElement(o.default,{type:"ellipsis-h",color:"#0E8CE2",height:"1rem"})))),M?r.createElement(l.Collapse,{in:U},r.createElement("div",null,r.createElement("div",{className:"sortable-tree-item-body"},N))):r.createElement(l.Modal,{size:"lg",show:H,className:s("m-0 edit-product-set-element-modal edit-right-form-modal h-100",P),dialogClassName:"edit-event-dialog edit-step-dialog",onHide:de},r.createElement("div",{className:"edit-step-modal-header"},r.createElement("button",{className:"p-0 cancel-add-step-btn border-0",type:"button",onClick:de},r.createElement("span",null,V("Design:cancel"))),L&&r.createElement("div",{className:"secondary-badge ".concat(null==L?void 0:L.className)},null==L?void 0:L.label)),r.createElement(l.Modal.Body,{as:"form",noValidate:!0},r.createElement("div",{className:"top-label-container"},r.createElement("span",null,j)),N,r.createElement("div",{className:"d-flex product-set-element-control-btns justify-content-between"},r.createElement(l.Button,{className:"step-save-btn mt-4",type:"button",onClick:de},V("saveAndAdd")),r.createElement("div",{className:"d-flex justify-content-end mt-4 delete-btn"},Boolean(Y)&&r.createElement(m.ConfirmModal,null,(function(e){return r.createElement(u.DeleteFieldButton,{onDelete:function(){return e(Y)}})}))))))),C&&r.createElement("div",{className:"sortable-tree-subitems"},h,r.createElement(i.DndContext,null,r.createElement(c.SortableContext,{items:C,strategy:c.verticalListSortingStrategy},r.createElement(l.Collapse,{in:U},r.createElement("div",{className:"ml-0"},y)))),w))))};
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),r=require("react-i18next"),l=require("react-bootstrap"),o=require("../static/Icon.js"),s=e(require("clsx")),i=require("@dnd-kit/core"),c=require("@dnd-kit/sortable"),d=require("@dnd-kit/utilities"),m=require("../modals/confirmation/ConfirmModal.js");require("../modals/dialog/Dialog.js"),require("../modals/dialog/DialogContext.js");var u=require("../product-set/elements/DeleteFieldButton.js"),p={step:"edit-product-step",category:"edit-product-category",product:"edit-product"};exports.ProductSetModalClasses=p,exports.SortableTreeItem=function(e){var b=this,g=e.id,v=e.title,E=e.badge,f=e.subTitle,N=e.body,y=e.children,h=e.preItem,w=e.postItem,C=e.sortableItems,_=e.isExpanded,x=void 0!==_&&_,D=e.isInvalid,S=void 0!==D&&D,q=e.isIconInHeader,M=void 0===q||q,k=e.treeLineIconColor,I=void 0===k?"":k,B=e.modalLabel,j=void 0===B?"":B,P=e.modalClass,T=e.isNewAdded,X=void 0!==T&&T,Y=e.onDelete,A=e.validate,L=e.secondaryBadge,R=e.setIsExpanded,U=t.__read(a.useState(x),2),z=U[0],F=U[1],H=t.__read(a.useState(X),2),K=H[0],V=H[1],O=r.useTranslation("Design").t,G=c.useSortable({id:g}),J=G.attributes,Q=G.listeners,W=G.setNodeRef,Z=G.transform,$=G.transition,ee=t.__read(a.useState({pageX:0,pageY:0}),2),te=ee[0],ae=ee[1],ne=i.useDraggable({id:g}),re=ne.isDragging,le=ne.attributes,oe=ne.listeners,se=ne.setNodeRef,ie=ne.transform,ce=a.useCallback((function(e){var t=e.pageX-te.pageX,a=e.pageY-te.pageY;Math.sqrt(t*t+a*a)>5||(R?R():F((function(e){return!e})))}),[te,R]),de=a.useCallback((function(e){ae({pageX:e.pageX,pageY:e.pageY})}),[]),me=function(){return t.__awaiter(b,void 0,void 0,(function(){return t.__generator(this,(function(e){switch(e.label){case 0:return A||V(!1),[4,null==A?void 0:A()];case 1:return e.sent()&&V(!1),[2]}}))}))};return a.useEffect((function(){F(x)}),[x]),n.createElement("div",t.__assign({className:"sortable-tree-root",style:{transform:d.CSS.Translate.toString(Z),transition:$}},le,oe,{ref:W}),n.createElement("div",t.__assign({className:"sortable-tree-wrapper",ref:se},le,oe,{onKeyDown:function(e){return e.stopPropagation()},onMouseDown:function(e){K&&e.stopPropagation()},onMouseUp:function(e){K&&e.stopPropagation()},role:"button",tabIndex:0,style:P===p.step?{transform:d.CSS.Translate.toString(ie),opacity:re?.7:1}:null}),n.createElement("div",{className:"sortable-tree-line"},n.createElement(l.Button,{variant:"link",size:"sm",onMouseDown:de,onMouseUp:ce},z?n.createElement(o.default,{type:"minus",width:".7rem"}):n.createElement("div",{className:"expand-icon-container"},n.createElement("div",null),n.createElement("div",null),n.createElement("div",null))),z&&n.createElement("svg",{className:"sortable-tree-line-icon",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none"},n.createElement("g",null,n.createElement("path",{className:s("sortable-tree-line-icon-path",I&&"sortable-tree-line-product-element"),style:{stroke:I},d:"M 50 0 V 100"})))),n.createElement("div",{className:"sortable-tree-item-wrapper"},n.createElement("div",{className:s("sortable-tree-item",S?"invalid":"")},n.createElement("div",{className:"sortable-tree-item-header"},M&&n.createElement(l.Button,t.__assign({variant:"link",className:"sortable-tree-item-handle"},J,Q),n.createElement(o.default,{type:"grip-vertical"})),n.createElement(l.Button,{className:"sortable-tree-item-toggle",variant:"link",onMouseDown:de,onMouseUp:ce},E&&n.createElement("span",{className:"sortable-tree-item-badge"},E),n.createElement("div",{className:s(j?"sortable-tree-product-set-title-container":"sortable-tree-title-container")},n.createElement("span",{className:s("sortable-tree-item-title",j&&"sortable-tree-product-set-element-title")},v),!z&&n.createElement("span",{className:"sortable-tree-item-subtitle"},f)),n.createElement("div",{className:"border-0 open-edit-right-modal-button",role:"button",tabIndex:0,onClick:function(e){e.stopPropagation(),V(!0)},onKeyDown:function(e){return e.stopPropagation()}},n.createElement(o.default,{type:"ellipsis-h",color:"#0E8CE2",height:"1rem"})))),M?n.createElement(l.Collapse,{in:z},n.createElement("div",null,n.createElement("div",{className:"sortable-tree-item-body"},N))):n.createElement(l.Modal,{size:"lg",show:K,className:s("m-0 edit-product-set-element-modal edit-right-form-modal h-100",P),dialogClassName:"edit-event-dialog edit-step-dialog",onHide:me},n.createElement("div",{className:"edit-step-modal-header"},n.createElement("button",{className:"p-0 cancel-add-step-btn border-0",type:"button",onClick:me},n.createElement("span",null,O("Design:cancel"))),L&&n.createElement("div",{className:"secondary-badge ".concat(null==L?void 0:L.className)},null==L?void 0:L.label)),n.createElement(l.Modal.Body,{as:"form",noValidate:!0},n.createElement("div",{className:"top-label-container"},n.createElement("span",null,j)),N,n.createElement("div",{className:"d-flex product-set-element-control-btns justify-content-between"},n.createElement(l.Button,{className:"step-save-btn mt-4",type:"button",onClick:me},O("saveAndAdd")),n.createElement("div",{className:"d-flex justify-content-end mt-4 delete-btn"},Boolean(Y)&&n.createElement(m.ConfirmModal,null,(function(e){return n.createElement(u.DeleteFieldButton,{onDelete:function(){return e(Y)}})}))))))),C&&n.createElement("div",{className:"sortable-tree-subitems"},h,n.createElement(i.DndContext,null,n.createElement(c.SortableContext,{items:C,strategy:c.verticalListSortingStrategy},n.createElement(l.Collapse,{in:z},n.createElement("div",{className:"ml-0"},y)))),w))))};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.44.465",
3
+ "version": "0.44.466-hf.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -1120,4 +1120,5 @@ Default.args = {
1120
1120
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1121
1121
  // @ts-ignore
1122
1122
  productSets: defaultProductSets,
1123
+ isExternalPaymentLinkEnabled: true,
1123
1124
  };
@@ -33,6 +33,7 @@ import { SelectEventProductSet } from "../SelectEventProductSet";
33
33
  import { Dialog, useDialogContext } from "../../../../modals/dialog";
34
34
 
35
35
  import { ProductSetFormValues } from "../../../../product-set/form/ProductSetForm";
36
+ import { isUrlValid } from "../../utils/isUrlValid";
36
37
 
37
38
  export interface EditEventFormValues extends IntervalInputValues {
38
39
  name: string;
@@ -133,27 +134,9 @@ export const EditEventForm = ({
133
134
  scrollToError(getFirstErrorKey(submitErrors));
134
135
  };
135
136
 
136
- const validateURL = useCallback((url: string) => {
137
- const error = t("Validation:fieldValidWebURL", {
138
- attribute: t("Design:integrationUrl"),
139
- });
140
-
141
- // handle check protocol and
142
- // pattern with http(s)://
143
- // and check url equals to parsed orgin
144
- // because parsing http:test.test
145
- // handle value http://test.test
146
-
147
- try {
148
- const { protocol, origin } = new URL(url);
149
- if (!/^http(s)?:/.test(protocol) || origin !== url) {
150
- return error;
151
- }
152
-
153
- return undefined;
154
- } catch (_) {
155
- return error;
156
- }
137
+ const validateURL = useCallback((url: string, attribute: string) => {
138
+ if (isUrlValid(url)) return true;
139
+ return t("Validation:fieldValidWebURL", { attribute });
157
140
  }, []);
158
141
 
159
142
  useEffect(() => {
@@ -324,12 +307,22 @@ export const EditEventForm = ({
324
307
  <Form.Group controlId={externalPaymentLinkId}>
325
308
  <Form.Label>{t("externalPaymentLink")}</Form.Label>
326
309
  <Form.Control
327
- {...register("externalPaymentLink")}
310
+ {...register("externalPaymentLink", {
311
+ required: t("Validation:fieldRequired", {
312
+ attribute: t("Design:externalPaymentLink"),
313
+ }) as string,
314
+ validate: (url) =>
315
+ validateURL(url, t("Design:externalPaymentLink")),
316
+ })}
328
317
  name="externalPaymentLink"
329
318
  type="url"
330
319
  inputMode="url"
331
320
  disabled={disabled}
321
+ isInvalid={Boolean(errors.externalPaymentLink)}
332
322
  />
323
+ <Form.Control.Feedback type="invalid">
324
+ {errors.externalPaymentLink?.message}
325
+ </Form.Control.Feedback>
333
326
  </Form.Group>
334
327
  )}
335
328
 
@@ -386,7 +379,8 @@ export const EditEventForm = ({
386
379
  required: t("Validation:fieldRequired", {
387
380
  attribute: t("Design:integrationUrl"),
388
381
  }) as string,
389
- validate: validateURL,
382
+ validate: (url) =>
383
+ validateURL(url, t("Design:integrationUrl")),
390
384
  })}
391
385
  name="integrationUrl"
392
386
  isInvalid={Boolean(errors.integrationUrl)}
@@ -0,0 +1,7 @@
1
+ import { ruleForUrlWithProtocol } from "@licklist/plugins/dist/validation/Rules/urlRule";
2
+
3
+ export const isUrlValid = (url: string) => {
4
+ if (ruleForUrlWithProtocol.test(url)) return true;
5
+
6
+ return false;
7
+ };
@@ -28,6 +28,7 @@ import { ProductSetFormValues, WithIsLoading } from "./ProductSetForm";
28
28
  import { SelectCategoryModal } from "./SelectCategoryModal";
29
29
  import { ProductSetLoadingContext } from "./context";
30
30
  import { VenueMapSetModal } from "./VenueMapSetModal";
31
+ import { moveArrayElements, sortArrayByIndex } from "../utils";
31
32
  // @TODO not for first release
32
33
  // import Popover from "./ProductSetFormPopover";
33
34
 
@@ -40,7 +41,7 @@ const getCategoryDefaultValue = (
40
41
  sort: number
41
42
  ): ProductCategory => ({
42
43
  id: null,
43
- uniqueId: Number(uniqueId()),
44
+ uniqueId: uniqueId("product-category"),
44
45
  name: "",
45
46
  minSubItems: null,
46
47
  maxSubItems: null,
@@ -66,7 +67,11 @@ export function ProductCategoriesControl({
66
67
  stepIndex,
67
68
  }: ProductCategoriesControlProps) {
68
69
  const { t } = useTranslation("Design");
69
- const { providerHasMap } = useContext(ProductSetLoadingContext);
70
+ const {
71
+ providerHasMap,
72
+ expandedProductCategories,
73
+ setExpandedProductCategories,
74
+ } = useContext(ProductSetLoadingContext);
70
75
  const form = useFormContext<ProductSetFormValues>();
71
76
  const [isSelectCategoryVisible, setIsSelectCategoryVisible] = useState(false);
72
77
  const [isVenueMapSetModalVisible, setIsVenueMapSetModalVisible] =
@@ -78,6 +83,8 @@ export function ProductCategoriesControl({
78
83
  clearErrors,
79
84
  watch,
80
85
  trigger,
86
+ getValues,
87
+ setValue,
81
88
  } = form;
82
89
 
83
90
  const hasMap: boolean = watch(`steps.${stepIndex}.hasMap` as const) || false;
@@ -94,8 +101,6 @@ export function ProductCategoriesControl({
94
101
  Record<number, { price: number; quantity: number }>
95
102
  >([]);
96
103
 
97
- const isFirstCategoryAdded = fields.length === 1;
98
-
99
104
  const productCategories: ProductCategory[] = useWatch({
100
105
  control,
101
106
  name: productCategoriesFieldName,
@@ -117,17 +122,39 @@ export function ProductCategoriesControl({
117
122
  },
118
123
  });
119
124
 
120
- const handleDragEnd = (_event) => {
125
+ const handleDragEnd = (event) => {
121
126
  // @TODO uncomment when will be fix for change sort index
122
- // const { active, over } = _event;
123
- // if (!active || !over || !active?.id || !over?.id) return;
124
- // const prevIndex = fields.findIndex((field) => field._id === active.id);
125
- // const nextIndex = fields.findIndex((field) => field._id === over.id);
126
- // if (prevIndex === nextIndex) return;
127
- // move(prevIndex, nextIndex);
128
- // fields.forEach((_, index) => {
129
- // setValue(`${productCategoriesFieldName}.${index}.sort` as const, index);
130
- // });
127
+ const { active, over } = event;
128
+
129
+ if (!active || !over || !active?.id || !over?.id) return;
130
+
131
+ const prevIndex = fields.findIndex((field) => field._id === active.id);
132
+ const nextIndex = fields.findIndex((field) => field._id === over.id);
133
+
134
+ if (prevIndex === nextIndex) return;
135
+
136
+ const productCategories = getValues(productCategoriesFieldName);
137
+
138
+ if (!productCategories) return;
139
+
140
+ const nextProductCategories = sortArrayByIndex<ProductCategory>(
141
+ moveArrayElements<ProductCategory>(
142
+ productCategories,
143
+ prevIndex,
144
+ nextIndex
145
+ )
146
+ );
147
+
148
+ setValue(productCategoriesFieldName, nextProductCategories);
149
+ };
150
+
151
+ const setIsExpanded = (productCategoryId: string) => {
152
+ setExpandedProductCategories((prevValues: Record<string, any>) => {
153
+ return {
154
+ ...prevValues,
155
+ [productCategoryId]: !prevValues[productCategoryId],
156
+ };
157
+ });
131
158
  };
132
159
 
133
160
  useEffect(() => {
@@ -142,7 +169,9 @@ export function ProductCategoriesControl({
142
169
  }, 0);
143
170
 
144
171
  setProductCategoryState({
145
- [productCategory.uniqueId]: {
172
+ // New added categories will have uniqueId
173
+ // but existing have already assigned Id.
174
+ [productCategory?.id || productCategory.uniqueId]: {
146
175
  price,
147
176
  quantity,
148
177
  },
@@ -150,6 +179,16 @@ export function ProductCategoriesControl({
150
179
  });
151
180
  }, [productCategories]);
152
181
 
182
+ useEffect(() => {
183
+ if (fields.length !== 1) return;
184
+
185
+ setExpandedProductCategories((prevValues) => ({
186
+ ...prevValues,
187
+ [String(fields[0]?.id || fields[0]?.uniqueId)]: true,
188
+ }));
189
+ // eslint-disable-next-line react-hooks/exhaustive-deps
190
+ }, [fields]);
191
+
153
192
  return (
154
193
  <>
155
194
  <SortableTree
@@ -158,6 +197,14 @@ export function ProductCategoriesControl({
158
197
  onDragEnd={handleDragEnd}
159
198
  >
160
199
  {fields.map((productCategory, index) => {
200
+ const productCategoryId = productCategory?.id
201
+ ? String(productCategory.id)
202
+ : productCategory.uniqueId;
203
+
204
+ const onSetIsExpanded = () => {
205
+ setIsExpanded(productCategoryId);
206
+ };
207
+
161
208
  return (
162
209
  <Controller
163
210
  key={`product-category-${productCategory._id}`}
@@ -172,7 +219,8 @@ export function ProductCategoriesControl({
172
219
  <SortableTree.Item
173
220
  id={productCategory._id}
174
221
  title={value}
175
- isExpanded={isFirstCategoryAdded}
222
+ isExpanded={expandedProductCategories[productCategoryId]}
223
+ setIsExpanded={onSetIsExpanded}
176
224
  isInvalid={!!productCategoriesErrors}
177
225
  badge={
178
226
  <Badge className="category-badge">
@@ -184,8 +232,9 @@ export function ProductCategoriesControl({
184
232
  <div className="product-set-badges-container">
185
233
  <div className="product-set-subtitle-dot product-set-subtitle-category-dot" />
186
234
  <span>
187
- {productCategoryState[productCategory.uniqueId]
188
- ?.quantity ?? "N/A"}{" "}
235
+ {productCategoryState[
236
+ productCategory?.id ?? productCategory.uniqueId
237
+ ]?.quantity ?? "N/A"}{" "}
189
238
  {t("products")}
190
239
  </span>
191
240
  </div>
@@ -1,8 +1,10 @@
1
1
  import React, {
2
2
  PropsWithChildren,
3
+ SetStateAction,
3
4
  createContext,
4
5
  useEffect,
5
6
  useState,
7
+ Dispatch,
6
8
  } from "react";
7
9
  import { VenueMapSet } from "@licklist/core/dist/DataMapper/Product/VenueMapSetDataMapper";
8
10
  // eslint-disable-next-line max-len
@@ -18,6 +20,10 @@ interface LoadingContext {
18
20
  venueMapSets?: VenueMapSet[];
19
21
  providerHasBookingManagement?: ProviderBookingManagementSetting["hasBookingManagement"];
20
22
  zones?: Zone[] | null;
23
+ expandedProductCategories: Record<string, boolean>;
24
+ setExpandedProductCategories: Dispatch<
25
+ SetStateAction<Record<string, boolean>>
26
+ >;
21
27
  }
22
28
 
23
29
  export const ProductSetLoadingContext = createContext<LoadingContext | null>(
@@ -25,7 +31,13 @@ export const ProductSetLoadingContext = createContext<LoadingContext | null>(
25
31
  );
26
32
 
27
33
  type ProductSetContextProviderProps = PropsWithChildren<
28
- Omit<LoadingContext, "isLoading" | "setLoading">
34
+ Omit<
35
+ LoadingContext,
36
+ | "isLoading"
37
+ | "setLoading"
38
+ | "expandedProductCategories"
39
+ | "setExpandedProductCategories"
40
+ >
29
41
  >;
30
42
 
31
43
  export function ProductSetContextProvider({
@@ -38,6 +50,9 @@ export function ProductSetContextProvider({
38
50
  }: ProductSetContextProviderProps) {
39
51
  const [zonesState, setZonesState] = useState<Zone[] | undefined>(undefined);
40
52
  const [loading, setLoading] = useState(false);
53
+ const [expandedProductCategories, setExpandedProductCategories] = useState<
54
+ Record<string, boolean>
55
+ >({});
41
56
 
42
57
  useEffect(() => setZonesState(zones), [zones]);
43
58
 
@@ -51,6 +66,8 @@ export function ProductSetContextProvider({
51
66
  venueMapSets,
52
67
  providerHasBookingManagement,
53
68
  zones: zonesState,
69
+ expandedProductCategories,
70
+ setExpandedProductCategories,
54
71
  }}
55
72
  >
56
73
  {children}
@@ -22,7 +22,7 @@ import { ProductSetLoadingContext } from "../form/context";
22
22
 
23
23
  export interface ProductCategoryControlValues extends FormValues {
24
24
  id: number;
25
- uniqueId?: number;
25
+ uniqueId?: string;
26
26
  name: string;
27
27
  minSubItems: number | null;
28
28
  maxSubItems: number | null;
@@ -0,0 +1,16 @@
1
+ export const moveArrayElements = <T>(
2
+ array: T[],
3
+ prevIndex: number,
4
+ nextIndex: number
5
+ ) => {
6
+ const nextArray = [...array];
7
+ // We move there elements in array
8
+ // by set and change indexes
9
+ nextArray.splice(nextIndex, 0, nextArray.splice(prevIndex, 1)[0]);
10
+
11
+ return nextArray;
12
+ };
13
+
14
+ export const sortArrayByIndex = <T>(array: T[]) => {
15
+ return array.map((element: T, index) => ({ ...element, sort: index }));
16
+ };
@@ -40,7 +40,7 @@ export const formatToDays = (daysInWeek?: number[]): string | null => {
40
40
  };
41
41
 
42
42
  export const formatToHours = (startAt: string, endAt: string) => {
43
- const firstTime = DateTime.fromISO(startAt).toUTC().toFormat(TIME_FORMAT);
44
- const lastTime = DateTime.fromISO(endAt).toUTC().toFormat(TIME_FORMAT);
43
+ const firstTime = DateTime.fromISO(startAt).toFormat(TIME_FORMAT);
44
+ const lastTime = DateTime.fromISO(endAt).toFormat(TIME_FORMAT);
45
45
  return `${firstTime} - ${lastTime}`;
46
46
  };
@@ -8,7 +8,6 @@ import {
8
8
  } from "@licklist/core/dist/Config";
9
9
  import { useIntl } from "react-intl";
10
10
  import * as Config from "@licklist/core/dist/Config";
11
- import { TIMEZONE } from "@licklist/core/dist/Config/Date";
12
11
  import { BlockLoader } from "../../../static/loader";
13
12
 
14
13
  export interface ManualBookingSummaryProps {
@@ -31,7 +30,7 @@ export const ManualBookingSummary = ({
31
30
  const { t } = useTranslation(["Design", "Sale"]);
32
31
  const { formatNumber } = useIntl();
33
32
 
34
- const currentDate = DateTime.fromISO(orderDate, { zone: TIMEZONE });
33
+ const currentDate = DateTime.fromISO(orderDate);
35
34
  const date = currentDate.toFormat(DATE_TIME_MANUAL_BOOKING_FORMAT);
36
35
  const time = currentDate.toFormat(TIME_FORMAT);
37
36
 
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, useCallback, useState } from "react";
1
+ import React, { ReactNode, useCallback, useEffect, useState } from "react";
2
2
  import { DndContext, useDraggable } from "@dnd-kit/core";
3
3
  import {
4
4
  SortableContext,
@@ -48,6 +48,7 @@ export interface SortableTreeItemProps {
48
48
  label: string;
49
49
  className: string;
50
50
  };
51
+ setIsExpanded?: () => void;
51
52
  }
52
53
 
53
54
  export function SortableTreeItem({
@@ -70,6 +71,7 @@ export function SortableTreeItem({
70
71
  onDelete,
71
72
  validate,
72
73
  secondaryBadge,
74
+ setIsExpanded,
73
75
  }: SortableTreeItemProps) {
74
76
  const [expanded, setExpanded] = useState(isExpanded);
75
77
  const [isModalVisible, setIsModalVisible] = useState(isNewAdded);
@@ -102,9 +104,14 @@ export function SortableTreeItem({
102
104
  return;
103
105
  }
104
106
 
107
+ if (setIsExpanded) {
108
+ setIsExpanded();
109
+ return;
110
+ }
111
+
105
112
  setExpanded((expanded) => !expanded);
106
113
  },
107
- [position]
114
+ [position, setIsExpanded]
108
115
  );
109
116
 
110
117
  const onButtonMouseDown = useCallback((event) => {
@@ -118,6 +125,10 @@ export function SortableTreeItem({
118
125
  if (success) setIsModalVisible(false);
119
126
  };
120
127
 
128
+ useEffect(() => {
129
+ setExpanded(isExpanded);
130
+ }, [isExpanded]);
131
+
121
132
  return (
122
133
  <div
123
134
  className="sortable-tree-root"