@redneckz/wildless-cms-uni-blocks 0.14.197 → 0.14.199

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 (172) hide show
  1. package/bin/migration-scripts/0.14.189.js +22 -0
  2. package/bundle/bundle.umd.js +77 -79
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/hooks/useForm.d.ts +8 -7
  5. package/bundle/hooks/useJSONRef/resolveBlockProps.d.ts +1 -0
  6. package/bundle/ui-kit/BaseFiltration/filterBlocks.d.ts +1 -1
  7. package/bundle/ui-kit/BaseFiltration/useFiltrationForm.d.ts +10 -0
  8. package/dist/components/DepositFiltration/DepositFiltration.js +20 -11
  9. package/dist/components/DepositFiltration/DepositFiltration.js.map +1 -1
  10. package/dist/components/MortgageFiltration/MortgageFiltration.js +6 -7
  11. package/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  12. package/dist/content-page-repository/replaceHeadingTags.js +1 -1
  13. package/dist/content-page-repository/replaceHeadingTags.js.map +1 -1
  14. package/dist/hooks/useForm.d.ts +8 -7
  15. package/dist/hooks/useForm.js.map +1 -1
  16. package/dist/hooks/useJSONRef/resolveBlockProps.d.ts +1 -0
  17. package/dist/hooks/useJSONRef/resolveBlockProps.js +6 -0
  18. package/dist/hooks/useJSONRef/resolveBlockProps.js.map +1 -0
  19. package/dist/hooks/useJSONRef/useJSONRef.js +2 -3
  20. package/dist/hooks/useJSONRef/useJSONRef.js.map +1 -1
  21. package/dist/ui-kit/BaseFiltration/filterBlocks.d.ts +1 -1
  22. package/dist/ui-kit/BaseFiltration/filterBlocks.js +3 -1
  23. package/dist/ui-kit/BaseFiltration/filterBlocks.js.map +1 -1
  24. package/dist/ui-kit/BaseFiltration/useFiltrationForm.d.ts +10 -0
  25. package/dist/ui-kit/BaseFiltration/useFiltrationForm.js +23 -0
  26. package/dist/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -0
  27. package/lib/components/DepositFiltration/DepositFiltration.js +20 -11
  28. package/lib/components/DepositFiltration/DepositFiltration.js.map +1 -1
  29. package/lib/components/MortgageFiltration/MortgageFiltration.js +6 -7
  30. package/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  31. package/lib/content-page-repository/replaceHeadingTags.js +1 -1
  32. package/lib/content-page-repository/replaceHeadingTags.js.map +1 -1
  33. package/lib/hooks/useForm.d.ts +8 -7
  34. package/lib/hooks/useForm.js.map +1 -1
  35. package/lib/hooks/useJSONRef/resolveBlockProps.d.ts +1 -0
  36. package/lib/hooks/useJSONRef/resolveBlockProps.js +3 -0
  37. package/lib/hooks/useJSONRef/resolveBlockProps.js.map +1 -0
  38. package/lib/hooks/useJSONRef/useJSONRef.js +3 -4
  39. package/lib/hooks/useJSONRef/useJSONRef.js.map +1 -1
  40. package/lib/ui-kit/BaseFiltration/filterBlocks.d.ts +1 -1
  41. package/lib/ui-kit/BaseFiltration/filterBlocks.js +3 -1
  42. package/lib/ui-kit/BaseFiltration/filterBlocks.js.map +1 -1
  43. package/lib/ui-kit/BaseFiltration/useFiltrationForm.d.ts +10 -0
  44. package/lib/ui-kit/BaseFiltration/useFiltrationForm.js +20 -0
  45. package/lib/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -0
  46. package/mobile/bundle/bundle.umd.js +77 -79
  47. package/mobile/bundle/bundle.umd.min.js +1 -1
  48. package/mobile/bundle/hooks/useForm.d.ts +8 -7
  49. package/mobile/bundle/hooks/useJSONRef/resolveBlockProps.d.ts +1 -0
  50. package/mobile/bundle/ui-kit/BaseFiltration/filterBlocks.d.ts +1 -1
  51. package/mobile/bundle/ui-kit/BaseFiltration/useFiltrationForm.d.ts +10 -0
  52. package/mobile/dist/components/DepositFiltration/DepositFiltration.js +20 -11
  53. package/mobile/dist/components/DepositFiltration/DepositFiltration.js.map +1 -1
  54. package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js +6 -7
  55. package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  56. package/mobile/dist/content-page-repository/replaceHeadingTags.js +1 -1
  57. package/mobile/dist/content-page-repository/replaceHeadingTags.js.map +1 -1
  58. package/mobile/dist/hooks/useForm.d.ts +8 -7
  59. package/mobile/dist/hooks/useForm.js.map +1 -1
  60. package/mobile/dist/hooks/useJSONRef/resolveBlockProps.d.ts +1 -0
  61. package/mobile/dist/hooks/useJSONRef/resolveBlockProps.js +6 -0
  62. package/mobile/dist/hooks/useJSONRef/resolveBlockProps.js.map +1 -0
  63. package/mobile/dist/hooks/useJSONRef/useJSONRef.js +2 -3
  64. package/mobile/dist/hooks/useJSONRef/useJSONRef.js.map +1 -1
  65. package/mobile/dist/ui-kit/BaseFiltration/filterBlocks.d.ts +1 -1
  66. package/mobile/dist/ui-kit/BaseFiltration/filterBlocks.js +3 -1
  67. package/mobile/dist/ui-kit/BaseFiltration/filterBlocks.js.map +1 -1
  68. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.d.ts +10 -0
  69. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.js +23 -0
  70. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -0
  71. package/mobile/lib/components/DepositFiltration/DepositFiltration.js +20 -11
  72. package/mobile/lib/components/DepositFiltration/DepositFiltration.js.map +1 -1
  73. package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js +6 -7
  74. package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  75. package/mobile/lib/content-page-repository/replaceHeadingTags.js +1 -1
  76. package/mobile/lib/content-page-repository/replaceHeadingTags.js.map +1 -1
  77. package/mobile/lib/hooks/useForm.d.ts +8 -7
  78. package/mobile/lib/hooks/useForm.js.map +1 -1
  79. package/mobile/lib/hooks/useJSONRef/resolveBlockProps.d.ts +1 -0
  80. package/mobile/lib/hooks/useJSONRef/resolveBlockProps.js +3 -0
  81. package/mobile/lib/hooks/useJSONRef/resolveBlockProps.js.map +1 -0
  82. package/mobile/lib/hooks/useJSONRef/useJSONRef.js +3 -4
  83. package/mobile/lib/hooks/useJSONRef/useJSONRef.js.map +1 -1
  84. package/mobile/lib/ui-kit/BaseFiltration/filterBlocks.d.ts +1 -1
  85. package/mobile/lib/ui-kit/BaseFiltration/filterBlocks.js +3 -1
  86. package/mobile/lib/ui-kit/BaseFiltration/filterBlocks.js.map +1 -1
  87. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.d.ts +10 -0
  88. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.js +20 -0
  89. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -0
  90. package/mobile/src/components/DepositFiltration/DepositFiltration.tsx +32 -16
  91. package/mobile/src/components/MortgageFiltration/MortgageFiltration.tsx +9 -13
  92. package/mobile/src/content-page-repository/replaceHeadingTags.ts +1 -1
  93. package/mobile/src/hooks/useForm.ts +9 -10
  94. package/mobile/src/hooks/useJSONRef/resolveBlockProps.ts +4 -0
  95. package/mobile/src/hooks/useJSONRef/useJSONRef.ts +3 -4
  96. package/mobile/src/ui-kit/BaseFiltration/filterBlocks.ts +8 -3
  97. package/mobile/src/ui-kit/BaseFiltration/useFiltrationForm.ts +52 -0
  98. package/package.json +1 -1
  99. package/src/components/DepositFiltration/DepositFiltration.fixture.mobile.tsx +3 -3
  100. package/src/components/DepositFiltration/DepositFiltration.fixture.tsx +10 -3
  101. package/src/components/DepositFiltration/DepositFiltration.tsx +32 -16
  102. package/src/components/MortgageFiltration/MortgageFiltration.tsx +9 -13
  103. package/src/content-page-repository/replaceHeadingTags.ts +1 -1
  104. package/src/hooks/useForm.ts +9 -10
  105. package/src/hooks/useJSONRef/resolveBlockProps.ts +4 -0
  106. package/src/hooks/useJSONRef/useJSONRef.ts +3 -4
  107. package/src/ui-kit/BaseFiltration/filterBlocks.ts +8 -3
  108. package/src/ui-kit/BaseFiltration/useFiltrationForm.ts +52 -0
  109. package/bundle/components/DepositFiltration/SourceItem.d.ts +0 -4
  110. package/bundle/components/DepositFiltration/getChildSourceBook.d.ts +0 -2
  111. package/bundle/components/DepositFiltration/getPeriod.d.ts +0 -4
  112. package/bundle/components/DepositFiltration/useDepositsPeriods.d.ts +0 -8
  113. package/dist/components/DepositFiltration/SourceItem.d.ts +0 -4
  114. package/dist/components/DepositFiltration/SourceItem.js +0 -2
  115. package/dist/components/DepositFiltration/SourceItem.js.map +0 -1
  116. package/dist/components/DepositFiltration/getChildSourceBook.d.ts +0 -2
  117. package/dist/components/DepositFiltration/getChildSourceBook.js +0 -6
  118. package/dist/components/DepositFiltration/getChildSourceBook.js.map +0 -1
  119. package/dist/components/DepositFiltration/getPeriod.d.ts +0 -4
  120. package/dist/components/DepositFiltration/getPeriod.js +0 -10
  121. package/dist/components/DepositFiltration/getPeriod.js.map +0 -1
  122. package/dist/components/DepositFiltration/useDepositsPeriods.d.ts +0 -8
  123. package/dist/components/DepositFiltration/useDepositsPeriods.js +0 -26
  124. package/dist/components/DepositFiltration/useDepositsPeriods.js.map +0 -1
  125. package/lib/components/DepositFiltration/SourceItem.d.ts +0 -4
  126. package/lib/components/DepositFiltration/SourceItem.js +0 -2
  127. package/lib/components/DepositFiltration/SourceItem.js.map +0 -1
  128. package/lib/components/DepositFiltration/getChildSourceBook.d.ts +0 -2
  129. package/lib/components/DepositFiltration/getChildSourceBook.js +0 -3
  130. package/lib/components/DepositFiltration/getChildSourceBook.js.map +0 -1
  131. package/lib/components/DepositFiltration/getPeriod.d.ts +0 -4
  132. package/lib/components/DepositFiltration/getPeriod.js +0 -7
  133. package/lib/components/DepositFiltration/getPeriod.js.map +0 -1
  134. package/lib/components/DepositFiltration/useDepositsPeriods.d.ts +0 -8
  135. package/lib/components/DepositFiltration/useDepositsPeriods.js +0 -23
  136. package/lib/components/DepositFiltration/useDepositsPeriods.js.map +0 -1
  137. package/mobile/bundle/components/DepositFiltration/SourceItem.d.ts +0 -4
  138. package/mobile/bundle/components/DepositFiltration/getChildSourceBook.d.ts +0 -2
  139. package/mobile/bundle/components/DepositFiltration/getPeriod.d.ts +0 -4
  140. package/mobile/bundle/components/DepositFiltration/useDepositsPeriods.d.ts +0 -8
  141. package/mobile/dist/components/DepositFiltration/SourceItem.d.ts +0 -4
  142. package/mobile/dist/components/DepositFiltration/SourceItem.js +0 -2
  143. package/mobile/dist/components/DepositFiltration/SourceItem.js.map +0 -1
  144. package/mobile/dist/components/DepositFiltration/getChildSourceBook.d.ts +0 -2
  145. package/mobile/dist/components/DepositFiltration/getChildSourceBook.js +0 -6
  146. package/mobile/dist/components/DepositFiltration/getChildSourceBook.js.map +0 -1
  147. package/mobile/dist/components/DepositFiltration/getPeriod.d.ts +0 -4
  148. package/mobile/dist/components/DepositFiltration/getPeriod.js +0 -10
  149. package/mobile/dist/components/DepositFiltration/getPeriod.js.map +0 -1
  150. package/mobile/dist/components/DepositFiltration/useDepositsPeriods.d.ts +0 -8
  151. package/mobile/dist/components/DepositFiltration/useDepositsPeriods.js +0 -26
  152. package/mobile/dist/components/DepositFiltration/useDepositsPeriods.js.map +0 -1
  153. package/mobile/lib/components/DepositFiltration/SourceItem.d.ts +0 -4
  154. package/mobile/lib/components/DepositFiltration/SourceItem.js +0 -2
  155. package/mobile/lib/components/DepositFiltration/SourceItem.js.map +0 -1
  156. package/mobile/lib/components/DepositFiltration/getChildSourceBook.d.ts +0 -2
  157. package/mobile/lib/components/DepositFiltration/getChildSourceBook.js +0 -3
  158. package/mobile/lib/components/DepositFiltration/getChildSourceBook.js.map +0 -1
  159. package/mobile/lib/components/DepositFiltration/getPeriod.d.ts +0 -4
  160. package/mobile/lib/components/DepositFiltration/getPeriod.js +0 -7
  161. package/mobile/lib/components/DepositFiltration/getPeriod.js.map +0 -1
  162. package/mobile/lib/components/DepositFiltration/useDepositsPeriods.d.ts +0 -8
  163. package/mobile/lib/components/DepositFiltration/useDepositsPeriods.js +0 -23
  164. package/mobile/lib/components/DepositFiltration/useDepositsPeriods.js.map +0 -1
  165. package/mobile/src/components/DepositFiltration/SourceItem.ts +0 -5
  166. package/mobile/src/components/DepositFiltration/getChildSourceBook.ts +0 -7
  167. package/mobile/src/components/DepositFiltration/getPeriod.ts +0 -13
  168. package/mobile/src/components/DepositFiltration/useDepositsPeriods.ts +0 -34
  169. package/src/components/DepositFiltration/SourceItem.ts +0 -5
  170. package/src/components/DepositFiltration/getChildSourceBook.ts +0 -7
  171. package/src/components/DepositFiltration/getPeriod.ts +0 -13
  172. package/src/components/DepositFiltration/useDepositsPeriods.ts +0 -34
