@licklist/design 0.44.514 → 0.44.516

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 (41) hide show
  1. package/dist/events/edit-event-modal/IntervalInput.d.ts.map +1 -1
  2. package/dist/events/edit-event-modal/IntervalInput.js +1 -1
  3. package/dist/events/event-venue-map/components/MapPoint/MapPoint.d.ts.map +1 -1
  4. package/dist/events/event-venue-map/components/MapPoint/MapPoint.js +1 -1
  5. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  6. package/dist/product-set/form/ProductCategoriesControl.js +1 -1
  7. package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
  8. package/dist/product-set/form/ProductsControl.js +1 -1
  9. package/dist/product-set/form/StepsControl.d.ts.map +1 -1
  10. package/dist/product-set/form/StepsControl.js +1 -1
  11. package/dist/product-set/hooks/useSortableTreeFunctions.d.ts +11 -0
  12. package/dist/product-set/hooks/useSortableTreeFunctions.d.ts.map +1 -0
  13. package/dist/product-set/hooks/useSortableTreeFunctions.js +1 -0
  14. package/dist/product-set/product/quantity/ProductQuantityRechargingControl.d.ts.map +1 -1
  15. package/dist/product-set/product/quantity/ProductQuantityRechargingControl.js +1 -1
  16. package/dist/provider/constants.d.ts +2 -0
  17. package/dist/provider/constants.d.ts.map +1 -0
  18. package/dist/provider/constants.js +1 -0
  19. package/dist/provider/provider-details-input/ProviderDetailsInput.d.ts.map +1 -1
  20. package/dist/provider/provider-details-input/ProviderDetailsInput.js +1 -1
  21. package/dist/sales/coupon/control/CouponFormControl.d.ts.map +1 -1
  22. package/dist/sales/coupon/control/CouponFormControl.js +1 -1
  23. package/dist/sortable-tree/SortableTreeItem.d.ts +4 -1
  24. package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
  25. package/dist/sortable-tree/SortableTreeItem.js +1 -1
  26. package/dist/styles/events/EventVenueMap.scss +1 -1
  27. package/dist/typeahead/Typeahead.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/events/edit-event-modal/IntervalInput.tsx +7 -1
  30. package/src/events/event-venue-map/components/MapPoint/MapPoint.tsx +3 -2
  31. package/src/product-set/form/ProductCategoriesControl.tsx +9 -0
  32. package/src/product-set/form/ProductsControl.tsx +10 -0
  33. package/src/product-set/form/StepsControl.tsx +11 -1
  34. package/src/product-set/hooks/useSortableTreeFunctions.tsx +39 -0
  35. package/src/product-set/product/quantity/ProductQuantityRechargingControl.tsx +29 -3
  36. package/src/provider/constants.ts +1 -0
  37. package/src/provider/provider-details-input/ProviderDetailsInput.tsx +28 -2
  38. package/src/sales/coupon/control/CouponFormControl.tsx +5 -0
  39. package/src/sortable-tree/SortableTreeItem.tsx +27 -6
  40. package/src/styles/events/EventVenueMap.scss +1 -1
  41. package/src/typeahead/Typeahead.tsx +3 -2
