@redneckz/wildless-cms-uni-blocks 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +76 -105
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/cosmos-static/icons/AirPlaneIcon.svg +1 -1
  5. package/cosmos-static/icons/CarIcon.svg +1 -1
  6. package/cosmos-static/icons/CinemaIcon.svg +1 -1
  7. package/cosmos-static/icons/DocsIcon.svg +1 -1
  8. package/cosmos-static/icons/PackA4Icon.svg +1 -1
  9. package/cosmos-static/icons/PowerIcon.svg +1 -1
  10. package/cosmos-static/icons/PumpkinIcon.svg +1 -1
  11. package/cosmos-static/icons/SoundIcon.svg +1 -1
  12. package/cosmos-static/icons/WateringCanIcon.svg +1 -1
  13. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +1 -1
  14. package/dist/components/Calculator/CalculatorContent.d.ts +1 -1
  15. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +1 -1
  16. package/dist/components/ComparisonTable/TableColumn.d.ts +1 -1
  17. package/dist/components/Footer/FooterContent.d.ts +1 -1
  18. package/dist/components/Header/HeaderContent.d.ts +1 -1
  19. package/dist/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +1 -1
  20. package/dist/components/ProductTile/ProductTileContent.d.ts +1 -1
  21. package/dist/components/SafeDepositRental/SafeDepositRental.js +1 -6
  22. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  23. package/dist/components/SafeDepositRental/YandexMap.js +13 -6
  24. package/dist/components/SafeDepositRental/YandexMap.js.map +1 -1
  25. package/dist/components/SafeDepositRental/renderClusterer.d.ts +2 -1
  26. package/dist/components/SafeDepositRental/renderClusterer.js +16 -18
  27. package/dist/components/SafeDepositRental/renderClusterer.js.map +1 -1
  28. package/dist/components/SafeDepositRental/useYandexMaps.d.ts +2 -0
  29. package/dist/components/SafeDepositRental/useYandexMaps.js +12 -0
  30. package/dist/components/SafeDepositRental/useYandexMaps.js.map +1 -0
  31. package/dist/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  32. package/dist/hooks/useExternalNS.d.ts +2 -0
  33. package/dist/hooks/useExternalNS.js +39 -0
  34. package/dist/hooks/useExternalNS.js.map +1 -0
  35. package/dist/icons/IconName.d.ts +4 -4
  36. package/dist/icons/IconName.js +3 -3
  37. package/dist/icons/IconName.js.map +1 -1
  38. package/dist/ui-kit/BenefitItem/BenefitItemProps.d.ts +1 -1
  39. package/dist/ui-kit/SelectCustom/SelectCustom.js +3 -3
  40. package/dist/ui-kit/SelectCustom/SelectCustom.js.map +1 -1
  41. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +1 -1
  42. package/lib/components/Calculator/CalculatorContent.d.ts +1 -1
  43. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +1 -1
  44. package/lib/components/ComparisonTable/TableColumn.d.ts +1 -1
  45. package/lib/components/ContentPage/computeAPIFallback.js +1 -1
  46. package/lib/components/Footer/FooterContent.d.ts +1 -1
  47. package/lib/components/Header/HeaderContent.d.ts +1 -1
  48. package/lib/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +1 -1
  49. package/lib/components/ProductTile/ProductTileContent.d.ts +1 -1
  50. package/lib/components/SafeDepositRental/SafeDepositRental.js +1 -6
  51. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  52. package/lib/components/SafeDepositRental/YandexMap.js +13 -6
  53. package/lib/components/SafeDepositRental/YandexMap.js.map +1 -1
  54. package/lib/components/SafeDepositRental/renderClusterer.d.ts +2 -1
  55. package/lib/components/SafeDepositRental/renderClusterer.js +16 -18
  56. package/lib/components/SafeDepositRental/renderClusterer.js.map +1 -1
  57. package/lib/components/SafeDepositRental/useYandexMaps.d.ts +2 -0
  58. package/lib/components/SafeDepositRental/useYandexMaps.js +9 -0
  59. package/lib/components/SafeDepositRental/useYandexMaps.js.map +1 -0
  60. package/lib/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  61. package/lib/hooks/useExternalNS.d.ts +2 -0
  62. package/lib/hooks/useExternalNS.js +35 -0
  63. package/lib/hooks/useExternalNS.js.map +1 -0
  64. package/lib/icons/IconName.d.ts +4 -4
  65. package/lib/icons/IconName.js +3 -3
  66. package/lib/icons/IconName.js.map +1 -1
  67. package/lib/ui-kit/BenefitItem/BenefitItemProps.d.ts +1 -1
  68. package/lib/ui-kit/SelectCustom/SelectCustom.js +3 -3
  69. package/lib/ui-kit/SelectCustom/SelectCustom.js.map +1 -1
  70. package/mobile/bundle/bundle.umd.js +6 -6
  71. package/mobile/bundle/bundle.umd.min.js +1 -1
  72. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +1 -1
  73. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +1 -1
  74. package/mobile/dist/components/ComparisonTable/ComparisonTableContent.d.ts +1 -1
  75. package/mobile/dist/components/ComparisonTable/TableColumn.d.ts +1 -1
  76. package/mobile/dist/components/Footer/FooterContent.d.ts +1 -1
  77. package/mobile/dist/components/Header/HeaderContent.d.ts +1 -1
  78. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +1 -1
  79. package/mobile/dist/components/ProductTile/ProductTileContent.d.ts +1 -1
  80. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +1 -6
  81. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  82. package/mobile/dist/components/SafeDepositRental/YandexMap.js +13 -6
  83. package/mobile/dist/components/SafeDepositRental/YandexMap.js.map +1 -1
  84. package/mobile/dist/components/SafeDepositRental/renderClusterer.d.ts +2 -1
  85. package/mobile/dist/components/SafeDepositRental/renderClusterer.js +16 -18
  86. package/mobile/dist/components/SafeDepositRental/renderClusterer.js.map +1 -1
  87. package/mobile/dist/components/SafeDepositRental/useYandexMaps.d.ts +2 -0
  88. package/mobile/dist/components/SafeDepositRental/useYandexMaps.js +12 -0
  89. package/mobile/dist/components/SafeDepositRental/useYandexMaps.js.map +1 -0
  90. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  91. package/mobile/dist/hooks/useExternalNS.d.ts +2 -0
  92. package/mobile/dist/hooks/useExternalNS.js +39 -0
  93. package/mobile/dist/hooks/useExternalNS.js.map +1 -0
  94. package/mobile/dist/icons/IconName.d.ts +4 -4
  95. package/mobile/dist/icons/IconName.js +3 -3
  96. package/mobile/dist/icons/IconName.js.map +1 -1
  97. package/mobile/dist/ui-kit/BenefitItem/BenefitItemProps.d.ts +1 -1
  98. package/mobile/dist/ui-kit/SelectCustom/SelectCustom.js +3 -3
  99. package/mobile/dist/ui-kit/SelectCustom/SelectCustom.js.map +1 -1
  100. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlockContent.d.ts +1 -1
  101. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +1 -1
  102. package/mobile/lib/components/ComparisonTable/ComparisonTableContent.d.ts +1 -1
  103. package/mobile/lib/components/ComparisonTable/TableColumn.d.ts +1 -1
  104. package/mobile/lib/components/ContentPage/computeAPIFallback.js +1 -1
  105. package/mobile/lib/components/Footer/FooterContent.d.ts +1 -1
  106. package/mobile/lib/components/Header/HeaderContent.d.ts +1 -1
  107. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +1 -1
  108. package/mobile/lib/components/ProductTile/ProductTileContent.d.ts +1 -1
  109. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +1 -6
  110. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  111. package/mobile/lib/components/SafeDepositRental/YandexMap.js +13 -6
  112. package/mobile/lib/components/SafeDepositRental/YandexMap.js.map +1 -1
  113. package/mobile/lib/components/SafeDepositRental/renderClusterer.d.ts +2 -1
  114. package/mobile/lib/components/SafeDepositRental/renderClusterer.js +16 -18
  115. package/mobile/lib/components/SafeDepositRental/renderClusterer.js.map +1 -1
  116. package/mobile/lib/components/SafeDepositRental/useYandexMaps.d.ts +2 -0
  117. package/mobile/lib/components/SafeDepositRental/useYandexMaps.js +9 -0
  118. package/mobile/lib/components/SafeDepositRental/useYandexMaps.js.map +1 -0
  119. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  120. package/mobile/lib/hooks/useExternalNS.d.ts +2 -0
  121. package/mobile/lib/hooks/useExternalNS.js +35 -0
  122. package/mobile/lib/hooks/useExternalNS.js.map +1 -0
  123. package/mobile/lib/icons/IconName.d.ts +4 -4
  124. package/mobile/lib/icons/IconName.js +3 -3
  125. package/mobile/lib/icons/IconName.js.map +1 -1
  126. package/mobile/lib/ui-kit/BenefitItem/BenefitItemProps.d.ts +1 -1
  127. package/mobile/lib/ui-kit/SelectCustom/SelectCustom.js +3 -3
  128. package/mobile/lib/ui-kit/SelectCustom/SelectCustom.js.map +1 -1
  129. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +2 -2
  130. package/mobile/src/components/Calculator/CalculatorContent.ts +2 -2
  131. package/mobile/src/components/ComparisonTable/ComparisonTableContent.ts +1 -1
  132. package/mobile/src/components/ComparisonTable/TableColumn.tsx +2 -2
  133. package/mobile/src/components/Footer/FooterContent.ts +2 -2
  134. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +1 -1
  135. package/mobile/src/components/Header/HeaderContent.ts +1 -1
  136. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +1 -1
  137. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlockContent.ts +2 -2
  138. package/mobile/src/components/ProductTile/ProductTileContent.ts +1 -1
  139. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +1 -12
  140. package/mobile/src/components/SafeDepositRental/YandexMap.tsx +17 -10
  141. package/mobile/src/components/SafeDepositRental/renderClusterer.ts +29 -23
  142. package/mobile/src/components/SafeDepositRental/useYandexMaps.ts +13 -0
  143. package/mobile/src/components/StepsBlock/StepsBlockContent.ts +1 -1
  144. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +1 -1
  145. package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +2 -2
  146. package/mobile/src/hooks/useExternalNS.ts +44 -0
  147. package/mobile/src/icons/AirPlaneIcon.svg +1 -98
  148. package/mobile/src/icons/CarIcon.svg +1 -466
  149. package/mobile/src/icons/CinemaIcon.svg +1 -274
  150. package/mobile/src/icons/DocsIcon.svg +1 -238
  151. package/mobile/src/icons/IconName.ts +2 -2
  152. package/mobile/src/icons/PackA4Icon.svg +1 -1
  153. package/mobile/src/icons/PowerIcon.svg +1 -135
  154. package/mobile/src/icons/PumpkinIcon.svg +1 -236
  155. package/mobile/src/icons/SoundIcon.svg +1 -113
  156. package/mobile/src/icons/WateringCanIcon.svg +1 -497
  157. package/mobile/src/ui-kit/BenefitItem/BenefitItemProps.ts +2 -2
  158. package/mobile/src/ui-kit/SelectCustom/SelectCustom.tsx +9 -2
  159. package/package.json +2 -1
  160. package/src/components/BonusBenefitsBlock/BonusBenefitsBlockContent.ts +2 -2
  161. package/src/components/Calculator/CalculatorContent.ts +2 -2
  162. package/src/components/ComparisonTable/ComparisonTableContent.ts +1 -1
  163. package/src/components/ComparisonTable/TableColumn.tsx +2 -2
  164. package/src/components/Footer/FooterContent.ts +2 -2
  165. package/src/components/GracePeriod/GracePeriodContent.ts +1 -1
  166. package/src/components/Header/HeaderContent.ts +1 -1
  167. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +1 -1
  168. package/src/components/OfficeServicesBlock/OfficeServicesBlockContent.ts +2 -2
  169. package/src/components/ProductTile/ProductTileContent.ts +1 -1
  170. package/src/components/SafeDepositRental/SafeDepositRental.tsx +1 -12
  171. package/src/components/SafeDepositRental/YandexMap.tsx +17 -10
  172. package/src/components/SafeDepositRental/renderClusterer.ts +29 -23
  173. package/src/components/SafeDepositRental/useYandexMaps.ts +13 -0
  174. package/src/components/StepsBlock/StepsBlockContent.ts +1 -1
  175. package/src/components/TariffsTable/TariffsTableContent.ts +1 -1
  176. package/src/components/__snapshots__/Blocks.spec.tsx.snap +2 -2
  177. package/src/hooks/useExternalNS.ts +44 -0
  178. package/src/icons/AirPlaneIcon.svg +1 -98
  179. package/src/icons/CarIcon.svg +1 -466
  180. package/src/icons/CinemaIcon.svg +1 -274
  181. package/src/icons/DocsIcon.svg +1 -238
  182. package/src/icons/IconName.ts +4 -4
  183. package/src/icons/PackA4Icon.svg +1 -1
  184. package/src/icons/PowerIcon.svg +1 -135
  185. package/src/icons/PumpkinIcon.svg +1 -236
  186. package/src/icons/SoundIcon.svg +1 -113
  187. package/src/icons/WateringCanIcon.svg +1 -497
  188. package/src/ui-kit/BenefitItem/BenefitItemProps.ts +2 -2
  189. package/src/ui-kit/SelectCustom/SelectCustom.tsx +9 -2
  190. package/dist/hooks/useScript.d.ts +0 -6
  191. package/dist/hooks/useScript.js +0 -75
  192. package/dist/hooks/useScript.js.map +0 -1
  193. package/lib/hooks/useScript.d.ts +0 -6
  194. package/lib/hooks/useScript.js +0 -72
  195. package/lib/hooks/useScript.js.map +0 -1
  196. package/mobile/dist/hooks/useScript.d.ts +0 -6
  197. package/mobile/dist/hooks/useScript.js +0 -75
  198. package/mobile/dist/hooks/useScript.js.map +0 -1
  199. package/mobile/lib/hooks/useScript.d.ts +0 -6
  200. package/mobile/lib/hooks/useScript.js +0 -72
  201. package/mobile/lib/hooks/useScript.js.map +0 -1
  202. package/mobile/src/hooks/useScript.ts +0 -97
  203. package/src/hooks/useScript.ts +0 -97
