@licklist/design 0.44.490 → 0.44.491

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductsControl.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kEAAkE,CAAC;AAChG,OAAO,EAAkB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,UAAU,oBAAqB,SAAQ,aAAa;IAClD,YAAY,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAmCD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,YAAY,GACb,EAAE,oBAAoB,eAkLtB"}
1
+ {"version":3,"file":"ProductsControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductsControl.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kEAAkE,CAAC;AAChG,OAAO,EAAkB,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,UAAU,oBAAqB,SAAQ,aAAa;IAClD,YAAY,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAmCD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,YAAY,GACb,EAAE,oBAAoB,eAqMtB"}
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=require("react"),o=e(r),n=require("react-i18next"),a=require("react-bootstrap"),i=require("react-hook-form"),c=e(require("@licklist/plugins/dist/services/Form/HookFormService")),u=require("@dnd-kit/core"),d=require("lodash");require("../elements/DeleteFieldButton.js");var s=require("../../sortable-tree/SortableTreeItem.js"),l=require("../../sortable-tree/SortableTree.js");require("../card/ProductSetCard.js");var p=require("../item/CreateProductSetItem.js");require("../step/StepControl.js"),require("../product-category/ProductCategoryControl.js");var m=require("@licklist/core/dist/DataMapper/Product/ProductDataMapper"),g=require("@licklist/core/dist/Services");require("../product/booking-management/ProductBookingManagementControl.js"),require("../product/deposit/ProductDepositControl.js"),require("../product/quantity/ProductQuantityControl.js"),require("../product/quantity/ProductQuantityConstantControl.js"),require("../product/quantity/ProductQuantityRechargingControl.js");var q=require("../product/ProductControl.js"),v=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,f,P,b,S=e.isLoading,_=e.quantityType,j=e.stepIndex,T=e.productCategoryIndex,E=e.hasTicket,h=e.categoryType,I=n.useTranslation("Design").t,k=i.useFormContext(),x=t.__read(r.useState(!1),2),D=x[0],N=x[1],A=k.control,F=k.formState.errors,M=k.clearErrors,Q=k.trigger,w=k.setValue,B=k.watch,L="steps.".concat(j,".productCategories.").concat(T,".products"),R=i.useFieldArray({name:L,control:A,keyName:"_id"}),U=R.fields,O=R.append,W=R.remove,H=R.move,V=B("steps.".concat(j,".productCategories.").concat(T,".allowDeposits")),z=i.useWatch({control:A,name:t.__spreadArray([],t.__read(U.map((function(e,t){return"".concat(L,".").concat(t,".price")}))),!1)}),G=i.useWatch({control:A,name:t.__spreadArray([],t.__read(U.map((function(e,t){return"".concat(L,".").concat(t,".totalQuantity")}))),!1)}),Y=i.useWatch({control:A,name:t.__spreadArray([],t.__read(U.map((function(e,t){return"".concat(L,".").concat(t,".isUnlimited")}))),!1)}),J=null===(b=null===(P=null===(f=null===(C=null==F?void 0:F.steps)||void 0===C?void 0:C[j])||void 0===f?void 0:f.productCategories)||void 0===P?void 0:P[T])||void 0===b?void 0:b.products,K=1===U.length,X=u.useSensor(u.MouseSensor,{activationConstraint:{distance:10}});return o.createElement(o.Fragment,null,o.createElement(l.SortableTree,{items:U.map((function(e){return String(e._id)})),onDragEnd:function(e){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var o=U.findIndex((function(e){return e._id===t.id})),n=U.findIndex((function(e){return e._id===r.id}));o!==n&&(H(o,n),U.forEach((function(e,t){w("".concat(L,".").concat(t,".sort"),t)})))}},sensors:[X]},U.map((function(e,t){return o.createElement(i.Controller,{key:e._id,control:A,name:"".concat(L,".").concat(t,".name"),rules:{required:I("Validation:fieldRequired",{attribute:I("name")})},render:function(r){var n=r.field,i=n.value,c=n.onChange;return o.createElement(l.SortableTree.Item,{key:"product-".concat(e._id),id:String(e._id),isExpanded:K,isInvalid:!!J,title:i,badge:o.createElement(a.Badge,{className:"product-badge"},I("product")),isIconInHeader:!1,secondaryBadge:y.getBadgeConfig(h,I(h)),subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-product-dot"}),o.createElement("span",null,"£".concat(z[t]," ").concat(I("each")," - ").concat(I("qty"),":").concat(Y[t]?I(" unlimited"):" ".concat(G[t])," ").concat(Y[t]?"":" - ".concat(I("possibleRevenue")," £").concat(z[t]*G[t])," "))),modalLabel:I("addNewProduct"),modalClass:s.ProductSetModalClasses.product,isNewAdded:D,body:o.createElement(q.ProductControl,{isLoading:S,quantityType:_,allowDeposits:V,hasBookingManagement:!1,fieldNamePrefix:"".concat(L,".").concat(t),productName:i,onProductNameChange:c,hasTicket:E,categoryType:h}),onDelete:function(){return W(t)},validate:function(){return Q("".concat(L,".").concat(t))}},o.createElement(v.SubProductsControl,{isLoading:S,quantityType:_,stepIndex:j,productCategoryIndex:T,productIndex:t}))}})}))),o.createElement(p.CreateProductSetItem,{title:I("addProduct"),onClick:function(){var e;O((e=U.length,{id:null,name:"",termsAndConditions:"",productGroupId:null,description:"",price:0,deposit:0,minQuantity:null,maxQuantity:null,totalQuantity:0,capacity:0,duration:0,isAvailable:!0,isSoldOut:!1,isRequired:!1,isUnlimited:!1,quantitySelector:1,hasSpecialNotes:!1,weight:0,type:m.DEFAULT_PRODUCT_TYPE,tierId:Number(d.uniqueId()),zoneId:null,subProducts:[],images:[],uuid:g.generateUuid(),subSlots:null,offset:null,pause:null,serviceTime:null,sort:e})),N(!0),(null==J?void 0:J.type)===c.manualErrorType&&M(L)}}),o.createElement("div",{className:"manual-form-error"},J&&J.message))};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=require("react"),o=e(r),n=require("react-i18next"),a=require("react-bootstrap"),i=require("react-hook-form"),c=e(require("@licklist/plugins/dist/services/Form/HookFormService")),u=require("@dnd-kit/core"),d=require("lodash");require("../elements/DeleteFieldButton.js");var s=require("../../sortable-tree/SortableTreeItem.js"),l=require("../../sortable-tree/SortableTree.js");require("../card/ProductSetCard.js");var p=require("../item/CreateProductSetItem.js");require("../step/StepControl.js"),require("../product-category/ProductCategoryControl.js");var m=require("@licklist/core/dist/DataMapper/Product/ProductDataMapper"),g=require("@licklist/core/dist/Services");require("../product/booking-management/ProductBookingManagementControl.js"),require("../product/deposit/ProductDepositControl.js"),require("../product/quantity/ProductQuantityControl.js"),require("../product/quantity/ProductQuantityConstantControl.js"),require("../product/quantity/ProductQuantityRechargingControl.js");var v=require("../product/ProductControl.js"),q=require("./SubProductsControl.js"),y=require("./ProductCategoriesControl.js");require("../control/ProductSetControl.js"),require("../deposit-paid/ProductSetDepositPaidControl.js"),require("./ProductSetForm.js"),require("../popover/ProductSetPopover.js"),require("../tabs/ProductSetTab.js"),require("../tabs/ProductSetTabs.js");exports.ProductsControl=function(e){var f,C,P,b,S=e.isLoading,_=e.quantityType,j=e.stepIndex,T=e.productCategoryIndex,E=e.hasTicket,h=e.categoryType,I=n.useTranslation("Design").t,k=i.useFormContext(),x=t.__read(r.useState(!1),2),D=x[0],N=x[1],A=k.control,F=k.formState.errors,M=k.clearErrors,Q=k.trigger,w=k.setValue,B=k.watch,U=k.getValues,L="steps.".concat(j,".productCategories.").concat(T,".products"),R="steps.".concat(j,".pointProducts"),O=i.useFieldArray({name:L,control:A,keyName:"_id"}),V=O.fields,W=O.append,H=O.remove,z=O.move,G=B("steps.".concat(j,".productCategories.").concat(T,".allowDeposits")),Y=i.useWatch({control:A,name:t.__spreadArray([],t.__read(V.map((function(e,t){return"".concat(L,".").concat(t,".price")}))),!1)}),J=i.useWatch({control:A,name:t.__spreadArray([],t.__read(V.map((function(e,t){return"".concat(L,".").concat(t,".totalQuantity")}))),!1)}),K=i.useWatch({control:A,name:t.__spreadArray([],t.__read(V.map((function(e,t){return"".concat(L,".").concat(t,".isUnlimited")}))),!1)}),X=null===(b=null===(P=null===(C=null===(f=null==F?void 0:F.steps)||void 0===f?void 0:f[j])||void 0===C?void 0:C.productCategories)||void 0===P?void 0:P[T])||void 0===b?void 0:b.products,Z=1===V.length,$=u.useSensor(u.MouseSensor,{activationConstraint:{distance:10}});return o.createElement(o.Fragment,null,o.createElement(l.SortableTree,{items:V.map((function(e){return String(e._id)})),onDragEnd:function(e){var t=e.active,r=e.over;if(t&&r&&(null==t?void 0:t.id)&&(null==r?void 0:r.id)){var o=V.findIndex((function(e){return e._id===t.id})),n=V.findIndex((function(e){return e._id===r.id}));o!==n&&(z(o,n),V.forEach((function(e,t){w("".concat(L,".").concat(t,".sort"),t)})))}},sensors:[$]},V.map((function(e,t){return o.createElement(i.Controller,{key:e._id,control:A,name:"".concat(L,".").concat(t,".name"),rules:{required:I("Validation:fieldRequired",{attribute:I("name")})},render:function(r){var n=r.field,i=n.value,c=n.onChange;return o.createElement(l.SortableTree.Item,{key:"product-".concat(e._id),id:String(e._id),isExpanded:Z,isInvalid:!!X,title:i,badge:o.createElement(a.Badge,{className:"product-badge"},I("product")),isIconInHeader:!1,secondaryBadge:y.getBadgeConfig(h,I(h)),subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-product-dot"}),o.createElement("span",null,"£".concat(Y[t]," ").concat(I("each")," - ").concat(I("qty"),":").concat(K[t]?I(" unlimited"):" ".concat(J[t])," ").concat(K[t]?"":" - ".concat(I("possibleRevenue")," £").concat(Y[t]*J[t])," "))),modalLabel:I("addNewProduct"),modalClass:s.ProductSetModalClasses.product,isNewAdded:D,body:o.createElement(v.ProductControl,{isLoading:S,quantityType:_,allowDeposits:G,hasBookingManagement:!1,fieldNamePrefix:"".concat(L,".").concat(t),productName:i,onProductNameChange:c,hasTicket:E,categoryType:h}),onDelete:function(){return function(e){var t=U("".concat(L,".").concat(e)),r=U(R);w(R,(null==r?void 0:r.filter((function(e){return e.productUuid!==t.uuid})))||[]),H(e)}(t)},validate:function(){return Q("".concat(L,".").concat(t))}},o.createElement(q.SubProductsControl,{isLoading:S,quantityType:_,stepIndex:j,productCategoryIndex:T,productIndex:t}))}})}))),o.createElement(p.CreateProductSetItem,{title:I("addProduct"),onClick:function(){var e;W((e=V.length,{id:null,name:"",termsAndConditions:"",productGroupId:null,description:"",price:0,deposit:0,minQuantity:null,maxQuantity:null,totalQuantity:0,capacity:0,duration:0,isAvailable:!0,isSoldOut:!1,isRequired:!1,isUnlimited:!1,quantitySelector:1,hasSpecialNotes:!1,weight:0,type:m.DEFAULT_PRODUCT_TYPE,tierId:Number(d.uniqueId()),zoneId:null,subProducts:[],images:[],uuid:g.generateUuid(),subSlots:null,offset:null,pause:null,serviceTime:null,sort:e})),N(!0),(null==X?void 0:X.type)===c.manualErrorType&&M(L)}}),o.createElement("div",{className:"manual-form-error"},X&&X.message))};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.44.490",
3
+ "version": "0.44.491",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -85,11 +85,14 @@ export function ProductsControl({
85
85
  trigger,
86
86
  setValue,
87
87
  watch,
88
+ getValues,
88
89
  } = form;
89
90
 
90
91
  const productControlFieldName =
91
92
  `steps.${stepIndex}.productCategories.${productCategoryIndex}.products` as const;
92
93
 
94
+ const productPointsKey = `steps.${stepIndex}.pointProducts` as const;
95
+
93
96
  const { fields, append, remove, move } = useFieldArray({
94
97
  name: productControlFieldName,
95
98
  control,
@@ -156,6 +159,22 @@ export function ProductsControl({
156
159
  });
157
160
  };
158
161
 
162
+ const onProductRemove = (index: number) => {
163
+ const currentProduct = getValues(
164
+ `${productControlFieldName}.${index}` as const
165
+ );
166
+
167
+ const currentPointProducts = getValues(productPointsKey);
168
+
169
+ setValue(
170
+ productPointsKey,
171
+ currentPointProducts?.filter(
172
+ (product) => product.productUuid !== currentProduct.uuid
173
+ ) || []
174
+ );
175
+ remove(index);
176
+ };
177
+
159
178
  return (
160
179
  <>
161
180
  <SortableTree
@@ -219,7 +238,7 @@ export function ProductsControl({
219
238
  categoryType={categoryType}
220
239
  />
221
240
  }
222
- onDelete={() => remove(index)}
241
+ onDelete={() => onProductRemove(index)}
223
242
  validate={() => trigger(`${productControlFieldName}.${index}`)}
224
243
  // preItem={<Popover className="d-none d-sm-block" />}
225
244
  >