@@ -0,0 +1,22 @@
1
+ import { deleteProp, traversePageBlocks } from '../utils.js';
2
+
3
+ export const description = 'v0.14.189';
4
+
5
+ export default traversePageBlocks(adjustFiltratitonBlock);
6
+
7
+ function adjustFiltratitonBlock(block) {
8
+ if (block?.type !== 'DepositFiltration' || !block?.blocks || block?.blocks?.length === 0) {
9
+ return;
10
+ }
11
+
12
+ block?.blocks.map((_) => {
13
+ if (_?.content?.sourceBook) {
14
+ _.content.paramsSource = {
15
+ $ref: `/wcms-resources/${_?.content?.sourceBook}.json`,
16
+ };
17
+ deleteProp(_.content, 'sourceBook');
18
+ }
19
+
20
+ return _;
21
+ });
22
+ }
@@ -773,6 +773,8 @@
773
773
  .filter((res) => res.status === 'fulfilled')
774
774
  .map(({ value }) => value));
775
775
 
776
+ const resolveBlockProps = (content, fallback) => resolveRef(content, (_) => fallback?.[_]);
777
+
776
778
  const useJSONRef = (content, fallback) => {
777
779
  const refs = collectRef(content);
778
780
  const [refsMap, setRefsMap] = useState({});
@@ -781,9 +783,7 @@
781
783
  fetchRefs(refs).then(setRefsMap);
782
784
  }