@@ -397,7 +397,7 @@
397
397
  var IconTitleMap;
398
398
  (function (IconTitleMap) {
399
399
  IconTitleMap["ActualBalanceIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438";
400
- IconTitleMap["AirPlaneIcon"] = "\u0421\u0430\u043C\u043E\u043B\u0435\u0442";
400
+ IconTitleMap["AirPlaneIcon"] = "\u0421\u0430\u043C\u043E\u043B\u0451\u0442";
401
401
  IconTitleMap["AppleIcon"] = "\u041B\u043E\u0433\u043E \u00ABApple\u00BB";
402
402
  IconTitleMap["ArrowDownIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430 '\u0412\u043D\u0438\u0437'";
403
403
  IconTitleMap["ArrowLeftIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430";
@@ -417,7 +417,7 @@
417
417
  IconTitleMap["CardWithGemIcon"] = "\u041A\u0430\u0440\u0442\u0430 \u0441 \u0434\u0440\u0430\u0433\u043E\u0446\u0435\u043D\u043D\u043E\u0441\u0442\u044F\u043C\u0438";
418
418
  IconTitleMap["CarIcon"] = "\u041C\u0430\u0448\u0438\u043D\u0430";
419
419
  IconTitleMap["ChartSquareIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430";
420
- IconTitleMap["CinemaIcon"] = "\u041A\u0438\u043D\u043E";
420
+ IconTitleMap["CinemaIcon"] = "\u041A\u0438\u043D\u043E\u0442\u0435\u0430\u0442\u0440";
421
421
  IconTitleMap["ClockIcon"] = "\u0427\u0430\u0441\u044B";
422
422
  IconTitleMap["CloseIcon"] = "\u041A\u0440\u0435\u0441\u0442\u0438\u043A";
423
423
  IconTitleMap["ComfortableCompIcon"] = "\u041A\u0440\u0435\u0441\u043B\u043E";
@@ -457,7 +457,7 @@
457
457
  IconTitleMap["NewDocIcon"] = "\u041D\u043E\u0432\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
458
458
  IconTitleMap["OfficeIcon"] = "\u041E\u0444\u0438\u0441";
459
459
  IconTitleMap["OkIcon"] = "\u041B\u043E\u0433\u043E \u00AB\u041E\u0434\u043D\u043E\u043A\u043B\u0430\u0441\u0441\u043D\u0438\u043A\u0438\u00BB";
460
- IconTitleMap["PackA4Icon"] = "PackA4Icon";
460
+ IconTitleMap["PackA4Icon"] = "\u041F\u0430\u0447\u043A\u0430 \u0431\u0443\u043C\u0430\u0433\u0438 \u04104";
461
461
  IconTitleMap["PassSendIcon"] = "\u0411\u0438\u0437\u043D\u0435\u0441";
462
462
  IconTitleMap["PercentageRoundIcon"] = "\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u044B (\u043A\u0440\u0443\u0433.)";
463
463
  IconTitleMap["PercentageSquareIcon"] = "\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u044B";
@@ -2004,13 +2004,13 @@
2004
2004
  useEffect(() => {
2005
2005
  setSelectedItem(value || { key: '', text: '' });
2006
2006
  }, [value]);
2007
- return (jsxs("div", { className: `${isOpen ? 'z-10' : ''} ${className}`, children: [label ? jsx("span", { className: "mb-2", children: label }) : null, jsxs("div", { className: `relative w-fit`, children: [jsxs("div", { className: `text-m-light flex justify-between min-h-[56px] mb-0.5 p-4 pr-8 text-primary-text cursor-pointer
2008
- ${getBorderStyle(isBorder)}`, onClick: () => setIsOpen(!isOpen), children: [selectedItem.text, jsx(Icon, { name: "ArrowUpIcon", className: `absolute right-3 ${isOpen ? '' : 'rotate-180'}` })] }), options.length > 0 ? (jsx("div", { className: `h-0 ${isOpen ? '' : 'overflow-hidden'}`, children: jsx("div", { className: `bg-white text-l rounded-md`, children: options.map(renderOption(choiceOption, isOpen, isSelected)) }) })) : null] })] }));
2007
+ return (jsxs("div", { className: `${isOpen ? 'z-10' : ''} ${className}`, children: [label ? jsx("span", { className: "mb-2", children: label }) : null, jsxs("div", { className: `relative w-fit`, children: [jsxs("div", { className: `text-m-light flex justify-between items-center min-h-[56px] mb-0.5 p-4 pr-8 text-primary-text cursor-pointer
2008
+ ${getBorderStyle(isBorder)}`, onClick: () => setIsOpen(!isOpen), children: [selectedItem.text, jsx(Icon, { name: "ArrowUpIcon", width: "16", height: "16", className: `absolute right-3 ${isOpen ? '' : 'rotate-180'}` })] }), options.length > 0 ? (jsx("div", { className: `h-0 ${isOpen ? '' : 'overflow-hidden'}`, children: jsx("div", { className: `bg-white text-l rounded-md`, children: options.map(renderOption(choiceOption, isOpen, isSelected)) }) })) : null] })] }));
2009
2009
  });
2010
2010
  const renderOption = (choiceOption, isOpen, isSelected) => (option, i) => {
2011
2011
  return (jsxs("div", { onClick: () => {
2012
2012
  choiceOption(option);
2013
- }, className: "flex px-4 py-3 cursor-pointer hover:bg-main-divider pr-11", children: [jsx("span", { children: option.text }), jsx(Icon, { name: "DoneSimpleIcon", className: ['absolute right-4 pt-0.5', isSelected(option) && isOpen ? '' : 'hidden'].join(' ') })] }, String(i)));
2013
+ }, className: "flex px-4 py-3 cursor-pointer hover:bg-main-divider pr-11", children: [jsx("span", { children: option.text }), jsx(Icon, { name: "DoneSimpleIcon", width: "16", height: "16", className: ['absolute right-4 pt-0.5', isSelected(option) && isOpen ? '' : 'hidden'].join(' ') })] }, String(i)));
2014
2014
  };
