@redneckz/wildless-cms-uni-blocks 0.14.875 → 0.14.877
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/bundle/api/LeadServiceAPI.d.ts +4 -0
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +264 -136
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/ApplicationForm/ApplicationForm.d.ts +2 -3
- package/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +5 -1
- package/bundle/components/Header/DropdownButton.d.ts +2 -0
- package/bundle/components/Header/DropdownMenu.d.ts +5 -2
- package/bundle/components/Header/HeaderMoreMenuItem.d.ts +9 -0
- package/bundle/components/Header/HeaderSubMenuItem.d.ts +3 -0
- package/bundle/components/Header/useDropdownSubMenu.d.ts +11 -0
- package/bundle/data/NavigationData.d.ts +1 -0
- package/bundle/hooks/useInn.d.ts +7 -0
- package/bundle/model/FormTypeFieldDef.d.ts +1 -1
- package/bundle/retail/components/Fields/SelectField.d.ts +1 -0
- package/bundle/ui-kit/FormField/Fields/CompanyNameByInnField.d.ts +2 -0
- package/bundle/ui-kit/FormField/Fields/FullRegionField.d.ts +5 -0
- package/bundle/ui-kit/FormField/Fields/InnDadataField.d.ts +2 -0
- package/bundle/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +15 -0
- package/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/bundle/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/bundle/ui-kit/FormField/validators.d.ts +8 -1
- package/bundle/ui-kit/Select/Option.d.ts +6 -0
- package/bundle/ui-kit/Select/Select.d.ts +2 -0
- package/bundle/ui-kit/Select/SelectPopup.d.ts +1 -0
- package/bundle/ui-kit/Select/useSelectPopup.d.ts +2 -1
- package/dist/api/LeadServiceAPI.d.ts +4 -0
- package/dist/api/LeadServiceAPI.js +13 -6
- package/dist/api/LeadServiceAPI.js.map +1 -1
- package/dist/components/ApplicationForm/ApplicationForm.d.ts +2 -3
- package/dist/components/ApplicationForm/ApplicationForm.js +4 -3
- package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/dist/components/ApplicationForm/ApplicationFormContent.d.ts +5 -1
- package/dist/components/ApplicationForm/ApplicationFormContent.js +0 -2
- package/dist/components/ApplicationForm/ApplicationFormContent.js.map +1 -1
- package/dist/components/Header/DropdownButton.d.ts +2 -0
- package/dist/components/Header/DropdownButton.js +11 -0
- package/dist/components/Header/DropdownButton.js.map +1 -0
- package/dist/components/Header/DropdownMenu.d.ts +5 -2
- package/dist/components/Header/DropdownMenu.js +2 -36
- package/dist/components/Header/DropdownMenu.js.map +1 -1
- package/dist/components/Header/HeaderMoreMenuItem.d.ts +9 -0
- package/dist/components/Header/HeaderMoreMenuItem.js +27 -0
- package/dist/components/Header/HeaderMoreMenuItem.js.map +1 -0
- package/dist/components/Header/HeaderSubMenu.js +2 -2
- package/dist/components/Header/HeaderSubMenu.js.map +1 -1
- package/dist/components/Header/HeaderSubMenuItem.d.ts +3 -0
- package/dist/components/Header/HeaderSubMenuItem.js +19 -2
- package/dist/components/Header/HeaderSubMenuItem.js.map +1 -1
- package/dist/components/Header/HeaderTopMenu.js +2 -2
- package/dist/components/Header/HeaderTopMenu.js.map +1 -1
- package/dist/components/Header/useDropdownSubMenu.d.ts +11 -0
- package/dist/components/Header/useDropdownSubMenu.js +37 -0
- package/dist/components/Header/useDropdownSubMenu.js.map +1 -0
- package/dist/data/NavigationData.d.ts +1 -0
- package/dist/hooks/useInn.d.ts +7 -0
- package/dist/hooks/useInn.js +11 -0
- package/dist/hooks/useInn.js.map +1 -0
- package/dist/model/FormTypeFieldDef.d.ts +1 -1
- package/dist/retail/components/Fields/SelectField.d.ts +1 -0
- package/dist/retail/components/Fields/SelectField.js.map +1 -1
- package/dist/ui-kit/FormField/Fields/CompanyNameByInnField.d.ts +2 -0
- package/dist/ui-kit/FormField/Fields/CompanyNameByInnField.js +17 -0
- package/dist/ui-kit/FormField/Fields/CompanyNameByInnField.js.map +1 -0
- package/dist/ui-kit/FormField/Fields/FullRegionField.d.ts +5 -0
- package/{mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.js → dist/ui-kit/FormField/Fields/FullRegionField.js} +5 -4
- package/dist/ui-kit/FormField/Fields/FullRegionField.js.map +1 -0
- package/dist/ui-kit/FormField/Fields/InnDadataField.d.ts +2 -0
- package/dist/ui-kit/FormField/Fields/InnDadataField.js +29 -0
- package/dist/ui-kit/FormField/Fields/InnDadataField.js.map +1 -0
- package/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +15 -0
- package/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +19 -0
- package/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -0
- package/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/dist/ui-kit/FormField/getField.js +12 -2
- package/dist/ui-kit/FormField/getField.js.map +1 -1
- package/dist/ui-kit/FormField/getObjectValidator.js +3 -0
- package/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
- package/dist/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/dist/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/dist/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/dist/ui-kit/FormField/validators.d.ts +8 -1
- package/dist/ui-kit/FormField/validators.js +5 -2
- package/dist/ui-kit/FormField/validators.js.map +1 -1
- package/dist/ui-kit/Select/Option.d.ts +6 -0
- package/dist/ui-kit/Select/Select.d.ts +2 -0
- package/dist/ui-kit/Select/Select.js +27 -5
- package/dist/ui-kit/Select/Select.js.map +1 -1
- package/dist/ui-kit/Select/SelectPopup.d.ts +1 -0
- package/dist/ui-kit/Select/SelectPopup.js +4 -2
- package/dist/ui-kit/Select/SelectPopup.js.map +1 -1
- package/dist/ui-kit/Select/useSelectPopup.d.ts +2 -1
- package/dist/ui-kit/Select/useSelectPopup.js +3 -2
- package/dist/ui-kit/Select/useSelectPopup.js.map +1 -1
- package/lib/api/LeadServiceAPI.d.ts +4 -0
- package/lib/api/LeadServiceAPI.js +13 -6
- package/lib/api/LeadServiceAPI.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/ApplicationForm/ApplicationForm.d.ts +2 -3
- package/lib/components/ApplicationForm/ApplicationForm.fixture.d.ts +1 -0
- package/lib/components/ApplicationForm/ApplicationForm.fixture.mobile.d.ts +1 -0
- package/lib/components/ApplicationForm/ApplicationForm.js +4 -3
- package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/lib/components/ApplicationForm/ApplicationFormContent.d.ts +5 -1
- package/lib/components/ApplicationForm/ApplicationFormContent.js +0 -2
- package/lib/components/ApplicationForm/ApplicationFormContent.js.map +1 -1
- package/lib/components/Header/DropdownButton.d.ts +2 -0
- package/lib/components/Header/DropdownButton.js +9 -0
- package/lib/components/Header/DropdownButton.js.map +1 -0
- package/lib/components/Header/DropdownMenu.d.ts +5 -2
- package/lib/components/Header/DropdownMenu.js +2 -37
- package/lib/components/Header/DropdownMenu.js.map +1 -1
- package/lib/components/Header/HeaderMoreMenuItem.d.ts +9 -0
- package/lib/components/Header/HeaderMoreMenuItem.js +25 -0
- package/lib/components/Header/HeaderMoreMenuItem.js.map +1 -0
- package/lib/components/Header/HeaderSubMenu.js +2 -2
- package/lib/components/Header/HeaderSubMenu.js.map +1 -1
- package/lib/components/Header/HeaderSubMenuItem.d.ts +3 -0
- package/lib/components/Header/HeaderSubMenuItem.js +20 -3
- package/lib/components/Header/HeaderSubMenuItem.js.map +1 -1
- package/lib/components/Header/HeaderTopMenu.js +2 -2
- package/lib/components/Header/HeaderTopMenu.js.map +1 -1
- package/lib/components/Header/useDropdownSubMenu.d.ts +11 -0
- package/lib/components/Header/useDropdownSubMenu.js +34 -0
- package/lib/components/Header/useDropdownSubMenu.js.map +1 -0
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +1 -1
- package/lib/data/NavigationData.d.ts +1 -0
- package/lib/hooks/useInn.d.ts +7 -0
- package/lib/hooks/useInn.js +8 -0
- package/lib/hooks/useInn.js.map +1 -0
- package/lib/model/FormTypeFieldDef.d.ts +1 -1
- package/lib/retail/components/Fields/SelectField.d.ts +1 -0
- package/lib/retail/components/Fields/SelectField.js.map +1 -1
- package/lib/ui-kit/FormField/Fields/CompanyNameByInnField.d.ts +2 -0
- package/lib/ui-kit/FormField/Fields/CompanyNameByInnField.js +15 -0
- package/lib/ui-kit/FormField/Fields/CompanyNameByInnField.js.map +1 -0
- package/lib/ui-kit/FormField/Fields/FullRegionField.d.ts +5 -0
- package/lib/ui-kit/FormField/Fields/{RegionPremiumField.js → FullRegionField.js} +4 -3
- package/lib/ui-kit/FormField/Fields/FullRegionField.js.map +1 -0
- package/lib/ui-kit/FormField/Fields/InnDadataField.d.ts +2 -0
- package/lib/ui-kit/FormField/Fields/InnDadataField.js +27 -0
- package/lib/ui-kit/FormField/Fields/InnDadataField.js.map +1 -0
- package/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +15 -0
- package/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +17 -0
- package/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -0
- package/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/lib/ui-kit/FormField/getField.js +12 -2
- package/lib/ui-kit/FormField/getField.js.map +1 -1
- package/lib/ui-kit/FormField/getObjectValidator.js +4 -1
- package/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
- package/lib/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/lib/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/lib/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/lib/ui-kit/FormField/validators.d.ts +8 -1
- package/lib/ui-kit/FormField/validators.js +3 -1
- package/lib/ui-kit/FormField/validators.js.map +1 -1
- package/lib/ui-kit/Select/Option.d.ts +6 -0
- package/lib/ui-kit/Select/Select.d.ts +2 -0
- package/lib/ui-kit/Select/Select.js +28 -6
- package/lib/ui-kit/Select/Select.js.map +1 -1
- package/lib/ui-kit/Select/SelectPopup.d.ts +1 -0
- package/lib/ui-kit/Select/SelectPopup.js +4 -2
- package/lib/ui-kit/Select/SelectPopup.js.map +1 -1
- package/lib/ui-kit/Select/useSelectPopup.d.ts +2 -1
- package/lib/ui-kit/Select/useSelectPopup.js +3 -2
- package/lib/ui-kit/Select/useSelectPopup.js.map +1 -1
- package/mobile/bundle/api/LeadServiceAPI.d.ts +4 -0
- package/mobile/bundle/bundle.umd.js +187 -91
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/ApplicationForm/ApplicationForm.d.ts +2 -3
- package/mobile/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +5 -1
- package/mobile/bundle/components/Header/DropdownButton.d.ts +2 -0
- package/mobile/bundle/components/Header/DropdownMenu.d.ts +5 -2
- package/mobile/bundle/components/Header/HeaderMoreMenuItem.d.ts +9 -0
- package/mobile/bundle/components/Header/HeaderSubMenuItem.d.ts +3 -0
- package/mobile/bundle/components/Header/useDropdownSubMenu.d.ts +11 -0
- package/mobile/bundle/data/NavigationData.d.ts +1 -0
- package/mobile/bundle/hooks/useInn.d.ts +7 -0
- package/mobile/bundle/model/FormTypeFieldDef.d.ts +1 -1
- package/mobile/bundle/retail/components/Fields/SelectField.d.ts +1 -0
- package/mobile/bundle/ui-kit/FormField/Fields/CompanyNameByInnField.d.ts +2 -0
- package/mobile/bundle/ui-kit/FormField/Fields/FullRegionField.d.ts +5 -0
- package/mobile/bundle/ui-kit/FormField/Fields/InnDadataField.d.ts +2 -0
- package/mobile/bundle/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +15 -0
- package/mobile/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/mobile/bundle/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/mobile/bundle/ui-kit/FormField/validators.d.ts +8 -1
- package/mobile/bundle/ui-kit/Select/Option.d.ts +6 -0
- package/mobile/bundle/ui-kit/Select/Select.d.ts +2 -0
- package/mobile/bundle/ui-kit/Select/SelectPopup.d.ts +1 -0
- package/mobile/bundle/ui-kit/Select/useSelectPopup.d.ts +2 -1
- package/mobile/dist/api/LeadServiceAPI.d.ts +4 -0
- package/mobile/dist/api/LeadServiceAPI.js +13 -6
- package/mobile/dist/api/LeadServiceAPI.js.map +1 -1
- package/mobile/dist/components/ApplicationForm/ApplicationForm.d.ts +2 -3
- package/mobile/dist/components/ApplicationForm/ApplicationForm.js +4 -3
- package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/mobile/dist/components/ApplicationForm/ApplicationFormContent.d.ts +5 -1
- package/mobile/dist/components/ApplicationForm/ApplicationFormContent.js +0 -2
- package/mobile/dist/components/ApplicationForm/ApplicationFormContent.js.map +1 -1
- package/mobile/dist/components/Header/DropdownButton.d.ts +2 -0
- package/mobile/dist/components/Header/DropdownButton.js +11 -0
- package/mobile/dist/components/Header/DropdownButton.js.map +1 -0
- package/mobile/dist/components/Header/DropdownMenu.d.ts +5 -2
- package/mobile/dist/components/Header/DropdownMenu.js +2 -36
- package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderMoreMenuItem.d.ts +9 -0
- package/mobile/dist/components/Header/HeaderMoreMenuItem.js +27 -0
- package/mobile/dist/components/Header/HeaderMoreMenuItem.js.map +1 -0
- package/mobile/dist/components/Header/HeaderSubMenu.js +2 -2
- package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
- package/mobile/dist/components/Header/HeaderSubMenuItem.d.ts +3 -0
- package/mobile/dist/components/Header/HeaderSubMenuItem.js +19 -2
- package/mobile/dist/components/Header/HeaderSubMenuItem.js.map +1 -1
- package/mobile/dist/components/Header/HeaderTopMenu.js +2 -2
- package/mobile/dist/components/Header/HeaderTopMenu.js.map +1 -1
- package/mobile/dist/components/Header/useDropdownSubMenu.d.ts +11 -0
- package/mobile/dist/components/Header/useDropdownSubMenu.js +37 -0
- package/mobile/dist/components/Header/useDropdownSubMenu.js.map +1 -0
- package/mobile/dist/data/NavigationData.d.ts +1 -0
- package/mobile/dist/hooks/useInn.d.ts +7 -0
- package/mobile/dist/hooks/useInn.js +11 -0
- package/mobile/dist/hooks/useInn.js.map +1 -0
- package/mobile/dist/model/FormTypeFieldDef.d.ts +1 -1
- package/mobile/dist/retail/components/Fields/SelectField.d.ts +1 -0
- package/mobile/dist/retail/components/Fields/SelectField.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/Fields/CompanyNameByInnField.d.ts +2 -0
- package/mobile/dist/ui-kit/FormField/Fields/CompanyNameByInnField.js +17 -0
- package/mobile/dist/ui-kit/FormField/Fields/CompanyNameByInnField.js.map +1 -0
- package/mobile/dist/ui-kit/FormField/Fields/FullRegionField.d.ts +5 -0
- package/{dist/ui-kit/FormField/Fields/RegionPremiumField.js → mobile/dist/ui-kit/FormField/Fields/FullRegionField.js} +5 -4
- package/mobile/dist/ui-kit/FormField/Fields/FullRegionField.js.map +1 -0
- package/mobile/dist/ui-kit/FormField/Fields/InnDadataField.d.ts +2 -0
- package/mobile/dist/ui-kit/FormField/Fields/InnDadataField.js +29 -0
- package/mobile/dist/ui-kit/FormField/Fields/InnDadataField.js.map +1 -0
- package/mobile/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +15 -0
- package/mobile/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +19 -0
- package/mobile/dist/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -0
- package/mobile/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/mobile/dist/ui-kit/FormField/getField.js +12 -2
- package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/getObjectValidator.js +3 -0
- package/mobile/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/mobile/dist/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/mobile/dist/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/mobile/dist/ui-kit/FormField/validators.d.ts +8 -1
- package/mobile/dist/ui-kit/FormField/validators.js +5 -2
- package/mobile/dist/ui-kit/FormField/validators.js.map +1 -1
- package/mobile/dist/ui-kit/Select/Option.d.ts +6 -0
- package/mobile/dist/ui-kit/Select/Select.d.ts +2 -0
- package/mobile/dist/ui-kit/Select/Select.js +27 -5
- package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
- package/mobile/dist/ui-kit/Select/SelectPopup.d.ts +1 -0
- package/mobile/dist/ui-kit/Select/SelectPopup.js +4 -2
- package/mobile/dist/ui-kit/Select/SelectPopup.js.map +1 -1
- package/mobile/dist/ui-kit/Select/useSelectPopup.d.ts +2 -1
- package/mobile/dist/ui-kit/Select/useSelectPopup.js +3 -2
- package/mobile/dist/ui-kit/Select/useSelectPopup.js.map +1 -1
- package/mobile/lib/api/LeadServiceAPI.d.ts +4 -0
- package/mobile/lib/api/LeadServiceAPI.js +13 -6
- package/mobile/lib/api/LeadServiceAPI.js.map +1 -1
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/ApplicationForm/ApplicationForm.d.ts +2 -3
- package/mobile/lib/components/ApplicationForm/ApplicationForm.js +4 -3
- package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
- package/mobile/lib/components/ApplicationForm/ApplicationFormContent.d.ts +5 -1
- package/mobile/lib/components/ApplicationForm/ApplicationFormContent.js +0 -2
- package/mobile/lib/components/ApplicationForm/ApplicationFormContent.js.map +1 -1
- package/mobile/lib/components/Header/DropdownButton.d.ts +2 -0
- package/mobile/lib/components/Header/DropdownButton.js +9 -0
- package/mobile/lib/components/Header/DropdownButton.js.map +1 -0
- package/mobile/lib/components/Header/DropdownMenu.d.ts +5 -2
- package/mobile/lib/components/Header/DropdownMenu.js +2 -37
- package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderMoreMenuItem.d.ts +9 -0
- package/mobile/lib/components/Header/HeaderMoreMenuItem.js +25 -0
- package/mobile/lib/components/Header/HeaderMoreMenuItem.js.map +1 -0
- package/mobile/lib/components/Header/HeaderSubMenu.js +2 -2
- package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
- package/mobile/lib/components/Header/HeaderSubMenuItem.d.ts +3 -0
- package/mobile/lib/components/Header/HeaderSubMenuItem.js +20 -3
- package/mobile/lib/components/Header/HeaderSubMenuItem.js.map +1 -1
- package/mobile/lib/components/Header/HeaderTopMenu.js +2 -2
- package/mobile/lib/components/Header/HeaderTopMenu.js.map +1 -1
- package/mobile/lib/components/Header/useDropdownSubMenu.d.ts +11 -0
- package/mobile/lib/components/Header/useDropdownSubMenu.js +34 -0
- package/mobile/lib/components/Header/useDropdownSubMenu.js.map +1 -0
- package/mobile/lib/data/NavigationData.d.ts +1 -0
- package/mobile/lib/hooks/useInn.d.ts +7 -0
- package/mobile/lib/hooks/useInn.js +8 -0
- package/mobile/lib/hooks/useInn.js.map +1 -0
- package/mobile/lib/model/FormTypeFieldDef.d.ts +1 -1
- package/mobile/lib/retail/components/Fields/SelectField.d.ts +1 -0
- package/mobile/lib/retail/components/Fields/SelectField.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/Fields/CompanyNameByInnField.d.ts +2 -0
- package/mobile/lib/ui-kit/FormField/Fields/CompanyNameByInnField.js +15 -0
- package/mobile/lib/ui-kit/FormField/Fields/CompanyNameByInnField.js.map +1 -0
- package/mobile/lib/ui-kit/FormField/Fields/FullRegionField.d.ts +5 -0
- package/mobile/lib/ui-kit/FormField/Fields/{RegionPremiumField.js → FullRegionField.js} +4 -3
- package/mobile/lib/ui-kit/FormField/Fields/FullRegionField.js.map +1 -0
- package/mobile/lib/ui-kit/FormField/Fields/InnDadataField.d.ts +2 -0
- package/mobile/lib/ui-kit/FormField/Fields/InnDadataField.js +27 -0
- package/mobile/lib/ui-kit/FormField/Fields/InnDadataField.js.map +1 -0
- package/mobile/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.d.ts +15 -0
- package/mobile/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js +17 -0
- package/mobile/lib/ui-kit/FormField/Fields/PartnerSymbolCodeField.js.map +1 -0
- package/mobile/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -1
- package/mobile/lib/ui-kit/FormField/getField.js +12 -2
- package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/getObjectValidator.js +4 -1
- package/mobile/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/inputColumnStyle.d.ts +1 -1
- package/mobile/lib/ui-kit/FormField/inputColumnStyle.js +1 -1
- package/mobile/lib/ui-kit/FormField/inputColumnStyle.js.map +1 -1
- package/mobile/lib/ui-kit/FormField/validators.d.ts +8 -1
- package/mobile/lib/ui-kit/FormField/validators.js +3 -1
- package/mobile/lib/ui-kit/FormField/validators.js.map +1 -1
- package/mobile/lib/ui-kit/Select/Option.d.ts +6 -0
- package/mobile/lib/ui-kit/Select/Select.d.ts +2 -0
- package/mobile/lib/ui-kit/Select/Select.js +28 -6
- package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
- package/mobile/lib/ui-kit/Select/SelectPopup.d.ts +1 -0
- package/mobile/lib/ui-kit/Select/SelectPopup.js +4 -2
- package/mobile/lib/ui-kit/Select/SelectPopup.js.map +1 -1
- package/mobile/lib/ui-kit/Select/useSelectPopup.d.ts +2 -1
- package/mobile/lib/ui-kit/Select/useSelectPopup.js +3 -2
- package/mobile/lib/ui-kit/Select/useSelectPopup.js.map +1 -1
- package/mobile/src/api/LeadServiceAPI.ts +28 -3
- package/mobile/src/components/ApplicationForm/ApplicationForm.example.json +84 -0
- package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +29 -14
- package/mobile/src/components/ApplicationForm/ApplicationFormContent.ts +6 -4
- package/mobile/src/components/Header/DropdownButton.tsx +26 -0
- package/mobile/src/components/Header/DropdownMenu.tsx +15 -85
- package/mobile/src/components/Header/HeaderMoreMenuItem.tsx +60 -0
- package/mobile/src/components/Header/HeaderSubMenu.tsx +3 -2
- package/mobile/src/components/Header/HeaderSubMenuItem.tsx +31 -5
- package/mobile/src/components/Header/HeaderTopMenu.tsx +3 -3
- package/mobile/src/components/Header/useDropdownSubMenu.tsx +48 -0
- package/mobile/src/data/NavigationData.ts +1 -0
- package/mobile/src/hooks/useInn.ts +16 -0
- package/mobile/src/model/FormTypeFieldDef.ts +2 -1
- package/mobile/src/retail/components/Fields/SelectField.tsx +1 -0
- package/mobile/src/ui-kit/FormField/Fields/CompanyNameByInnField.tsx +24 -0
- package/mobile/src/ui-kit/FormField/Fields/{RegionPremiumField.tsx → FullRegionField.tsx} +7 -2
- package/mobile/src/ui-kit/FormField/Fields/InnDadataField.tsx +47 -0
- package/mobile/src/ui-kit/FormField/Fields/PartnerSymbolCodeField.tsx +47 -0
- package/mobile/src/ui-kit/FormField/NameFieldDef.ts +5 -1
- package/mobile/src/ui-kit/FormField/getField.tsx +15 -2
- package/mobile/src/ui-kit/FormField/getObjectValidator.tsx +4 -0
- package/mobile/src/ui-kit/FormField/inputColumnStyle.tsx +1 -1
- package/mobile/src/ui-kit/FormField/validators.ts +13 -1
- package/mobile/src/ui-kit/Select/Option.ts +6 -0
- package/mobile/src/ui-kit/Select/Select.tsx +71 -17
- package/mobile/src/ui-kit/Select/SelectPopup.tsx +20 -2
- package/mobile/src/ui-kit/Select/useSelectPopup.tsx +4 -0
- package/package.json +2 -2
- package/src/api/LeadServiceAPI.ts +28 -3
- package/src/components/ApplicationForm/ApplicationForm.example.json +84 -0
- package/src/components/ApplicationForm/ApplicationForm.fixture.mobile.tsx +47 -0
- package/src/components/ApplicationForm/ApplicationForm.fixture.tsx +47 -0
- package/src/components/ApplicationForm/ApplicationForm.tsx +29 -14
- package/src/components/ApplicationForm/ApplicationFormContent.ts +6 -4
- package/src/components/Header/DropdownButton.tsx +26 -0
- package/src/components/Header/DropdownMenu.tsx +15 -85
- package/src/components/Header/Header.fixture.tsx +4 -0
- package/src/components/Header/HeaderMoreMenuItem.tsx +60 -0
- package/src/components/Header/HeaderSubMenu.tsx +3 -2
- package/src/components/Header/HeaderSubMenuItem.tsx +31 -5
- package/src/components/Header/HeaderTopMenu.tsx +3 -3
- package/src/components/Header/useDropdownSubMenu.tsx +48 -0
- package/src/data/NavigationData.ts +1 -0
- package/src/hooks/useInn.ts +16 -0
- package/src/icons/IconName.ts +4 -4
- package/src/model/FormTypeFieldDef.ts +2 -1
- package/src/retail/components/Fields/SelectField.tsx +1 -0
- package/src/ui-kit/FormField/Fields/CompanyNameByInnField.tsx +24 -0
- package/src/ui-kit/FormField/Fields/{RegionPremiumField.tsx → FullRegionField.tsx} +7 -2
- package/src/ui-kit/FormField/Fields/InnDadataField.tsx +47 -0
- package/src/ui-kit/FormField/Fields/PartnerSymbolCodeField.tsx +47 -0
- package/src/ui-kit/FormField/NameFieldDef.ts +5 -1
- package/src/ui-kit/FormField/getField.tsx +15 -2
- package/src/ui-kit/FormField/getObjectValidator.tsx +4 -0
- package/src/ui-kit/FormField/inputColumnStyle.tsx +1 -1
- package/src/ui-kit/FormField/validators.ts +13 -1
- package/src/ui-kit/Select/Option.ts +6 -0
- package/src/ui-kit/Select/Select.tsx +71 -17
- package/src/ui-kit/Select/SelectPopup.tsx +20 -2
- package/src/ui-kit/Select/useSelectPopup.tsx +4 -0
- package/bundle/ui-kit/FormField/Fields/RegionPremiumField.d.ts +0 -2
- package/dist/ui-kit/FormField/Fields/RegionPremiumField.d.ts +0 -2
- package/dist/ui-kit/FormField/Fields/RegionPremiumField.js.map +0 -1
- package/lib/ui-kit/FormField/Fields/RegionPremiumField.d.ts +0 -2
- package/lib/ui-kit/FormField/Fields/RegionPremiumField.js.map +0 -1
- package/mobile/bundle/ui-kit/FormField/Fields/RegionPremiumField.d.ts +0 -2
- package/mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.d.ts +0 -2
- package/mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.js.map +0 -1
- package/mobile/lib/ui-kit/FormField/Fields/RegionPremiumField.d.ts +0 -2
- package/mobile/lib/ui-kit/FormField/Fields/RegionPremiumField.js.map +0 -1
package/bundle/bundle.umd.js
CHANGED
|
@@ -1006,7 +1006,7 @@
|
|
|
1006
1006
|
|
|
1007
1007
|
function LeadServiceAPI() {
|
|
1008
1008
|
async function send(body, isIndividualType = false) {
|
|
1009
|
-
const { typeForm, region, phone = '', email, birthday, desiredMeetingDate, inn, addressBranch, secondaryPhone = '', bankEmpolee, applicationDate, serviceDirection, ...staticBody } = body;
|
|
1009
|
+
const { typeForm, region, phone = '', email, birthday, desiredMeetingDate, inn, innDadata, fullRegion, addressBranch, secondaryPhone = '', bankEmpolee, applicationDate, serviceDirection, partnerSymbolCode, companyNameByInn, ...staticBody } = body;
|
|
1010
1010
|
const isNaturalPerson = isIndividualType && serviceDirection !== 'Юридическое лицо / ИП';
|
|
1011
1011
|
const url = `${API_BASE_URI$1}${isNaturalPerson ? '/lead' : '/sendcorporatelead'}`;
|
|
1012
1012
|
const submitBody = {
|
|
@@ -1024,6 +1024,7 @@
|
|
|
1024
1024
|
applicationDate,
|
|
1025
1025
|
...getSecondaryPhone(secondaryPhone),
|
|
1026
1026
|
}),
|
|
1027
|
+
...formatPFForm(typeForm, { innDadata, fullRegion, partnerSymbolCode, companyNameByInn }),
|
|
1027
1028
|
...staticBody,
|
|
1028
1029
|
};
|
|
1029
1030
|
try {
|
|
@@ -1054,11 +1055,17 @@
|
|
|
1054
1055
|
const getEmail = (email, isNaturalPerson = true) => ({
|
|
1055
1056
|
[isNaturalPerson ? 'email' : 'mail']: email,
|
|
1056
1057
|
});
|
|
1057
|
-
const getSecondaryPhone = (secondaryPhone = '') =>
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1058
|
+
const getSecondaryPhone = (secondaryPhone = '') => !secondaryPhone || secondaryPhone === '+7 ('
|
|
1059
|
+
? {}
|
|
1060
|
+
: { secondaryPhoneNumber: formatPhone(secondaryPhone) };
|
|
1061
|
+
const formatPFForm = (typeForm, data) => typeForm === 'PF'
|
|
1062
|
+
? {
|
|
1063
|
+
inn: data?.innDadata,
|
|
1064
|
+
region: data?.fullRegion,
|
|
1065
|
+
partnerComments: data?.partnerSymbolCode,
|
|
1066
|
+
fullname: data?.companyNameByInn,
|
|
1067
|
+
}
|
|
1068
|
+
: {};
|
|
1062
1069
|
|
|
1063
1070
|
const handleAspects = async ({ aspectsAttributes, aspects, ev }) => {
|
|
1064
1071
|
for (const { aspectName, params } of aspectsAttributes ?? []) {
|
|
@@ -1249,6 +1256,22 @@
|
|
|
1249
1256
|
|
|
1250
1257
|
const renderErrorText = (error) => (jsx("div", { className: "h-6", children: error ? (jsx(Text, { size: "text-xs", font: "font-light", color: "text-error", children: error })) : null }));
|
|
1251
1258
|
|
|
1259
|
+
const debounce = (fn, delay = 600) => {
|
|
1260
|
+
let timerId;
|
|
1261
|
+
const debouncedCallback = (...args) => {
|
|
1262
|
+
debouncedCallback.dispose();
|
|
1263
|
+
timerId = setTimeout(() => {
|
|
1264
|
+
fn(...args);
|
|
1265
|
+
}, delay);
|
|
1266
|
+
};
|
|
1267
|
+
debouncedCallback.dispose = () => {
|
|
1268
|
+
if (timerId) {
|
|
1269
|
+
clearTimeout(timerId);
|
|
1270
|
+
}
|
|
1271
|
+
};
|
|
1272
|
+
return debouncedCallback;
|
|
1273
|
+
};
|
|
1274
|
+
|
|
1252
1275
|
const inputValidStyle = 'border border-solid outline-none border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text rounded';
|
|
1253
1276
|
|
|
1254
1277
|
const getValidStyle = (valid) => (valid ? inputValidStyle : 'border-error');
|
|
@@ -1309,16 +1332,17 @@
|
|
|
1309
1332
|
return options.filter((_) => _.text?.toLocaleLowerCase().includes(query?.trim().toLocaleLowerCase()));
|
|
1310
1333
|
};
|
|
1311
1334
|
|
|
1312
|
-
const SelectPopup = JSX(({ popupRef, options, value, query, onChange, iconVersion }) => options?.length ? (jsx("div", { className: "bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md shadow-2xl", role: "list", ref: popupRef, children: filterOptions(options, query).map((option) => (jsxs("div", { className: "flex px-m py-s cursor-pointer hover:bg-main-divider pr-5xl relative", role: "listitem", "aria-selected": option.key === value?.key, onClick: (e) => {
|
|
1335
|
+
const SelectPopup = JSX(({ popupRef, options, value, query, onChange, iconVersion, onChangeQuery }) => options?.length ? (jsx("div", { className: "bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md shadow-2xl", role: "list", ref: popupRef, children: filterOptions(options, query).map((option) => (jsxs("div", { className: "flex px-m py-s cursor-pointer hover:bg-main-divider pr-5xl relative", role: "listitem", "aria-selected": option.key === value?.key, onClick: (e) => {
|
|
1313
1336
|
e.stopPropagation();
|
|
1314
1337
|
if (onChange) {
|
|
1338
|
+
onChangeQuery?.('');
|
|
1315
1339
|
onChange(option);
|
|
1316
1340
|
}
|
|
1317
|
-
}, children: [jsx("span", { className: "min-h-6", children: formatOption(option) }), jsx(Icon, { name: "DoneSimpleIcon", width: "16", height: "16", iconVersion: iconVersion, className: style('absolute right-4 pt-3xs', {
|
|
1341
|
+
}, children: [option?.innDaData ? (jsxs("span", { children: [jsx(Text, { size: "text-s", children: option?.innDaData?.companyName }), jsxs("div", { className: "space-x-2", children: [jsx(Text, { size: "text-s", font: "font-light", children: formatOption(option) }), jsx(Text, { size: "text-s", font: "font-light", children: option?.innDaData?.companyAddress })] })] })) : (jsx("span", { className: "min-h-6", children: formatOption(option) })), jsx(Icon, { name: "DoneSimpleIcon", width: "16", height: "16", iconVersion: iconVersion, className: style('absolute right-4 pt-3xs', {
|
|
1318
1342
|
hidden: option.key !== value?.key,
|
|
1319
1343
|
}) })] }, option.key))) })) : null);
|
|
1320
1344
|
|
|
1321
|
-
function useSelectPopup({ isOpen, options, value, query, onChange, onClose, iconVersion, }) {
|
|
1345
|
+
function useSelectPopup({ isOpen, options, value, query, onChange, onClose, iconVersion, onChangeQuery, }) {
|
|
1322
1346
|
const popup = usePopupManager();
|
|
1323
1347
|
const close = useCallback(() => {
|
|
1324
1348
|
popup.close();
|
|
@@ -1327,6 +1351,7 @@
|
|
|
1327
1351
|
const handleChange = useCallback((option) => {
|
|
1328
1352
|
close();
|
|
1329
1353
|
onChange && onChange(option);
|
|
1354
|
+
onChangeQuery && onChangeQuery('');
|
|
1330
1355
|
}, [close, onChange]);
|
|
1331
1356
|
const inputRef = useRef(null);
|
|
1332
1357
|
const popupRef = useOutsideClick(close);
|
|
@@ -1337,7 +1362,7 @@
|
|
|
1337
1362
|
const inputElement = inputRef.current;
|
|
1338
1363
|
const { top, left, width, height } = inputElement.getBoundingClientRect();
|
|
1339
1364
|
popup.open({
|
|
1340
|
-
popup: (jsx(SelectPopup, { popupRef: popupRef, options: options, value: value, query: query, onChange: handleChange, iconVersion: iconVersion })),
|
|
1365
|
+
popup: (jsx(SelectPopup, { popupRef: popupRef, options: options, value: value, query: query, onChange: handleChange, iconVersion: iconVersion, onChangeQuery: onChangeQuery })),
|
|
1341
1366
|
top: top + window.scrollY + height,
|
|
1342
1367
|
left,
|
|
1343
1368
|
width,
|
|
@@ -1346,19 +1371,26 @@
|
|
|
1346
1371
|
return inputRef;
|
|
1347
1372
|
}
|
|
1348
1373
|
|
|
1349
|
-
const Select = JSX(({ className, label, options = [], value, valid = true, isBorder = true, placeholder = '', isSearch = false, disabled = false, iconVersion = 'black', onChange, }) => {
|
|
1374
|
+
const Select = JSX(({ className, label, options = [], value, valid = true, isBorder = true, placeholder = '', isSearch = false, isManualInput = false, disabled = false, iconVersion = 'black', onChange, onSearchQuery, }) => {
|
|
1350
1375
|
const [isOpen, { setFalse: close, setTrue: open }] = useBool();
|
|
1351
1376
|
const [query, setQuery] = useState('');
|
|
1352
|
-
const isDisabled = getDisabled(disabled, options.length);
|
|
1377
|
+
const isDisabled = getDisabled(disabled, options.length, isManualInput);
|
|
1378
|
+
const isIconHidden = getIconHidden(isManualInput, options);
|
|
1353
1379
|
const hasOpen = isOpen && !isDisabled;
|
|
1380
|
+
const debouncedOnSearchQuery = useMemo(() => onSearchQuery && getDebouncedSearchQuery(onSearchQuery), [onSearchQuery]);
|
|
1354
1381
|
const handleOpen = useCallback(() => {
|
|
1355
1382
|
if (isDisabled) {
|
|
1356
1383
|
return;
|
|
1357
1384
|
}
|
|
1358
1385
|
open();
|
|
1359
1386
|
}, [isDisabled]);
|
|
1387
|
+
const handleChangeQuery = (newQuery) => {
|
|
1388
|
+
setQuery(newQuery);
|
|
1389
|
+
setOption(newQuery, onChange);
|
|
1390
|
+
debouncedOnSearchQuery && debouncedOnSearchQuery(newQuery);
|
|
1391
|
+
};
|
|
1360
1392
|
const handleClose = useCallback(() => {
|
|
1361
|
-
setQuery('');
|
|
1393
|
+
!isManualInput && setQuery('');
|
|
1362
1394
|
close();
|
|
1363
1395
|
}, []);
|
|
1364
1396
|
const inputRef = useSelectPopup({
|
|
@@ -1369,12 +1401,26 @@
|
|
|
1369
1401
|
onChange,
|
|
1370
1402
|
onClose: handleClose,
|
|
1371
1403
|
iconVersion,
|
|
1404
|
+
onChangeQuery: setQuery,
|
|
1372
1405
|
});
|
|
1373
|
-
return (jsxs("div", { className: style('space-y-xs', className), children: [renderLabel$1(label), jsxs("div", { className: style('relative', hasOpen ? 'z-20' : 'z-10'), ref: inputRef, children: [jsxs("div", { className: style('h-14 [&>*]:p-m pr-6 text-l flex items-center justify-between text-primary-text relative z-10 overflow-hidden', getStyle(isBorder, valid, isDisabled)), onClick: hasOpen ? handleClose : handleOpen, children: [jsx("p", { className: "line-clamp-2 text-ellipsis", children:
|
|
1406
|
+
return (jsxs("div", { className: style('space-y-xs', className), children: [renderLabel$1(label), jsxs("div", { className: style('relative', hasOpen ? 'z-20' : 'z-10'), ref: inputRef, children: [jsxs("div", { className: style('h-14 [&>*]:p-m pr-6 text-l flex items-center justify-between text-primary-text relative z-10 overflow-hidden', getStyle(isBorder, valid, isDisabled)), onClick: hasOpen ? handleClose : handleOpen, children: [jsx("p", { className: "line-clamp-2 text-ellipsis", children: useRenderOptionText({ isManualInput, query, value, placeholder }) }), isIconHidden ? '' : renderIcon$1(hasOpen, iconVersion)] }), isSearch && hasOpen ? renderSearchInput(query, isDisabled, handleChangeQuery) : null] })] }));
|
|
1374
1407
|
});
|
|
1408
|
+
const useRenderOptionText = (data) => useMemo(() => {
|
|
1409
|
+
if (data.isManualInput && data.query) {
|
|
1410
|
+
return data.query;
|
|
1411
|
+
}
|
|
1412
|
+
return formatOption(data.value) || data.placeholder;
|
|
1413
|
+
}, [data.isManualInput, data.query, data.value, data.placeholder]);
|
|
1414
|
+
const renderSearchInput = (query, isDisabled, onChangeQuery) => (jsx("div", { className: style('absolute top-0 w-full z-20'), children: jsx(Input, { type: "text", value: query, autoFocus: true, disabled: isDisabled, onChange: (value) => onChangeQuery(value) }) }));
|
|
1375
1415
|
const renderIcon$1 = (isOpen, iconVersion) => (jsx(Icon, { className: style('absolute right-0 flex self-center', { 'rotate-180': !isOpen }), iconVersion: iconVersion, name: "ArrowUpIcon", width: "16", height: "16" }));
|
|
1376
1416
|
const getStyle = (isBorder, valid, disabled) => style(isBorder ? 'border rounded-md ' : '', isBorder && !disabled ? 'hover:border-primary-hover' : '', disabled ? 'bg-main-divider' : 'cursor-pointer ', valid ? 'border-gray' : 'border-error');
|
|
1377
|
-
|
|
1417
|
+
// TODO Нужен рефактор и декомпозиция компонента getDisabled, setOption, getIconHidden
|
|
1418
|
+
const getDisabled = (disabled, length, isManualInput) => disabled || (!isManualInput && length === 0);
|
|
1419
|
+
const setOption = (query, onChange) => {
|
|
1420
|
+
onChange && query.trim() !== '' && onChange({ key: query, text: query, innDaData: {} });
|
|
1421
|
+
};
|
|
1422
|
+
const getIconHidden = (isManualInput, options) => isManualInput && !options.length;
|
|
1423
|
+
const getDebouncedSearchQuery = (onSearchQuery) => debounce((searchValue) => onSearchQuery(searchValue), 300);
|
|
1378
1424
|
|
|
1379
1425
|
const SelectControl = JSX(({ className = '', label, error, errors, ...rest }) => (jsxs("div", { className: className, children: [jsx(Select, { ...rest, valid: !error, label: getRequiredLabel({ label, errors }) }), renderErrorText(error)] })));
|
|
1380
1426
|
|
|
@@ -1911,6 +1957,17 @@
|
|
|
1911
1957
|
|
|
1912
1958
|
const CommentField = JSX(({ field, input }) => (jsx(InputControl, { className: "col-span-2", ...field(input?.name ?? ''), placeholder: "\u0412\u0430\u0448\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435", isTextarea: true })));
|
|
1913
1959
|
|
|
1960
|
+
const CompanyNameByInnField = JSX(({ field, input }) => {
|
|
1961
|
+
const fieldInn = field('innDadata');
|
|
1962
|
+
useEffect(() => {
|
|
1963
|
+
if (fieldInn?.value?.key !== '') {
|
|
1964
|
+
const companyName = fieldInn?.value?.innDaData?.companyName;
|
|
1965
|
+
companyName && field?.('companyNameByInn')?.onChange?.(companyName);
|
|
1966
|
+
}
|
|
1967
|
+
}, [fieldInn?.value]);
|
|
1968
|
+
return (jsx(InputControl, { maxLength: 60, label: "\u041F\u043E\u043B\u043D\u043E\u0435 \u043D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435", ...field(input?.name ?? ''), ...input }));
|
|
1969
|
+
});
|
|
1970
|
+
|
|
1914
1971
|
const DesiredMeetingDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0434\u0430\u0442\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438", ...field(input?.name ?? '') })));
|
|
1915
1972
|
|
|
1916
1973
|
const EmailField$1 = JSX(({ field, input }) => {
|
|
@@ -1931,6 +1988,89 @@
|
|
|
1931
1988
|
|
|
1932
1989
|
const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...field(input?.name ?? ''), ...input })));
|
|
1933
1990
|
|
|
1991
|
+
const FullRegionField = JSX(({ field, input, params }) => {
|
|
1992
|
+
const isPremium = params?.isPremium;
|
|
1993
|
+
const branchByRegions = useBranchesByRegions(isPremium);
|
|
1994
|
+
const regions = useMemo(() => branchByRegions?.map(({ region }) => ({
|
|
1995
|
+
key: region,
|
|
1996
|
+
text: region,
|
|
1997
|
+
})), [branchByRegions]);
|
|
1998
|
+
return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions, ...field(input?.name ?? '') }));
|
|
1999
|
+
});
|
|
2000
|
+
|
|
2001
|
+
function useAsyncEffect(effect, deps) {
|
|
2002
|
+
useEffect(() => {
|
|
2003
|
+
const free = effect();
|
|
2004
|
+
return () => {
|
|
2005
|
+
free.then((_) => {
|
|
2006
|
+
_ instanceof Function && _();
|
|
2007
|
+
});
|
|
2008
|
+
};
|
|
2009
|
+
}, deps);
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
const DEFAULT_HINTS_COUNT = 10;
|
|
2013
|
+
const defaultResponseItemHandler = (item) => item?.value || '';
|
|
2014
|
+
const getResponseHandler = (itemHandler) => (response) => {
|
|
2015
|
+
const responseData = response?.suggestions || [];
|
|
2016
|
+
return responseData.map((item) => {
|
|
2017
|
+
const value = itemHandler(item);
|
|
2018
|
+
return {
|
|
2019
|
+
...item,
|
|
2020
|
+
processedValue: value,
|
|
2021
|
+
};
|
|
2022
|
+
});
|
|
2023
|
+
};
|
|
2024
|
+
const getDaDataHints = (options) => {
|
|
2025
|
+
const { url, query, queryPrefix, requestData = {}, responseItemHandler = defaultResponseItemHandler, } = options;
|
|
2026
|
+
const responseHandler = getResponseHandler(responseItemHandler);
|
|
2027
|
+
const queryPrefixValue = queryPrefix ? `${queryPrefix}, ` : '';
|
|
2028
|
+
const combinedQuery = `${queryPrefixValue}${query}`;
|
|
2029
|
+
return globalThis
|
|
2030
|
+
?.fetch?.(`/api/v1/suggestions/${url}`, {
|
|
2031
|
+
method: 'POST',
|
|
2032
|
+
mode: 'cors',
|
|
2033
|
+
headers: {
|
|
2034
|
+
'Content-Type': 'application/json',
|
|
2035
|
+
},
|
|
2036
|
+
body: JSON.stringify({
|
|
2037
|
+
count: DEFAULT_HINTS_COUNT,
|
|
2038
|
+
...requestData,
|
|
2039
|
+
query: combinedQuery,
|
|
2040
|
+
}),
|
|
2041
|
+
})
|
|
2042
|
+
.then((response) => response.json())
|
|
2043
|
+
.then(responseHandler);
|
|
2044
|
+
};
|
|
2045
|
+
|
|
2046
|
+
const INN_DADATA_URL = 'suggest/party';
|
|
2047
|
+
const useInn = async (searchQuery) => (await getDaDataHints({ url: INN_DADATA_URL, query: searchQuery })).map((_) => ({
|
|
2048
|
+
fullName: _?.value,
|
|
2049
|
+
address: _?.data?.address?.value,
|
|
2050
|
+
inn: _?.data?.inn,
|
|
2051
|
+
}));
|
|
2052
|
+
|
|
2053
|
+
const InnDadataField = JSX(({ field, input }) => {
|
|
2054
|
+
const [options, setOptions] = useState([]);
|
|
2055
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
2056
|
+
useAsyncEffect(async () => {
|
|
2057
|
+
const fieldInns = useInn(searchQuery);
|
|
2058
|
+
setOptions(await fieldInns);
|
|
2059
|
+
return options;
|
|
2060
|
+
}, [searchQuery]);
|
|
2061
|
+
const getOptions = useMemo(() => {
|
|
2062
|
+
return (options || []).map((item) => ({
|
|
2063
|
+
key: item?.inn ?? '',
|
|
2064
|
+
text: item?.inn,
|
|
2065
|
+
innDaData: {
|
|
2066
|
+
companyName: item?.fullName,
|
|
2067
|
+
companyAddress: item?.address,
|
|
2068
|
+
},
|
|
2069
|
+
}));
|
|
2070
|
+
}, [options]);
|
|
2071
|
+
return (jsx(SelectControl, { label: "\u0418\u041D\u041D", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0418\u041D\u041D", options: getOptions, ...field(input?.name ?? ''), isSearch: true, isManualInput: true, onSearchQuery: setSearchQuery }));
|
|
2072
|
+
});
|
|
2073
|
+
|
|
1934
2074
|
const InnField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...field(input?.name ?? '') })));
|
|
1935
2075
|
|
|
1936
2076
|
const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
|
|
@@ -2005,6 +2145,19 @@
|
|
|
2005
2145
|
|
|
2006
2146
|
const PartnerCommentsField = JSX(({ field, input }) => (jsx(InputControl, { ...field(input?.name ?? ''), placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441", isTextarea: true, ...input })));
|
|
2007
2147
|
|
|
2148
|
+
const PartnerSymbolCodeField = UniBlock(({ field, input, source }) => {
|
|
2149
|
+
const agentsList = source?.agentsList;
|
|
2150
|
+
const { value: partnerCode } = field('partnerSymbolCode');
|
|
2151
|
+
const [symbolCodeError, setSymbolCodeError] = useState('');
|
|
2152
|
+
const isPartnerCodeExist = agentsList?.some((item) => item?.symbolCode === partnerCode);
|
|
2153
|
+
useEffect(() => {
|
|
2154
|
+
setSymbolCodeError(partnerCode && !isPartnerCodeExist
|
|
2155
|
+
? 'ID партнера не найден. Обратитесь к своему менеджеру'
|
|
2156
|
+
: '');
|
|
2157
|
+
}, [partnerCode]);
|
|
2158
|
+
return (jsx(InputControl, { label: "\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u043F\u0430\u0440\u0442\u043D\u0435\u0440\u0430", isInteger: true, maxLength: 12, ...input, ...field(input?.name ?? ''), error: symbolCodeError || field('partnerSymbolCode')?.error }));
|
|
2159
|
+
});
|
|
2160
|
+
|
|
2008
2161
|
const isPlaceholder = (_) => _ === '_';
|
|
2009
2162
|
const isDigit = (_) => /\d/.test(_);
|
|
2010
2163
|
const isWildcard = (_) => isPlaceholder(_) || isDigit(_);
|
|
@@ -2058,15 +2211,6 @@
|
|
|
2058
2211
|
return (jsx(SelectControl, { label: input?.label || 'Филиал', placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B", isSearch: true, options: useMemo(() => regions?.map(({ code = '', name = '' }) => ({ key: code, text: name })), [regions]), ...field(input?.name ?? '') }));
|
|
2059
2212
|
});
|
|
2060
2213
|
|
|
2061
|
-
const RegionPremiumField = JSX(({ field, input }) => {
|
|
2062
|
-
const branchByRegions = useBranchesByRegions(true);
|
|
2063
|
-
const regions = useMemo(() => branchByRegions?.map(({ region }) => ({
|
|
2064
|
-
key: region,
|
|
2065
|
-
text: region,
|
|
2066
|
-
})), [branchByRegions]);
|
|
2067
|
-
return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions, ...field(input?.name ?? '') }));
|
|
2068
|
-
});
|
|
2069
|
-
|
|
2070
2214
|
const RepresentativeNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044F", ...input, ...field('representativeName') })));
|
|
2071
2215
|
|
|
2072
2216
|
const withValidator = (props, validator) => {
|
|
@@ -2088,12 +2232,14 @@
|
|
|
2088
2232
|
const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE$1);
|
|
2089
2233
|
const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE$1);
|
|
2090
2234
|
const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE$1);
|
|
2091
|
-
const innValidator = (errorMsg) => validator((_) =>
|
|
2235
|
+
const innValidator = (errorMsg) => validator((_) => isValidInnLength(_))(errorMsg);
|
|
2236
|
+
const innDadataValidator = (errorMsg) => validator((_) => Boolean(_?.text) && isValidInnLength(_.text))(errorMsg);
|
|
2092
2237
|
const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
|
|
2093
2238
|
const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
|
|
2094
2239
|
const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
|
|
2095
2240
|
const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
|
|
2096
2241
|
const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
|
|
2242
|
+
const isValidInnLength = (value) => typeof value === 'string' && (value.length === 10 || value.length === 12);
|
|
2097
2243
|
|
|
2098
2244
|
const validatorObj$1 = {
|
|
2099
2245
|
fullName: defaultValidator(),
|
|
@@ -2124,6 +2270,9 @@
|
|
|
2124
2270
|
typeForm: defaultValidator(),
|
|
2125
2271
|
consentToReceiveMaterials: agreementValidator,
|
|
2126
2272
|
consentDataProcessing: agreementValidator,
|
|
2273
|
+
partnerSymbolCode: defaultValidator(),
|
|
2274
|
+
innDadata: innDadataValidator('Укажите ИНН'),
|
|
2275
|
+
companyNameByInn: defaultValidator(),
|
|
2127
2276
|
};
|
|
2128
2277
|
const getFormValidator = (fieldDefs, externalValidatorObj = {}) => {
|
|
2129
2278
|
const requiredFields = fieldDefs.filter((_) => Boolean(_?.required && _?.name));
|
|
@@ -2219,6 +2368,9 @@
|
|
|
2219
2368
|
const PRODUCT_REF = {
|
|
2220
2369
|
$ref: '/wcms-resources/outservice-productlist.json',
|
|
2221
2370
|
};
|
|
2371
|
+
const AGENTS_REF = {
|
|
2372
|
+
$ref: '/wcms-resources/agenty-dlya-rko.json',
|
|
2373
|
+
};
|
|
2222
2374
|
const InputsMap$1 = {
|
|
2223
2375
|
fullName: FullNameField,
|
|
2224
2376
|
addressBranch: AddressBranchField,
|
|
@@ -2241,7 +2393,7 @@
|
|
|
2241
2393
|
bankEmpolee: BankEmpoleeField,
|
|
2242
2394
|
secondaryPhone: SecondaryPhoneField,
|
|
2243
2395
|
applicationDate: ApplicationDateField,
|
|
2244
|
-
region: (props) => getPremium(props?.params?.typeForm) ? (jsx(
|
|
2396
|
+
region: (props) => getPremium(props?.params?.typeForm) ? (jsx(FullRegionField, { ...props })) : (jsx(RegionField, { ...props })),
|
|
2245
2397
|
consentToReceiveMaterials: ConsentToReceiveMaterialsField,
|
|
2246
2398
|
sufferedFrom: SufferedFromField,
|
|
2247
2399
|
situationDescription: SituationDescriptionField,
|
|
@@ -2255,6 +2407,10 @@
|
|
|
2255
2407
|
email: EmailField$1,
|
|
2256
2408
|
inn: InnField,
|
|
2257
2409
|
comment: CommentField,
|
|
2410
|
+
fullRegion: FullRegionField,
|
|
2411
|
+
partnerSymbolCode: (props) => (jsx(PartnerSymbolCodeField, { ...props, source: AGENTS_REF })),
|
|
2412
|
+
innDadata: InnDadataField,
|
|
2413
|
+
companyNameByInn: CompanyNameByInnField,
|
|
2258
2414
|
};
|
|
2259
2415
|
const getField = (field, params, externalInputs = {}) => (input, i) => {
|
|
2260
2416
|
const fieldsRegister = {
|
|
@@ -2265,7 +2421,7 @@
|
|
|
2265
2421
|
return shouldRenderField({ input, field }) && Component ? (jsx("div", { children: jsx(Component, { field: field, input: input, params: params }) }, i)) : null;
|
|
2266
2422
|
};
|
|
2267
2423
|
|
|
2268
|
-
const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2' : '';
|
|
2424
|
+
const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2' : '@xl:grid-cols-1 gap-x-0';
|
|
2269
2425
|
|
|
2270
2426
|
const renderTitle = (title) => title ? (jsx("div", { className: "@xl:text-center @xl:col-span-2 mb-m", children: jsx(Text, { size: "text-h6", children: title }) })) : null;
|
|
2271
2427
|
|
|
@@ -2415,7 +2571,7 @@
|
|
|
2415
2571
|
const renderContacts = () => (jsxs("div", { className: "space-y-m", children: [jsx(Heading, { headingType: "h6", title: "\u0418\u043B\u0438 \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0443\u0434\u043E\u0431\u043D\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C", className: "@xl:text-center" }), jsxs("div", { className: "flex sm:justify-center gap-xl", children: [jsxs("a", { className: "flex gap-s items-center text-primary-text no-underline", href: `tel:8 (800) 200-78-70`, "aria-label": "\u0442\u0435\u043B\u0435\u0444\u043E\u043D 8 (800) 200-78-70", children: [jsx(Img, { image: { icon: 'PhoneIcon' }, width: "24", height: "24" }), jsx("span", { children: "8 (800) 200-78-70" })] }), jsxs("a", { className: "flex gap-s items-center text-primary-text no-underline", "aria-label": "\u043F\u043E\u0447\u0442\u0430 ved@rshb.ru", href: `mailto:ved@rshb.ru`, children: [jsx(Img, { image: { icon: 'MailIcon' }, width: "24", height: "24" }), jsx("span", { children: "ved@rshb.ru" })] })] })] }));
|
|
2416
2572
|
|
|
2417
2573
|
const API = LeadServiceAPI();
|
|
2418
|
-
const ApplicationForm =
|
|
2574
|
+
const ApplicationForm = UniBlock(({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
|
|
2419
2575
|
const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
|
|
2420
2576
|
const initialFormState = useMemo(() => getInitialFormState$2(inputs, typeForm), [inputs, typeForm]);
|
|
2421
2577
|
const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
|
|
@@ -2435,8 +2591,9 @@
|
|
|
2435
2591
|
onSubmit: handleSubmit,
|
|
2436
2592
|
});
|
|
2437
2593
|
const fieldName = getConsentDataProcessing(inputs)?.name;
|
|
2438
|
-
return (jsxs(ApplicationFormLayout, { className: style('container space-y-m', className), title: title, ...rest, children: [jsxs("form", { onSubmit: onSubmit, children: [sections
|
|
2594
|
+
return (jsxs(ApplicationFormLayout, { className: style('container space-y-m', className), title: title, ...rest, children: [jsxs("form", { onSubmit: onSubmit, children: [renderSections(sections, field, { typeForm, additionalParams }), renderAgreementSubmit(fieldName ? field('consentDataProcessing') : undefined, link, button)] }), isContacts ? renderContacts() : null] }));
|
|
2439
2595
|
});
|
|
2596
|
+
const renderSections = (sections, field, { typeForm, additionalParams }) => sections.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid gap-x-m'), children: [renderTitle(_.title), (_?.inputs || [])?.map(getField(field, { typeForm, ...additionalParams }))] }, `section-${i}`)));
|
|
2440
2597
|
|
|
2441
2598
|
const NoConsentDialog = JSX(({ attempts, onClose = noop }) => {
|
|
2442
2599
|
const navigator = locationNavigator();
|
|
@@ -2768,56 +2925,6 @@
|
|
|
2768
2925
|
return (jsxs("div", { className: "flex gap-lg items-center rounded-md bg-main-gray p-4xl", children: [jsxs("div", { className: "flex flex-col justify-around w-full", children: [jsx("p", { className: "mb-m text-xl", children: "\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0413\u043E\u0441\u0443\u0441\u043B\u0443\u0433\u0438" }), jsxs("ul", { className: "list-disc list-inside mb-4xl", children: [jsx("li", { children: "\u0412\u0435\u0440\u043E\u044F\u0442\u043D\u043E\u0441\u0442\u044C \u043E\u0434\u043E\u0431\u0440\u0435\u043D\u0438\u044F \u0432\u044B\u0448\u0435" }), jsx("li", { children: "\u0411\u0435\u0437 \u0441\u043F\u0440\u0430\u0432\u043E\u043A \u043E \u0434\u043E\u0445\u043E\u0434\u0430\u0445 \u0438 \u0442\u0440\u0443\u0434\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435" }), jsx("li", { children: "\u0421 \u0437\u0430\u0449\u0438\u0442\u043E\u0439 \u0412\u0430\u0448\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" })] }), jsx(Img, { className: "block mb-xl self-center @md:hidden", image: { icon: 'GosUslugiIcon', iconVersion: 'normal' }, height: "80", width: "80" }), jsx(Button, { type: "button", onClick: handleAuth, className: "w-full @md:w-fit", children: "\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C" })] }), jsx(Img, { className: "hidden @md:block", image: { icon: 'GosUslugiIcon', iconVersion: 'normal' }, height: "164" })] }));
|
|
2769
2926
|
});
|
|
2770
2927
|
|
|
2771
|
-
const debounce = (fn, delay = 600) => {
|
|
2772
|
-
let timerId;
|
|
2773
|
-
const debouncedCallback = (...args) => {
|
|
2774
|
-
debouncedCallback.dispose();
|
|
2775
|
-
timerId = setTimeout(() => {
|
|
2776
|
-
fn(...args);
|
|
2777
|
-
}, delay);
|
|
2778
|
-
};
|
|
2779
|
-
debouncedCallback.dispose = () => {
|
|
2780
|
-
if (timerId) {
|
|
2781
|
-
clearTimeout(timerId);
|
|
2782
|
-
}
|
|
2783
|
-
};
|
|
2784
|
-
return debouncedCallback;
|
|
2785
|
-
};
|
|
2786
|
-
|
|
2787
|
-
const DEFAULT_HINTS_COUNT = 10;
|
|
2788
|
-
const defaultResponseItemHandler = (item) => item?.value || '';
|
|
2789
|
-
const getResponseHandler = (itemHandler) => (response) => {
|
|
2790
|
-
const responseData = response?.suggestions || [];
|
|
2791
|
-
return responseData.map((item) => {
|
|
2792
|
-
const value = itemHandler(item);
|
|
2793
|
-
return {
|
|
2794
|
-
...item,
|
|
2795
|
-
processedValue: value,
|
|
2796
|
-
};
|
|
2797
|
-
});
|
|
2798
|
-
};
|
|
2799
|
-
const getDaDataHints = (options) => {
|
|
2800
|
-
const { url, query, queryPrefix, requestData = {}, responseItemHandler = defaultResponseItemHandler, } = options;
|
|
2801
|
-
const responseHandler = getResponseHandler(responseItemHandler);
|
|
2802
|
-
const queryPrefixValue = queryPrefix ? `${queryPrefix}, ` : '';
|
|
2803
|
-
const combinedQuery = `${queryPrefixValue}${query}`;
|
|
2804
|
-
return globalThis
|
|
2805
|
-
?.fetch?.(`/api/v1/suggestions/${url}`, {
|
|
2806
|
-
method: 'POST',
|
|
2807
|
-
mode: 'cors',
|
|
2808
|
-
headers: {
|
|
2809
|
-
'Content-Type': 'application/json',
|
|
2810
|
-
},
|
|
2811
|
-
body: JSON.stringify({
|
|
2812
|
-
count: DEFAULT_HINTS_COUNT,
|
|
2813
|
-
...requestData,
|
|
2814
|
-
query: combinedQuery,
|
|
2815
|
-
}),
|
|
2816
|
-
})
|
|
2817
|
-
.then((response) => response.json())
|
|
2818
|
-
.then(responseHandler);
|
|
2819
|
-
};
|
|
2820
|
-
|
|
2821
2928
|
const NAME_HINTS_LIST_OPTIONS = {
|
|
2822
2929
|
url: 'suggest/fio',
|
|
2823
2930
|
requestData: {
|
|
@@ -4789,17 +4896,6 @@
|
|
|
4789
4896
|
return (jsx(DaDataInputControl, { label: "\u0414\u043E\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0432 \u0431\u0438\u0437\u043D\u0435\u0441\u0435", placeholder: "\u0432 %", isInteger: true, maxLength: 3, ...field(input?.name ?? ''), ...input, onChange: onChange }));
|
|
4790
4897
|
});
|
|
4791
4898
|
|
|
4792
|
-
function useAsyncEffect(effect, deps) {
|
|
4793
|
-
useEffect(() => {
|
|
4794
|
-
const free = effect();
|
|
4795
|
-
return () => {
|
|
4796
|
-
free.then((_) => {
|
|
4797
|
-
_ instanceof Function && _();
|
|
4798
|
-
});
|
|
4799
|
-
};
|
|
4800
|
-
}, deps);
|
|
4801
|
-
}
|
|
4802
|
-
|
|
4803
4899
|
const getPaymentSystems = async (creditProgramId) => {
|
|
4804
4900
|
const data = await fetchRetailJSON('/public-data/creditProgramConditions', 'POST', {
|
|
4805
4901
|
creditProgramId,
|
|
@@ -10068,47 +10164,6 @@
|
|
|
10068
10164
|
return isURL(href) ? globalThis?.location?.href : joinPath(basePath, router.pathname);
|
|
10069
10165
|
};
|
|
10070
10166
|
|
|
10071
|
-
const DropdownMenu = JSX(({ className = '', items, activeItem, ariaLabel = 'Меню' }) => {
|
|
10072
|
-
const [isVisible, { setFalse, toggle }] = useBool(false);
|
|
10073
|
-
const ref = useOutsideClick(setFalse);
|
|
10074
|
-
const dropdownRef = useRef(null);
|
|
10075
|
-
const changeDropdownPosition = useCallback(({ isOpened, buttonRef, menuRef }) => {
|
|
10076
|
-
if (isOpened && buttonRef.current && menuRef.current) {
|
|
10077
|
-
const dropdownRect = menuRef.current.getBoundingClientRect();
|
|
10078
|
-
const dropdownButtonRect = buttonRef.current.getBoundingClientRect();
|
|
10079
|
-
const newDropdownPosition = globalThis.innerWidth - dropdownRect.width;
|
|
10080
|
-
if (dropdownRect.right >= globalThis.innerWidth) {
|
|
10081
|
-
menuRef.current.style.left = `${newDropdownPosition}px`;
|
|
10082
|
-
}
|
|
10083
|
-
else if (dropdownButtonRect.left > dropdownRect.left) {
|
|
10084
|
-
if (newDropdownPosition > dropdownButtonRect.left) {
|
|
10085
|
-
menuRef.current.style.left = '';
|
|
10086
|
-
}
|
|
10087
|
-
else {
|
|
10088
|
-
menuRef.current.style.left = `${newDropdownPosition}px`;
|
|
10089
|
-
}
|
|
10090
|
-
}
|
|
10091
|
-
}
|
|
10092
|
-
}, [isVisible]);
|
|
10093
|
-
useEventListener(globalThis, 'resize', () => changeDropdownPosition({ isOpened: isVisible, buttonRef: ref, menuRef: dropdownRef }));
|
|
10094
|
-
useEffect(() => {
|
|
10095
|
-
changeDropdownPosition({ isOpened: isVisible, buttonRef: ref, menuRef: dropdownRef });
|
|
10096
|
-
}, [isVisible]);
|
|
10097
|
-
return (jsxs("div", { className: style(isVisible ? 'rounded-md shadow-blue-gray' : '', className), ref: ref, role: "navigation", children: [jsx("button", { type: "button", className: "group/btn flex justify-between items-center h-6", "aria-label": ariaLabel, onClick: toggle, role: "button", "aria-labelledby": "labeldiv", children: Array(3)
|
|
10098
|
-
.fill(null)
|
|
10099
|
-
.map((_, i) => (jsx("div", { className: "w-[3px] h-[3px] rounded mr-2xs bg-primary-text group-hover/btn:bg-primary-hover group-data-transparent:bg-white" }, String(i)))) }), jsx("div", { ref: dropdownRef, className: style('absolute flex flex-col rounded-md bg-white p-xl pb-xs w-56 z-40', {
|
|
10100
|
-
hidden: !isVisible,
|
|
10101
|
-
}), "aria-hidden": !isVisible, children: renderDropdownItems(items, activeItem) })] }));
|
|
10102
|
-
});
|
|
10103
|
-
const DropdownMenuItem = JSX(({ isActive, ...rest }) => {
|
|
10104
|
-
const link = useLink();
|
|
10105
|
-
const { text, href, target, onClick } = link(rest);
|
|
10106
|
-
return (jsx("a", { className: style('text-l font-light pb-m hover:text-primary-main', {
|
|
10107
|
-
'text-primary-main': isActive,
|
|
10108
|
-
}), href: href, target: target, onClick: onClick, role: "link", ...getAspectsAttributes(rest?.data), children: text }));
|
|
10109
|
-
});
|
|
10110
|
-
const renderDropdownItems = (items, activeItem) => items?.map((item, i) => (jsx(DropdownMenuItem, { isActive: item === activeItem, ...item }, item?.text ?? String(i))));
|
|
10111
|
-
|
|
10112
10167
|
const BUTTON_SIZE_STYLE = {
|
|
10113
10168
|
default: 'w-6 h-6',
|
|
10114
10169
|
medium: 'w-10 h-10',
|
|
@@ -10139,6 +10194,64 @@
|
|
|
10139
10194
|
return (jsx(HeaderSecondaryMenuButton, { className: className, image: { icon: 'ChatBotIcon', iconVersion }, ariaLabel: ariaLabel, onClick: handleClick, buttonSize: buttonSize, isGrayBg: true, version: version, isLoading: isLoading, disabled: isLoading, dataTestId: "chat icon" }));
|
|
10140
10195
|
});
|
|
10141
10196
|
|
|
10197
|
+
const DropdownMenu = ({ dropdownRef, items = [], activeItem, ariaLabel, }) => (jsx("div", { ref: dropdownRef, className: "absolute flex flex-col rounded-md bg-white p-xl pb-xs w-56 z-40", "aria-label": ariaLabel, children: renderDropdownItems(items, activeItem) }));
|
|
10198
|
+
const DropdownMenuItem = JSX(({ isActive, ...rest }) => {
|
|
10199
|
+
const link = useLink();
|
|
10200
|
+
const { text, href, target, onClick } = link(rest);
|
|
10201
|
+
return (jsx("a", { className: style('text-l font-light pb-m hover:text-primary-main', {
|
|
10202
|
+
'text-primary-main': isActive,
|
|
10203
|
+
}), href: href, target: target, onClick: onClick, role: "link", ...getAspectsAttributes(rest?.data), children: text }));
|
|
10204
|
+
});
|
|
10205
|
+
const renderDropdownItems = (items, activeItem) => items?.map((item, i) => (jsx(DropdownMenuItem, { isActive: item === activeItem, ...item }, item?.text ?? String(i))));
|
|
10206
|
+
|
|
10207
|
+
function useDropdownSubMenu({ items, activeItem, onClose, isOpen }) {
|
|
10208
|
+
const popup = usePopupManager();
|
|
10209
|
+
useEffect(() => {
|
|
10210
|
+
if (isOpen) {
|
|
10211
|
+
popup.close();
|
|
10212
|
+
}
|
|
10213
|
+
}, [isOpen]);
|
|
10214
|
+
const close = useCallback(() => {
|
|
10215
|
+
popup.close();
|
|
10216
|
+
onClose?.();
|
|
10217
|
+
}, [onClose]);
|
|
10218
|
+
const parentRef = useRef(null);
|
|
10219
|
+
const popupRef = useOutsideClick(close);
|
|
10220
|
+
useEffect(() => {
|
|
10221
|
+
if (!isOpen || !parentRef.current || !items?.length) {
|
|
10222
|
+
return;
|
|
10223
|
+
}
|
|
10224
|
+
const parentElement = parentRef.current;
|
|
10225
|
+
const { top, left, width, height } = parentElement.getBoundingClientRect();
|
|
10226
|
+
popup.open({
|
|
10227
|
+
popup: jsx(DropdownMenu, { dropdownRef: popupRef, items: items, activeItem: activeItem }),
|
|
10228
|
+
top: top + window.scrollY + height,
|
|
10229
|
+
left,
|
|
10230
|
+
width,
|
|
10231
|
+
});
|
|
10232
|
+
}, [isOpen, items, close]);
|
|
10233
|
+
return parentRef;
|
|
10234
|
+
}
|
|
10235
|
+
|
|
10236
|
+
const HeaderMoreMenuItem = JSX(({ className = '', items, activeItem, ariaLabel = 'Меню' }) => {
|
|
10237
|
+
const [isOpenDropdown, { setFalse, toggle }] = useBool(false);
|
|
10238
|
+
const dropdownMenu = useDropdownSubMenu({
|
|
10239
|
+
items,
|
|
10240
|
+
onClose: setFalse,
|
|
10241
|
+
isOpen: isOpenDropdown,
|
|
10242
|
+
activeItem,
|
|
10243
|
+
});
|
|
10244
|
+
useEffect(() => {
|
|
10245
|
+
dropdownMenu.current?.addEventListener('mouseleave', setFalse);
|
|
10246
|
+
return () => {
|
|
10247
|
+
dropdownMenu.current?.removeEventListener('mouseleave', setFalse);
|
|
10248
|
+
};
|
|
10249
|
+
}, []);
|
|
10250
|
+
return (jsx("div", { className: style(isOpenDropdown ? 'rounded-md shadow-blue-gray' : '', className), ref: dropdownMenu, role: "navigation", children: jsx("button", { type: "button", className: "group/btn flex justify-between items-center h-6", "aria-label": ariaLabel, onClick: toggle, role: "button", "aria-labelledby": "labeldiv", children: Array(3)
|
|
10251
|
+
.fill(null)
|
|
10252
|
+
.map((_, i) => (jsx("div", { className: "w-[3px] h-[3px] rounded mr-2xs bg-primary-text group-hover/btn:bg-primary-hover group-data-transparent:bg-white" }, String(i)))) }) }));
|
|
10253
|
+
});
|
|
10254
|
+
|
|
10142
10255
|
const HeaderItem = JSX(({ className = '', active, dataItemName, children, data, ...rest }) => {
|
|
10143
10256
|
const link = useLink();
|
|
10144
10257
|
const { href, target, text, onClick } = link(rest);
|
|
@@ -10146,7 +10259,8 @@
|
|
|
10146
10259
|
});
|
|
10147
10260
|
const getTextStyle$1 = (active = false) => style('font-sans text-l lg:font-light', active ? 'text-primary-main' : 'text-primary-text hover:text-primary-main', 'group-data-transparent:text-white group-data-transparent:hover:text-primary-hover');
|
|
10148
10261
|
|
|
10149
|
-
const HeaderSubMenuItem = JSX(({ observerOptions, onVisibilityChange, children, className, ...rest }) => {
|
|
10262
|
+
const HeaderSubMenuItem = JSX(({ observerOptions, onVisibilityChange, children, className, items, activeItem, ...rest }) => {
|
|
10263
|
+
const [isOpenDropdown, { setFalse, setTrue }] = useBool(false);
|
|
10150
10264
|
const observerCallback = useCallback((entries) => {
|
|
10151
10265
|
if (!entries.length || !onVisibilityChange) {
|
|
10152
10266
|
return;
|
|
@@ -10156,7 +10270,21 @@
|
|
|
10156
10270
|
onVisibilityChange(entry.isIntersecting);
|
|
10157
10271
|
}, [onVisibilityChange]);
|
|
10158
10272
|
const ref = useIntersectionObserver(observerCallback, observerOptions);
|
|
10159
|
-
|
|
10273
|
+
const dropdownMenu = useDropdownSubMenu({
|
|
10274
|
+
items,
|
|
10275
|
+
onClose: setFalse,
|
|
10276
|
+
isOpen: isOpenDropdown,
|
|
10277
|
+
activeItem,
|
|
10278
|
+
});
|
|
10279
|
+
useEffect(() => {
|
|
10280
|
+
dropdownMenu.current?.addEventListener('mouseenter', setTrue);
|
|
10281
|
+
dropdownMenu.current?.addEventListener('mouseleave', setFalse);
|
|
10282
|
+
return () => {
|
|
10283
|
+
dropdownMenu.current?.addEventListener('mouseenter', setTrue);
|
|
10284
|
+
dropdownMenu.current?.removeEventListener('mouseleave', setFalse);
|
|
10285
|
+
};
|
|
10286
|
+
}, []);
|
|
10287
|
+
return (jsx("div", { className: "inline-block", ref: dropdownMenu, children: jsx("span", { ref: ref, className: className, role: "menuitem", children: jsx(HeaderItem, { ...rest, children: children }) }) }));
|
|
10160
10288
|
});
|
|
10161
10289
|
|
|
10162
10290
|
const BUTTON_STYLE = {
|
|
@@ -10181,7 +10309,7 @@
|
|
|
10181
10309
|
? handleIntersectionActivation$1(index)
|
|
10182
10310
|
: handleIntersectionDeactivation$1(index));
|
|
10183
10311
|
}), [subItems]);
|
|
10184
|
-
return (jsxs("nav", { className: "mt-s flex gap-s items-center justify-between", children: [jsx("div", { ref: subItemsListRef, className: "overflow-hidden whitespace-nowrap pb-s mt-xs space-x-lg", role: "menu", children: subItems.map((_, i) => (jsx(HeaderSubMenuItem, { className: visibleItemsCount - 1 < i ? 'invisible' : '', active: _ === activeSubItem, observerOptions: observerOptions, onVisibilityChange: subItemsVisibilityHandlers[i], data: _.dataHeader, ..._ }, String(i)))) }), dropDownMenuItems.length ? (jsx(
|
|
10312
|
+
return (jsxs("nav", { className: "mt-s flex gap-s items-center justify-between", children: [jsx("div", { ref: subItemsListRef, className: "overflow-hidden whitespace-nowrap pb-s mt-xs space-x-lg", role: "menu", children: subItems.map((_, i) => (jsx(HeaderSubMenuItem, { className: visibleItemsCount - 1 < i ? 'invisible' : '', active: _ === activeSubItem, activeItem: activeSubItem, observerOptions: observerOptions, onVisibilityChange: subItemsVisibilityHandlers[i], data: _.dataHeader, ..._ }, String(i)))) }), dropDownMenuItems.length ? (jsx(HeaderMoreMenuItem, { items: dropDownMenuItems, activeItem: activeSubItem, ariaLabel: dropdownMenuAriaLabel })) : null, projectSettings.CHAT_BOT ? (jsx(HeaderChatBotButton, { version: version, iconVersion: iconVersion, ariaLabel: chatBotAriaLabel })) : null, jsx(InternetBankButton, { version: version, ...internetBankButton })] }));
|
|
10185
10313
|
});
|
|
10186
10314
|
const handleIntersectionActivation$1 = (index) => (prev) => Math.max(prev, index + 1);
|
|
10187
10315
|
const handleIntersectionDeactivation$1 = (index) => (prev) => Math.min(prev, index);
|
|
@@ -10306,7 +10434,7 @@
|
|
|
10306
10434
|
}), [navigationItems]);
|
|
10307
10435
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10308
10436
|
const { dataFooter, dataHeader, ...logoProps } = logo ?? {};
|
|
10309
|
-
return (jsxs("div", { className: "flex items-center justify-between", children: [jsx(Logo, { className: "mr-3xl", bgColor: bgColor, logo: logoProps, data: dataHeader, showTitle: false }), jsx("div", { ref: topItemsListRef, className: "overflow-hidden min-w-40 pb-xs mt-xs", role: "menu", children: navigationItems.map((_, i) => (jsx(HeaderTopMenuItem, { className: visibleItemsCount - 1 < i ? 'invisible' : '', active: _ === activeTopItem, observerOptions: observerOptions, onVisibilityChange: topItemsVisibilityHandlers[i], data: _.dataHeader, ..._ }, String(i)))) }), dropDownMenuItems.length ? (jsx(
|
|
10437
|
+
return (jsxs("div", { className: "flex items-center justify-between", children: [jsx(Logo, { className: "mr-3xl", bgColor: bgColor, logo: logoProps, data: dataHeader, showTitle: false }), jsx("div", { ref: topItemsListRef, className: "overflow-hidden min-w-40 pb-xs mt-xs", role: "menu", children: navigationItems.map((_, i) => (jsx(HeaderTopMenuItem, { className: visibleItemsCount - 1 < i ? 'invisible' : '', active: _ === activeTopItem, observerOptions: observerOptions, onVisibilityChange: topItemsVisibilityHandlers[i], data: _.dataHeader, ..._ }, String(i)))) }), dropDownMenuItems.length ? (jsx(HeaderMoreMenuItem, { className: "mx-xs rounded-md shadow-blue-gray", items: dropDownMenuItems, activeItem: activeTopItem, ariaLabel: dropdownMenuAriaLabel })) : null, jsx(HeaderSecondaryMenu, { version: version, className: "ml-auto", search: search, navigationItems: navigationItems, ...headerData })] }));
|
|
10310
10438
|
});
|
|
10311
10439
|
const handleIntersectionActivation = (index) => (prev) => Math.max(prev, index + 1);
|
|
10312
10440
|
const handleIntersectionDeactivation = (index) => (prev) => Math.min(prev, index);
|
|
@@ -11179,7 +11307,7 @@
|
|
|
11179
11307
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
11180
11308
|
});
|
|
11181
11309
|
|
|
11182
|
-
const packageVersion = "0.14.
|
|
11310
|
+
const packageVersion = "0.14.876";
|
|
11183
11311
|
|
|
11184
11312
|
exports.Blocks = Blocks;
|
|
11185
11313
|
exports.ContentPage = ContentPage;
|