@123usmanhaider321/ui 0.1.6 → 1.0.0
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/README.md +416 -31
- package/dist/images/icon/1LINK.svg +50 -0
- package/dist/images/icon/CreditCard.svg +83 -0
- package/dist/images/icon/Easypaisa.png +0 -0
- package/dist/images/icon/MobileWallet.png +0 -0
- package/dist/images/icon/Raast-Logo.png +0 -0
- package/dist/images/icon/VISA.png +0 -0
- package/dist/images/icon/add-circle-1.svg +5 -0
- package/dist/images/icon/check-circle-broken.svg +3 -0
- package/dist/images/icon/close-circle.svg +5 -0
- package/dist/images/icon/jazzcash.png +0 -0
- package/dist/images/icon/loading_icon.json +3347 -0
- package/dist/images/icon/mastercard-logo.webp +0 -0
- package/dist/images/icon/paymo.jpeg +0 -0
- package/dist/images/icon/preview-svgrepo-com.svg +36 -0
- package/dist/images/icon/trash.svg +7 -0
- package/dist/images/icon/unionpay-logo.svg +9 -0
- package/dist/index-87FQZHOs.js +11119 -0
- package/dist/index-87FQZHOs.js.map +1 -0
- package/dist/index-Tl9g213f.js +60475 -0
- package/dist/index-Tl9g213f.js.map +1 -0
- package/dist/index.d.ts +1 -10
- package/dist/index.es-CpgTaa1Y.js +16734 -0
- package/dist/index.es-CpgTaa1Y.js.map +1 -0
- package/dist/index.js +40 -12
- package/dist/index.js.map +1 -1
- package/dist/loading_icon-n5H5dQBl.js +3375 -0
- package/dist/loading_icon-n5H5dQBl.js.map +1 -0
- package/dist/src/components/Alert/ErrorAlert.d.ts +6 -0
- package/dist/src/components/Alert/SuccessAlert.d.ts +6 -0
- package/dist/{components → src/components}/FormBuilder/DiscountInput.d.ts +3 -6
- package/dist/{components → src/components}/FormBuilder/FormBuilder.d.ts +2 -11
- package/dist/{components → src/components}/FormBuilder/QuestionCard.d.ts +0 -5
- package/dist/{components → src/components}/FormBuilder/QuestionEditor.d.ts +0 -5
- package/dist/{components → src/components}/FormBuilder/SortableQuestionList.d.ts +0 -5
- package/dist/src/components/FormBuilder/questionIcons.d.ts +5 -0
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/AddEventLayout.d.ts +2 -1
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/AddEventStepper.d.ts +2 -2
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/common/ConfirmationModal.d.ts +1 -1
- package/dist/src/components/NewAddEvent/components/EventSubmissionConfirmationModal.d.ts +14 -0
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/StepTwo/TicketTierSection.d.ts +1 -1
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/TicketTierForm.d.ts +1 -1
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/hooks/useStepperForm.d.ts +22 -22
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/hooks/useTicketTierForm.d.ts +63 -15
- package/dist/src/components/NewAddEvent/schemas/step1.d.ts +211 -0
- package/dist/src/components/NewAddEvent/schemas/step2.d.ts +411 -0
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/schemas/utils.d.ts +8 -2
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/IndividualFormStep.d.ts +1 -1
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/SocialProfilesStep.d.ts +1 -1
- package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/TeamFormStep.d.ts +1 -1
- package/dist/src/components/Spinner/spinner.d.ts +4 -0
- package/dist/src/components/TicketlyUIProvider.d.ts +35 -0
- package/dist/src/components/common/Loader/index.d.ts +8 -0
- package/dist/src/components/common/Modals/ConfirmationModal.d.ts +7 -0
- package/dist/{components/FormInput → src/components/ui}/FormInput.d.ts +1 -1
- package/dist/src/components/ui/Loader.d.ts +4 -0
- package/dist/{components/Button/Button.d.ts → src/components/ui/button.d.ts} +1 -1
- package/dist/src/index.d.ts +10 -0
- package/dist/{lib → src/lib}/actions.d.ts +0 -126
- package/dist/src/lib/dom-utils.d.ts +2 -0
- package/dist/src/lib/storage-utils.d.ts +5 -0
- package/dist/src/lib/types.d.ts +258 -0
- package/dist/src/redux/baseQuery.d.ts +16 -0
- package/dist/{services → src/redux/features}/eventApi.d.ts +1053 -1745
- package/dist/src/redux/features/globalSlice.d.ts +17 -0
- package/dist/{services → src/redux/features/single-event}/single-event-api.d.ts +856 -1190
- package/dist/src/redux/types.d.ts +2 -0
- package/dist/src/services/library-services.d.ts +15 -0
- package/dist/src/services/remote-config.d.ts +27 -0
- package/dist/{services → src/services}/utils.d.ts +1 -1
- package/dist/src/theme/colors.d.ts +127 -0
- package/dist/src/theme/typography.d.ts +13 -0
- package/dist/src/types/api.d.ts +18 -0
- package/dist/style.css +2984 -0
- package/dist/styles.css +3758 -3636
- package/package.json +78 -68
- package/dist/_virtual/_commonjsHelpers.js +0 -9
- package/dist/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/_virtual/customParseFormat.js +0 -5
- package/dist/_virtual/customParseFormat.js.map +0 -1
- package/dist/_virtual/dayjs.min.js +0 -5
- package/dist/_virtual/dayjs.min.js.map +0 -1
- package/dist/_virtual/duration.js +0 -5
- package/dist/_virtual/duration.js.map +0 -1
- package/dist/_virtual/index.js +0 -5
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/isBetween.js +0 -5
- package/dist/_virtual/isBetween.js.map +0 -1
- package/dist/_virtual/relativeTime.js +0 -5
- package/dist/_virtual/relativeTime.js.map +0 -1
- package/dist/_virtual/use-sync-external-store-shim.development.js +0 -5
- package/dist/_virtual/use-sync-external-store-shim.development.js.map +0 -1
- package/dist/_virtual/use-sync-external-store-shim.production.js +0 -5
- package/dist/_virtual/use-sync-external-store-shim.production.js.map +0 -1
- package/dist/_virtual/with-selector.development.js +0 -5
- package/dist/_virtual/with-selector.development.js.map +0 -1
- package/dist/_virtual/with-selector.js +0 -5
- package/dist/_virtual/with-selector.js.map +0 -1
- package/dist/_virtual/with-selector.production.js +0 -5
- package/dist/_virtual/with-selector.production.js.map +0 -1
- package/dist/components/Alert/Alert.js +0 -51
- package/dist/components/Alert/Alert.js.map +0 -1
- package/dist/components/Button/Button.js +0 -52
- package/dist/components/Button/Button.js.map +0 -1
- package/dist/components/Button/Button.test.d.ts +0 -1
- package/dist/components/Button/index.d.ts +0 -1
- package/dist/components/Checkbox/Checkbox.js +0 -50
- package/dist/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/components/Checkbox/Checkbox.test.d.ts +0 -1
- package/dist/components/Checkbox/index.d.ts +0 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +0 -25
- package/dist/components/CheckboxGroup/CheckboxGroup.js +0 -99
- package/dist/components/CheckboxGroup/CheckboxGroup.js.map +0 -1
- package/dist/components/ConfirmationModal/ConfirmationModal.d.ts +0 -15
- package/dist/components/ConfirmationModal/ConfirmationModal.js +0 -136
- package/dist/components/ConfirmationModal/ConfirmationModal.js.map +0 -1
- package/dist/components/ConfirmationModal/index.d.ts +0 -2
- package/dist/components/CustomSelect/CustomSelect.js +0 -259
- package/dist/components/CustomSelect/CustomSelect.js.map +0 -1
- package/dist/components/EventAddForm/AddEventLayout.js +0 -227
- package/dist/components/EventAddForm/AddEventLayout.js.map +0 -1
- package/dist/components/EventAddForm/AddEventStepper.js +0 -719
- package/dist/components/EventAddForm/AddEventStepper.js.map +0 -1
- package/dist/components/EventAddForm/common/ConfirmationModal.js +0 -136
- package/dist/components/EventAddForm/common/ConfirmationModal.js.map +0 -1
- package/dist/components/EventAddForm/common/DescriptionModal.js +0 -70
- package/dist/components/EventAddForm/common/DescriptionModal.js.map +0 -1
- package/dist/components/EventAddForm/components/AnimatedBackground.d.ts +0 -8
- package/dist/components/EventAddForm/components/ApprovalConfirmationModal.d.ts +0 -7
- package/dist/components/EventAddForm/components/CheckboxGroup.js +0 -92
- package/dist/components/EventAddForm/components/CheckboxGroup.js.map +0 -1
- package/dist/components/EventAddForm/components/CustomMeetingForm.js +0 -237
- package/dist/components/EventAddForm/components/CustomMeetingForm.js.map +0 -1
- package/dist/components/EventAddForm/components/DateTimeField.js +0 -173
- package/dist/components/EventAddForm/components/DateTimeField.js.map +0 -1
- package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.d.ts +0 -33
- package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.js +0 -366
- package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.js.map +0 -1
- package/dist/components/EventAddForm/components/FileUpload.js +0 -412
- package/dist/components/EventAddForm/components/FileUpload.js.map +0 -1
- package/dist/components/EventAddForm/components/FormBuilderProceedModal.js +0 -197
- package/dist/components/EventAddForm/components/FormBuilderProceedModal.js.map +0 -1
- package/dist/components/EventAddForm/components/GoogleMapsAutocompleteInput.js +0 -1179
- package/dist/components/EventAddForm/components/GoogleMapsAutocompleteInput.js.map +0 -1
- package/dist/components/EventAddForm/components/InputField.d.ts +0 -15
- package/dist/components/EventAddForm/components/RadioGroupButton.d.ts +0 -14
- package/dist/components/EventAddForm/components/SelectField.d.ts +0 -19
- package/dist/components/EventAddForm/components/SingleDateTimeInput.js +0 -102
- package/dist/components/EventAddForm/components/SingleDateTimeInput.js.map +0 -1
- package/dist/components/EventAddForm/components/StepTwo/CustomFormSection.js +0 -277
- package/dist/components/EventAddForm/components/StepTwo/CustomFormSection.js.map +0 -1
- package/dist/components/EventAddForm/components/StepTwo/TicketTierSection.js +0 -148
- package/dist/components/EventAddForm/components/StepTwo/TicketTierSection.js.map +0 -1
- package/dist/components/EventAddForm/components/TicketTierForm.js +0 -418
- package/dist/components/EventAddForm/components/TicketTierForm.js.map +0 -1
- package/dist/components/EventAddForm/components/TicketTypeSelection.js +0 -93
- package/dist/components/EventAddForm/components/TicketTypeSelection.js.map +0 -1
- package/dist/components/EventAddForm/hooks/useStepperForm.js +0 -371
- package/dist/components/EventAddForm/hooks/useStepperForm.js.map +0 -1
- package/dist/components/EventAddForm/hooks/useTicketTierForm.js +0 -237
- package/dist/components/EventAddForm/hooks/useTicketTierForm.js.map +0 -1
- package/dist/components/EventAddForm/index.d.ts +0 -3
- package/dist/components/EventAddForm/index.js +0 -41
- package/dist/components/EventAddForm/index.js.map +0 -1
- package/dist/components/EventAddForm/schemas/index.d.ts +0 -2
- package/dist/components/EventAddForm/schemas/step1.d.ts +0 -47
- package/dist/components/EventAddForm/schemas/step1.js +0 -135
- package/dist/components/EventAddForm/schemas/step1.js.map +0 -1
- package/dist/components/EventAddForm/schemas/step2.d.ts +0 -138
- package/dist/components/EventAddForm/schemas/step2.js +0 -94
- package/dist/components/EventAddForm/schemas/step2.js.map +0 -1
- package/dist/components/EventAddForm/schemas/utils.js +0 -28
- package/dist/components/EventAddForm/schemas/utils.js.map +0 -1
- package/dist/components/EventAddForm/steps/IndividualFormStep.js +0 -85
- package/dist/components/EventAddForm/steps/IndividualFormStep.js.map +0 -1
- package/dist/components/EventAddForm/steps/SocialProfilesStep.js +0 -123
- package/dist/components/EventAddForm/steps/SocialProfilesStep.js.map +0 -1
- package/dist/components/EventAddForm/steps/StepOne.js +0 -462
- package/dist/components/EventAddForm/steps/StepOne.js.map +0 -1
- package/dist/components/EventAddForm/steps/StepTwo.js +0 -173
- package/dist/components/EventAddForm/steps/StepTwo.js.map +0 -1
- package/dist/components/EventAddForm/steps/TeamFormStep.js +0 -13
- package/dist/components/EventAddForm/steps/TeamFormStep.js.map +0 -1
- package/dist/components/FormBuilder/CategoryList.js +0 -242
- package/dist/components/FormBuilder/CategoryList.js.map +0 -1
- package/dist/components/FormBuilder/DiscountInput.js +0 -366
- package/dist/components/FormBuilder/DiscountInput.js.map +0 -1
- package/dist/components/FormBuilder/FormBuilder.js +0 -918
- package/dist/components/FormBuilder/FormBuilder.js.map +0 -1
- package/dist/components/FormBuilder/OptionList.js +0 -120
- package/dist/components/FormBuilder/OptionList.js.map +0 -1
- package/dist/components/FormBuilder/PaymentPreview.d.ts +0 -12
- package/dist/components/FormBuilder/PaymentPreview.js +0 -70
- package/dist/components/FormBuilder/PaymentPreview.js.map +0 -1
- package/dist/components/FormBuilder/PreviewInput.d.ts +0 -10
- package/dist/components/FormBuilder/PreviewInput.js +0 -143
- package/dist/components/FormBuilder/PreviewInput.js.map +0 -1
- package/dist/components/FormBuilder/QuestionCard.js +0 -252
- package/dist/components/FormBuilder/QuestionCard.js.map +0 -1
- package/dist/components/FormBuilder/QuestionEditor.js +0 -166
- package/dist/components/FormBuilder/QuestionEditor.js.map +0 -1
- package/dist/components/FormBuilder/RequiredToggle.js +0 -43
- package/dist/components/FormBuilder/RequiredToggle.js.map +0 -1
- package/dist/components/FormBuilder/SortableQuestionList.js +0 -137
- package/dist/components/FormBuilder/SortableQuestionList.js.map +0 -1
- package/dist/components/FormBuilder/index.d.ts +0 -4
- package/dist/components/FormBuilder/utils.js +0 -229
- package/dist/components/FormBuilder/utils.js.map +0 -1
- package/dist/components/FormInput/FormInput.js +0 -126
- package/dist/components/FormInput/FormInput.js.map +0 -1
- package/dist/components/FormInput/FormInput.test.d.ts +0 -1
- package/dist/components/FormInput/index.d.ts +0 -2
- package/dist/components/ImageCropModal/index.js +0 -464
- package/dist/components/ImageCropModal/index.js.map +0 -1
- package/dist/components/InformationPopover/InformationPopover.d.ts +0 -7
- package/dist/components/InformationPopover/InformationPopover.js +0 -19
- package/dist/components/InformationPopover/InformationPopover.js.map +0 -1
- package/dist/components/InformationPopover.js +0 -19
- package/dist/components/InformationPopover.js.map +0 -1
- package/dist/components/InputErrorMessage/InputErrorMessage.js +0 -21
- package/dist/components/InputErrorMessage/InputErrorMessage.js.map +0 -1
- package/dist/components/Modal/Modal.d.ts +0 -15
- package/dist/components/Modal/Modal.js +0 -73
- package/dist/components/Modal/Modal.js.map +0 -1
- package/dist/components/Radio/Radio.js +0 -35
- package/dist/components/Radio/Radio.js.map +0 -1
- package/dist/components/Spinner/spinner.d.ts +0 -2
- package/dist/components/Spinner/spinner.js +0 -22
- package/dist/components/Spinner/spinner.js.map +0 -1
- package/dist/components/Toggle/Toggle.d.ts +0 -16
- package/dist/components/Toggle/index.d.ts +0 -2
- package/dist/components/Tooltip/Tooltip.d.ts +0 -12
- package/dist/components/Tooltip/Tooltip.js +0 -134
- package/dist/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/components/common/FallbackImage.js +0 -47
- package/dist/components/common/FallbackImage.js.map +0 -1
- package/dist/components/ui/Calendar/calendar-utils.js +0 -51
- package/dist/components/ui/Calendar/calendar-utils.js.map +0 -1
- package/dist/components/ui/Calendar/index.js +0 -142
- package/dist/components/ui/Calendar/index.js.map +0 -1
- package/dist/components/ui/Checkbox.d.ts +0 -9
- package/dist/components/ui/Checkbox.js +0 -50
- package/dist/components/ui/Checkbox.js.map +0 -1
- package/dist/components/ui/DatePicker/index.js +0 -188
- package/dist/components/ui/DatePicker/index.js.map +0 -1
- package/dist/components/ui/FormInput.js +0 -129
- package/dist/components/ui/FormInput.js.map +0 -1
- package/dist/components/ui/InputErrorMessage.d.ts +0 -7
- package/dist/components/ui/InputErrorMessage.js +0 -21
- package/dist/components/ui/InputErrorMessage.js.map +0 -1
- package/dist/components/ui/Modal/index.js +0 -73
- package/dist/components/ui/Modal/index.js.map +0 -1
- package/dist/components/ui/Radio.d.ts +0 -6
- package/dist/components/ui/Radio.js +0 -35
- package/dist/components/ui/Radio.js.map +0 -1
- package/dist/components/ui/RichTextEditor.js +0 -242
- package/dist/components/ui/RichTextEditor.js.map +0 -1
- package/dist/components/ui/TimePicker/index.js +0 -215
- package/dist/components/ui/TimePicker/index.js.map +0 -1
- package/dist/components/ui/TimeSelector/index.js +0 -138
- package/dist/components/ui/TimeSelector/index.js.map +0 -1
- package/dist/components/ui/Tooltip.d.ts +0 -12
- package/dist/components/ui/Tooltip.js +0 -136
- package/dist/components/ui/Tooltip.js.map +0 -1
- package/dist/hooks/useDropdownPosition.d.ts +0 -11
- package/dist/hooks/useFirebaseAuthState.d.ts +0 -6
- package/dist/hooks/useFirebaseAuthState.js +0 -23
- package/dist/hooks/useFirebaseAuthState.js.map +0 -1
- package/dist/hooks/useTicketTierForm.d.ts +0 -61
- package/dist/lib/actions.js +0 -32
- package/dist/lib/actions.js.map +0 -1
- package/dist/lib/cropImage.js +0 -113
- package/dist/lib/cropImage.js.map +0 -1
- package/dist/lib/imageAnalysis.js +0 -58
- package/dist/lib/imageAnalysis.js.map +0 -1
- package/dist/lib/utils.js +0 -9
- package/dist/lib/utils.js.map +0 -1
- package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -60
- package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
- package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +0 -3458
- package/dist/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
- package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -593
- package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
- package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -302
- package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
- package/dist/node_modules/@firebase/app/dist/esm/index.esm.js +0 -768
- package/dist/node_modules/@firebase/app/dist/esm/index.esm.js.map +0 -1
- package/dist/node_modules/@firebase/component/dist/esm/index.esm.js +0 -340
- package/dist/node_modules/@firebase/component/dist/esm/index.esm.js.map +0 -1
- package/dist/node_modules/@firebase/logger/dist/esm/index.esm.js +0 -123
- package/dist/node_modules/@firebase/logger/dist/esm/index.esm.js.map +0 -1
- package/dist/node_modules/@firebase/storage/dist/index.esm.js +0 -2623
- package/dist/node_modules/@firebase/storage/dist/index.esm.js.map +0 -1
- package/dist/node_modules/@firebase/util/dist/index.esm.js +0 -658
- package/dist/node_modules/@firebase/util/dist/index.esm.js.map +0 -1
- package/dist/node_modules/@firebase/util/dist/postinstall.js +0 -5
- package/dist/node_modules/@firebase/util/dist/postinstall.js.map +0 -1
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js +0 -3179
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js.map +0 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js +0 -60
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js.map +0 -1
- package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js +0 -400
- package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js.map +0 -1
- package/dist/node_modules/@heroicons/react/20/solid/esm/CheckIcon.js +0 -27
- package/dist/node_modules/@heroicons/react/20/solid/esm/CheckIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/20/solid/esm/ChevronDownIcon.js +0 -27
- package/dist/node_modules/@heroicons/react/20/solid/esm/ChevronDownIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/ClockIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/ClockIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/LinkIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/LinkIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js +0 -33
- package/dist/node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js.map +0 -1
- package/dist/node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js +0 -29
- package/dist/node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js.map +0 -1
- package/dist/node_modules/@tiptap/core/dist/index.js +0 -5446
- package/dist/node_modules/@tiptap/core/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +0 -21
- package/dist/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js +0 -78
- package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-bold/dist/index.js +0 -100
- package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-code/dist/index.js +0 -70
- package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-code-block/dist/index.js +0 -317
- package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-document/dist/index.js +0 -16
- package/dist/node_modules/@tiptap/extension-document/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js +0 -66
- package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-heading/dist/index.js +0 -86
- package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js +0 -80
- package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-italic/dist/index.js +0 -98
- package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-link/dist/index.js +0 -423
- package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-list/dist/index.js +0 -1039
- package/dist/node_modules/@tiptap/extension-list/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js +0 -61
- package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js +0 -7
- package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-strike/dist/index.js +0 -79
- package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-text/dist/index.js +0 -16
- package/dist/node_modules/@tiptap/extension-text/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extension-underline/dist/index.js +0 -76
- package/dist/node_modules/@tiptap/extension-underline/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/extensions/dist/index.js +0 -376
- package/dist/node_modules/@tiptap/extensions/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/react/dist/index.js +0 -650
- package/dist/node_modules/@tiptap/react/dist/index.js.map +0 -1
- package/dist/node_modules/@tiptap/starter-kit/dist/index.js +0 -97
- package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +0 -1
- package/dist/node_modules/dayjs/dayjs.min.js +0 -283
- package/dist/node_modules/dayjs/dayjs.min.js.map +0 -1
- package/dist/node_modules/dayjs/plugin/customParseFormat.js +0 -130
- package/dist/node_modules/dayjs/plugin/customParseFormat.js.map +0 -1
- package/dist/node_modules/dayjs/plugin/duration.js +0 -137
- package/dist/node_modules/dayjs/plugin/duration.js.map +0 -1
- package/dist/node_modules/dayjs/plugin/isBetween.js +0 -20
- package/dist/node_modules/dayjs/plugin/isBetween.js.map +0 -1
- package/dist/node_modules/dayjs/plugin/relativeTime.js +0 -49
- package/dist/node_modules/dayjs/plugin/relativeTime.js.map +0 -1
- package/dist/node_modules/fast-equals/dist/es/index.js +0 -442
- package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
- package/dist/node_modules/idb/build/index.js +0 -70
- package/dist/node_modules/idb/build/index.js.map +0 -1
- package/dist/node_modules/idb/build/wrap-idb-value.js +0 -149
- package/dist/node_modules/idb/build/wrap-idb-value.js.map +0 -1
- package/dist/node_modules/linkifyjs/dist/linkify.js +0 -1159
- package/dist/node_modules/linkifyjs/dist/linkify.js.map +0 -1
- package/dist/node_modules/orderedmap/dist/index.js +0 -120
- package/dist/node_modules/orderedmap/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-commands/dist/index.js +0 -527
- package/dist/node_modules/prosemirror-commands/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-dropcursor/dist/index.js +0 -137
- package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-gapcursor/dist/index.js +0 -221
- package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-history/dist/index.js +0 -357
- package/dist/node_modules/prosemirror-history/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-keymap/dist/index.js +0 -84
- package/dist/node_modules/prosemirror-keymap/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-model/dist/index.js +0 -3209
- package/dist/node_modules/prosemirror-model/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-schema-list/dist/index.js +0 -131
- package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-state/dist/index.js +0 -936
- package/dist/node_modules/prosemirror-state/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-transform/dist/index.js +0 -1881
- package/dist/node_modules/prosemirror-transform/dist/index.js.map +0 -1
- package/dist/node_modules/prosemirror-view/dist/index.js +0 -5232
- package/dist/node_modules/prosemirror-view/dist/index.js.map +0 -1
- package/dist/node_modules/rope-sequence/dist/index.js +0 -184
- package/dist/node_modules/rope-sequence/dist/index.js.map +0 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -82
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +0 -78
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +0 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -78
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +0 -63
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +0 -1
- package/dist/node_modules/use-sync-external-store/shim/index.js +0 -13
- package/dist/node_modules/use-sync-external-store/shim/index.js.map +0 -1
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js +0 -13
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
- package/dist/node_modules/w3c-keyname/index.js +0 -106
- package/dist/node_modules/w3c-keyname/index.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/coerce.js +0 -10
- package/dist/node_modules/zod/v4/classic/coerce.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/compat.js +0 -8
- package/dist/node_modules/zod/v4/classic/compat.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/errors.js +0 -45
- package/dist/node_modules/zod/v4/classic/errors.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/iso.js +0 -44
- package/dist/node_modules/zod/v4/classic/iso.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/parse.js +0 -30
- package/dist/node_modules/zod/v4/classic/parse.js.map +0 -1
- package/dist/node_modules/zod/v4/classic/schemas.js +0 -711
- package/dist/node_modules/zod/v4/classic/schemas.js.map +0 -1
- package/dist/node_modules/zod/v4/core/api.js +0 -588
- package/dist/node_modules/zod/v4/core/api.js.map +0 -1
- package/dist/node_modules/zod/v4/core/checks.js +0 -411
- package/dist/node_modules/zod/v4/core/checks.js.map +0 -1
- package/dist/node_modules/zod/v4/core/core.js +0 -75
- package/dist/node_modules/zod/v4/core/core.js.map +0 -1
- package/dist/node_modules/zod/v4/core/doc.js +0 -38
- package/dist/node_modules/zod/v4/core/doc.js.map +0 -1
- package/dist/node_modules/zod/v4/core/errors.js +0 -73
- package/dist/node_modules/zod/v4/core/errors.js.map +0 -1
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +0 -359
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +0 -1
- package/dist/node_modules/zod/v4/core/parse.js +0 -96
- package/dist/node_modules/zod/v4/core/parse.js.map +0 -1
- package/dist/node_modules/zod/v4/core/regexes.js +0 -84
- package/dist/node_modules/zod/v4/core/regexes.js.map +0 -1
- package/dist/node_modules/zod/v4/core/registries.js +0 -52
- package/dist/node_modules/zod/v4/core/registries.js.map +0 -1
- package/dist/node_modules/zod/v4/core/schemas.js +0 -1391
- package/dist/node_modules/zod/v4/core/schemas.js.map +0 -1
- package/dist/node_modules/zod/v4/core/to-json-schema.js +0 -363
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
- package/dist/node_modules/zod/v4/core/util.js +0 -431
- package/dist/node_modules/zod/v4/core/util.js.map +0 -1
- package/dist/node_modules/zod/v4/core/versions.js +0 -9
- package/dist/node_modules/zod/v4/core/versions.js.map +0 -1
- package/dist/redux/baseQuery.d.ts +0 -1
- package/dist/redux/baseQuery.js +0 -24
- package/dist/redux/baseQuery.js.map +0 -1
- package/dist/services/eventApi.js +0 -411
- package/dist/services/eventApi.js.map +0 -1
- package/dist/services/helpers.js +0 -115
- package/dist/services/helpers.js.map +0 -1
- package/dist/services/initialize-firebase.d.ts +0 -2
- package/dist/services/initialize-firebase.js +0 -20
- package/dist/services/initialize-firebase.js.map +0 -1
- package/dist/services/process-image-on-server.js +0 -30
- package/dist/services/process-image-on-server.js.map +0 -1
- package/dist/services/remote-config.d.ts +0 -5
- package/dist/services/remote-config.js +0 -9
- package/dist/services/remote-config.js.map +0 -1
- package/dist/services/single-event-api.js +0 -301
- package/dist/services/single-event-api.js.map +0 -1
- package/dist/services/utils.js +0 -107
- package/dist/services/utils.js.map +0 -1
- package/dist/setupTests.d.ts +0 -1
- package/dist/stories/Alert.stories.d.ts +0 -10
- package/dist/stories/Button.stories.d.ts +0 -13
- package/dist/types/redux-types.d.ts +0 -15
- package/dist/types/types.d.ts +0 -60
- package/dist/types/types.js +0 -10
- package/dist/types/types.js.map +0 -1
- package/dist/utils/cn.d.ts +0 -6
- package/dist/utils/cn.js +0 -9
- package/dist/utils/cn.js.map +0 -1
- package/dist/utils/date-range.d.ts +0 -4
- package/dist/utils/date-range.js +0 -13
- package/dist/utils/date-range.js.map +0 -1
- package/dist/utils/single-event-helpers.d.ts +0 -50
- package/dist/utils/single-event-helpers.js +0 -18
- package/dist/utils/single-event-helpers.js.map +0 -1
- package/dist/utils/social-validation.js +0 -42
- package/dist/utils/social-validation.js.map +0 -1
- package/dist/utils/utils.js +0 -20
- package/dist/utils/utils.js.map +0 -1
- /package/dist/{components/Alert/Alert.d.ts → src/components/Alert/index.d.ts} +0 -0
- /package/dist/{components → src/components}/FormBuilder/CategoryList.d.ts +0 -0
- /package/dist/{components → src/components}/FormBuilder/OptionList.d.ts +0 -0
- /package/dist/{components → src/components}/FormBuilder/RequiredToggle.d.ts +0 -0
- /package/dist/{components → src/components}/FormBuilder/types.d.ts +0 -0
- /package/dist/{components → src/components}/FormBuilder/utils.d.ts +0 -0
- /package/dist/{components → src/components}/ImageCropModal/index.d.ts +0 -0
- /package/dist/{components → src/components}/InformationPopover.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/common/DescriptionModal.d.ts +0 -0
- /package/dist/{components/ui/FormInput.d.ts → src/components/NewAddEvent/components/AddEventFormInput.d.ts} +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/CheckboxGroup.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/CustomMeetingForm.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/DateTimeField.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/FileUpload.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/FormBuilderProceedModal.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/GoogleMapsAutocompleteInput.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/SingleDateTimeInput.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/StepTwo/CustomFormSection.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/TicketTypeSelection.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/StepOne.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/StepTwo.d.ts +0 -0
- /package/dist/{components/EventAddForm → src/components/NewAddEvent}/types.d.ts +0 -0
- /package/dist/{components → src/components}/common/FallbackImage.d.ts +0 -0
- /package/dist/{components → src/components}/ui/Calendar/calendar-utils.d.ts +0 -0
- /package/dist/{components → src/components}/ui/Calendar/index.d.ts +0 -0
- /package/dist/{components/Checkbox → src/components/ui}/Checkbox.d.ts +0 -0
- /package/dist/{components/CustomSelect → src/components/ui}/CustomSelect.d.ts +0 -0
- /package/dist/{components → src/components}/ui/DatePicker/index.d.ts +0 -0
- /package/dist/{components/InputErrorMessage → src/components/ui}/InputErrorMessage.d.ts +0 -0
- /package/dist/{components → src/components}/ui/Modal/index.d.ts +0 -0
- /package/dist/{components/Radio → src/components/ui}/Radio.d.ts +0 -0
- /package/dist/{components → src/components}/ui/RichTextEditor.d.ts +0 -0
- /package/dist/{components → src/components}/ui/TimePicker/index.d.ts +0 -0
- /package/dist/{components → src/components}/ui/TimeSelector/index.d.ts +0 -0
- /package/dist/{components → src/components}/ui/Tooltip/index.d.ts +0 -0
- /package/dist/{lib → src/lib}/constants.d.ts +0 -0
- /package/dist/{lib → src/lib}/cropImage.d.ts +0 -0
- /package/dist/{lib → src/lib}/imageAnalysis.d.ts +0 -0
- /package/dist/{utils → src/lib}/social-validation.d.ts +0 -0
- /package/dist/{lib/utils.d.ts → src/lib/tailwind-merge.d.ts} +0 -0
- /package/dist/{utils → src/lib}/utils.d.ts +0 -0
- /package/dist/{services → src/redux/features/single-event}/helpers.d.ts +0 -0
- /package/dist/{services → src/services}/process-image-on-server.d.ts +0 -0
- /package/dist/{types → src/types}/events.d.ts +0 -0
- /package/dist/{types → src/types}/question.d.ts +0 -0
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import React__default, { memo, useState, useMemo } from "react";
|
|
3
|
-
import { getDateRange } from "../../../utils/date-range.js";
|
|
4
|
-
import ConfirmationModal from "../common/ConfirmationModal.js";
|
|
5
|
-
import TicketTierSection from "../components/StepTwo/TicketTierSection.js";
|
|
6
|
-
import CustomFormSection from "../components/StepTwo/CustomFormSection.js";
|
|
7
|
-
import TicketTypeSelection from "../components/TicketTypeSelection.js";
|
|
8
|
-
function StepTwo({ formState, setField, errors, validateField, setNavigationBlocked, eventId }) {
|
|
9
|
-
const [showInlineForm, setShowInlineForm] = useState(false);
|
|
10
|
-
const [selectedTier, setSelectedTier] = useState(null);
|
|
11
|
-
const [showDeleteModal, setShowDeleteModal] = useState(false);
|
|
12
|
-
const [tierToDelete, setTierToDelete] = useState(null);
|
|
13
|
-
const formRef = React__default.useRef(null);
|
|
14
|
-
const [showParticipationModal, setShowParticipationModal] = useState(false);
|
|
15
|
-
const [pendingParticipationType, setPendingParticipationType] = useState(null);
|
|
16
|
-
React__default.useEffect(() => {
|
|
17
|
-
if (showInlineForm && formRef.current) {
|
|
18
|
-
formRef.current.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
19
|
-
}
|
|
20
|
-
}, [showInlineForm]);
|
|
21
|
-
const tiers = Object.values(formState.ticket_tiers || {});
|
|
22
|
-
const handleSaveTier = (tier) => {
|
|
23
|
-
const newTiers = { ...formState.ticket_tiers || {} };
|
|
24
|
-
newTiers[tier.id] = tier;
|
|
25
|
-
setField("ticket_tiers", newTiers);
|
|
26
|
-
setShowInlineForm(false);
|
|
27
|
-
setSelectedTier(null);
|
|
28
|
-
};
|
|
29
|
-
const handleDeleteTier = () => {
|
|
30
|
-
if (tierToDelete) {
|
|
31
|
-
const newTiers = { ...formState.ticket_tiers || {} };
|
|
32
|
-
delete newTiers[tierToDelete.id];
|
|
33
|
-
setField("ticket_tiers", newTiers);
|
|
34
|
-
setShowDeleteModal(false);
|
|
35
|
-
setTierToDelete(null);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const handleEditTier = (tier) => {
|
|
39
|
-
setSelectedTier(tier);
|
|
40
|
-
setShowInlineForm(true);
|
|
41
|
-
};
|
|
42
|
-
const handleDuplicateTier = (tier) => {
|
|
43
|
-
const existingNames = tiers.map((t) => t.name.toLowerCase());
|
|
44
|
-
const baseNameRegex = /^(.*?)(?:\sCopy\s\((\d+)\))?$/i;
|
|
45
|
-
const match = tier.name.match(baseNameRegex);
|
|
46
|
-
const baseName = match ? match[1].trim() : tier.name.trim();
|
|
47
|
-
let n = 1;
|
|
48
|
-
let newName = `${baseName} Copy (${n})`;
|
|
49
|
-
while (existingNames.includes(newName.toLowerCase())) {
|
|
50
|
-
n++;
|
|
51
|
-
newName = `${baseName} Copy (${n})`;
|
|
52
|
-
}
|
|
53
|
-
const dataToSave = {
|
|
54
|
-
...tier,
|
|
55
|
-
id: crypto.randomUUID(),
|
|
56
|
-
name: newName
|
|
57
|
-
};
|
|
58
|
-
const newTiers = { ...formState.ticket_tiers || {} };
|
|
59
|
-
newTiers[dataToSave.id] = dataToSave;
|
|
60
|
-
setField("ticket_tiers", newTiers);
|
|
61
|
-
};
|
|
62
|
-
const handleSetField = (field, value) => {
|
|
63
|
-
if (field === "participants_type" && eventId && eventId !== "new") {
|
|
64
|
-
if (value !== formState.participants_type) {
|
|
65
|
-
setPendingParticipationType(value);
|
|
66
|
-
setShowParticipationModal(true);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
setField(field, value);
|
|
71
|
-
};
|
|
72
|
-
const handleConfirmParticipationChange = () => {
|
|
73
|
-
if (pendingParticipationType) {
|
|
74
|
-
setField("participants_type", pendingParticipationType);
|
|
75
|
-
}
|
|
76
|
-
setShowParticipationModal(false);
|
|
77
|
-
setPendingParticipationType(null);
|
|
78
|
-
};
|
|
79
|
-
const handleCancelParticipationChange = () => {
|
|
80
|
-
setShowParticipationModal(false);
|
|
81
|
-
setPendingParticipationType(null);
|
|
82
|
-
};
|
|
83
|
-
const eventDateRange = useMemo(
|
|
84
|
-
() => {
|
|
85
|
-
var _a, _b, _c, _d;
|
|
86
|
-
return ((_a = formState == null ? void 0 : formState.event_start_timestamp) == null ? void 0 : _a.date) && ((_b = formState == null ? void 0 : formState.event_end_timestamp) == null ? void 0 : _b.date) ? getDateRange(new Date((_c = formState == null ? void 0 : formState.event_start_timestamp) == null ? void 0 : _c.date), new Date((_d = formState == null ? void 0 : formState.event_end_timestamp) == null ? void 0 : _d.date)) : void 0;
|
|
87
|
-
},
|
|
88
|
-
[formState.event_start_timestamp, formState.event_end_timestamp]
|
|
89
|
-
);
|
|
90
|
-
return /* @__PURE__ */ jsxs("div", { className: "max-w-[734px] mx-auto space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500", children: [
|
|
91
|
-
/* @__PURE__ */ jsxs("div", { className: "py-6 space-y-4 rounded-lg", children: [
|
|
92
|
-
/* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-grey-900 px-4", children: "Step up your ticket" }),
|
|
93
|
-
/* @__PURE__ */ jsx("div", { className: "px-2 rounded-xl", children: /* @__PURE__ */ jsx("div", { className: "px-2 rounded-xl", "data-name": "ticket_type", children: /* @__PURE__ */ jsx(
|
|
94
|
-
TicketTypeSelection,
|
|
95
|
-
{
|
|
96
|
-
selectedType: formState.ticket_type || "",
|
|
97
|
-
onSelect: (type) => {
|
|
98
|
-
setField("ticket_type", type);
|
|
99
|
-
setShowInlineForm(false);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
) }) }),
|
|
103
|
-
/* @__PURE__ */ jsxs("div", { className: "w-full px-4", children: [
|
|
104
|
-
formState.ticket_type === "TICKET_TIER" && /* @__PURE__ */ jsx(
|
|
105
|
-
TicketTierSection,
|
|
106
|
-
{
|
|
107
|
-
tiers,
|
|
108
|
-
ticketsError: errors.ticket_tiers,
|
|
109
|
-
showInlineForm,
|
|
110
|
-
setShowInlineForm,
|
|
111
|
-
selectedTier,
|
|
112
|
-
setSelectedTier,
|
|
113
|
-
handleEditTier,
|
|
114
|
-
handleDuplicateTier,
|
|
115
|
-
setTierToDelete,
|
|
116
|
-
setShowDeleteModal,
|
|
117
|
-
formRef,
|
|
118
|
-
eventDateRange,
|
|
119
|
-
handleSaveTier,
|
|
120
|
-
setNavigationBlocked,
|
|
121
|
-
eventStart: formState.event_start_timestamp,
|
|
122
|
-
eventEnd: formState.event_end_timestamp,
|
|
123
|
-
registrationStart: formState.registration_start_timestamp,
|
|
124
|
-
registrationEnd: formState.registration_end_timestamp
|
|
125
|
-
}
|
|
126
|
-
),
|
|
127
|
-
formState.ticket_type === "CUSTOM_FORM" && /* @__PURE__ */ jsx(
|
|
128
|
-
CustomFormSection,
|
|
129
|
-
{
|
|
130
|
-
formState,
|
|
131
|
-
setField: handleSetField,
|
|
132
|
-
errors,
|
|
133
|
-
validateField
|
|
134
|
-
}
|
|
135
|
-
),
|
|
136
|
-
errors._step && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-error-50 border border-error-100 rounded-lg text-sm text-error-700 flex items-center gap-2", children: [
|
|
137
|
-
/* @__PURE__ */ jsx("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }),
|
|
138
|
-
errors._step
|
|
139
|
-
] })
|
|
140
|
-
] })
|
|
141
|
-
] }),
|
|
142
|
-
/* @__PURE__ */ jsx(
|
|
143
|
-
ConfirmationModal,
|
|
144
|
-
{
|
|
145
|
-
open: showDeleteModal,
|
|
146
|
-
title: "Delete ticket tier?",
|
|
147
|
-
description: "Are you sure you want to delete this ticket tier? This action cannot be undone.",
|
|
148
|
-
onClose: () => {
|
|
149
|
-
setShowDeleteModal(false);
|
|
150
|
-
setTierToDelete(null);
|
|
151
|
-
},
|
|
152
|
-
onConfirm: handleDeleteTier
|
|
153
|
-
}
|
|
154
|
-
),
|
|
155
|
-
/* @__PURE__ */ jsx(
|
|
156
|
-
ConfirmationModal,
|
|
157
|
-
{
|
|
158
|
-
open: showParticipationModal,
|
|
159
|
-
title: "Change participation type?",
|
|
160
|
-
description: "Changing the participation type will reset the form questions in the next step. Are you sure you want to proceed?",
|
|
161
|
-
onClose: handleCancelParticipationChange,
|
|
162
|
-
onConfirm: handleConfirmParticipationChange,
|
|
163
|
-
confirmText: "Yes, change it",
|
|
164
|
-
cancelText: "No, keep it"
|
|
165
|
-
}
|
|
166
|
-
)
|
|
167
|
-
] });
|
|
168
|
-
}
|
|
169
|
-
const StepTwo$1 = memo(StepTwo);
|
|
170
|
-
export {
|
|
171
|
-
StepTwo$1 as default
|
|
172
|
-
};
|
|
173
|
-
//# sourceMappingURL=StepTwo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StepTwo.js","sources":["../../../../src/components/EventAddForm/steps/StepTwo.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { memo, useMemo, useState } from \"react\";\r\nimport { StepperFormState } from '../types';\r\nimport { TicketTier } from \"@/types/types\";\r\nimport { getDateRange } from \"@/utils/date-range\";\r\nimport ConfirmationModal from \"../common/ConfirmationModal\";\r\nimport TicketTierSection from \"@/components/EventAddForm/components/StepTwo/TicketTierSection\";\r\nimport CustomFormSection from \"@/components/EventAddForm/components/StepTwo/CustomFormSection\";\r\nimport TicketTypeSelection from \"@/components/EventAddForm/components/TicketTypeSelection\";\r\n\r\ninterface StepTwoProps {\r\n formState: StepperFormState;\r\n setField: (field: keyof StepperFormState, value: any) => void;\r\n setMultipleFields: (fields: Partial<StepperFormState> | ((prev: StepperFormState) => Partial<StepperFormState>)) => void;\r\n errors: Record<string, string>;\r\n validateField: (field: keyof StepperFormState, data?: StepperFormState) => void;\r\n setErrors: React.Dispatch<React.SetStateAction<Record<string, string>>>;\r\n eventData?: any;\r\n eventId?: string;\r\n setNavigationBlocked?: (blocked: boolean) => void;\r\n}\r\n\r\nfunction StepTwo({ formState, setField, errors, validateField, setNavigationBlocked, eventId }: StepTwoProps) {\r\n const [showInlineForm, setShowInlineForm] = useState(false);\r\n const [selectedTier, setSelectedTier] = useState<TicketTier | null>(null);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [tierToDelete, setTierToDelete] = useState<TicketTier | null>(null);\r\n const formRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const [showParticipationModal, setShowParticipationModal] = useState(false);\r\n const [pendingParticipationType, setPendingParticipationType] = useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (showInlineForm && formRef.current) {\r\n formRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\r\n }\r\n }, [showInlineForm]);\r\n\r\n const tiers = Object.values(formState.ticket_tiers || {}) as TicketTier[];\r\n\r\n const handleSaveTier = (tier: TicketTier) => {\r\n const newTiers = { ...(formState.ticket_tiers || {}) };\r\n newTiers[tier.id] = tier;\r\n setField(\"ticket_tiers\", newTiers);\r\n setShowInlineForm(false);\r\n setSelectedTier(null);\r\n };\r\n\r\n const handleDeleteTier = () => {\r\n if (tierToDelete) {\r\n const newTiers = { ...(formState.ticket_tiers || {}) };\r\n delete newTiers[tierToDelete.id];\r\n setField(\"ticket_tiers\", newTiers);\r\n setShowDeleteModal(false);\r\n setTierToDelete(null);\r\n }\r\n };\r\n\r\n const handleEditTier = (tier: TicketTier) => {\r\n setSelectedTier(tier);\r\n setShowInlineForm(true);\r\n };\r\n\r\n const handleDuplicateTier = (tier: TicketTier) => {\r\n const existingNames = tiers.map(t => t.name.toLowerCase());\r\n\r\n // Identify the base name (strip any existing \" Copy (n)\" suffix)\r\n // Case-insensitive regex to handle variations\r\n const baseNameRegex = /^(.*?)(?:\\sCopy\\s\\((\\d+)\\))?$/i;\r\n const match = tier.name.match(baseNameRegex);\r\n const baseName = match ? match[1].trim() : tier.name.trim();\r\n\r\n let n = 1;\r\n let newName = `${baseName} Copy (${n})`;\r\n\r\n while (existingNames.includes(newName.toLowerCase())) {\r\n n++;\r\n newName = `${baseName} Copy (${n})`;\r\n }\r\n\r\n const dataToSave: TicketTier = {\r\n ...tier,\r\n id: crypto.randomUUID(),\r\n name: newName,\r\n };\r\n\r\n const newTiers = { ...(formState.ticket_tiers || {}) };\r\n newTiers[dataToSave.id] = dataToSave;\r\n setField(\"ticket_tiers\", newTiers);\r\n };\r\n\r\n // Proxied setField to intercept participation_type change\r\n const handleSetField = (field: keyof StepperFormState, value: any) => {\r\n if (field === \"participants_type\" && eventId && eventId !== \"new\") {\r\n // Check if value actually changed\r\n if (value !== formState.participants_type) {\r\n setPendingParticipationType(value);\r\n setShowParticipationModal(true);\r\n return;\r\n }\r\n }\r\n setField(field, value);\r\n };\r\n\r\n const handleConfirmParticipationChange = () => {\r\n if (pendingParticipationType) {\r\n setField(\"participants_type\", pendingParticipationType);\r\n }\r\n setShowParticipationModal(false);\r\n setPendingParticipationType(null);\r\n };\r\n\r\n const handleCancelParticipationChange = () => {\r\n setShowParticipationModal(false);\r\n setPendingParticipationType(null);\r\n };\r\n\r\n const eventDateRange = useMemo(() =>\r\n formState?.event_start_timestamp?.date && formState?.event_end_timestamp?.date\r\n ? getDateRange(new Date(formState?.event_start_timestamp?.date), new Date(formState?.event_end_timestamp?.date))\r\n : undefined,\r\n [formState.event_start_timestamp, formState.event_end_timestamp]);\r\n\r\n return (\r\n <div className=\"max-w-[734px] mx-auto space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500\">\r\n <div className=\"py-6 space-y-4 rounded-lg\">\r\n <h2 className=\"text-lg font-semibold text-grey-900 px-4\">\r\n Step up your ticket\r\n </h2>\r\n\r\n {/* Ticket Type Selection Cards */}\r\n <div className=\"px-2 rounded-xl\">\r\n <div className=\"px-2 rounded-xl\" data-name=\"ticket_type\">\r\n <TicketTypeSelection\r\n selectedType={formState.ticket_type || \"\"}\r\n onSelect={(type) => {\r\n setField(\"ticket_type\", type);\r\n setShowInlineForm(false);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"w-full px-4\">\r\n {/* Ticket Tier Section Logic */}\r\n {formState.ticket_type === \"TICKET_TIER\" && (\r\n <TicketTierSection\r\n tiers={tiers}\r\n ticketsError={errors.ticket_tiers}\r\n showInlineForm={showInlineForm}\r\n setShowInlineForm={setShowInlineForm}\r\n selectedTier={selectedTier}\r\n setSelectedTier={setSelectedTier}\r\n handleEditTier={handleEditTier}\r\n handleDuplicateTier={handleDuplicateTier}\r\n setTierToDelete={setTierToDelete}\r\n setShowDeleteModal={setShowDeleteModal}\r\n formRef={formRef as React.RefObject<HTMLDivElement>}\r\n eventDateRange={eventDateRange}\r\n handleSaveTier={handleSaveTier}\r\n setNavigationBlocked={setNavigationBlocked}\r\n eventStart={formState.event_start_timestamp}\r\n eventEnd={formState.event_end_timestamp}\r\n registrationStart={formState.registration_start_timestamp}\r\n registrationEnd={formState.registration_end_timestamp}\r\n />\r\n )}\r\n\r\n {/* Custom Form Section */}\r\n {formState.ticket_type === \"CUSTOM_FORM\" && (\r\n <CustomFormSection\r\n formState={formState}\r\n setField={handleSetField as any}\r\n errors={errors}\r\n validateField={validateField as any}\r\n />\r\n )}\r\n\r\n {errors._step && (\r\n <div className=\"p-3 bg-error-50 border border-error-100 rounded-lg text-sm text-error-700 flex items-center gap-2\">\r\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\" />\r\n </svg>\r\n {errors._step}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <ConfirmationModal\r\n open={showDeleteModal}\r\n title=\"Delete ticket tier?\"\r\n description=\"Are you sure you want to delete this ticket tier? This action cannot be undone.\"\r\n onClose={() => {\r\n setShowDeleteModal(false);\r\n setTierToDelete(null);\r\n }}\r\n onConfirm={handleDeleteTier}\r\n />\r\n\r\n <ConfirmationModal\r\n open={showParticipationModal}\r\n title=\"Change participation type?\"\r\n description=\"Changing the participation type will reset the form questions in the next step. Are you sure you want to proceed?\"\r\n onClose={handleCancelParticipationChange}\r\n onConfirm={handleConfirmParticipationChange}\r\n confirmText=\"Yes, change it\"\r\n cancelText=\"No, keep it\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default memo(StepTwo);\r\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo, forwardRef } from "react";
|
|
3
|
-
import IndividualFormStep from "./IndividualFormStep.js";
|
|
4
|
-
const TeamFormStep = forwardRef((props, ref) => {
|
|
5
|
-
return /* @__PURE__ */ jsx(IndividualFormStep, { ...props, ref, participationTypeOverride: "2", scopeOverride: "TEAM", allowedDiscountQuestions: 1, onPolluted: props.onPolluted });
|
|
6
|
-
});
|
|
7
|
-
TeamFormStep.displayName = "TeamFormStep";
|
|
8
|
-
const TeamFormStep$1 = memo(TeamFormStep);
|
|
9
|
-
export {
|
|
10
|
-
TeamFormStep,
|
|
11
|
-
TeamFormStep$1 as default
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=TeamFormStep.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TeamFormStep.js","sources":["../../../../src/components/EventAddForm/steps/TeamFormStep.tsx"],"sourcesContent":["import { memo, forwardRef } from \"react\";\r\nimport IndividualFormStep, { IndividualFormStepRef } from \"./IndividualFormStep\";\r\nimport { StepperFormState } from \"../types\";\r\n\r\ninterface TeamFormStepProps {\r\n formState: StepperFormState;\r\n setField: (field: keyof StepperFormState, value: any) => void;\r\n setMultipleFields: (fields: Partial<StepperFormState> | ((prev: StepperFormState) => Partial<StepperFormState>)) => void;\r\n errors: Record<string, string>;\r\n validateField: (field: keyof StepperFormState, data?: StepperFormState) => void;\r\n setErrors: React.Dispatch<React.SetStateAction<Record<string, string>>>;\r\n eventId: string;\r\n eventData: any;\r\n isSameQuestionTitleAllowed?: boolean;\r\n allowedDiscountQuestions?: number;\r\n onPolluted?: () => void;\r\n}\r\n\r\nexport const TeamFormStep = forwardRef<IndividualFormStepRef, TeamFormStepProps>((props, ref) => {\r\n return <IndividualFormStep {...props} ref={ref} participationTypeOverride=\"2\" scopeOverride='TEAM' allowedDiscountQuestions={1} onPolluted={props.onPolluted} />;\r\n});\r\n \r\nTeamFormStep.displayName = \"TeamFormStep\";\r\n \r\nexport default memo(TeamFormStep);\r\n"],"names":[],"mappings":";;;AAkBO,MAAM,eAAe,WAAqD,CAAC,OAAO,QAAQ;AAC7F,SAAO,oBAAC,oBAAA,EAAoB,GAAG,OAAO,KAAU,2BAA0B,KAAI,eAAc,QAAO,0BAA0B,GAAG,YAAY,MAAM,YAAY;AAClK,CAAC;AAED,aAAa,cAAc;AAE3B,MAAA,iBAAe,KAAK,YAAY;"}
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
-
import React__default, { useState } from "react";
|
|
3
|
-
import { Trash2 } from "lucide-react";
|
|
4
|
-
import { useSensors, useSensor, PointerSensor, DndContext, closestCenter } from "../../node_modules/@dnd-kit/core/dist/core.esm.js";
|
|
5
|
-
import { SortableContext, verticalListSortingStrategy, arrayMove, useSortable } from "../../node_modules/@dnd-kit/sortable/dist/sortable.esm.js";
|
|
6
|
-
import { CSS } from "../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js";
|
|
7
|
-
import FormInput from "../FormInput/FormInput.js";
|
|
8
|
-
import { FontAwesomeIcon } from "../../node_modules/@fortawesome/react-fontawesome/dist/index.js";
|
|
9
|
-
import { faPlus, faGripVertical } from "../../node_modules/@fortawesome/free-solid-svg-icons/index.js";
|
|
10
|
-
import Alert from "../Alert/Alert.js";
|
|
11
|
-
import { Button } from "../Button/Button.js";
|
|
12
|
-
const CategoryList = ({ categories, onChange, showError }) => {
|
|
13
|
-
const containerRef = React__default.useRef(null);
|
|
14
|
-
const [alertState, setAlertState] = useState({
|
|
15
|
-
isVisible: false,
|
|
16
|
-
message: "",
|
|
17
|
-
type: "success"
|
|
18
|
-
});
|
|
19
|
-
const sensors = useSensors(
|
|
20
|
-
useSensor(PointerSensor, { activationConstraint: { distance: 3 } })
|
|
21
|
-
);
|
|
22
|
-
const handleDragEnd = (event) => {
|
|
23
|
-
const { active, over } = event;
|
|
24
|
-
if (active.id !== (over == null ? void 0 : over.id)) {
|
|
25
|
-
const oldIndex = categories.findIndex((c) => c.id === active.id);
|
|
26
|
-
const newIndex = categories.findIndex((c) => c.id === (over == null ? void 0 : over.id));
|
|
27
|
-
if (oldIndex !== -1 && newIndex !== -1) {
|
|
28
|
-
const newCategories = arrayMove(categories, oldIndex, newIndex);
|
|
29
|
-
onChange(newCategories);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
const handleAdd = () => {
|
|
34
|
-
const newCategory = {
|
|
35
|
-
id: crypto.randomUUID(),
|
|
36
|
-
name: ``,
|
|
37
|
-
price: 0
|
|
38
|
-
};
|
|
39
|
-
onChange([...categories, newCategory]);
|
|
40
|
-
};
|
|
41
|
-
const handleBulkAdd = (newItems) => {
|
|
42
|
-
onChange([...categories, ...newItems]);
|
|
43
|
-
};
|
|
44
|
-
React__default.useEffect(() => {
|
|
45
|
-
const handleGlobalPaste = (e) => {
|
|
46
|
-
var _a, _b;
|
|
47
|
-
const target = e.target;
|
|
48
|
-
const isInput = target.tagName === "INPUT" || target.tagName === "TEXTAREA";
|
|
49
|
-
const isInside = (_a = containerRef.current) == null ? void 0 : _a.contains(target);
|
|
50
|
-
if (isInput && !isInside) return;
|
|
51
|
-
if (target !== document.body && !isInside) return;
|
|
52
|
-
const clipboardData = (_b = e.clipboardData) == null ? void 0 : _b.getData("text");
|
|
53
|
-
if (!clipboardData) return;
|
|
54
|
-
const lines = clipboardData.split(/\r?\n/).filter((line) => line.trim() !== "");
|
|
55
|
-
if (lines.length === 0) return;
|
|
56
|
-
const newItems = [];
|
|
57
|
-
let skippedCount = 0;
|
|
58
|
-
lines.forEach((line) => {
|
|
59
|
-
let name = "";
|
|
60
|
-
let price = 0;
|
|
61
|
-
let parsed = false;
|
|
62
|
-
if (line.includes(" ")) {
|
|
63
|
-
const parts = line.split(" ");
|
|
64
|
-
if (parts.length >= 2) {
|
|
65
|
-
name = parts[0].trim();
|
|
66
|
-
const pricePart = parts[1].replace(/[^0-9.]/g, "");
|
|
67
|
-
if (!isNaN(parseFloat(pricePart))) {
|
|
68
|
-
price = parseFloat(pricePart);
|
|
69
|
-
parsed = true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
} else if (line.includes("|")) {
|
|
73
|
-
const parts = line.split("|");
|
|
74
|
-
if (parts.length >= 2) {
|
|
75
|
-
name = parts[0].trim();
|
|
76
|
-
const pricePart = parts[1].replace(/[^0-9.]/g, "");
|
|
77
|
-
if (!isNaN(parseFloat(pricePart))) {
|
|
78
|
-
price = parseFloat(pricePart);
|
|
79
|
-
parsed = true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
const match = line.match(/^(.*)\s+(\d+(\.\d{1,2})?)$/);
|
|
84
|
-
if (match) {
|
|
85
|
-
name = match[1].trim();
|
|
86
|
-
price = parseFloat(match[2]);
|
|
87
|
-
parsed = true;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (!parsed && (lines.length > 1 || !isInput)) {
|
|
91
|
-
name = line.trim();
|
|
92
|
-
price = 0;
|
|
93
|
-
parsed = true;
|
|
94
|
-
}
|
|
95
|
-
if (parsed && name) {
|
|
96
|
-
newItems.push({
|
|
97
|
-
id: crypto.randomUUID(),
|
|
98
|
-
name,
|
|
99
|
-
price
|
|
100
|
-
});
|
|
101
|
-
} else {
|
|
102
|
-
skippedCount++;
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
if (isInput && lines.length === 1 && newItems.length === 1 && newItems[0].price === 0) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (newItems.length > 0) {
|
|
109
|
-
e.preventDefault();
|
|
110
|
-
handleBulkAdd(newItems);
|
|
111
|
-
setAlertState({
|
|
112
|
-
isVisible: true,
|
|
113
|
-
message: `Added ${newItems.length} categories from clipboard.`,
|
|
114
|
-
type: "success"
|
|
115
|
-
});
|
|
116
|
-
setTimeout(() => setAlertState((prev) => ({ ...prev, isVisible: false })), 3e3);
|
|
117
|
-
} else if (skippedCount > 0 && !isInput) {
|
|
118
|
-
setAlertState({
|
|
119
|
-
isVisible: true,
|
|
120
|
-
message: "Could not parse clipboard data.",
|
|
121
|
-
type: "error"
|
|
122
|
-
});
|
|
123
|
-
setTimeout(() => setAlertState((prev) => ({ ...prev, isVisible: false })), 3e3);
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
document.addEventListener("paste", handleGlobalPaste);
|
|
127
|
-
return () => document.removeEventListener("paste", handleGlobalPaste);
|
|
128
|
-
}, [categories]);
|
|
129
|
-
const handleUpdate = (id, updates) => {
|
|
130
|
-
const newCategories = categories.map(
|
|
131
|
-
(cat) => cat.id === id ? { ...cat, ...updates } : cat
|
|
132
|
-
);
|
|
133
|
-
onChange(newCategories);
|
|
134
|
-
};
|
|
135
|
-
const handleDelete = (id) => {
|
|
136
|
-
if (categories.length <= 1) return;
|
|
137
|
-
onChange(categories.filter((cat) => cat.id !== id));
|
|
138
|
-
};
|
|
139
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
140
|
-
/* @__PURE__ */ jsxs("div", { ref: containerRef, className: "ui-space-y-3", children: [
|
|
141
|
-
/* @__PURE__ */ jsx("div", { className: "ui-flex ui-items-center ui-justify-between", children: /* @__PURE__ */ jsx("label", { className: "ui-text-sm ui-font-medium ui-text-gray-700", children: "Payment Categories" }) }),
|
|
142
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx(SortableContext, { items: categories.map((c) => c.id), strategy: verticalListSortingStrategy, children: categories.map((category, index) => /* @__PURE__ */ jsx(
|
|
143
|
-
SortableCategoryItem,
|
|
144
|
-
{
|
|
145
|
-
category,
|
|
146
|
-
index,
|
|
147
|
-
onUpdate: handleUpdate,
|
|
148
|
-
onDelete: handleDelete,
|
|
149
|
-
isDeletable: categories.length > 1,
|
|
150
|
-
isNameError: showError && !category.name.trim()
|
|
151
|
-
},
|
|
152
|
-
category.id
|
|
153
|
-
)) }) }) }),
|
|
154
|
-
/* @__PURE__ */ jsxs(
|
|
155
|
-
"button",
|
|
156
|
-
{
|
|
157
|
-
onClick: handleAdd,
|
|
158
|
-
className: `ui-flex ui-items-center ui-gap-2 ui-text-sm ui-font-medium ui-mt-1 ui-pl-1 ui-text-primaryx-600 hover:ui-text-primaryx-700`,
|
|
159
|
-
children: [
|
|
160
|
-
/* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faPlus, className: "ui-text-xs" }),
|
|
161
|
-
"Add Category"
|
|
162
|
-
]
|
|
163
|
-
}
|
|
164
|
-
)
|
|
165
|
-
] }),
|
|
166
|
-
/* @__PURE__ */ jsx(
|
|
167
|
-
Alert,
|
|
168
|
-
{
|
|
169
|
-
isVisible: alertState.isVisible,
|
|
170
|
-
message: alertState.message,
|
|
171
|
-
type: alertState.type,
|
|
172
|
-
onClose: () => setAlertState((prev) => ({ ...prev, isVisible: false }))
|
|
173
|
-
}
|
|
174
|
-
)
|
|
175
|
-
] });
|
|
176
|
-
};
|
|
177
|
-
function SortableCategoryItem({ category, index, onUpdate, onDelete, isDeletable, isNameError }) {
|
|
178
|
-
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: category.id });
|
|
179
|
-
const style = {
|
|
180
|
-
transform: CSS.Transform.toString(transform),
|
|
181
|
-
transition,
|
|
182
|
-
opacity: isDragging ? 0.5 : 1,
|
|
183
|
-
position: "relative",
|
|
184
|
-
zIndex: isDragging ? 1 : 0
|
|
185
|
-
};
|
|
186
|
-
return /* @__PURE__ */ jsxs("div", { ref: setNodeRef, style, className: "ui-w-full ui-flex ui-items-center ui-gap-2 ui-group", children: [
|
|
187
|
-
/* @__PURE__ */ jsx(
|
|
188
|
-
"div",
|
|
189
|
-
{
|
|
190
|
-
...attributes,
|
|
191
|
-
...listeners,
|
|
192
|
-
className: "sm:ui-block ui-hidden ui-text-gray-300 ui-cursor-move hover:ui-text-gray-500 ui-px-1 ui-opacity-0 group-hover:ui-opacity-100 ui-transition-opacity",
|
|
193
|
-
children: /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faGripVertical })
|
|
194
|
-
}
|
|
195
|
-
),
|
|
196
|
-
/* @__PURE__ */ jsx("div", { className: "sm:ui-px-2 ui-text-gray-400", children: /* @__PURE__ */ jsxs("span", { className: "ui-text-sm ui-font-mono", children: [
|
|
197
|
-
index + 1,
|
|
198
|
-
"."
|
|
199
|
-
] }) }),
|
|
200
|
-
/* @__PURE__ */ jsxs("div", { className: "ui-flex-1 ui-grid sm:ui-grid-cols-2 sm:ui-gap-2", children: [
|
|
201
|
-
/* @__PURE__ */ jsx(
|
|
202
|
-
FormInput,
|
|
203
|
-
{
|
|
204
|
-
type: "text",
|
|
205
|
-
value: category.name,
|
|
206
|
-
onChange: (e) => onUpdate(category.id, { name: typeof e === "string" ? e : e.target.value }),
|
|
207
|
-
placeholder: `Category ${index + 1}`,
|
|
208
|
-
inputClassName: "ui-h-12 ui-text-sm",
|
|
209
|
-
error: isNameError ? "Required" : void 0
|
|
210
|
-
}
|
|
211
|
-
),
|
|
212
|
-
/* @__PURE__ */ jsx(
|
|
213
|
-
FormInput,
|
|
214
|
-
{
|
|
215
|
-
type: "number",
|
|
216
|
-
value: category.price.toString(),
|
|
217
|
-
onChange: (e) => onUpdate(category.id, { price: parseFloat(typeof e === "string" ? e : e.target.value) || 0 }),
|
|
218
|
-
placeholder: "Price",
|
|
219
|
-
inputClassName: "ui-h-12 ui-text-sm",
|
|
220
|
-
suffix: "PKR",
|
|
221
|
-
min: 0
|
|
222
|
-
}
|
|
223
|
-
)
|
|
224
|
-
] }),
|
|
225
|
-
/* @__PURE__ */ jsx(
|
|
226
|
-
Button,
|
|
227
|
-
{
|
|
228
|
-
type: "button",
|
|
229
|
-
variant: "ghost",
|
|
230
|
-
size: "sm",
|
|
231
|
-
onClick: () => onDelete(category.id),
|
|
232
|
-
disabled: !isDeletable,
|
|
233
|
-
className: `sm:ui-block ui-hidden ui-transition-opacity ${isDeletable ? "ui-opacity-100 ui-text-red-500 hover:ui-text-red-600 hover:ui-bg-red-50" : "ui-opacity-0 ui-cursor-not-allowed ui-text-gray-300"}`,
|
|
234
|
-
children: /* @__PURE__ */ jsx(Trash2, { className: "ui-w-4 ui-h-4" })
|
|
235
|
-
}
|
|
236
|
-
)
|
|
237
|
-
] });
|
|
238
|
-
}
|
|
239
|
-
export {
|
|
240
|
-
CategoryList
|
|
241
|
-
};
|
|
242
|
-
//# sourceMappingURL=CategoryList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CategoryList.js","sources":["../../../src/components/FormBuilder/CategoryList.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState } from 'react';\r\nimport { Button } from '../Button';\r\nimport { Trash2 } from 'lucide-react';\r\nimport { DndContext, closestCenter, DragEndEvent, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';\r\nimport { SortableContext, verticalListSortingStrategy, arrayMove, useSortable } from '@dnd-kit/sortable';\r\nimport { CSS } from '@dnd-kit/utilities';\r\nimport FormInput from '../FormInput/FormInput';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPlus, faGripVertical } from '@fortawesome/free-solid-svg-icons';\r\nimport Alert from '../Alert/Alert';\r\n\r\nexport interface CategoryDraft {\r\n id: string;\r\n name: string;\r\n price: number;\r\n}\r\n\r\ninterface CategoryListProps {\r\n categories: CategoryDraft[];\r\n onChange: (categories: CategoryDraft[]) => void;\r\n showError?: boolean;\r\n}\r\n\r\nexport const CategoryList: React.FC<CategoryListProps> = ({ categories, onChange, showError }) => {\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const [alertState, setAlertState] = useState<{ isVisible: boolean; message: string; type: 'success' | 'error' }>({\r\n isVisible: false,\r\n message: '',\r\n type: 'success'\r\n });\r\n\r\n const sensors = useSensors(\r\n useSensor(PointerSensor, { activationConstraint: { distance: 3 } })\r\n );\r\n\r\n const handleDragEnd = (event: DragEndEvent) => {\r\n const { active, over } = event;\r\n if (active.id !== over?.id) {\r\n const oldIndex = categories.findIndex(c => c.id === active.id);\r\n const newIndex = categories.findIndex(c => c.id === over?.id);\r\n if (oldIndex !== -1 && newIndex !== -1) {\r\n const newCategories = arrayMove(categories, oldIndex, newIndex);\r\n onChange(newCategories);\r\n }\r\n }\r\n };\r\n\r\n const handleAdd = () => {\r\n const newCategory: CategoryDraft = {\r\n id: crypto.randomUUID(),\r\n name: ``,\r\n price: 0\r\n };\r\n onChange([...categories, newCategory]);\r\n };\r\n\r\n const handleBulkAdd = (newItems: CategoryDraft[]) => {\r\n onChange([...categories, ...newItems]);\r\n };\r\n\r\n // Global Paste Listener\r\n React.useEffect(() => {\r\n const handleGlobalPaste = (e: ClipboardEvent) => {\r\n const target = e.target as HTMLElement;\r\n const isInput = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';\r\n const isInside = containerRef.current?.contains(target);\r\n\r\n if (isInput && !isInside) return;\r\n if (target !== document.body && !isInside) return;\r\n\r\n const clipboardData = e.clipboardData?.getData(\"text\");\r\n if (!clipboardData) return;\r\n\r\n const lines = clipboardData.split(/\\r?\\n/).filter(line => line.trim() !== \"\");\r\n if (lines.length === 0) return;\r\n\r\n const newItems: CategoryDraft[] = [];\r\n let skippedCount = 0;\r\n\r\n lines.forEach(line => {\r\n let name = \"\";\r\n let price = 0;\r\n let parsed = false;\r\n\r\n if (line.includes(\"\\t\")) {\r\n const parts = line.split(\"\\t\");\r\n if (parts.length >= 2) {\r\n name = parts[0].trim();\r\n const pricePart = parts[1].replace(/[^0-9.]/g, \"\");\r\n if (!isNaN(parseFloat(pricePart))) {\r\n price = parseFloat(pricePart);\r\n parsed = true;\r\n }\r\n }\r\n }\r\n else if (line.includes(\"|\")) {\r\n const parts = line.split(\"|\");\r\n if (parts.length >= 2) {\r\n name = parts[0].trim();\r\n const pricePart = parts[1].replace(/[^0-9.]/g, \"\");\r\n if (!isNaN(parseFloat(pricePart))) {\r\n price = parseFloat(pricePart);\r\n parsed = true;\r\n }\r\n }\r\n }\r\n else {\r\n const match = line.match(/^(.*)\\s+(\\d+(\\.\\d{1,2})?)$/);\r\n if (match) {\r\n name = match[1].trim();\r\n price = parseFloat(match[2]);\r\n parsed = true;\r\n }\r\n }\r\n\r\n if (!parsed && (lines.length > 1 || !isInput)) {\r\n name = line.trim();\r\n price = 0;\r\n parsed = true;\r\n }\r\n\r\n if (parsed && name) {\r\n newItems.push({\r\n id: crypto.randomUUID(),\r\n name,\r\n price\r\n });\r\n } else {\r\n skippedCount++;\r\n }\r\n });\r\n\r\n if (isInput && lines.length === 1 && newItems.length === 1 && newItems[0].price === 0) {\r\n return;\r\n }\r\n\r\n if (newItems.length > 0) {\r\n e.preventDefault();\r\n handleBulkAdd(newItems);\r\n setAlertState({\r\n isVisible: true,\r\n message: `Added ${newItems.length} categories from clipboard.`,\r\n type: 'success'\r\n });\r\n setTimeout(() => setAlertState(prev => ({ ...prev, isVisible: false })), 3000);\r\n } else if (skippedCount > 0 && !isInput) {\r\n setAlertState({\r\n isVisible: true,\r\n message: \"Could not parse clipboard data.\",\r\n type: 'error'\r\n });\r\n setTimeout(() => setAlertState(prev => ({ ...prev, isVisible: false })), 3000);\r\n }\r\n };\r\n\r\n document.addEventListener('paste', handleGlobalPaste);\r\n return () => document.removeEventListener('paste', handleGlobalPaste);\r\n }, [categories]);\r\n\r\n const handleUpdate = (id: string, updates: Partial<CategoryDraft>) => {\r\n const newCategories = categories.map(cat =>\r\n cat.id === id ? { ...cat, ...updates } : cat\r\n );\r\n onChange(newCategories);\r\n };\r\n\r\n const handleDelete = (id: string) => {\r\n if (categories.length <= 1) return;\r\n onChange(categories.filter(cat => cat.id !== id));\r\n };\r\n\r\n return (\r\n <>\r\n <div ref={containerRef} className=\"ui-space-y-3\">\r\n <div className=\"ui-flex ui-items-center ui-justify-between\">\r\n <label className=\"ui-text-sm ui-font-medium ui-text-gray-700\">Payment Categories</label>\r\n </div>\r\n\r\n <div>\r\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\r\n <SortableContext items={categories.map(c => c.id)} strategy={verticalListSortingStrategy}>\r\n {categories.map((category, index) => (\r\n <SortableCategoryItem\r\n key={category.id}\r\n category={category}\r\n index={index}\r\n onUpdate={handleUpdate}\r\n onDelete={handleDelete}\r\n isDeletable={categories.length > 1}\r\n isNameError={showError && !category.name.trim()}\r\n />\r\n ))}\r\n </SortableContext>\r\n </DndContext>\r\n </div>\r\n\r\n <button\r\n onClick={handleAdd}\r\n className={`ui-flex ui-items-center ui-gap-2 ui-text-sm ui-font-medium ui-mt-1 ui-pl-1 ui-text-primaryx-600 hover:ui-text-primaryx-700`}\r\n >\r\n <FontAwesomeIcon icon={faPlus} className=\"ui-text-xs\" />\r\n Add Category\r\n </button>\r\n </div>\r\n <Alert\r\n isVisible={alertState.isVisible}\r\n message={alertState.message}\r\n type={alertState.type}\r\n onClose={() => setAlertState(prev => ({ ...prev, isVisible: false }))}\r\n />\r\n </>\r\n );\r\n};\r\n\r\ninterface SortableCategoryItemProps {\r\n category: CategoryDraft;\r\n index: number;\r\n onUpdate: (id: string, updates: Partial<CategoryDraft>) => void;\r\n onDelete: (id: string) => void;\r\n isDeletable: boolean;\r\n isNameError?: boolean;\r\n}\r\n\r\nfunction SortableCategoryItem({ category, index, onUpdate, onDelete, isDeletable, isNameError }: SortableCategoryItemProps) {\r\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: category.id });\r\n\r\n const style = {\r\n transform: CSS.Transform.toString(transform),\r\n transition,\r\n opacity: isDragging ? 0.5 : 1,\r\n position: 'relative' as const,\r\n zIndex: isDragging ? 1 : 0,\r\n };\r\n\r\n return (\r\n <div ref={setNodeRef} style={style} className=\"ui-w-full ui-flex ui-items-center ui-gap-2 ui-group\">\r\n {/* Drag Handle */}\r\n <div\r\n {...attributes}\r\n {...listeners}\r\n className=\"sm:ui-block ui-hidden ui-text-gray-300 ui-cursor-move hover:ui-text-gray-500 ui-px-1 ui-opacity-0 group-hover:ui-opacity-100 ui-transition-opacity\"\r\n >\r\n <FontAwesomeIcon icon={faGripVertical} />\r\n </div>\r\n\r\n <div className=\"sm:ui-px-2 ui-text-gray-400\">\r\n <span className=\"ui-text-sm ui-font-mono\">{index + 1}.</span>\r\n </div>\r\n\r\n <div className=\"ui-flex-1 ui-grid sm:ui-grid-cols-2 sm:ui-gap-2\">\r\n <FormInput\r\n type=\"text\"\r\n value={category.name}\r\n onChange={(e: any) => onUpdate(category.id, { name: typeof e === 'string' ? e : e.target.value })}\r\n placeholder={`Category ${index + 1}`}\r\n inputClassName=\"ui-h-12 ui-text-sm\"\r\n error={isNameError ? \"Required\" : undefined}\r\n />\r\n <FormInput\r\n type=\"number\"\r\n value={category.price.toString()}\r\n onChange={(e: any) => onUpdate(category.id, { price: parseFloat(typeof e === 'string' ? e : e.target.value) || 0 })}\r\n placeholder=\"Price\"\r\n inputClassName=\"ui-h-12 ui-text-sm\"\r\n suffix=\"PKR\"\r\n min={0}\r\n />\r\n </div>\r\n\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={() => onDelete(category.id)}\r\n disabled={!isDeletable}\r\n className={`sm:ui-block ui-hidden ui-transition-opacity ${isDeletable ? 'ui-opacity-100 ui-text-red-500 hover:ui-text-red-600 hover:ui-bg-red-50' : 'ui-opacity-0 ui-cursor-not-allowed ui-text-gray-300'}`}\r\n >\r\n <Trash2 className=\"ui-w-4 ui-h-4\" />\r\n </Button>\r\n </div>\r\n );\r\n}\r\n"],"names":["React"],"mappings":";;;;;;;;;;;AAwBO,MAAM,eAA4C,CAAC,EAAE,YAAY,UAAU,gBAAgB;AAC9F,QAAM,eAAeA,eAAM,OAAuB,IAAI;AACtD,QAAM,CAAC,YAAY,aAAa,IAAI,SAA6E;AAAA,IAC7G,WAAW;AAAA,IACX,SAAS;AAAA,IACT,MAAM;AAAA,EAAA,CACT;AAED,QAAM,UAAU;AAAA,IACZ,UAAU,eAAe,EAAE,sBAAsB,EAAE,UAAU,EAAA,GAAK;AAAA,EAAA;AAGtE,QAAM,gBAAgB,CAAC,UAAwB;AAC3C,UAAM,EAAE,QAAQ,KAAA,IAAS;AACzB,QAAI,OAAO,QAAO,6BAAM,KAAI;AACxB,YAAM,WAAW,WAAW,UAAU,OAAK,EAAE,OAAO,OAAO,EAAE;AAC7D,YAAM,WAAW,WAAW,UAAU,OAAK,EAAE,QAAO,6BAAM,GAAE;AAC5D,UAAI,aAAa,MAAM,aAAa,IAAI;AACpC,cAAM,gBAAgB,UAAU,YAAY,UAAU,QAAQ;AAC9D,iBAAS,aAAa;AAAA,MAC1B;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,MAAM;AACpB,UAAM,cAA6B;AAAA,MAC/B,IAAI,OAAO,WAAA;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAEX,aAAS,CAAC,GAAG,YAAY,WAAW,CAAC;AAAA,EACzC;AAEA,QAAM,gBAAgB,CAAC,aAA8B;AACjD,aAAS,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC;AAAA,EACzC;AAGAA,iBAAM,UAAU,MAAM;AAClB,UAAM,oBAAoB,CAAC,MAAsB;;AAC7C,YAAM,SAAS,EAAE;AACjB,YAAM,UAAU,OAAO,YAAY,WAAW,OAAO,YAAY;AACjE,YAAM,YAAW,kBAAa,YAAb,mBAAsB,SAAS;AAEhD,UAAI,WAAW,CAAC,SAAU;AAC1B,UAAI,WAAW,SAAS,QAAQ,CAAC,SAAU;AAE3C,YAAM,iBAAgB,OAAE,kBAAF,mBAAiB,QAAQ;AAC/C,UAAI,CAAC,cAAe;AAEpB,YAAM,QAAQ,cAAc,MAAM,OAAO,EAAE,OAAO,CAAA,SAAQ,KAAK,KAAA,MAAW,EAAE;AAC5E,UAAI,MAAM,WAAW,EAAG;AAExB,YAAM,WAA4B,CAAA;AAClC,UAAI,eAAe;AAEnB,YAAM,QAAQ,CAAA,SAAQ;AAClB,YAAI,OAAO;AACX,YAAI,QAAQ;AACZ,YAAI,SAAS;AAEb,YAAI,KAAK,SAAS,GAAI,GAAG;AACrB,gBAAM,QAAQ,KAAK,MAAM,GAAI;AAC7B,cAAI,MAAM,UAAU,GAAG;AACnB,mBAAO,MAAM,CAAC,EAAE,KAAA;AAChB,kBAAM,YAAY,MAAM,CAAC,EAAE,QAAQ,YAAY,EAAE;AACjD,gBAAI,CAAC,MAAM,WAAW,SAAS,CAAC,GAAG;AAC/B,sBAAQ,WAAW,SAAS;AAC5B,uBAAS;AAAA,YACb;AAAA,UACJ;AAAA,QACJ,WACS,KAAK,SAAS,GAAG,GAAG;AACzB,gBAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,cAAI,MAAM,UAAU,GAAG;AACnB,mBAAO,MAAM,CAAC,EAAE,KAAA;AAChB,kBAAM,YAAY,MAAM,CAAC,EAAE,QAAQ,YAAY,EAAE;AACjD,gBAAI,CAAC,MAAM,WAAW,SAAS,CAAC,GAAG;AAC/B,sBAAQ,WAAW,SAAS;AAC5B,uBAAS;AAAA,YACb;AAAA,UACJ;AAAA,QACJ,OACK;AACD,gBAAM,QAAQ,KAAK,MAAM,4BAA4B;AACrD,cAAI,OAAO;AACP,mBAAO,MAAM,CAAC,EAAE,KAAA;AAChB,oBAAQ,WAAW,MAAM,CAAC,CAAC;AAC3B,qBAAS;AAAA,UACb;AAAA,QACJ;AAEA,YAAI,CAAC,WAAW,MAAM,SAAS,KAAK,CAAC,UAAU;AAC3C,iBAAO,KAAK,KAAA;AACZ,kBAAQ;AACR,mBAAS;AAAA,QACb;AAEA,YAAI,UAAU,MAAM;AAChB,mBAAS,KAAK;AAAA,YACV,IAAI,OAAO,WAAA;AAAA,YACX;AAAA,YACA;AAAA,UAAA,CACH;AAAA,QACL,OAAO;AACH;AAAA,QACJ;AAAA,MACJ,CAAC;AAED,UAAI,WAAW,MAAM,WAAW,KAAK,SAAS,WAAW,KAAK,SAAS,CAAC,EAAE,UAAU,GAAG;AACnF;AAAA,MACJ;AAEA,UAAI,SAAS,SAAS,GAAG;AACrB,UAAE,eAAA;AACF,sBAAc,QAAQ;AACtB,sBAAc;AAAA,UACV,WAAW;AAAA,UACX,SAAS,SAAS,SAAS,MAAM;AAAA,UACjC,MAAM;AAAA,QAAA,CACT;AACD,mBAAW,MAAM,cAAc,CAAA,UAAS,EAAE,GAAG,MAAM,WAAW,MAAA,EAAQ,GAAG,GAAI;AAAA,MACjF,WAAW,eAAe,KAAK,CAAC,SAAS;AACrC,sBAAc;AAAA,UACV,WAAW;AAAA,UACX,SAAS;AAAA,UACT,MAAM;AAAA,QAAA,CACT;AACD,mBAAW,MAAM,cAAc,CAAA,UAAS,EAAE,GAAG,MAAM,WAAW,MAAA,EAAQ,GAAG,GAAI;AAAA,MACjF;AAAA,IACJ;AAEA,aAAS,iBAAiB,SAAS,iBAAiB;AACpD,WAAO,MAAM,SAAS,oBAAoB,SAAS,iBAAiB;AAAA,EACxE,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,eAAe,CAAC,IAAY,YAAoC;AAClE,UAAM,gBAAgB,WAAW;AAAA,MAAI,CAAA,QACjC,IAAI,OAAO,KAAK,EAAE,GAAG,KAAK,GAAG,YAAY;AAAA,IAAA;AAE7C,aAAS,aAAa;AAAA,EAC1B;AAEA,QAAM,eAAe,CAAC,OAAe;AACjC,QAAI,WAAW,UAAU,EAAG;AAC5B,aAAS,WAAW,OAAO,CAAA,QAAO,IAAI,OAAO,EAAE,CAAC;AAAA,EACpD;AAEA,SACI,qBAAA,UAAA,EACI,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,KAAK,cAAc,WAAU,gBAC9B,UAAA;AAAA,MAAA,oBAAC,OAAA,EAAI,WAAU,8CACX,UAAA,oBAAC,WAAM,WAAU,8CAA6C,gCAAkB,EAAA,CACpF;AAAA,MAEA,oBAAC,OAAA,EACG,UAAA,oBAAC,YAAA,EAAW,SAAkB,oBAAoB,eAAe,WAAW,eACxE,UAAA,oBAAC,iBAAA,EAAgB,OAAO,WAAW,IAAI,CAAA,MAAK,EAAE,EAAE,GAAG,UAAU,6BACxD,UAAA,WAAW,IAAI,CAAC,UAAU,UACvB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEG;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV,UAAU;AAAA,UACV,aAAa,WAAW,SAAS;AAAA,UACjC,aAAa,aAAa,CAAC,SAAS,KAAK,KAAA;AAAA,QAAK;AAAA,QANzC,SAAS;AAAA,MAAA,CAQrB,EAAA,CACL,EAAA,CACJ,GACJ;AAAA,MAEA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,SAAS;AAAA,UACT,WAAW;AAAA,UAEX,UAAA;AAAA,YAAA,oBAAC,iBAAA,EAAgB,MAAM,QAAQ,WAAU,cAAa;AAAA,YAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAE5D,GACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,WAAW;AAAA,QACtB,SAAS,WAAW;AAAA,QACpB,MAAM,WAAW;AAAA,QACjB,SAAS,MAAM,cAAc,CAAA,UAAS,EAAE,GAAG,MAAM,WAAW,QAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACxE,GACJ;AAER;AAWA,SAAS,qBAAqB,EAAE,UAAU,OAAO,UAAU,UAAU,aAAa,eAA0C;AACxH,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,YAAY,WAAA,IAAe,YAAY,EAAE,IAAI,SAAS,IAAI;AAEhH,QAAM,QAAQ;AAAA,IACV,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,IACA,SAAS,aAAa,MAAM;AAAA,IAC5B,UAAU;AAAA,IACV,QAAQ,aAAa,IAAI;AAAA,EAAA;AAG7B,8BACK,OAAA,EAAI,KAAK,YAAY,OAAc,WAAU,uDAE1C,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,WAAU;AAAA,QAEV,UAAA,oBAAC,iBAAA,EAAgB,MAAM,eAAA,CAAgB;AAAA,MAAA;AAAA,IAAA;AAAA,wBAG1C,OAAA,EAAI,WAAU,+BACX,UAAA,qBAAC,QAAA,EAAK,WAAU,2BAA2B,UAAA;AAAA,MAAA,QAAQ;AAAA,MAAE;AAAA,IAAA,EAAA,CAAC,EAAA,CAC1D;AAAA,IAEA,qBAAC,OAAA,EAAI,WAAU,mDACX,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,MAAK;AAAA,UACL,OAAO,SAAS;AAAA,UAChB,UAAU,CAAC,MAAW,SAAS,SAAS,IAAI,EAAE,MAAM,OAAO,MAAM,WAAW,IAAI,EAAE,OAAO,OAAO;AAAA,UAChG,aAAa,YAAY,QAAQ,CAAC;AAAA,UAClC,gBAAe;AAAA,UACf,OAAO,cAAc,aAAa;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtC;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,MAAK;AAAA,UACL,OAAO,SAAS,MAAM,SAAA;AAAA,UACtB,UAAU,CAAC,MAAW,SAAS,SAAS,IAAI,EAAE,OAAO,WAAW,OAAO,MAAM,WAAW,IAAI,EAAE,OAAO,KAAK,KAAK,GAAG;AAAA,UAClH,aAAY;AAAA,UACZ,gBAAe;AAAA,UACf,QAAO;AAAA,UACP,KAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACT,GACJ;AAAA,IAEA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,SAAS,MAAM,SAAS,SAAS,EAAE;AAAA,QACnC,UAAU,CAAC;AAAA,QACX,WAAW,+CAA+C,cAAc,4EAA4E,qDAAqD;AAAA,QAEzM,UAAA,oBAAC,QAAA,EAAO,WAAU,gBAAA,CAAgB;AAAA,MAAA;AAAA,IAAA;AAAA,EACtC,GACJ;AAER;"}
|