@@ -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,eA4IpB"}
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 +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,E=void 0!==p&&p,g=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.setValue,D=m(),T=f(),k=y("rrule"),x=y("start"),M=y("end"),O=t.__read(r.useState(Boolean(k)),2),V=O[0],w=O[1],R=t.__read(r.useState(!1),2),B=R[0],j=R[1],G=l.useId(),P=r.useRef(null),L=r.useRef(null);return r.useEffect((function(){g&&w(!1)}),[g]),r.useEffect((function(){if(F){var e=F.find((function(e){return g&&(null==e?void 0:e.id)===(null==g?void 0:g.id)||Boolean(null==e?void 0:e.parentMenuId)&&(null==e?void 0:e.id)===I}));j(Boolean(e))}}),[F,I,j,g]),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",T.start),{value:x,name:"start",required:!0,isInvalid:Boolean(_.start),onChange:function(e){var t=e.target.value;w(!1),S("start",t),d.DateTime.fromISO(M).diff(d.DateTime.fromISO(t)).toMillis()<0&&S("end",t)},onClick:function(){var e;return null===(e=null==P?void 0:P.current)||void 0===e?void 0:e.showPicker()},ref:P,disabled:E})),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",T.end),{value:M,name:"end",onChange:function(e){var t=e.target.value;return S("end",t)},min:x,isInvalid:Boolean(_.end),onClick:function(){var e;return null===(e=null==L?void 0:L.current)||void 0===e?void 0:e.showPicker()},ref:L,disabled:E})),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},D&&"lasts ".concat(D)))),x&&n.createElement(o.Form.Group,{controlId:G},n.createElement(o.Form.Check,{label:"Recurrent",custom:!0,checked:V,onChange:function(e){var t=e.target.checked;w(t)},disabled:E||Boolean(g)}),!V&&n.createElement(o.Form.Text,{muted:!0},C("reccurentDescription",{item:C("event")}))),B&&n.createElement(u.default,{message:C("recurrentOverridesWarining")}),V&&x&&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:x,disabled:E})}})))};
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 +1 @@
1
- {"version":3,"file":"MapPoint.d.ts","sourceRoot":"","sources":["../../../../../src/events/event-venue-map/components/MapPoint/MapPoint.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,aAAK,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GACjC,WAAW,GAAG;IACZ,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAClC,CAAC;AAEJ,eAAO,MAAM,QAAQ,sMAclB,aAAa,gBAqHf,CAAC"}
1
+ {"version":3,"file":"MapPoint.d.ts","sourceRoot":"","sources":["../../../../../src/events/event-venue-map/components/MapPoint/MapPoint.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,kDAAkD,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,aAAK,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GACjC,WAAW,GAAG;IACZ,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAClC,CAAC;AAEJ,eAAO,MAAM,QAAQ,sMAclB,aAAa,gBAsHf,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("tslib"),o=require("react"),t=(e=o)&&"object"==typeof e&&"default"in e?e.default:e,i=require("@licklist/plugins/dist/context/event/EventVenueMapContext"),r=require("react-konva"),u=require("../../utils/index.js"),c=require("./components/PointIcon/PointIcon.js"),d=require("./components/ProductIcon/ProductIcon.js");exports.MapPoint=function(e){var s=e.xCoordinate,l=e.yCoordinate,a=e.id,f=e.imageOffsetX,p=e.imageOffsetY,v=e.imageScale,m=e.localId,P=e.pointNumber,I=e.changeCursorType,x=e.usedInIframe,C=e.choosedProductUuids,M=void 0===C?[]:C,O=e.errorOnChoosedProductUuids,g=void 0===O?[]:O,E=e.isSoldOut,y=o.useContext(i.EventVenueMapContext),b=y.setActiveElementKey,h=y.activeElementKey,q=y.setMapPoints,U=y.editMode,j=y.mapPointProducts,S=n.__read(u.calculatePointsCoordinates(s,l,{imageScale:v,imageOffsetX:f,imageOffsetY:p}),2),B=S[0],_=S[1],k=String(a||m),A=k===h,K=j.find((function(e){return a&&e.pointId&&e.pointId===a})),N=Boolean(j.find((function(e){return M.includes(null==e?void 0:e.productUuid)&&M.includes(null==K?void 0:K.productUuid)}))),T=Boolean(j.find((function(e){return g.includes(null==e?void 0:e.productUuid)&&g.includes(null==K?void 0:K.productUuid)}))),V=function(){q((function(e){var n=e.slice(),o=n.find((function(e){return a&&e.id===a||m&&e.localId===m})),t=n.indexOf(o);return n.splice(t,1),n.push(o),n}))},X=function(e){e.cancelBubble=!0,A||E||(b(k),V())};return t.createElement(r.Group,{onClick:X,onTap:X,onMouseEnter:function(){V(),I("pointer")},onMouseLeave:function(){I()}},x?t.createElement(d.ProductIcon,{x:B,y:_,isSoldOut:E,isActive:A,isProductChoosed:N,isErrorOnChoosedProduct:T}):t.createElement(c.PointIcon,{x:B,y:_,isActive:A,hasProduct:!E&&Boolean(K),pointNumber:P,onDelete:function(){b(),I(),q((function(e){return u.removeMapPointFromPoints(e,a,m)}))},editMode:U}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("tslib"),o=require("react"),t=(e=o)&&"object"==typeof e&&"default"in e?e.default:e,i=require("@licklist/plugins/dist/context/event/EventVenueMapContext"),r=require("react-konva"),u=require("../../utils/index.js"),c=require("./components/PointIcon/PointIcon.js"),d=require("./components/ProductIcon/ProductIcon.js");exports.MapPoint=function(e){var s=e.xCoordinate,l=e.yCoordinate,a=e.id,f=e.imageOffsetX,p=e.imageOffsetY,v=e.imageScale,m=e.localId,P=e.pointNumber,I=e.changeCursorType,x=e.usedInIframe,C=e.choosedProductUuids,M=void 0===C?[]:C,O=e.errorOnChoosedProductUuids,g=void 0===O?[]:O,E=e.isSoldOut,y=o.useContext(i.EventVenueMapContext),b=y.setActiveElementKey,h=y.activeElementKey,q=y.setMapPoints,U=y.editMode,j=y.mapPointProducts,S=n.__read(u.calculatePointsCoordinates(s,l,{imageScale:v,imageOffsetX:f,imageOffsetY:p}),2),B=S[0],_=S[1],k=String(a||m),A=k===h,K=j.find((function(e){return a&&e.pointId&&e.pointId===a})),N=Boolean(j.find((function(e){return M.includes(null==e?void 0:e.productUuid)&&M.includes(null==K?void 0:K.productUuid)}))),T=Boolean(j.find((function(e){return g.includes(null==e?void 0:e.productUuid)&&g.includes(null==K?void 0:K.productUuid)}))),V=function(){q((function(e){var n=e.slice(),o=n.find((function(e){return a&&e.id===a||m&&e.localId===m})),t=n.indexOf(o);return n.splice(t,1),n.push(o),n}))},X=function(e){e.cancelBubble=!0,A||E&&x||(b(k),V())};return t.createElement(r.Group,{onClick:X,onTap:X,onMouseEnter:function(){V(),I("pointer")},onMouseLeave:function(){I()}},x?t.createElement(d.ProductIcon,{x:B,y:_,isSoldOut:E,isActive:A,isProductChoosed:N,isErrorOnChoosedProduct:T}):t.createElement(c.PointIcon,{x:B,y:_,isActive:A,hasProduct:Boolean(K),pointNumber:P,onDelete:function(){b(),I(),q((function(e){return u.removeMapPointFromPoints(e,a,m)}))},editMode:U}))};
@@ -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;AAQvE,UAAU,6BAA8B,SAAQ,aAAa;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AA4BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,GACV,EAAE,6BAA6B,eAyR/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;AASvE,UAAU,6BAA8B,SAAQ,aAAa;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AA4BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,GACV,EAAE,6BAA6B,eAiS/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"),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"),g=require("./context.js"),v=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"),_=require("../utils/index.js");var b=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 I,S,q,T,x,P,N=e.isLoading,M=e.stepIndex,A=o.useTranslation("Design").t,h=r.useContext(g.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],U=R.control,Q=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:U,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:U,name:$}),de=null===(S=null===(I=null==Q?void 0:Q.steps)||void 0===I?void 0:I[M])||void 0===S?void 0:S.productCategories,le=null===(T=null===(q=null==Q?void 0:Q.steps)||void 0===q?void 0:q[M])||void 0===T?void 0:T.venueMapSetId,se=null===(P=null===(x=null==Q?void 0:Q.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 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+(t.isUnlimited?0:Number(t.totalQuantity))}),0);ae((function(r){var n;return t.__assign(t.__assign({},r),((n={})[(null==e?void 0:e.id)||e.uniqueId]={price:o,quantity:i},n))}))}))}),[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=_.sortArrayByIndex(_.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:U,rules:{required:A("Validation:fieldRequired",{attribute:A("name")})},render:function(t){var a,d,l,s=t.field,p=s.value,g=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:b(e.type,A(e.type)),modalClass:c.ProductSetModalClasses.category,isNewAdded:G,body:n.createElement(f.ProductCategoryControl,{isLoading:N,onCategoryNameChange:g,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: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,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=b;
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),i=require("react-i18next"),o=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("../hooks/useSortableTreeFunctions.js"),v=require("../item/CreateProductSetItem.js"),g=require("./context.js"),f=require("@licklist/core/dist/DataMapper/Product/ProductCategoryDataMapper"),y=require("../product-category/ProductCategoryControl.js"),C=require("./ProductsControl.js"),E=require("./SelectCategoryModal.js"),b=require("./VenueMapSetModal.js"),_=require("../utils/index.js");var I=function(e,t){return e===f.CATEGORY_TYPE_GAME?{className:"game-badge",label:t}:e===f.CATEGORY_TYPE_FIXED_DURATION?{className:"fixed-duration-badge",label:t}:null};exports.ProductCategoriesControl=function(e){var S,q,T,x,P,N,h=e.isLoading,M=e.stepIndex,A=i.useTranslation("Design").t,k=r.useContext(g.ProductSetLoadingContext),j=k.providerHasMap,V=k.expandedProductCategories,D=k.setExpandedProductCategories,F=a.useFormContext(),R=t.__read(r.useState(!1),2),Y=R[0],O=R[1],B=t.__read(r.useState(!1),2),L=B[0],w=B[1],G=t.__read(r.useState(!1),2),H=G[0],U=G[1],Q=F.control,K=F.formState.errors,z=F.clearErrors,W=F.watch,X=F.trigger,J=F.getValues,Z=F.setValue,$=W("steps.".concat(M,".hasMap"))||!1,ee="steps.".concat(M,".productCategories"),te=a.useFieldArray({name:ee,control:Q,keyName:"_id"}),re=te.fields,ne=te.append,ie=te.remove,oe=t.__read(r.useState([]),2),ae=oe[0],ue=oe[1],de=p.useSortableTreeFunctions({fieldName:ee,remove:ie}),le=de.edit,se=de.saveValidField,ce=de.cancelChanges,me=a.useWatch({control:Q,name:ee}),pe=null===(q=null===(S=null==K?void 0:K.steps)||void 0===S?void 0:S[M])||void 0===q?void 0:q.productCategories,ve=null===(x=null===(T=null==K?void 0:K.steps)||void 0===T?void 0:T[M])||void 0===x?void 0:x.venueMapSetId,ge=null===(N=null===(P=null==K?void 0:K.steps)||void 0===P?void 0:P[M])||void 0===N?void 0:N.pointProducts,fe=Boolean(ve||ge),ye=l.useSensor(l.MouseSensor,{activationConstraint:{distance:10}});return r.useEffect((function(){me&&me.length&&me.forEach((function(e){var r,n,i=null===(r=e.products)||void 0===r?void 0:r.reduce((function(e,t){return e+Number(t.price)*Number(t.totalQuantity)}),0),o=null===(n=e.products)||void 0===n?void 0:n.reduce((function(e,t){return e+(t.isUnlimited?0:Number(t.totalQuantity))}),0);ue((function(r){var n;return t.__assign(t.__assign({},r),((n={})[(null==e?void 0:e.id)||e.uniqueId]={price:i,quantity:o},n))}))}))}),[me]),r.useEffect((function(){1===re.length&&D((function(e){var r,n,i;return t.__assign(t.__assign({},e),((r={})[String((null===(n=re[0])||void 0===n?void 0:n.id)||(null===(i=re[0])||void 0===i?void 0:i.uniqueId))]=!0,r))}))}),[re]),n.createElement(n.Fragment,null,n.createElement(m.SortableTree,{sensors:[ye],items:re.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=re.findIndex((function(e){return e._id===t.id})),i=re.findIndex((function(e){return e._id===r.id}));if(n!==i){var o=J(ee);if(o){var a=_.sortArrayByIndex(_.moveArrayElements(o,n,i));Z(ee,a)}}}}},re.map((function(e,r){var i=(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))}))}(i)};return n.createElement(a.Controller,{key:"product-category-".concat(e._id),name:"".concat(ee,".").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:V[i],setIsExpanded:u,edit:function(){return le(r)},cancelChanges:function(){return ce(r)},isInvalid:!!pe,badge:n.createElement(o.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=ae[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:H,body:n.createElement(y.ProductCategoryControl,{isLoading:h,onCategoryNameChange:v,categoryName:p,stepIndex:M,productCategoryIndex:r}),onDelete:function(){return ie(r)},validate:function(){return X("steps.".concat(M,".productCategories.").concat(r))},saveValidField:se,sortableItems:e.products?e.products.filter((function(e){return e.id})).map((function(e){var t=e.id;return String(t)})):[]},n.createElement(C.ProductsControl,{isLoading:h,quantityType:e.quantityType,hasTicket:null==e?void 0:e.hasTicket,stepIndex:M,productCategoryIndex:r,categoryType:e.type}))}})}))),n.createElement(v.CreateProductSetItem,{title:A("addCategory"),onClick:function(){O(!0)}}),n.createElement(E.SelectCategoryModal,{isVisible:Y,onHide:function(){return O(!1)},onCategorySelect:function(e){ne(function(e,t){return{id:null,uniqueId:s.uniqueId("product-category"),name:"",minSubItems:null,maxSubItems:null,quantityType:f.QUANTITY_TYPE_STANDARD,type:e,isRelyOnPeople:e===f.CATEGORY_TYPE_TICKETS,isTimeRelated:!1,collectUserInfo:!1,hasTicket:e===f.CATEGORY_TYPE_TICKETS,allowDeposits:!1,remainderExpireAfter:void 0,hasBookingManagement:!1,weight:0,isReusable:!1,hasSubEvents:!1,products:[],zoneId:null,sort:t}}(e,re.length)),U(!0),(null==pe?void 0:pe.type)===u.manualErrorType&&z(ee)}}),j&&$&&n.createElement(n.Fragment,null,n.createElement(v.CreateProductSetItem,{title:A("editMap"),onClick:function(){w(!0)},className:d("mt-3",fe&&"mb-3",fe&&"is-invalid")}),fe&&n.createElement("div",{className:"manual-form-error"},ve&&A("Validation:fieldRequired",{attribute:A("Design:venueMapSet")}),ge&&A("Validation:fieldMinNumber",{attribute:A("pointProduct"),min:1})),n.createElement(b.VenueMapSetModal,{isVisible:L,setIsVisible:w,stepIndex:M})),n.createElement("div",{className:"manual-form-error"},pe&&pe.message))},exports.getBadgeConfig=I;
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductsControl.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kEAAkE,CAAC;AAChG,OAAO,EAAkB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,UAAU,oBAAqB,SAAQ,aAAa;IAClD,YAAY,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAmCD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,YAAY,GACb,EAAE,oBAAoB,eAqMtB"}
1
+ {"version":3,"file":"ProductsControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductsControl.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kEAAkE,CAAC;AAChG,OAAO,EAAkB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD,UAAU,oBAAqB,SAAQ,aAAa;IAClD,YAAY,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAmCD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,YAAY,GACb,EAAE,oBAAoB,eA8MtB"}
@@ -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),n=require("react-i18next"),a=require("react-bootstrap"),i=require("react-hook-form"),c=e(require("@licklist/plugins/dist/services/Form/HookFormService")),u=require("@dnd-kit/core"),d=require("lodash");require("../elements/DeleteFieldButton.js");var s=require("../../sortable-tree/SortableTreeItem.js"),l=require("../../sortable-tree/SortableTree.js");require("../card/ProductSetCard.js");var p=require("../item/CreateProductSetItem.js");require("../step/StepControl.js"),require("../product-category/ProductCategoryControl.js");var m=require("@licklist/core/dist/DataMapper/Product/ProductDataMapper"),g=require("@licklist/core/dist/Services");require("../product/booking-management/ProductBookingManagementControl.js"),require("../product/deposit/ProductDepositControl.js"),require("../product/quantity/ProductQuantityControl.js"),require("../product/quantity/ProductQuantityConstantControl.js"),require("../product/quantity/ProductQuantityRechargingControl.js");var v=require("../product/ProductControl.js"),q=require("./SubProductsControl.js"),y=require("./ProductCategoriesControl.js");require("../control/ProductSetControl.js"),require("../deposit-paid/ProductSetDepositPaidControl.js"),require("./ProductSetForm.js"),require("../popover/ProductSetPopover.js"),require("../tabs/ProductSetTab.js"),require("../tabs/ProductSetTabs.js");exports.ProductsControl=function(e){var f,C,P,b,S=e.isLoading,_=e.quantityType,j=e.stepIndex,T=e.productCategoryIndex,E=e.hasTicket,h=e.categoryType,I=n.useTranslation("Design").t,k=i.useFormContext(),x=t.__read(r.useState(!1),2),D=x[0],N=x[1],A=k.control,F=k.formState.errors,M=k.clearErrors,Q=k.trigger,w=k.setValue,B=k.watch,U=k.getValues,L="steps.".concat(j,".productCategories.").concat(T,".products"),R="steps.".concat(j,".pointProducts"),O=i.useFieldArray({name:L,control:A,keyName:"_id"}),V=O.fields,W=O.append,H=O.remove,z=O.move,G=B("steps.".concat(j,".productCategories.").concat(T,".allowDeposits")),Y=i.useWatch({control:A,name:t.__spreadArray([],t.__read(V.map((function(e,t){return"".concat(L,".").concat(t,".price")}))),!1)}),J=i.useWatch({control:A,name:t.__spreadArray([],t.__read(V.map((function(e,t){return"".concat(L,".").concat(t,".totalQuantity")}))),!1)}),K=i.useWatch({control:A,name:t.__spreadArray([],t.__read(V.map((function(e,t){return"".concat(L,".").concat(t,".isUnlimited")}))),!1)}),X=null===(b=null===(P=null===(C=null===(f=null==F?void 0:F.steps)||void 0===f?void 0:f[j])||void 0===C?void 0:C.productCategories)||void 0===P?void 0:P[T])||void 0===b?void 0:b.products,Z=1===V.length,$=u.useSensor(u.MouseSensor,{activationConstraint:{distance:10}});return o.createElement(o.Fragment,null,o.createElement(l.SortableTree,{items:V.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 o=V.findIndex((function(e){return e._id===t.id})),n=V.findIndex((function(e){return e._id===r.id}));o!==n&&(z(o,n),V.forEach((function(e,t){w("".concat(L,".").concat(t,".sort"),t)})))}},sensors:[$]},V.map((function(e,t){return o.createElement(i.Controller,{key:e._id,control:A,name:"".concat(L,".").concat(t,".name"),rules:{required:I("Validation:fieldRequired",{attribute:I("name")})},render:function(r){var n=r.field,i=n.value,c=n.onChange;return o.createElement(l.SortableTree.Item,{key:"product-".concat(e._id),id:String(e._id),isExpanded:Z,isInvalid:!!X,title:i,badge:o.createElement(a.Badge,{className:"product-badge"},I("product")),isIconInHeader:!1,secondaryBadge:y.getBadgeConfig(h,I(h)),subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-product-dot"}),o.createElement("span",null,"£".concat(Y[t]," ").concat(I("each")," - ").concat(I("qty"),":").concat(K[t]?I(" unlimited"):" ".concat(J[t])," ").concat(K[t]?"":" - ".concat(I("possibleRevenue")," £").concat(Y[t]*J[t])," "))),modalLabel:I("addNewProduct"),modalClass:s.ProductSetModalClasses.product,isNewAdded:D,body:o.createElement(v.ProductControl,{isLoading:S,quantityType:_,allowDeposits:G,hasBookingManagement:!1,fieldNamePrefix:"".concat(L,".").concat(t),productName:i,onProductNameChange:c,hasTicket:E,categoryType:h}),onDelete:function(){return function(e){var t=U("".concat(L,".").concat(e)),r=U(R);w(R,(null==r?void 0:r.filter((function(e){return e.productUuid!==t.uuid})))||[]),H(e)}(t)},validate:function(){return Q("".concat(L,".").concat(t))}},o.createElement(q.SubProductsControl,{isLoading:S,quantityType:_,stepIndex:j,productCategoryIndex:T,productIndex:t}))}})}))),o.createElement(p.CreateProductSetItem,{title:I("addProduct"),onClick:function(){var e;W((e=V.length,{id:null,name:"",termsAndConditions:"",productGroupId:null,description:"",price:0,deposit:0,minQuantity:null,maxQuantity:null,totalQuantity:0,capacity:0,duration:0,isAvailable:!0,isSoldOut:!1,isRequired:!1,isUnlimited:!1,quantitySelector:1,hasSpecialNotes:!1,weight:0,type:m.DEFAULT_PRODUCT_TYPE,tierId:Number(d.uniqueId()),zoneId:null,subProducts:[],images:[],uuid:g.generateUuid(),subSlots:null,offset:null,pause:null,serviceTime:null,sort:e})),N(!0),(null==X?void 0:X.type)===c.manualErrorType&&M(L)}}),o.createElement("div",{className:"manual-form-error"},X&&X.message))};
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),n=require("react-i18next"),a=require("react-bootstrap"),i=require("react-hook-form"),c=e(require("@licklist/plugins/dist/services/Form/HookFormService")),u=require("@dnd-kit/core"),d=require("lodash");require("../elements/DeleteFieldButton.js");var s=require("../../sortable-tree/SortableTreeItem.js"),l=require("../../sortable-tree/SortableTree.js");require("../card/ProductSetCard.js");var p=require("../hooks/useSortableTreeFunctions.js"),m=require("../item/CreateProductSetItem.js");require("../step/StepControl.js"),require("../product-category/ProductCategoryControl.js");var g=require("@licklist/core/dist/DataMapper/Product/ProductDataMapper"),v=require("@licklist/core/dist/Services");require("../product/booking-management/ProductBookingManagementControl.js"),require("../product/deposit/ProductDepositControl.js"),require("../product/quantity/ProductQuantityControl.js"),require("../product/quantity/ProductQuantityConstantControl.js"),require("../product/quantity/ProductQuantityRechargingControl.js");var q=require("../product/ProductControl.js"),y=require("./SubProductsControl.js"),f=require("./ProductCategoriesControl.js");require("../control/ProductSetControl.js"),require("../deposit-paid/ProductSetDepositPaidControl.js"),require("./ProductSetForm.js"),require("../popover/ProductSetPopover.js"),require("../tabs/ProductSetTab.js"),require("../tabs/ProductSetTabs.js");exports.ProductsControl=function(e){var C,P,b,S,_=e.isLoading,j=e.quantityType,T=e.stepIndex,h=e.productCategoryIndex,E=e.hasTicket,I=e.categoryType,k=n.useTranslation("Design").t,x=i.useFormContext(),N=t.__read(r.useState(!1),2),D=N[0],F=N[1],A=x.control,M=x.formState.errors,Q=x.clearErrors,w=x.trigger,B=x.setValue,U=x.watch,L=x.getValues,R="steps.".concat(T,".productCategories.").concat(h,".products"),V="steps.".concat(T,".pointProducts"),O=i.useFieldArray({name:R,control:A,keyName:"_id"}),W=O.fields,H=O.append,z=O.remove,G=O.move,Y=p.useSortableTreeFunctions({fieldName:R,remove:z}),J=Y.edit,K=Y.saveValidField,X=Y.cancelChanges,Z=U("steps.".concat(T,".productCategories.").concat(h,".allowDeposits")),$=i.useWatch({control:A,name:t.__spreadArray([],t.__read(W.map((function(e,t){return"".concat(R,".").concat(t,".price")}))),!1)}),ee=i.useWatch({control:A,name:t.__spreadArray([],t.__read(W.map((function(e,t){return"".concat(R,".").concat(t,".totalQuantity")}))),!1)}),te=i.useWatch({control:A,name:t.__spreadArray([],t.__read(W.map((function(e,t){return"".concat(R,".").concat(t,".isUnlimited")}))),!1)}),re=null===(S=null===(b=null===(P=null===(C=null==M?void 0:M.steps)||void 0===C?void 0:C[T])||void 0===P?void 0:P.productCategories)||void 0===b?void 0:b[h])||void 0===S?void 0:S.products,oe=1===W.length,ne=u.useSensor(u.MouseSensor,{activationConstraint:{distance:10}});return o.createElement(o.Fragment,null,o.createElement(l.SortableTree,{items:W.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 o=W.findIndex((function(e){return e._id===t.id})),n=W.findIndex((function(e){return e._id===r.id}));o!==n&&(G(o,n),W.forEach((function(e,t){B("".concat(R,".").concat(t,".sort"),t)})))}},sensors:[ne]},W.map((function(e,t){return o.createElement(i.Controller,{key:e._id,control:A,name:"".concat(R,".").concat(t,".name"),rules:{required:k("Validation:fieldRequired",{attribute:k("name")})},render:function(r){var n=r.field,i=n.value,c=n.onChange;return o.createElement(l.SortableTree.Item,{key:"product-".concat(e._id),id:String(e._id),isExpanded:oe,isInvalid:!!re,title:i,badge:o.createElement(a.Badge,{className:"product-badge"},k("product")),isIconInHeader:!1,cancelChanges:function(){return X(t)},edit:function(){return J(t)},secondaryBadge:f.getBadgeConfig(I,k(I)),subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-product-dot"}),o.createElement("span",null,"£".concat($[t]," ").concat(k("each")," - ").concat(k("qty"),":").concat(te[t]?k(" unlimited"):" ".concat(ee[t])," ").concat(te[t]?"":" - ".concat(k("possibleRevenue")," £").concat($[t]*ee[t])," "))),modalLabel:k("addNewProduct"),modalClass:s.ProductSetModalClasses.product,isNewAdded:D,body:o.createElement(q.ProductControl,{isLoading:_,quantityType:j,allowDeposits:Z,hasBookingManagement:!1,fieldNamePrefix:"".concat(R,".").concat(t),productName:i,onProductNameChange:c,hasTicket:E,categoryType:I}),onDelete:function(){return function(e){var t=L("".concat(R,".").concat(e)),r=L(V);B(V,(null==r?void 0:r.filter((function(e){return e.productUuid!==t.uuid})))||[]),z(e)}(t)},validate:function(){return w("".concat(R,".").concat(t))},saveValidField:K},o.createElement(y.SubProductsControl,{isLoading:_,quantityType:j,stepIndex:T,productCategoryIndex:h,productIndex:t}))}})}))),o.createElement(m.CreateProductSetItem,{title:k("addProduct"),onClick:function(){var e;H((e=W.length,{id:null,name:"",termsAndConditions:"",productGroupId:null,description:"",price:0,deposit:0,minQuantity:null,maxQuantity:null,totalQuantity:0,capacity:0,duration:0,isAvailable:!0,isSoldOut:!1,isRequired:!1,isUnlimited:!1,quantitySelector:1,hasSpecialNotes:!1,weight:0,type:g.DEFAULT_PRODUCT_TYPE,tierId:Number(d.uniqueId()),zoneId:null,subProducts:[],images:[],uuid:v.generateUuid(),subSlots:null,offset:null,pause:null,serviceTime:null,sort:e})),F(!0),(null==re?void 0:re.type)===c.manualErrorType&&Q(R)}}),o.createElement("div",{className:"manual-form-error"},re&&re.message))};
@@ -1 +1 @@
1
- {"version":3,"file":"StepsControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/StepsControl.tsx"],"names":[],"mappings":";AAgBA,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,eAkI5D"}
1
+ {"version":3,"file":"StepsControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/StepsControl.tsx"],"names":[],"mappings":";AAkBA,UAAU,iBAAiB;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,eA0I5D"}
@@ -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-hook-form"),s=e(require("@licklist/plugins/dist/services/Form/HookFormService")),i=require("../../sortable-tree/SortableTreeItem.js"),l=require("../../sortable-tree/SortableTree.js"),d=e(require("react-bootstrap/Badge")),u=require("../item/CreateProductSetItem.js"),c=require("../step/StepControl.js"),m=require("./ProductCategoriesControl.js");exports.StepsControl=function(e){var p=e.isLoading,v=n.useFormContext(),g=a.useTranslation("Design").t,f=t.__read(r.useState(!1),2),C=f[0],b=f[1],S=v.control,E=v.formState,q=E.errors,I=E.isSubmitting,N=v.clearErrors,h=v.getValues,y=v.setFocus,j=n.useFieldArray({name:"steps",control:S,keyName:"_id"}),x=j.fields,P=j.append,_=j.remove;r.useEffect((function(){I&&b(!I)}),[I]);var k=1===x.length;return o.createElement(o.Fragment,null,x.map((function(e,t){var r="steps.".concat(t),a=h(r);return o.createElement(n.Controller,{key:"step-".concat(e._id),name:"".concat(r,".name"),control:S,rules:{required:g("Validation:fieldRequired",{attribute:g("name")})},render:function(n){var s,u,v=n.field,f=v.value,b=v.onChange;return o.createElement(l.SortableTree.Item,{id:e._id,title:f,badge:o.createElement(d,{className:"step-badge"},g("step")),isExpanded:k,isInvalid:!!(null===(s=q.steps)||void 0===s?void 0:s[t]),isIconInHeader:!1,modalLabel:g("addNewStep"),modalClass:i.ProductSetModalClasses.step,isNewAdded:C,subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-step-dot"}),o.createElement("span",null,null===(u=a.productCategories)||void 0===u?void 0:u.length," ",g("categories"))),treeLineIconColor:"#D52902",body:o.createElement(c.StepControl,{isLoading:p,stepIndex:t,stepName:f,onStepNameChange:b}),onDelete:function(){return _(t)},sortableItems:e.productCategories?e.productCategories.map((function(e){var t=e.id;return String(t)})):[],validate:function(){var e,o,a=null===(o=null===(e=q.steps)||void 0===e?void 0:e[t])||void 0===o?void 0:o.name;return a&&y("".concat(r,".name")),Promise.resolve(!a)}},o.createElement(m.ProductCategoriesControl,{isLoading:p,stepIndex:t}))}})})),o.createElement(u.CreateProductSetItem,{title:g("addStep"),onClick:function(){var e;P({id:null,name:"".concat(g("step")," ").concat(x.length+1),productCategories:[],weight:0,hasMap:!1,venueMapSetId:null}),b(!0),(null===(e=q.steps)||void 0===e?void 0:e.type)===s.manualErrorType&&N("steps")}}),o.createElement("div",{className:"manual-form-error"},q.steps&&q.steps.message))};
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-hook-form"),s=e(require("@licklist/plugins/dist/services/Form/HookFormService")),i=require("../../sortable-tree/SortableTreeItem.js"),l=require("../../sortable-tree/SortableTree.js"),d=e(require("react-bootstrap/Badge")),u=require("../hooks/useSortableTreeFunctions.js"),c=require("../item/CreateProductSetItem.js"),m=require("../step/StepControl.js"),p=require("./ProductCategoriesControl.js");exports.StepsControl=function(e){var v=e.isLoading,g=n.useFormContext(),f=a.useTranslation("Design").t,C=t.__read(r.useState(!1),2),b=C[0],S=C[1],E=g.control,q=g.formState,I=q.errors,h=q.isSubmitting,F=g.clearErrors,N=g.getValues,j=g.setFocus,y=n.useFieldArray({name:"steps",control:E,keyName:"_id"}),T=y.fields,k=y.append,x=y.remove,P=u.useSortableTreeFunctions({fieldName:"steps",remove:x}),_=P.edit,L=P.saveValidField,M=P.cancelChanges;r.useEffect((function(){h&&S(!h)}),[h]);var V=1===T.length;return o.createElement(o.Fragment,null,T.map((function(e,t){var r="steps.".concat(t),a=N(r);return o.createElement(n.Controller,{key:"step-".concat(e._id),name:"".concat(r,".name"),control:E,rules:{required:f("Validation:fieldRequired",{attribute:f("name")})},render:function(n){var s,u,c,g=n.field,C=g.value,S=g.onChange;return o.createElement(l.SortableTree.Item,{id:e._id,title:C,badge:o.createElement(d,{className:"step-badge"},f("step")),isExpanded:V||!!(null===(s=I.steps)||void 0===s?void 0:s[t]),isInvalid:!!(null===(u=I.steps)||void 0===u?void 0:u[t]),isIconInHeader:!1,modalLabel:f("addNewStep"),modalClass:i.ProductSetModalClasses.step,isNewAdded:b,edit:function(){return _(t)},cancelChanges:function(){return M(t)},subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-step-dot"}),o.createElement("span",null,null===(c=a.productCategories)||void 0===c?void 0:c.length," ",f("categories"))),treeLineIconColor:"#D52902",body:o.createElement(m.StepControl,{isLoading:v,stepIndex:t,stepName:C,onStepNameChange:S}),onDelete:function(){return x(t)},sortableItems:e.productCategories?e.productCategories.map((function(e){var t=e.id;return String(t)})):[],validate:function(){var e,o,a=null===(o=null===(e=I.steps)||void 0===e?void 0:e[t])||void 0===o?void 0:o.name;return a&&j("".concat(r,".name")),Promise.resolve(!a)},saveValidField:L},o.createElement(p.ProductCategoriesControl,{isLoading:v,stepIndex:t}))}})})),o.createElement(c.CreateProductSetItem,{title:f("addStep"),onClick:function(){var e;k({id:null,name:"".concat(f("step")," ").concat(T.length+1),productCategories:[],weight:0,hasMap:!1,venueMapSetId:null}),S(!0),(null===(e=I.steps)||void 0===e?void 0:e.type)===s.manualErrorType&&F("steps")}}),o.createElement("div",{className:"manual-form-error"},I.steps&&I.steps.message))};
@@ -0,0 +1,11 @@
1
+ interface useSortableTreeFunctionsProps {
2
+ fieldName: string;
3
+ remove: (index?: number | number[]) => void;
4
+ }
5
+ export declare const useSortableTreeFunctions: ({ fieldName, remove, }: useSortableTreeFunctionsProps) => {
6
+ edit: (index: number) => void;
7
+ cancelChanges: (index: number) => void;
8
+ saveValidField: () => void;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=useSortableTreeFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSortableTreeFunctions.d.ts","sourceRoot":"","sources":["../../../src/product-set/hooks/useSortableTreeFunctions.tsx"],"names":[],"mappings":"AAGA,UAAU,6BAA6B;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C;AACD,eAAO,MAAM,wBAAwB,2BAGlC,6BAA6B;kBAIT,MAAM;2BAMG,MAAM;;CAkBrC,CAAC"}
@@ -0,0 +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,require("react-hook-form"));exports.useSortableTreeFunctions=function(e){var u=e.fieldName,o=e.remove,a=n.useFormContext(),c=a.getValues,l=a.setValue,i=t.__read(r.useState(null),2),s=i[0],d=i[1];return{edit:function(e){var t=c("".concat(u,".").concat(e)),r=structuredClone(t);d(r)},cancelChanges:function(e){return s?(l("".concat(u,".").concat(e),s),d(null)):o(e)},saveValidField:function(){d(null)}}};
@@ -1 +1 @@
1
- {"version":3,"file":"ProductQuantityRechargingControl.d.ts","sourceRoot":"","sources":["../../../../src/product-set/product/quantity/ProductQuantityRechargingControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EACL,mBAAmB,EACnB,UAAU,EACX,MAAM,8DAA8D,CAAC;AAStE,MAAM,WAAW,sCAAuC,SAAQ,UAAU;IACxE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qCAAqC,CAAC,CAAC,CACtD,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,UAAU,EACnE,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAC,eAoFhD"}
1
+ {"version":3,"file":"ProductQuantityRechargingControl.d.ts","sourceRoot":"","sources":["../../../../src/product-set/product/quantity/ProductQuantityRechargingControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EACL,mBAAmB,EACnB,UAAU,EACX,MAAM,8DAA8D,CAAC;AAStE,MAAM,WAAW,sCAAuC,SAAQ,UAAU;IACxE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qCAAqC,CAAC,CAAC,CACtD,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,UAAU,EACnE,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAC,eA8GhD"}
@@ -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("react"),r=e(t),a=require("react-i18next"),n=require("react-bootstrap"),o=require("react-hook-form"),i=e(require("@licklist/plugins/dist/services/Form/HookFormService")),l=require("@react-aria/utils"),u=require("../../../assets/dashboard/increment.svg.js"),c=e(require("react-bootstrap/InputGroup"));exports.ProductQuantityRechargingControl=function(e){var s=e.isLoading,d=void 0!==s&&s,m=e.fieldNamePrefix,f=e.disabled,p=void 0!==f&&f,v=e.onFocus,b=o.useFormContext(),g=b.trigger,y=b.control,E=b.formState.errors,q=a.useTranslation("Design").t,F=l.useId();return t.useEffect((function(){g("".concat(m,".totalQuantity"))}),[p,m,g]),r.createElement(r.Fragment,null,r.createElement(n.Form.Group,{controlId:F},r.createElement(n.Form.Label,null,q("totalQuantity")),r.createElement(c,{hasValidation:!0},r.createElement(c.Prepend,null,r.createElement(c.Text,{className:"py-0 px-3"},r.createElement(u.ReactComponent,null))),r.createElement(o.Controller,{render:function(e){var t=e.field,a=t.value,o=t.onChange,l=t.ref;return r.createElement(n.Form.Control,{ref:l,type:"number",min:0,step:1,value:a,onFocus:v,onChange:o,isInvalid:i.isInvalid("".concat(m,".totalQuantity"),E),disabled:d||p})},control:y,name:"".concat(m,".totalQuantity"),rules:p?{required:!1,min:0}:{required:q("Validation:fieldRequired",{attribute:q("totalQuantity")}),min:{value:1,message:q("Validation:fieldMinNumber",{attribute:q("totalQuantity"),min:1})}}}),r.createElement(n.Form.Control.Feedback,{type:"invalid"},i.getErrors("".concat(m,".totalQuantity"),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"),a=e(r),n=require("react-i18next"),i=require("react-bootstrap"),o=require("react-hook-form"),l=e(require("@licklist/plugins/dist/services/Form/HookFormService")),u=require("@react-aria/utils"),c=require("../../../assets/dashboard/increment.svg.js"),s=e(require("react-bootstrap/InputGroup"));exports.ProductQuantityRechargingControl=function(e){var m=e.isLoading,d=void 0!==m&&m,f=e.fieldNamePrefix,b=e.disabled,y=void 0!==b&&b,p=e.onFocus,v=o.useFormContext(),g=v.control,Q=v.trigger,q=v.watch,E=v.register,F=v.formState.errors,x=n.useTranslation("Design").t,C=u.useId(),h=q("".concat(f,".maxQuantity")),N=q("".concat(f,".isUnlimited"));return r.useEffect((function(){Q("".concat(f,".totalQuantity"))}),[h,N]),a.createElement(a.Fragment,null,a.createElement(i.Form.Group,{controlId:C},a.createElement(i.Form.Label,null,x("totalQuantity")),a.createElement(s,{hasValidation:!0},a.createElement(s.Prepend,null,a.createElement(s.Text,{className:"py-0 px-3"},a.createElement(c.ReactComponent,null))),a.createElement(o.Controller,{render:function(e){var r=e.field,n=r.value,o=r.onChange,u=r.ref;return a.createElement(i.Form.Control,t.__assign({ref:u,type:"number",min:0,step:1},E("".concat(f,".totalQuantity"),{validate:function(e){if(N)return!0;var t=Number(h),r=Number(e);return r<1?x("Validation:fieldMinNumber",{attribute:x("totalQuantity"),min:1}):!(r<t)||x("Validation:fieldTotalNumber",{attribute:x("totalQuantity"),max:x("maxOrderQuantity")})}}),{value:n,onFocus:p,onChange:o,isInvalid:l.isInvalid("".concat(f,".totalQuantity"),F),disabled:d||y}))},control:g,name:"".concat(f,".totalQuantity"),rules:y?{required:!1,min:0}:{required:x("Validation:fieldRequired",{attribute:x("totalQuantity")}),min:{value:1,message:x("Validation:fieldMinNumber",{attribute:x("totalQuantity"),min:1})}}}),a.createElement(i.Form.Control.Feedback,{type:"invalid"},l.getErrors("".concat(f,".totalQuantity"),F)))))};
@@ -0,0 +1,2 @@
1
+ export declare const MAX_DESCRIPTION_CHARACTERS_LENGTH = 25500;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/provider/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.MAX_DESCRIPTION_CHARACTERS_LENGTH=25500;
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderDetailsInput.d.ts","sourceRoot":"","sources":["../../../src/provider/provider-details-input/ProviderDetailsInput.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,sDAAsD,CAAC;AAE7E,OAAO,EAAa,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;CACxB,GAAG,wBAAwB,CAAC;AAE7B,oBAAY,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,gBAAqB,EACrB,SAAc,GACf,EAAE,yBAAyB,eA+H3B"}
1
+ {"version":3,"file":"ProviderDetailsInput.d.ts","sourceRoot":"","sources":["../../../src/provider/provider-details-input/ProviderDetailsInput.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,sDAAsD,CAAC;AAE7E,OAAO,EAAa,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAEL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;CACxB,GAAG,wBAAwB,CAAC;AAE7B,oBAAY,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,gBAAqB,EACrB,SAAc,GACf,EAAE,yBAAyB,eAwJ3B"}
@@ -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"),t=e(require("react")),n=require("react-i18next"),i=require("react-bootstrap"),a=require("react-hook-form"),o=e(require("@licklist/plugins/dist/services/Form/HookFormService")),l=require("@react-aria/utils"),s=require("../../typeahead/Typeahead.js"),m=require("../provider-links-input/ProviderLinksInput.js");exports.ProviderDetailsInput=function(e){var d,u,p,c,v,g=e.companiesOptions,E=void 0===g?[]:g,F=e.linkTypes,b=void 0===F?[]:F,h=a.useFormContext(),I=h.register,q=h.formState.errors,y=n.useTranslation(["App","Design","Validation"]).t,f=l.useId(),D=l.useId(),k=l.useId(),_=l.useId(),C=l.useId(),w=l.useId();return t.createElement(t.Fragment,null,t.createElement(i.Form.Group,{controlId:f},t.createElement(i.Form.Label,null,y("Design:name")),t.createElement(i.Form.Control,r.__assign({},I("name",{required:y("Validation:fieldRequired",{attribute:y("Design:name")})}),{name:"name",required:!0,isInvalid:Boolean(q.name)})),t.createElement(i.Form.Control.Feedback,{type:"invalid"},o.hasError(q.name,"required")&&(null===(d=q.name)||void 0===d?void 0:d.message))),t.createElement(i.Form.Group,{controlId:D},t.createElement(i.Form.Label,null,y("Design:description")),t.createElement(i.Form.Control,r.__assign({},I("description"),{as:"textarea",name:"description",rows:6}))),t.createElement(i.Form.Group,{controlId:k},t.createElement(i.Form.Label,null,y("Design:email")),t.createElement(i.Form.Control,r.__assign({},I("email",{required:y("Validation:fieldRequired",{attribute:y("Design:email")}),pattern:{value:/^\S+@\S+$/,message:y("Validation:fieldValidEmail",{attribute:y("Design:email")})}}),{name:"email",type:"email",inputMode:"email",isInvalid:Boolean(q.email)})),t.createElement(i.Form.Control.Feedback,{type:"invalid"},o.hasError(q.email,"required")&&(null===(u=q.email)||void 0===u?void 0:u.message),o.hasError(q.email,"pattern")&&(null===(p=q.email)||void 0===p?void 0:p.message))),t.createElement(i.Form.Group,{controlId:_},t.createElement(i.Form.Label,null,y("Design:phone")),t.createElement(i.Form.Control,r.__assign({},I("phone",{required:y("Validation:fieldRequired",{attribute:y("Design:phone")})}),{name:"phone",type:"tel",inputMode:"tel",isInvalid:Boolean(q.phone)})),t.createElement(i.Form.Control.Feedback,{type:"invalid"},o.hasError(q.phone,"required")&&(null===(c=q.phone)||void 0===c?void 0:c.message))),t.createElement(i.Form.Group,{controlId:C},t.createElement(i.Form.Label,null,y("Design:website")),t.createElement(i.Form.Control,r.__assign({},I("website",{pattern:{value:/\S+\.\S+/,message:y("Validation:fieldInvalid",{attribute:y("Design:website")})}}),{name:"website",type:"url",inputMode:"url",isInvalid:Boolean(q.website)})),t.createElement(i.Form.Control.Feedback,{type:"invalid"},o.hasError(q.website,"pattern")&&(null===(v=q.website)||void 0===v?void 0:v.message))),E.length>1&&t.createElement(i.Form.Group,{controlId:w},t.createElement(i.Form.Label,null,y("Design:company")),t.createElement(s.Typeahead,{name:"company",options:E,placeholder:y("App:select"),noOptionsMessage:y("App:noMatchesFound")})),b.length>0&&t.createElement(m.ProviderLinksInput,{linkTypes:b}))};
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"),t=require("react"),i=e(t),n=require("react-i18next"),a=require("react-bootstrap"),o=require("react-hook-form"),l=e(require("@licklist/plugins/dist/services/Form/HookFormService")),s=require("@react-aria/utils"),d=require("../../typeahead/Typeahead.js"),m=require("../constants.js"),u=require("../provider-links-input/ProviderLinksInput.js");exports.ProviderDetailsInput=function(e){var c,p,E,v,g,F,b=e.companiesOptions,I=void 0===b?[]:b,h=e.linkTypes,C=void 0===h?[]:h,_=o.useFormContext(),q=_.register,y=_.watch,f=_.trigger,D=_.formState.errors,T=n.useTranslation(["App","Design","Validation"]).t,k=s.useId(),A=s.useId(),R=s.useId(),S=s.useId(),L=s.useId(),M=s.useId(),w=y("description");return t.useEffect((function(){m.MAX_DESCRIPTION_CHARACTERS_LENGTH>w.length||f("description")}),[w.length]),i.createElement(i.Fragment,null,i.createElement(a.Form.Group,{controlId:k},i.createElement(a.Form.Label,null,T("Design:name")),i.createElement(a.Form.Control,r.__assign({},q("name",{required:T("Validation:fieldRequired",{attribute:T("Design:name")})}),{name:"name",required:!0,isInvalid:Boolean(D.name)})),i.createElement(a.Form.Control.Feedback,{type:"invalid"},l.hasError(D.name,"required")&&(null===(c=D.name)||void 0===c?void 0:c.message))),i.createElement(a.Form.Group,{controlId:A},i.createElement(a.Form.Label,null,T("Design:description")),i.createElement(a.Form.Control,r.__assign({},q("description",{validate:function(e){return!(e.length>m.MAX_DESCRIPTION_CHARACTERS_LENGTH)||T("Validation:descriptionTooManyCharactersMessage",{max:m.MAX_DESCRIPTION_CHARACTERS_LENGTH})}}),{as:"textarea",name:"description",rows:6,isInvalid:Boolean(D.description)})),i.createElement(a.Form.Control.Feedback,{type:"invalid"},l.hasError(D.description,"validate")&&(null===(p=D.description)||void 0===p?void 0:p.message))),i.createElement(a.Form.Group,{controlId:R},i.createElement(a.Form.Label,null,T("Design:email")),i.createElement(a.Form.Control,r.__assign({},q("email",{required:T("Validation:fieldRequired",{attribute:T("Design:email")}),pattern:{value:/^\S+@\S+$/,message:T("Validation:fieldValidEmail",{attribute:T("Design:email")})}}),{name:"email",type:"email",inputMode:"email",isInvalid:Boolean(D.email)})),i.createElement(a.Form.Control.Feedback,{type:"invalid"},l.hasError(D.email,"required")&&(null===(E=D.email)||void 0===E?void 0:E.message),l.hasError(D.email,"pattern")&&(null===(v=D.email)||void 0===v?void 0:v.message))),i.createElement(a.Form.Group,{controlId:S},i.createElement(a.Form.Label,null,T("Design:phone")),i.createElement(a.Form.Control,r.__assign({},q("phone",{required:T("Validation:fieldRequired",{attribute:T("Design:phone")})}),{name:"phone",type:"tel",inputMode:"tel",isInvalid:Boolean(D.phone)})),i.createElement(a.Form.Control.Feedback,{type:"invalid"},l.hasError(D.phone,"required")&&(null===(g=D.phone)||void 0===g?void 0:g.message))),i.createElement(a.Form.Group,{controlId:L},i.createElement(a.Form.Label,null,T("Design:website")),i.createElement(a.Form.Control,r.__assign({},q("website",{pattern:{value:/\S+\.\S+/,message:T("Validation:fieldInvalid",{attribute:T("Design:website")})}}),{name:"website",type:"url",inputMode:"url",isInvalid:Boolean(D.website)})),i.createElement(a.Form.Control.Feedback,{type:"invalid"},l.hasError(D.website,"pattern")&&(null===(F=D.website)||void 0===F?void 0:F.message))),I.length>1&&i.createElement(a.Form.Group,{controlId:M},i.createElement(a.Form.Label,null,T("Design:company")),i.createElement(d.Typeahead,{name:"company",options:I,placeholder:T("App:select"),noOptionsMessage:T("App:noMatchesFound")})),C.length>0&&i.createElement(u.ProviderLinksInput,{linkTypes:C}))};
@@ -1 +1 @@
1
- {"version":3,"file":"CouponFormControl.d.ts","sourceRoot":"","sources":["../../../../src/sales/coupon/control/CouponFormControl.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAC7F,OAAO,EAOL,eAAe,EACf,UAAU,EACX,MAAM,yDAAyD,CAAC;AAYjE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,UAAU,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,kCAG3B,eAAe,gBA4WjB,CAAC"}
1
+ {"version":3,"file":"CouponFormControl.d.ts","sourceRoot":"","sources":["../../../../src/sales/coupon/control/CouponFormControl.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAC7F,OAAO,EAOL,eAAe,EACf,UAAU,EACX,MAAM,yDAAyD,CAAC;AAajE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,UAAU,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,kCAG3B,eAAe,gBAgXjB,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),l=require("react"),n=(e=l)&&"object"==typeof e&&"default"in e?e.default:e,r=require("react-i18next"),o=require("react-bootstrap"),a=require("react-hook-form"),i=require("luxon"),m=require("@licklist/core/dist/DataMapper/Product/CouponDataMapper");exports.CouponFormControl=function(e){var u,s,d,c,E,p,g,F,v,C=e.isLoading,_=void 0!==C&&C,b=e.productGroups,f=a.useFormContext(),D=f.register,y=f.setValue,T=f.getValues,P=f.formState.errors,x=f.watch,O=r.useTranslation(["Design","Notification","App"]).t,G=t.__read(l.useState([]),2),N=G[0],R=G[1],k=x("startFrom"),L=x("validTill"),A=l.useRef(null),h=l.useRef(null),w=((u={})[m.COUPON_TYPE_FIXED]=O("Design:fixed"),u[m.COUPON_TYPE_FIXED_PER_PERSON]=O("Design:fixedPerPerson"),u[m.COUPON_TYPE_PERCENTAGE]=O("Design:percentage"),u[m.COUPON_TYPE_PERCENTAGE_PER_PERSON]=O("Design:percentagePerPerson"),u),q=((s={})[m.COUPON_TOTAL_TYPE_GROSS]=O("Design:grossTotal"),s[m.COUPON_TOTAL_TYPE_TOTAL]=O("Design:depositTotal"),s);return l.useEffect((function(){R(T("productGroupIds"))}),[T]),l.useEffect((function(){y("productGroupIds",N)}),[T,y,N]),n.createElement(o.Row,null,n.createElement(o.Col,{md:5},n.createElement("h2",{className:"mb-5"},O("Design:coupon")),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:name")),n.createElement(o.Form.Control,t.__assign({isInvalid:void 0!==P.name},D("name",{required:O("Validation:fieldRequired",{attribute:O("Design:name")})}),{disabled:_})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(d=null==P?void 0:P.name)||void 0===d?void 0:d.message))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:couponCode")),n.createElement(o.Form.Control,t.__assign({isInvalid:void 0!==P.code},D("code",{required:O("Validation:fieldRequired",{attribute:O("Design:code")})}),{disabled:_})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(c=null==P?void 0:P.code)||void 0===c?void 0:c.message)))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:discountType")),n.createElement(o.Form.Control,t.__assign({},D("discountType",{required:!0}),{as:"select",defaultValue:null!==(E=T("discountType"))&&void 0!==E?E:1,disabled:_}),Object.keys(w).map((function(e){return n.createElement("option",{value:e,key:e},w[e])}))))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:discount")),n.createElement(o.Form.Control,t.__assign({type:"number",isInvalid:void 0!==P.discount},D("discount",{required:O("Validation:fieldRequired",{attribute:O("Design:discount")})}),{disabled:_})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(p=null==P?void 0:P.discount)||void 0===p?void 0:p.message)))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:applyOn")),n.createElement(o.Form.Control,t.__assign({},D("totalType",{required:!0}),{as:"select",defaultValue:null!==(g=T("totalType"))&&void 0!==g?g:1,disabled:_}),Object.keys(q).map((function(e){return n.createElement("option",{value:e,key:e},q[e])}))))))),n.createElement(o.Col,{md:{span:5,offset:1}},n.createElement("h2",{className:"mb-5"},O("Design:limitations")),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:startFrom")),n.createElement(o.Form.Control,t.__assign({type:"date"},D("startFrom"),{value:k,isInvalid:void 0!==P.startFrom,onChange:function(e){var t=i.DateTime.fromSQL(e.target.value).toISODate();y("startFrom",t)},className:k&&"date-input-with-value",ref:A,onClick:function(){var e;return null===(e=null==A?void 0:A.current)||void 0===e?void 0:e.showPicker()},disabled:_})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(F=null==P?void 0:P.startFrom)||void 0===F?void 0:F.message))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:validTill")),n.createElement(o.Form.Control,t.__assign({type:"date"},D("validTill"),{value:L,onChange:function(e){var t=i.DateTime.fromSQL(e.target.value).toISODate();y("validTill",t)},ref:h,className:L&&"date-input-with-value",onClick:function(){var e;return null===(e=null==h?void 0:h.current)||void 0===e?void 0:e.showPicker()},disabled:_}))))),b&&(null==b?void 0:b.length)>0&&n.createElement(o.Row,null,n.createElement(o.Col,{md:12},n.createElement("h5",{className:"mt-4"},O("Design:productGroups")),n.createElement(o.Form.Group,{className:"d-flex flex-wrap justify-content-between mt-4 mb-5"},null==b?void 0:b.map((function(e){var l,r,a=null!==(r=null===(l=T("productGroupIds"))||void 0===l?void 0:l.includes(String(e.id)))&&void 0!==r&&r;return n.createElement(o.Form.Check,{key:e.id,label:e.name,defaultChecked:a,disabled:_,onChange:function(l){l.target.checked?R((function(l){return Array.from(new Set(t.__spreadArray(t.__spreadArray([],t.__read(l),!1),[String(e.id)],!1)))})):R((function(t){return t.filter((function(t){return String(e.id)!==t}))}))}})})),n.createElement(o.Form.Control,t.__assign({},D("productGroupIds"),{hidden:!0,value:N,disabled:_}))))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:totalCoupons")),n.createElement(o.Form.Control,t.__assign({},D("totalCoupons"),{type:"number",isInvalid:void 0!==P.totalCoupons,disabled:_})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(v=null==P?void 0:P.totalCoupons)||void 0===v?void 0:v.message))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:usesPerUser")),n.createElement(o.Form.Control,t.__assign({type:"number"},D("usesPerUser"),{disabled:_}))))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:useAgain")),n.createElement(o.Form.Control,t.__assign({type:"number"},D("useAgain"),{disabled:_})),n.createElement(o.Form.Text,{className:"text-muted"},O("Design:useAgainExplanation")))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:usesPerUserDay")),n.createElement(o.Form.Control,t.__assign({type:"number"},D("usesPerUserDay"),{disabled:_})),n.createElement(o.Form.Text,{className:"text-muted"},O("Design:usesPerUserDayExplanation"))))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:minAmount")),n.createElement(o.Form.Control,t.__assign({type:"number"},D("minAmount"),{disabled:_})),n.createElement(o.Form.Text,{className:"text-muted"},O("Design:minAmountExplanation")))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,O("Design:maxAmount")),n.createElement(o.Form.Control,t.__assign({type:"number"},D("maxAmount"),{disabled:_})),n.createElement(o.Form.Text,{className:"text-muted"},O("Design:maxAmountExplanation")))))))};
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"),l=require("react"),n=e(l),r=require("react-i18next"),o=require("react-bootstrap"),a=require("react-hook-form"),i=require("luxon"),m=require("@licklist/core/dist/DataMapper/Product/CouponDataMapper"),u=e(require("@licklist/plugins/dist/validation/Rules/couponCodeRules"));exports.CouponFormControl=function(e){var s,d,c,E,p,g,v,F,C,_=e.isLoading,b=void 0!==_&&_,f=e.productGroups,D=a.useFormContext(),y=D.register,T=D.setValue,P=D.getValues,x=D.formState.errors,O=D.watch,G=r.useTranslation(["Design","Notification","App"]).t,R=t.__read(l.useState([]),2),N=R[0],k=R[1],L=O("startFrom"),A=O("validTill"),h=l.useRef(null),w=l.useRef(null),q=((s={})[m.COUPON_TYPE_FIXED]=G("Design:fixed"),s[m.COUPON_TYPE_FIXED_PER_PERSON]=G("Design:fixedPerPerson"),s[m.COUPON_TYPE_PERCENTAGE]=G("Design:percentage"),s[m.COUPON_TYPE_PERCENTAGE_PER_PERSON]=G("Design:percentagePerPerson"),s),S=((d={})[m.COUPON_TOTAL_TYPE_GROSS]=G("Design:grossTotal"),d[m.COUPON_TOTAL_TYPE_TOTAL]=G("Design:depositTotal"),d);return l.useEffect((function(){k(P("productGroupIds"))}),[P]),l.useEffect((function(){T("productGroupIds",N)}),[P,T,N]),n.createElement(o.Row,null,n.createElement(o.Col,{md:5},n.createElement("h2",{className:"mb-5"},G("Design:coupon")),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:name")),n.createElement(o.Form.Control,t.__assign({isInvalid:void 0!==x.name},y("name",{required:G("Validation:fieldRequired",{attribute:G("Design:name")})}),{disabled:b})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(c=null==x?void 0:x.name)||void 0===c?void 0:c.message))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:couponCode")),n.createElement(o.Form.Control,t.__assign({isInvalid:void 0!==x.code},y("code",{required:G("Validation:fieldRequired",{attribute:G("Design:code")}),pattern:{message:"".concat(G("Validation:fieldCouponCode")),value:u}}),{disabled:b})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(E=null==x?void 0:x.code)||void 0===E?void 0:E.message)))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:discountType")),n.createElement(o.Form.Control,t.__assign({},y("discountType",{required:!0}),{as:"select",defaultValue:null!==(p=P("discountType"))&&void 0!==p?p:1,disabled:b}),Object.keys(q).map((function(e){return n.createElement("option",{value:e,key:e},q[e])}))))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:discount")),n.createElement(o.Form.Control,t.__assign({type:"number",isInvalid:void 0!==x.discount},y("discount",{required:G("Validation:fieldRequired",{attribute:G("Design:discount")})}),{disabled:b})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(g=null==x?void 0:x.discount)||void 0===g?void 0:g.message)))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:applyOn")),n.createElement(o.Form.Control,t.__assign({},y("totalType",{required:!0}),{as:"select",defaultValue:null!==(v=P("totalType"))&&void 0!==v?v:1,disabled:b}),Object.keys(S).map((function(e){return n.createElement("option",{value:e,key:e},S[e])}))))))),n.createElement(o.Col,{md:{span:5,offset:1}},n.createElement("h2",{className:"mb-5"},G("Design:limitations")),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:startFrom")),n.createElement(o.Form.Control,t.__assign({type:"date"},y("startFrom"),{value:L,isInvalid:void 0!==x.startFrom,onChange:function(e){var t=i.DateTime.fromSQL(e.target.value).toISODate();T("startFrom",t)},className:L&&"date-input-with-value",ref:h,onClick:function(){var e;return null===(e=null==h?void 0:h.current)||void 0===e?void 0:e.showPicker()},disabled:b})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(F=null==x?void 0:x.startFrom)||void 0===F?void 0:F.message))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:validTill")),n.createElement(o.Form.Control,t.__assign({type:"date"},y("validTill"),{value:A,onChange:function(e){var t=i.DateTime.fromSQL(e.target.value).toISODate();T("validTill",t)},ref:w,className:A&&"date-input-with-value",onClick:function(){var e;return null===(e=null==w?void 0:w.current)||void 0===e?void 0:e.showPicker()},disabled:b}))))),f&&(null==f?void 0:f.length)>0&&n.createElement(o.Row,null,n.createElement(o.Col,{md:12},n.createElement("h5",{className:"mt-4"},G("Design:productGroups")),n.createElement(o.Form.Group,{className:"d-flex flex-wrap justify-content-between mt-4 mb-5"},null==f?void 0:f.map((function(e){var l,r,a=null!==(r=null===(l=P("productGroupIds"))||void 0===l?void 0:l.includes(String(e.id)))&&void 0!==r&&r;return n.createElement(o.Form.Check,{key:e.id,label:e.name,defaultChecked:a,disabled:b,onChange:function(l){l.target.checked?k((function(l){return Array.from(new Set(t.__spreadArray(t.__spreadArray([],t.__read(l),!1),[String(e.id)],!1)))})):k((function(t){return t.filter((function(t){return String(e.id)!==t}))}))}})})),n.createElement(o.Form.Control,t.__assign({},y("productGroupIds"),{hidden:!0,value:N,disabled:b}))))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:totalCoupons")),n.createElement(o.Form.Control,t.__assign({},y("totalCoupons"),{type:"number",isInvalid:void 0!==x.totalCoupons,disabled:b})),n.createElement(o.Form.Control.Feedback,{type:"invalid"},null===(C=null==x?void 0:x.totalCoupons)||void 0===C?void 0:C.message))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:usesPerUser")),n.createElement(o.Form.Control,t.__assign({type:"number"},y("usesPerUser"),{disabled:b}))))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:useAgain")),n.createElement(o.Form.Control,t.__assign({type:"number"},y("useAgain"),{disabled:b})),n.createElement(o.Form.Text,{className:"text-muted"},G("Design:useAgainExplanation")))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:usesPerUserDay")),n.createElement(o.Form.Control,t.__assign({type:"number"},y("usesPerUserDay"),{disabled:b})),n.createElement(o.Form.Text,{className:"text-muted"},G("Design:usesPerUserDayExplanation"))))),n.createElement(o.Row,null,n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:minAmount")),n.createElement(o.Form.Control,t.__assign({type:"number"},y("minAmount"),{disabled:b})),n.createElement(o.Form.Text,{className:"text-muted"},G("Design:minAmountExplanation")))),n.createElement(o.Col,{md:6},n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,G("Design:maxAmount")),n.createElement(o.Form.Control,t.__assign({type:"number"},y("maxAmount"),{disabled:b})),n.createElement(o.Form.Text,{className:"text-muted"},G("Design:maxAmountExplanation")))))))};
@@ -20,6 +20,9 @@ export interface SortableTreeItemProps {
20
20
  isIconInHeader?: boolean;
21
21
  treeLineIconColor?: string;
22
22
  modalLabel?: string;
23
+ cancelChanges?: () => void;
24
+ edit?: () => void;
25
+ saveValidField?: () => void;
23
26
  modalClass?: ProductSetModalClassesType;
24
27
  isNewAdded?: boolean;
25
28
  onDelete?: () => void;
@@ -30,5 +33,5 @@ export interface SortableTreeItemProps {
30
33
  };
31
34
  setIsExpanded?: () => void;
32
35
  }
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;
36
+ export declare function SortableTreeItem({ id, title, badge, subTitle, body, children, preItem, postItem, sortableItems, isExpanded, isInvalid, isIconInHeader, treeLineIconColor, modalLabel, modalClass, isNewAdded, onDelete, validate, cancelChanges, saveValidField, edit, secondaryBadge, setIsExpanded, }: SortableTreeItemProps): JSX.Element;
34
37
  //# 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,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
+ {"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,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,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,aAAa,EACb,cAAc,EACd,IAAI,EACJ,cAAc,EACd,aAAa,GACd,EAAE,qBAAqB,eA4SvB"}
@@ -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),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))))};
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,h=e.children,y=e.preItem,_=e.postItem,w=e.sortableItems,C=e.isExpanded,x=void 0!==C&&C,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,F=e.cancelChanges,L=e.saveValidField,R=e.edit,U=e.secondaryBadge,V=e.setIsExpanded,z=t.__read(a.useState(x),2),H=z[0],K=z[1],O=t.__read(a.useState(X),2),G=O[0],J=O[1],Q=r.useTranslation("Design").t,W=c.useSortable({id:g}),Z=W.attributes,$=W.listeners,ee=W.setNodeRef,te=W.transform,ae=W.transition,ne=t.__read(a.useState({pageX:0,pageY:0}),2),re=ne[0],le=ne[1],oe=i.useDraggable({id:g}),se=oe.isDragging,ie=oe.attributes,ce=oe.listeners,de=oe.setNodeRef,me=oe.transform,ue=a.useCallback((function(e){var t=e.pageX-re.pageX,a=e.pageY-re.pageY;Math.sqrt(t*t+a*a)>5||(V?V():K((function(e){return!e})))}),[re,V]),pe=a.useCallback((function(e){le({pageX:e.pageX,pageY:e.pageY})}),[]),be=function(){return t.__awaiter(b,void 0,void 0,(function(){return t.__generator(this,(function(e){switch(e.label){case 0:return A||J(!1),[4,null==A?void 0:A()];case 1:return e.sent()&&(null==L||L(),J(!1)),[2]}}))}))};return a.useEffect((function(){K(x)}),[x]),n.createElement("div",t.__assign({className:"sortable-tree-root",style:{transform:d.CSS.Translate.toString(te),transition:ae}},ie,ce,{ref:ee}),n.createElement("div",t.__assign({className:"sortable-tree-wrapper",ref:de},ie,ce,{onKeyDown:function(e){return e.stopPropagation()},onMouseDown:function(e){G&&e.stopPropagation()},onMouseUp:function(e){G&&e.stopPropagation()},role:"button",tabIndex:0,style:P===p.step?{transform:d.CSS.Translate.toString(me),opacity:se?.7:1}:null}),n.createElement("div",{className:"sortable-tree-line"},n.createElement(l.Button,{variant:"link",size:"sm",onMouseDown:pe,onMouseUp:ue},H?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))),H&&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"},Z,$),n.createElement(o.default,{type:"grip-vertical"})),n.createElement(l.Button,{className:"sortable-tree-item-toggle",variant:"link",onMouseDown:pe,onMouseUp:ue},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),!H&&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){return function(e){e.stopPropagation(),R&&!G&&R(),J(!0)}(e)},onKeyDown:function(e){return e.stopPropagation()}},n.createElement(o.default,{type:"ellipsis-h",color:"#0E8CE2",height:"1rem"})))),M?n.createElement(l.Collapse,{in:H},n.createElement("div",null,n.createElement("div",{className:"sortable-tree-item-body"},N))):n.createElement(l.Modal,{size:"lg",show:G,className:s("m-0 edit-product-set-element-modal edit-right-form-modal h-100",P),dialogClassName:"edit-event-dialog edit-step-dialog",onHide:be},n.createElement("div",{className:"edit-step-modal-header"},n.createElement("button",{className:"p-0 cancel-add-step-btn border-0",type:"button",onClick:function(){return t.__awaiter(b,void 0,void 0,(function(){return t.__generator(this,(function(e){return F?(F(),J(!1),[2]):[2,be()]}))}))}},n.createElement("span",null,Q("Design:cancel"))),U&&n.createElement("div",{className:"secondary-badge ".concat(null==U?void 0:U.className)},null==U?void 0:U.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:be},Q("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)}})}))))))),w&&n.createElement("div",{className:"sortable-tree-subitems"},y,n.createElement(i.DndContext,null,n.createElement(c.SortableContext,{items:w,strategy:c.verticalListSortingStrategy},n.createElement(l.Collapse,{in:H},n.createElement("div",{className:"ml-0"},h)))),_))))};
@@ -55,7 +55,7 @@
55
55
  .zoom-buttons {
56
56
  position: absolute;
57
57
  top: calc((100% - 10rem) / 2);
58
- right: 0.75rem;
58
+ right: 1.75rem;
59
59
  z-index: 5;
60
60
 
61
61
  .buttons-wrapper {
@@ -1 +1 @@
1
- {"version":3,"file":"Typeahead.d.ts","sourceRoot":"","sources":["../../src/typeahead/Typeahead.tsx"],"names":[],"mappings":";AAIA,oBAAY,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,iBAAS,SAAS,CAAC,EACjB,OAAO,EACP,WAAW,EACX,UAAkB,EAClB,gBAAgB,EAChB,IAAS,EACT,gBAAqB,EACrB,SAAS,GACV,EAAE,cAAc,eAgChB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"Typeahead.d.ts","sourceRoot":"","sources":["../../src/typeahead/Typeahead.tsx"],"names":[],"mappings":";AAIA,oBAAY,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,iBAAS,SAAS,CAAC,EACjB,OAAO,EACP,WAAW,EACX,UAAkB,EAClB,gBAAgB,EAChB,IAAS,EACT,gBAAqB,EACrB,SAAS,GACV,EAAE,cAAc,eAiChB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.44.514",
3
+ "version": "0.44.516",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -37,6 +37,7 @@ export function IntervalInput({
37
37
  formState: { errors },
38
38
  watch,
39
39
  control,
40
+ trigger,
40
41
  setValue,
41
42
  } = useFormContext<IntervalInputValues>();
42
43
 
@@ -84,6 +85,11 @@ export function IntervalInput({
84
85
  setIsOverriden(Boolean(isOverridenProductSet));
85
86
  }, [productSets, productSetId, setIsOverriden, editedProductSet]);
86
87
 
88
+ const onChangeEndDate = (nextEndtDate: string) => {
89
+ setValue("end", nextEndtDate);
90
+ trigger("end");
91
+ };
92
+
87
93
  return (
88
94
  <>
89
95
  <Form.Row className="interval-container">
@@ -114,7 +120,7 @@ export function IntervalInput({
114
120
  value={end}
115
121
  name="end"
116
122
  onChange={({ target: { value: nextEndtDate } }) =>
117
- setValue("end", nextEndtDate)
123
+ onChangeEndDate(nextEndtDate)
118
124
  }
119
125
  min={start}
120
126
  isInvalid={Boolean(errors.end)}
@@ -99,7 +99,8 @@ export const MapPoint = ({
99
99
  // eslint-disable-next-line no-param-reassign
100
100
  event.cancelBubble = true;
101
101
 
102
- if (isActive || isSoldOut) return;
102
+ if (isActive) return;
103
+ if (isSoldOut && usedInIframe) return;
103
104
 
104
105
  setActiveElementKey(pointKey);
105
106
 
@@ -144,7 +145,7 @@ export const MapPoint = ({
144
145
  x={pointX}
145
146
  y={pointY}
146
147
  isActive={isActive}
147
- hasProduct={!isSoldOut && Boolean(pointProduct)}
148
+ hasProduct={Boolean(pointProduct)}
148
149
  pointNumber={pointNumber}
149
150
  onDelete={onDelete}
150
151
  editMode={editMode}
@@ -29,6 +29,7 @@ import { SelectCategoryModal } from "./SelectCategoryModal";
29
29
  import { ProductSetLoadingContext } from "./context";
30
30
  import { VenueMapSetModal } from "./VenueMapSetModal";
31
31
  import { moveArrayElements, sortArrayByIndex } from "../utils";
32
+ import { useSortableTreeFunctions } from "../hooks/useSortableTreeFunctions";
32
33
  // @TODO not for first release
33
34
  // import Popover from "./ProductSetFormPopover";
34
35
 
@@ -101,6 +102,11 @@ export function ProductCategoriesControl({
101
102
  Record<number, { price: number; quantity: number }>
102
103
  >([]);
103
104
 
105
+ const { edit, saveValidField, cancelChanges } = useSortableTreeFunctions({
106
+ fieldName: productCategoriesFieldName,
107
+ remove,
108
+ });
109
+
104
110
  const productCategories: ProductCategory[] = useWatch({
105
111
  control,
106
112
  name: productCategoriesFieldName,
@@ -225,6 +231,8 @@ export function ProductCategoriesControl({
225
231
  title={value}
226
232
  isExpanded={expandedProductCategories[productCategoryId]}
227
233
  setIsExpanded={onSetIsExpanded}
234
+ edit={() => edit(index)}
235
+ cancelChanges={() => cancelChanges(index)}
228
236
  isInvalid={!!productCategoriesErrors}
229
237
  badge={
230
238
  <Badge className="category-badge">
@@ -264,6 +272,7 @@ export function ProductCategoriesControl({
264
272
  validate={() =>
265
273
  trigger(`steps.${stepIndex}.productCategories.${index}`)
266
274
  }
275
+ saveValidField={saveValidField}
267
276
  // preItem={<Popover className="d-none d-sm-block" />}
268
277
  sortableItems={
269
278
  productCategory.products
@@ -21,6 +21,7 @@ import { Product } from "../types";
21
21
  import { WithIsLoading } from "./ProductSetForm";
22
22
  // @TODO not for first release
23
23
  // import Popover from "./ProductSetFormPopover";
24
+ import { useSortableTreeFunctions } from "../hooks/useSortableTreeFunctions";
24
25
  import { SubProductsControl } from "./SubProductsControl";
25
26
  import { ProductSetModalClasses } from "../../sortable-tree/SortableTreeItem";
26
27
  import { getBadgeConfig } from "./ProductCategoriesControl";
@@ -98,6 +99,12 @@ export function ProductsControl({
98
99
  control,
99
100
  keyName: "_id",
100
101
  });
102
+
103
+ const { edit, saveValidField, cancelChanges } = useSortableTreeFunctions({
104
+ fieldName: productControlFieldName,
105
+ remove,
106
+ });
107
+
101
108
  const allowDeposits = watch(
102
109
  `steps.${stepIndex}.productCategories.${productCategoryIndex}.allowDeposits`
103
110
  );
@@ -201,6 +208,8 @@ export function ProductsControl({
201
208
  title={value}
202
209
  badge={<Badge className="product-badge">{t("product")}</Badge>}
203
210
  isIconInHeader={false}
211
+ cancelChanges={() => cancelChanges(index)}
212
+ edit={() => edit(index)}
204
213
  secondaryBadge={getBadgeConfig(categoryType, t(categoryType))}
205
214
  subTitle={
206
215
  <div className="product-set-badges-container">
@@ -240,6 +249,7 @@ export function ProductsControl({
240
249
  }
241
250
  onDelete={() => onProductRemove(index)}
242
251
  validate={() => trigger(`${productControlFieldName}.${index}`)}
252
+ saveValidField={saveValidField}
243
253
  // preItem={<Popover className="d-none d-sm-block" />}
244
254
  >
245
255
  <SubProductsControl
@@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next";
4
4
  import Badge from "react-bootstrap/Badge";
5
5
  import HookFormService from "@licklist/plugins/dist/services/Form/HookFormService";
6
6
 
7
+ import { useSortableTreeFunctions } from "../hooks/useSortableTreeFunctions";
7
8
  import { SortableTree } from "../../sortable-tree";
8
9
  import { ProductSetModalClasses } from "../../sortable-tree/SortableTreeItem";
9
10
  import { CreateProductSetItem } from "../item/CreateProductSetItem";
@@ -11,6 +12,7 @@ import { StepControl } from "../step/StepControl";
11
12
  import { Step } from "../types";
12
13
  import { ProductCategoriesControl } from "./ProductCategoriesControl";
13
14
  import { ProductSetFormValues } from "./ProductSetForm";
15
+
14
16
  // @TODO not for first release
15
17
  // import Popover from "./ProductSetFormPopover";
16
18
 
@@ -37,6 +39,11 @@ export function StepsControl({ isLoading }: StepsControlProps) {
37
39
  keyName: "_id",
38
40
  });
39
41
 
42
+ const { edit, saveValidField, cancelChanges } = useSortableTreeFunctions({
43
+ fieldName: "steps",
44
+ remove,
45
+ });
46
+
40
47
  useEffect(() => {
41
48
  if (!isSubmitting) {
42
49
  return;
@@ -77,12 +84,14 @@ export function StepsControl({ isLoading }: StepsControlProps) {
77
84
  id={step._id}
78
85
  title={value}
79
86
  badge={<Badge className="step-badge">{t("step")}</Badge>}
80
- isExpanded={isFirstStepAdded}
87
+ isExpanded={isFirstStepAdded || !!errors.steps?.[index]}
81
88
  isInvalid={!!errors.steps?.[index]}
82
89
  isIconInHeader={false}
83
90
  modalLabel={t("addNewStep")}
84
91
  modalClass={ProductSetModalClasses.step}
85
92
  isNewAdded={showStepModal}
93
+ edit={() => edit(index)}
94
+ cancelChanges={() => cancelChanges(index)}
86
95
  subTitle={
87
96
  <div className="product-set-badges-container">
88
97
  <div className="product-set-subtitle-dot product-set-subtitle-step-dot" />
@@ -122,6 +131,7 @@ export function StepsControl({ isLoading }: StepsControlProps) {
122
131
 
123
132
  return Promise.resolve(!error);
124
133
  }}
134
+ saveValidField={saveValidField}
125
135
  >
126
136
  <ProductCategoriesControl
127
137
  isLoading={isLoading}
@@ -0,0 +1,39 @@
1
+ import { useState } from "react";
2
+ import { useFormContext } from "react-hook-form";
3
+
4
+ interface useSortableTreeFunctionsProps {
5
+ fieldName: string;
6
+ remove: (index?: number | number[]) => void;
7
+ }
8
+ export const useSortableTreeFunctions = ({
9
+ fieldName,
10
+ remove,
11
+ }: useSortableTreeFunctionsProps) => {
12
+ const { getValues, setValue } = useFormContext();
13
+ const [previousValue, setEditValue] = useState(null);
14
+
15
+ const edit = (index: number) => {
16
+ const currentCategoryProduct = getValues(`${fieldName}.${index}` as const);
17
+ const cloneCategoryProduct = structuredClone(currentCategoryProduct);
18
+ setEditValue(cloneCategoryProduct);
19
+ };
20
+
21
+ const cancelChanges = (index: number) => {
22
+ if (!previousValue) {
23
+ return remove(index);
24
+ }
25
+
26
+ setValue(`${fieldName}.${index}` as const, previousValue);
27
+ return setEditValue(null);
28
+ };
29
+
30
+ const saveValidField = () => {
31
+ setEditValue(null);
32
+ };
33
+
34
+ return {
35
+ edit,
36
+ cancelChanges,
37
+ saveValidField,
38
+ };
39
+ };
@@ -33,18 +33,23 @@ export function ProductQuantityRechargingControl<T extends FormValues>(
33
33
  onFocus,
34
34
  } = props;
35
35
  const {
36
- trigger,
37
36
  control,
37
+ trigger,
38
+ watch,
39
+ register,
38
40
  formState: { errors },
39
41
  } = useFormContext<T>();
40
42
  const { t } = useTranslation("Design");
41
43
 
42
44
  const totalQuantityId = useId();
43
45
 
44
- // trigger total quantity field's validation if disabled state was changed
46
+ const maxQuantityValue = watch(`${fieldNamePrefix}.maxQuantity` as Path<T>);
47
+ const unlimited = watch(`${fieldNamePrefix}.isUnlimited` as Path<T>);
48
+
45
49
  useEffect(() => {
46
50
  trigger(`${fieldNamePrefix}.totalQuantity` as Path<T>);
47
- }, [disabled, fieldNamePrefix, trigger]);
51
+ // eslint-disable-next-line react-hooks/exhaustive-deps
52
+ }, [maxQuantityValue, unlimited]);
48
53
 
49
54
  return (
50
55
  <>
@@ -65,6 +70,27 @@ export function ProductQuantityRechargingControl<T extends FormValues>(
65
70
  type="number"
66
71
  min={0}
67
72
  step={1}
73
+ {...register(`${fieldNamePrefix}.totalQuantity` as Path<T>, {
74
+ validate: (value) => {
75
+ if (unlimited) return true;
76
+ const min = 1;
77
+ const maxQuantity = Number(maxQuantityValue);
78
+ const totalQuantity = Number(value);
79
+ if (totalQuantity < min) {
80
+ return t("Validation:fieldMinNumber", {
81
+ attribute: t("totalQuantity"),
82
+ min: 1,
83
+ }) as string;
84
+ }
85
+ if (totalQuantity < maxQuantity) {
86
+ return t("Validation:fieldTotalNumber", {
87
+ attribute: t("totalQuantity"),
88
+ max: t("maxOrderQuantity"),
89
+ }) as string;
90
+ }
91
+ return true;
92
+ },
93
+ })}
68
94
  value={value as string}
69
95
  onFocus={onFocus}
70
96
  onChange={onChange}
@@ -0,0 +1 @@
1
+ export const MAX_DESCRIPTION_CHARACTERS_LENGTH = 25500;
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React, { useEffect } from "react";
2
2
  import { Form } from "react-bootstrap";
3
3
  import { useFormContext } from "react-hook-form";
4
4
  import { useTranslation } from "react-i18next";
@@ -6,6 +6,7 @@ import { useId } from "@react-aria/utils";
6
6
  import { Image } from "@licklist/core/dist/DataMapper/Media/ImageDataMapper";
7
7
  import HookFormService from "@licklist/plugins/dist/services/Form/HookFormService";
8
8
  import { Typeahead, TypeaheadOptions } from "../../typeahead";
9
+ import { MAX_DESCRIPTION_CHARACTERS_LENGTH } from "../constants";
9
10
  import {
10
11
  ProviderLinksInput,
11
12
  ProviderLinksInputProps,
@@ -33,6 +34,8 @@ export function ProviderDetailsInput({
33
34
  }: ProviderDetailsInputProps) {
34
35
  const {
35
36
  register,
37
+ watch,
38
+ trigger,
36
39
  formState: { errors },
37
40
  } = useFormContext<ProviderDetailsInputValues>();
38
41
  const { t } = useTranslation(["App", "Design", "Validation"]);
@@ -44,6 +47,14 @@ export function ProviderDetailsInput({
44
47
  const websiteId = useId();
45
48
  const companyId = useId();
46
49
 
50
+ const description = watch("description");
51
+
52
+ useEffect(() => {
53
+ if (MAX_DESCRIPTION_CHARACTERS_LENGTH > description.length) return;
54
+ trigger("description");
55
+ // eslint-disable-next-line react-hooks/exhaustive-deps
56
+ }, [description.length]);
57
+
47
58
  return (
48
59
  <>
49
60
  <Form.Group controlId={nameId}>
@@ -67,11 +78,26 @@ export function ProviderDetailsInput({
67
78
  <Form.Group controlId={descriptionId}>
68
79
  <Form.Label>{t("Design:description")}</Form.Label>
69
80
  <Form.Control
70
- {...register("description")}
81
+ {...register("description", {
82
+ validate: (value) => {
83
+ const descriptionLength = value.length;
84
+ if (descriptionLength > MAX_DESCRIPTION_CHARACTERS_LENGTH) {
85
+ return t("Validation:descriptionTooManyCharactersMessage", {
86
+ max: MAX_DESCRIPTION_CHARACTERS_LENGTH,
87
+ }) as string;
88
+ }
89
+ return true;
90
+ },
91
+ })}
71
92
  as="textarea"
72
93
  name="description"
73
94
  rows={6}
95
+ isInvalid={Boolean(errors.description)}
74
96
  />
97
+ <Form.Control.Feedback type="invalid">
98
+ {HookFormService.hasError(errors.description, "validate") &&
99
+ errors.description?.message}
100
+ </Form.Control.Feedback>
75
101
  </Form.Group>
76
102
 
77
103
  <Form.Group controlId={emailId}>
@@ -14,6 +14,7 @@ import { DateTime } from "luxon";
14
14
  import { Col, Form, Row } from "react-bootstrap";
15
15
  import { useFormContext } from "react-hook-form";
16
16
  import { useTranslation } from "react-i18next";
17
+ import couponCodeRules from "@licklist/plugins/dist/validation/Rules/couponCodeRules";
17
18
  /* TODO: Show Recurrent date, when reccurent date bugs are fixed */
18
19
  // import { Frequency } from "rrule";
19
20
  // import { RecurrenceInput } from "../../../recurrence-input";
@@ -132,6 +133,10 @@ export const CouponFormControl = ({
132
133
  required: t("Validation:fieldRequired", {
133
134
  attribute: t("Design:code"),
134
135
  }) as string,
136
+ pattern: {
137
+ message: `${t("Validation:fieldCouponCode")}`,
138
+ value: couponCodeRules,
139
+ },
135
140
  })}
136
141
  disabled={isLoading}
137
142
  />
@@ -40,6 +40,9 @@ export interface SortableTreeItemProps {
40
40
  isIconInHeader?: boolean;
41
41
  treeLineIconColor?: string;
42
42
  modalLabel?: string;
43
+ cancelChanges?: () => void;
44
+ edit?: () => void;
45
+ saveValidField?: () => void;
43
46
  modalClass?: ProductSetModalClassesType;
44
47
  isNewAdded?: boolean;
45
48
  onDelete?: () => void;
@@ -70,6 +73,9 @@ export function SortableTreeItem({
70
73
  isNewAdded = false,
71
74
  onDelete,
72
75
  validate,
76
+ cancelChanges,
77
+ saveValidField,
78
+ edit,
73
79
  secondaryBadge,
74
80
  setIsExpanded,
75
81
  }: SortableTreeItemProps) {
@@ -122,7 +128,25 @@ export function SortableTreeItem({
122
128
  if (!validate) setIsModalVisible(false);
123
129
 
124
130
  const success = await validate?.();
125
- if (success) setIsModalVisible(false);
131
+
132
+ if (success) {
133
+ saveValidField?.();
134
+ setIsModalVisible(false);
135
+ }
136
+ };
137
+
138
+ const onCancel = async () => {
139
+ if (!cancelChanges) {
140
+ return onHide();
141
+ }
142
+ cancelChanges();
143
+ setIsModalVisible(false);
144
+ };
145
+
146
+ const onEdit = (e) => {
147
+ e.stopPropagation();
148
+ if (edit && !isModalVisible) edit();
149
+ setIsModalVisible(true);
126
150
  };
127
151
 
128
152
  useEffect(() => {
@@ -258,10 +282,7 @@ export function SortableTreeItem({
258
282
  className="border-0 open-edit-right-modal-button"
259
283
  role="button"
260
284
  tabIndex={0}
261
- onClick={(e) => {
262
- e.stopPropagation();
263
- setIsModalVisible(true);
264
- }}
285
+ onClick={(e) => onEdit(e)}
265
286
  onKeyDown={(e) => e.stopPropagation()}
266
287
  >
267
288
  <Icon type="ellipsis-h" color="#0E8CE2" height="1rem" />
@@ -291,7 +312,7 @@ export function SortableTreeItem({
291
312
  <button
292
313
  className="p-0 cancel-add-step-btn border-0"
293
314
  type="button"
294
- onClick={onHide}
315
+ onClick={onCancel}
295
316
  >
296
317
  <span>{t("Design:cancel")}</span>
297
318
  </button>
@@ -55,7 +55,7 @@
55
55
  .zoom-buttons {
56
56
  position: absolute;
57
57
  top: calc((100% - 10rem) / 2);
58
- right: 0.75rem;
58
+ right: 1.75rem;
59
59
  z-index: 5;
60
60
 
61
61
  .buttons-wrapper {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import Select from "react-select";
2
+ import Select, { CSSObjectWithLabel } from "react-select";
3
3
  import { Controller, useFormContext } from "react-hook-form";
4
4
 
5
5
  export type TypeaheadOptions = {
@@ -29,7 +29,8 @@ function Typeahead({
29
29
  }: TypeaheadProps) {
30
30
  const { control } = useFormContext();
31
31
 
32
- const getErrorStyle = () => (isInvalid ? { borderColor: "red" } : {});
32
+ const getErrorStyle = (): CSSObjectWithLabel =>
33
+ isInvalid ? { borderColor: "red" } : {};
33
34
 
34
35
  return (
35
36
  <>