@licklist/design 0.44.486-dev.4 → 0.44.486-dev.41
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 +20 -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 +6 -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/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 +1 -0
- 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/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/DateAndRecurrenceInput.d.ts.map +1 -1
- package/dist/product-set/control/DateAndRecurrenceInput.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.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/provider/working-hours-input/WorkingHoursInputDescription.js +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 +5 -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 +3 -1
- 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/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 +2 -2
- 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 +45 -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 +28 -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 +17 -22
- package/src/events/edit-event-modal/IntervalInput.tsx +3 -0
- 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 -1
- package/src/iframe/event/index.ts +0 -6
- package/src/iframe/index.ts +1 -2
- package/src/iframe/order-process/components/BookingSummary/BookingSummary.tsx +2 -0
- package/src/iframe/order-process/components/BookingSummary/types/index.ts +1 -0
- package/src/iframe/order-process/components/BookingSummary/utils/index.ts +2 -0
- package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx +5 -3
- package/src/iframe/order-process/components/CategoryProduct/CategoryProduct.tsx +0 -10
- 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 +59 -31
- 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.tsx +4 -4
- package/src/index.ts +2 -0
- package/src/notification/email-template/control/EmailTemplateControl.tsx +26 -1
- package/src/product-set/control/DateAndRecurrenceInput.tsx +1 -0
- package/src/product-set/control/ProductSetRecurrenceControl.tsx +8 -4
- package/src/product-set/form/ProductCategoriesControl.tsx +2 -0
- package/src/product-set/form/ProductSetForm.stories.tsx +1 -0
- 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 -7
- package/src/provider/location-input/LocationInputDescription.tsx +2 -2
- package/src/provider/working-hours-input/WorkingHoursInputDescription.tsx +10 -8
- package/src/recurrence-input/RecurrenceEndInput.tsx +28 -10
- package/src/recurrence-input/RecurrenceInput.tsx +12 -2
- package/src/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.tsx +53 -24
- package/src/recurring-date-picker-input/RecurringDatePickerInput.tsx +12 -0
- package/src/report/form/ReportForm.tsx +1 -1
- package/src/sales/booking/results/components/ResultCard.tsx +3 -2
- 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
|
@@ -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
|
}}
|
|
@@ -332,7 +332,7 @@ export function ProductCategoryControl({
|
|
|
332
332
|
<Row>
|
|
333
333
|
<Col>
|
|
334
334
|
<Form.Group controlId={zoneId}>
|
|
335
|
-
<Form.Label>
|
|
335
|
+
<Form.Label>{t("Design:zone")}</Form.Label>
|
|
336
336
|
<Controller
|
|
337
337
|
control={control}
|
|
338
338
|
name={`${fieldNamePrefix}.zoneId`}
|
|
@@ -360,12 +360,6 @@ export function ProductCategoryControl({
|
|
|
360
360
|
attribute: t("zone"),
|
|
361
361
|
}),
|
|
362
362
|
},
|
|
363
|
-
validate: (value) => {
|
|
364
|
-
if (value) return true;
|
|
365
|
-
return t("Validation:fieldRequired", {
|
|
366
|
-
attribute: t("zone"),
|
|
367
|
-
}) as string;
|
|
368
|
-
},
|
|
369
363
|
}}
|
|
370
364
|
/>
|
|
371
365
|
<Form.Control.Feedback type="invalid">
|
|
@@ -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
|
|
|
@@ -3,7 +3,7 @@ import React from "react";
|
|
|
3
3
|
import { Col, Row } from "react-bootstrap";
|
|
4
4
|
import { useFormContext } from "react-hook-form";
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
|
-
import {
|
|
6
|
+
import { TIME_FORMAT } from "@licklist/core/dist/Config";
|
|
7
7
|
import { WorkingHoursInputValues } from ".";
|
|
8
8
|
import { useWeekdays } from "./utils";
|
|
9
9
|
|
|
@@ -12,7 +12,9 @@ export function WorkingHoursInputDescription() {
|
|
|
12
12
|
const values = watch("workingHours");
|
|
13
13
|
const weekdays = useWeekdays("short");
|
|
14
14
|
const { t } = useTranslation("Design");
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
if (!values) return null;
|
|
17
|
+
|
|
16
18
|
return (
|
|
17
19
|
<>
|
|
18
20
|
{Array.from({ length: weekdays.length }, (_, i) => i)
|
|
@@ -26,16 +28,16 @@ export function WorkingHoursInputDescription() {
|
|
|
26
28
|
{weekday?.end
|
|
27
29
|
? weekday.start
|
|
28
30
|
? t("timeInterval", {
|
|
29
|
-
start:
|
|
30
|
-
|
|
31
|
+
start: DateTime.fromISO(weekday.start).toFormat(
|
|
32
|
+
TIME_FORMAT
|
|
31
33
|
),
|
|
32
|
-
end:
|
|
33
|
-
|
|
34
|
+
end: DateTime.fromISO(weekday.start).toFormat(
|
|
35
|
+
TIME_FORMAT
|
|
34
36
|
),
|
|
35
37
|
})
|
|
36
38
|
: t("timeFrom", {
|
|
37
|
-
start:
|
|
38
|
-
|
|
39
|
+
start: DateTime.fromISO(weekday.start).toFormat(
|
|
40
|
+
TIME_FORMAT
|
|
39
41
|
),
|
|
40
42
|
})
|
|
41
43
|
: null}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import React, { useRef } from "react";
|
|
1
|
+
import React, { useEffect, useRef } from "react";
|
|
2
2
|
import { useId } from "@react-aria/utils";
|
|
3
3
|
import { DateTime, DurationUnit } from "luxon";
|
|
4
4
|
import { Col, Form, InputGroup, Row } from "react-bootstrap";
|
|
5
5
|
import RRule from "rrule";
|
|
6
|
-
|
|
6
|
+
import { DATE_FORMAT } from "@licklist/core/dist/Config";
|
|
7
|
+
import { useTranslation } from "react-i18next";
|
|
7
8
|
import { SupportedFrequency } from "./utils";
|
|
8
9
|
import HTMLInputDateElement from "../types/static/HTMLInputDateElement";
|
|
9
10
|
|
|
10
11
|
interface Props {
|
|
11
12
|
disabled?: boolean;
|
|
12
|
-
date: string;
|
|
13
|
+
date: string; // yyyy-mm-ddThh:mm
|
|
14
|
+
minDate?: string; // should be in yyyy-mm-dd format
|
|
13
15
|
frequency: SupportedFrequency;
|
|
14
|
-
until?: string;
|
|
16
|
+
until?: string; // yyyy-mm-dd
|
|
15
17
|
count?: number;
|
|
16
18
|
onChange: (values: { until?: string; count?: number }) => void;
|
|
17
19
|
}
|
|
@@ -23,16 +25,31 @@ function RecurrenceEndInput({
|
|
|
23
25
|
until,
|
|
24
26
|
count,
|
|
25
27
|
onChange,
|
|
28
|
+
minDate,
|
|
26
29
|
}: Props) {
|
|
30
|
+
const { t } = useTranslation("Design");
|
|
27
31
|
// unique ids for radios
|
|
28
32
|
const neverId = useId();
|
|
29
33
|
const onId = useId();
|
|
30
34
|
const afterId = useId();
|
|
31
35
|
const dateInput = useRef<HTMLInputDateElement | null>(null);
|
|
32
36
|
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
const untilDatetime = DateTime.fromFormat(
|
|
39
|
+
until ?? getUntil({ date, frequency }),
|
|
40
|
+
DATE_FORMAT
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const minDatetime = DateTime.fromFormat(minDate, DATE_FORMAT);
|
|
44
|
+
|
|
45
|
+
if (minDatetime > untilDatetime) {
|
|
46
|
+
onChange({ until: minDate });
|
|
47
|
+
}
|
|
48
|
+
}, [minDate, onChange, until, date, frequency]);
|
|
49
|
+
|
|
33
50
|
return (
|
|
34
51
|
<Form.Group>
|
|
35
|
-
<Form.Label>
|
|
52
|
+
<Form.Label>{t("ends")}</Form.Label>
|
|
36
53
|
|
|
37
54
|
<Form.Check type="radio" id={neverId} custom className="mt-3">
|
|
38
55
|
<Form.Check.Input
|
|
@@ -41,7 +58,7 @@ function RecurrenceEndInput({
|
|
|
41
58
|
onChange={() => onChange({ count: 500 })}
|
|
42
59
|
disabled={disabled}
|
|
43
60
|
/>
|
|
44
|
-
<Form.Check.Label>
|
|
61
|
+
<Form.Check.Label>{t("never")}</Form.Check.Label>
|
|
45
62
|
</Form.Check>
|
|
46
63
|
|
|
47
64
|
<Form.Check type="radio" id={onId} custom className="mt-3">
|
|
@@ -55,11 +72,12 @@ function RecurrenceEndInput({
|
|
|
55
72
|
}
|
|
56
73
|
disabled={disabled}
|
|
57
74
|
/>
|
|
58
|
-
<Form.Check.Label>
|
|
75
|
+
<Form.Check.Label>{t("on")}</Form.Check.Label>
|
|
59
76
|
</Col>
|
|
60
77
|
<Col>
|
|
61
78
|
<Form.Control
|
|
62
79
|
type="date"
|
|
80
|
+
min={minDate}
|
|
63
81
|
disabled={disabled || !until}
|
|
64
82
|
aria-label="Date on which the recurrence ends"
|
|
65
83
|
value={until ?? getUntil({ date, frequency })}
|
|
@@ -83,7 +101,7 @@ function RecurrenceEndInput({
|
|
|
83
101
|
}
|
|
84
102
|
disabled={disabled}
|
|
85
103
|
/>
|
|
86
|
-
<Form.Check.Label>
|
|
104
|
+
<Form.Check.Label>{t("after")}</Form.Check.Label>
|
|
87
105
|
</Col>
|
|
88
106
|
<Col>
|
|
89
107
|
<InputGroup>
|
|
@@ -99,7 +117,7 @@ function RecurrenceEndInput({
|
|
|
99
117
|
}
|
|
100
118
|
/>
|
|
101
119
|
<InputGroup.Append>
|
|
102
|
-
<InputGroup.Text>
|
|
120
|
+
<InputGroup.Text>{t("occurences")}</InputGroup.Text>
|
|
103
121
|
</InputGroup.Append>
|
|
104
122
|
</InputGroup>
|
|
105
123
|
</Col>
|
|
@@ -109,7 +127,7 @@ function RecurrenceEndInput({
|
|
|
109
127
|
);
|
|
110
128
|
}
|
|
111
129
|
|
|
112
|
-
const defaultOccurrences = {
|
|
130
|
+
export const defaultOccurrences = {
|
|
113
131
|
[RRule.DAILY]: 30,
|
|
114
132
|
[RRule.WEEKLY]: 13,
|
|
115
133
|
[RRule.MONTHLY]: 12,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { DateTime } from "luxon";
|
|
4
4
|
import React, { useEffect, useReducer } from "react";
|
|
5
5
|
import RRule, { Frequency, Weekday } from "rrule";
|
|
6
|
-
import RecurrenceEndInput from "./RecurrenceEndInput";
|
|
6
|
+
import RecurrenceEndInput, { defaultOccurrences } from "./RecurrenceEndInput";
|
|
7
7
|
import RecurrenceIntervalAndFrequencyInput from "./RecurrenceIntervalAndFrequencyInput";
|
|
8
8
|
import RecurrenceMonthlyRepeatByInput from "./RecurrenceMonthlyRepeatByInput";
|
|
9
9
|
import RecurrenceWeekdaysInput from "./RecurrenceWeekdaysInput";
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
export interface RecurrenceInputProps {
|
|
17
17
|
disabled?: boolean;
|
|
18
18
|
date: string;
|
|
19
|
+
minDate?: string;
|
|
19
20
|
value?: string;
|
|
20
21
|
onChange: (value: string) => void;
|
|
21
22
|
initialFrequency?: Frequency;
|
|
@@ -24,6 +25,7 @@ export interface RecurrenceInputProps {
|
|
|
24
25
|
export function RecurrenceInput({
|
|
25
26
|
disabled = false,
|
|
26
27
|
date,
|
|
28
|
+
minDate,
|
|
27
29
|
value,
|
|
28
30
|
onChange,
|
|
29
31
|
initialFrequency = Frequency.WEEKLY,
|
|
@@ -82,6 +84,7 @@ export function RecurrenceInput({
|
|
|
82
84
|
)}
|
|
83
85
|
<RecurrenceEndInput
|
|
84
86
|
date={date}
|
|
87
|
+
minDate={minDate}
|
|
85
88
|
frequency={state.freq}
|
|
86
89
|
until={state.until && DateTime.fromJSDate(state.until).toISODate()}
|
|
87
90
|
count={state.count}
|
|
@@ -130,5 +133,12 @@ const getInitialState = ({
|
|
|
130
133
|
byweekday = options.byweekday[0];
|
|
131
134
|
}
|
|
132
135
|
|
|
133
|
-
return {
|
|
136
|
+
return {
|
|
137
|
+
...options,
|
|
138
|
+
count:
|
|
139
|
+
options?.count || options.until
|
|
140
|
+
? options.count
|
|
141
|
+
: defaultOccurrences[options.freq],
|
|
142
|
+
byweekday,
|
|
143
|
+
};
|
|
134
144
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { useEffect } from "react";
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
2
|
import { DateTime } from "luxon";
|
|
3
3
|
import { Col, Form, Row } from "react-bootstrap";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
|
-
import { useFormContext } from "react-hook-form";
|
|
6
|
-
import { DATE_FORMAT
|
|
5
|
+
import { RegisterOptions, useFormContext } from "react-hook-form";
|
|
6
|
+
import { DATE_FORMAT } from "@licklist/core/dist/Config";
|
|
7
7
|
import { RecurringDatePickerInputValues } from "./RecurringDatePickerInput";
|
|
8
8
|
|
|
9
9
|
interface RecurrenceIntervalAndFrequencyInputProps {
|
|
@@ -11,8 +11,17 @@ interface RecurrenceIntervalAndFrequencyInputProps {
|
|
|
11
11
|
minDate?: string;
|
|
12
12
|
startDateLabel?: string;
|
|
13
13
|
startTimeLabel?: string;
|
|
14
|
+
isProductSet?: boolean;
|
|
14
15
|
endDateLabel?: string;
|
|
15
16
|
endTimeLabel?: string;
|
|
17
|
+
startTimeRules?: Pick<
|
|
18
|
+
RegisterOptions,
|
|
19
|
+
"max" | "min" | "validate" | "required" | "pattern"
|
|
20
|
+
>;
|
|
21
|
+
endTimeRules?: Pick<
|
|
22
|
+
RegisterOptions,
|
|
23
|
+
"max" | "min" | "validate" | "required" | "pattern"
|
|
24
|
+
>;
|
|
16
25
|
}
|
|
17
26
|
|
|
18
27
|
function RecurrenceIntervalAndFrequencyInput({
|
|
@@ -22,15 +31,18 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
22
31
|
startTimeLabel,
|
|
23
32
|
endDateLabel,
|
|
24
33
|
endTimeLabel,
|
|
34
|
+
startTimeRules,
|
|
35
|
+
endTimeRules,
|
|
36
|
+
isProductSet,
|
|
25
37
|
}: RecurrenceIntervalAndFrequencyInputProps) {
|
|
26
38
|
const { t } = useTranslation(["Design", "Notification", "App"]);
|
|
27
39
|
|
|
28
40
|
const {
|
|
29
41
|
getValues,
|
|
42
|
+
setValue,
|
|
30
43
|
formState: { errors },
|
|
31
44
|
register,
|
|
32
45
|
trigger,
|
|
33
|
-
setValue,
|
|
34
46
|
} = useFormContext<RecurringDatePickerInputValues>();
|
|
35
47
|
|
|
36
48
|
const startDate = getValues("startDate");
|
|
@@ -38,6 +50,14 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
38
50
|
const startTime = getValues("startTime");
|
|
39
51
|
const endTime = getValues("endTime");
|
|
40
52
|
|
|
53
|
+
const [withOutEndDate, setWithOutEndDate] = useState<boolean>(!endDate);
|
|
54
|
+
const isProductSetWithoutEndDate = isProductSet && withOutEndDate;
|
|
55
|
+
|
|
56
|
+
const handleWithoutEndDate = () => {
|
|
57
|
+
setValue("endDate", "");
|
|
58
|
+
setWithOutEndDate((prevWithOutEndDateValue) => !prevWithOutEndDateValue);
|
|
59
|
+
};
|
|
60
|
+
|
|
41
61
|
useEffect(() => {
|
|
42
62
|
if (!startDate || !endDate) {
|
|
43
63
|
return;
|
|
@@ -47,6 +67,9 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
47
67
|
}, [startDate]);
|
|
48
68
|
|
|
49
69
|
useEffect(() => {
|
|
70
|
+
if (!startTime || !endTime) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
50
73
|
trigger("endTime");
|
|
51
74
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
52
75
|
}, [startTime]);
|
|
@@ -78,7 +101,7 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
78
101
|
<Form.Control
|
|
79
102
|
type="date"
|
|
80
103
|
{...register("endDate", {
|
|
81
|
-
required:
|
|
104
|
+
required: !isProductSetWithoutEndDate,
|
|
82
105
|
validate: (date) => {
|
|
83
106
|
if (!startDate || !date) {
|
|
84
107
|
return true;
|
|
@@ -99,7 +122,7 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
99
122
|
})}
|
|
100
123
|
defaultValue={endDate}
|
|
101
124
|
className={endDate && "date-input-with-value"}
|
|
102
|
-
disabled={disabled}
|
|
125
|
+
disabled={disabled || isProductSetWithoutEndDate}
|
|
103
126
|
min={startDate || undefined}
|
|
104
127
|
isInvalid={Boolean(errors.endDate)}
|
|
105
128
|
/>
|
|
@@ -107,6 +130,21 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
107
130
|
{errors.endDate?.message}
|
|
108
131
|
</Form.Control.Feedback>
|
|
109
132
|
</Form.Group>
|
|
133
|
+
{isProductSet && (
|
|
134
|
+
<Form.Group className="custom-checkbox">
|
|
135
|
+
<Form.Check custom type="checkbox">
|
|
136
|
+
<Form.Check.Input
|
|
137
|
+
type="checkbox"
|
|
138
|
+
className="checkbox-input"
|
|
139
|
+
checked={withOutEndDate}
|
|
140
|
+
onChange={handleWithoutEndDate}
|
|
141
|
+
/>
|
|
142
|
+
<Form.Check.Label>
|
|
143
|
+
{t("Design:infiniteProductSet")}
|
|
144
|
+
</Form.Check.Label>
|
|
145
|
+
</Form.Check>
|
|
146
|
+
</Form.Group>
|
|
147
|
+
)}
|
|
110
148
|
</Col>
|
|
111
149
|
</Row>
|
|
112
150
|
|
|
@@ -118,15 +156,15 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
118
156
|
</Form.Label>
|
|
119
157
|
<Form.Control
|
|
120
158
|
type="time"
|
|
121
|
-
{...register("startTime", { required: false })}
|
|
122
|
-
onChange={({ target: { value } }) => {
|
|
123
|
-
setValue("startTime", `${value}:00`);
|
|
124
|
-
}}
|
|
159
|
+
{...register("startTime", { required: false, ...startTimeRules })}
|
|
125
160
|
placeholder="hh:mm"
|
|
126
161
|
defaultValue={startTime}
|
|
127
162
|
disabled={disabled}
|
|
128
163
|
isInvalid={Boolean(errors.startTime)}
|
|
129
164
|
/>
|
|
165
|
+
<Form.Control.Feedback type="invalid">
|
|
166
|
+
{errors.startTime?.message}
|
|
167
|
+
</Form.Control.Feedback>
|
|
130
168
|
</Form.Group>
|
|
131
169
|
</Col>
|
|
132
170
|
|
|
@@ -141,28 +179,19 @@ function RecurrenceIntervalAndFrequencyInput({
|
|
|
141
179
|
if (!startTime || !time) {
|
|
142
180
|
return true;
|
|
143
181
|
}
|
|
144
|
-
const currentStartTime = DateTime.
|
|
145
|
-
|
|
146
|
-
TIME_FULL_FORMAT
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
const currentEndTime = DateTime.fromFormat(
|
|
150
|
-
time,
|
|
151
|
-
TIME_FULL_FORMAT
|
|
152
|
-
);
|
|
182
|
+
const currentStartTime = DateTime.fromISO(startTime);
|
|
183
|
+
const currentEndTime = DateTime.fromISO(time);
|
|
153
184
|
|
|
154
|
-
return currentEndTime?.diff(currentStartTime, ["
|
|
155
|
-
?.
|
|
185
|
+
return currentEndTime?.diff(currentStartTime, ["minutes"])
|
|
186
|
+
?.minutes >= 0
|
|
156
187
|
? true
|
|
157
188
|
: `${t(`Validation:fieldLaterDate`, {
|
|
158
189
|
attribute: t("Design:endTimeSmall"),
|
|
159
190
|
min: t("Design:startTimeSmall"),
|
|
160
191
|
})}`;
|
|
161
192
|
},
|
|
193
|
+
...endTimeRules,
|
|
162
194
|
})}
|
|
163
|
-
onChange={({ target: { value } }) => {
|
|
164
|
-
setValue("endTime", `${value}:59`, { shouldValidate: true });
|
|
165
|
-
}}
|
|
166
195
|
placeholder="hh:mm"
|
|
167
196
|
defaultValue={endTime}
|
|
168
197
|
disabled={disabled}
|
|
@@ -7,6 +7,7 @@ import { useIntl } from "react-intl";
|
|
|
7
7
|
import {
|
|
8
8
|
DATE_TIME_FORMAT,
|
|
9
9
|
DATE_TIME_FULL_FORMAT,
|
|
10
|
+
TIME_FULL_FORMAT,
|
|
10
11
|
} from "@licklist/core/dist/Config/Date";
|
|
11
12
|
import { usePreviousValue } from "@licklist/plugins/dist/hooks/Value/usePreviousValue";
|
|
12
13
|
import { FormProvider, useForm } from "react-hook-form";
|
|
@@ -25,6 +26,7 @@ export interface RecurringDatePickerInputProps {
|
|
|
25
26
|
initialFrequency?: Frequency;
|
|
26
27
|
setInitialStartDateAfterSelect?: boolean;
|
|
27
28
|
minDate?: string;
|
|
29
|
+
isProductSet?: boolean;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
export interface RecurringDatePickerInputValues {
|
|
@@ -38,6 +40,7 @@ export interface RecurringDatePickerInputValues {
|
|
|
38
40
|
byweekday?: Weekday[];
|
|
39
41
|
until?: Date;
|
|
40
42
|
count?: number;
|
|
43
|
+
withOutEndDate?: boolean;
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
export function RecurringDatePickerInput({
|
|
@@ -49,6 +52,7 @@ export function RecurringDatePickerInput({
|
|
|
49
52
|
setInitialStartDateAfterSelect = false,
|
|
50
53
|
children,
|
|
51
54
|
minDate,
|
|
55
|
+
isProductSet,
|
|
52
56
|
}: PropsWithChildren<RecurringDatePickerInputProps>) {
|
|
53
57
|
const { t } = useTranslation(["Design"]);
|
|
54
58
|
|
|
@@ -101,6 +105,11 @@ export function RecurringDatePickerInput({
|
|
|
101
105
|
})
|
|
102
106
|
: nextState.byweekday;
|
|
103
107
|
|
|
108
|
+
const endTimeNextState = nextState?.endTime
|
|
109
|
+
? DateTime.fromISO(nextState?.endTime).toFormat(TIME_FULL_FORMAT)
|
|
110
|
+
: "";
|
|
111
|
+
const endDateNextState = nextState?.endDate ?? "";
|
|
112
|
+
|
|
104
113
|
const rrule = RRule.optionsToString({
|
|
105
114
|
// @TODO: investigate if we need these fields
|
|
106
115
|
// dtstart: getDateTimeObject(startDate, startTime).toJSDate(),
|
|
@@ -115,6 +124,8 @@ export function RecurringDatePickerInput({
|
|
|
115
124
|
|
|
116
125
|
onChange({
|
|
117
126
|
...nextState,
|
|
127
|
+
endDate: endDateNextState,
|
|
128
|
+
endTime: endTimeNextState,
|
|
118
129
|
rrule,
|
|
119
130
|
});
|
|
120
131
|
};
|
|
@@ -179,6 +190,7 @@ export function RecurringDatePickerInput({
|
|
|
179
190
|
<RecurrenceIntervalAndFrequencyInput
|
|
180
191
|
disabled={disabled}
|
|
181
192
|
minDate={minDate}
|
|
193
|
+
isProductSet={isProductSet}
|
|
182
194
|
/>
|
|
183
195
|
|
|
184
196
|
{children}
|
|
@@ -15,7 +15,7 @@ export function ReportForm({
|
|
|
15
15
|
onSubmit,
|
|
16
16
|
onHide,
|
|
17
17
|
hasPermission,
|
|
18
|
-
}: ReportFormProps)
|
|
18
|
+
}: ReportFormProps) {
|
|
19
19
|
const { t } = useTranslation(["App"]);
|
|
20
20
|
const fromDateInput = useRef<HTMLInputDateElement | null>(null);
|
|
21
21
|
const toDateInput = useRef<HTMLInputDateElement | null>(null);
|
|
@@ -3,6 +3,7 @@ import clsx from "clsx";
|
|
|
3
3
|
import { useTranslation } from "react-i18next";
|
|
4
4
|
import { DateTime } from "luxon";
|
|
5
5
|
import { Order } from "@licklist/core/dist/DataMapper/Order/OrderDataMapper";
|
|
6
|
+
import { TIME_FORMAT } from "@licklist/core/dist/Config";
|
|
6
7
|
import { formatDateStringForEvent } from "@licklist/plugins/dist/utils/formatDate";
|
|
7
8
|
import Icon from "../../../../static/Icon";
|
|
8
9
|
|
|
@@ -55,10 +56,10 @@ export const ResultCard = ({
|
|
|
55
56
|
{t("status")}: {t(status)}
|
|
56
57
|
</p>
|
|
57
58
|
<p>
|
|
58
|
-
{t("date")}: {formatDateStringForEvent(startDate)}
|
|
59
|
+
{t("date")}: {formatDateStringForEvent(startDate, false)}
|
|
59
60
|
</p>
|
|
60
61
|
<p>
|
|
61
|
-
{t("time")}: {DateTime.fromISO(startDate).toFormat(
|
|
62
|
+
{t("time")}: {DateTime.fromISO(startDate).toFormat(TIME_FORMAT)}
|
|
62
63
|
</p>
|
|
63
64
|
</div>
|
|
64
65
|
</div>
|
|
@@ -7,6 +7,9 @@ import {
|
|
|
7
7
|
SNIPPET_TYPE_VENUE_MAP,
|
|
8
8
|
} from "@licklist/core/dist/DataMapper/Provider/SnippetDataMapper";
|
|
9
9
|
import { ProductSet } from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
|
|
10
|
+
import { DateTime } from "luxon";
|
|
11
|
+
import { Calendar, defaultStartDay } from "../../../calendar";
|
|
12
|
+
import { getMonthCalendarDates } from "../../../calendar/utils";
|
|
10
13
|
import { IframeEventCard } from "../../../iframe/event/event-card";
|
|
11
14
|
import { SettingButton } from "../settings";
|
|
12
15
|
import {
|
|
@@ -24,7 +27,6 @@ import {
|
|
|
24
27
|
} from "../../../iframe";
|
|
25
28
|
import { NumberInput } from "../../../iframe/order-process/components/CategoryProduct/components/NumberInput";
|
|
26
29
|
import { SnippetTemplateContext } from "../context/snippetTemplate";
|
|
27
|
-
import { EventCalendar } from "../../../iframe/event/event-calendar";
|
|
28
30
|
|
|
29
31
|
const DEFAULT_IMAGE =
|
|
30
32
|
"https://images.unsplash.com/photo-1638988319382-90e61be77c59?ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80";
|
|
@@ -52,6 +54,10 @@ export function Preview({
|
|
|
52
54
|
onSettingClick();
|
|
53
55
|
};
|
|
54
56
|
|
|
57
|
+
const [currentDate, setCurrentDate] = useState<DateTime>(defaultStartDay);
|
|
58
|
+
const [selectedDate, setSelectedDate] = useState<DateTime | null>(null);
|
|
59
|
+
const calendarDates = getMonthCalendarDates(currentDate);
|
|
60
|
+
|
|
55
61
|
return (
|
|
56
62
|
<div className="w-100 h-100 snippet-template-preview">
|
|
57
63
|
<Page
|
|
@@ -196,7 +202,13 @@ export function Preview({
|
|
|
196
202
|
className="mt-3 m-0"
|
|
197
203
|
containerClassName="mt-5 pt-5"
|
|
198
204
|
>
|
|
199
|
-
<
|
|
205
|
+
<Calendar
|
|
206
|
+
currentDate={currentDate}
|
|
207
|
+
setCurrentDate={setCurrentDate}
|
|
208
|
+
selectedDate={selectedDate}
|
|
209
|
+
setSelectedDate={setSelectedDate}
|
|
210
|
+
calendarDates={calendarDates}
|
|
211
|
+
/>
|
|
200
212
|
</SettingButton>
|
|
201
213
|
</div>
|
|
202
214
|
<div className="pt-4">
|
|
@@ -4,7 +4,7 @@ import RouteService from "@licklist/plugins/dist/services/Route/RouteService";
|
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import Icon from "./Icon";
|
|
6
6
|
|
|
7
|
-
function RestrictedAccess()
|
|
7
|
+
function RestrictedAccess() {
|
|
8
8
|
const { t } = useTranslation("Design");
|
|
9
9
|
|
|
10
10
|
return (
|
|
@@ -15,6 +15,7 @@ interface FormNumberInputProps {
|
|
|
15
15
|
label: string;
|
|
16
16
|
fieldName: string;
|
|
17
17
|
step?: number;
|
|
18
|
+
onChange?: (value: number) => void;
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
rules?: Pick<
|
|
20
21
|
RegisterOptions,
|
|
@@ -28,6 +29,7 @@ export const FormNumberInput = ({
|
|
|
28
29
|
step = 1,
|
|
29
30
|
rules,
|
|
30
31
|
disabled,
|
|
32
|
+
onChange,
|
|
31
33
|
}: FormNumberInputProps) => {
|
|
32
34
|
const controlId = useId();
|
|
33
35
|
const { t } = useTranslation("Validation");
|
|
@@ -76,7 +78,12 @@ export const FormNumberInput = ({
|
|
|
76
78
|
disabled={disabled}
|
|
77
79
|
isInvalid={HookFormService.isInvalid(fieldName, errors)}
|
|
78
80
|
{...field}
|
|
79
|
-
onChange={(event) =>
|
|
81
|
+
onChange={(event) => {
|
|
82
|
+
if (onChange) {
|
|
83
|
+
onChange(Number(event.target.value));
|
|
84
|
+
}
|
|
85
|
+
field.onChange(Number(event.target.value));
|
|
86
|
+
}}
|
|
80
87
|
onFocus={onFocus}
|
|
81
88
|
/>
|
|
82
89
|
)}
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
align-items: center;
|
|
7
7
|
cursor: pointer;
|
|
8
8
|
height: 5rem;
|
|
9
|
+
padding: 0.375rem;
|
|
9
10
|
border: 2px solid transparent;
|
|
10
|
-
border:
|
|
11
|
+
border-radius: 0.5rem;
|
|
11
12
|
background-color: $snippet-product-set-background-color;
|
|
12
13
|
color: $snippet-product-set-font-color;
|
|
13
14
|
transition: $color-transition;
|