783
785
  }, [refs.join()]);
784
- return refs.length
785
- ? resolveRef(content, (_) => refsMap[_] || fallback?.[_])
786
- : content;
786
+ return refs.length ? resolveBlockProps(content, { ...fallback, ...refsMap }) : content;
787
787
  };
788
788
 
789
789
  const extractContent = ({ block, options, className, defaultPadding, padding, isTheme, version, children, ...content }) => content;
@@ -3441,6 +3441,42 @@
3441
3441
  }, renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(DefaultFoldButton, { className: style(topItemsCount < 1 ? 'hidden' : ''), disabled: !hiddenBlocks?.length, label: label, icon: ICONS$1[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette, onClick: onToggle })) })] })] }));
3442
3442
  });
3443
3443
 
3444
+ const SlideCheckboxGroup = JSX(({ value, onChange, items = [], multiple }) => {
3445
+ const handleChange = (newValue) => {
3446
+ if (!onChange) {
3447
+ return;
3448
+ }
3449
+ const hasAlready = value?.includes(newValue);
3450
+ if (multiple) {
3451
+ onChange(hasAlready ? (value || []).filter((v) => v !== newValue) : [...(value || []), newValue]);
3452
+ }
3453
+ else {
3454
+ onChange(hasAlready ? [] : [newValue]);
3455
+ }
3456
+ };
3457
+ return items.map((item) => (jsx(SlideCheckbox, { text: item?.title, value: [value].flatMap((_) => _).includes(item.value), onChange: () => handleChange(item.value), type: multiple ? 'checkbox' : 'radio' }, item.value)));
3458
+ });
3459
+
3460
+ const renderFiltrationForm$1 = ({ field, reset, filtrationSchema, resetButton, children, }) => (jsxs("form", { className: "flex flex-col @4xl:flex-row justify-between bg-white p-4xl gap-s @4xl:gap-0", children: [jsxs("div", { className: "flex flex-col @4xl:flex-row gap-5xl", children: [children, Object.entries(filtrationSchema).map(renderFormItem(field))] }), resetButton ? (jsx("div", { children: jsx(Button, { type: "reset", className: "w-full @4xl:w-72 @4xl:ml-s", onClick: reset, children: resetButton?.text }) })) : null] }));
3461
+ const renderFormItem = (field) => ([key, item]) => {
3462
+ const type = item?.type;
3463
+ switch (type) {
3464
+ case 'array':
3465
+ return renderCheckboxes(key, field)(item);
3466
+ default:
3467
+ return null;
3468
+ }
3469
+ };
3470
+ const renderCheckboxes = (key, field) => (item) => {
3471
+ const options = item?.items?.enum?.map((e, i) => ({ value: e, title: item?.items?.enumNames?.[i] || '' })) ||
3472
+ [];
3473
+ return (jsxs("div", { children: [item?.title ? (jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: !item?.single, ...field(key) })] }, key));
3474
+ };
3475
+
3476
+ function zip(firstCol, ...restCols) {
3477
+ return firstCol.map((firstEl, rowIndex) => [firstEl, ...restCols.map((col) => col[rowIndex])]);
3478
+ }
3479
+
3444
3480
  const isEmpty = (v) => v === null ||
