@licklist/design 0.63.1-dev.2 → 0.63.1-dev.4

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 (34) hide show
  1. package/dist/product-set/control/DateAndRecurrenceInput.d.ts +4 -0
  2. package/dist/product-set/control/DateAndRecurrenceInput.d.ts.map +1 -1
  3. package/dist/product-set/control/DateAndRecurrenceInput.js +1 -1
  4. package/dist/product-set/control/ProductSetControl.d.ts +4 -4
  5. package/dist/product-set/control/ProductSetControl.d.ts.map +1 -1
  6. package/dist/product-set/control/ProductSetControl.js +1 -1
  7. package/dist/product-set/form/ProductCategoriesControl.d.ts +2 -1
  8. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  9. package/dist/product-set/form/ProductCategoriesControl.js +1 -1
  10. package/dist/product-set/form/ProductSetForm.d.ts +2 -1
  11. package/dist/product-set/form/ProductSetForm.d.ts.map +1 -1
  12. package/dist/product-set/form/ProductSetForm.js +1 -1
  13. package/dist/product-set/form/ProductsControl.d.ts +2 -1
  14. package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
  15. package/dist/product-set/form/ProductsControl.js +1 -1
  16. package/dist/product-set/form/StepsControl.d.ts +2 -1
  17. package/dist/product-set/form/StepsControl.d.ts.map +1 -1
  18. package/dist/product-set/form/StepsControl.js +1 -1
  19. package/dist/zone/form/components/AvailableTimesControl.d.ts +2 -0
  20. package/dist/zone/form/components/AvailableTimesControl.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/product-set/control/DateAndRecurrenceInput.tsx +12 -45
  23. package/src/product-set/control/ProductSetControl.stories.tsx +1 -1
  24. package/src/product-set/control/ProductSetControl.tsx +10 -4
  25. package/src/product-set/form/ProductCategoriesControl.tsx +9 -2
  26. package/src/product-set/form/ProductSetForm.stories.tsx +2 -1
  27. package/src/product-set/form/ProductSetForm.tsx +3 -0
  28. package/src/product-set/form/ProductsControl.tsx +7 -1
  29. package/src/product-set/form/StepsControl.tsx +5 -2
  30. package/src/zone/form/components/AvailableTimesControl.tsx +2 -0
  31. package/dist/product-set/control/utils.d.ts +0 -5
  32. package/dist/product-set/control/utils.d.ts.map +0 -1
  33. package/dist/product-set/control/utils.js +0 -1
  34. package/src/product-set/control/utils.ts +0 -25
@@ -1,6 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { Modifier } from "@popperjs/core";
3
3
  import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