2015
2015
  function getBorderStyle(isBorder) {
2016
2016
  return isBorder ? 'border border-main-stroke rounded-md hover:border-primary-hover' : '';
@@ -2694,77 +2694,6 @@
2694
2694
  }) }));
2695
2695
  };
2696
2696
 
2697
- const cachedScriptStatuses = {};
2698
- function getScriptNode(src) {
2699
- const node = document.querySelector(`script[src="${src}"]`);
2700
- const status = node?.getAttribute('data-status');
2701
- return {
2702
- node,
2703
- status,
2704
- };
2705
- }
2706
- function getScriptStatus(type) {
2707
- return type === 'load' ? 'ready' : 'error';
2708
- }
2709
- function getInitialValueStatus(src, options) {
2710
- if (!src || options?.shouldPreventLoad) {
2711
- return 'idle';
2712
- }
2713
- if (typeof window === 'undefined') {
2714
- return 'loading';
2715
- }
2716
- return cachedScriptStatuses[src] ?? 'loading';
2717
- }
2718
- function useScript(src, options) {
2719
- const [status, setStatus] = useState(getInitialValueStatus(src, options));
2720
- // eslint-disable-next-line complexity
2721
- useEffect(() => {
2722
- if (!src || options?.shouldPreventLoad) {
2723
- return undefined;
2724
- }
2725
- const cachedScriptStatus = cachedScriptStatuses[src];
2726
- if (cachedScriptStatus === 'ready' || cachedScriptStatus === 'error') {
2727
- setStatus(cachedScriptStatus);
2728
- return undefined;
2729
- }
2730
- const script = getScriptNode(src);
2731
- let scriptNode = script.node;
2732
- if (!scriptNode) {
2733
- scriptNode = document.createElement('script');
2734
- scriptNode.src = src;
2735
- scriptNode.async = true;
2736
- scriptNode.setAttribute('data-status', 'loading');
2737
- document.body.appendChild(scriptNode);
2738
- const setAttributeFromEvent = (event) => {
2739
- const scriptStatus = getScriptStatus(event.type);
2740
- scriptNode?.setAttribute('data-status', scriptStatus);
2741
- };
2742
- scriptNode.addEventListener('load', setAttributeFromEvent);
2743
- scriptNode.addEventListener('error', setAttributeFromEvent);
2744
- }
2745
- else {
2746
- setStatus(script.status ?? cachedScriptStatus ?? 'loading');
2747
- }
2748
- const setStateFromEvent = (event) => {
2749
- const newStatus = getScriptStatus(event.type);
2750
- setStatus(newStatus);
2751
- cachedScriptStatuses[src] = newStatus;
2752
- };
2753
- scriptNode.addEventListener('load', setStateFromEvent);
2754
- scriptNode.addEventListener('error', setStateFromEvent);
2755
- return () => {
2756
- if (scriptNode) {
2757
- scriptNode.removeEventListener('load', setStateFromEvent);
2758
- scriptNode.removeEventListener('error', setStateFromEvent);
2759
- }
2760
- if (scriptNode && options?.removeOnUnmount) {
2761
- scriptNode.remove();
2762
- }
2763
- };
2764
- }, [src, options?.shouldPreventLoad, options?.removeOnUnmount]);
2765
- return status;
2766
- }
2767
-
2768
2697
  const SAFEBOXES_URL = '/api/v1/safeboxes';