3445
3481
  v === undefined ||
3446
3482
  v === '' ||
@@ -3476,38 +3512,22 @@
3476
3512
  .every((predicate) => predicate(target));
3477
3513
  const naturalNumber = (n) => Number(n || 0);
3478
3514
 
3479
- const filterBlocks = (blocks, filtrationState) => (normalize = identity) => blocks && blocks.filter((b) => targetMatchPattern(filtrationState, normalize(b.content || {})));
3480
-
3481
- const SlideCheckboxGroup = JSX(({ value, onChange, items = [], multiple }) => {
3482
- const handleChange = (newValue) => {
3483
- if (!onChange) {
3484
- return;
3485
- }
3486
- const hasAlready = value?.includes(newValue);
3487
- if (multiple) {
3488
- onChange(hasAlready ? (value || []).filter((v) => v !== newValue) : [...(value || []), newValue]);
3489
- }
3490
- else {
3491
- onChange(hasAlready ? [] : [newValue]);
3492
- }
3493
- };
3494
- return items.map((item) => (jsx(SlideCheckbox, { text: item?.title, value: [value].flatMap((_) => _).includes(item.value), onChange: () => handleChange(item.value), type: multiple ? 'checkbox' : 'radio' }, item.value)));
3495
- });
3496
-
3497
- const renderFiltrationForm$1 = ({ field, reset, filtrationSchema, resetButton, children, }) => (jsxs("form", { className: "flex flex-col @4xl:flex-row justify-between bg-white p-4xl gap-s @4xl:gap-0", children: [jsxs("div", { className: "flex flex-col @4xl:flex-row gap-5xl", children: [children, Object.entries(filtrationSchema).map(renderFormItem(field))] }), resetButton ? (jsx("div", { children: jsx(Button, { type: "reset", className: "w-full @4xl:w-72 @4xl:ml-s", onClick: reset, children: resetButton?.text }) })) : null] }));
3498
- const renderFormItem = (field) => ([key, item]) => {
3499
- const type = item?.type;
3500
- switch (type) {
3501
- case 'array':
3502
- return renderCheckboxes(key, field)(item);
3503
- default:
3504
- return null;
3505
- }
3506
- };
3507
- const renderCheckboxes = (key, field) => (item) => {
3508
- const options = item?.items?.enum?.map((e, i) => ({ value: e, title: item?.items?.enumNames?.[i] || '' })) ||
3509
- [];
3510
- return (jsxs("div", { children: [item?.title ? (jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: !item?.single, ...field(key) })] }, key));
3515
+ const filterBlocks = (blocksWithProps, filtrationState) => (normalize = identity) => blocksWithProps
3516
+ ?.filter(([, content]) => targetMatchPattern(filtrationState, normalize(content) || {}))
3517
+ .map(([block]) => block);
3518
+
3519
+ const useFiltrationForm = (initialFormState, { block, page, normalize = identity, }) => {
3520
+ const blocks = block?.blocks || [];
3521
+ const [filtrationState, { field, reset, update: replaceFiltrationState }] = useForm(initialFormState);
3522
+ const blocksWithProps = useMemo(() => zip(blocks, blocks.map((b) => resolveBlockProps(b.content, page?.fallback))), [blocks, page?.fallback]);
3523
+ const blocksToRender = filtrationState === initialFormState
3524
+ ? blocks
3525
+ : filterBlocks(blocksWithProps, filtrationState)(normalize);
3526
+ return [
3527
+ filtrationState,
3528
+ { blocksToRender, blocksWithProps },
3529
+ { field, reset, update: replaceFiltrationState },
3530
+ ];
3511
3531
  };