4
+ import { ProductSetRecurrence } from "@licklist/core/dist/DataMapper/Product/ProductSetRecurrenceDataMapper";
5
+ export interface DateAndRecurrenceInputValues {
6
+ menuRecurrences?: Partial<ProductSetRecurrence>[];
7
+ }
4
8
  interface DateAndRecurrenceInputProps {
5
9
  isEventEditProductSet?: boolean;
6
10
  workHours: WorkHour[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DateAndRecurrenceInput.d.ts","sourceRoot":"","sources":["../../../src/product-set/control/DateAndRecurrenceInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AA0BtF,UAAU,2BAA2B;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAClC,4BAA4B,EAAE,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,mFAKhC,2BAA2B,gBAmT7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,WAAW,EACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBxB,CAAC"}
1
+ {"version":3,"file":"DateAndRecurrenceInput.d.ts","sourceRoot":"","sources":["../../../src/product-set/control/DateAndRecurrenceInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAuB7G,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;CACnD;AAED,UAAU,2BAA2B;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAClC,4BAA4B,EAAE,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,mFAKhC,2BAA2B,gBAgR7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC5C,WAAW,EACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBxB,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),t=require("react"),i=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,n=require("react-i18next"),a=require("react-bootstrap"),o=require("../../static/Icon.js"),u=require("react-hook-form"),l=require("@react-aria/utils"),s=require("react-use"),d=require("luxon");require("../../static/index.js");var c=require("@dnd-kit/core"),m=require("@dnd-kit/modifiers"),v=require("@dnd-kit/sortable"),f=require("../../modals/confirmation/ConfirmModal.js"),g=require("@licklist/core/dist/Config/Date"),p=require("../../recurring-date-picker-input/RecurringDatePickerInput.js"),T=require("./ProductSetRecurrenceControl.js"),b=require("../../zone/form/components/AvailableTimesControl.js"),E=require("./utils.js"),x={name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var r=e.state,t={width:"".concat(r.rects.reference.width+4,"px"),marginLeft:"-2px",maxWidth:"unset"};Object.assign(r.styles.popper,t)},effect:function(e){var r=e.state,t=r.elements.reference.getBoundingClientRect().width,i={width:"".concat(t,"px"),maxWidth:"unset"};Object.assign(r.elements.popper.style,i)}};exports.DateAndRecurrenceInput=function(e){var _,R,D,h,M,q=e.isEventEditProductSet,S=e.providerHasBookingManagement,I=e.workHours,C=e.isLoading,F=u.useFormContext(),k=F.control,w=F.register,y=F.formState.errors,A=F.getValues,O=F.setValue,j=F.clearErrors,N=u.useWatch({control:k,name:"steps"}),P=r.__read(t.useState([]),2),V=P[0],L=P[1],W=t.useRef(),B=u.useFieldArray({name:"menuRecurrences",control:k,keyName:"_id"}),H=B.fields,z=B.append,G=B.update,K=B.move,J=r.__read(t.useState(!1),2),Q=J[0],U=J[1],X=r.__read(t.useState({index:null,values:null}),2),Y=X[0],Z=X[1],$=function(){return Z({index:null,values:null})},ee=t.useRef();s.useClickAway(ee,(function(e){var r,t,i;f.CONFIRM_MODAL_ACTIONS.includes(null===(i=null===(t=null===(r=e.target)||void 0===r?void 0:r.attributes)||void 0===t?void 0:t.getNamedItem("data-id"))||void 0===i?void 0:i.value)||(U(!1),$())}));var re=l.useId(),te=n.useTranslation("Design").t,ie=function(){$(),U((function(e){return!e}))};return t.useEffect((function(){H.length&&j("menuRecurrences")}),[H,j]),i.createElement(a.Form.Group,null,i.createElement(a.Form.Label,null,te(q?"whenOverridesAvailable":"productSetAvailable")),i.createElement(a.OverlayTrigger,{show:Q,overlay:i.createElement(a.Popover,{id:re,className:"rounded"},i.createElement(a.Popover.Content,{className:"shadow-lg rounded",ref:ee},i.createElement(p.RecurringDatePickerInput,{defaultValues:Y.values,onChange:function(e){return r.__awaiter(void 0,void 0,void 0,(function(){var t,i,n,a,o,u,l,s,c,m,v,f,p,T,b;return r.__generator(this,(function(r){switch(r.label){case 0:return[4,null===(v=W.current)||void 0===v?void 0:v.trigger()];case 1:return t=r.sent(),i=W.current.getValues().availableTimes,(null==e?void 0:e.startTime)&&(null==e?void 0:e.endTime)&&t&&(n=d.DateTime.fromISO(e.startTime),a=d.DateTime.fromISO(e.endTime),!i.every((function(e){var r=d.DateTime.fromFormat(e,g.TIME_FORMAT);return r.diff(n,"minutes").minutes>=0&&r.diff(a,"minutes").minutes<=0})))?(W.current.setError("availableTimes",{message:te("Validation:fieldTimeBetween",{attribute:te("Design:startTimesSmall"),min:n.toFormat(g.TIME_FORMAT),max:a.toFormat(g.TIME_FORMAT)})}),[2]):(o=E.getProductWithSmallestDuration(N))&&(u=(null==e?void 0:e.endTime)?d.DateTime.fromFormat(null==e?void 0:e.endTime,g.TIME_FORMAT):d.DateTime.fromFormat("23:59",g.TIME_FORMAT).plus({minutes:1}),l=E.getLatestAvailableDateTime(i),s=u.minus({minutes:o.duration}),l>s)?(W.current.setError("availableTimes",{message:te("Validation:fieldTimeBefore",{attribute:te("Design:timeLowercase"),time:s.toFormat(g.TIME_FORMAT)})}),[2]):(c=(null===(p=null===(f=null==W?void 0:W.current)||void 0===f?void 0:f.getValues())||void 0===p?void 0:p.availableTimes)||null,m={rrule:e.rrule,startDate:e.startDate,endDate:e.endDate,startTime:e.startTime,endTime:e.endTime,availableTimes:c},(null===(T=Y.values)||void 0===T?void 0:T.id)&&(m.id=null===(b=Y.values)||void 0===b?void 0:b.id),null!==Y.index?G(Y.index,m):z(m),U((function(){return!1})),$(),[2])}}))}))},onDelete:function(){var e=Y.index;U(!1),$(),setTimeout((function(){var r=A().menuRecurrences;O("menuRecurrences",(void 0===r?[]:r).filter((function(r,t){return t!==e})))}),100)},workHours:I},S&&i.createElement(b.AvailableTimesControl,{workHours:I,isLoading:C,defaultValues:V,ref:W,errorMessage:null===(D=null===(R=null===(_=null==y?void 0:y.menuRecurrences)||void 0===_?void 0:_["".concat(null==Y?void 0:Y.index)])||void 0===R?void 0:R.availableTimes)||void 0===D?void 0:D.message,clearErrorMessage:function(){return j("menuRecurrences.".concat(null==Y?void 0:Y.index,".availableTimes"))}})))),trigger:"click",placement:"bottom",popperConfig:{modifiers:[x]}},i.createElement("div",{className:"product-set-recurrences"},i.createElement(c.DndContext,{onDragEnd:function(e){var r=e.over,t=e.active;if(r.id!==t.id){var i=H.findIndex((function(e){return String(e._id)===t.id})),n=H.findIndex((function(e){return String(e._id)===r.id}));K(i,n)}},modifiers:[m.restrictToVerticalAxis]},i.createElement(v.SortableContext,{items:null!==(h=null==H?void 0:H.map((function(e){return String(e._id)})))&&void 0!==h?h:[],strategy:v.verticalListSortingStrategy},H.map((function(e,r){var t,n,a;return i.createElement(T.ProductSetRecurrenceControl,{key:e._id,menuRecurrence:e,onEdit:function(){return function(e,r){$(),setTimeout((function(){Z({index:r,values:e}),L(e.availableTimes||[]),U((function(){return!0}))}),100)}(e,r)},errorMessage:null===(a=null===(n=null===(t=null==y?void 0:y.menuRecurrences)||void 0===t?void 0:t["".concat(r)])||void 0===n?void 0:n.availableTimes)||void 0===a?void 0:a.message})})))),(!q||(null==H?void 0:H.length)<1)&&i.createElement("div",{className:"product-set-recurrence-icon-wrapper",role:"button",tabIndex:0,onClick:ie,onKeyDown:ie},i.createElement(o.default,{type:"plus-circle",height:"1rem",className:"product-set-recurrence-icon-add mr-2"}),te("addDates")),i.createElement(a.Form.Control,r.__assign({type:"hidden"},w("menuRecurrences",{required:{value:!0,message:te("Validation:fieldMinNumber",{attribute:te("dates"),min:1})}}))),i.createElement("div",{className:"manual-form-error"},null===(M=y.menuRecurrences)||void 0===M?void 0:M.message))))},exports.sameWidthPopperModifier=x;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,i=require("react-i18next"),a=require("react-bootstrap"),o=require("../../static/Icon.js"),u=require("react-hook-form"),l=require("@react-aria/utils"),s=require("react-use"),d=require("luxon");require("../../static/index.js");var c=require("@dnd-kit/core"),m=require("@dnd-kit/modifiers"),v=require("@dnd-kit/sortable"),f=require("../../modals/confirmation/ConfirmModal.js"),g=require("@licklist/core/dist/Config/Date"),p=require("../../recurring-date-picker-input/RecurringDatePickerInput.js"),T=require("./ProductSetRecurrenceControl.js"),b=require("../../zone/form/components/AvailableTimesControl.js"),x={name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var r=e.state,t={width:"".concat(r.rects.reference.width+4,"px"),marginLeft:"-2px",maxWidth:"unset"};Object.assign(r.styles.popper,t)},effect:function(e){var r=e.state,t=r.elements.reference.getBoundingClientRect().width,n={width:"".concat(t,"px"),maxWidth:"unset"};Object.assign(r.elements.popper.style,n)}};exports.DateAndRecurrenceInput=function(e){var E,_,R,h,q,D=e.isEventEditProductSet,S=e.providerHasBookingManagement,C=e.workHours,k=e.isLoading,y=u.useFormContext(),w=y.control,I=y.register,M=y.formState.errors,A=y.getValues,O=y.setValue,F=y.clearErrors,N=r.__read(t.useState([]),2),j=N[0],P=N[1],V=t.useRef(),L=u.useFieldArray({name:"menuRecurrences",control:w,keyName:"_id"}),W=L.fields,H=L.append,B=L.update,z=L.move,G=r.__read(t.useState(!1),2),K=G[0],J=G[1],Q=r.__read(t.useState({index:null,values:null}),2),U=Q[0],X=Q[1],Y=function(){return X({index:null,values:null})},Z=t.useRef();s.useClickAway(Z,(function(e){var r,t,n;f.CONFIRM_MODAL_ACTIONS.includes(null===(n=null===(t=null===(r=e.target)||void 0===r?void 0:r.attributes)||void 0===t?void 0:t.getNamedItem("data-id"))||void 0===n?void 0:n.value)||(J(!1),Y())}));var $=l.useId(),ee=i.useTranslation("Design").t,re=function(){Y(),J((function(e){return!e}))};return t.useEffect((function(){W.length&&F("menuRecurrences")}),[W,F]),n.createElement(a.Form.Group,null,n.createElement(a.Form.Label,null,ee(D?"whenOverridesAvailable":"productSetAvailable")),n.createElement(a.OverlayTrigger,{show:K,overlay:n.createElement(a.Popover,{id:$,className:"rounded"},n.createElement(a.Popover.Content,{className:"shadow-lg rounded",ref:Z},n.createElement(p.RecurringDatePickerInput,{defaultValues:U.values,onChange:function(e){return r.__awaiter(void 0,void 0,void 0,(function(){var t,n,i,a,o,u,l,s,c,m,v;return r.__generator(this,(function(r){switch(r.label){case 0:return[4,null===(l=V.current)||void 0===l?void 0:l.trigger()];case 1:return t=r.sent(),(null==e?void 0:e.startTime)&&(null==e?void 0:e.endTime)&&t&&(n=d.DateTime.fromISO(e.startTime),i=d.DateTime.fromISO(e.endTime),a=V.current.getValues().availableTimes,!a.every((function(e){var r=d.DateTime.fromFormat(e,g.TIME_FORMAT);return r.diff(n,"minutes").minutes>=0&&r.diff(i,"minutes").minutes<=0})))?(V.current.setError("availableTimes",{message:ee("Validation:fieldTimeBetween",{attribute:ee("Design:startTimesSmall"),min:n.toFormat(g.TIME_FORMAT),max:i.toFormat(g.TIME_FORMAT)})}),[2]):(o=(null===(c=null===(s=null==V?void 0:V.current)||void 0===s?void 0:s.getValues())||void 0===c?void 0:c.availableTimes)||null,u={rrule:e.rrule,startDate:e.startDate,endDate:e.endDate,startTime:e.startTime,endTime:e.endTime,availableTimes:o},(null===(m=U.values)||void 0===m?void 0:m.id)&&(u.id=null===(v=U.values)||void 0===v?void 0:v.id),null!==U.index?B(U.index,u):H(u),J((function(){return!1})),Y(),[2])}}))}))},onDelete:function(){var e=U.index;J(!1),Y(),setTimeout((function(){var r=A().menuRecurrences;O("menuRecurrences",(void 0===r?[]:r).filter((function(r,t){return t!==e})))}),100)},workHours:C},S&&n.createElement(b.AvailableTimesControl,{workHours:C,isLoading:k,defaultValues:j,ref:V,errorMessage:null===(R=null===(_=null===(E=null==M?void 0:M.menuRecurrences)||void 0===E?void 0:E["".concat(null==U?void 0:U.index)])||void 0===_?void 0:_.availableTimes)||void 0===R?void 0:R.message,clearErrorMessage:function(){return F("menuRecurrences.".concat(null==U?void 0:U.index,".availableTimes"))}})))),trigger:"click",placement:"bottom",popperConfig:{modifiers:[x]}},n.createElement("div",{className:"product-set-recurrences"},n.createElement(c.DndContext,{onDragEnd:function(e){var r=e.over,t=e.active;if(r.id!==t.id){var n=W.findIndex((function(e){return String(e._id)===t.id})),i=W.findIndex((function(e){return String(e._id)===r.id}));z(n,i)}},modifiers:[m.restrictToVerticalAxis]},n.createElement(v.SortableContext,{items:null!==(h=null==W?void 0:W.map((function(e){return String(e._id)})))&&void 0!==h?h:[],strategy:v.verticalListSortingStrategy},W.map((function(e,r){var t,i,a;return n.createElement(T.ProductSetRecurrenceControl,{key:e._id,menuRecurrence:e,onEdit:function(){return function(e,r){Y(),setTimeout((function(){X({index:r,values:e}),P(e.availableTimes||[]),J((function(){return!0}))}),100)}(e,r)},errorMessage:null===(a=null===(i=null===(t=null==M?void 0:M.menuRecurrences)||void 0===t?void 0:t["".concat(r)])||void 0===i?void 0:i.availableTimes)||void 0===a?void 0:a.message})})))),(!D||(null==W?void 0:W.length)<1)&&n.createElement("div",{className:"product-set-recurrence-icon-wrapper",role:"button",tabIndex:0,onClick:re,onKeyDown:re},n.createElement(o.default,{type:"plus-circle",height:"1rem",className:"product-set-recurrence-icon-add mr-2"}),ee("addDates")),n.createElement(a.Form.Control,r.__assign({type:"hidden"},I("menuRecurrences",{required:{value:!0,message:ee("Validation:fieldMinNumber",{attribute:ee("dates"),min:1})}}))),n.createElement("div",{className:"manual-form-error"},null===(q=M.menuRecurrences)||void 0===q?void 0:q.message))))},exports.sameWidthPopperModifier=x;
@@ -4,15 +4,15 @@ import { FieldSet } from "@licklist/core/dist/DataMapper/Order/FieldSetDataMappe
4
4
  import { EmailTemplate } from "@licklist/core/dist/DataMapper/Notification/EmailTemplateDataMapper";
5
5
  import { SmsTemplate } from "@licklist/core/dist/DataMapper/Notification/SmsTemplateDataMapper";
6
6
  import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
7
- import { ProductSetRecurrence } from "@licklist/core/dist/DataMapper/Product/ProductSetRecurrenceDataMapper";
8
7
  import { SelectItem } from "../../types/generic/SelectItem";
8
+ import { DateAndRecurrenceInputValues } from "./DateAndRecurrenceInput";
9
9
  import { Step } from "../types";
10
10
  export interface TemplateItem {
11
11
  id: string;
12
12
  value: EmailTemplate | SmsTemplate;
13
13
  label: string;
14
14
  }
15
- export interface ProductSetControlValues {
15
+ export interface ProductSetControlValues extends DateAndRecurrenceInputValues {
16
16
  name: string;
17
17
  type: ProductSetType;
18
18
  termsAndConditions: string;
@@ -24,7 +24,6 @@ export interface ProductSetControlValues {
24
24
  steps: Step[];
25
25
  emailTemplates?: TemplateItem[];
26
26
  smsTemplates?: TemplateItem[];
27
- menuRecurrences?: Partial<ProductSetRecurrence>[];
28
27
  }
29
28
  export interface ProductSetControlShared {
30
29
  fee?: string;
@@ -46,6 +45,7 @@ export interface ProductSetControlProps {
46
45
  workHours: WorkHour[] | undefined;
47
46
  providerHasBookingManagement?: boolean;
48
47
  isOverrides?: boolean;
48
+ isCreateNewOverrides?: boolean;
49
49
  }
50
- export declare function ProductSetControl({ companyName, isLoading, fee, fieldSets, emailTemplates, smsTemplates, isEventEditProductSet, isCreateAction, showEmailTemplate, showSmsTemplate, workHours, providerHasBookingManagement, isOverrides, }: ProductSetControlProps): JSX.Element;
50
+ export declare function ProductSetControl({ companyName, isLoading, fee, fieldSets, emailTemplates, smsTemplates, isEventEditProductSet, isCreateAction, showEmailTemplate, showSmsTemplate, workHours, providerHasBookingManagement, isOverrides, isCreateNewOverrides, }: ProductSetControlProps): JSX.Element;
51
51
  //# sourceMappingURL=ProductSetControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductSetControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/control/ProductSetControl.tsx"],"names":[],"mappings":";AAKA,OAAO,EAOL,mBAAmB,EACnB,cAAc,EAEd,gBAAgB,EACjB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qEAAqE,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,mEAAmE,CAAC;AAGhG,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAE7G,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAgBhC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,mBAAmB,CAAC;IACrC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,GAAU,EACV,SAAc,EACd,cAAmB,EACnB,YAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,4BAAoC,EACpC,WAAmB,GACpB,EAAE,sBAAsB,eAoTxB"}
1
+ {"version":3,"file":"ProductSetControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/control/ProductSetControl.tsx"],"names":[],"mappings":";AAKA,OAAO,EAOL,mBAAmB,EACnB,cAAc,EAEd,gBAAgB,EACjB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qEAAqE,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,mEAAmE,CAAC;AAGhG,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAIL,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAgBhC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,mBAAmB,CAAC;IACrC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,GAAU,EACV,SAAc,EACd,cAAmB,EACnB,YAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,4BAAoC,EACpC,WAAmB,EACnB,oBAA4B,GAC7B,EAAE,sBAAsB,eAqTxB"}
@@ -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=e(require("react")),a=require("react-i18next"),n=require("react-bootstrap"),o=require("react-hook-form"),l=e(require("@licklist/plugins/dist/services/Form/HookFormService")),i=require("@react-aria/utils"),s=e(require("clsx")),m=require("../../static/WarningMessage.js");require("../../static/index.js");var d,c,u=require("@licklist/core/dist/DataMapper/Product/ProductSetDataMapper"),E=require("@licklist/plugins/dist/validation/Rules/urlRule"),p=(e(E),require("./DateAndRecurrenceInput.js")),g=require("./TutorialGifCard.js"),v=require("../form/StepsControl.js"),P=require("../../typeahead/Typeahead.js"),T=require("./DateInput.js"),O=((d={})[u.OPERATIONAL_COST_PROVIDER]="operationalCostProvider",d[u.OPERATIONAL_COST_CUSTOMER]="operationalCostCustomer",d),_=((c={})[u.RELY_ON_PEOPLE_PRODUCT_CAPACITY_QUANTITY]="peopleProductCapacityQuantity",c[u.RELY_ON_PEOPLE_PRODUCT_QUANTITY]="peopleProductQuantity",c[u.RELY_ON_PEOPLE_QUANTITY]="peopleQuantity",c);exports.ProductSetControl=function(e){var d,c=e.companyName,C=e.isLoading,F=e.fee,f=void 0===F?"5%":F,I=e.fieldSets,y=void 0===I?[]:I,L=e.emailTemplates,b=void 0===L?[]:L,N=e.smsTemplates,S=void 0===N?[]:N,k=e.isEventEditProductSet,A=e.isCreateAction,h=e.showEmailTemplate,D=e.showSmsTemplate,R=e.workHours,Y=e.providerHasBookingManagement,q=void 0!==Y&&Y,U=e.isOverrides,M=void 0!==U&&U,j=a.useTranslation(["Design","Validation","Notification"]).t,x=o.useFormContext(),V=x.register,w=x.control,G=x.formState.errors,H=x.watch,Q=x.setError,B=x.clearErrors,W=H("steps"),z=i.useId(),J=i.useId(),K=i.useId(),X=D&&!M,Z=h&&!M,$=!k&&M;return r.createElement(n.Row,{className:"product-set-form ".concat(k&&"event-edit-product-set")},r.createElement(n.Col,{md:6,sm:12,className:"pr-5"},r.createElement(n.Form.Group,{controlId:z},r.createElement(n.Form.Label,null,j("Design:name"),"*"),r.createElement(n.Form.Control,t.__assign({},V("name",{required:j("Validation:fieldRequired",{attribute:j("name")}),maxLength:255,validate:function(){var e;return W.length?(null===(e=G.steps)||void 0===e?void 0:e.type)===l.manualErrorType&&B("steps"):Q("steps",{type:l.manualErrorType,message:j("Validation:fieldMinNumber",{attribute:j("steps"),min:1})}),!0}}),{placeholder:j("Design:placeholderProductSetName"),isInvalid:Boolean(G.name)})),r.createElement(n.Form.Control.Feedback,{type:"invalid"},null===(d=G.name)||void 0===d?void 0:d.message)),$?r.createElement(T.DateInput,{workHours:R,isLoading:C,providerHasBookingManagement:q}):r.createElement(r.Fragment,null,A&&r.createElement(p.DateAndRecurrenceInput,{isEventEditProductSet:k,workHours:R,isLoading:C,providerHasBookingManagement:q})),r.createElement("div",{className:"divider"}),r.createElement(g.default,{isOverrides:M}),r.createElement(v.StepsControl,{isLoading:C,isEventEditProductSet:k,isOverrides:M})),r.createElement(n.Col,{md:6,sm:12},r.createElement("div",{className:"second-column"},r.createElement(n.Form.Group,null,r.createElement(n.Form.Label,{className:"mb-0"},j("Design:operationalCost")),r.createElement("div",{className:"d-flex"},r.createElement("span",{className:"booking-fee-text"},j("bookingFeePaid",{fee:f}))),r.createElement(n.Form.Control,t.__assign({},V("operationalCost",{required:!0}),{as:"select",defaultValue:u.OPERATIONAL_COST_PROVIDER,disabled:M,isInvalid:l.isInvalid("operationalCost",G)}),Object.keys(u.OPERATIONAL_COST_TYPES).map((function(e){return r.createElement("option",{value:u.OPERATIONAL_COST_TYPES[e],key:u.OPERATIONAL_COST_TYPES[e]},j(O[u.OPERATIONAL_COST_TYPES[e]],{companyName:c}))}))),r.createElement(n.Form.Control.Feedback,{type:"invalid"},l.getErrors("operationalCost",G))),r.createElement(n.Form.Group,{controlId:K},r.createElement(n.Form.Label,null,j("peopleQuantityType")),r.createElement(n.Form.Control,t.__assign({},V("relyOnPeopleType"),{as:"select",defaultValue:null,disabled:M,isInvalid:l.isInvalid("relyOnPeopleType",G)}),r.createElement("option",{value:""},j("notRequired")," "),Object.keys(u.RELY_ON_PEOPLE_TYPES).map((function(e){return r.createElement("option",{value:u.RELY_ON_PEOPLE_TYPES[e],key:u.RELY_ON_PEOPLE_TYPES[e]},j(_[u.RELY_ON_PEOPLE_TYPES[e]]))}))),r.createElement(n.Form.Control.Feedback,{type:"invalid"},l.getErrors("relyOnPeopleType",G))),r.createElement(n.Form.Group,{controlId:J},r.createElement(n.Form.Label,null,j("Design:termsAndConditions")),r.createElement(n.Form.Control,t.__assign({},V("termsAndConditions"),{as:"textarea",rows:2,disabled:C||M,isInvalid:l.isInvalid("termsAndConditions",G)})),r.createElement(n.Form.Control.Feedback,{type:"invalid"},l.getErrors("termsAndConditions",G))),r.createElement(n.Form.Group,null,r.createElement(n.Form.Label,{className:"mt-4"},j("Design:emailTemplate")),r.createElement(r.Fragment,null,Z?r.createElement(P.Typeahead,{name:"emailTemplates",options:b,isMultipleChoise:!0,placeholder:j("Design:choose"),noOptionsMessage:j("Design:noActiveTemplates",{notification:j("Design:email")})}):r.createElement(m.default,{message:j("Design:noActiveTemplates",{notification:j("Design:email")})})),r.createElement(n.Form.Label,{className:s(b.length>0?"mt-4":"mt-1")},j("Design:smsTemplate")),X?r.createElement(P.Typeahead,{name:"smsTemplates",options:S,isMultipleChoise:!0,placeholder:j("Design:choose"),noOptionsMessage:j("Design:noActiveTemplates",{notification:j("Design:sms")})}):r.createElement(m.default,{message:j("Design:noActiveTemplates",{notification:j("Design:sms")})})),r.createElement(n.Form.Group,null,r.createElement(o.Controller,{control:w,name:"fieldSetId",render:function(e){var t=e.field,a=Number(t.value);return r.createElement(r.Fragment,null,r.createElement(n.Form.Label,null,j("Design:customFields")),r.createElement(n.Form.Control,{onChange:t.onChange,value:a,as:"select",disabled:M,isInvalid:l.isInvalid("fieldSetId",G)},r.createElement("option",{value:""},j("Design:choose")),null==y?void 0:y.map((function(e){return r.createElement("option",{value:e.id,key:e.id},e.name)}))),r.createElement(n.Form.Control.Feedback,{type:"invalid"},l.getErrors("fieldSetId",G)))}})),r.createElement(n.Form.Group,{controlId:"thankYouPageUrlId"},r.createElement(n.Form.Label,null,j("thankYouPageUrl")),r.createElement(n.Form.Control,t.__assign({},V("thankYouPageUrl",{validate:function(e){return!e||(!!E.ruleForUrlWithProtocol.test(e)||j("Validation:fieldValidWebURL",{attribute:j("thankYouPageUrl")}))}}),{disabled:M,isInvalid:l.isInvalid("thankYouPageUrl",G)})),r.createElement(n.Form.Control.Feedback,{type:"invalid"},l.getErrors("thankYouPageUrl",G))))))};
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=e(require("react")),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"),s=e(require("clsx")),m=require("../../static/WarningMessage.js");require("../../static/index.js");var d,c,u=require("@licklist/core/dist/DataMapper/Product/ProductSetDataMapper"),E=require("@licklist/plugins/dist/validation/Rules/urlRule"),p=(e(E),require("./DateAndRecurrenceInput.js")),v=require("./TutorialGifCard.js"),g=require("../form/StepsControl.js"),P=require("../../typeahead/Typeahead.js"),T=require("./DateInput.js"),O=((d={})[u.OPERATIONAL_COST_PROVIDER]="operationalCostProvider",d[u.OPERATIONAL_COST_CUSTOMER]="operationalCostCustomer",d),C=((c={})[u.RELY_ON_PEOPLE_PRODUCT_CAPACITY_QUANTITY]="peopleProductCapacityQuantity",c[u.RELY_ON_PEOPLE_PRODUCT_QUANTITY]="peopleProductQuantity",c[u.RELY_ON_PEOPLE_QUANTITY]="peopleQuantity",c);exports.ProductSetControl=function(e){var d,c=e.companyName,_=e.isLoading,F=e.fee,f=void 0===F?"5%":F,I=e.fieldSets,y=void 0===I?[]:I,L=e.emailTemplates,b=void 0===L?[]:L,N=e.smsTemplates,S=void 0===N?[]:N,k=e.isEventEditProductSet,A=e.isCreateAction,h=e.showEmailTemplate,D=e.showSmsTemplate,R=e.workHours,Y=e.providerHasBookingManagement,q=void 0!==Y&&Y,U=e.isOverrides,M=void 0!==U&&U,j=e.isCreateNewOverrides,w=void 0!==j&&j,x=a.useTranslation(["Design","Validation","Notification"]).t,V=o.useFormContext(),G=V.register,H=V.control,Q=V.formState.errors,B=V.watch,W=V.setError,z=V.clearErrors,J=B("steps"),K=l.useId(),X=l.useId(),Z=l.useId(),$=D&&!M,ee=h&&!M,te=!k&&M;return r.createElement(n.Row,{className:"product-set-form ".concat(k&&"event-edit-product-set")},r.createElement(n.Col,{md:6,sm:12,className:"pr-5"},r.createElement(n.Form.Group,{controlId:K},r.createElement(n.Form.Label,null,x("Design:name"),"*"),r.createElement(n.Form.Control,t.__assign({},G("name",{required:x("Validation:fieldRequired",{attribute:x("name")}),maxLength:255,validate:function(){var e;return J.length?(null===(e=Q.steps)||void 0===e?void 0:e.type)===i.manualErrorType&&z("steps"):W("steps",{type:i.manualErrorType,message:x("Validation:fieldMinNumber",{attribute:x("steps"),min:1})}),!0}}),{placeholder:x("Design:placeholderProductSetName"),isInvalid:Boolean(Q.name)})),r.createElement(n.Form.Control.Feedback,{type:"invalid"},null===(d=Q.name)||void 0===d?void 0:d.message)),te?r.createElement(T.DateInput,{workHours:R,isLoading:_,providerHasBookingManagement:q}):r.createElement(r.Fragment,null,A&&r.createElement(p.DateAndRecurrenceInput,{isEventEditProductSet:k,workHours:R,isLoading:_,providerHasBookingManagement:q})),r.createElement("div",{className:"divider"}),r.createElement(v.default,{isOverrides:M}),r.createElement(g.StepsControl,{isLoading:_,isEventEditProductSet:k,isOverrides:M,isCreateNewOverrides:w})),r.createElement(n.Col,{md:6,sm:12},r.createElement("div",{className:"second-column"},r.createElement(n.Form.Group,null,r.createElement(n.Form.Label,{className:"mb-0"},x("Design:operationalCost")),r.createElement("div",{className:"d-flex"},r.createElement("span",{className:"booking-fee-text"},x("bookingFeePaid",{fee:f}))),r.createElement(n.Form.Control,t.__assign({},G("operationalCost",{required:!0}),{as:"select",defaultValue:u.OPERATIONAL_COST_PROVIDER,disabled:M,isInvalid:i.isInvalid("operationalCost",Q)}),Object.keys(u.OPERATIONAL_COST_TYPES).map((function(e){return r.createElement("option",{value:u.OPERATIONAL_COST_TYPES[e],key:u.OPERATIONAL_COST_TYPES[e]},x(O[u.OPERATIONAL_COST_TYPES[e]],{companyName:c}))}))),r.createElement(n.Form.Control.Feedback,{type:"invalid"},i.getErrors("operationalCost",Q))),r.createElement(n.Form.Group,{controlId:Z},r.createElement(n.Form.Label,null,x("peopleQuantityType")),r.createElement(n.Form.Control,t.__assign({},G("relyOnPeopleType"),{as:"select",defaultValue:null,disabled:M,isInvalid:i.isInvalid("relyOnPeopleType",Q)}),r.createElement("option",{value:""},x("notRequired")," "),Object.keys(u.RELY_ON_PEOPLE_TYPES).map((function(e){return r.createElement("option",{value:u.RELY_ON_PEOPLE_TYPES[e],key:u.RELY_ON_PEOPLE_TYPES[e]},x(C[u.RELY_ON_PEOPLE_TYPES[e]]))}))),r.createElement(n.Form.Control.Feedback,{type:"invalid"},i.getErrors("relyOnPeopleType",Q))),r.createElement(n.Form.Group,{controlId:X},r.createElement(n.Form.Label,null,x("Design:termsAndConditions")),r.createElement(n.Form.Control,t.__assign({},G("termsAndConditions"),{as:"textarea",rows:2,disabled:_||M,isInvalid:i.isInvalid("termsAndConditions",Q)})),r.createElement(n.Form.Control.Feedback,{type:"invalid"},i.getErrors("termsAndConditions",Q))),r.createElement(n.Form.Group,null,r.createElement(n.Form.Label,{className:"mt-4"},x("Design:emailTemplate")),r.createElement(r.Fragment,null,ee?r.createElement(P.Typeahead,{name:"emailTemplates",options:b,isMultipleChoise:!0,placeholder:x("Design:choose"),noOptionsMessage:x("Design:noActiveTemplates",{notification:x("Design:email")})}):r.createElement(m.default,{message:x("Design:noActiveTemplates",{notification:x("Design:email")})})),r.createElement(n.Form.Label,{className:s(b.length>0?"mt-4":"mt-1")},x("Design:smsTemplate")),$?r.createElement(P.Typeahead,{name:"smsTemplates",options:S,isMultipleChoise:!0,placeholder:x("Design:choose"),noOptionsMessage:x("Design:noActiveTemplates",{notification:x("Design:sms")})}):r.createElement(m.default,{message:x("Design:noActiveTemplates",{notification:x("Design:sms")})})),r.createElement(n.Form.Group,null,r.createElement(o.Controller,{control:H,name:"fieldSetId",render:function(e){var t=e.field,a=Number(t.value);return r.createElement(r.Fragment,null,r.createElement(n.Form.Label,null,x("Design:customFields")),r.createElement(n.Form.Control,{onChange:t.onChange,value:a,as:"select",disabled:M,isInvalid:i.isInvalid("fieldSetId",Q)},r.createElement("option",{value:""},x("Design:choose")),null==y?void 0:y.map((function(e){return r.createElement("option",{value:e.id,key:e.id},e.name)}))),r.createElement(n.Form.Control.Feedback,{type:"invalid"},i.getErrors("fieldSetId",Q)))}})),r.createElement(n.Form.Group,{controlId:"thankYouPageUrlId"},r.createElement(n.Form.Label,null,x("thankYouPageUrl")),r.createElement(n.Form.Control,t.__assign({},G("thankYouPageUrl",{validate:function(e){return!e||(!!E.ruleForUrlWithProtocol.test(e)||x("Validation:fieldValidWebURL",{attribute:x("thankYouPageUrl")}))}}),{disabled:M,isInvalid:i.isInvalid("thankYouPageUrl",Q)})),r.createElement(n.Form.Control.Feedback,{type:"invalid"},i.getErrors("thankYouPageUrl",Q))))))};
@@ -5,8 +5,9 @@ interface ProductCategoriesControlProps extends WithIsLoading {
5
5
  stepIndex: number;
6
6
  isOverrides?: boolean;
7
7
  isEventEditProductSet?: boolean;
8
+ isCreateNewOverrides?: boolean;
8
9
  }
9
- export declare function ProductCategoriesControl({ isLoading, stepIndex, isOverrides, isEventEditProductSet, }: ProductCategoriesControlProps): JSX.Element;
10
+ export declare function ProductCategoriesControl({ isLoading, stepIndex, isOverrides, isEventEditProductSet, isCreateNewOverrides, }: ProductCategoriesControlProps): JSX.Element;
10
11
  export declare const getBadgeConfig: (categoryType: CategoryType, label: string) => {
11
12
  label: string;
12
13
  className: string;
@@ -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;AASvE,UAAU,6BAA8B,SAAQ,aAAa;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AA2BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,WAAW,EACX,qBAAqB,GACtB,EAAE,6BAA6B,eA8S/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;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AA2BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,6BAA6B,eAmT/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),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")),s=require("@dnd-kit/core"),l=require("lodash"),c=require("../../sortable-tree/SortableTreeItem.js"),m=require("../../sortable-tree/SortableTree.js"),v=require("../hooks/useSortableTreeFunctions.js"),p=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"),I=require("../utils/index.js");var S=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 _,q,T,x,P,N,h=e.isLoading,M=e.stepIndex,A=e.isOverrides,k=e.isEventEditProductSet,j=i.useTranslation("Design").t,V=r.useContext(g.ProductSetLoadingContext),D=V.providerHasMap,F=V.expandedProductCategories,O=V.setExpandedProductCategories,R=V.zones,Y=a.useFormContext(),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],z=t.__read(r.useState(!1),2),Q=z[0],K=z[1],W=Y.control,X=Y.formState.errors,J=Y.clearErrors,Z=Y.watch,$=Y.trigger,ee=Y.getValues,te=Y.setValue,re=Z("steps.".concat(M,".hasMap"))||!1,ne="steps.".concat(M,".productCategories"),ie=a.useFieldArray({name:ne,control:W,keyName:"_id"}),oe=ie.fields,ae=ie.append,ue=ie.remove,de=t.__read(r.useState({}),2),se=de[0],le=de[1],ce=v.useSortableTreeFunctions({fieldName:ne,remove:ue,isOverrides:A}),me=ce.edit,ve=ce.saveValidField,pe=ce.cancelChanges,ge=a.useWatch({control:W,name:ne}),fe=null===(q=null===(_=null==X?void 0:X.steps)||void 0===_?void 0:_[M])||void 0===q?void 0:q.productCategories,ye=null===(x=null===(T=null==X?void 0:X.steps)||void 0===T?void 0:T[M])||void 0===x?void 0:x.venueMapSetId,Ce=null===(N=null===(P=null==X?void 0:X.steps)||void 0===P?void 0:P[M])||void 0===N?void 0:N.pointProducts,Ee=Boolean(ye||Ce),be=s.useSensor(s.MouseSensor,{activationConstraint:{distance:10}});return r.useEffect((function(){ge&&ge.length&&ge.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);le((function(r){var n;return t.__assign(t.__assign({},r),((n={})[(null==e?void 0:e.id)||e.uniqueId]={price:i,quantity:o},n))}))}))}),[ge]),r.useEffect((function(){1===oe.length&&O((function(e){var r,n,i;return t.__assign(t.__assign({},e),((r={})[String((null===(n=oe[0])||void 0===n?void 0:n.id)||(null===(i=oe[0])||void 0===i?void 0:i.uniqueId))]=!0,r))}))}),[oe]),n.createElement(n.Fragment,null,n.createElement(m.SortableTree,{sensors:[be],items:oe.map((function(e){return String(e._id)})),onDragEnd:function(e){if(!A){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var n=oe.findIndex((function(e){return e._id===t.id})),i=oe.findIndex((function(e){return e._id===r.id}));if(n!==i){var o=ee(ne);if(o){var a=I.sortArrayByIndex(I.moveArrayElements(o,n,i));te(ne,a)}}}}}},oe.map((function(e,r){var i=(null==e?void 0:e.id)?String(e.id):e.uniqueId,u=e.products.some((function(e){return k?!!e.id:!!e.originalProductId})),d=function(){!function(e){O((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(ne,".").concat(r,".name"),control:W,rules:{required:j("Validation:fieldRequired",{attribute:j("name")})},render:function(t){var a,s,l,v=t.field,p=v.value,g=v.onChange;return n.createElement(m.SortableTree.Item,{id:e._id,title:p,isExpanded:F[i],setIsExpanded:d,edit:function(){return me(r)},cancelChanges:function(){return pe(r)},isInvalid:!!fe,badge:n.createElement(o.Badge,{className:"category-badge"},j("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===(s=se[null!==(a=null==e?void 0:e.id)&&void 0!==a?a:e.uniqueId])||void 0===s?void 0:s.quantity)&&void 0!==l?l:"N/A"," ",j("products"))),treeLineIconColor:"#1A93AA",modalLabel:j("addNewCategory"),secondaryBadge:S(e.type,j(e.type)),modalClass:c.ProductSetModalClasses.category,isNewAdded:Q,body:n.createElement(y.ProductCategoryControl,{isLoading:h,onCategoryNameChange:g,categoryName:p,stepIndex:M,productCategoryIndex:r,isOverride:A&&u}),isOverride:A,onDelete:function(){return ue(r)},validate:function(){return $("steps.".concat(M,".productCategories.").concat(r))},saveValidField:ve,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,zones:R,productCategoryIndex:r,categoryType:e.type,isOverrides:A,isEventEditProductSet:k}))}})}))),n.createElement(p.CreateProductSetItem,{title:j("addCategory"),onClick:function(){w(!0)}}),n.createElement(E.SelectCategoryModal,{isVisible:L,onHide:function(){return w(!1)},onCategorySelect:function(e){ae(function(e,t){return{id:null,uniqueId:l.uniqueId("product-category"),name:"",minSubItems:null,maxSubItems:null,quantityType:f.QUANTITY_TYPE_STANDARD,type:e,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,oe.length)),K(!0),(null==fe?void 0:fe.type)===u.manualErrorType&&J(ne)}}),D&&re&&n.createElement(n.Fragment,null,n.createElement(p.CreateProductSetItem,{title:j("editMap"),isOverride:A,onClick:function(){A||U(!0)},className:d("mt-3",Ee&&"mb-3",Ee&&"is-invalid")}),Ee&&n.createElement("div",{className:"manual-form-error"},ye&&j("Validation:fieldRequired",{attribute:j("Design:venueMapSet")}),Ce&&j("Validation:fieldMinNumber",{attribute:j("pointProduct"),min:1})),n.createElement(b.VenueMapSetModal,{isVisible:H,setIsVisible:U,stepIndex:M})),n.createElement("div",{className:"manual-form-error"},fe&&fe.message))},exports.getBadgeConfig=S;
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"),d=e(require("@licklist/plugins/dist/services/Form/HookFormService")),u=e(require("clsx")),s=require("@dnd-kit/core"),l=require("lodash"),c=require("../../sortable-tree/SortableTreeItem.js"),m=require("../../sortable-tree/SortableTree.js"),v=require("../hooks/useSortableTreeFunctions.js"),p=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"),I=require("../utils/index.js");var S=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 _,q,T,x,N,P,h=e.isLoading,M=e.stepIndex,A=e.isOverrides,k=e.isEventEditProductSet,O=e.isCreateNewOverrides,j=i.useTranslation("Design").t,V=r.useContext(g.ProductSetLoadingContext),D=V.providerHasMap,F=V.expandedProductCategories,R=V.setExpandedProductCategories,Y=V.zones,w=a.useFormContext(),B=t.__read(r.useState(!1),2),L=B[0],G=B[1],H=t.__read(r.useState(!1),2),U=H[0],z=H[1],Q=t.__read(r.useState(!1),2),K=Q[0],W=Q[1],X=w.control,J=w.formState.errors,Z=w.clearErrors,$=w.watch,ee=w.trigger,te=w.getValues,re=w.setValue,ne=$("steps.".concat(M,".hasMap"))||!1,ie="steps.".concat(M,".productCategories"),oe=a.useFieldArray({name:ie,control:X,keyName:"_id"}),ae=oe.fields,de=oe.append,ue=oe.remove,se=t.__read(r.useState({}),2),le=se[0],ce=se[1],me=v.useSortableTreeFunctions({fieldName:ie,remove:ue,isOverrides:A}),ve=me.edit,pe=me.saveValidField,ge=me.cancelChanges,fe=a.useWatch({control:X,name:ie}),ye=null===(q=null===(_=null==J?void 0:J.steps)||void 0===_?void 0:_[M])||void 0===q?void 0:q.productCategories,Ce=null===(x=null===(T=null==J?void 0:J.steps)||void 0===T?void 0:T[M])||void 0===x?void 0:x.venueMapSetId,Ee=null===(P=null===(N=null==J?void 0:J.steps)||void 0===N?void 0:N[M])||void 0===P?void 0:P.pointProducts,be=Boolean(Ce||Ee),Ie=s.useSensor(s.MouseSensor,{activationConstraint:{distance:10}});return r.useEffect((function(){fe&&fe.length&&fe.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);ce((function(r){var n;return t.__assign(t.__assign({},r),((n={})[(null==e?void 0:e.id)||e.uniqueId]={price:i,quantity:o},n))}))}))}),[fe]),r.useEffect((function(){1===ae.length&&R((function(e){var r,n,i;return t.__assign(t.__assign({},e),((r={})[String((null===(n=ae[0])||void 0===n?void 0:n.id)||(null===(i=ae[0])||void 0===i?void 0:i.uniqueId))]=!0,r))}))}),[ae]),n.createElement(n.Fragment,null,n.createElement(m.SortableTree,{sensors:[Ie],items:ae.map((function(e){return String(e._id)})),onDragEnd:function(e){if(!A){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var n=ae.findIndex((function(e){return e._id===t.id})),i=ae.findIndex((function(e){return e._id===r.id}));if(n!==i){var o=te(ie);if(o){var a=I.sortArrayByIndex(I.moveArrayElements(o,n,i));re(ie,a)}}}}}},ae.map((function(e,r){var i=(null==e?void 0:e.id)?String(e.id):e.uniqueId,d=e.products.some((function(e){return k?!!e.id:!!e.originalProductId})),u=O&&!!e.id,s=function(){!function(e){R((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(ie,".").concat(r,".name"),control:X,rules:{required:j("Validation:fieldRequired",{attribute:j("name")})},render:function(t){var a,l,v,p=t.field,g=p.value,f=p.onChange;return n.createElement(m.SortableTree.Item,{id:e._id,title:g,isExpanded:F[i],setIsExpanded:s,edit:function(){return ve(r)},cancelChanges:function(){return ge(r)},isInvalid:!!ye,badge:n.createElement(o.Badge,{className:"category-badge"},j("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!==(v=null===(l=le[null!==(a=null==e?void 0:e.id)&&void 0!==a?a:e.uniqueId])||void 0===l?void 0:l.quantity)&&void 0!==v?v:"N/A"," ",j("products"))),treeLineIconColor:"#1A93AA",modalLabel:j("addNewCategory"),secondaryBadge:S(e.type,j(e.type)),modalClass:c.ProductSetModalClasses.category,isNewAdded:K,body:n.createElement(y.ProductCategoryControl,{isLoading:h,onCategoryNameChange:f,categoryName:g,stepIndex:M,productCategoryIndex:r,isOverride:u||A&&d}),isOverride:A,onDelete:function(){return ue(r)},validate:function(){return ee("steps.".concat(M,".productCategories.").concat(r))},saveValidField:pe,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,zones:Y,productCategoryIndex:r,categoryType:e.type,isOverrides:A,isEventEditProductSet:k,isCreateNewOverrides:O}))}})}))),n.createElement(p.CreateProductSetItem,{title:j("addCategory"),onClick:function(){G(!0)}}),n.createElement(E.SelectCategoryModal,{isVisible:L,onHide:function(){return G(!1)},onCategorySelect:function(e){de(function(e,t){return{id:null,uniqueId:l.uniqueId("product-category"),name:"",minSubItems:null,maxSubItems:null,quantityType:f.QUANTITY_TYPE_STANDARD,type:e,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,ae.length)),W(!0),(null==ye?void 0:ye.type)===d.manualErrorType&&Z(ie)}}),D&&ne&&n.createElement(n.Fragment,null,n.createElement(p.CreateProductSetItem,{title:j("editMap"),isOverride:A,onClick:function(){A||z(!0)},className:u("mt-3",be&&"mb-3",be&&"is-invalid")}),be&&n.createElement("div",{className:"manual-form-error"},Ce&&j("Validation:fieldRequired",{attribute:j("Design:venueMapSet")}),Ee&&j("Validation:fieldMinNumber",{attribute:j("pointProduct"),min:1})),n.createElement(b.VenueMapSetModal,{isVisible:U,setIsVisible:z,stepIndex:M})),n.createElement("div",{className:"manual-form-error"},ye&&ye.message))},exports.getBadgeConfig=S;
@@ -35,6 +35,7 @@ export interface ProductSetFormProps extends WithIsLoading, ProductSetControlSha
35
35
  isCreateAction?: boolean;
36
36
  isOverrides?: boolean;
37
37
  workHours?: WorkHour[];
38
+ isCreateNewOverrides?: boolean;
38
39
  }
39
- export declare function ProductSetForm({ companyName, isLoading, defaultValues, onSubmitAndRedirect, onSubmitNoRedirect, productGroupList, serverErrors, providerHasMap, venueMapSets, providerHasBookingManagement, zones, isCreateAction, workHours, isOverrides, ...shared }: ProductSetFormProps): JSX.Element;
40
+ export declare function ProductSetForm({ companyName, isLoading, defaultValues, onSubmitAndRedirect, onSubmitNoRedirect, productGroupList, serverErrors, providerHasMap, venueMapSets, providerHasBookingManagement, zones, isCreateAction, workHours, isOverrides, isCreateNewOverrides, ...shared }: ProductSetFormProps): JSX.Element;
40
41
  //# sourceMappingURL=ProductSetForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductSetForm.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductSetForm.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8DAA8D,CAAC;AAI1F,OAAO,EAAE,WAAW,EAAE,MAAM,8DAA8D,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAK5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oFAAoF,CAAC;AACtI,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAEtF,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,oBACf,SAAQ,UAAU,EAChB,cAAc,EACd,uBAAuB;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,mBACf,SAAQ,aAAa,EACnB,uBAAuB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,mBAAmB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC5D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC5D,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,4BAA4B,CAAC,EAAE,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;IACxF,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAsB,EACtB,YAAiB,EACjB,4BAA4B,EAC5B,KAAK,EACL,cAAc,EACd,SAAS,EACT,WAAW,EACX,GAAG,MAAM,EACV,EAAE,mBAAmB,eA2IrB"}
1
+ {"version":3,"file":"ProductSetForm.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductSetForm.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8DAA8D,CAAC;AAI1F,OAAO,EAAE,WAAW,EAAE,MAAM,8DAA8D,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAK5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oFAAoF,CAAC;AACtI,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAEtF,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ;AACD,MAAM,WAAW,oBACf,SAAQ,UAAU,EAChB,cAAc,EACd,uBAAuB;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,mBACf,SAAQ,aAAa,EACnB,uBAAuB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,mBAAmB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC5D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC5D,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,4BAA4B,CAAC,EAAE,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;IACxF,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAsB,EACtB,YAAiB,EACjB,4BAA4B,EAC5B,KAAK,EACL,cAAc,EACd,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,GAAG,MAAM,EACV,EAAE,mBAAmB,eA4IrB"}
@@ -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"),o=require("react"),r=e(o),n=require("react-i18next"),a=require("react-bootstrap"),i=require("react-hook-form"),s=e(require("@licklist/plugins/dist/services/Form/FormErrorService")),l=require("lodash"),d=require("../../modals/dialog/Dialog.js"),u=require("../../modals/dialog/DialogContext.js"),m=require("./context.js"),c=require("../utils/index.js"),p=require("../control/ProductSetControl.js");exports.ProductSetForm=function(e){var v=e.companyName,g=e.isLoading,E=e.defaultValues,f=e.onSubmitAndRedirect,w=e.onSubmitNoRedirect,b=e.productGroupList,S=e.serverErrors,h=e.providerHasMap,C=void 0!==h&&h,T=e.venueMapSets,k=void 0===T?[]:T,q=e.providerHasBookingManagement,D=e.zones,L=e.isCreateAction,M=e.workHours,x=e.isOverrides,A=t.__rest(e,["companyName","isLoading","defaultValues","onSubmitAndRedirect","onSubmitNoRedirect","productGroupList","serverErrors","providerHasMap","venueMapSets","providerHasBookingManagement","zones","isCreateAction","workHours","isOverrides"]),H=n.useTranslation("Design").t,P=u.useDialogContext(),F=P.isShownDialog,N=P.onBeforeUnload,B=P.onPopState,_=P.onApproveDialog,j=P.onDeclineDialog,y=i.useForm({defaultValues:E,mode:"onChange"}),R=y.setError,O=y.reset,z=y.watch(),G=function(e){return function(t){c.checkAvailableTimesErrors({values:t,setError:R,t:H})||e(t)}};return o.useEffect((function(){E&&!l.isEqual(E,z)&&O(E)}),[E]),o.useEffect((function(){S&&s.handleServerErrors(S,R)}),[S,R]),o.useEffect((function(){return window.history.pushState(null,"",window.location.pathname+window.location.search),window.addEventListener("beforeunload",N),window.addEventListener("popstate",B),function(){window.removeEventListener("beforeunload",N),window.removeEventListener("popstate",B)}}),[]),r.createElement(m.ProductSetContextProvider,{productGroupList:b,providerHasMap:C,venueMapSets:k,providerHasBookingManagement:q,zones:D},r.createElement(d.Dialog,{isActive:F,title:H("Design:leavePage"),content:H("Design:changesNotBeSaved"),onApprove:_,onDecline:j}),r.createElement(i.FormProvider,t.__assign({},y),r.createElement(a.Form,{onSubmit:y.handleSubmit(G(f))},r.createElement(m.ProductSetLoadingContext.Consumer,null,(function(e){var o=e.isLoading;return r.createElement(r.Fragment,null,r.createElement(p.ProductSetControl,t.__assign({},A,{smsTemplates:c.getFilteredTemplates(null==A?void 0:A.smsTemplates,null==z?void 0:z.smsTemplates),emailTemplates:c.getFilteredTemplates(null==A?void 0:A.emailTemplates,null==z?void 0:z.emailTemplates),showEmailTemplate:!!(null==A?void 0:A.emailTemplates),showSmsTemplate:!!(null==A?void 0:A.smsTemplates),isLoading:g,isCreateAction:L,companyName:v,workHours:M,providerHasBookingManagement:q,isOverrides:x})),r.createElement(a.Row,null,r.createElement(a.Col,{md:6,sm:12}),r.createElement(a.Col,{className:"product-set-save-btn-wrapper p-0 pl-4 d-flex mw-100",md:6,sm:12},w&&r.createElement(a.Button,{className:"product-set-save-btn mt-5 ml-5 d-no dne d-md-block",onClick:y.handleSubmit(G(w)),disabled:g||o||!z.name},H("save")),r.createElement(a.Button,{className:"product-set-save-btn mt-5 ml-5 d-no dne d-md-block",type:"submit",disabled:g||o||!z.name},H("saveAndClose")))))})))))};
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"),i=require("react-bootstrap"),a=require("react-hook-form"),s=e(require("@licklist/plugins/dist/services/Form/FormErrorService")),l=require("lodash"),d=require("../../modals/dialog/Dialog.js"),u=require("../../modals/dialog/DialogContext.js"),m=require("./context.js"),c=require("../utils/index.js"),p=require("../control/ProductSetControl.js");exports.ProductSetForm=function(e){var v=e.companyName,g=e.isLoading,E=e.defaultValues,f=e.onSubmitAndRedirect,w=e.onSubmitNoRedirect,b=e.productGroupList,S=e.serverErrors,C=e.providerHasMap,h=void 0!==C&&C,T=e.venueMapSets,k=void 0===T?[]:T,q=e.providerHasBookingManagement,D=e.zones,L=e.isCreateAction,N=e.workHours,M=e.isOverrides,x=e.isCreateNewOverrides,A=t.__rest(e,["companyName","isLoading","defaultValues","onSubmitAndRedirect","onSubmitNoRedirect","productGroupList","serverErrors","providerHasMap","venueMapSets","providerHasBookingManagement","zones","isCreateAction","workHours","isOverrides","isCreateNewOverrides"]),H=n.useTranslation("Design").t,P=u.useDialogContext(),F=P.isShownDialog,B=P.onBeforeUnload,_=P.onPopState,j=P.onApproveDialog,y=P.onDeclineDialog,O=a.useForm({defaultValues:E,mode:"onChange"}),R=O.setError,z=O.reset,G=O.watch(),V=function(e){return function(t){c.checkAvailableTimesErrors({values:t,setError:R,t:H})||e(t)}};return r.useEffect((function(){E&&!l.isEqual(E,G)&&z(E)}),[E]),r.useEffect((function(){S&&s.handleServerErrors(S,R)}),[S,R]),r.useEffect((function(){return window.history.pushState(null,"",window.location.pathname+window.location.search),window.addEventListener("beforeunload",B),window.addEventListener("popstate",_),function(){window.removeEventListener("beforeunload",B),window.removeEventListener("popstate",_)}}),[]),o.createElement(m.ProductSetContextProvider,{productGroupList:b,providerHasMap:h,venueMapSets:k,providerHasBookingManagement:q,zones:D},o.createElement(d.Dialog,{isActive:F,title:H("Design:leavePage"),content:H("Design:changesNotBeSaved"),onApprove:j,onDecline:y}),o.createElement(a.FormProvider,t.__assign({},O),o.createElement(i.Form,{onSubmit:O.handleSubmit(V(f))},o.createElement(m.ProductSetLoadingContext.Consumer,null,(function(e){var r=e.isLoading;return o.createElement(o.Fragment,null,o.createElement(p.ProductSetControl,t.__assign({},A,{smsTemplates:c.getFilteredTemplates(null==A?void 0:A.smsTemplates,null==G?void 0:G.smsTemplates),emailTemplates:c.getFilteredTemplates(null==A?void 0:A.emailTemplates,null==G?void 0:G.emailTemplates),showEmailTemplate:!!(null==A?void 0:A.emailTemplates),showSmsTemplate:!!(null==A?void 0:A.smsTemplates),isLoading:g,isCreateAction:L,companyName:v,workHours:N,providerHasBookingManagement:q,isOverrides:M,isCreateNewOverrides:x})),o.createElement(i.Row,null,o.createElement(i.Col,{md:6,sm:12}),o.createElement(i.Col,{className:"product-set-save-btn-wrapper p-0 pl-4 d-flex mw-100",md:6,sm:12},w&&o.createElement(i.Button,{className:"product-set-save-btn mt-5 ml-5 d-no dne d-md-block",onClick:O.handleSubmit(V(w)),disabled:g||r||!G.name},H("save")),o.createElement(i.Button,{className:"product-set-save-btn mt-5 ml-5 d-no dne d-md-block",type:"submit",disabled:g||r||!G.name},H("saveAndClose")))))})))))};
@@ -12,7 +12,8 @@ interface ProductsControlProps extends WithIsLoading {
12
12
  zones?: Zone[];
13
13
  isOverrides?: boolean;
14
14
  isEventEditProductSet?: boolean;
15
+ isCreateNewOverrides?: boolean;
15
16
  }
16
- export declare function ProductsControl({ isLoading, quantityType, stepIndex, productCategoryIndex, hasTicket, categoryType, zones, isOverrides, isEventEditProductSet, }: ProductsControlProps): JSX.Element;
17
+ export declare function ProductsControl({ isLoading, quantityType, stepIndex, productCategoryIndex, hasTicket, categoryType, zones, isOverrides, isEventEditProductSet, isCreateNewOverrides, }: ProductsControlProps): JSX.Element;
17
18
  export {};
18
19
  //# sourceMappingURL=ProductsControl.d.ts.map
@@ -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,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,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;IAC3B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAoCD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,KAAK,EACL,WAAW,EACX,qBAAqB,GACtB,EAAE,oBAAoB,eAoOtB"}
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,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,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;IAC3B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAoCD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,KAAK,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,oBAAoB,eAwOtB"}
@@ -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"),i=require("react-bootstrap"),a=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),c=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 v=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 f=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 C,P,b,S,_=e.isLoading,j=e.quantityType,T=e.stepIndex,h=e.productCategoryIndex,E=e.hasTicket,I=e.categoryType,k=e.zones,x=e.isOverrides,D=e.isEventEditProductSet,N=n.useTranslation("Design").t,F=a.useFormContext(),A=t.__read(r.useState(!1),2),M=A[0],O=A[1],Q=F.control,w=F.formState.errors,B=F.clearErrors,U=F.trigger,L=F.setValue,R=F.watch,V=F.getValues,z=R("steps.".concat(T,".productCategories.").concat(h,".zoneId")),W=null==k?void 0:k.find((function(e){return e.id===Number(z)})),H="steps.".concat(T,".productCategories.").concat(h,".products"),G="steps.".concat(T,".pointProducts"),Y=a.useFieldArray({name:H,control:Q,keyName:"_id"}),J=Y.fields,K=Y.append,X=Y.remove,Z=Y.move,$=p.useSortableTreeFunctions({fieldName:H,remove:X,isOverrides:x}),ee=$.edit,te=$.saveValidField,re=$.cancelChanges,oe=R("steps.".concat(T,".productCategories.").concat(h,".allowDeposits")),ne=a.useWatch({control:Q,name:t.__spreadArray([],t.__read(J.map((function(e,t){return"".concat(H,".").concat(t,".price")}))),!1)}),ie=a.useWatch({control:Q,name:t.__spreadArray([],t.__read(J.map((function(e,t){return"".concat(H,".").concat(t,".totalQuantity")}))),!1)}),ae=a.useWatch({control:Q,name:t.__spreadArray([],t.__read(J.map((function(e,t){return"".concat(H,".").concat(t,".isUnlimited")}))),!1)}),ue=null===(S=null===(b=null===(P=null===(C=null==w?void 0:w.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,ce=1===J.length,de=c.useSensor(c.MouseSensor,{activationConstraint:{distance:10}});return o.createElement(o.Fragment,null,o.createElement(l.SortableTree,{items:J.map((function(e){return String(e._id)})),onDragEnd:function(e){if(!x){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var o=J.findIndex((function(e){return e._id===t.id})),n=J.findIndex((function(e){return e._id===r.id}));o!==n&&(Z(o,n),J.forEach((function(e,t){L("".concat(H,".").concat(t,".sort"),t)})))}}},sensors:[de]},J.map((function(e,t){var r=D?!!e.id:x&&!!e.originalProductId;return o.createElement(a.Controller,{key:e._id,control:Q,name:"".concat(H,".").concat(t,".name"),rules:{required:N("Validation:fieldRequired",{attribute:N("name")})},render:function(n){var a=n.field,u=a.value,c=a.onChange;return o.createElement(l.SortableTree.Item,{key:"product-".concat(e._id),id:String(e._id),isExpanded:ce,isInvalid:!!ue,title:u,isOverride:x,badge:o.createElement(i.Badge,{className:"product-badge"},N("product")),isIconInHeader:!1,cancelChanges:function(){return re(t)},edit:function(){return ee(t)},secondaryBadge:y.getBadgeConfig(I,N(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(ne[t]," ").concat(N("each")," - ").concat(N("qty"),":").concat(ae[t]?N(" unlimited"):" ".concat(ie[t])," ").concat(ae[t]?"":" - ".concat(N("possibleRevenue")," £").concat(ne[t]*ie[t])," "))),modalLabel:N("addNewProduct"),modalClass:s.ProductSetModalClasses.product,isNewAdded:M,body:o.createElement(f.ProductControl,{isLoading:_,quantityType:j,allowDeposits:oe,hasBookingManagement:!1,fieldNamePrefix:"".concat(H,".").concat(t),productName:u,onProductNameChange:c,hasTicket:E,categoryType:I,zoneDuration:null==W?void 0:W.defaultDuration,isOverrides:r}),onDelete:function(){return function(e){if(!x){var t=V("".concat(H,".").concat(e)),r=V(G);L(G,(null==r?void 0:r.filter((function(e){return e.productUuid!==t.uuid})))||[]),X(e)}}(t)},validate:function(){return U("".concat(H,".").concat(t))},saveValidField:te},o.createElement(q.SubProductsControl,{isLoading:_,quantityType:j,stepIndex:T,productCategoryIndex:h,productIndex:t}))}})}))),o.createElement(m.CreateProductSetItem,{title:N("addProduct"),onClick:function(){var e;K((e=J.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,originalProductId:null,type:v.DEFAULT_PRODUCT_TYPE,tierId:Number(d.uniqueId()),zoneId:null,subProducts:[],images:[],uuid:g.generateUuid(),subSlots:null,offset:null,pause:null,serviceTime:null,sort:e})),O(!0),(null==ue?void 0:ue.type)===u.manualErrorType&&B(H)}}),o.createElement("div",{className:"manual-form-error"},ue&&ue.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"),i=require("react-bootstrap"),a=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),c=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 v=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 f=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 C,P,b,S,_=e.isLoading,j=e.quantityType,T=e.stepIndex,h=e.productCategoryIndex,E=e.hasTicket,I=e.categoryType,k=e.zones,N=e.isOverrides,x=e.isEventEditProductSet,D=e.isCreateNewOverrides,F=n.useTranslation("Design").t,A=a.useFormContext(),O=t.__read(r.useState(!1),2),w=O[0],M=O[1],Q=A.control,B=A.formState.errors,U=A.clearErrors,L=A.trigger,R=A.setValue,V=A.watch,z=A.getValues,W=V("steps.".concat(T,".productCategories.").concat(h,".zoneId")),H=null==k?void 0:k.find((function(e){return e.id===Number(W)})),G="steps.".concat(T,".productCategories.").concat(h,".products"),Y="steps.".concat(T,".pointProducts"),J=a.useFieldArray({name:G,control:Q,keyName:"_id"}),K=J.fields,X=J.append,Z=J.remove,$=J.move,ee=p.useSortableTreeFunctions({fieldName:G,remove:Z,isOverrides:N}),te=ee.edit,re=ee.saveValidField,oe=ee.cancelChanges,ne=V("steps.".concat(T,".productCategories.").concat(h,".allowDeposits")),ie=a.useWatch({control:Q,name:t.__spreadArray([],t.__read(K.map((function(e,t){return"".concat(G,".").concat(t,".price")}))),!1)}),ae=a.useWatch({control:Q,name:t.__spreadArray([],t.__read(K.map((function(e,t){return"".concat(G,".").concat(t,".totalQuantity")}))),!1)}),ue=a.useWatch({control:Q,name:t.__spreadArray([],t.__read(K.map((function(e,t){return"".concat(G,".").concat(t,".isUnlimited")}))),!1)}),ce=null===(S=null===(b=null===(P=null===(C=null==B?void 0:B.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,de=1===K.length,se=c.useSensor(c.MouseSensor,{activationConstraint:{distance:10}});return o.createElement(o.Fragment,null,o.createElement(l.SortableTree,{items:K.map((function(e){return String(e._id)})),onDragEnd:function(e){if(!N){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var o=K.findIndex((function(e){return e._id===t.id})),n=K.findIndex((function(e){return e._id===r.id}));o!==n&&($(o,n),K.forEach((function(e,t){R("".concat(G,".").concat(t,".sort"),t)})))}}},sensors:[se]},K.map((function(e,t){var r=x?!!e.id:N&&!!e.originalProductId,n=D&&!!e.id;return o.createElement(a.Controller,{key:e._id,control:Q,name:"".concat(G,".").concat(t,".name"),rules:{required:F("Validation:fieldRequired",{attribute:F("name")})},render:function(a){var u=a.field,c=u.value,d=u.onChange;return o.createElement(l.SortableTree.Item,{key:"product-".concat(e._id),id:String(e._id),isExpanded:de,isInvalid:!!ce,title:c,isOverride:N,badge:o.createElement(i.Badge,{className:"product-badge"},F("product")),isIconInHeader:!1,cancelChanges:function(){return oe(t)},edit:function(){return te(t)},secondaryBadge:y.getBadgeConfig(I,F(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(ie[t]," ").concat(F("each")," - ").concat(F("qty"),":").concat(ue[t]?F(" unlimited"):" ".concat(ae[t])," ").concat(ue[t]?"":" - ".concat(F("possibleRevenue")," £").concat(ie[t]*ae[t])," "))),modalLabel:F("addNewProduct"),modalClass:s.ProductSetModalClasses.product,isNewAdded:w,body:o.createElement(f.ProductControl,{isLoading:_,quantityType:j,allowDeposits:ne,hasBookingManagement:!1,fieldNamePrefix:"".concat(G,".").concat(t),productName:c,onProductNameChange:d,hasTicket:E,categoryType:I,zoneDuration:null==H?void 0:H.defaultDuration,isOverrides:n||r}),onDelete:function(){return function(e){if(!N){var t=z("".concat(G,".").concat(e)),r=z(Y);R(Y,(null==r?void 0:r.filter((function(e){return e.productUuid!==t.uuid})))||[]),Z(e)}}(t)},validate:function(){return L("".concat(G,".").concat(t))},saveValidField:re},o.createElement(q.SubProductsControl,{isLoading:_,quantityType:j,stepIndex:T,productCategoryIndex:h,productIndex:t}))}})}))),o.createElement(m.CreateProductSetItem,{title:F("addProduct"),onClick:function(){var e;X((e=K.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,originalProductId:null,type:v.DEFAULT_PRODUCT_TYPE,tierId:Number(d.uniqueId()),zoneId:null,subProducts:[],images:[],uuid:g.generateUuid(),subSlots:null,offset:null,pause:null,serviceTime:null,sort:e})),M(!0),(null==ce?void 0:ce.type)===u.manualErrorType&&U(G)}}),o.createElement("div",{className:"manual-form-error"},ce&&ce.message))};
@@ -3,7 +3,8 @@ interface StepsControlProps {
3
3
  isLoading: boolean;
4
4
  isOverrides?: boolean;
5
5
  isEventEditProductSet?: boolean;
6
+ isCreateNewOverrides?: boolean;
6
7
  }
7
- export declare function StepsControl({ isLoading, isOverrides, isEventEditProductSet, }: StepsControlProps): JSX.Element;
8
+ export declare function StepsControl({ isLoading, isOverrides, isEventEditProductSet, isCreateNewOverrides, }: StepsControlProps): JSX.Element;
8
9
  export {};
9
10
  //# sourceMappingURL=StepsControl.d.ts.map
@@ -1 +1 @@
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;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,qBAAqB,GACtB,EAAE,iBAAiB,eA+InB"}
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;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,iBAAiB,eAgJnB"}
@@ -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),s=require("react-i18next"),a=require("react-hook-form"),i=e(require("@licklist/plugins/dist/services/Form/HookFormService")),n=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=e.isOverrides,f=e.isEventEditProductSet,C=a.useFormContext(),b=s.useTranslation("Design").t,S=t.__read(r.useState(!1),2),E=S[0],q=S[1],I=C.control,h=C.formState,F=h.errors,N=h.isSubmitting,P=C.clearErrors,j=C.getValues,y=C.setFocus,T=a.useFieldArray({name:"steps",control:I,keyName:"_id"}),k=T.fields,x=T.append,_=T.remove,O=u.useSortableTreeFunctions({fieldName:"steps",remove:_,isOverrides:g}),L=O.edit,M=O.saveValidField,V=O.cancelChanges;r.useEffect((function(){N&&q(!N)}),[N]);var w=1===k.length;return o.createElement(o.Fragment,null,k.map((function(e,t){var r="steps.".concat(t),s=j(r),i=!!e.id;return o.createElement(a.Controller,{key:"step-".concat(e._id),name:"".concat(r,".name"),control:I,rules:{required:b("Validation:fieldRequired",{attribute:b("name")})},render:function(a){var u,c,C,S=a.field,q=S.value,I=S.onChange;return o.createElement(l.SortableTree.Item,{id:e._id,title:q,badge:o.createElement(d,{className:"step-badge"},b("step")),isExpanded:w||!!(null===(u=F.steps)||void 0===u?void 0:u[t]),isInvalid:!!(null===(c=F.steps)||void 0===c?void 0:c[t]),isIconInHeader:!1,modalLabel:b("addNewStep"),modalClass:n.ProductSetModalClasses.step,isNewAdded:E,edit:function(){return L(t)},cancelChanges:function(){return V(t)},isOverride:i,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=s.productCategories)||void 0===C?void 0:C.length," ",b("categories"))),treeLineIconColor:"#D52902",body:o.createElement(m.StepControl,{isLoading:v,stepIndex:t,stepName:q,onStepNameChange:I,isOverrides:i}),onDelete:function(){return _(t)},sortableItems:e.productCategories?e.productCategories.map((function(e){var t=e.id;return String(t)})):[],validate:function(){var e,o,s=null===(o=null===(e=F.steps)||void 0===e?void 0:e[t])||void 0===o?void 0:o.name;return s&&y("".concat(r,".name")),Promise.resolve(!s)},saveValidField:M},o.createElement(p.ProductCategoriesControl,{isLoading:v,stepIndex:t,isOverrides:g,isEventEditProductSet:f}))}})})),o.createElement(c.CreateProductSetItem,{title:b("addStep"),onClick:function(){var e;x({id:null,name:"".concat(b("step")," ").concat(k.length+1),productCategories:[],weight:0,hasMap:!1,venueMapSetId:null}),q(!0),(null===(e=F.steps)||void 0===e?void 0:e.type)===i.manualErrorType&&P("steps")}}),o.createElement("div",{className:"manual-form-error"},F.steps&&F.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"),s=e(r),i=require("react-i18next"),o=require("react-hook-form"),a=e(require("@licklist/plugins/dist/services/Form/HookFormService")),n=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=e.isOverrides,C=e.isEventEditProductSet,f=e.isCreateNewOverrides,b=o.useFormContext(),S=i.useTranslation("Design").t,E=t.__read(r.useState(!1),2),q=E[0],I=E[1],N=b.control,h=b.formState,F=h.errors,P=h.isSubmitting,j=b.clearErrors,y=b.getValues,O=b.setFocus,T=o.useFieldArray({name:"steps",control:N,keyName:"_id"}),k=T.fields,x=T.append,_=T.remove,w=u.useSortableTreeFunctions({fieldName:"steps",remove:_,isOverrides:g}),L=w.edit,M=w.saveValidField,V=w.cancelChanges;r.useEffect((function(){P&&I(!P)}),[P]);var D=1===k.length;return s.createElement(s.Fragment,null,k.map((function(e,t){var r="steps.".concat(t),i=y(r),a=(g||f)&&!!e.id;return s.createElement(o.Controller,{key:"step-".concat(e._id),name:"".concat(r,".name"),control:N,rules:{required:S("Validation:fieldRequired",{attribute:S("name")})},render:function(o){var u,c,b,E=o.field,I=E.value,N=E.onChange;return s.createElement(l.SortableTree.Item,{id:e._id,title:I,badge:s.createElement(d,{className:"step-badge"},S("step")),isExpanded:D||!!(null===(u=F.steps)||void 0===u?void 0:u[t]),isInvalid:!!(null===(c=F.steps)||void 0===c?void 0:c[t]),isIconInHeader:!1,modalLabel:S("addNewStep"),modalClass:n.ProductSetModalClasses.step,isNewAdded:q,edit:function(){return L(t)},cancelChanges:function(){return V(t)},isOverride:a,subTitle:s.createElement("div",{className:"product-set-badges-container"},s.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-step-dot"}),s.createElement("span",null,null===(b=i.productCategories)||void 0===b?void 0:b.length," ",S("categories"))),treeLineIconColor:"#D52902",body:s.createElement(m.StepControl,{isLoading:v,stepIndex:t,stepName:I,onStepNameChange:N,isOverrides:a}),onDelete:function(){return _(t)},sortableItems:e.productCategories?e.productCategories.map((function(e){var t=e.id;return String(t)})):[],validate:function(){var e,s,i=null===(s=null===(e=F.steps)||void 0===e?void 0:e[t])||void 0===s?void 0:s.name;return i&&O("".concat(r,".name")),Promise.resolve(!i)},saveValidField:M},s.createElement(p.ProductCategoriesControl,{isLoading:v,stepIndex:t,isOverrides:g,isCreateNewOverrides:f,isEventEditProductSet:C}))}})})),s.createElement(c.CreateProductSetItem,{title:S("addStep"),onClick:function(){var e;x({id:null,name:"".concat(S("step")," ").concat(k.length+1),productCategories:[],weight:0,hasMap:!1,venueMapSetId:null}),I(!0),(null===(e=F.steps)||void 0===e?void 0:e.type)===a.manualErrorType&&j("steps")}}),s.createElement("div",{className:"manual-form-error"},F.steps&&F.steps.message))};
@@ -12,6 +12,8 @@ type AvailableTimesControlProps = {
12
12
  isLoading: boolean;
13
13
  workHours?: WorkHour[];
14
14
  defaultValues?: string[];
15
+ startTime?: string;
16
+ endTime?: string;
15
17
  errorMessage?: string;
16
18
  clearErrorMessage: () => void;
17
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AvailableTimesControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/AvailableTimesControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,eAAe,EAAW,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAGtF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM;QAAE,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvD,eAAO,MAAM,qBAAqB,6GA8FjC,CAAC"}
1
+ {"version":3,"file":"AvailableTimesControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/AvailableTimesControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,eAAe,EAAW,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAGtF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM;QAAE,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvD,eAAO,MAAM,qBAAqB,6GA8FjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.63.1-dev.2",
3
+ "version": "0.63.1-dev.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -2,7 +2,7 @@ import React, { useEffect, useRef, useState } from "react";
2
2
  import { Modifier } from "@popperjs/core";
3
3
  import { useId } from "@react-aria/utils";
4
4
  import { Form, OverlayTrigger, Popover } from "react-bootstrap";
5
- import { useFieldArray, useFormContext, useWatch } from "react-hook-form";
5
+ import { useFieldArray, useFormContext } from "react-hook-form";
6
6
  import { useTranslation } from "react-i18next";
7
7
  import { useClickAway } from "react-use";
8
8
  import { DateTime } from "luxon";
@@ -14,6 +14,7 @@ import {
14
14
  SortableContext,
15
15
  verticalListSortingStrategy,
16
16
  } from "@dnd-kit/sortable";
17
+
17
18
  import { restrictToVerticalAxis } from "@dnd-kit/modifiers";
18
19
  import { CONFIRM_MODAL_ACTIONS } from "../../modals/confirmation/ConfirmModal";
19
20
  import { Icon } from "../../static";
@@ -26,11 +27,12 @@ import {
26
27
  AvailableTimesControl,
27
28
  AvailableTimesControlRef,
28
29
  } from "../../zone/form/components/AvailableTimesControl";
29
- import { ProductSetControlValues } from "..";
30
- import {
31
- getProductWithSmallestDuration,
32
- getLatestAvailableDateTime,
33
- } from "./utils";
30
+
31
+ // eslint-disable-next-line max-len
32
+
33
+ export interface DateAndRecurrenceInputValues {
34
+ menuRecurrences?: Partial<ProductSetRecurrence>[];
35
+ }
34
36
 
35
37
  interface DateAndRecurrenceInputProps {
36
38
  isEventEditProductSet?: boolean;
@@ -52,9 +54,7 @@ export const DateAndRecurrenceInput = ({
52
54
  getValues,
53
55
  setValue,
54
56
  clearErrors,
55
- } = useFormContext<ProductSetControlValues>();
56
-
57
- const steps = useWatch({ control, name: "steps" });
57
+ } = useFormContext<DateAndRecurrenceInputValues>();
58
58
 
59
59
  const [availableTimes, setAvailableTimes] = useState<string[]>([]);
60
60
  const availableTimesFormRef = useRef<AvailableTimesControlRef>();
@@ -101,13 +101,11 @@ export const DateAndRecurrenceInput = ({
101
101
  const isAvailableTimesFormValid =
102
102
  await availableTimesFormRef.current?.trigger();
103
103
 
104
- const { availableTimes } = availableTimesFormRef.current.getValues();
105
-
106
104
  if (next?.startTime && next?.endTime && isAvailableTimesFormValid) {
107
105
  const startTime = DateTime.fromISO(next.startTime);
108
106
  const endTime = DateTime.fromISO(next.endTime);
109
-
110
- const areAvailableTimesValid = availableTimes.every((time) => {
107
+ const { availableTimes } = availableTimesFormRef.current.getValues();
108
+ const validAvalilableTimes = availableTimes.every((time) => {
111
109
  const currentAvailableTime = DateTime.fromFormat(time, TIME_FORMAT);
112
110
 
113
111
  return (
@@ -115,8 +113,7 @@ export const DateAndRecurrenceInput = ({
115
113
  currentAvailableTime.diff(endTime, "minutes").minutes <= 0
116
114
  );
117
115
  });
118
-
119
- if (!areAvailableTimesValid) {
116
+ if (!validAvalilableTimes) {
120
117
  availableTimesFormRef.current.setError("availableTimes", {
121
118
  message: t("Validation:fieldTimeBetween", {
122
119
  attribute: t("Design:startTimesSmall"),
@@ -129,36 +126,6 @@ export const DateAndRecurrenceInput = ({
129
126
  }
130
127
  }
131
128
 
132
- // this check is required to prevent user from adding available time
133
- // less than the lowest duration product, e.g. if lowest duration product
134
- // is 1 hour and user tries to add time 15 minutes before end time,
135
- // such time can never be booked
136
- const lowestDurationProduct = getProductWithSmallestDuration(steps);
137
-
138
- if (lowestDurationProduct) {
139
- const endTime = next?.endTime
140
- ? DateTime.fromFormat(next?.endTime, TIME_FORMAT)
141
- : // this is to allow user to add 23:00 if end is at 23:59
142
- DateTime.fromFormat("23:59", TIME_FORMAT).plus({ minutes: 1 });
143
-
144
- const latestAvailableTime = getLatestAvailableDateTime(availableTimes);
145
-
146
- const latestAllowedTime = endTime.minus({
147
- minutes: lowestDurationProduct.duration,
148
- });
149
-
150
- if (latestAvailableTime > latestAllowedTime) {
151
- availableTimesFormRef.current.setError("availableTimes", {
152
- message: t("Validation:fieldTimeBefore", {
153
- attribute: t("Design:timeLowercase"),
154
- time: latestAllowedTime.toFormat(TIME_FORMAT),
155
- }),
156
- });
157
-
158
- return;
159
- }
160
- }
161
-
162
129
  const availableTime =
163
130
  availableTimesFormRef?.current?.getValues()?.availableTimes || null;
164
131
 
@@ -2,12 +2,12 @@ import { Meta, Story } from "@storybook/react";
2
2
  import React from "react";
3
3
  import Form from "react-bootstrap/Form";
4
4
  import { FormProvider, useForm } from "react-hook-form";
5
- import { OPERATIONAL_COST_CUSTOMER } from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
6
5
  import {
7
6
  ProductSetControl,
8
7
  ProductSetControlProps,
9
8
  ProductSetControlValues,
10
9
  } from "./ProductSetControl";
10
+ import { OPERATIONAL_COST_CUSTOMER } from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
11
11
 
12
12
  export default {
13
13
  title: "Product Set/Control",
@@ -22,10 +22,14 @@ import { SmsTemplate } from "@licklist/core/dist/DataMapper/Notification/SmsTemp
22
22
  import HookFormService from "@licklist/plugins/dist/services/Form/HookFormService";
23
23
  import { ruleForUrlWithProtocol } from "@licklist/plugins/dist/validation/Rules/urlRule";
24
24
  import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
25
- import { ProductSetRecurrence } from "@licklist/core/dist/DataMapper/Product/ProductSetRecurrenceDataMapper";
26
25
  import { WarningMessage } from "../../static";
27
26
  import { SelectItem } from "../../types/generic/SelectItem";
28
- import { DateAndRecurrenceInput } from "./DateAndRecurrenceInput";
27
+ import {
28
+ DateAndRecurrenceInput,
29
+ // TODO: Show Date Component, when reccurent date bugs are fixed
30
+ // DateAndRecurrenceInput,
31
+ DateAndRecurrenceInputValues,
32
+ } from "./DateAndRecurrenceInput";
29
33
  import TutorialGifCard from "./TutorialGifCard";
30
34
  import { Step } from "../types";
31
35
  import { StepsControl } from "../form/StepsControl";
@@ -49,7 +53,7 @@ export interface TemplateItem {
49
53
  label: string;
50
54
  }
51
55
 
52
- export interface ProductSetControlValues {
56
+ export interface ProductSetControlValues extends DateAndRecurrenceInputValues {
53
57
  name: string;
54
58
  type: ProductSetType;
55
59
  termsAndConditions: string;
@@ -61,7 +65,6 @@ export interface ProductSetControlValues {
61
65
  steps: Step[];
62
66
  emailTemplates?: TemplateItem[];
63
67
  smsTemplates?: TemplateItem[];
64
- menuRecurrences?: Partial<ProductSetRecurrence>[];
65
68
  }
66
69
 
67
70
  export interface ProductSetControlShared {
@@ -85,6 +88,7 @@ export interface ProductSetControlProps {
85
88
  workHours: WorkHour[] | undefined;
86
89
  providerHasBookingManagement?: boolean;
87
90
  isOverrides?: boolean;
91
+ isCreateNewOverrides?: boolean;
88
92
  }
89
93
 
90
94
  export function ProductSetControl({
@@ -101,6 +105,7 @@ export function ProductSetControl({
101
105
  workHours,
102
106
  providerHasBookingManagement = false,
103
107
  isOverrides = false,
108
+ isCreateNewOverrides = false,
104
109
  }: ProductSetControlProps) {
105
110
  const { t } = useTranslation(["Design", "Validation", "Notification"]);
106
111
  const {
@@ -189,6 +194,7 @@ export function ProductSetControl({
189
194
  isLoading={isLoading}
190
195
  isEventEditProductSet={isEventEditProductSet}
191
196
  isOverrides={isOverrides}
197
+ isCreateNewOverrides={isCreateNewOverrides}
192
198
  />
193
199
  </Col>
194
200
  <Col md={6} sm={12}>
@@ -37,6 +37,7 @@ interface ProductCategoriesControlProps extends WithIsLoading {
37
37
  stepIndex: number;
38
38
  isOverrides?: boolean;
39
39
  isEventEditProductSet?: boolean;
40
+ isCreateNewOverrides?: boolean;
40
41
  }
41
42
 
42
43
  const getCategoryDefaultValue = (
@@ -69,6 +70,7 @@ export function ProductCategoriesControl({
69
70
  stepIndex,
70
71
  isOverrides,
71
72
  isEventEditProductSet,
73
+ isCreateNewOverrides,
72
74
  }: ProductCategoriesControlProps) {
73
75
  const { t } = useTranslation("Design");
74
76
  const {
@@ -219,7 +221,8 @@ export function ProductCategoriesControl({
219
221
  const isOverridesCategory = productCategory.products.some((product) =>
220
222
  isEventEditProductSet ? !!product.id : !!product.originalProductId
221
223
  );
222
-
224
+ const isNewOverridesCategory =
225
+ isCreateNewOverrides && !!productCategory.id;
223
226
  const onSetIsExpanded = () => {
224
227
  setIsExpanded(productCategoryId);
225
228
  };
@@ -275,7 +278,10 @@ export function ProductCategoriesControl({
275
278
  categoryName={value}
276
279
  stepIndex={stepIndex}
277
280
  productCategoryIndex={index}
278
- isOverride={isOverrides && isOverridesCategory}
281
+ isOverride={
282
+ isNewOverridesCategory ||
283
+ (isOverrides && isOverridesCategory)
284
+ }
279
285
  />
280
286
  }
281
287
  isOverride={isOverrides}
@@ -303,6 +309,7 @@ export function ProductCategoriesControl({
303
309
  categoryType={productCategory.type}
304
310
  isOverrides={isOverrides}
305
311
  isEventEditProductSet={isEventEditProductSet}
312
+ isCreateNewOverrides={isCreateNewOverrides}
306
313
  />
307
314
  </SortableTree.Item>
308
315
  )}
@@ -63,9 +63,9 @@ Default.args = {
63
63
  sort: 100,
64
64
  type: "standard",
65
65
  updatedAt: "2023-05-08T15:55:28.000+03:00",
66
- defaultDuration: 30,
67
66
  zoneRecurrences: [
68
67
  {
68
+ availableTimes: ["10:05", "10:25", "10:45"],
69
69
  endDate: "2022-02-22",
70
70
  endTime: "22:00:00",
71
71
  id: 1,
@@ -90,6 +90,7 @@ Default.args = {
90
90
  updatedAt: "2023-05-08T15:55:28.000+03:00",
91
91
  zoneRecurrences: [
92
92
  {
93
+ availableTimes: ["10:05", "10:25", "10:45"],
93
94
  endDate: "2022-02-22",
94
95
  endTime: "22:00:00",
95
96
  id: 1,
@@ -57,6 +57,7 @@ export interface ProductSetFormProps
57
57
  isCreateAction?: boolean;
58
58
  isOverrides?: boolean;
59
59
  workHours?: WorkHour[];
60
+ isCreateNewOverrides?: boolean;
60
61
  }
61
62
 
62
63
  export function ProductSetForm({
@@ -74,6 +75,7 @@ export function ProductSetForm({
74
75
  isCreateAction,
75
76
  workHours,
76
77
  isOverrides,
78
+ isCreateNewOverrides,
77
79
  ...shared
78
80
  }: ProductSetFormProps) {
79
81
  const { t } = useTranslation("Design");
@@ -174,6 +176,7 @@ export function ProductSetForm({
174
176
  workHours={workHours}
175
177
  providerHasBookingManagement={providerHasBookingManagement}
176
178
  isOverrides={isOverrides}
179
+ isCreateNewOverrides={isCreateNewOverrides}
177
180
  />
178
181
  <Row>
179
182
  <Col md={6} sm={12} />
@@ -36,6 +36,7 @@ interface ProductsControlProps extends WithIsLoading {
36
36
  zones?: Zone[];
37
37
  isOverrides?: boolean;
38
38
  isEventEditProductSet?: boolean;
39
+ isCreateNewOverrides?: boolean;
39
40
  }
40
41
 
41
42
  const getDefaultProductValue = (sort: number): Product => ({
@@ -82,6 +83,7 @@ export function ProductsControl({
82
83
  zones,
83
84
  isOverrides,
84
85
  isEventEditProductSet,
86
+ isCreateNewOverrides,
85
87
  }: ProductsControlProps) {
86
88
  const { t } = useTranslation("Design");
87
89
  const form = useFormContext<ProductSetFormValues>();
@@ -211,6 +213,8 @@ export function ProductsControl({
211
213
  ? !!product.id
212
214
  : isOverrides && !!product.originalProductId;
213
215
 
216
+ const isNewProductOverrides = isCreateNewOverrides && !!product.id;
217
+
214
218
  return (
215
219
  <Controller
216
220
  key={product._id}
@@ -271,7 +275,9 @@ export function ProductsControl({
271
275
  hasTicket={hasTicket}
272
276
  categoryType={categoryType}
273
277
  zoneDuration={catergoryZone?.defaultDuration}
274
- isOverrides={isOverridesProductSet}
278
+ isOverrides={
279
+ isNewProductOverrides || isOverridesProductSet
280
+ }
275
281
  />
276
282
  }
277
283
  onDelete={() => onProductRemove(index)}
@@ -20,12 +20,14 @@ interface StepsControlProps {
20
20
  isLoading: boolean;
21
21
  isOverrides?: boolean;
22
22
  isEventEditProductSet?: boolean;
23
+ isCreateNewOverrides?: boolean;
23
24
  }
24
25
 
25
26
  export function StepsControl({
26
27
  isLoading,
27
28
  isOverrides,
28
29
  isEventEditProductSet,
30
+ isCreateNewOverrides,
29
31
  }: StepsControlProps) {
30
32
  const form = useFormContext<ProductSetFormValues>();
31
33
  const { t } = useTranslation("Design");
@@ -74,8 +76,8 @@ export function StepsControl({
74
76
  {fields.map((step, index) => {
75
77
  const stepFieldName = `steps.${index}` as const;
76
78
  const stepData = getValues(stepFieldName);
77
- const isOverrideStep = !!step.id;
78
-
79
+ const isOverrideStep =
80
+ (isOverrides || isCreateNewOverrides) && !!step.id;
79
81
  return (
80
82
  <Controller
81
83
  key={`step-${step._id}`}
@@ -146,6 +148,7 @@ export function StepsControl({
146
148
  isLoading={isLoading}
147
149
  stepIndex={index}
148
150
  isOverrides={isOverrides}
151
+ isCreateNewOverrides={isCreateNewOverrides}
149
152
  isEventEditProductSet={isEventEditProductSet}
150
153
  />
151
154
  </SortableTree.Item>
@@ -21,6 +21,8 @@ type AvailableTimesControlProps = {
21
21
  isLoading: boolean;
22
22
  workHours?: WorkHour[];
23
23
  defaultValues?: string[];
24
+ startTime?: string;
25
+ endTime?: string;
24
26
  errorMessage?: string;
25
27
  clearErrorMessage: () => void;
26
28
  };
@@ -1,5 +0,0 @@
1
- import { DateTime } from "luxon";
2
- import { Product, Step } from "../types";
3
- export declare const getProductWithSmallestDuration: (steps: Step[]) => Product;
4
- export declare const getLatestAvailableDateTime: (array: string[]) => DateTime;
5
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/product-set/control/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAczC,eAAO,MAAM,8BAA8B,UAAW,IAAI,EAAE,KAAG,OACM,CAAC;AAEtE,eAAO,MAAM,0BAA0B,UAAW,MAAM,EAAE,KAAG,QAGxB,CAAC"}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@licklist/core/dist/Config"),e=require("luxon"),r=require("@licklist/plugins/dist/utils/dateTime"),i=require("@licklist/plugins/dist/utils/extractObjectWithLowestKey");exports.getLatestAvailableDateTime=function(i){return i.map((function(r){return e.DateTime.fromFormat(r,t.TIME_FORMAT)})).sort(r.dateTimesSortFn("desc"))[0]},exports.getProductWithSmallestDuration=function(t){return i.extractObjectWithLowestKey(function(t){return t.reduce((function(t,e){return t.concat(e.productCategories.reduce((function(t,e){return t.concat(e.products)}),[]))}),[])}(t),"duration")};
@@ -1,25 +0,0 @@
1
- import { TIME_FORMAT } from "@licklist/core/dist/Config";
2
- import { dateTimesSortFn } from "@licklist/plugins/dist/utils/dateTime";
3
- import { extractObjectWithLowestKey } from "@licklist/plugins/dist/utils/extractObjectWithLowestKey";
4
- import { DateTime } from "luxon";
5
- import { Product, Step } from "../types";
6
-
7
- const getProductsFromSteps = (steps: Step[]): Product[] =>
8
- steps.reduce(
9
- (acc, step) =>
10
- acc.concat(
11
- step.productCategories.reduce(
12
- (acc, productCategory) => acc.concat(productCategory.products),
13
- []
14
- )
15
- ),
16
- []
17
- );
18
-
19
- export const getProductWithSmallestDuration = (steps: Step[]): Product =>
20
- extractObjectWithLowestKey(getProductsFromSteps(steps), "duration");
21
-
22
- export const getLatestAvailableDateTime = (array: string[]): DateTime =>
23
- array
24
- .map((time) => DateTime.fromFormat(time, TIME_FORMAT))
25
- .sort(dateTimesSortFn("desc"))[0];