@licklist/design 0.72.71 → 0.72.72-dev.1

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.
Files changed (196) hide show
  1. package/dist/affiliate/form/AffiliateForm.d.ts.map +1 -1
  2. package/dist/auth/Authorizer.d.ts.map +1 -1
  3. package/dist/auth/Authorizer.js +2 -1
  4. package/dist/auth/Login/LoginComponent.js +2 -1
  5. package/dist/date-time-button/DateTimeButton.js +1 -4
  6. package/dist/events/edit-event-modal/component/SaleDeadline/SaleDeadline.d.ts +2 -1
  7. package/dist/events/edit-event-modal/component/SaleDeadline/SaleDeadline.d.ts.map +1 -1
  8. package/dist/events/edit-event-modal/component/SaleDeadline/SaleDeadline.js +3 -2
  9. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.js +2 -1
  10. package/dist/events/edit-event-modal/utils/getDefaultProductSet.d.ts.map +1 -1
  11. package/dist/events/edit-event-modal/utils/getDefaultProductSet.js +0 -1
  12. package/dist/events/event-statistic-modal/EventStatisticModal.d.ts +2 -1
  13. package/dist/events/event-statistic-modal/EventStatisticModal.d.ts.map +1 -1
  14. package/dist/events/event-statistic-modal/EventStatisticModal.js +2 -2
  15. package/dist/events/event-statistic-modal/hooks/useTableData.d.ts +1 -1
  16. package/dist/events/event-statistic-modal/hooks/useTableData.d.ts.map +1 -1
  17. package/dist/events/event-statistic-modal/hooks/useTableData.js +2 -1
  18. package/dist/events/event-statistic-modal/utils/index.js +3 -3
  19. package/dist/events/event-venue-map/EventVenueMap.d.ts.map +1 -1
  20. package/dist/events/event-venue-map/EventVenueMap.js +1 -0
  21. package/dist/events/event-venue-map/hooks/useCanvasSize.d.ts.map +1 -1
  22. package/dist/events/event-venue-map/hooks/useCanvasSize.js +11 -4
  23. package/dist/header/BookeditHeader.d.ts +1 -4
  24. package/dist/header/BookeditHeader.d.ts.map +1 -1
  25. package/dist/header/Header.d.ts +10 -2
  26. package/dist/header/Header.d.ts.map +1 -1
  27. package/dist/header/Header.js +31 -5
  28. package/dist/header/index.d.ts +2 -2
  29. package/dist/header/index.d.ts.map +1 -1
  30. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.js +2 -3
  31. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.d.ts.map +1 -1
  32. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.js +4 -11
  33. package/dist/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.d.ts.map +1 -1
  34. package/dist/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.d.ts.map +1 -1
  35. package/dist/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.js +13 -0
  36. package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts.map +1 -1
  37. package/dist/iframe/ryft/utils/ryft-form.d.ts.map +1 -1
  38. package/dist/iframe/ryft/utils/ryft-form.js +4 -5
  39. package/dist/index.js +0 -3
  40. package/dist/layout/DropDown.d.ts +2 -1
  41. package/dist/layout/DropDown.d.ts.map +1 -1
  42. package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
  43. package/dist/notification/email-template/control/EmailTemplateControl.js +3 -0
  44. package/dist/product-set/control/ProductSetControl.js +1 -1
  45. package/dist/product-set/form/ProductSetForm.d.ts +4 -1
  46. package/dist/product-set/form/ProductSetForm.d.ts.map +1 -1
  47. package/dist/product-set/form/ProductSetForm.js +1 -1
  48. package/dist/product-set/form/ProductZonesControl.d.ts.map +1 -1
  49. package/dist/product-set/form/ProductZonesControl.js +0 -2
  50. package/dist/product-set/form/ProductsControl.js +1 -0
  51. package/dist/product-set/form/SubProductsControl.d.ts.map +1 -1
  52. package/dist/product-set/form/SubProductsControl.js +0 -3
  53. package/dist/product-set/form/VenueMapsControl.d.ts.map +1 -1
  54. package/dist/product-set/form/VenueMapsControl.js +0 -3
  55. package/dist/product-set/product/ProductControl.d.ts.map +1 -1
  56. package/dist/product-set/product/booking-management/ProductBookingManagementControl.d.ts.map +1 -1
  57. package/dist/product-set/product/booking-management/ProductBookingManagementControl.js +6 -0
  58. package/dist/product-set/product/deposit/ProductDepositControl.d.ts.map +1 -1
  59. package/dist/product-set/product/deposit/ProductDepositControl.js +3 -0
  60. package/dist/product-set/product/duration/ProductDurationControl.d.ts.map +1 -1
  61. package/dist/product-set/product/duration/ProductDurationControl.js +6 -0
  62. package/dist/product-set/product/price/ProductPriceControl.d.ts.map +1 -1
  63. package/dist/product-set/product/price/ProductPriceControl.js +3 -0
  64. package/dist/product-set/product/quantity/ProductQuantityConstantControl.d.ts.map +1 -1
  65. package/dist/product-set/product/quantity/ProductQuantityConstantControl.js +6 -0
  66. package/dist/product-set/product/quantity/ProductQuantityControl.d.ts.map +1 -1
  67. package/dist/product-set/product/quantity/ProductQuantityControl.js +6 -0
  68. package/dist/product-set/product/quantity/ProductQuantityRechargingControl.d.ts.map +1 -1
  69. package/dist/product-set/product/quantity/ProductQuantityRechargingControl.js +4 -1
  70. package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
  71. package/dist/product-set/product-category/ProductCategoryControl.js +12 -0
  72. package/dist/product-set/utils/index.d.ts +1 -1
  73. package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
  74. package/dist/recurrence-input/RecurrenceEndInput.js +3 -0
  75. package/dist/recurring-date-picker-input/RecurrenceEndInput.d.ts.map +1 -1
  76. package/dist/resource/form/components/CapacityControl.d.ts.map +1 -1
  77. package/dist/resource/form/components/CapacityControl.js +3 -0
  78. package/dist/resource/form/components/SortControl.d.ts.map +1 -1
  79. package/dist/resource/form/components/SortControl.js +3 -0
  80. package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
  81. package/dist/sales/booking/results/components/ResultCard.js +0 -2
  82. package/dist/sales/coupon/control/CouponFormControl.d.ts.map +1 -1
  83. package/dist/sales/coupon/control/CouponFormControl.js +21 -0
  84. package/dist/sales/coupon/form/CouponFrom.d.ts +2 -1
  85. package/dist/sales/coupon/form/CouponFrom.d.ts.map +1 -1
  86. package/dist/sales/coupon/form/CouponFrom.js +19 -6
  87. package/dist/setting/dashboard/DashboardSettingForm.d.ts.map +1 -1
  88. package/dist/setting/dashboard/DashboardSettingForm.js +4 -1
  89. package/dist/setting/index.d.ts +0 -2
  90. package/dist/setting/index.d.ts.map +1 -1
  91. package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
  92. package/dist/static/CurrencyNumberInput.d.ts.map +1 -1
  93. package/dist/static/CurrencyNumberInput.js +3 -0
  94. package/dist/static/form-number-input/FormNumberInput.d.ts.map +1 -1
  95. package/dist/static/form-number-input/FormNumberInput.js +3 -0
  96. package/dist/static/number-input/NumberInput.d.ts.map +1 -1
  97. package/dist/static/number-input/NumberInput.js +3 -0
  98. package/dist/styles/iframe-events/Calendar.scss +1 -1
  99. package/dist/styles/iframe-external-modal/IframeExternalModal.scss +2 -2
  100. package/dist/styles/product-set/ProductSetForm.scss +2 -3
  101. package/dist/styles/ryft-payment-form/RyftPaymentForm.scss +1 -3
  102. package/dist/styles/sales/BookingResults.scss +1 -1
  103. package/dist/zone/form/components/GameDurationControl.d.ts.map +1 -1
  104. package/dist/zone/form/components/GameDurationControl.js +3 -0
  105. package/dist/zone/form/components/SortControl.d.ts.map +1 -1
  106. package/dist/zone/form/components/SortControl.js +3 -0
  107. package/package.json +13 -7
  108. package/src/affiliate/form/AffiliateForm.tsx +1 -0
  109. package/src/auth/Authorizer.tsx +1 -0
  110. package/src/auth/Login/LoginComponent.tsx +1 -1
  111. package/src/date-time-button/DateTimeButton.tsx +1 -3
  112. package/src/events/edit-event-modal/component/SaleDeadline/SaleDeadline.tsx +12 -4
  113. package/src/events/edit-event-modal/utils/getDefaultProductSet.ts +0 -1
  114. package/src/events/event-statistic-modal/EventStatisticModal.tsx +3 -1
  115. package/src/events/event-statistic-modal/hooks/useTableData.tsx +2 -1
  116. package/src/events/event-statistic-modal/utils/index.ts +4 -4
  117. package/src/events/event-venue-map/EventVenueMap.tsx +1 -0
  118. package/src/events/event-venue-map/hooks/useCanvasSize.ts +5 -1
  119. package/src/header/BookeditHeader.tsx +1 -5
  120. package/src/header/Header.stories.tsx +39 -90
  121. package/src/header/Header.tsx +47 -9
  122. package/src/header/index.ts +2 -2
  123. package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx +2 -2
  124. package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx +5 -13
  125. package/src/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.tsx +1 -0
  126. package/src/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.tsx +9 -0
  127. package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +1 -0
  128. package/src/iframe/ryft/utils/ryft-form.ts +6 -5
  129. package/src/layout/DropDown.tsx +1 -1
  130. package/src/notification/email-template/control/EmailTemplateControl.tsx +1 -0
  131. package/src/product-set/control/ProductSetControl.tsx +1 -1
  132. package/src/product-set/form/ProductSetForm.tsx +6 -2
  133. package/src/product-set/form/ProductZonesControl.tsx +1 -4
  134. package/src/product-set/form/SubProductsControl.tsx +0 -3
  135. package/src/product-set/form/VenueMapsControl.tsx +0 -3
  136. package/src/product-set/product/ProductControl.tsx +0 -1
  137. package/src/product-set/product/advanced-options/AdvancedOptions.tsx +1 -1
  138. package/src/product-set/product/booking-management/ProductBookingManagementControl.tsx +2 -0
  139. package/src/product-set/product/deposit/ProductDepositControl.tsx +1 -0
  140. package/src/product-set/product/duration/ProductDurationControl.tsx +2 -0
  141. package/src/product-set/product/price/ProductPriceControl.tsx +1 -0
  142. package/src/product-set/product/quantity/ProductQuantityConstantControl.tsx +2 -0
  143. package/src/product-set/product/quantity/ProductQuantityControl.tsx +2 -0
  144. package/src/product-set/product/quantity/ProductQuantityRechargingControl.tsx +1 -0
  145. package/src/product-set/product-category/ProductCategoryControl.tsx +4 -0
  146. package/src/product-set/product-zone/ProductZoneControl.tsx +1 -1
  147. package/src/recurrence-input/RecurrenceEndInput.tsx +1 -0
  148. package/src/recurring-date-picker-input/RecurrenceEndInput.tsx +1 -0
  149. package/src/resource/form/components/CapacityControl.tsx +1 -0
  150. package/src/resource/form/components/SortControl.tsx +1 -0
  151. package/src/sales/booking/results/components/ResultCard.tsx +0 -2
  152. package/src/sales/coupon/control/CouponFormControl.tsx +7 -0
  153. package/src/sales/coupon/form/CouponFrom.tsx +20 -8
  154. package/src/setting/dashboard/DashboardSettingForm.tsx +1 -0
  155. package/src/setting/index.ts +0 -2
  156. package/src/sortable-tree/SortableTreeItem.tsx +1 -6
  157. package/src/static/CurrencyNumberInput.tsx +1 -0
  158. package/src/static/form-number-input/FormNumberInput.tsx +1 -0
  159. package/src/static/number-input/NumberInput.tsx +1 -0
  160. package/src/styles/iframe-events/Calendar.scss +1 -1
  161. package/src/styles/iframe-external-modal/IframeExternalModal.scss +2 -2
  162. package/src/styles/product-set/ProductSetForm.scss +2 -3
  163. package/src/styles/ryft-payment-form/RyftPaymentForm.scss +1 -3
  164. package/src/styles/sales/BookingResults.scss +1 -1
  165. package/src/zone/form/components/GameDurationControl.tsx +1 -0
  166. package/src/zone/form/components/SortControl.tsx +1 -0
  167. package/yarn.lock +287 -297
  168. package/dist/assets/logo/licklist.sm.svg.js +0 -33
  169. package/dist/assets/logo/licklist.svg.js +0 -16
  170. package/dist/header/LicklistHeader.d.ts +0 -15
  171. package/dist/header/LicklistHeader.d.ts.map +0 -1
  172. package/dist/header/LicklistHeader.js +0 -23
  173. package/dist/setting/admin/AdminSettingForm.d.ts +0 -25
  174. package/dist/setting/admin/AdminSettingForm.d.ts.map +0 -1
  175. package/dist/setting/admin/AdminSettingForm.js +0 -220
  176. package/dist/setting/admin/PaymentFeeForm.d.ts +0 -13
  177. package/dist/setting/admin/PaymentFeeForm.d.ts.map +0 -1
  178. package/dist/setting/admin/PaymentFeeForm.js +0 -424
  179. package/dist/setting/admin/index.d.ts +0 -2
  180. package/dist/setting/admin/index.d.ts.map +0 -1
  181. package/dist/setting/system/SystemSettingForm.d.ts +0 -10
  182. package/dist/setting/system/SystemSettingForm.d.ts.map +0 -1
  183. package/dist/setting/system/SystemSettingForm.js +0 -95
  184. package/dist/setting/system/index.d.ts +0 -2
  185. package/dist/setting/system/index.d.ts.map +0 -1
  186. package/dist/types/currency.d.ts +0 -5
  187. package/dist/types/currency.d.ts.map +0 -1
  188. package/src/header/LicklistHeader.tsx +0 -46
  189. package/src/setting/admin/AdminSetting.stories.tsx +0 -52
  190. package/src/setting/admin/AdminSettingForm.tsx +0 -196
  191. package/src/setting/admin/PaymentFeeForm.tsx +0 -304
  192. package/src/setting/admin/index.ts +0 -1
  193. package/src/setting/system/SystemSetting.stories.tsx +0 -26
  194. package/src/setting/system/SystemSettingForm.tsx +0 -62
  195. package/src/setting/system/index.ts +0 -1
  196. package/src/types/currency.ts +0 -4