3512
3532
 
3513
3533
  const isRateRow = (rateRow) => {
@@ -3516,37 +3536,6 @@
3516
3536
 
3517
3537
  const numberRange = (start, end) => Array.from({ length: end - start + 1 }, (_, i) => start + i);
3518
3538
 
3519
- const getPeriod = (source, content) => unique((source[content?.sourceBook]?.rateRows || [])
3520
- .filter(isRateRow)
3521
- .flatMap((_) => numberRange(_.minMonths, _.maxMonths)));
3522
-
3523
- const fetchMultitudeJSON = (...urls) => {
3524
- const fetchPromises = urls.map((url) => fetchJSON(url));
3525
- return Promise.all(fetchPromises);
3526
- };
3527
-
3528
- function zip(firstCol, ...restCols) {
3529
- return firstCol.map((firstEl, rowIndex) => [firstEl, ...restCols.map((col) => col[rowIndex])]);
3530
- }
3531
-
3532
- const getChildSourceBook = (blocks) => blocks?.filter(hasSourceBook).map(({ content: { sourceBook } }) => sourceBook);
3533
- const hasSourceBook = (block) => Boolean(block && block.content && typeof block.content.sourceBook === 'string');
3534
-
3535
- function useDepositsPeriods(blocks) {
3536
- const { dirs = [], source = [] } = useMemo(() => {
3537
- const sourceBooks = getChildSourceBook(blocks);
3538
- return { dirs: sourceBooks?.map((url) => `/wcms-resources/${url}.json`), source: sourceBooks };
3539
- }, [blocks]);
3540
- const { data = [] } = useAsyncData(dirs, fetchMultitudeJSON);
3541
- return {
3542
- source: Object.fromEntries(zip(source, data).filter(([, sourceData]) => Boolean(sourceData))),
3543
- months: unique(data
3544
- .flatMap((item) => item?.rateRows || [])
3545
- .filter(isRateRow)
3546
- .flatMap((_) => numberRange(_.minMonths, _.maxMonths))).sort((a, b) => a - b) || [],
3547
- };
3548
- }
3549
-
3550
3539
  const DEFAULT_MIN_SUM = 500;
3551
3540
  const DEFAULT_MAX_SUM = 1000000000;
3552
3541
  const initialFiltrationState$2 = {
@@ -3557,11 +3546,13 @@
3557
3546
  period: 3,
3558
3547
  };
3559
3548
  const DepositFiltration = UniBlock(({ className, filtrationSchema = {}, resetButton, sumInput, periodInput, ...rest }) => {
3560
- const { source, months } = useDepositsPeriods(rest.block?.blocks);
3561
- const [filtrationState, { field, reset }] = useForm(initialFiltrationState$2);
3562
- const blocksToRender = filtrationState === initialFiltrationState$2
3563
- ? rest.block?.blocks
3564
- : filterBlocks(rest.block?.blocks, filtrationState)((content) => ({ ...content, period: getPeriod(source, content || {}) || [] }));
3549
+ const [, { blocksToRender, blocksWithProps }, { field, reset }] = useFiltrationForm(initialFiltrationState$2, {
3550
+ block: rest.block,
3551
+ page: rest.options?.page,
3552
+ normalize: (content) => ({ ...content, period: getPeriod(content) }),
3553
+ });
3554
+ const rateRows = blocksWithProps.map(([, _]) => _?.paramsSource?.rateRows);
3555
+ const months = getMonths(rateRows);
3565
3556
  const Inputs = (jsxs("div", { children: [jsx(CurrencyInput, { label: sumInput?.title, min: DEFAULT_MIN_SUM, max: DEFAULT_MAX_SUM, ...field('sum', {
3566
3557
  parse: (min) => ({ min: Number(min), max: DEFAULT_MAX_SUM }),
3567
3558
  format: ({ min }) => String(min),
@@ -3571,12 +3562,19 @@
3571
3562
  childrenTypes: ['ProductBlock'],
3572
3563
  childSchema: (content) => ({
3573
3564
  ...(content?.filtrationSchema || {}),
3574
- sourceBook: {
3575
- type: 'string',
3565
+ paramsSource: {
3566
+ type: 'object',
3576
3567
  title: 'Адрес справочника',
3577
3568
  },
3578
3569
  }),
3579
3570
  });
3571
+ const getPeriod = (content) => unique((content?.paramsSource?.rateRows || [])
3572
+ .filter(isRateRow)
3573
+ .flatMap((_) => numberRange(_.minMonths, _.maxMonths)));
3574
+ const getMonths = (rateRows) => unique(rateRows
3575
+ .flatMap((item) => item || [])
3576
+ .filter(isRateRow)
3577
+ .flatMap((_) => numberRange(_.minMonths, _.maxMonths))).sort((a, b) => a - b) || [];
3580
3578
 
3581
3579
  const DEFAULT_OPTIONS = [{ key: '10' }, { key: '50' }, { key: '100' }];
3582
3580
  const PageSizeSelector = ({ itemCount, onItemCountChange }) => {
@@ -4729,11 +4727,11 @@
4729
4727
  stage: [],
4730
4728
  };
4731
4729
  const MortgageFiltration = UniBlock(({ className, hotFilters, filtrationSchema = {}, resetButton, ...rest }) => {
4732
- const [filtrationState, { field, reset, update: replaceFiltrationState }] = useForm(initialFiltrationState);
4733
- const blocksToRender = filtrationState === initialFiltrationState
4734
- ? rest.block?.blocks
4735
- : filterBlocks(rest.block?.blocks, filtrationState)();
4736
- const handleFiltrationStateChange = useCallback((_ = initialFiltrationState) => replaceFiltrationState(_), []);
4730
+ const [filtrationState, { blocksToRender }, { field, reset, update }] = useFiltrationForm(initialFiltrationState, {
4731
+ block: rest.block,
4732
+ page: rest.options?.page,
4733
+ });
4734
+ const handleFiltrationStateChange = useCallback((_ = initialFiltrationState) => update(_), []);
4737
4735
  const tabsControlProps = useHotFilters({
4738
4736
  hotFilters,
4739
4737
  filtrationState,
@@ -6074,7 +6072,7 @@
6074
6072
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
6075
6073
  });
6076
6074
 
6077
- const packageVersion = "0.14.196";
6075
+ const packageVersion = "0.14.198";
6078
6076
 
6079
6077
  exports.Blocks = Blocks;
6080
6078
  exports.ContentPage = ContentPage;