@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,
|
|
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
|
|
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
|
@@ -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={() =>
|
|
241
|
+
onDelete={() => onProductRemove(index)}
|
|
223
242
|
validate={() => trigger(`${productControlFieldName}.${index}`)}
|
|
224
243
|
// preItem={<Popover className="d-none d-sm-block" />}
|
|
225
244
|
>
|