@licklist/design 0.44.466-hf.1 → 0.44.467
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.
- package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductCategoriesControl.js +1 -1
- package/dist/product-set/form/context.d.ts +2 -4
- package/dist/product-set/form/context.d.ts.map +1 -1
- package/dist/product-set/form/context.js +1 -1
- package/dist/product-set/product-category/ProductCategoryControl.d.ts +1 -1
- package/dist/provider/categories-input/CategoriesInputDescription.d.ts.map +1 -1
- package/dist/provider/categories-input/CategoriesInputDescription.js +1 -1
- package/dist/sales/manual-booking/formatDays.js +1 -1
- package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts.map +1 -1
- package/dist/sales/manual-booking/summary/ManualBookingSummary.js +1 -1
- package/dist/sortable-tree/SortableTreeItem.d.ts +1 -2
- package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
- package/dist/sortable-tree/SortableTreeItem.js +1 -1
- package/package.json +1 -1
- package/src/product-set/form/ProductCategoriesControl.tsx +18 -67
- package/src/product-set/form/context.tsx +1 -18
- package/src/product-set/product-category/ProductCategoryControl.tsx +1 -1
- package/src/provider/categories-input/CategoriesInputDescription.tsx +24 -18
- package/src/sales/manual-booking/formatDays.ts +2 -2
- package/src/sales/manual-booking/summary/ManualBookingSummary.tsx +2 -1
- package/src/sortable-tree/SortableTreeItem.tsx +2 -13
- package/dist/product-set/utils/index.d.ts +0 -5
- package/dist/product-set/utils/index.d.ts.map +0 -1
- package/dist/product-set/utils/index.js +0 -1
- package/src/product-set/utils/index.ts +0 -16
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ProductCategoriesControl.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/ProductCategoriesControl.tsx"],"names":[],"mappings":";AAYA,OAAO,EAKL,YAAY,EACb,MAAM,kEAAkE,CAAC;AAQ1E,OAAO,EAAwB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOvE,UAAU,6BAA8B,SAAQ,aAAa;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AA4BD,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,SAAS,GACV,EAAE,6BAA6B,eAqO/B;AAED,eAAO,MAAM,cAAc,iBACX,YAAY,SACnB,MAAM;WACH,MAAM;eAAa,MAAM;CAcpC,CAAC"}
|
|
@@ -1 +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"),
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=require("react"),o=e(r),a=require("react-i18next"),n=require("react-bootstrap"),i=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),l=e(require("clsx")),d=require("@dnd-kit/core"),s=require("lodash"),c=require("../../sortable-tree/SortableTreeItem.js"),m=require("../../sortable-tree/SortableTree.js"),p=require("../item/CreateProductSetItem.js"),g=require("./context.js"),v=require("@licklist/core/dist/DataMapper/Product/ProductCategoryDataMapper"),y=require("../product-category/ProductCategoryControl.js"),C=require("./ProductsControl.js"),f=require("./SelectCategoryModal.js"),b=require("./VenueMapSetModal.js");var E=function(e,t){return e===v.CATEGORY_TYPE_GAME?{className:"game-badge",label:t}:e===v.CATEGORY_TYPE_FIXED_DURATION?{className:"fixed-duration-badge",label:t}:null};exports.ProductCategoriesControl=function(e){var S,T,I,q,_,N,P=e.isLoading,x=e.stepIndex,M=a.useTranslation("Design").t,h=r.useContext(g.ProductSetLoadingContext).providerHasMap,A=i.useFormContext(),k=t.__read(r.useState(!1),2),D=k[0],R=k[1],j=t.__read(r.useState(!1),2),Y=j[0],V=j[1],F=t.__read(r.useState(!1),2),O=F[0],L=F[1],w=A.control,B=A.formState.errors,G=A.clearErrors,H=A.watch,Q=A.trigger,U=H("steps.".concat(x,".hasMap"))||!1,K="steps.".concat(x,".productCategories"),z=i.useFieldArray({name:K,control:w,keyName:"_id"}),W=z.fields,X=z.append,J=z.remove,Z=t.__read(r.useState([]),2),$=Z[0],ee=Z[1],te=1===W.length,re=i.useWatch({control:w,name:K}),oe=null===(T=null===(S=null==B?void 0:B.steps)||void 0===S?void 0:S[x])||void 0===T?void 0:T.productCategories,ae=null===(q=null===(I=null==B?void 0:B.steps)||void 0===I?void 0:I[x])||void 0===q?void 0:q.venueMapSetId,ne=null===(N=null===(_=null==B?void 0:B.steps)||void 0===_?void 0:_[x])||void 0===N?void 0:N.pointProducts,ie=Boolean(ae||ne),ue=d.useSensor(d.MouseSensor,{activationConstraint:{distance:10}});return r.useEffect((function(){re&&re.length&&re.forEach((function(e){var t,r,o,a=null===(r=e.products)||void 0===r?void 0:r.reduce((function(e,t){return e+Number(t.price)*Number(t.totalQuantity)}),0),n=null===(o=e.products)||void 0===o?void 0:o.reduce((function(e,t){return e+Number(t.totalQuantity)}),0);ee(((t={})[e.uniqueId]={price:a,quantity:n},t))}))}),[re]),o.createElement(o.Fragment,null,o.createElement(m.SortableTree,{sensors:[ue],items:W.map((function(e){return String(e._id)})),onDragEnd:function(e){}},W.map((function(e,t){return o.createElement(i.Controller,{key:"product-category-".concat(e._id),name:"".concat(K,".").concat(t,".name"),control:w,rules:{required:M("Validation:fieldRequired",{attribute:M("name")})},render:function(r){var a,i,u=r.field,l=u.value,d=u.onChange;return o.createElement(m.SortableTree.Item,{id:e._id,title:l,isExpanded:te,isInvalid:!!oe,badge:o.createElement(n.Badge,{className:"category-badge"},M("productCategory")),isIconInHeader:!1,subTitle:o.createElement("div",{className:"product-set-badges-container"},o.createElement("div",{className:"product-set-subtitle-dot product-set-subtitle-category-dot"}),o.createElement("span",null,null!==(i=null===(a=$[e.uniqueId])||void 0===a?void 0:a.quantity)&&void 0!==i?i:"N/A"," ",M("products"))),treeLineIconColor:"#1A93AA",modalLabel:M("addNewCategory"),secondaryBadge:E(e.type,M(e.type)),modalClass:c.ProductSetModalClasses.category,isNewAdded:O,body:o.createElement(y.ProductCategoryControl,{isLoading:P,onCategoryNameChange:d,categoryName:l,stepIndex:x,productCategoryIndex:t}),onDelete:function(){return J(t)},validate:function(){return Q("steps.".concat(x,".productCategories.").concat(t))},sortableItems:e.products?e.products.filter((function(e){return e.id})).map((function(e){var t=e.id;return String(t)})):[]},o.createElement(C.ProductsControl,{isLoading:P,quantityType:e.quantityType,hasTicket:null==e?void 0:e.hasTicket,stepIndex:x,productCategoryIndex:t,categoryType:e.type}))}})}))),o.createElement(p.CreateProductSetItem,{title:M("addCategory"),onClick:function(){R(!0)}}),o.createElement(f.SelectCategoryModal,{isVisible:D,onHide:function(){return R(!1)},onCategorySelect:function(e){X(function(e,t){return{id:null,uniqueId:Number(s.uniqueId()),name:"",minSubItems:null,maxSubItems:null,quantityType:v.QUANTITY_TYPE_STANDARD,type:e,isRelyOnPeople:e===v.CATEGORY_TYPE_TICKETS,isTimeRelated:!1,collectUserInfo:!1,hasTicket:e===v.CATEGORY_TYPE_TICKETS,allowDeposits:!1,remainderExpireAfter:void 0,hasBookingManagement:!1,weight:0,isReusable:!1,hasSubEvents:!1,products:[],zoneId:null,sort:t}}(e,W.length)),L(!0),(null==oe?void 0:oe.type)===u.manualErrorType&&G(K)}}),h&&U&&o.createElement(o.Fragment,null,o.createElement(p.CreateProductSetItem,{title:M("editMap"),onClick:function(){V(!0)},className:l("mt-3",ie&&"mb-3",ie&&"is-invalid")}),ie&&o.createElement("div",{className:"manual-form-error"},ae&&M("Validation:fieldRequired",{attribute:M("Design:venueMapSet")}),ne&&M("Validation:fieldMinNumber",{attribute:M("pointProduct"),min:1})),o.createElement(b.VenueMapSetModal,{isVisible:Y,setIsVisible:V,stepIndex:x})),o.createElement("div",{className:"manual-form-error"},oe&&oe.message))},exports.getBadgeConfig=E;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { PropsWithChildren
|
|
1
|
+
import React, { PropsWithChildren } from "react";
|
|
2
2
|
import { VenueMapSet } from "@licklist/core/dist/DataMapper/Product/VenueMapSetDataMapper";
|
|
3
3
|
import { ProviderBookingManagementSetting } from "@licklist/core/dist/DataMapper/Provider/ProviderBookingManagementSettingDataMapper";
|
|
4
4
|
import { Zone } from "@licklist/core/dist/DataMapper/Provider/ZoneDataMapper";
|
|
@@ -11,11 +11,9 @@ interface LoadingContext {
|
|
|
11
11
|
venueMapSets?: VenueMapSet[];
|
|
12
12
|
providerHasBookingManagement?: ProviderBookingManagementSetting["hasBookingManagement"];
|
|
13
13
|
zones?: Zone[] | null;
|
|
14
|
-
expandedProductCategories: Record<string, boolean>;
|
|
15
|
-
setExpandedProductCategories: Dispatch<SetStateAction<Record<string, boolean>>>;
|
|
16
14
|
}
|
|
17
15
|
export declare const ProductSetLoadingContext: React.Context<LoadingContext>;
|
|
18
|
-
declare type ProductSetContextProviderProps = PropsWithChildren<Omit<LoadingContext, "isLoading" | "setLoading"
|
|
16
|
+
declare type ProductSetContextProviderProps = PropsWithChildren<Omit<LoadingContext, "isLoading" | "setLoading">>;
|
|
19
17
|
export declare function ProductSetContextProvider({ children, productGroupList, providerHasMap, venueMapSets, providerHasBookingManagement, zones, }: ProductSetContextProviderProps): JSX.Element;
|
|
20
18
|
export {};
|
|
21
19
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/product-set/form/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAIlB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,8DAA8D,CAAC;AAE3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,oFAAoF,CAAC;AACtI,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,UAAU,cAAc;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,4BAA4B,CAAC,EAAE,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;IACxF,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,+BAEpC,CAAC;AAEF,aAAK,8BAA8B,GAAG,iBAAiB,CACrD,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,YAAY,CAAC,CACjD,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,gBAAqB,EACrB,cAAsB,EACtB,YAAiB,EACjB,4BAA4B,EAC5B,KAAK,GACN,EAAE,8BAA8B,eAqBhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=r.createContext(null);exports.ProductSetContextProvider=function(e){var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,a=r.createContext(null);exports.ProductSetContextProvider=function(e){var i=e.children,n=e.productGroupList,d=void 0===n?[]:n,u=e.providerHasMap,s=void 0!==u&&u,p=e.venueMapSets,v=void 0===p?[]:p,c=e.providerHasBookingManagement,l=e.zones,f=t.__read(r.useState(void 0),2),g=f[0],M=f[1],x=t.__read(r.useState(!1),2),S=x[0],_=x[1];return r.useEffect((function(){return M(l)}),[l]),o.createElement(a.Provider,{value:{isLoading:S,setLoading:_,productGroupList:d,providerHasMap:s,venueMapSets:v,providerHasBookingManagement:c,zones:g}},i)},exports.ProductSetLoadingContext=a;
|
|
@@ -5,7 +5,7 @@ import { Zone } from "@licklist/core/dist/DataMapper/Provider/ZoneDataMapper";
|
|
|
5
5
|
import { IsDeletableEvent } from "../types";
|
|
6
6
|
export interface ProductCategoryControlValues extends FormValues {
|
|
7
7
|
id: number;
|
|
8
|
-
uniqueId?:
|
|
8
|
+
uniqueId?: number;
|
|
9
9
|
name: string;
|
|
10
10
|
minSubItems: number | null;
|
|
11
11
|
maxSubItems: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesInputDescription.d.ts","sourceRoot":"","sources":["../../../src/provider/categories-input/CategoriesInputDescription.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,oBAAY,+BAA+B,GAAG;IAC5C,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,UAAU,EAAE,MAAM,GACnB,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"CategoriesInputDescription.d.ts","sourceRoot":"","sources":["../../../src/provider/categories-input/CategoriesInputDescription.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,oBAAY,+BAA+B,GAAG;IAC5C,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,UAAU,EAAE,MAAM,GACnB,EAAE,+BAA+B,eAiCjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,l=require("react-bootstrap"),r=require("react-hook-form");exports.CategoriesInputDescription=function(e){var t=e.categories,a=r.useWatch({name:"categories",defaultValue:[]});return n.createElement("div",null,a&&(null==t?void 0:t.map((function(e){var t,r=null===(t=null==e?void 0:e.categories)||void 0===t?void 0:t.filter((function(e){return null==a?void 0:a.includes("".concat(e.id))}));return(null==r?void 0:r.length)?n.createElement(n.Fragment,null):n.createElement(l.Row,{key:null==e?void 0:e.id,noGutters:!0,className:"mx-n1 align-items-center"},n.createElement(l.Col,{xs:"auto",className:"m-1"},null==e?void 0:e.name,":"),null==r?void 0:r.map((function(e){return n.createElement(l.Badge,{pill:!0,variant:"secondary",key:null==e?void 0:e.id,className:"m-1"},null==e?void 0:e.name)})))}))))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@licklist/core/dist/Config"),e=require("luxon");exports.formatToDays=function(r){if(!r)return null;if(7===r.length)return"Everyday";var e=!0,t=r.map((function(t,n){switch(n>0&&r[n-1]!==t-1&&(e=!1),t){case 0:return"Mon";case 1:return"Tue";case 2:return"Wed";case 3:return"Thu";case 4:return"Fri";case 5:return"Sat";case 6:return"Sun";default:return""}}));return r.length>3&&e?"".concat(t[0]," - ").concat(t[t.length-1]):t.join(", ")},exports.formatToHours=function(t,n){var o=e.DateTime.fromISO(t).toFormat(r.TIME_FORMAT),u=e.DateTime.fromISO(n).toFormat(r.TIME_FORMAT);return"".concat(o," - ").concat(u)};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("@licklist/core/dist/Config"),e=require("luxon");exports.formatToDays=function(r){if(!r)return null;if(7===r.length)return"Everyday";var e=!0,t=r.map((function(t,n){switch(n>0&&r[n-1]!==t-1&&(e=!1),t){case 0:return"Mon";case 1:return"Tue";case 2:return"Wed";case 3:return"Thu";case 4:return"Fri";case 5:return"Sat";case 6:return"Sun";default:return""}}));return r.length>3&&e?"".concat(t[0]," - ").concat(t[t.length-1]):t.join(", ")},exports.formatToHours=function(t,n){var o=e.DateTime.fromISO(t).toUTC().toFormat(r.TIME_FORMAT),u=e.DateTime.fromISO(n).toUTC().toFormat(r.TIME_FORMAT);return"".concat(o," - ").concat(u)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManualBookingSummary.d.ts","sourceRoot":"","sources":["../../../../src/sales/manual-booking/summary/ManualBookingSummary.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+DAA+D,CAAC;
|
|
1
|
+
{"version":3,"file":"ManualBookingSummary.d.ts","sourceRoot":"","sources":["../../../../src/sales/manual-booking/summary/ManualBookingSummary.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+DAA+D,CAAC;AAWnG,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,sFAO9B,yBAAyB,gBAyE3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,a=require("@licklist/core/dist/Config");require("../../../static/loader/LoaderIndicator.js");var n=require("../../../static/loader/BlockLoader.js"),l=require("react-i18next");require("../../../static/loader/ButtonLoader.js"),require("../../../static/loader/SnippetLoader.js"),require("../../../static/loader/PaymentLoader.js");var c=require("luxon"),i=require("react-intl");exports.ManualBookingSummary=function(e){var t=e.eventName,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,a=require("@licklist/core/dist/Config");require("../../../static/loader/LoaderIndicator.js");var n=require("../../../static/loader/BlockLoader.js"),l=require("react-i18next");require("../../../static/loader/ButtonLoader.js"),require("../../../static/loader/SnippetLoader.js"),require("../../../static/loader/PaymentLoader.js");var c=require("luxon"),i=require("react-intl"),m=require("@licklist/core/dist/Config/Date");exports.ManualBookingSummary=function(e){var t=e.eventName,s=e.orders,o=e.ordersSum,u=e.orderSumIncludingFee,d=e.isFeeFetching,y=e.orderDate,E=l.useTranslation(["Design","Sale"]).t,v=i.useIntl().formatNumber,N=c.DateTime.fromISO(y,{zone:m.TIMEZONE}),p=N.toFormat(a.DATE_TIME_MANUAL_BOOKING_FORMAT),q=N.toFormat(a.TIME_FORMAT);return r.createElement("div",{className:"manual-booking-summary"},r.createElement("div",{className:"receipt-title"},E("Sale:receipt")),r.createElement("div",{className:"event-name border-summary-item"},t),r.createElement("div",{className:"border-summary-item"},p),r.createElement("div",{className:"border-summary-item"},q),s.length>0?r.createElement("div",{className:"summary-item-container"},s.map((function(e){return r.createElement("div",{key:e.id,className:"d-flex justify-content-between border-summary-item"},r.createElement("div",null,e.name),r.createElement("div",null,e.isRelyOnPeople?"x ".concat(e.quantity," People"):""),r.createElement("div",null,v(e.quantity*e.price,{style:"currency",currency:a.Currency.GBP})))})),r.createElement("div",null,r.createElement("div",{className:"total-container"},r.createElement("div",null,E("Sale:total")),r.createElement("div",{className:"total-amount"},v(o,{style:"currency",currency:a.Currency.GBP}))),u&&r.createElement("div",{className:"total-container ".concat(d?"mt-6":"mt-4")},d||!u?r.createElement(n.BlockLoader,null):r.createElement(r.Fragment,null,r.createElement("div",null,E("Sale:includingOperationalCost")),r.createElement("div",{className:"total-amount"},v(u,{style:"currency",currency:a.Currency.GBP})))))):r.createElement("div",{className:"cart-items"},r.createElement("p",{className:"empty-cart"},E("Design:emptyBasket"))))};
|
|
@@ -28,7 +28,6 @@ export interface SortableTreeItemProps {
|
|
|
28
28
|
label: string;
|
|
29
29
|
className: string;
|
|
30
30
|
};
|
|
31
|
-
setIsExpanded?: () => void;
|
|
32
31
|
}
|
|
33
|
-
export declare function SortableTreeItem({ id, title, badge, subTitle, body, children, preItem, postItem, sortableItems, isExpanded, isInvalid, isIconInHeader, treeLineIconColor, modalLabel, modalClass, isNewAdded, onDelete, validate, secondaryBadge,
|
|
32
|
+
export declare function SortableTreeItem({ id, title, badge, subTitle, body, children, preItem, postItem, sortableItems, isExpanded, isInvalid, isIconInHeader, treeLineIconColor, modalLabel, modalClass, isNewAdded, onDelete, validate, secondaryBadge, }: SortableTreeItemProps): JSX.Element;
|
|
34
33
|
//# sourceMappingURL=SortableTreeItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableTreeItem.d.ts","sourceRoot":"","sources":["../../src/sortable-tree/SortableTreeItem.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"SortableTreeItem.d.ts","sourceRoot":"","sources":["../../src/sortable-tree/SortableTreeItem.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAkBhE,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,oBAAY,0BAA0B,GACpC,OAAO,sBAAsB,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,UAAkB,EAClB,SAAiB,EACjB,cAAqB,EACrB,iBAAsB,EACtB,UAAe,EACf,UAAU,EACV,UAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,cAAc,GACf,EAAE,qBAAqB,eAoRvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),a=require("react"),
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),a=require("react"),r=e(a),n=require("react-i18next"),l=require("react-bootstrap"),o=require("../static/Icon.js"),s=e(require("clsx")),i=require("@dnd-kit/core"),c=require("@dnd-kit/sortable"),d=require("@dnd-kit/utilities"),m=require("../modals/confirmation/ConfirmModal.js");require("../modals/dialog/Dialog.js"),require("../modals/dialog/DialogContext.js");var u=require("../product-set/elements/DeleteFieldButton.js"),p={step:"edit-product-step",category:"edit-product-category",product:"edit-product"};exports.ProductSetModalClasses=p,exports.SortableTreeItem=function(e){var b=this,g=e.id,v=e.title,E=e.badge,f=e.subTitle,N=e.body,y=e.children,h=e.preItem,w=e.postItem,C=e.sortableItems,_=e.isExpanded,x=void 0!==_&&_,D=e.isInvalid,S=void 0!==D&&D,q=e.isIconInHeader,M=void 0===q||q,k=e.treeLineIconColor,I=void 0===k?"":k,B=e.modalLabel,j=void 0===B?"":B,P=e.modalClass,T=e.isNewAdded,X=void 0!==T&&T,Y=e.onDelete,A=e.validate,L=e.secondaryBadge,R=t.__read(a.useState(x),2),U=R[0],z=R[1],F=t.__read(a.useState(X),2),H=F[0],K=F[1],V=n.useTranslation("Design").t,O=c.useSortable({id:g}),G=O.attributes,J=O.listeners,Q=O.setNodeRef,W=O.transform,Z=O.transition,$=t.__read(a.useState({pageX:0,pageY:0}),2),ee=$[0],te=$[1],ae=i.useDraggable({id:g}),re=ae.isDragging,ne=ae.attributes,le=ae.listeners,oe=ae.setNodeRef,se=ae.transform,ie=a.useCallback((function(e){var t=e.pageX-ee.pageX,a=e.pageY-ee.pageY;Math.sqrt(t*t+a*a)>5||z((function(e){return!e}))}),[ee]),ce=a.useCallback((function(e){te({pageX:e.pageX,pageY:e.pageY})}),[]),de=function(){return t.__awaiter(b,void 0,void 0,(function(){return t.__generator(this,(function(e){switch(e.label){case 0:return A||K(!1),[4,null==A?void 0:A()];case 1:return e.sent()&&K(!1),[2]}}))}))};return r.createElement("div",t.__assign({className:"sortable-tree-root",style:{transform:d.CSS.Translate.toString(W),transition:Z}},ne,le,{ref:Q}),r.createElement("div",t.__assign({className:"sortable-tree-wrapper",ref:oe},ne,le,{onKeyDown:function(e){return e.stopPropagation()},onMouseDown:function(e){H&&e.stopPropagation()},onMouseUp:function(e){H&&e.stopPropagation()},role:"button",tabIndex:0,style:P===p.step?{transform:d.CSS.Translate.toString(se),opacity:re?.7:1}:null}),r.createElement("div",{className:"sortable-tree-line"},r.createElement(l.Button,{variant:"link",size:"sm",onMouseDown:ce,onMouseUp:ie},U?r.createElement(o.default,{type:"minus",width:".7rem"}):r.createElement("div",{className:"expand-icon-container"},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))),U&&r.createElement("svg",{className:"sortable-tree-line-icon",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none"},r.createElement("g",null,r.createElement("path",{className:s("sortable-tree-line-icon-path",I&&"sortable-tree-line-product-element"),style:{stroke:I},d:"M 50 0 V 100"})))),r.createElement("div",{className:"sortable-tree-item-wrapper"},r.createElement("div",{className:s("sortable-tree-item",S?"invalid":"")},r.createElement("div",{className:"sortable-tree-item-header"},M&&r.createElement(l.Button,t.__assign({variant:"link",className:"sortable-tree-item-handle"},G,J),r.createElement(o.default,{type:"grip-vertical"})),r.createElement(l.Button,{className:"sortable-tree-item-toggle",variant:"link",onMouseDown:ce,onMouseUp:ie},E&&r.createElement("span",{className:"sortable-tree-item-badge"},E),r.createElement("div",{className:s(j?"sortable-tree-product-set-title-container":"sortable-tree-title-container")},r.createElement("span",{className:s("sortable-tree-item-title",j&&"sortable-tree-product-set-element-title")},v),!U&&r.createElement("span",{className:"sortable-tree-item-subtitle"},f)),r.createElement("div",{className:"border-0 open-edit-right-modal-button",role:"button",tabIndex:0,onClick:function(e){e.stopPropagation(),K(!0)},onKeyDown:function(e){return e.stopPropagation()}},r.createElement(o.default,{type:"ellipsis-h",color:"#0E8CE2",height:"1rem"})))),M?r.createElement(l.Collapse,{in:U},r.createElement("div",null,r.createElement("div",{className:"sortable-tree-item-body"},N))):r.createElement(l.Modal,{size:"lg",show:H,className:s("m-0 edit-product-set-element-modal edit-right-form-modal h-100",P),dialogClassName:"edit-event-dialog edit-step-dialog",onHide:de},r.createElement("div",{className:"edit-step-modal-header"},r.createElement("button",{className:"p-0 cancel-add-step-btn border-0",type:"button",onClick:de},r.createElement("span",null,V("Design:cancel"))),L&&r.createElement("div",{className:"secondary-badge ".concat(null==L?void 0:L.className)},null==L?void 0:L.label)),r.createElement(l.Modal.Body,{as:"form",noValidate:!0},r.createElement("div",{className:"top-label-container"},r.createElement("span",null,j)),N,r.createElement("div",{className:"d-flex product-set-element-control-btns justify-content-between"},r.createElement(l.Button,{className:"step-save-btn mt-4",type:"button",onClick:de},V("saveAndAdd")),r.createElement("div",{className:"d-flex justify-content-end mt-4 delete-btn"},Boolean(Y)&&r.createElement(m.ConfirmModal,null,(function(e){return r.createElement(u.DeleteFieldButton,{onDelete:function(){return e(Y)}})}))))))),C&&r.createElement("div",{className:"sortable-tree-subitems"},h,r.createElement(i.DndContext,null,r.createElement(c.SortableContext,{items:C,strategy:c.verticalListSortingStrategy},r.createElement(l.Collapse,{in:U},r.createElement("div",{className:"ml-0"},y)))),w))))};
|
package/package.json
CHANGED
|
@@ -28,7 +28,6 @@ import { ProductSetFormValues, WithIsLoading } from "./ProductSetForm";
|
|
|
28
28
|
import { SelectCategoryModal } from "./SelectCategoryModal";
|
|
29
29
|
import { ProductSetLoadingContext } from "./context";
|
|
30
30
|
import { VenueMapSetModal } from "./VenueMapSetModal";
|
|
31
|
-
import { moveArrayElements, sortArrayByIndex } from "../utils";
|
|
32
31
|
// @TODO not for first release
|
|
33
32
|
// import Popover from "./ProductSetFormPopover";
|
|
34
33
|
|
|
@@ -41,7 +40,7 @@ const getCategoryDefaultValue = (
|
|
|
41
40
|
sort: number
|
|
42
41
|
): ProductCategory => ({
|
|
43
42
|
id: null,
|
|
44
|
-
uniqueId: uniqueId(
|
|
43
|
+
uniqueId: Number(uniqueId()),
|
|
45
44
|
name: "",
|
|
46
45
|
minSubItems: null,
|
|
47
46
|
maxSubItems: null,
|
|
@@ -67,11 +66,7 @@ export function ProductCategoriesControl({
|
|
|
67
66
|
stepIndex,
|
|
68
67
|
}: ProductCategoriesControlProps) {
|
|
69
68
|
const { t } = useTranslation("Design");
|
|
70
|
-
const {
|
|
71
|
-
providerHasMap,
|
|
72
|
-
expandedProductCategories,
|
|
73
|
-
setExpandedProductCategories,
|
|
74
|
-
} = useContext(ProductSetLoadingContext);
|
|
69
|
+
const { providerHasMap } = useContext(ProductSetLoadingContext);
|
|
75
70
|
const form = useFormContext<ProductSetFormValues>();
|
|
76
71
|
const [isSelectCategoryVisible, setIsSelectCategoryVisible] = useState(false);
|
|
77
72
|
const [isVenueMapSetModalVisible, setIsVenueMapSetModalVisible] =
|
|
@@ -83,8 +78,6 @@ export function ProductCategoriesControl({
|
|
|
83
78
|
clearErrors,
|
|
84
79
|
watch,
|
|
85
80
|
trigger,
|
|
86
|
-
getValues,
|
|
87
|
-
setValue,
|
|
88
81
|
} = form;
|
|
89
82
|
|
|
90
83
|
const hasMap: boolean = watch(`steps.${stepIndex}.hasMap` as const) || false;
|
|
@@ -101,6 +94,8 @@ export function ProductCategoriesControl({
|
|
|
101
94
|
Record<number, { price: number; quantity: number }>
|
|
102
95
|
>([]);
|
|
103
96
|
|
|
97
|
+
const isFirstCategoryAdded = fields.length === 1;
|
|
98
|
+
|
|
104
99
|
const productCategories: ProductCategory[] = useWatch({
|
|
105
100
|
control,
|
|
106
101
|
name: productCategoriesFieldName,
|
|
@@ -122,39 +117,17 @@ export function ProductCategoriesControl({
|
|
|
122
117
|
},
|
|
123
118
|
});
|
|
124
119
|
|
|
125
|
-
const handleDragEnd = (
|
|
120
|
+
const handleDragEnd = (_event) => {
|
|
126
121
|
// @TODO uncomment when will be fix for change sort index
|
|
127
|
-
const { active, over } =
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const productCategories = getValues(productCategoriesFieldName);
|
|
137
|
-
|
|
138
|
-
if (!productCategories) return;
|
|
139
|
-
|
|
140
|
-
const nextProductCategories = sortArrayByIndex<ProductCategory>(
|
|
141
|
-
moveArrayElements<ProductCategory>(
|
|
142
|
-
productCategories,
|
|
143
|
-
prevIndex,
|
|
144
|
-
nextIndex
|
|
145
|
-
)
|
|
146
|
-
);
|
|
147
|
-
|
|
148
|
-
setValue(productCategoriesFieldName, nextProductCategories);
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
const setIsExpanded = (productCategoryId: string) => {
|
|
152
|
-
setExpandedProductCategories((prevValues: Record<string, any>) => {
|
|
153
|
-
return {
|
|
154
|
-
...prevValues,
|
|
155
|
-
[productCategoryId]: !prevValues[productCategoryId],
|
|
156
|
-
};
|
|
157
|
-
});
|
|
122
|
+
// const { active, over } = _event;
|
|
123
|
+
// if (!active || !over || !active?.id || !over?.id) return;
|
|
124
|
+
// const prevIndex = fields.findIndex((field) => field._id === active.id);
|
|
125
|
+
// const nextIndex = fields.findIndex((field) => field._id === over.id);
|
|
126
|
+
// if (prevIndex === nextIndex) return;
|
|
127
|
+
// move(prevIndex, nextIndex);
|
|
128
|
+
// fields.forEach((_, index) => {
|
|
129
|
+
// setValue(`${productCategoriesFieldName}.${index}.sort` as const, index);
|
|
130
|
+
// });
|
|
158
131
|
};
|
|
159
132
|
|
|
160
133
|
useEffect(() => {
|
|
@@ -169,9 +142,7 @@ export function ProductCategoriesControl({
|
|
|
169
142
|
}, 0);
|
|
170
143
|
|
|
171
144
|
setProductCategoryState({
|
|
172
|
-
|
|
173
|
-
// but existing have already assigned Id.
|
|
174
|
-
[productCategory?.id || productCategory.uniqueId]: {
|
|
145
|
+
[productCategory.uniqueId]: {
|
|
175
146
|
price,
|
|
176
147
|
quantity,
|
|
177
148
|
},
|
|
@@ -179,16 +150,6 @@ export function ProductCategoriesControl({
|
|
|
179
150
|
});
|
|
180
151
|
}, [productCategories]);
|
|
181
152
|
|
|
182
|
-
useEffect(() => {
|
|
183
|
-
if (fields.length !== 1) return;
|
|
184
|
-
|
|
185
|
-
setExpandedProductCategories((prevValues) => ({
|
|
186
|
-
...prevValues,
|
|
187
|
-
[String(fields[0]?.id || fields[0]?.uniqueId)]: true,
|
|
188
|
-
}));
|
|
189
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
190
|
-
}, [fields]);
|
|
191
|
-
|
|
192
153
|
return (
|
|
193
154
|
<>
|
|
194
155
|
<SortableTree
|
|
@@ -197,14 +158,6 @@ export function ProductCategoriesControl({
|
|
|
197
158
|
onDragEnd={handleDragEnd}
|
|
198
159
|
>
|
|
199
160
|
{fields.map((productCategory, index) => {
|
|
200
|
-
const productCategoryId = productCategory?.id
|
|
201
|
-
? String(productCategory.id)
|
|
202
|
-
: productCategory.uniqueId;
|
|
203
|
-
|
|
204
|
-
const onSetIsExpanded = () => {
|
|
205
|
-
setIsExpanded(productCategoryId);
|
|
206
|
-
};
|
|
207
|
-
|
|
208
161
|
return (
|
|
209
162
|
<Controller
|
|
210
163
|
key={`product-category-${productCategory._id}`}
|
|
@@ -219,8 +172,7 @@ export function ProductCategoriesControl({
|
|
|
219
172
|
<SortableTree.Item
|
|
220
173
|
id={productCategory._id}
|
|
221
174
|
title={value}
|
|
222
|
-
isExpanded={
|
|
223
|
-
setIsExpanded={onSetIsExpanded}
|
|
175
|
+
isExpanded={isFirstCategoryAdded}
|
|
224
176
|
isInvalid={!!productCategoriesErrors}
|
|
225
177
|
badge={
|
|
226
178
|
<Badge className="category-badge">
|
|
@@ -232,9 +184,8 @@ export function ProductCategoriesControl({
|
|
|
232
184
|
<div className="product-set-badges-container">
|
|
233
185
|
<div className="product-set-subtitle-dot product-set-subtitle-category-dot" />
|
|
234
186
|
<span>
|
|
235
|
-
{productCategoryState[
|
|
236
|
-
|
|
237
|
-
]?.quantity ?? "N/A"}{" "}
|
|
187
|
+
{productCategoryState[productCategory.uniqueId]
|
|
188
|
+
?.quantity ?? "N/A"}{" "}
|
|
238
189
|
{t("products")}
|
|
239
190
|
</span>
|
|
240
191
|
</div>
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React, {
|
|
2
2
|
PropsWithChildren,
|
|
3
|
-
SetStateAction,
|
|
4
3
|
createContext,
|
|
5
4
|
useEffect,
|
|
6
5
|
useState,
|
|
7
|
-
Dispatch,
|
|
8
6
|
} from "react";
|
|
9
7
|
import { VenueMapSet } from "@licklist/core/dist/DataMapper/Product/VenueMapSetDataMapper";
|
|
10
8
|
// eslint-disable-next-line max-len
|
|
@@ -20,10 +18,6 @@ interface LoadingContext {
|
|
|
20
18
|
venueMapSets?: VenueMapSet[];
|
|
21
19
|
providerHasBookingManagement?: ProviderBookingManagementSetting["hasBookingManagement"];
|
|
22
20
|
zones?: Zone[] | null;
|
|
23
|
-
expandedProductCategories: Record<string, boolean>;
|
|
24
|
-
setExpandedProductCategories: Dispatch<
|
|
25
|
-
SetStateAction<Record<string, boolean>>
|
|
26
|
-
>;
|
|
27
21
|
}
|
|
28
22
|
|
|
29
23
|
export const ProductSetLoadingContext = createContext<LoadingContext | null>(
|
|
@@ -31,13 +25,7 @@ export const ProductSetLoadingContext = createContext<LoadingContext | null>(
|
|
|
31
25
|
);
|
|
32
26
|
|
|
33
27
|
type ProductSetContextProviderProps = PropsWithChildren<
|
|
34
|
-
Omit<
|
|
35
|
-
LoadingContext,
|
|
36
|
-
| "isLoading"
|
|
37
|
-
| "setLoading"
|
|
38
|
-
| "expandedProductCategories"
|
|
39
|
-
| "setExpandedProductCategories"
|
|
40
|
-
>
|
|
28
|
+
Omit<LoadingContext, "isLoading" | "setLoading">
|
|
41
29
|
>;
|
|
42
30
|
|
|
43
31
|
export function ProductSetContextProvider({
|
|
@@ -50,9 +38,6 @@ export function ProductSetContextProvider({
|
|
|
50
38
|
}: ProductSetContextProviderProps) {
|
|
51
39
|
const [zonesState, setZonesState] = useState<Zone[] | undefined>(undefined);
|
|
52
40
|
const [loading, setLoading] = useState(false);
|
|
53
|
-
const [expandedProductCategories, setExpandedProductCategories] = useState<
|
|
54
|
-
Record<string, boolean>
|
|
55
|
-
>({});
|
|
56
41
|
|
|
57
42
|
useEffect(() => setZonesState(zones), [zones]);
|
|
58
43
|
|
|
@@ -66,8 +51,6 @@ export function ProductSetContextProvider({
|
|
|
66
51
|
venueMapSets,
|
|
67
52
|
providerHasBookingManagement,
|
|
68
53
|
zones: zonesState,
|
|
69
|
-
expandedProductCategories,
|
|
70
|
-
setExpandedProductCategories,
|
|
71
54
|
}}
|
|
72
55
|
>
|
|
73
56
|
{children}
|
|
@@ -22,7 +22,7 @@ import { ProductSetLoadingContext } from "../form/context";
|
|
|
22
22
|
|
|
23
23
|
export interface ProductCategoryControlValues extends FormValues {
|
|
24
24
|
id: number;
|
|
25
|
-
uniqueId?:
|
|
25
|
+
uniqueId?: number;
|
|
26
26
|
name: string;
|
|
27
27
|
minSubItems: number | null;
|
|
28
28
|
maxSubItems: number | null;
|
|
@@ -17,24 +17,30 @@ export function CategoriesInputDescription({
|
|
|
17
17
|
});
|
|
18
18
|
return (
|
|
19
19
|
<div>
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
{values &&
|
|
21
|
+
groups?.map((group) => {
|
|
22
|
+
const selectedCategories = group?.categories?.filter((category) =>
|
|
23
|
+
values?.includes(`${category.id}`)
|
|
24
|
+
);
|
|
25
|
+
if (selectedCategories?.length) return <></>;
|
|
26
|
+
return (
|
|
27
|
+
<Row key={group?.id} noGutters className="mx-n1 align-items-center">
|
|
28
|
+
<Col xs="auto" className="m-1">
|
|
29
|
+
{group?.name}:
|
|
30
|
+
</Col>
|
|
31
|
+
{selectedCategories?.map((category) => (
|
|
32
|
+
<Badge
|
|
33
|
+
pill
|
|
34
|
+
variant="secondary"
|
|
35
|
+
key={category?.id}
|
|
36
|
+
className="m-1"
|
|
37
|
+
>
|
|
38
|
+
{category?.name}
|
|
39
|
+
</Badge>
|
|
40
|
+
))}
|
|
41
|
+
</Row>
|
|
42
|
+
);
|
|
43
|
+
})}
|
|
38
44
|
</div>
|
|
39
45
|
);
|
|
40
46
|
}
|
|
@@ -40,7 +40,7 @@ export const formatToDays = (daysInWeek?: number[]): string | null => {
|
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
export const formatToHours = (startAt: string, endAt: string) => {
|
|
43
|
-
const firstTime = DateTime.fromISO(startAt).toFormat(TIME_FORMAT);
|
|
44
|
-
const lastTime = DateTime.fromISO(endAt).toFormat(TIME_FORMAT);
|
|
43
|
+
const firstTime = DateTime.fromISO(startAt).toUTC().toFormat(TIME_FORMAT);
|
|
44
|
+
const lastTime = DateTime.fromISO(endAt).toUTC().toFormat(TIME_FORMAT);
|
|
45
45
|
return `${firstTime} - ${lastTime}`;
|
|
46
46
|
};
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from "@licklist/core/dist/Config";
|
|
9
9
|
import { useIntl } from "react-intl";
|
|
10
10
|
import * as Config from "@licklist/core/dist/Config";
|
|
11
|
+
import { TIMEZONE } from "@licklist/core/dist/Config/Date";
|
|
11
12
|
import { BlockLoader } from "../../../static/loader";
|
|
12
13
|
|
|
13
14
|
export interface ManualBookingSummaryProps {
|
|
@@ -30,7 +31,7 @@ export const ManualBookingSummary = ({
|
|
|
30
31
|
const { t } = useTranslation(["Design", "Sale"]);
|
|
31
32
|
const { formatNumber } = useIntl();
|
|
32
33
|
|
|
33
|
-
const currentDate = DateTime.fromISO(orderDate);
|
|
34
|
+
const currentDate = DateTime.fromISO(orderDate, { zone: TIMEZONE });
|
|
34
35
|
const date = currentDate.toFormat(DATE_TIME_MANUAL_BOOKING_FORMAT);
|
|
35
36
|
const time = currentDate.toFormat(TIME_FORMAT);
|
|
36
37
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { ReactNode, useCallback,
|
|
1
|
+
import React, { ReactNode, useCallback, useState } from "react";
|
|
2
2
|
import { DndContext, useDraggable } from "@dnd-kit/core";
|
|
3
3
|
import {
|
|
4
4
|
SortableContext,
|
|
@@ -48,7 +48,6 @@ export interface SortableTreeItemProps {
|
|
|
48
48
|
label: string;
|
|
49
49
|
className: string;
|
|
50
50
|
};
|
|
51
|
-
setIsExpanded?: () => void;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
export function SortableTreeItem({
|
|
@@ -71,7 +70,6 @@ export function SortableTreeItem({
|
|
|
71
70
|
onDelete,
|
|
72
71
|
validate,
|
|
73
72
|
secondaryBadge,
|
|
74
|
-
setIsExpanded,
|
|
75
73
|
}: SortableTreeItemProps) {
|
|
76
74
|
const [expanded, setExpanded] = useState(isExpanded);
|
|
77
75
|
const [isModalVisible, setIsModalVisible] = useState(isNewAdded);
|
|
@@ -104,14 +102,9 @@ export function SortableTreeItem({
|
|
|
104
102
|
return;
|
|
105
103
|
}
|
|
106
104
|
|
|
107
|
-
if (setIsExpanded) {
|
|
108
|
-
setIsExpanded();
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
105
|
setExpanded((expanded) => !expanded);
|
|
113
106
|
},
|
|
114
|
-
[position
|
|
107
|
+
[position]
|
|
115
108
|
);
|
|
116
109
|
|
|
117
110
|
const onButtonMouseDown = useCallback((event) => {
|
|
@@ -125,10 +118,6 @@ export function SortableTreeItem({
|
|
|
125
118
|
if (success) setIsModalVisible(false);
|
|
126
119
|
};
|
|
127
120
|
|
|
128
|
-
useEffect(() => {
|
|
129
|
-
setExpanded(isExpanded);
|
|
130
|
-
}, [isExpanded]);
|
|
131
|
-
|
|
132
121
|
return (
|
|
133
122
|
<div
|
|
134
123
|
className="sortable-tree-root"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/product-set/utils/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,6BAEjB,MAAM,aACN,MAAM,QAQlB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;IAE5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib");exports.moveArrayElements=function(e,s,t){var n=r.__spreadArray([],r.__read(e),!1);return n.splice(t,0,n.splice(s,1)[0]),n},exports.sortArrayByIndex=function(e){return e.map((function(e,s){return r.__assign(r.__assign({},e),{sort:s})}))};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export const moveArrayElements = <T>(
|
|
2
|
-
array: T[],
|
|
3
|
-
prevIndex: number,
|
|
4
|
-
nextIndex: number
|
|
5
|
-
) => {
|
|
6
|
-
const nextArray = [...array];
|
|
7
|
-
// We move there elements in array
|
|
8
|
-
// by set and change indexes
|
|
9
|
-
nextArray.splice(nextIndex, 0, nextArray.splice(prevIndex, 1)[0]);
|
|
10
|
-
|
|
11
|
-
return nextArray;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export const sortArrayByIndex = <T>(array: T[]) => {
|
|
15
|
-
return array.map((element: T, index) => ({ ...element, sort: index }));
|
|
16
|
-
};
|