2769
2698
  function useFetchSafeBoxes(regionCode) {
2770
2699
  const { data } = useAsyncData(regionCode ? `${SAFEBOXES_URL}?regionCode=${regionCode}` : null, fetchSafeBoxes);
@@ -2908,11 +2837,10 @@
2908
2837
  return data || [];
2909
2838
  }
2910
2839
 
2911
- function renderClusterer(Map, points) {
2912
- Map.geoObjects.removeAll();
2913
- const pointsList = points;
2914
- const clusterIconContentLayout = ymaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
2915
- const clusterer = new ymaps.Clusterer({
2840
+ function renderClusterer(yandexMaps, map, points) {
2841
+ map.geoObjects.removeAll();
2842
+ const clusterIconContentLayout = yandexMaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
2843
+ const clusterer = new yandexMaps.Clusterer({
2916
2844
  clusterIcons: [
2917
2845
  {
2918
2846
  href: 'icons/MapMarkerClusterIcon.svg',
@@ -2924,37 +2852,83 @@
2924
2852
  clusterHideIconOnBalloonOpen: false,
2925
2853
  geoObjectHideIconOnBalloonOpen: false,
2926
2854
  });
2927
- const geoObjects = [];
2928
- for (let i = 0, len = pointsList.length; i < len; i++) {
2929
- geoObjects[i] = new ymaps.Placemark(pointsList[i], null, {
2930
- iconLayout: 'default#image',
2931
- iconImageHref: 'icons/MapMarkerSingleIcon.svg',
2932
- iconImageSize: [78, 84],
2933
- iconImageOffset: [-35, -50],
2934
- });
2935
- }
2855
+ const geoObjects = points.map((point) => new yandexMaps.Placemark(point, {}, {
2856
+ iconLayout: 'default#image',
2857
+ iconImageHref: 'icons/MapMarkerSingleIcon.svg',
2858
+ iconImageSize: [78, 84],
2859
+ iconImageOffset: [-35, -50],
2860
+ }));
2936
2861
  clusterer.add(geoObjects);
2937
- Map.geoObjects.add(clusterer);
2938
- Map.setBounds(ymaps.util.bounds.fromPoints(pointsList)).then(() => {
2939
- if (Map.getZoom() > 10) {
2940
- Map.setZoom(10);
2862
+ map.geoObjects.add(clusterer);
2863
+ // TODO: Fix
2864
+ // @ts-ignore
2865
+ map.setBounds(yandexMaps.util.bounds.fromPoints(points)).then(() => {
2866
+ if (map.getZoom() > 10) {
2867
+ map.setZoom(10);
2941
2868
  }
2942
2869
  });
2943
2870
  }
2944
2871
 
2872
+ const getNS = (_) => globalThis[_];
2873
+ function useExternalNS(namespaceName, url) {
2874
+ const [externalNS, setExternalNS] = useState();
2875
+ const setNS = useCallback(() => setExternalNS(getNS(namespaceName)), [namespaceName]);
2876
+ useEffect(() => {
2877
+ const script = document.getElementById(url);
2878
+ if (script) {
2879
+ if (getNS(namespaceName)) {
2880
+ setNS();
2881
+ }
2882
+ else {
2883
+ script.addEventListener('load', setNS);
2884
+ return () => {
2885
+ script.removeEventListener('load', setNS);
2886
+ };
2887
+ }
2888
+ }
2889
+ else {
2890
+ const newScript = document.createElement('script');
2891
+ newScript.src = url;
2892
+ newScript.async = true;
2893
+ newScript.id = url;
2894
+ newScript.addEventListener('load', setNS);
2895
+ document.head.appendChild(newScript);
2896
+ return () => {
2897
+ document.head.removeChild(newScript);
2898
+ setExternalNS(undefined);
2899
+ };
2900
+ }
2901
+ return undefined;
2902
+ }, [namespaceName, url]);
2903
+ return externalNS;
2904
+ }
2905
+
2906
+ const YMAPS_NAMESPACE = 'ymaps';
2907
+ const useYandexMaps = () => {
2908
+ const url = `https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY}&lang=ru_RU`;
2909
+ const yandexMaps = useExternalNS(YMAPS_NAMESPACE, url);
2910
+ return yandexMaps;
2911
+ };
2912
+
2945
2913
  const YandexMap = JSX(({ points }) => {
2946
2914
  const map = useRef(null);
2915
+ const yandexMaps = useYandexMaps();
2947
2916
  useEffect(() => {
2948
- ymaps.ready(() => {
2949
- map.current = new ymaps.Map('map', {
2917
+ yandexMaps?.ready(() => {
2918
+ map.current = new yandexMaps.Map('map', {
2950
2919
  center: points[0],
2951
2920
  zoom: 10,
2952
2921
  });
2953
- renderClusterer(map.current, points);
2922
+ renderClusterer(yandexMaps, map.current, points);
2954
2923
  });
2955
- }, []);
2956
- if (map.current && points) {
2957
- renderClusterer(map.current, points);
2924
+ }, [yandexMaps]);
2925
+ useEffect(() => {
2926
+ if (map.current && points && yandexMaps) {
2927
+ renderClusterer(yandexMaps, map.current, points);
2928
+ }
2929
+ }, [map, points, yandexMaps]);
2930
+ if (!yandexMaps) {
2931
+ return null;
2958
2932
  }
2959
2933
  return (jsxs("div", { className: "pt-12 mt-1 bg-white", children: [jsx(Heading, { title: "\u041E\u0444\u0438\u0441\u044B \u043D\u0430 \u043A\u0430\u0440\u0442\u0435", headingType: "h3", className: "mb-8 text-center" }), jsx("div", { id: "map", className: "h-[640px]" })] }));
2960
2934
  });
@@ -2963,13 +2937,10 @@
2963
2937
  const [points, setPoints] = useState([]);
2964
2938
  const [showMap, setShowMap] = useState(false);
2965
2939
  const regions = useGetRegions();
2966
- const statusScript = useScript(`https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY}&lang=ru_RU`, {
2967
- removeOnUnmount: true,
2968
- });
2969
2940
  const toggleShowMap = () => {
2970
2941
  setShowMap(!showMap);
2971
2942
  };
2972
- return (jsxs(BlockWrapper, { context: context, className: className, ...rest, children: [jsxs("div", { className: "bg-white px-8 py-12", children: [title ? (jsx(Heading, { title: title, headingType: "h3", as: "h2", className: "mb-2.5 text-center" })) : null, jsx(SafeDepositRentalForm, { regions: regions, setPoints: setPoints, toggleShowMap: toggleShowMap }), footnote ? jsx("p", { className: "text-s-light text-secondary-text", children: footnote }) : null] }), statusScript === 'ready' && points.length && showMap ? (jsx(YandexMap, { points: points })) : null] }));
2943
+ return (jsxs(BlockWrapper, { context: context, className: className, ...rest, children: [jsxs("div", { className: "bg-white px-8 py-12", children: [title ? (jsx(Heading, { title: title, headingType: "h3", as: "h2", className: "mb-2.5 text-center" })) : null, jsx(SafeDepositRentalForm, { regions: regions, setPoints: setPoints, toggleShowMap: toggleShowMap }), footnote ? jsx("p", { className: "text-s-light text-secondary-text", children: footnote }) : null] }), points.length && showMap ? jsx(YandexMap, { points: points }) : null] }));
2973
2944
  });
2974
2945
 
2975
2946
  const checkIsIconRenderable = (icon) => Boolean(icon?.icon || icon?.src);