@@ -1,7 +1,7 @@
1
1
  import BookeditHeader from './BookeditHeader'
2
- import LicklistHeader from './LicklistHeader'
3
2
  import Header from './Header'
4
3
 
5
4
  export * from './elements'
6
5
 
7
- export { LicklistHeader, BookeditHeader, Header }
6
+ export { BookeditHeader, Header }
7
+ export type { NavigationItem } from './Header'
@@ -48,12 +48,12 @@ export const ProductWithModifierSetModal = ({
48
48
  </button>
49
49
  </div>
50
50
  <div className='right-block' id='select-event-container'>
51
- <div className={clsx('manual-booking-container', !product?.images?.length && 'tw-mt-8')}>
51
+ <div className={clsx('manual-booking-container', !product.images.length && 'tw-mt-8')}>
52
52
  <div className='manual-booking-header'>
53
53
  <TicketDescription
54
54
  title={product.name}
55
55
  description={product.description}
56
- className={clsx('iframe-event__product-description', !product?.images?.length && 'mt-6')}
56
+ className={clsx('iframe-event__product-description', !product.images.length && 'mt-6')}
57
57
  classNameProductModal='d-block'
58
58
  images={product.images}
59
59
  isRequired={product.isRequired}
@@ -35,9 +35,6 @@ export const ModifiersSetControl = ({
35
35
  const { t } = useTranslation('App')
36
36
 
37
37
  const orderModifiersSets = watch(`${productId}.orderProductModifiers`)
38
- const filteredOrderModifiersSets = orderModifiersSets
39
- ?.flat(Infinity)
40
- ?.filter((item) => item && typeof item === 'object')
41
38
 
42
39
  const { formatNumber } = useIntl()
43
40
  const formatToCurrency = (value: number) =>
@@ -61,9 +58,8 @@ export const ModifiersSetControl = ({
61
58
  const selectedModifier = modifiers?.find(
62
59
  (item) => item.id === Number(e.target.defaultValue || e.target.id),
63
60
  )
64
-
65
61
  const checkSelectedModifier =
66
- filteredOrderModifiersSets?.find(
62
+ orderModifiersSets?.find(
67
63
  (modifier) => modifier?.modifierId === selectedModifier?.id,
68
64
  )?.quantity === 1
69
65
 
@@ -129,11 +125,9 @@ export const ModifiersSetControl = ({
129
125
  )
130
126
  }, [isEditMode])
131
127
 
132
- const radioButtonDefaultModifier = currentOrderModifiersSets
133
- .find((modifier) =>
134
- modifierSet.modifiers.some((rl) => rl.id === modifier.modifierId),
135
- )
136
- ?.modifierId.toString()
128
+ const radioButtonDefaultModifier = currentOrderModifiersSets.find((modifier) =>
129
+ modifierSet.modifiers.some((rl) => rl.id === modifier.modifierId)
130
+ )?.modifierId.toString();
137
131
 
138
132
  return (
139
133
  <>
@@ -173,9 +167,7 @@ export const ModifiersSetControl = ({
173
167
  inline
174
168
  id={modifier.id.toString()}
175
169
  defaultChecked={!!selectedOrderModifierId}
176
- defaultValue={
177
- selectedOrderModifierId || modifier.id.toString()
178
- }
170
+ defaultValue={selectedOrderModifierId || modifier.id.toString()}
179
171
  checked={field.value === modifier.id.toString()}
180
172
  onChange={onChange}
181
173
  type='radio'
@@ -3,6 +3,7 @@ import { useIntl } from 'react-intl'
3
3
  import * as Config from '@licklist/core/dist/Config'
4
4
  import { OrderItem } from '@licklist/plugins/dist/types/context/Iframe/orderItems'
5
5
  import { OrderModifierByProduct } from '@licklist/core/dist/DataMapper/Order/OrderModifiierByProduct'
6
+ import { calculateTotalModifiersPrice } from '../../utils'
6
7
  import { ProductWithModifier } from '../../../CategoryProduct/components/ProductWithModifier/ProductWithModifier'
7
8
 
8
9
 
@@ -89,6 +89,7 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
89
89
  <FormControl
90
90
  type='number'
91
91
  onChange={(e) => handleChangeValue(Number(e.target.value))}
92
+ onWheel={(event) => event.currentTarget.blur()}
92
93
  value={value}
93
94
  min={0}
94
95
  max={max}
@@ -101,6 +102,14 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
101
102
  <button
102
103
  type='button'
103
104
  onClick={handleArrowUpClick}
105
+ onWheel={(event) => event.currentTarget.blur()}
106
+ onFocus={(event) =>
107
+ event.target.addEventListener(
108
+ 'wheel',
109
+ (event) => event.preventDefault(),
110
+ { passive: false },
111
+ )
112
+ }
104
113
  className={`payment-number-input__btn-up ${
105
114
  plusButtonGreyedOut && 'disabled-number-input-button'
106
115
  }`}
@@ -61,6 +61,7 @@ const processedPaymentSummary = ({
61
61
  const total = order.fullAmount || calculateTotalPrice(order, externalPaymentDetail)
62
62
 
63
63
  const totalDiscount = calculateTotalDiscount(order.payments)
64
+
64
65
  let summaryItems: SummaryItem[] = [
65
66
  {
66
67
  translateKey: AMOUNT_TOTAL,
@@ -61,20 +61,22 @@ export const injectComponentsInRyftForm = ({
61
61
  divider.id = 'mobile-pay-divider'
62
62
  container.id = 'mobile-pay-divider-container'
63
63
  container.append(dividerText, divider)
64
- const payIframe = document.getElementById("ryft-pay-iframe");
64
+ const payIframe = document.getElementById('ryft-pay-iframe')
65
65
  if (payIframe) {
66
66
  const formBox = document.getElementById('form-disable-box')
67
67
  if (formBox) {
68
- formBox.style.display = isDisableButton ? "block" : "none"
68
+ formBox.style.display = isDisableButton ? 'block' : 'none'
69
69
  }
70
70
 
71
71
  const googleButton = document.getElementById(
72
72
  'gpay-button-online-api-id',
73
73
  ) as HTMLButtonElement
74
- const appleButton =document.getElementById("ryft-pay-apple-pay-button") as HTMLButtonElement
74
+ const appleButton = document.getElementById(
75
+ 'ryft-pay-apple-pay-button',
76
+ ) as HTMLButtonElement
75
77
  if (googleButton) {
76
78
  googleButton.disabled = isDisableButton
77
- googleButton.style.opacity = isDisableButton ? '1' : '0.6'
79
+ googleButton.style.opacity = !isDisableButton ? '1' : '0.6'
78
80
  }
79
81
  if (appleButton) {
80
82
  appleButton.disabled = isDisableButton
@@ -86,7 +88,6 @@ export const injectComponentsInRyftForm = ({
86
88
  const applePayButton = document.createElement('button')
87
89
  applePayButton.id = 'apple-pay'
88
90
  applePayButton.type = 'button'
89
- applePayButton.style.opacity = !isDisableButton ? '1' : '0.6'
90
91
  applePayButton.className = 'bg-dark btn btn-primary apple-pay-button'
91
92
  applePayButton.textContent = t('Events:payWithApple')
92
93
  applePayButton.onclick = onApplePayButtonClick
@@ -1,4 +1,4 @@
1
- import { forwardRef } from 'react'
1
+ import React, { forwardRef } from 'react'
2
2
 
3
3
  interface Props {
4
4
  children?: React.ReactNode | React.ReactNode[]
@@ -434,6 +434,7 @@ export const EmailTemplateControl = forwardRef(
434
434
  `templateOptionValues.${option?.id}.value`,
435
435
  )}
436
436
  type='number'
437
+ onWheel={(event) => event.currentTarget.blur()}
437
438
  placeholder={t(`Design:${option.name}`)}
438
439
  id={option.name + option.id}
439
440
  defaultValue={option.selectedValue || ''}
@@ -225,7 +225,7 @@ export function ProductSetControl({
225
225
  </>
226
226
  )}
227
227
 
228
- <SaleDeadline disabled={false} onlyBefore />
228
+ <SaleDeadline disabled={false} isProductSet />
229
229
 
230
230
  <div className='divider' />
231
231
 
@@ -13,7 +13,7 @@ import { isEqual } from 'lodash'
13
13
  import { ProviderBookingManagementSetting } from '@licklist/core/dist/DataMapper/Provider/ProviderBookingManagementSettingDataMapper'
14
14
  import { Zone } from '@licklist/core/dist/DataMapper/Provider/ZoneDataMapper'
15
15
  import { WorkHour } from '@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper'
16
- import { transformErrorToMessage } from '@licklist/plugins'
16
+ import { transformErrorToMessage } from '@licklist/plugins/dist/utils/error'
17
17
  import { Dialog, useDialogContext } from '../../modals/dialog'
18
18
  import {
19
19
  ProductSetControl,
@@ -33,12 +33,16 @@ import { ErrorModal } from '../../iframe/order-process/components/ErrorModal'
33
33
  export interface WithIsLoading {
34
34
  isLoading: boolean
35
35
  }
36
+ export interface WithIdOptional {
37
+ id?: number
38
+ }
39
+
36
40
  export interface WithId {
37
41
  id: number
38
42
  }
39
43
  export interface ProductSetFormValues
40
44
  extends FormValues,
41
- WithId,
45
+ WithIdOptional,
42
46
  ProductSetControlValues {
43
47
  steps: Step[]
44
48
  isOverrides?: boolean
@@ -1,7 +1,4 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-nocheck
3
- import React, { useContext, useState } from 'react'
4
-
1
+ import { useContext, useState } from 'react'
5
2
  import {
6
3
  ArrayPath,
7
4
  Controller,
@@ -70,9 +70,6 @@ export function SubProductsControl({
70
70
  images: subProducts[index]?.images as Image[],
71
71
  }
72
72
  // @ts-expect-error TS2345
73
- // @TODO fix prod type error
74
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
75
- // @ts-ignore
76
73
  append(subProductCopy)
77
74
  }}
78
75
  />
@@ -46,9 +46,6 @@ export const VenueMapsControl = ({
46
46
  url={image.url}
47
47
  name={name}
48
48
  points={points}
49
- // @TODO fix prod type error
50
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
51
- // @ts-ignore
52
49
  products={products}
53
50
  pointProducts={pointProducts}
54
51
  onPointProductsChange={onPointProductsChange}
@@ -34,7 +34,6 @@ import {
34
34
  } from 'react-hook-form'
35
35
  import { useTranslation } from 'react-i18next'
36
36
  import { useImages } from '@licklist/plugins/dist/hooks/Media/useImages'
37
-
38
37
  import {
39
38
  Image,
40
39
  IMAGE_TYPE_IMAGE,
@@ -1,4 +1,4 @@
1
- import React, { useContext } from 'react'
1
+ import { useContext } from 'react'
2
2
  import { Col, Form } from 'react-bootstrap'
3
3
  import { Controller, Path, useFormContext } from 'react-hook-form'
4
4
  import { HookFormService } from '@licklist/plugins'
@@ -86,6 +86,7 @@ export function ProductBookingManagementControl<T extends FormValues>(
86
86
  <Form.Control
87
87
  ref={ref}
88
88
  type='number'
89
+ onWheel={(event) => event.currentTarget.blur()}
89
90
  min={0}
90
91
  step={1}
91
92
  value={value as string}
@@ -129,6 +130,7 @@ export function ProductBookingManagementControl<T extends FormValues>(
129
130
  <Form.Control
130
131
  ref={ref}
131
132
  type='number'
133
+ onWheel={(event) => event.currentTarget.blur()}
132
134
  min='0'
133
135
  step='1'
134
136
  value={value as string}
@@ -50,6 +50,7 @@ export function ProductDepositControl<T extends FormValues>(
50
50
  <Form.Control
51
51
  ref={ref}
52
52
  type='number'
53
+ onWheel={(event) => event.currentTarget.blur()}
53
54
  min={0}
54
55
  max={Number(totalPrice)}
55
56
  step='0.01'
@@ -91,6 +91,7 @@ export const ProductDurationControl = <T,>({
91
91
  <Form.Control
92
92
  type='number'
93
93
  min={0}
94
+ onWheel={(event) => event.currentTarget.blur()}
94
95
  step={1}
95
96
  value={durationHours}
96
97
  disabled={disabled}
@@ -127,6 +128,7 @@ export const ProductDurationControl = <T,>({
127
128
  type='number'
128
129
  min={0}
129
130
  step={1}
131
+ onWheel={(event) => event.currentTarget.blur()}
130
132
  disabled={disabled}
131
133
  value={durationMinutes}
132
134
  isInvalid={isInvalid}
@@ -59,6 +59,7 @@ export function ProductPriceControl<T extends FormValues>({
59
59
  ref={ref}
60
60
  type='number'
61
61
  min={0}
62
+ onWheel={(event) => event.currentTarget.blur()}
62
63
  max={999999.99}
63
64
  step='0.01'
64
65
  value={value as string}
@@ -111,6 +111,7 @@ export function ProductQuantityConstantControl<T extends FormValues>(
111
111
  type='number'
112
112
  min={0}
113
113
  step={1}
114
+ onWheel={(event) => event.currentTarget.blur()}
114
115
  value={value as string}
115
116
  isInvalid={HookFormService.isInvalid<T>(
116
117
  `${fieldNamePrefix}.totalQuantity` as Path<T>,
@@ -165,6 +166,7 @@ export function ProductQuantityConstantControl<T extends FormValues>(
165
166
  type='number'
166
167
  min={0}
167
168
  step={1}
169
+ onWheel={(event) => event.currentTarget.blur()}
168
170
  value={value as string}
169
171
  onChange={onChange}
170
172
  onFocus={onFocus}
@@ -85,6 +85,7 @@ export function ProductQuantityControl<T extends FormValues>(
85
85
  type='number'
86
86
  min={0}
87
87
  step={1}
88
+ onWheel={(event) => event.currentTarget.blur()}
88
89
  value={value as string}
89
90
  onChange={onChange}
90
91
  onFocus={onFocus}
@@ -143,6 +144,7 @@ export function ProductQuantityControl<T extends FormValues>(
143
144
  type='number'
144
145
  min={0}
145
146
  step={1}
147
+ onWheel={(event) => event.currentTarget.blur()}
146
148
  value={value && (value as string)}
147
149
  onFocus={onFocus}
148
150
  onChange={onChange}
@@ -69,6 +69,7 @@ export function ProductQuantityRechargingControl<T extends FormValues>(
69
69
  type='number'
70
70
  min={0}
71
71
  step={1}
72
+ onWheel={(event) => event.currentTarget.blur()}
72
73
  {...register(`${fieldNamePrefix}.totalQuantity` as Path<T>, {
73
74
  validate: (value) => {
74
75
  if (unlimited) return true
@@ -221,6 +221,7 @@ export function ProductCategoryControl({
221
221
  step={1}
222
222
  value={value === null ? '' : value}
223
223
  onChange={onChange}
224
+ onWheel={(event) => event.currentTarget.blur()}
224
225
  isInvalid={HookFormService.isInvalid<ProductSetFormValues>(
225
226
  `${fieldNamePrefix}.minSubItems` as const,
226
227
  errors,
@@ -293,6 +294,7 @@ export function ProductCategoryControl({
293
294
  name={name}
294
295
  value={value === null ? '' : value}
295
296
  onChange={onChange}
297
+ onWheel={(event) => event.currentTarget.blur()}
296
298
  isInvalid={HookFormService.isInvalid<ProductSetFormValues>(
297
299
  `${fieldNamePrefix}.maxSubItems` as const,
298
300
  errors,
@@ -353,6 +355,7 @@ export function ProductCategoryControl({
353
355
  min={0}
354
356
  step={1}
355
357
  type='number'
358
+ onWheel={(event) => event.currentTarget.blur()}
356
359
  disabled={isOverride}
357
360
  isInvalid={HookFormService.isInvalid<ProductSetFormValues>(
358
361
  `${fieldNamePrefix}.overallQuantity`,
@@ -543,6 +546,7 @@ export function ProductCategoryControl({
543
546
  step={1}
544
547
  value={value}
545
548
  onChange={onChange}
549
+ onWheel={(event) => event.currentTarget.blur()}
546
550
  isInvalid={HookFormService.isInvalid<ProductSetFormValues>(
547
551
  `${fieldNamePrefix}.remainderExpireAfter` as const,
548
552
  errors,
@@ -1,4 +1,4 @@
1
- import React, { useContext, useEffect, useMemo } from 'react'
1
+ import { useContext, useEffect, useMemo } from 'react'
2
2
  import { Col, Form, Row } from 'react-bootstrap'
3
3
  import {
4
4
  ArrayPath,
@@ -109,6 +109,7 @@ function RecurrenceEndInput({
109
109
  type='number'
110
110
  min={1}
111
111
  max={500}
112
+ onWheel={(event) => event.currentTarget.blur()}
112
113
  disabled={disabled || !count || count === 500}
113
114
  aria-label='Occurrence count'
114
115
  value={count ?? defaultOccurrences[frequency]}
@@ -91,6 +91,7 @@ function RecurrenceEndInput({
91
91
  type='number'
92
92
  min={1}
93
93
  max={500}
94
+ onWheel={(event) => event.currentTarget.blur()}
94
95
  disabled={disabled || !count || count === 500}
95
96
  aria-label='Occurrence count'
96
97
  value={count ?? defaultOccurrences[frequency]}
@@ -27,6 +27,7 @@ export const CapacityControl = ({ isLoading }: CapacityControlProps) => {
27
27
  required: true,
28
28
  min: 1,
29
29
  })}
30
+ onWheel={(event) => event.currentTarget.blur()}
30
31
  placeholder={t('Design:capacity')}
31
32
  isInvalid={Boolean(errors.capacity)}
32
33
  disabled={isLoading}
@@ -27,6 +27,7 @@ export const SortControl = ({ isLoading }: SortControlProps) => {
27
27
  required: false,
28
28
  min: 1,
29
29
  })}
30
+ onWheel={(event) => event.currentTarget.blur()}
30
31
  placeholder={t('Design:ordering')}
31
32
  isInvalid={Boolean(errors.sort)}
32
33
  disabled={isLoading}
@@ -20,8 +20,6 @@ export type ResultCardProps = {
20
20
  onCardClick?: (id: number) => void
21
21
  }
22
22
 
23
- // @TODO integrate when API will be available
24
- // activity and staff keys
25
23
  export const ResultCard = ({
26
24
  order,
27
25
  className,
@@ -179,6 +179,7 @@ export const CouponFormControl = ({
179
179
  <Form.Label>{t('Design:discount')}</Form.Label>
180
180
  <Form.Control
181
181
  type='number'
182
+ onWheel={(event) => event.currentTarget.blur()}
182
183
  isInvalid={errors.discount !== undefined}
183
184
  {...register('discount', {
184
185
  required: t('Validation:fieldRequired', {
@@ -316,6 +317,7 @@ export const CouponFormControl = ({
316
317
  <Form.Control
317
318
  {...register('totalCoupons')}
318
319
  type='number'
320
+ onWheel={(event) => event.currentTarget.blur()}
319
321
  isInvalid={errors.totalCoupons !== undefined}
320
322
  disabled={isLoading}
321
323
  />
@@ -330,6 +332,7 @@ export const CouponFormControl = ({
330
332
  <Form.Control
331
333
  type='number'
332
334
  {...register('usesPerUser')}
335
+ onWheel={(event) => event.currentTarget.blur()}
333
336
  disabled={isLoading}
334
337
  />
335
338
  </Form.Group>
@@ -342,6 +345,7 @@ export const CouponFormControl = ({
342
345
  <Form.Control
343
346
  type='number'
344
347
  {...register('useAgain')}
348
+ onWheel={(event) => event.currentTarget.blur()}
345
349
  disabled={isLoading}
346
350
  />
347
351
  <Form.Text className='text-muted'>
@@ -355,6 +359,7 @@ export const CouponFormControl = ({
355
359
  <Form.Control
356
360
  type='number'
357
361
  {...register('usesPerUserDay')}
362
+ onWheel={(event) => event.currentTarget.blur()}
358
363
  disabled={isLoading}
359
364
  />
360
365
  <Form.Text className='text-muted'>
@@ -370,6 +375,7 @@ export const CouponFormControl = ({
370
375
  <Form.Control
371
376
  type='number'
372
377
  {...register('minAmount')}
378
+ onWheel={(event) => event.currentTarget.blur()}
373
379
  disabled={isLoading}
374
380
  />
375
381
  <Form.Text className='text-muted'>
@@ -383,6 +389,7 @@ export const CouponFormControl = ({
383
389
  <Form.Control
384
390
  type='number'
385
391
  {...register('maxAmount')}
392
+ onWheel={(event) => event.currentTarget.blur()}
386
393
  disabled={isLoading}
387
394
  />
388
395
  <Form.Text className='text-muted'>
@@ -12,7 +12,6 @@ import { useForm, FormProvider } from 'react-hook-form'
12
12
  import { useTranslation } from 'react-i18next'
13
13
  import { ServerError } from '@licklist/plugins/dist/hooks/Api/useHttpQuery'
14
14
  import FormErrorService from '@licklist/plugins/dist/services/Form/FormErrorService'
15
-
16
15
  import { CouponFormControl } from '../control'
17
16
 
18
17
  export interface CouponFormValues {
@@ -38,6 +37,7 @@ export interface CouponFormProps {
38
37
  productGroups?: ProductGroup[]
39
38
  defaultValues?: CouponFormValues
40
39
  onSubmit: (values: CouponFormValues) => void
40
+ onCancel: () => void
41
41
  isLoading?: boolean
42
42
  hasPermission: boolean
43
43
  serverErrors?: ServerError
@@ -45,6 +45,7 @@ export interface CouponFormProps {
45
45
 
46
46
  export const CouponForm = ({
47
47
  onSubmit,
48
+ onCancel,
48
49
  defaultValues,
49
50
  isLoading = false,
50
51
  productGroups,
@@ -73,13 +74,24 @@ export const CouponForm = ({
73
74
  isLoading={isLoading}
74
75
  />
75
76
  {hasPermission && (
76
- <Button
77
- className='mt-5 d-no dne d-md-block'
78
- type='submit'
79
- disabled={isLoading}
80
- >
81
- {t('save')}
82
- </Button>
77
+ <div className='tw-flex tw-gap-4'>
78
+ <Button
79
+ className='d-md-block mt-5'
80
+ type='submit'
81
+ disabled={isLoading}
82
+ >
83
+ {t('save')}
84
+ </Button>
85
+ <Button
86
+ className='mt-5 d-md-block'
87
+ variant='outline-primary'
88
+ type='reset'
89
+ onClick={onCancel}
90
+ disabled={isLoading}
91
+ >
92
+ {t('cancel')}
93
+ </Button>
94
+ </div>
83
95
  )}
84
96
  </Form>
85
97
  </FormProvider>
@@ -178,6 +178,7 @@ export const DashboardSettingForm = ({
178
178
  <Form.Label>{t('metaPixelId')}</Form.Label>
179
179
  <Form.Control
180
180
  type='number'
181
+ onWheel={(event) => event.currentTarget.blur()}
181
182
  {...register('metaPixelId', {
182
183
  minLength: {
183
184
  value: 15,
@@ -1,3 +1 @@
1
- export * from './system'
2
- export * from './admin'
3
1
  export * from './dashboard'
@@ -1,9 +1,4 @@
1
- import {
2
- ReactNode,
3
- useCallback,
4
- useEffect,
5
- useState,
6
- } from 'react'
1
+ import { ReactNode, useCallback, useEffect, useState } from 'react'
7
2
  import { DndContext, useDraggable } from '@dnd-kit/core'
8
3
  import {
9
4
  SortableContext,
@@ -45,6 +45,7 @@ export const CurrencyNumberInput = forwardRef<
45
45
  disabled={disabled}
46
46
  value={value}
47
47
  onChange={onChange}
48
+ onWheel={(event) => event.currentTarget.blur()}
48
49
  ref={ref}
49
50
  {...props}
50
51
  />
@@ -75,6 +75,7 @@ export const FormNumberInput = ({
75
75
  type='number'
76
76
  step={step}
77
77
  disabled={disabled}
78
+ onWheel={(event) => event.currentTarget.blur()}
78
79
  isInvalid={HookFormService.isInvalid(fieldName, errors)}
79
80
  {...field}
80
81
  onChange={(event) => {
@@ -49,6 +49,7 @@ export function NumberInput({
49
49
  <div className={inputWrapperClasses}>
50
50
  <FormControl
51
51
  type='number'
52
+ onWheel={(event) => event.currentTarget.blur()}
52
53
  onChange={(e) => onChange(Number(e.target.value))}
53
54
  value={value}
54
55
  min={min}
@@ -74,7 +74,7 @@
74
74
  .calendar-dates-wrapper {
75
75
  .calendar-dates {
76
76
  display: grid;
77
- grid-template-columns: repeat(7, 1fr);
77
+ grid-template-columns: repeat(7, auto);
78
78
  grid-gap: 0.5rem 1rem;
79
79
  overflow-x: auto;
80
80
  }
@@ -15,7 +15,7 @@ body[bkdt-scrollable='false'] .bkdt-mask {
15
15
  left: 0;
16
16
  width: 100%;
17
17
  height: 100%;
18
- z-index: 1000000;
18
+ z-index: 2147483646;
19
19
  background-color: rgba(0, 0, 0, 0.5);
20
20
  display: none;
21
21
  }
@@ -24,7 +24,7 @@ body[bkdt-scrollable='false'] .bkdt-mask {
24
24
  position: fixed;
25
25
  top: 0;
26
26
  left: 0;
27
- z-index: 1000001;
27
+ z-index: 2147483647;
28
28
  display: none;
29
29
  width: 100%;
30
30
  height: 100%;
@@ -1,5 +1,4 @@
1
1
  .product-set-form {
2
-
3
2
  input,
4
3
  textarea,
5
4
  select,
@@ -211,8 +210,8 @@
211
210
 
212
211
  .sortable-tree-item-toggle {
213
212
  .product-zone-badge {
214
- background-color: #EFE9F5;
215
- color: #84269B;
213
+ background-color: #efe9f5;
214
+ color: #84269b;
216
215
  font-size: 0.875rem;
217
216
  font-weight: 600;
218
217
  }