@licklist/design 0.44.486-dev.5 → 0.44.486-dev.50
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/assets/iframe/available.svg.js +1 -0
- package/dist/assets/iframe/limited.svg.js +1 -0
- package/dist/assets/iframe/soldOut.svg.js +1 -0
- package/dist/assets/logo/bookedit.svg +9 -11
- package/dist/assets/logo/bookedit.svg.js +1 -1
- package/dist/assets/logo/favicon.svg +12 -0
- package/dist/assets/logo/licklist.svg +0 -2
- package/dist/assets/logo/licklist.svg.js +1 -1
- package/dist/availability-indicator/AvailabilityIndicator.d.ts +9 -0
- package/dist/availability-indicator/AvailabilityIndicator.d.ts.map +1 -0
- package/dist/availability-indicator/AvailabilityIndicator.js +1 -0
- package/dist/availability-indicator/index.d.ts +2 -0
- package/dist/availability-indicator/index.d.ts.map +1 -0
- package/dist/calendar/Calendar.d.ts +21 -0
- package/dist/calendar/Calendar.d.ts.map +1 -0
- package/dist/calendar/Calendar.js +1 -0
- package/dist/calendar/components/CalendarButtons/CalendarButtons.d.ts +6 -0
- package/dist/calendar/components/CalendarButtons/CalendarButtons.d.ts.map +1 -0
- package/dist/calendar/components/CalendarButtons/CalendarButtons.js +1 -0
- package/dist/calendar/components/CalendarButtons/index.d.ts.map +1 -0
- package/dist/calendar/components/CalendarDates/CalendarDates.d.ts +5 -0
- package/dist/calendar/components/CalendarDates/CalendarDates.d.ts.map +1 -0
- package/dist/calendar/components/CalendarDates/CalendarDates.js +1 -0
- package/dist/calendar/components/CalendarDates/index.d.ts.map +1 -0
- package/dist/calendar/components/CalendarSelect/CalendarSelect.d.ts.map +1 -0
- package/dist/calendar/components/CalendarSelect/CalendarSelect.js +1 -0
- package/dist/calendar/components/CalendarSelect/index.d.ts.map +1 -0
- package/dist/calendar/components/CalendarWeekdays/CalendarWeekdays.d.ts.map +1 -0
- package/dist/calendar/components/CalendarWeekdays/index.d.ts.map +1 -0
- package/dist/calendar/index.d.ts +4 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/utils/index.d.ts +5 -0
- package/dist/calendar/utils/index.d.ts.map +1 -0
- package/dist/calendar/utils/index.js +1 -0
- package/dist/date-time-button/DateTimeButton.d.ts +7 -1
- package/dist/date-time-button/DateTimeButton.d.ts.map +1 -1
- package/dist/date-time-button/DateTimeButton.js +1 -1
- package/dist/events/edit-event-modal/IntervalInput.d.ts.map +1 -1
- package/dist/events/edit-event-modal/IntervalInput.js +1 -1
- package/dist/events/edit-event-modal/utils/getDefaultProductSet.d.ts.map +1 -1
- package/dist/events/edit-event-modal/utils/getDefaultProductSet.js +1 -1
- package/dist/events/event-venue-map/hooks/useImage.d.ts.map +1 -1
- package/dist/events/event-venue-map/hooks/useImage.js +1 -1
- package/dist/file-upload/FileUpload.d.ts.map +1 -1
- package/dist/file-upload/FileUpload.js +1 -1
- package/dist/iframe/activity-card/ActivityCard.d.ts +17 -0
- package/dist/iframe/activity-card/ActivityCard.d.ts.map +1 -0
- package/dist/iframe/activity-card/ActivityCard.js +1 -0
- package/dist/iframe/activity-card/index.d.ts +2 -0
- package/dist/iframe/activity-card/index.d.ts.map +1 -0
- package/dist/iframe/event/index.d.ts +0 -1
- package/dist/iframe/event/index.d.ts.map +1 -1
- package/dist/iframe/index.d.ts +2 -2
- package/dist/iframe/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts +1 -1
- package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/BookingSummary.js +1 -1
- package/dist/iframe/order-process/components/BookingSummary/components/BookingSummaryAccordion/BookingSummaryAccordion.js +1 -1
- package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts +2 -1
- package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/utils/index.js +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.js +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/CategoryProduct.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/CategoryProduct.js +1 -1
- package/dist/iframe/order-process/components/ErrorModal/ErrorModal.d.ts +2 -1
- package/dist/iframe/order-process/components/ErrorModal/ErrorModal.d.ts.map +1 -1
- package/dist/iframe/order-process/components/ErrorModal/ErrorModal.js +1 -1
- package/dist/iframe/order-process/components/Timer/utils/index.d.ts +1 -1
- package/dist/iframe/order-process/components/Timer/utils/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/Timer/utils/index.js +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts +4 -3
- package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts.map +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.js +1 -1
- package/dist/iframe/order-process/constants.d.ts +1 -0
- package/dist/iframe/order-process/constants.d.ts.map +1 -1
- package/dist/iframe/order-process/constants.js +1 -1
- package/dist/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.d.ts.map +1 -1
- package/dist/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.js +1 -1
- package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts.map +1 -1
- package/dist/iframe/payment/order-items-table/hooks/useTableData.js +1 -1
- package/dist/iframe/payment/order-items-table/types/index.d.ts +7 -1
- package/dist/iframe/payment/order-items-table/types/index.d.ts.map +1 -1
- package/dist/iframe/payment/order-items-table/types/index.js +1 -0
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts +3 -0
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts.map +1 -0
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.js +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.js +1 -1
- package/dist/product-set/control/ProductSetControl.d.ts +2 -1
- package/dist/product-set/control/ProductSetControl.d.ts.map +1 -1
- package/dist/product-set/control/ProductSetControl.js +1 -1
- package/dist/product-set/control/ProductSetRecurrenceControl.d.ts.map +1 -1
- package/dist/product-set/control/ProductSetRecurrenceControl.js +1 -1
- 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/ProductsControl.d.ts +3 -1
- package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductsControl.js +1 -1
- package/dist/product-set/product/ProductControl.d.ts +2 -1
- package/dist/product-set/product/ProductControl.d.ts.map +1 -1
- package/dist/product-set/product/ProductControl.js +1 -1
- package/dist/product-set/product/duration/ProductDurationControl.js +1 -1
- package/dist/product-set/product-category/ProductCategoryControl.d.ts +0 -1
- package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
- package/dist/product-set/product-category/ProductCategoryControl.js +1 -1
- package/dist/provider/working-hours-input/WorkingHoursInputDescription.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.d.ts +8 -1
- package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.js +1 -1
- package/dist/recurrence-input/RecurrenceInput.d.ts +2 -1
- package/dist/recurrence-input/RecurrenceInput.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceInput.js +1 -1
- package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.d.ts +4 -1
- package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.d.ts.map +1 -1
- package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.js +1 -1
- package/dist/recurring-date-picker-input/RecurringDatePickerInput.d.ts +1 -0
- package/dist/recurring-date-picker-input/RecurringDatePickerInput.d.ts.map +1 -1
- package/dist/recurring-date-picker-input/RecurringDatePickerInput.js +1 -1
- package/dist/report/form/ReportForm.d.ts.map +1 -1
- package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
- package/dist/sales/booking/results/components/ResultCard.js +1 -1
- package/dist/sales/coupon/control/CouponFormControl.d.ts.map +1 -1
- package/dist/sales/coupon/control/CouponFormControl.js +1 -1
- package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts.map +1 -1
- package/dist/snippet/snippet-template/preview/Preview.d.ts.map +1 -1
- package/dist/snippet/snippet-template/preview/Preview.js +1 -1
- package/dist/static/RestrictedAccess.d.ts.map +1 -1
- package/dist/static/form-number-input/FormNumberInput.d.ts +2 -1
- package/dist/static/form-number-input/FormNumberInput.d.ts.map +1 -1
- package/dist/static/form-number-input/FormNumberInput.js +1 -1
- package/dist/styles/{iframe-customers-journey/ActivitiesCard.scss → activity-card/GridActivitiesCard.scss} +1 -1
- package/dist/styles/{iframe-customers-journey/ActivitiesSelectedCard.scss → activity-card/ListActivitiesCard.scss} +2 -1
- package/dist/styles/activity-card/_index.scss +2 -0
- package/dist/styles/availability-indicator/AvailabilityIndicator.scss +7 -0
- package/dist/styles/availability-indicator/_index.scss +1 -0
- package/dist/styles/{iframe-customers-journey → date-time-button}/DateTimeButton.scss +6 -12
- package/dist/styles/date-time-button/_index.scss +1 -0
- package/dist/styles/form/CustomCheckbox.scss +5 -0
- package/dist/styles/header/Header.scss +0 -4
- package/dist/styles/iframe-events/Card.scss +1 -0
- package/dist/styles/iframe-page/PageBody.scss +3 -2
- package/dist/styles/notification/Notification.scss +4 -0
- package/dist/styles/packages.scss +3 -1
- package/dist/styles/resources-blocking/_index.scss +5 -0
- package/dist/styles/themes/bookedit/_index.scss +1 -0
- package/dist/virtualized/components/VirtualizedWindowScroller.d.ts.map +1 -1
- package/dist/virtualized/components/VirtualizedWindowScroller.js +1 -1
- package/dist/zone/form/components/AvailableTimesControl.d.ts.map +1 -1
- package/dist/zone/form/components/AvailableTimesControl.js +1 -1
- package/dist/zone/form/components/GameDurationControl.d.ts +7 -0
- package/dist/zone/form/components/GameDurationControl.d.ts.map +1 -0
- package/dist/zone/form/components/GameDurationControl.js +1 -0
- package/dist/zone/form/components/ZoneControl.d.ts.map +1 -1
- package/dist/zone/form/components/ZoneControl.js +1 -1
- package/dist/zone/form/components/ZoneRecurrencesControl.d.ts.map +1 -1
- package/dist/zone/form/components/ZoneRecurrencesControl.js +1 -1
- package/dist/zone/form/utils/dates.d.ts.map +1 -1
- package/dist/zone/form/utils/dates.js +1 -1
- package/package.json +3 -3
- package/src/assets/logo/bookedit.svg +9 -11
- package/src/assets/logo/favicon.svg +12 -0
- package/src/assets/logo/licklist.svg +0 -2
- package/src/availability-indicator/AvailabilityIndicator.tsx +59 -0
- package/src/availability-indicator/index.ts +1 -0
- package/src/calendar/Calendar.stories.tsx +33 -0
- package/src/calendar/Calendar.tsx +46 -0
- package/src/{iframe/event/event-calendar → calendar}/components/CalendarButtons/CalendarButtons.tsx +31 -14
- package/src/{iframe/event/event-calendar → calendar}/components/CalendarDates/CalendarDates.tsx +24 -19
- package/src/{iframe/event/event-calendar → calendar}/components/CalendarSelect/CalendarSelect.tsx +1 -1
- package/src/calendar/index.ts +3 -0
- package/src/calendar/utils/index.ts +28 -0
- package/src/date-time-button/DateTimeButton.stories.tsx +17 -0
- package/src/date-time-button/DateTimeButton.tsx +19 -22
- package/src/events/edit-event-modal/IntervalInput.tsx +3 -0
- package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.stories.tsx +0 -9
- package/src/events/edit-event-modal/utils/getDefaultProductSet.ts +3 -1
- package/src/events/event-venue-map/hooks/useImage.tsx +17 -8
- package/src/file-upload/FileUpload.tsx +3 -1
- package/src/iframe/{activity-cards/activity-card → activity-card}/ActivityCard.stories.tsx +24 -1
- package/src/iframe/activity-card/ActivityCard.tsx +77 -0
- package/src/iframe/activity-card/index.ts +1 -0
- package/src/iframe/event/event-venue-map/IframeEventVenueMap.stories.tsx +1 -2
- package/src/iframe/event/index.ts +0 -6
- package/src/iframe/index.ts +1 -2
- package/src/iframe/order-process/components/BookingSummary/BookingSummary.tsx +4 -2
- package/src/iframe/order-process/components/BookingSummary/types/index.ts +2 -1
- package/src/iframe/order-process/components/BookingSummary/utils/index.ts +2 -0
- package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.stories.tsx +0 -1
- package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx +17 -8
- package/src/iframe/order-process/components/CategoryProduct/CategoryProduct.tsx +1 -15
- package/src/iframe/order-process/components/ErrorModal/ErrorModal.tsx +12 -9
- package/src/iframe/order-process/components/Timer/utils/index.ts +6 -9
- package/src/iframe/order-process/components/utils/useCategoryVerification.ts +62 -32
- package/src/iframe/order-process/constants.ts +1 -0
- package/src/iframe/page/Page.stories.tsx +2 -2
- package/src/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.tsx +6 -1
- package/src/iframe/payment/order-items-table/hooks/useTableData.tsx +11 -99
- package/src/iframe/payment/order-items-table/types/index.ts +18 -1
- package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +118 -0
- package/src/iframe/payment/payment-page/PaymentPage.stories.tsx +1 -1
- package/src/iframe/payment/payment-page/PaymentPage.tsx +4 -4
- package/src/index.ts +2 -0
- package/src/notification/email-template/control/EmailTemplateControl.tsx +26 -1
- package/src/product-set/control/ProductSetControl.tsx +35 -0
- package/src/product-set/control/ProductSetRecurrenceControl.tsx +8 -4
- package/src/product-set/form/ProductCategoriesControl.tsx +2 -1
- package/src/product-set/form/ProductSetForm.stories.tsx +3 -6
- package/src/product-set/form/ProductsControl.tsx +10 -0
- package/src/product-set/product/ProductControl.tsx +28 -1
- package/src/product-set/product/duration/ProductDurationControl.tsx +1 -1
- package/src/product-set/product-category/ProductCategoryControl.tsx +1 -30
- package/src/provider/location-input/LocationInputDescription.tsx +2 -2
- package/src/provider/working-hours-input/WorkingHoursInputDescription.tsx +9 -6
- package/src/recurrence-input/RecurrenceEndInput.tsx +28 -10
- package/src/recurrence-input/RecurrenceInput.tsx +12 -2
- package/src/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.tsx +24 -21
- package/src/recurring-date-picker-input/RecurringDatePickerInput.tsx +9 -0
- package/src/report/form/ReportForm.tsx +1 -1
- package/src/sales/booking/results/components/ResultCard.tsx +3 -2
- package/src/sales/coupon/control/CouponFormControl.tsx +5 -0
- package/src/sales/manual-booking/summary/ManualBookingSummary.tsx +1 -0
- package/src/snippet/snippet-template/preview/Preview.tsx +14 -2
- package/src/static/RestrictedAccess.tsx +1 -1
- package/src/static/form-number-input/FormNumberInput.tsx +8 -1
- package/src/styles/{iframe-customers-journey/ActivitiesCard.scss → activity-card/GridActivitiesCard.scss} +1 -1
- package/src/styles/{iframe-customers-journey/ActivitiesSelectedCard.scss → activity-card/ListActivitiesCard.scss} +2 -1
- package/src/styles/activity-card/_index.scss +2 -0
- package/src/styles/availability-indicator/AvailabilityIndicator.scss +7 -0
- package/src/styles/availability-indicator/_index.scss +1 -0
- package/src/styles/{iframe-customers-journey → date-time-button}/DateTimeButton.scss +6 -12
- package/src/styles/date-time-button/_index.scss +1 -0
- package/src/styles/form/CustomCheckbox.scss +5 -0
- package/src/styles/header/Header.scss +0 -4
- package/src/styles/iframe-events/Card.scss +1 -0
- package/src/styles/iframe-page/PageBody.scss +3 -2
- package/src/styles/notification/Notification.scss +4 -0
- package/src/styles/packages.scss +3 -1
- package/src/styles/resources-blocking/_index.scss +5 -0
- package/src/styles/themes/bookedit/_index.scss +1 -0
- package/src/typings.d.ts +11 -0
- package/src/virtualized/components/VirtualizedWindowScroller.tsx +2 -1
- package/src/zone/form/components/AvailableTimesControl.tsx +4 -9
- package/src/zone/form/components/GameDurationControl.tsx +46 -0
- package/src/zone/form/components/ZoneControl.tsx +2 -0
- package/src/zone/form/components/ZoneRecurrencesControl.tsx +27 -35
- package/src/zone/form/utils/dates.ts +29 -36
- package/dist/iframe/activity-cards/activity-card/ActivityCard.d.ts +0 -12
- package/dist/iframe/activity-cards/activity-card/ActivityCard.d.ts.map +0 -1
- package/dist/iframe/activity-cards/activity-card/ActivityCard.js +0 -1
- package/dist/iframe/activity-cards/index.d.ts +0 -3
- package/dist/iframe/activity-cards/index.d.ts.map +0 -1
- package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.d.ts +0 -12
- package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.d.ts.map +0 -1
- package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.js +0 -1
- package/dist/iframe/event/event-calendar/EventCalendar.d.ts +0 -7
- package/dist/iframe/event/event-calendar/EventCalendar.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/EventCalendar.js +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarButtons/CalendarButtons.d.ts +0 -6
- package/dist/iframe/event/event-calendar/components/CalendarButtons/CalendarButtons.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarButtons/CalendarButtons.js +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarButtons/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.d.ts +0 -12
- package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.js +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarDate/index.d.ts +0 -3
- package/dist/iframe/event/event-calendar/components/CalendarDate/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.d.ts +0 -7
- package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.js +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarDates/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarSelect/CalendarSelect.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarSelect/CalendarSelect.js +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarSelect/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarWeekdays/CalendarWeekdays.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/components/CalendarWeekdays/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/index.d.ts +0 -4
- package/dist/iframe/event/event-calendar/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/types/index.d.ts +0 -6
- package/dist/iframe/event/event-calendar/types/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/utils/index.d.ts +0 -3
- package/dist/iframe/event/event-calendar/utils/index.d.ts.map +0 -1
- package/dist/iframe/event/event-calendar/utils/index.js +0 -1
- package/dist/styles/iframe-customers-journey/_index.scss +0 -3
- package/src/iframe/activity-cards/activity-card/ActivityCard.tsx +0 -38
- package/src/iframe/activity-cards/index.ts +0 -2
- package/src/iframe/activity-cards/list-activity-card/ListActivityCard.stories.tsx +0 -52
- package/src/iframe/activity-cards/list-activity-card/ListActivityCard.tsx +0 -49
- package/src/iframe/event/event-calendar/EventCalendar.stories.tsx +0 -36
- package/src/iframe/event/event-calendar/EventCalendar.tsx +0 -27
- package/src/iframe/event/event-calendar/components/CalendarDate/CalendarDate.tsx +0 -51
- package/src/iframe/event/event-calendar/components/CalendarDate/index.ts +0 -2
- package/src/iframe/event/event-calendar/index.ts +0 -6
- package/src/iframe/event/event-calendar/types/index.ts +0 -6
- package/src/iframe/event/event-calendar/utils/index.ts +0 -11
- package/src/styles/iframe-customers-journey/_index.scss +0 -3
- /package/dist/assets/iframe/{dateInfo/available.svg → available.svg} +0 -0
- /package/dist/assets/iframe/{dateInfo/limited.svg → limited.svg} +0 -0
- /package/dist/assets/iframe/{dateInfo/soldOut.svg → soldOut.svg} +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarButtons/index.d.ts +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarDates/index.d.ts +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarSelect/CalendarSelect.d.ts +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarSelect/index.d.ts +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/CalendarWeekdays.d.ts +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/CalendarWeekdays.js +0 -0
- /package/dist/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/index.d.ts +0 -0
- /package/src/assets/iframe/{dateInfo/available.svg → available.svg} +0 -0
- /package/src/assets/iframe/{dateInfo/limited.svg → limited.svg} +0 -0
- /package/src/assets/iframe/{dateInfo/soldOut.svg → soldOut.svg} +0 -0
- /package/src/{iframe/event/event-calendar → calendar}/components/CalendarButtons/index.ts +0 -0
- /package/src/{iframe/event/event-calendar → calendar}/components/CalendarDates/index.ts +0 -0
- /package/src/{iframe/event/event-calendar → calendar}/components/CalendarSelect/index.ts +0 -0
- /package/src/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/CalendarWeekdays.tsx +0 -0
- /package/src/{iframe/event/event-calendar → calendar}/components/CalendarWeekdays/index.ts +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { PAYMENT_TYPE_TRANSLATE_KEYS } from "../hooks/useTableData";
|
|
2
|
+
import {
|
|
3
|
+
AMOUNT_TOTAL,
|
|
4
|
+
AMOUNT_WITH_DISCOUNT,
|
|
5
|
+
OrderItemsTableProps,
|
|
6
|
+
REMAINING_TO_PAY,
|
|
7
|
+
SummaryItem,
|
|
8
|
+
TOTAL_PAID,
|
|
9
|
+
} from "../types";
|
|
10
|
+
import {
|
|
11
|
+
calculateTotalDiscount,
|
|
12
|
+
calculateTotalPrice,
|
|
13
|
+
getExternalPaymentDetail,
|
|
14
|
+
getPaymentValueByType,
|
|
15
|
+
} from "./index";
|
|
16
|
+
|
|
17
|
+
const paymentNotProcessedSummary = ({
|
|
18
|
+
order,
|
|
19
|
+
externalDiscount,
|
|
20
|
+
paymentDetail,
|
|
21
|
+
}: OrderItemsTableProps) => {
|
|
22
|
+
const externalPaymentDetail = paymentDetail
|
|
23
|
+
? getExternalPaymentDetail(paymentDetail)
|
|
24
|
+
: undefined;
|
|
25
|
+
|
|
26
|
+
const total = calculateTotalPrice(order, externalPaymentDetail);
|
|
27
|
+
|
|
28
|
+
const summaryItems: SummaryItem[] = [
|
|
29
|
+
{
|
|
30
|
+
translateKey: AMOUNT_TOTAL,
|
|
31
|
+
price: total,
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
if (externalDiscount) {
|
|
36
|
+
summaryItems.push({
|
|
37
|
+
price: externalDiscount,
|
|
38
|
+
translateKey: AMOUNT_WITH_DISCOUNT,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (externalPaymentDetail) {
|
|
43
|
+
return [...summaryItems, ...getExternalPaymentDetail(paymentDetail)];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return summaryItems;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const processedPaymentSummary = ({
|
|
50
|
+
order,
|
|
51
|
+
paymentDetail,
|
|
52
|
+
}: OrderItemsTableProps) => {
|
|
53
|
+
const externalPaymentDetail =
|
|
54
|
+
paymentDetail && !order.payments.length
|
|
55
|
+
? getExternalPaymentDetail(paymentDetail)
|
|
56
|
+
: Object.keys(PAYMENT_TYPE_TRANSLATE_KEYS).map((key) => {
|
|
57
|
+
return {
|
|
58
|
+
translateKey: PAYMENT_TYPE_TRANSLATE_KEYS[key],
|
|
59
|
+
price: getPaymentValueByType(order.payments, key),
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const total = calculateTotalPrice(order, externalPaymentDetail);
|
|
64
|
+
|
|
65
|
+
const totalDiscount = calculateTotalDiscount(order.payments);
|
|
66
|
+
const totalWithDiscount = total - Number(totalDiscount);
|
|
67
|
+
let summaryItems: SummaryItem[] = [
|
|
68
|
+
{
|
|
69
|
+
translateKey: AMOUNT_TOTAL,
|
|
70
|
+
price: total,
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
if (totalDiscount) {
|
|
75
|
+
summaryItems.push({
|
|
76
|
+
translateKey: AMOUNT_WITH_DISCOUNT,
|
|
77
|
+
price: totalWithDiscount < 0 ? 0 : totalWithDiscount,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (paymentDetail && !order.payments.length) {
|
|
82
|
+
return [...summaryItems, ...externalPaymentDetail];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
summaryItems.push({
|
|
86
|
+
translateKey: TOTAL_PAID,
|
|
87
|
+
price: totalWithDiscount <= 0 ? 0 : order.totalAmount,
|
|
88
|
+
});
|
|
89
|
+
if (totalWithDiscount <= 0) {
|
|
90
|
+
return summaryItems;
|
|
91
|
+
}
|
|
92
|
+
summaryItems = [...summaryItems, ...externalPaymentDetail];
|
|
93
|
+
|
|
94
|
+
if (totalWithDiscount > order.totalAmount) {
|
|
95
|
+
summaryItems.push({
|
|
96
|
+
translateKey: REMAINING_TO_PAY,
|
|
97
|
+
price: totalWithDiscount - order.totalAmount,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return summaryItems;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export const getOrderSummaryItems = ({
|
|
104
|
+
order,
|
|
105
|
+
externalDiscount,
|
|
106
|
+
paymentDetail,
|
|
107
|
+
isPaymentProcessed,
|
|
108
|
+
}: OrderItemsTableProps): SummaryItem[] => {
|
|
109
|
+
if (!isPaymentProcessed) {
|
|
110
|
+
return paymentNotProcessedSummary({
|
|
111
|
+
order,
|
|
112
|
+
externalDiscount,
|
|
113
|
+
paymentDetail,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return processedPaymentSummary({ order, paymentDetail });
|
|
118
|
+
};
|
|
@@ -100,18 +100,18 @@ export const PaymentPage = ({
|
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
const
|
|
103
|
+
const orderTotalAmountByFormValues = cartSumByOrderProducts(
|
|
104
104
|
bookingSummaryProps && bookingSummaryProps?.formValues
|
|
105
105
|
? Object.values(bookingSummaryProps?.formValues)
|
|
106
106
|
: undefined
|
|
107
107
|
);
|
|
108
108
|
|
|
109
|
-
// User can fill
|
|
109
|
+
// User can fill promo code only in iframe application.
|
|
110
110
|
// It didn't possible via payment link. This check will
|
|
111
111
|
// be applied when there are no metadata and in case when
|
|
112
112
|
// orderValues sum is greater than amount in order.
|
|
113
113
|
const isCalculatedAmountGreaterThanOrderAmount =
|
|
114
|
-
|
|
114
|
+
orderTotalAmountByFormValues > data?.amount;
|
|
115
115
|
|
|
116
116
|
return (
|
|
117
117
|
<Page
|
|
@@ -164,7 +164,7 @@ export const PaymentPage = ({
|
|
|
164
164
|
<SummaryTotalBlock
|
|
165
165
|
label={t("total")}
|
|
166
166
|
amount={
|
|
167
|
-
|
|
167
|
+
orderTotalAmountByFormValues +
|
|
168
168
|
(bookingSummaryProps?.transactionFee || 0)
|
|
169
169
|
}
|
|
170
170
|
/>
|
package/src/index.ts
CHANGED
|
@@ -314,13 +314,38 @@ export const EmailTemplateControl = React.forwardRef(
|
|
|
314
314
|
<Row className="mb-4">
|
|
315
315
|
<Form.Group as={Col}>
|
|
316
316
|
<Form.Label>{t("Design:emailBody")}</Form.Label>
|
|
317
|
-
|
|
317
|
+
|
|
318
|
+
<div className="alert alert-warning" role="alert">
|
|
319
|
+
Due to the mail services limitations on the length of the email
|
|
320
|
+
body that can be sent or received - maximum length is set to
|
|
321
|
+
65,535 characters.
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<div className={`email-editor ${errors.body && "is-invalid"}`}>
|
|
318
325
|
<EmailEditor
|
|
319
326
|
ref={ref}
|
|
320
327
|
onReady={onReadyEditor}
|
|
321
328
|
style={{ height: "50rem" }}
|
|
322
329
|
/>
|
|
330
|
+
|
|
331
|
+
<input
|
|
332
|
+
type="hidden"
|
|
333
|
+
name="body"
|
|
334
|
+
{...register("body", {
|
|
335
|
+
maxLength: {
|
|
336
|
+
value: 65535,
|
|
337
|
+
message: t("Validation:fieldMaxLength", {
|
|
338
|
+
attribute: t("body"),
|
|
339
|
+
max: 65535,
|
|
340
|
+
}) as string,
|
|
341
|
+
},
|
|
342
|
+
})}
|
|
343
|
+
/>
|
|
323
344
|
</div>
|
|
345
|
+
|
|
346
|
+
<Form.Control.Feedback type="invalid">
|
|
347
|
+
{errors.body?.message}
|
|
348
|
+
</Form.Control.Feedback>
|
|
324
349
|
</Form.Group>
|
|
325
350
|
</Row>
|
|
326
351
|
<Row>
|
|
@@ -7,8 +7,13 @@ import {
|
|
|
7
7
|
OPERATIONAL_COST_CUSTOMER,
|
|
8
8
|
OPERATIONAL_COST_PROVIDER,
|
|
9
9
|
OPERATIONAL_COST_TYPES,
|
|
10
|
+
RELY_ON_PEOPLE_QUANTITY,
|
|
11
|
+
RELY_ON_PEOPLE_PRODUCT_CAPACITY_QUANTITY,
|
|
12
|
+
RELY_ON_PEOPLE_PRODUCT_QUANTITY,
|
|
10
13
|
OperationalCostType,
|
|
11
14
|
ProductSetType,
|
|
15
|
+
RELY_ON_PEOPLE_TYPES,
|
|
16
|
+
RelyOnPeopleType,
|
|
12
17
|
} from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
|
|
13
18
|
import { useId } from "@react-aria/utils";
|
|
14
19
|
import { FieldSet } from "@licklist/core/dist/DataMapper/Order/FieldSetDataMapper";
|
|
@@ -34,6 +39,12 @@ const OPERATIONAL_COST_TITLES = {
|
|
|
34
39
|
[OPERATIONAL_COST_CUSTOMER]: "operationalCostCustomer",
|
|
35
40
|
} as const;
|
|
36
41
|
|
|
42
|
+
const RELY_ON_PEOPLE_TYPE_TITLES = {
|
|
43
|
+
[RELY_ON_PEOPLE_PRODUCT_CAPACITY_QUANTITY]: "peopleProductCapacityQuantity",
|
|
44
|
+
[RELY_ON_PEOPLE_PRODUCT_QUANTITY]: "peopleProductQuantity",
|
|
45
|
+
[RELY_ON_PEOPLE_QUANTITY]: "peopleQuantity",
|
|
46
|
+
};
|
|
47
|
+
|
|
37
48
|
export interface TemplateItem {
|
|
38
49
|
id: string;
|
|
39
50
|
value: EmailTemplate | SmsTemplate;
|
|
@@ -48,6 +59,7 @@ export interface ProductSetControlValues extends DateAndRecurrenceInputValues {
|
|
|
48
59
|
isDefault: boolean;
|
|
49
60
|
operationalCost: OperationalCostType;
|
|
50
61
|
productGroups?: SelectItem[];
|
|
62
|
+
relyOnPeopleType: RelyOnPeopleType;
|
|
51
63
|
fieldSetId?: number;
|
|
52
64
|
steps?: Step[];
|
|
53
65
|
emailTemplates?: TemplateItem[];
|
|
@@ -100,6 +112,7 @@ export function ProductSetControl({
|
|
|
100
112
|
|
|
101
113
|
const nameId = useId();
|
|
102
114
|
const termsAndConditionsId = useId();
|
|
115
|
+
const relyOnPeopleTypeId = useId();
|
|
103
116
|
|
|
104
117
|
return (
|
|
105
118
|
<Row
|
|
@@ -220,6 +233,28 @@ export function ProductSetControl({
|
|
|
220
233
|
</Form.Control>
|
|
221
234
|
</Form.Group>
|
|
222
235
|
|
|
236
|
+
<Form.Group controlId={relyOnPeopleTypeId}>
|
|
237
|
+
<Form.Label>{t("peopleQuantityType")}</Form.Label>
|
|
238
|
+
<Form.Control
|
|
239
|
+
{...register("relyOnPeopleType", { required: true })}
|
|
240
|
+
as="select"
|
|
241
|
+
defaultValue={RELY_ON_PEOPLE_PRODUCT_CAPACITY_QUANTITY}
|
|
242
|
+
>
|
|
243
|
+
{Object.keys(RELY_ON_PEOPLE_TYPES).map((relyOnPeopleType) => (
|
|
244
|
+
<option
|
|
245
|
+
value={RELY_ON_PEOPLE_TYPES[relyOnPeopleType]}
|
|
246
|
+
key={RELY_ON_PEOPLE_TYPES[relyOnPeopleType]}
|
|
247
|
+
>
|
|
248
|
+
{t(
|
|
249
|
+
RELY_ON_PEOPLE_TYPE_TITLES[
|
|
250
|
+
RELY_ON_PEOPLE_TYPES[relyOnPeopleType]
|
|
251
|
+
]
|
|
252
|
+
)}
|
|
253
|
+
</option>
|
|
254
|
+
))}
|
|
255
|
+
</Form.Control>
|
|
256
|
+
</Form.Group>
|
|
257
|
+
|
|
223
258
|
<Form.Group controlId={termsAndConditionsId}>
|
|
224
259
|
<Form.Label>{t("Design:termsAndConditions")}</Form.Label>
|
|
225
260
|
<Form.Control
|
|
@@ -56,10 +56,14 @@ export const ProductSetRecurrenceControl = ({
|
|
|
56
56
|
{formatDate(menuRecurrence.startDate, {
|
|
57
57
|
dateStyle: "medium",
|
|
58
58
|
})}{" "}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
{menuRecurrence.endDate && (
|
|
60
|
+
<>
|
|
61
|
+
{"- "}
|
|
62
|
+
{formatDate(menuRecurrence.endDate, {
|
|
63
|
+
dateStyle: "medium",
|
|
64
|
+
})}
|
|
65
|
+
</>
|
|
66
|
+
)}
|
|
63
67
|
</span>
|
|
64
68
|
|
|
65
69
|
<div
|
|
@@ -48,7 +48,6 @@ const getCategoryDefaultValue = (
|
|
|
48
48
|
maxSubItems: null,
|
|
49
49
|
quantityType: QUANTITY_TYPE_STANDARD,
|
|
50
50
|
type: categoryType,
|
|
51
|
-
isRelyOnPeople: categoryType === CATEGORY_TYPE_TICKETS,
|
|
52
51
|
isTimeRelated: false,
|
|
53
52
|
collectUserInfo: false,
|
|
54
53
|
hasTicket: categoryType === CATEGORY_TYPE_TICKETS,
|
|
@@ -72,6 +71,7 @@ export function ProductCategoriesControl({
|
|
|
72
71
|
providerHasMap,
|
|
73
72
|
expandedProductCategories,
|
|
74
73
|
setExpandedProductCategories,
|
|
74
|
+
zones,
|
|
75
75
|
} = useContext(ProductSetLoadingContext);
|
|
76
76
|
const form = useFormContext<ProductSetFormValues>();
|
|
77
77
|
const [isSelectCategoryVisible, setIsSelectCategoryVisible] = useState(false);
|
|
@@ -287,6 +287,7 @@ export function ProductCategoriesControl({
|
|
|
287
287
|
quantityType={productCategory.quantityType}
|
|
288
288
|
hasTicket={productCategory?.hasTicket}
|
|
289
289
|
stepIndex={stepIndex}
|
|
290
|
+
zones={zones}
|
|
290
291
|
productCategoryIndex={index}
|
|
291
292
|
categoryType={productCategory.type}
|
|
292
293
|
/>
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
OPERATIONAL_COST_CUSTOMER,
|
|
13
13
|
OPERATIONAL_COST_PROVIDER,
|
|
14
|
+
RELY_ON_PEOPLE_PRODUCT_QUANTITY,
|
|
14
15
|
} from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
|
|
15
16
|
import { FieldSet } from "@licklist/core/dist/DataMapper/Order/FieldSetDataMapper";
|
|
16
17
|
import { ProductSetForm, ProductSetFormProps } from "./ProductSetForm";
|
|
@@ -74,6 +75,7 @@ Default.args = {
|
|
|
74
75
|
{
|
|
75
76
|
createdAt: "2023-05-08T15:55:28.000+03:00",
|
|
76
77
|
deletedAt: null,
|
|
78
|
+
defaultDuration: 30,
|
|
77
79
|
description: "Zone description 2",
|
|
78
80
|
id: 2,
|
|
79
81
|
image: null,
|
|
@@ -103,6 +105,7 @@ Default.args = {
|
|
|
103
105
|
termsAndConditions: "",
|
|
104
106
|
isDefault: true,
|
|
105
107
|
operationalCost: OPERATIONAL_COST_CUSTOMER,
|
|
108
|
+
relyOnPeopleType: RELY_ON_PEOPLE_PRODUCT_QUANTITY,
|
|
106
109
|
steps: [
|
|
107
110
|
{
|
|
108
111
|
id: 1,
|
|
@@ -114,7 +117,6 @@ Default.args = {
|
|
|
114
117
|
minSubItems: 1,
|
|
115
118
|
maxSubItems: 10,
|
|
116
119
|
quantityType: "constant",
|
|
117
|
-
isRelyOnPeople: false,
|
|
118
120
|
isTimeRelated: false,
|
|
119
121
|
hasTicket: false,
|
|
120
122
|
allowDeposits: false,
|
|
@@ -183,7 +185,6 @@ Default.args = {
|
|
|
183
185
|
minSubItems: 0,
|
|
184
186
|
maxSubItems: 0,
|
|
185
187
|
quantityType: "recharging",
|
|
186
|
-
isRelyOnPeople: false,
|
|
187
188
|
isTimeRelated: false,
|
|
188
189
|
hasTicket: false,
|
|
189
190
|
allowDeposits: false,
|
|
@@ -202,7 +203,6 @@ Default.args = {
|
|
|
202
203
|
minSubItems: 0,
|
|
203
204
|
maxSubItems: 0,
|
|
204
205
|
quantityType: "recharging",
|
|
205
|
-
isRelyOnPeople: false,
|
|
206
206
|
isTimeRelated: false,
|
|
207
207
|
hasTicket: false,
|
|
208
208
|
allowDeposits: false,
|
|
@@ -288,7 +288,6 @@ Default.args = {
|
|
|
288
288
|
minSubItems: 0,
|
|
289
289
|
maxSubItems: null,
|
|
290
290
|
quantityType: "recharging",
|
|
291
|
-
isRelyOnPeople: false,
|
|
292
291
|
isTimeRelated: false,
|
|
293
292
|
hasTicket: false,
|
|
294
293
|
allowDeposits: false,
|
|
@@ -897,7 +896,6 @@ Valid.args = {
|
|
|
897
896
|
minSubItems: 0,
|
|
898
897
|
maxSubItems: 0,
|
|
899
898
|
quantityType: "recharging",
|
|
900
|
-
isRelyOnPeople: false,
|
|
901
899
|
isTimeRelated: false,
|
|
902
900
|
hasTicket: false,
|
|
903
901
|
allowDeposits: false,
|
|
@@ -1112,7 +1110,6 @@ Valid.args = {
|
|
|
1112
1110
|
minSubItems: 0,
|
|
1113
1111
|
maxSubItems: 0,
|
|
1114
1112
|
quantityType: "recharging",
|
|
1115
|
-
isRelyOnPeople: false,
|
|
1116
1113
|
isTimeRelated: false,
|
|
1117
1114
|
hasTicket: false,
|
|
1118
1115
|
allowDeposits: false,
|
|
@@ -14,6 +14,7 @@ import { generateUuid } from "@licklist/core/dist/Services";
|
|
|
14
14
|
import HookFormService from "@licklist/plugins/dist/services/Form/HookFormService";
|
|
15
15
|
|
|
16
16
|
import { CategoryType } from "@licklist/core/dist/DataMapper/Product/ProductCategoryDataMapper";
|
|
17
|
+
import { Zone } from "@licklist/core/dist/DataMapper/Provider/ZoneDataMapper";
|
|
17
18
|
import { ProductControl, ProductControlProps, ProductSetFormValues } from "..";
|
|
18
19
|
import { SortableTree } from "../../sortable-tree";
|
|
19
20
|
import { CreateProductSetItem } from "../item/CreateProductSetItem";
|
|
@@ -32,6 +33,7 @@ interface ProductsControlProps extends WithIsLoading {
|
|
|
32
33
|
productCategoryIndex: number;
|
|
33
34
|
hasTicket?: boolean;
|
|
34
35
|
categoryType: CategoryType;
|
|
36
|
+
zones?: Zone[];
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
const getDefaultProductValue = (sort: number): Product => ({
|
|
@@ -74,6 +76,7 @@ export function ProductsControl({
|
|
|
74
76
|
productCategoryIndex,
|
|
75
77
|
hasTicket,
|
|
76
78
|
categoryType,
|
|
79
|
+
zones,
|
|
77
80
|
}: ProductsControlProps) {
|
|
78
81
|
const { t } = useTranslation("Design");
|
|
79
82
|
const form = useFormContext<ProductSetFormValues>();
|
|
@@ -89,6 +92,12 @@ export function ProductsControl({
|
|
|
89
92
|
getValues,
|
|
90
93
|
} = form;
|
|
91
94
|
|
|
95
|
+
const zoneId = watch(
|
|
96
|
+
`steps.${stepIndex}.productCategories.${productCategoryIndex}.zoneId`
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
const catergoryZone = zones?.find((zone) => zone.id === Number(zoneId));
|
|
100
|
+
|
|
92
101
|
const productControlFieldName =
|
|
93
102
|
`steps.${stepIndex}.productCategories.${productCategoryIndex}.products` as const;
|
|
94
103
|
|
|
@@ -245,6 +254,7 @@ export function ProductsControl({
|
|
|
245
254
|
onProductNameChange={onChange}
|
|
246
255
|
hasTicket={hasTicket}
|
|
247
256
|
categoryType={categoryType}
|
|
257
|
+
zoneDuration={catergoryZone?.defaultDuration}
|
|
248
258
|
/>
|
|
249
259
|
}
|
|
250
260
|
onDelete={() => onProductRemove(index)}
|
|
@@ -113,6 +113,7 @@ export interface ProductControlProps<T>
|
|
|
113
113
|
productName: string;
|
|
114
114
|
hasTicket?: boolean;
|
|
115
115
|
categoryType?: CategoryType;
|
|
116
|
+
zoneDuration?: number;
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
export function ProductControl<T extends FormValues>({
|
|
@@ -126,6 +127,7 @@ export function ProductControl<T extends FormValues>({
|
|
|
126
127
|
productName,
|
|
127
128
|
hasTicket,
|
|
128
129
|
categoryType,
|
|
130
|
+
zoneDuration,
|
|
129
131
|
}: ProductControlProps<T>) {
|
|
130
132
|
const {
|
|
131
133
|
register,
|
|
@@ -190,6 +192,16 @@ export function ProductControl<T extends FormValues>({
|
|
|
190
192
|
[handleImageUploading]
|
|
191
193
|
);
|
|
192
194
|
|
|
195
|
+
const onChangeGameCapacity = (value: number) => {
|
|
196
|
+
if (!zoneDuration) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
setValue(
|
|
200
|
+
`${fieldNamePrefix}.duration` as Path<T>,
|
|
201
|
+
(value * zoneDuration) as UnpackNestedValue<PathValue<T, Path<T>>>
|
|
202
|
+
);
|
|
203
|
+
};
|
|
204
|
+
|
|
193
205
|
const onImageRemove = useCallback(
|
|
194
206
|
(id, path) => {
|
|
195
207
|
handleImageRemove(String(id), path);
|
|
@@ -372,6 +384,14 @@ export function ProductControl<T extends FormValues>({
|
|
|
372
384
|
<FormNumberInput
|
|
373
385
|
fieldName={`${fieldNamePrefix}.capacity`}
|
|
374
386
|
label={t("capacity")}
|
|
387
|
+
rules={{
|
|
388
|
+
min: {
|
|
389
|
+
value: 1,
|
|
390
|
+
message: t("Validation:fieldRequired", {
|
|
391
|
+
attribute: t("capacity"),
|
|
392
|
+
}) as string,
|
|
393
|
+
},
|
|
394
|
+
}}
|
|
375
395
|
/>
|
|
376
396
|
</Col>
|
|
377
397
|
</Row>
|
|
@@ -383,7 +403,11 @@ export function ProductControl<T extends FormValues>({
|
|
|
383
403
|
<FormNumberInput
|
|
384
404
|
fieldName={`${fieldNamePrefix}.capacity`}
|
|
385
405
|
label={t("capacity")}
|
|
406
|
+
onChange={onChangeGameCapacity}
|
|
386
407
|
rules={{
|
|
408
|
+
required: t("Validation:fieldRequired", {
|
|
409
|
+
attribute: t("capacity"),
|
|
410
|
+
}) as string,
|
|
387
411
|
min: {
|
|
388
412
|
value: 1,
|
|
389
413
|
message: t("Validation:fieldRequired", {
|
|
@@ -398,10 +422,13 @@ export function ProductControl<T extends FormValues>({
|
|
|
398
422
|
fieldName={`${fieldNamePrefix}.duration`}
|
|
399
423
|
label={t("durationMinutes")}
|
|
400
424
|
rules={{
|
|
425
|
+
required: t("Validation:fieldRequired", {
|
|
426
|
+
attribute: t("capacity"),
|
|
427
|
+
}) as string,
|
|
401
428
|
min: {
|
|
402
429
|
value: 1,
|
|
403
430
|
message: t("Validation:fieldRequired", {
|
|
404
|
-
attribute: t("
|
|
431
|
+
attribute: t("capacity"),
|
|
405
432
|
}) as string,
|
|
406
433
|
},
|
|
407
434
|
}}
|
|
@@ -28,7 +28,6 @@ export interface ProductCategoryControlValues extends FormValues {
|
|
|
28
28
|
maxSubItems: number | null;
|
|
29
29
|
quantityType: QuantityType;
|
|
30
30
|
type: CategoryType;
|
|
31
|
-
isRelyOnPeople: boolean;
|
|
32
31
|
isTimeRelated: boolean;
|
|
33
32
|
collectUserInfo: boolean;
|
|
34
33
|
hasTicket: boolean;
|
|
@@ -97,7 +96,6 @@ export function ProductCategoryControl({
|
|
|
97
96
|
const minSubItemsId = useId();
|
|
98
97
|
const maxSubItemsId = useId();
|
|
99
98
|
const quantityType = useId();
|
|
100
|
-
const isRelyOnPeopleId = useId();
|
|
101
99
|
const isTimeRelatedId = useId();
|
|
102
100
|
const collectUserInfoId = useId();
|
|
103
101
|
const hasTicketId = useId();
|
|
@@ -332,7 +330,7 @@ export function ProductCategoryControl({
|
|
|
332
330
|
<Row>
|
|
333
331
|
<Col>
|
|
334
332
|
<Form.Group controlId={zoneId}>
|
|
335
|
-
<Form.Label>
|
|
333
|
+
<Form.Label>{t("Design:zone")}</Form.Label>
|
|
336
334
|
<Controller
|
|
337
335
|
control={control}
|
|
338
336
|
name={`${fieldNamePrefix}.zoneId`}
|
|
@@ -360,12 +358,6 @@ export function ProductCategoryControl({
|
|
|
360
358
|
attribute: t("zone"),
|
|
361
359
|
}),
|
|
362
360
|
},
|
|
363
|
-
validate: (value) => {
|
|
364
|
-
if (value) return true;
|
|
365
|
-
return t("Validation:fieldRequired", {
|
|
366
|
-
attribute: t("zone"),
|
|
367
|
-
}) as string;
|
|
368
|
-
},
|
|
369
361
|
}}
|
|
370
362
|
/>
|
|
371
363
|
<Form.Control.Feedback type="invalid">
|
|
@@ -470,27 +462,6 @@ export function ProductCategoryControl({
|
|
|
470
462
|
</Form.Group>
|
|
471
463
|
)}
|
|
472
464
|
|
|
473
|
-
<Form.Group
|
|
474
|
-
controlId={isRelyOnPeopleId}
|
|
475
|
-
className="advanced-switch-container"
|
|
476
|
-
>
|
|
477
|
-
<Form.Label>{t("isRelyOnPeople")}</Form.Label>
|
|
478
|
-
|
|
479
|
-
<div>
|
|
480
|
-
<Controller
|
|
481
|
-
render={({ field: { name, value, onChange } }) => (
|
|
482
|
-
<BooleanSwitch
|
|
483
|
-
name={name}
|
|
484
|
-
value={Boolean(value)}
|
|
485
|
-
onChange={onChange}
|
|
486
|
-
disabled={isLoading || category.hasTicket}
|
|
487
|
-
/>
|
|
488
|
-
)}
|
|
489
|
-
control={control}
|
|
490
|
-
name={`${fieldNamePrefix}.isRelyOnPeople` as const}
|
|
491
|
-
/>
|
|
492
|
-
</div>
|
|
493
|
-
</Form.Group>
|
|
494
465
|
{!category.hasTicket && (
|
|
495
466
|
<Form.Group
|
|
496
467
|
controlId={isTimeRelatedId}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactElement } from "react";
|
|
2
2
|
import { useFormContext } from "react-hook-form";
|
|
3
3
|
import en from "react-phone-number-input/locale/en.json";
|
|
4
4
|
import { LocationInputValues } from ".";
|
|
@@ -13,7 +13,7 @@ export function LocationInputDescription() {
|
|
|
13
13
|
"postcode",
|
|
14
14
|
"country",
|
|
15
15
|
] as const;
|
|
16
|
-
const fields = fieldNames.reduce<
|
|
16
|
+
const fields = fieldNames.reduce<ReactElement[]>((acc, field) => {
|
|
17
17
|
const value = values?.[field];
|
|
18
18
|
if (!value) return acc;
|
|
19
19
|
|
|
@@ -28,14 +28,17 @@ export function WorkingHoursInputDescription() {
|
|
|
28
28
|
{weekday?.end
|
|
29
29
|
? weekday.start
|
|
30
30
|
? t("timeInterval", {
|
|
31
|
-
start:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
DateTime.fromISO(weekday.start).toFormat(
|
|
31
|
+
start: DateTime.fromISO(weekday.start).toFormat(
|
|
32
|
+
TIME_FORMAT
|
|
33
|
+
),
|
|
34
|
+
end: DateTime.fromISO(weekday.start).toFormat(
|
|
35
|
+
TIME_FORMAT
|
|
36
|
+
),
|
|
35
37
|
})
|
|
36
38
|
: t("timeFrom", {
|
|
37
|
-
start:
|
|
38
|
-
|
|
39
|
+
start: DateTime.fromISO(weekday.start).toFormat(
|
|
40
|
+
TIME_FORMAT
|
|
41
|
+
),
|
|
39
42
|
})
|
|
40
43
|
: null}
|
|
41
44
|
</Col>
|