PluginProbe
Booktics – Appointment Booking Calendar for Service Businesses / 1.0.14
Booktics – Appointment Booking Calendar for Service Businesses v1.0.14
1.0.29 1.0.28 1.0.27 1.0.26 1.0.25 1.0.24 1.0.23 1.0.22 1.0.21 1.0.20 1.0.19 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.2 1.0.3 All 31 releases
booktics / assets / build / chunks / js / 2159.js

2159.js in Booktics – Appointment Booking Calendar for Service Businesses 1.0.14, at assets/build/chunks/js/2159.js

69 lines 13.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";(globalThis.webpackChunkbooktics=globalThis.webpackChunkbooktics||[]).push([[2159],{2159:(e,t,r)=>{r.r(t),r.d(t,{default:()=>p});var i=r(51609),a=r(47143),c=r(86087),o=r(47767),s=r(22564),l=r(93524),n=r(46714),d=r(40309),g=r(93521),u=r(73896),m=r(3038);const{__}=wp?.i18n||{},p=()=>{const{isMobile:e}=(0,l.U)(),t=(0,o.Zp)(),{createService:r}=(0,m.A)(),[n]=s.Form.useForm(),{setCategoryState:p}=(0,a.useDispatch)(d.category),{isFiltering:v}=(0,a.useSelect)(e=>e(d.services).getServicesState(),[]);return(0,c.useEffect)(()=>{p({categoryIds:[]})},[]),(0,i.createElement)(s.ResponsiveContainer,null,(0,i.createElement)(s.Flex,{justify:"center"},(0,i.createElement)(s.AdvancedCard,{width:e?"360px":"758px",title:(0,i.createElement)(y,null)},(0,i.createElement)(s.Form,{layout:"vertical",form:n,onFinish:r},(0,i.createElement)(s.Row,{gutter:[20]},(0,i.createElement)(u.A,null),(0,i.createElement)(s.Col,{xs:24,md:12},(0,i.createElement)(s.ImgUpload,{label:__("Service Image","booktics"),name:"image",handleChange:e=>n.setFieldsValue({image:e})}))),(0,i.createElement)(s.Flex,{gap:8,justify:"flex-end"},(0,i.createElement)(s.SecondaryOutlineButton,{text:__("Back","booktics"),onClick:()=>t("/services")}),(0,i.createElement)(s.PrimaryButton,{htmlType:"submit",text:__("Save & Next","booktics"),loading:v}))))),(0,i.createElement)(g.A,{form:n}))},y=()=>(0,i.createElement)(s.Flex,{gap:16,align:"center"},(0,i.createElement)(n.CreateServiceTitleIcon,null),(0,i.createElement)("div",null,(0,i.createElement)(s.Title,{level:4,text:__("Create your new Service","booktics"),color:"#36364D"}),(0,i.createElement)(s.Description,{text:__("Customize every service detail to match your business needs.","booktics"),color:"#525266"})))},3038:(e,t,r)=>{r.d(t,{A:()=>n});var i=r(47143),a=r(47767),c=r(40309),o=r(11534),s=r(56580),l=r(88802);const n=function(){const e=(0,i.useSelect)(e=>e(c.services).getServicesState(),[]),{selectedServices:t}=(0,i.useSelect)(e=>e(c.team).getTeamState(),[]),{setServicesState:r}=(0,i.useDispatch)(c.services),{setTeamState:n}=(0,i.useDispatch)(c.team),d=(0,s.useAdminLicense)(),{searchQuery:g,serviceList:u=[],total:m,singleService:p,selectedTeamMembers:y,selectedExtraServices:v=[],schedule:b,selectedLocations:S}=e,f=(0,a.Zp)(),{id:h}=(0,a.g)(),E=async(e={})=>{e?.resetFilter&&(e={search:"",category_id:"",team_member_id:"",paged:"",per_page:""});const t={...g,...e};r({isFiltering:!0});try{const e=await(o.A?.service?.allServices(t));e?.success&&r({serviceList:e?.data?.items,total:e?.data?.total,searchQuery:t})}catch(e){console.error("Error fetching services:",e)}finally{return r({isFiltering:!1}),{complete:!0}}};return{createService:async(e,i=!0)=>{try{r({isFiltering:!0});const a=await(o.A?.service?.createService(e));a?.success&&(r({serviceList:[a?.data,...u||[]],total:m+1}),i?f(`/services/update/${a?.data.id}`):(r({visibleCreateServiceModal:!1}),n({selectedServices:[a.data.id,...t]})))}catch(e){console.error("Error creating service:",e)}finally{r({isFiltering:!1})}},updateService:async(e,t="deactive",i=!1)=>{if(i||r({loadingServiceId:!0}),e?.custom_field){let t=Array.isArray(e?.custom_field?.fields)?e?.custom_field?.fields?.map(e=>"global"===e?.from?e:{...e,from:"service"}):void 0;e.custom_field={...e?.custom_field,fields:t}}try{const i={...p,...e,status:t,extra_services:v,team_member:y,schedule:e.enable_custom_schedule?b:{},show_end_time:Number(e.show_end_time)||!1};delete i.extra_service_details,d||(delete i.extra_services,delete i.custom_field);const a=await o.A.service.updateService(h,i);if(a?.success){const e=u?.map(e=>e?.id===a?.data?.id?a?.data:e);r({serviceList:e}),r({loadingServiceId:!1})}return a}catch(e){console.error("Error updating service:",e)}finally{r({loadingServiceId:!1})}},updateStatus:async({id:e,...t})=>{try{delete t.extra_service_details;const r=await(o.A?.service?.updateService(e,t));if(r?.success){const e=(0,i.select)(c.services).getServicesState("serviceList"),t=e?.map(e=>e.id===r.data.id?r.data:e);(0,i.dispatch)(c.services).setServicesState({serviceList:t})}return r}catch(e){console.error("Error updating status:",e)}finally{(0,i.dispatch)(c.services).setServicesState({loadingServiceId:null})}},getServices:E,deleteSingleService:async e=>{try{const t=await(o.A?.service?.deleteSingleService(e));if(t?.success){const{serviceList:t,total:r}=(0,i.select)(c.services).getServicesState();(0,i.dispatch)(c.services).setServicesState({serviceList:t?.filter(t=>t.id!==e),total:r-1})}return t}catch(e){console.error("Error deleting service:",e)}},bulkDeleteService:async(e=[])=>{try{const t=await(o.A?.service?.bulkDeleteService({ids:e}));if(t?.success&&(r({serviceList:u.filter(t=>!e.includes(t.id))}),e.length<m)){const{paged:e="",per_page:t=""}=g;E({paged:e,per_page:t})}}catch(e){console.error("Error bulk deleting services:",e)}finally{return{complete:!0}}},duplicateService:async e=>{try{r({isFiltering:!0});const t=await(o.A?.service?.cloneService(e));if(t?.success){const i=u.findIndex(t=>t.id===e);if(-1===i)throw new Error("Service not found for duplication.");const a=[...u.slice(0,i+1),t.data,...u.slice(i+1)];r({serviceList:a,total:m+1})}}catch(e){console.error("Error duplicating service:",e)}finally{r({isFiltering:!1})}},getSingleService:async()=>{try{const e=await o.A.service.singleService(h);e.success&&r({singleService:{...e?.data,custom_field:{...e?.data?.custom_field,fields:e?.data?.custom_field?.fields?.length?e?.data?.custom_field?.fields:l.defaultFields}}})}catch(e){console.log(e)}},onPaginationChange:(e,t)=>{E({paged:e,per_page:t})}}}},13529:(e,t,r)=>{r.d(t,{A:()=>s});var i=r(51609),a=r(47143),c=r(22564),o=r(40309);const{__}=wp?.i18n||{},s=({isEditMode:e,initialValues:t})=>{const{categoryList:r=[]}=(0,a.useSelect)(e=>e(o.category).getCategoryState(),[]),s=e?r.filter(e=>e.name!==t?.name):r;return(0,i.createElement)(i.Fragment,null,(0,i.createElement)(c.Col,{xs:24,md:12},(0,i.createElement)(c.TextInput,{name:"name",label:__("Category Title","booktics")})),(0,i.createElement)(c.Col,{xs:24,md:12},(0,i.createElement)(c.FormItem,{name:"parent",label:__("Parent Category","booktics"),tooltip:__("Organize services in order by linking sub categories to a main category.","booktics")},(0,i.createElement)(c.SelectInput,{options:Array.isArray(s)?s?.map(e=>({label:e.name,value:e.id})):[]}))),(0,i.createElement)(c.Col,{xs:24},(0,i.createElement)(c.FormItem,{name:"description",label:__("Short Description","booktics")},(0,i.createElement)(c.TextArea,null))))}},73896:(e,t,r)=>{r.d(t,{A:()=>v});var i=r(51609),a=r(47143),c=r(86087),o=r(22564),s=r(40309),l=r(90803),n=r(5001),d=r(46714),g=r(79836);const{__}=wp?.i18n||{},{EditOutlined:u}=window?.booktics?.libraryIcons||{},m=()=>{const[e,t]=(0,c.useState)(!1),{copy:r,copied:l}=(0,n.A)(),{singleService:m}=(0,a.useSelect)(e=>e(s.services).getServicesState(),[]);return(0,c.useEffect)(()=>{l&&window.wp?.hooks.doAction("notification",{type:"success",message:"Linked copied"})},[l]),(0,i.createElement)(o.Col,{xs:24},(0,i.createElement)(g.i5,{align:"center",justify:"space-between",gap:"5px"},(0,i.createElement)(g.Wb,{name:"link",disabled:!e,addonAfter:(0,i.createElement)(o.Button,{icon:(0,i.createElement)(u,null),type:"link",text:__("Edit link","booktics"),onClick:()=>t(!0)})}),(0,i.createElement)(o.Button,{icon:(0,i.createElement)(d.ServiceCopyLinkIcon,null),size:"large",onClick:()=>{r(m.link)}})))},{__:p}=wp?.i18n||{},{PlusOutlined:y}=window?.booktics?.libraryIcons||{},v=({isEdit:e=!1})=>{const{getCategories:t}=(0,l.A)(),{setCategoryState:r}=(0,a.useDispatch)(s.category),{categoryList:n,categoryIds:d}=(0,a.useSelect)(e=>e(s.category).getCategoryState(),[]);if((0,c.useEffect)(()=>{n||t({resetFilter:!0})},[]),!n)return(0,i.createElement)(o.RowSkeleton,null);const u=()=>{r({visibleModal:!0})};return(0,i.createElement)(i.Fragment,null,(0,i.createElement)(o.Col,{xs:24},(0,i.createElement)(o.TextInput,{label:p("Service Title","booktics"),name:"title",placeholder:p("Enter Service Title","booktics"),required:!0})),e&&(0,i.createElement)(m,null),(0,i.createElement)(o.Col,{xs:24},(0,i.createElement)(o.FormItem,{label:p("Short Descriptions","booktics"),name:"description"},(0,i.createElement)(o.TextArea,{placeholder:p("Enter Short Descriptions","booktics")}))),(0,i.createElement)(o.Col,{xs:24},(0,i.createElement)(o.FormItem,{name:"categories",label:p("Category","booktics")},(0,i.createElement)(o.SelectInput,{placeholder:p("Select category","booktics"),mode:"multiple",maxTagCount:"responsive",value:d,onChange:e=>r({categoryIds:e}),optionFilterProp:"label",popupRender:e=>(0,i.createElement)(i.Fragment,null,e,(0,i.createElement)(g.Es,{block:!0,size:"medium",type:"text",text:p("Add New Category","booktics"),icon:(0,i.createElement)(y,null),onClick:u})),options:Array.isArray(n)?n.map(e=>({label:e.name,value:e.id})):[]}))))}},79836:(e,t,r)=>{r.d(t,{Ch:()=>f,Es:()=>y,Kz:()=>h,QB:()=>g,Wb:()=>l,Xd:()=>v,Yz:()=>n,ee:()=>d,ff:()=>S,i5:()=>s,pj:()=>m,rG:()=>p,sI:()=>u});var i=r(59e3),a=r(22564),c=r(2812);const{Dropdown:o}=window?.booktics?.library||{},s=(0,i.A)(a.Flex)`
2 margin-bottom: 10px;
3 `,l=(0,i.A)(a.TextInput)`
4 &.ant-form-item {
5 width: 100%;
6 margin-bottom: 0px;
7 }
8 .ant-input-group-addon {
9 padding-inline: 0px;
10 }
11 `,n=(0,i.A)(a.Flex)`
12 margin-bottom: 16px;
13 `,d=(0,i.A)(a.Card)`
14 border-color: #cdd0d6;
15 border-radius: 4px;
16 `,g=i.A.div`
17 cursor: pointer;
18 `,u=(0,i.A)(c.Q)`
19 .ant-input-number-group-addon {
20 padding: 0;
21 width: 80px;
22 background-color: white;
23 .ant-form-item {
24 margin-bottom: 0;
25 }
26 }
27 `,m=((0,i.A)(a.Flex)`
28 margin-bottom: 10px;
29 `,i.A.div`
30 background-color: white;
31 border-radius: 4px;
32 `),p=(0,i.A)(a.TextInput)`
33 width: 100%;
34 margin-bottom: 0px;
35 `,y=(0,i.A)(a.PrimaryOutlinedButton)`
36 width: 100%;
37 margin-bottom: 0px;
38 border: none;
39 justify-content: flex-start;
40 background-color: #fafffd;
41 margin-top: 10px;
42 `,v=((0,i.A)(o)`
43 height: 46px;
44 background-color: blue;
45 `,(0,i.A)(a.Flex)`
46 .bkt-publish-btn-dropdown {
47 button {
48 height: 46px;
49 padding: 12px 15px;
50 :where(
51 .css-dev-only-do-not-override-mc1tut
52 ).ant-btn-variant-outlined:not(:disabled):not(
53 .ant-btn-disabled
54 ):hover {
55 border-color: ${({theme:e})=>e.colors.primary};
56 color: ${({theme:e})=>e.colors.primary};
57 }
58 }
59 }
60 `),b={pointerEvents:"none",opacity:"0.5",cursor:"not-allowed"},S=i.A.div`
61 ${e=>e.disabled&&b};
62 `,f=(0,i.A)(a.SwitchInput)`
63 margin-bottom: 0px;
64 margin-top: 10px;
65 `,h=(0,i.A)(a.Card)`
66 .ant-card-body {
67 padding: 16px 20px;
68 }
69 `},90803:(e,t,r)=>{r.d(t,{A:()=>s});var i=r(47143),a=r(47767),c=r(11534),o=r(40309);const s=()=>{const{setCategoryState:e}=(0,i.useDispatch)(o?.category),{id:t}=(0,a.g)(),r=(0,a.Zp)(),{categoryList:s=[],categoryIds:l,total:n,selectedServices:d,searchQuery:g}=(0,i.useSelect)(o?.category).getCategoryState();return{getCategories:async(t={})=>{t?.resetFilter&&(t={search:"",paged:"",per_page:""});const r={...g,...t};try{const t=await c.A.category.allCategories(r);t.success&&e({categoryList:t?.data?.items,total:t?.data?.total,searchQuery:r})}catch(e){console.error("Error fetching services:",e)}finally{return e({isFiltering:!1}),{complete:!0}}},addCategory:async(t,i=!0)=>{const a={...t,services:d};try{e({editLoading:!0});const t=await c.A.category.createCategory(a);t.success&&e({categoryList:[t?.data,...s],total:n+1,visibleModal:!1,categoryIds:[...l,t.data.id]}),e({editLoading:!1,visibleModal:!1}),i&&r("/services/category")}catch(t){console.log(t),e({editLoading:!1,visibleModal:!1})}finally{e({editLoading:!1,visibleModal:!1})}},getSingleCategory:async()=>{try{const r=await c.A.category.singleCategory(t);r.success&&e({singleCategory:{...r?.data}})}catch(e){console.log(e)}},editCategory:async i=>{const a={...i,services:d,category_id:t};try{e({editLoading:!0});const i=await c.A.category.updateCategory(t,a);if(i.success){const t=s?.map(e=>e?.id===i?.data?.id?i?.data:e);e({categoryList:t}),r("/services/category")}e({editLoading:!1})}catch(t){console.log(t),e({editLoading:!1})}finally{e({editLoading:!1})}},categoryBulkDelete:async(t=[])=>{try{if((await c.A.category.bulkDeleteCategory({ids:t})).success){const r=s.filter(e=>!t.includes(e.id));e({categoryList:r})}}catch(e){console.log(e)}},duplicateCategory:async t=>{try{e({isFiltering:!0});const r=await(c.A?.category?.cloneCategory(t));if(r?.success){const i=[...s],a=i.findIndex(e=>e.id===t);-1!==a?i.splice(a+1,0,r.data):i.push(r.data),e({categoryList:i,total:i.length})}}catch(e){console.error("Error duplicating category:",e)}finally{e({isFiltering:!1})}},deleteCategory:async t=>{try{if((await c.A.category.deleteSingleCategory(t)).success){const r=s.filter(e=>e.id!==t);e({categoryList:r,total:n-1})}}catch(e){console.log(e)}}}}},93521:(e,t,r)=>{r.d(t,{A:()=>u});var i=r(51609),a=r(47143),c=r(86087),o=r(60742),s=r(22564),l=r(93524),n=r(40309),d=r(13529),g=r(90803);const{__}=wp?.i18n||{},u=React.memo(e=>{const{isMobile:t}=(0,l.U)(),{addCategory:r}=(0,g.A)(),{visibleModal:u,editLoading:m,categoryIds:p}=(0,a.useSelect)(e=>e(n.category).getCategoryState(),[]),{setCategoryState:y}=(0,a.useDispatch)(n.category),[v]=o.A.useForm(),b=()=>{y({visibleModal:!1}),v.resetFields()};return(0,c.useEffect)(()=>{e.form.setFieldValue("categories",p)},[p]),(0,i.createElement)(s.Modal,{open:u,title:__("Create New Category","booktics"),width:t?350:684,onClose:b,onCancel:b,footer:(0,i.createElement)(s.Flex,{gap:8,justify:"flex-end"},(0,i.createElement)(s.SecondaryButton,{text:__("Close","booktics"),onClick:b}),(0,i.createElement)(s.PrimaryButton,{text:__("Save","booktics"),onClick:()=>v.submit(),loading:m}))},(0,i.createElement)(o.A,{layout:"vertical",form:v,onFinish:e=>{r(e,!1),v.resetFields()}},(0,i.createElement)(d.A,null)))})}}]);