stone-kit 0.0.1074 → 0.0.1075

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 (58) hide show
  1. package/README.md +88 -88
  2. package/dist/FilterWithSave-DfzlSC-v.js +2718 -0
  3. package/dist/components/CheckBoxNew/CheckBoxNew.js +5 -5
  4. package/dist/components/CommercialLotCard/CommercialLotCard.d.ts +1 -1
  5. package/dist/components/CommercialLotCard/CommercialLotCard.js +10 -81
  6. package/dist/components/CommercialLotCard/components/PaymentLink/PaymentLink.js +4 -4
  7. package/dist/components/CommercialLotCard/components/Snippets/Snippets.js +27 -98
  8. package/dist/components/CommercialLotCard/components/Tags/Tags.js +1 -1
  9. package/dist/components/CommercialLotCard/types/CommercialLotCard.types.d.ts +2 -0
  10. package/dist/components/FilterWithSave/hooks/useFilterWithSave.js +26 -54
  11. package/dist/components/FilterWithSave/ui/FilterWithSave.js +7 -323
  12. package/dist/components/FormModal/ui/ModalForm.js +29 -1516
  13. package/dist/components/Icons/TooltipIcon.d.ts +2 -0
  14. package/dist/components/Icons/TooltipIcon.js +29 -0
  15. package/dist/components/Logo/ui/Logo.js +6 -6
  16. package/dist/components/LotCard/hooks/useLotCard.js +24 -6
  17. package/dist/components/LotCard/index.js +2 -2
  18. package/dist/components/LotCard/ui/LotCard.d.ts +1 -1
  19. package/dist/components/LotCard/ui/LotCard.js +12 -240
  20. package/dist/components/LotCard/ui/LotCard.types.d.ts +2 -0
  21. package/dist/components/ModalSuccess/ModalSuccess.js +1 -1
  22. package/dist/components/RoundButton/ui/RoundButton.js +1 -1
  23. package/dist/components/Select/ui/Category.js +2 -2
  24. package/dist/components/Select/ui/Option.js +2 -2
  25. package/dist/components/Select/ui/Select.js +2 -2
  26. package/dist/components/SliderNavigation/ui/SliderNavigation.js +6 -6
  27. package/dist/components/SortSelect/index.js +1 -1
  28. package/dist/components/SortSelect/ui/SortSelect.js +26 -108
  29. package/dist/components/SummarySelect/ui/SummarySelect.js +1 -1
  30. package/dist/components/TabSelect/ui/TabSelect.js +4 -4
  31. package/dist/components/TabSwitcher/index.js +2 -2
  32. package/dist/components/TabSwitcher/ui/TabSwitcher.js +26 -121
  33. package/dist/components/Tooltip/Tooltip.d.ts +11 -0
  34. package/dist/components/Tooltip/Tooltip.js +1945 -0
  35. package/dist/layout/components/Header/Header.js +65 -44
  36. package/dist/layout/components/Menu.js +37 -15
  37. package/dist/main.js +65 -70
  38. package/dist/pages/ButtonsPage/Buttons.js +61 -44
  39. package/dist/pages/FormsPage/FormsPage.js +42 -22
  40. package/dist/pages/IconsPage/IconsPage.js +31 -9
  41. package/dist/pages/InputPage/InputPage.js +32 -10
  42. package/dist/pages/LogoPage/LogoPage.js +36 -13
  43. package/dist/pages/LotsPage/LotsPage.js +24 -24
  44. package/dist/pages/ModalsPage/ModalPage.js +66 -46
  45. package/dist/pages/SelectPage/SelectPage.js +40 -41
  46. package/dist/pages/TabsPage/TabsPage.js +1 -1
  47. package/dist/pages/TagsPage/TagsPage.js +44 -23
  48. package/dist/stone-kit.css +1 -1
  49. package/dist/stories/entities/CommercialLotCard/CommercialLotCard.stories.js +1 -1
  50. package/dist/stories/shared/ui/Button/Button.stories.js +4 -4
  51. package/dist/stories/shared/ui/FilterWithSave/FilterWithSave.stories.js +1 -1
  52. package/dist/stories/shared/ui/FormModal/FormModal.stories.js +7 -7
  53. package/dist/stories/shared/ui/SortSelect/SortSelect.stories.js +1 -1
  54. package/dist/stories/shared/ui/TabSwitcher/TabSwitcher.stories.js +1 -1
  55. package/dist/stories/shared/ui/Tag/Tag.stories.js +4 -4
  56. package/package.json +2 -1
  57. package/dist/useLotCard-D-gK4J_o.js +0 -186
  58. package/dist/{Option-DmDx_xOt.js → Option-DdjBe9yb.js} +1 -1
@@ -0,0 +1,2718 @@
1
+ import { jsx as o, jsxs as x, Fragment as it } from "react/jsx-runtime";
2
+ import { NewIcon as Ne } from "./components/NewIcon/ui/NewIcon.js";
3
+ import { Modal as ct } from "./components/Modal/ui/Modal.js";
4
+ import { Text as dt } from "./components/Text/ui/Text.js";
5
+ import { c as Be, g as or } from "./index-YnD2EP-S.js";
6
+ import { Button as Ae } from "./components/Button/ui/Button.js";
7
+ import "./components/mobileButton/ui/MobileButton.js";
8
+ import "./components/DestinationTab/ui/DestinationTab.js";
9
+ import "./components/RoundButton/ui/RoundButton.js";
10
+ import { Tag as Re } from "./components/Tag/ui/Tag.js";
11
+ import "./components/Switcher/ui/Switcher.js";
12
+ import { Flex as cr } from "./components/Flex/ui/Flex.js";
13
+ import { Input as tt } from "./components/Input/ui/Input.js";
14
+ import _, { useState as Te, useRef as Dt, useEffect as _e } from "react";
15
+ import "react-dom";
16
+ import "./components/GroupedInput/ui/GroupedInputs.js";
17
+ import "./components/MetroTag/ui/MetroTag.js";
18
+ import { checkLargeOffice as dr } from "./shared/checkLargeOffice.js";
19
+ import { sclMillion as Ft } from "./shared/mlnRound.js";
20
+ import { Tooltip as nt } from "./components/Tooltip/Tooltip.js";
21
+ import "./components/Select/ui/Select.js";
22
+ import { useClientWidth as je } from "./shared/useClientWidth.js";
23
+ import { s as ue, u as ur } from "./useSortSelect-IeonkD5d.js";
24
+ import "./components/SliderNavigation/ui/SliderNavigation.js";
25
+ import "./components/LotCardSkeleton/ui/LotCardSkeleton.js";
26
+ import "./components/TabSelect/ui/TabSelect.js";
27
+ import { nameReg as fr, phoneReg as pr, emailReg as mr } from "./components/FormModal/utils/reg.js";
28
+ import { CheckBox as wt } from "./components/CheckBox/CheckBox.js";
29
+ import { TextArea as hr } from "./components/TextArea/TextArea.js";
30
+ import { fmtNumber as yr } from "./shared/fmtNumber.js";
31
+ import { Price as vr } from "./components/CommercialLotCard/components/Price/Price.js";
32
+ import { O as Ct } from "./Option-DdjBe9yb.js";
33
+ import "./components/CheckBoxNew/CheckBoxNew.js";
34
+ import "./components/CheckboxSelect/ui/CheckboxSelect.js";
35
+ import { getTagsFeatures as br } from "./components/CommercialLotCard/utils/getTagsFeatures.js";
36
+ import { Tags as Tt } from "./components/CommercialLotCard/components/Tags/Tags.js";
37
+ import { FavoriteIcon as zt } from "./components/FavoriteIcon/FavoriteIcon.js";
38
+ import { PaymentLink as gr } from "./components/CommercialLotCard/components/PaymentLink/PaymentLink.js";
39
+ import { getTagsFeatures as Sr } from "./components/LotCard/utils/getTagsFeatures.js";
40
+ import { checkBedroomsCount as xr } from "./components/LotCard/utils/checkBedroomsCount.js";
41
+ import { formatPayment as Nr } from "./components/LotCard/utils/monthlyPayment.js";
42
+ import { formatPrice as Ee } from "./components/LotCard/utils/formatPrice.js";
43
+ const kr = "_root_1qhai_1", Fr = "_text_1qhai_18", wr = "_textMini_1qhai_26", Cr = "_rootCol_1qhai_32", Tr = "_item_1qhai_38", Ar = "_whiteRow_1qhai_57", Pr = "_firstItem_1qhai_68", Br = "_lastItem_1qhai_72", Ir = "_whiteRowGrayLabel_1qhai_103", Wr = "_labelItem_1qhai_118", Lr = "_outlined_1qhai_147", Vr = "_apart_1qhai_204", _r = "_isLong_1qhai_204", jr = "_autoWidth_1qhai_219", Or = "_mini_1qhai_233", Rr = "_isDisabled_1qhai_241", Er = "_grayRow_1qhai_265", ee = {
44
+ root: kr,
45
+ text: Fr,
46
+ textMini: wr,
47
+ rootCol: Cr,
48
+ item: Tr,
49
+ whiteRow: Ar,
50
+ firstItem: Pr,
51
+ lastItem: Br,
52
+ whiteRowGrayLabel: Ir,
53
+ labelItem: Wr,
54
+ outlined: Lr,
55
+ apart: Vr,
56
+ isLong: _r,
57
+ autoWidth: jr,
58
+ mini: Or,
59
+ isDisabled: Rr,
60
+ grayRow: Er,
61
+ "tiny-size": "_tiny-size_1qhai_293",
62
+ "small-size": "_small-size_1qhai_298",
63
+ "medium-size": "_medium-size_1qhai_303",
64
+ "large-size": "_large-size_1qhai_308",
65
+ "text-tiny-size": "_text-tiny-size_1qhai_313",
66
+ "text-small-size": "_text-small-size_1qhai_319",
67
+ "text-medium-size": "_text-medium-size_1qhai_324",
68
+ "text-large-size": "_text-large-size_1qhai_329",
69
+ "small-size_m": "_small-size_m_1qhai_335",
70
+ "medium-size_m": "_medium-size_m_1qhai_339",
71
+ "large-size_m": "_large-size_m_1qhai_343",
72
+ "text-small-size_m": "_text-small-size_m_1qhai_347",
73
+ "text-medium-size_m": "_text-medium-size_m_1qhai_351",
74
+ "text-large-size_m": "_text-large-size_m_1qhai_355",
75
+ "small-size_l": "_small-size_l_1qhai_370",
76
+ "medium-size_l": "_medium-size_l_1qhai_374",
77
+ "large-size_l": "_large-size_l_1qhai_378",
78
+ "text-small-size_l": "_text-small-size_l_1qhai_382",
79
+ "text-medium-size_l": "_text-medium-size_l_1qhai_386",
80
+ "text-large-size_l": "_text-large-size_l_1qhai_390"
81
+ }, Ge = Be.bind(ee), Mr = ({
82
+ children: e,
83
+ variant: r = "whiteRow",
84
+ isApart: t = !1,
85
+ addClassName: i = "",
86
+ col: l = !1
87
+ }) => /* @__PURE__ */ o("div", { className: Ge(ee.root, ee[r], { [ee.rootCol]: l, [ee.apart]: t }, i), children: e }), qt = (e) => {
88
+ const { isTablet: r, isDesktop: t } = je(), {
89
+ index: i,
90
+ children: l,
91
+ addItemClassName: n,
92
+ addLabelClassname: d,
93
+ addTextClass: u,
94
+ size_s: W = "large",
95
+ size_m: A,
96
+ size_l: h,
97
+ disabled: S = !1,
98
+ itemsLength: y = 0,
99
+ isLongOn: P = !0,
100
+ width: L,
101
+ width_m: C,
102
+ width_l: w,
103
+ mini: R = !1,
104
+ dataTestId: b,
105
+ ref: k,
106
+ ...B
107
+ } = e, g = (l?.toString().length ? l?.toString().length > 2 : !1) && P, D = (z, O) => z && C ? C : O && w ? w : L, U = !L && !C && !w && g;
108
+ return /* @__PURE__ */ x("label", { className: Ge(ee.labelItem, { [ee.isLong]: g }, d), children: [
109
+ /* @__PURE__ */ o(
110
+ "input",
111
+ {
112
+ ref: k,
113
+ type: "checkbox",
114
+ ...B,
115
+ disabled: S
116
+ }
117
+ ),
118
+ /* @__PURE__ */ o(
119
+ "div",
120
+ {
121
+ style: { width: D(r, t) },
122
+ "data-testid": b,
123
+ className: Ge(
124
+ ee.item,
125
+ {
126
+ [ee.firstItem]: i === 0,
127
+ [ee.lastItem]: i === y - 1,
128
+ [ee.isDisabled]: S,
129
+ [ee.autoWidth]: U,
130
+ [ee.mini]: R
131
+ },
132
+ ee[`${W}-size`],
133
+ ee[`${A}-size_m`],
134
+ ee[`${h}-size_l`],
135
+ n
136
+ ),
137
+ children: /* @__PURE__ */ o(
138
+ dt,
139
+ {
140
+ className: Ge(
141
+ ee.text,
142
+ ee[`text-${W}-size`],
143
+ ee[`text-${A}-size_m`],
144
+ ee[`text-${h}-size_l`],
145
+ { [ee.textMini]: R },
146
+ u
147
+ ),
148
+ children: l
149
+ }
150
+ )
151
+ }
152
+ )
153
+ ] });
154
+ };
155
+ qt.displayName = "TabSwitcherItem";
156
+ const Ue = Object.assign(Mr, {
157
+ Item: qt
158
+ }), Dr = "_root_1jhvy_1", zr = "_lotBtn_1jhvy_12", qr = "_rootDisable_1jhvy_26", Xr = "_lotImageWrapper_1jhvy_26", Ur = "_lotInfoWrapper_1jhvy_27", Zr = "_infoHeader_1jhvy_48", Gr = "_monthlyWrapper_1jhvy_57", Hr = "_price_1jhvy_67", Jr = "_monthlyPayment_1jhvy_74", Yr = "_decor_1jhvy_80", Kr = "_lotPropertyListMobile_1jhvy_87", Qr = "_lotPropertyItem_1jhvy_95", $r = "_lotPropertyListDesktop_1jhvy_112", es = "_lotPriceWrapper_1jhvy_116", ts = "_discountWrapper_1jhvy_122", rs = "_discountPrice_1jhvy_133", ss = "_priceWrap_1jhvy_145", is = "_snippetLast_1jhvy_155", ns = "_snippet_1jhvy_155", as = "_tagsMobile_1jhvy_170", ls = "_discountTag_1jhvy_185", os = "_lotPricePerMetr_1jhvy_189", cs = "_btnWrapper_1jhvy_194", ds = "_title_1jhvy_201", us = "_snippets_1jhvy_205", fs = "_retailSnippets_1jhvy_210", ps = "_shownSnippets_1jhvy_215", ms = "_addSnippets_1jhvy_240", hs = "_addSnippetsActive_1jhvy_256", ys = "_addSnippetsList_1jhvy_261", vs = "_closeSnippetBtn_1jhvy_305", bs = "_rootRow_1jhvy_317", gs = "_rowTablet_1jhvy_328", Ss = "_rootRightSide_1jhvy_369", xs = "_topWrapper_1jhvy_385", Ns = "_botWrapper_1jhvy_390", ks = "_lotPriceWrapperRow_1jhvy_421", Fs = "_fullscreenBtn_1jhvy_431", ws = "_projectLotPricePerMetr_1jhvy_450", Cs = "_paymentClass_1jhvy_490", Ts = "_priceBlock_1jhvy_497", As = "_dkpbn_1jhvy_504", Ps = "_dkpbnText_1jhvy_510", N = {
159
+ root: Dr,
160
+ lotBtn: zr,
161
+ rootDisable: qr,
162
+ lotImageWrapper: Xr,
163
+ lotInfoWrapper: Ur,
164
+ infoHeader: Zr,
165
+ monthlyWrapper: Gr,
166
+ price: Hr,
167
+ monthlyPayment: Jr,
168
+ decor: Yr,
169
+ lotPropertyListMobile: Kr,
170
+ lotPropertyItem: Qr,
171
+ lotPropertyListDesktop: $r,
172
+ lotPriceWrapper: es,
173
+ discountWrapper: ts,
174
+ discountPrice: rs,
175
+ priceWrap: ss,
176
+ snippetLast: is,
177
+ snippet: ns,
178
+ tagsMobile: as,
179
+ discountTag: ls,
180
+ lotPricePerMetr: os,
181
+ btnWrapper: cs,
182
+ title: ds,
183
+ snippets: us,
184
+ retailSnippets: fs,
185
+ shownSnippets: ps,
186
+ addSnippets: ms,
187
+ addSnippetsActive: hs,
188
+ addSnippetsList: ys,
189
+ closeSnippetBtn: vs,
190
+ rootRow: bs,
191
+ rowTablet: gs,
192
+ rootRightSide: Ss,
193
+ topWrapper: xs,
194
+ botWrapper: Ns,
195
+ lotPriceWrapperRow: ks,
196
+ fullscreenBtn: Fs,
197
+ projectLotPricePerMetr: ws,
198
+ paymentClass: Cs,
199
+ priceBlock: Ts,
200
+ dkpbn: As,
201
+ dkpbnText: Ps
202
+ }, We = Be.bind(N), Bs = ({ lot: e, rowConditions: r }) => {
203
+ const {
204
+ status: t,
205
+ direction: i,
206
+ area: l,
207
+ floor: n,
208
+ endFloor: d,
209
+ floorsNumber: u,
210
+ type: W,
211
+ isCorner: A,
212
+ windowViews: h,
213
+ subTypeName: S,
214
+ number: y,
215
+ bedroomsCount: P,
216
+ mortgageMonthlyPayment: L
217
+ } = e, [C, w] = Te(!1), R = t === 2, b = i === 1, k = W === 11, B = l ? l + " м²" : "", g = n && u ? (d && d !== n ? n + "-" + d : n) + " из " + u : "", D = Sr({ ...e }), { isTablet: U, isDesktop: z, isMobile: O, currentClientWidth: K } = je(), j = typeof r < "u" ? r : z || U, I = () => k ? u ? "Кол-во этажей: " + u : "" : g ? "Этаж: " + g : "", F = () => k ? u ? /* @__PURE__ */ x("li", { className: We(N.lotPropertyItem), children: [
218
+ /* @__PURE__ */ o("div", { children: "Количество этажей" }),
219
+ /* @__PURE__ */ o("div", { children: u })
220
+ ] }) : null : g ? /* @__PURE__ */ x("li", { className: We(N.lotPropertyItem), children: [
221
+ /* @__PURE__ */ o("div", { children: "Этаж" }),
222
+ /* @__PURE__ */ o("div", { children: g })
223
+ ] }) : null, E = () => {
224
+ if (W === 3) {
225
+ if (O && (!h || h.length === 0))
226
+ return null;
227
+ let q = 0;
228
+ const V = z ? 36 : 28, G = [], oe = [];
229
+ if (A) {
230
+ const Y = "Угловая";
231
+ if (q + Y.length <= V)
232
+ G.push(Y), q += Y.length;
233
+ else
234
+ return G;
235
+ }
236
+ if (h) {
237
+ const Y = h.filter((ce) => ce && ce.trim() !== "");
238
+ let ne = 0, me = q;
239
+ for (let ce = 0; ce < Y.length; ce++) {
240
+ const ke = Y[ce], Fe = ne > 0 ? " " + ke : ke;
241
+ if (me + Fe.length <= V)
242
+ G.push(ke), me += Fe.length, ne++;
243
+ else {
244
+ if (ne === 0) {
245
+ const $ = V - me;
246
+ if ($ > 3) {
247
+ const ae = ke.substring(0, $ - 3) + "...";
248
+ G.push(ae), me = V;
249
+ } else
250
+ G.push("..."), me += 3;
251
+ }
252
+ oe.push(...Y.slice(ce));
253
+ break;
254
+ }
255
+ }
256
+ q = me;
257
+ }
258
+ return /* @__PURE__ */ x("div", { className: N.retailSnippets, children: [
259
+ /* @__PURE__ */ o("ul", { className: N.shownSnippets, children: G?.map((Y, ne) => /* @__PURE__ */ o("li", { children: Y }, ne)) }),
260
+ oe?.length > 0 && /* @__PURE__ */ x(
261
+ "div",
262
+ {
263
+ className: We(N.addSnippets, { [N.addSnippetsActive]: C }),
264
+ onClick: (Y) => {
265
+ z || (Y.stopPropagation(), Y.preventDefault(), w((ne) => !ne));
266
+ },
267
+ onMouseEnter: () => {
268
+ z && w(!0);
269
+ },
270
+ onMouseLeave: () => {
271
+ z && w(!1);
272
+ },
273
+ children: [
274
+ "+" + oe?.length,
275
+ C && /* @__PURE__ */ x("ul", { className: N.addSnippetsList, children: [
276
+ oe.map((Y, ne) => /* @__PURE__ */ o("li", { children: Y }, ne)),
277
+ /* @__PURE__ */ o("div", { className: N.closeSnippetBtn, children: /* @__PURE__ */ o(
278
+ Ne,
279
+ {
280
+ name: "close",
281
+ size: "16",
282
+ color: "#ffffff"
283
+ }
284
+ ) })
285
+ ] })
286
+ ]
287
+ }
288
+ )
289
+ ] });
290
+ }
291
+ return D.length ? /* @__PURE__ */ o("div", { className: N.snippets, children: D.map((q, V) => {
292
+ const G = V === D.length - 1;
293
+ return /* @__PURE__ */ o(
294
+ "div",
295
+ {
296
+ className: We(N.snippet, G ? "" : N.snippetLast),
297
+ children: q.text
298
+ },
299
+ V
300
+ );
301
+ }) }) : null;
302
+ };
303
+ return {
304
+ currentClientWidth: K,
305
+ isBuilding: k,
306
+ LotCardInfo: () => {
307
+ const q = b && W && S ? S : xr(P), V = k ? q : `${q}${y ? `, ${y}` : ""}`;
308
+ return /* @__PURE__ */ o(it, { children: /* @__PURE__ */ x("div", { className: We(N.monthlyWrapper), children: [
309
+ V && /* @__PURE__ */ o(
310
+ dt,
311
+ {
312
+ className: We(N.infoHeader),
313
+ html: V
314
+ }
315
+ ),
316
+ L && /* @__PURE__ */ o("div", { className: N.monthlyPayment, children: Nr(L) }),
317
+ /* @__PURE__ */ o(E, {})
318
+ ] }) });
319
+ },
320
+ tagFeatures: D,
321
+ FloorByType: F,
322
+ isTablet: U,
323
+ isDesktop: z,
324
+ getFloorStr: I,
325
+ isReserved: R,
326
+ isMobile: O,
327
+ areaStr: B,
328
+ floorStr: g,
329
+ isShowSnippet: C,
330
+ setIsShowSnippet: w,
331
+ rowConditionsVar: j
332
+ };
333
+ }, Is = "data:image/webp;base64,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", de = Be.bind(N), ea = ({
334
+ lot: e,
335
+ hidFinParam: r = !1,
336
+ isDkpbn: t = !1,
337
+ handleBtnForm: i,
338
+ handleFullScreenBtn: l,
339
+ btnDisabled: n,
340
+ addClassname: d,
341
+ btnName: u = "Уточнить детали",
342
+ imgNode: W,
343
+ rowConditions: A,
344
+ addClassnameLotImage: h,
345
+ isFavorite: S,
346
+ favoriteClickHandler: y
347
+ }) => {
348
+ const {
349
+ housing: P,
350
+ sellingPricePerMeter: L,
351
+ interiorPlanImg: C,
352
+ direction: w,
353
+ floorPlanImg: R,
354
+ discount: b,
355
+ sellingPrice: k,
356
+ sellingPriceBeforeDiscount: B
357
+ } = e, g = !!e.project?.showPriceSubType?.some(($) => Number($.filter) === e.subType), D = g && Number(e.sellingPrice) && e.bestPurchasingConditions, U = !g && e.bestPurchasingConditions && Number(e.sellingPrice), z = () => {
358
+ if (U)
359
+ return {
360
+ notMobileText: `Первоначальный взнос ${e.bestPurchasingConditions} %`,
361
+ mobileText: `${e.bestPurchasingConditions} %`
362
+ };
363
+ if (e.hasBestPurchasingConditions)
364
+ return {
365
+ notMobileText: "Рассрочка 0% на весь срок",
366
+ mobileText: "0% на весь срок"
367
+ };
368
+ if (D && e.bestPurchasingConditions) {
369
+ const $ = e.bestPurchasingConditions * 0.01 * Number(e.sellingPrice);
370
+ return {
371
+ notMobileText: `Первоначальный взнос ${Ft($)} млн ₽`,
372
+ mobileText: `${Ft($)} млн ₽`
373
+ };
374
+ }
375
+ return {
376
+ notMobileText: null,
377
+ mobileText: null
378
+ };
379
+ }, K = U ? "Первоначальный взнос" : e.hasBestPurchasingConditions ? "Рассрочка" : D ? "Первоначальный взнос" : "", { notMobileText: j, mobileText: I } = z(), F = dr(e), {
380
+ getFloorStr: E,
381
+ FloorByType: M,
382
+ areaStr: q,
383
+ isReserved: V,
384
+ rowConditionsVar: G,
385
+ currentClientWidth: oe,
386
+ isMobile: Y,
387
+ isBuilding: ne,
388
+ LotCardInfo: me
389
+ } = Bs({ lot: e, rowConditions: A });
390
+ if (!oe) return null;
391
+ const ce = () => /* @__PURE__ */ x("div", { className: de(N.lotImageWrapper, h), children: [
392
+ W || /* @__PURE__ */ o(
393
+ "img",
394
+ {
395
+ loading: "lazy",
396
+ src: C ?? R ?? Is,
397
+ width: 280,
398
+ height: 200,
399
+ alt: "logo_image"
400
+ }
401
+ ),
402
+ y && /* @__PURE__ */ o(
403
+ zt,
404
+ {
405
+ handleClickFavorite: ($) => {
406
+ y && y(e), $.preventDefault(), $.stopPropagation();
407
+ },
408
+ isFavorite: S
409
+ }
410
+ )
411
+ ] }), ke = () => /* @__PURE__ */ x("div", { className: de(N.btnWrapper), children: [
412
+ /* @__PURE__ */ o(
413
+ Ae,
414
+ {
415
+ as: "button",
416
+ "data-testid": "lot_fullscreen",
417
+ disabled: n,
418
+ variant: "whiteStroke",
419
+ additionalClass: N.fullscreenBtn,
420
+ onClick: ($) => {
421
+ $.preventDefault(), l && l();
422
+ },
423
+ children: /* @__PURE__ */ o(
424
+ Ne,
425
+ {
426
+ name: "fullscreen",
427
+ color: "#777E90",
428
+ size: "20"
429
+ }
430
+ )
431
+ }
432
+ ),
433
+ /* @__PURE__ */ o(
434
+ Ae,
435
+ {
436
+ as: "button",
437
+ size: "medium",
438
+ disabled: V,
439
+ variant: V ? "gray" : "blue",
440
+ width: "full",
441
+ additionalClass: N.lotBtn,
442
+ "data-testid": "lot_form",
443
+ post: V ? /* @__PURE__ */ o(
444
+ Ne,
445
+ {
446
+ name: "lock",
447
+ size: "24",
448
+ color: "#777E90"
449
+ }
450
+ ) : void 0,
451
+ onClick: ($) => {
452
+ $.preventDefault(), i($);
453
+ },
454
+ children: u
455
+ }
456
+ )
457
+ ] }), Fe = () => /* @__PURE__ */ x("div", { className: N.rootRightSide, children: [
458
+ /* @__PURE__ */ x("div", { className: N.topWrapper, children: [
459
+ G && /* @__PURE__ */ o(me, {}),
460
+ !r && !Y && !V && /* @__PURE__ */ x("div", { style: { display: "flex", alignItems: "flex-end", flexDirection: "column" }, children: [
461
+ /* @__PURE__ */ x("div", { className: N.priceWrap, children: [
462
+ !!b && /* @__PURE__ */ o("div", { className: N.discountWrapper, children: !F && b && k && B && G && /* @__PURE__ */ x("div", { className: de(N.discountPrice), children: [
463
+ /* @__PURE__ */ o("span", { children: g && Ee(
464
+ B ?? k,
465
+ !1,
466
+ w
467
+ ) }),
468
+ g && /* @__PURE__ */ o(
469
+ Re,
470
+ {
471
+ additionalClass: de(N.discountTag),
472
+ variant: "red",
473
+ size: "tiny",
474
+ children: "-" + Number(b) + "%"
475
+ }
476
+ )
477
+ ] }) }),
478
+ !F && G && /* @__PURE__ */ o("div", { className: N.price, children: g ? Ee(k, !1, w) : "Цена по запросу" }),
479
+ F && G && /* @__PURE__ */ o("div", { className: N.price, children: "Цена по запросу" })
480
+ ] }),
481
+ !F && /* @__PURE__ */ o("div", { className: N.paymentClass, children: j }),
482
+ t && /* @__PURE__ */ x("div", { className: N.dkpbn, children: [
483
+ /* @__PURE__ */ o("span", { className: N.dkpbnText, children: "Доступен возврат НДС" }),
484
+ /* @__PURE__ */ o(nt, { text: "Заключение договора купли-продажи будущей недвижимости (ДКПБН) дает право на возврат НДС" })
485
+ ] })
486
+ ] }),
487
+ !r && L && !V && /* @__PURE__ */ o("div", { className: de(N.lotPricePerMetr, N.projectLotPricePerMetr), children: Ee(L, !0, w) })
488
+ ] }),
489
+ /* @__PURE__ */ x("div", { className: N.botWrapper, children: [
490
+ /* @__PURE__ */ o(
491
+ "div",
492
+ {
493
+ className: de(N.lotPriceWrapper, N.infoWrapper, {
494
+ [N.lotPriceWrapperRow]: !G
495
+ }),
496
+ children: /* @__PURE__ */ x("div", { className: de(N.lotInfoWrapper), children: [
497
+ /* @__PURE__ */ x("div", { className: de(N.lotPropertyListDesktop), children: [
498
+ q && /* @__PURE__ */ o(
499
+ Re,
500
+ {
501
+ variant: "gray",
502
+ fontWeight: "large",
503
+ children: q
504
+ }
505
+ ),
506
+ !ne && P && /* @__PURE__ */ o(Re, { variant: "gray", children: P }),
507
+ E() && /* @__PURE__ */ o(Re, { variant: "gray", children: E() })
508
+ ] }),
509
+ /* @__PURE__ */ x("ul", { className: de(N.lotPropertyListMobile), children: [
510
+ q && /* @__PURE__ */ x("li", { className: de(N.lotPropertyItem), children: [
511
+ /* @__PURE__ */ o("div", { children: "Площадь" }),
512
+ /* @__PURE__ */ o("div", { children: q })
513
+ ] }),
514
+ !ne && P && /* @__PURE__ */ x("li", { className: de(N.lotPropertyItem), children: [
515
+ /* @__PURE__ */ o("div", { children: P?.split(" ")[0] }),
516
+ /* @__PURE__ */ o("div", { children: P?.split(" ")[1] })
517
+ ] }),
518
+ /* @__PURE__ */ o(M, {}),
519
+ !F && K && /* @__PURE__ */ x("li", { className: de(N.lotPropertyItem), children: [
520
+ /* @__PURE__ */ o("div", { children: K }),
521
+ /* @__PURE__ */ o("div", { children: I })
522
+ ] })
523
+ ] })
524
+ ] })
525
+ }
526
+ ),
527
+ !r && (Y && !V || !G) && /* @__PURE__ */ o("div", { style: { display: "flex", alignItems: "flex-start" }, children: /* @__PURE__ */ x("div", { className: N.priceWrap, children: [
528
+ /* @__PURE__ */ o("div", { className: N.discountWrapper, children: !F && !!b && !!k && !!B && /* @__PURE__ */ x("div", { className: de(N.discountPrice), children: [
529
+ g && /* @__PURE__ */ o("span", { children: Ee(
530
+ B ?? k,
531
+ !1,
532
+ w
533
+ ) }),
534
+ g && /* @__PURE__ */ o(
535
+ Re,
536
+ {
537
+ additionalClass: de(N.discountTag),
538
+ variant: "red",
539
+ size: "tiny",
540
+ children: "-" + Number(b) + "%"
541
+ }
542
+ )
543
+ ] }) }),
544
+ /* @__PURE__ */ x("div", { className: N.priceBlock, children: [
545
+ !F && /* @__PURE__ */ o("div", { className: N.price, children: g ? Ee(k, !1, w) : "Цена по запросу" }),
546
+ F && /* @__PURE__ */ o("div", { className: N.price, children: "Цена по запросу" }),
547
+ t && /* @__PURE__ */ x("div", { className: N.dkpbn, children: [
548
+ /* @__PURE__ */ o("span", { className: N.dkpbnText, children: "Доступен возврат НДС" }),
549
+ /* @__PURE__ */ o(nt, { text: "Заключение договора купли-продажи будущей недвижимости (ДКПБН) дает право на возврат НДС" })
550
+ ] })
551
+ ] })
552
+ ] }) }),
553
+ /* @__PURE__ */ o(ke, {})
554
+ ] })
555
+ ] });
556
+ return /* @__PURE__ */ x(
557
+ "div",
558
+ {
559
+ className: de(N.root, d, {
560
+ [N.rootDisable]: V,
561
+ [N.rootRow]: G,
562
+ [N.rowTablet]: !G
563
+ }),
564
+ "data-testid": "lot_card",
565
+ children: [
566
+ /* @__PURE__ */ o(ce, {}),
567
+ !G && /* @__PURE__ */ o("div", { className: de(N.title), children: /* @__PURE__ */ o(me, {}) }),
568
+ /* @__PURE__ */ o(Fe, {})
569
+ ]
570
+ }
571
+ );
572
+ }, Ze = Be.bind(ue), Ws = ({
573
+ options: e,
574
+ selectedOption: r,
575
+ placeholder: t = "",
576
+ error: i,
577
+ disabled: l,
578
+ additionalClass: n = "",
579
+ onChange: d,
580
+ onBlur: u,
581
+ mini: W,
582
+ openOnTop: A = !1,
583
+ onClickItem: h,
584
+ onCLickSelect: S,
585
+ onOpenClick: y
586
+ }) => {
587
+ const [P, L] = Te(!1), C = Dt(null), { isMobile: w } = je(), { handleBlur: R, getInputValue: b, getOption: k, handleDocumentClick: B } = ur({
588
+ selectedOption: r,
589
+ onClickOption: h,
590
+ setSelectedOption: d,
591
+ setIsOpen: L,
592
+ containerRef: C,
593
+ isMobile: w,
594
+ placeholder: t,
595
+ onChange: d,
596
+ onBlur: u
597
+ });
598
+ return _e(() => (document.addEventListener("click", B), () => {
599
+ document.removeEventListener("click", B);
600
+ }), []), /* @__PURE__ */ x(
601
+ "div",
602
+ {
603
+ ref: C,
604
+ className: Ze(
605
+ ue.sortSelectWrapper,
606
+ { [ue.sortSelectWrapperError]: i },
607
+ { [ue.sortSelectWrapperTop]: A },
608
+ n
609
+ ),
610
+ tabIndex: 0,
611
+ onBlur: R,
612
+ onClick: () => {
613
+ S && S();
614
+ },
615
+ children: [
616
+ /* @__PURE__ */ x("div", { className: Ze(ue.inputWrapper), children: [
617
+ /* @__PURE__ */ o(
618
+ "input",
619
+ {
620
+ type: "text",
621
+ readOnly: !0,
622
+ value: b(),
623
+ className: Ze(
624
+ ue.selectedOptions,
625
+ { [ue.selectOptionsDisabled]: l },
626
+ { [ue.selectionOptionMini]: W }
627
+ ),
628
+ onClick: () => {
629
+ P || y && y(), L(!P);
630
+ }
631
+ }
632
+ ),
633
+ /* @__PURE__ */ o(
634
+ Ne,
635
+ {
636
+ name: "twoArrows",
637
+ size: "24",
638
+ additionalClass: ue.icon
639
+ }
640
+ )
641
+ ] }),
642
+ P && w && /* @__PURE__ */ x(
643
+ ct,
644
+ {
645
+ isOpen: P,
646
+ emitIsOpen: L,
647
+ additionalClassModalBody: ue.modalAddBody,
648
+ additionalClass: ue.selectModal,
649
+ createPortalObj: { domNode: document.querySelector("body") },
650
+ isTransparentBack: !0,
651
+ children: [
652
+ /* @__PURE__ */ x("div", { className: ue.mobileSortHeader, children: [
653
+ /* @__PURE__ */ o(dt, { children: "Сортировка" }),
654
+ /* @__PURE__ */ o("div", { onClick: () => L(!1), children: /* @__PURE__ */ o(
655
+ Ne,
656
+ {
657
+ name: "close",
658
+ size: "20"
659
+ }
660
+ ) })
661
+ ] }),
662
+ /* @__PURE__ */ o("div", { className: ue.mobileOptionList, children: e?.map((g) => k(g)) })
663
+ ]
664
+ }
665
+ ),
666
+ P && !w && /* @__PURE__ */ o("div", { className: Ze(ue.optionsList, { [ue.optionListOnTop]: A }), children: e?.map((g) => k(g)) })
667
+ ]
668
+ }
669
+ );
670
+ };
671
+ Ws.displayName = "SortSelect";
672
+ const Ls = "_btn_ky28a_1", Vs = "_modal_ky28a_9", _s = "_modalBody_ky28a_16", js = "_root_ky28a_21", Os = "_title_ky28a_34", Rs = "_description_ky28a_41", Es = "_inputWrapper_ky28a_48", Ms = "_linkPolicy_ky28a_55", Ds = "_telegramLink_ky28a_60", zs = "_telegramWrapper_ky28a_65", qs = "_telegram_ky28a_60", Xs = "_orText_ky28a_88", Us = "_checkboxText_ky28a_116", te = {
673
+ btn: Ls,
674
+ modal: Vs,
675
+ modalBody: _s,
676
+ root: js,
677
+ title: Os,
678
+ description: Rs,
679
+ inputWrapper: Es,
680
+ linkPolicy: Ms,
681
+ telegramLink: Ds,
682
+ telegramWrapper: zs,
683
+ telegram: qs,
684
+ orText: Xs,
685
+ checkboxText: Us
686
+ };
687
+ var qe = (e) => e.type === "checkbox", Pe = (e) => e instanceof Date, pe = (e) => e == null;
688
+ const Xt = (e) => typeof e == "object";
689
+ var se = (e) => !pe(e) && !Array.isArray(e) && Xt(e) && !Pe(e), Ut = (e) => se(e) && e.target ? qe(e.target) ? e.target.checked : e.target.value : e, Zs = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, Zt = (e, r) => e.has(Zs(r)), Gs = (e) => {
690
+ const r = e.constructor && e.constructor.prototype;
691
+ return se(r) && r.hasOwnProperty("isPrototypeOf");
692
+ }, ut = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
693
+ function ie(e) {
694
+ let r;
695
+ const t = Array.isArray(e), i = typeof FileList < "u" ? e instanceof FileList : !1;
696
+ if (e instanceof Date)
697
+ r = new Date(e);
698
+ else if (!(ut && (e instanceof Blob || i)) && (t || se(e)))
699
+ if (r = t ? [] : Object.create(Object.getPrototypeOf(e)), !t && !Gs(e))
700
+ r = e;
701
+ else
702
+ for (const l in e)
703
+ e.hasOwnProperty(l) && (r[l] = ie(e[l]));
704
+ else
705
+ return e;
706
+ return r;
707
+ }
708
+ var Ke = (e) => /^\w*$/.test(e), Q = (e) => e === void 0, ft = (e) => Array.isArray(e) ? e.filter(Boolean) : [], pt = (e) => ft(e.replace(/["|']|\]/g, "").split(/\.|\[/)), m = (e, r, t) => {
709
+ if (!r || !se(e))
710
+ return t;
711
+ const i = (Ke(r) ? [r] : pt(r)).reduce((l, n) => pe(l) ? l : l[n], e);
712
+ return Q(i) || i === e ? Q(e[r]) ? t : e[r] : i;
713
+ }, he = (e) => typeof e == "boolean", J = (e, r, t) => {
714
+ let i = -1;
715
+ const l = Ke(r) ? [r] : pt(r), n = l.length, d = n - 1;
716
+ for (; ++i < n; ) {
717
+ const u = l[i];
718
+ let W = t;
719
+ if (i !== d) {
720
+ const A = e[u];
721
+ W = se(A) || Array.isArray(A) ? A : isNaN(+l[i + 1]) ? {} : [];
722
+ }
723
+ if (u === "__proto__" || u === "constructor" || u === "prototype")
724
+ return;
725
+ e[u] = W, e = e[u];
726
+ }
727
+ };
728
+ const He = {
729
+ BLUR: "blur",
730
+ FOCUS_OUT: "focusout",
731
+ CHANGE: "change"
732
+ }, ge = {
733
+ onBlur: "onBlur",
734
+ onChange: "onChange",
735
+ onSubmit: "onSubmit",
736
+ onTouched: "onTouched",
737
+ all: "all"
738
+ }, we = {
739
+ max: "max",
740
+ min: "min",
741
+ maxLength: "maxLength",
742
+ minLength: "minLength",
743
+ pattern: "pattern",
744
+ required: "required",
745
+ validate: "validate"
746
+ }, Gt = _.createContext(null);
747
+ Gt.displayName = "HookFormContext";
748
+ const mt = () => _.useContext(Gt);
749
+ var Ht = (e, r, t, i = !0) => {
750
+ const l = {
751
+ defaultValues: r._defaultValues
752
+ };
753
+ for (const n in e)
754
+ Object.defineProperty(l, n, {
755
+ get: () => {
756
+ const d = n;
757
+ return r._proxyFormState[d] !== ge.all && (r._proxyFormState[d] = !i || ge.all), t && (t[d] = !0), e[d];
758
+ }
759
+ });
760
+ return l;
761
+ };
762
+ const ht = typeof window < "u" ? _.useLayoutEffect : _.useEffect;
763
+ function Hs(e) {
764
+ const r = mt(), { control: t = r.control, disabled: i, name: l, exact: n } = e || {}, [d, u] = _.useState(t._formState), W = _.useRef({
765
+ isDirty: !1,
766
+ isLoading: !1,
767
+ dirtyFields: !1,
768
+ touchedFields: !1,
769
+ validatingFields: !1,
770
+ isValidating: !1,
771
+ isValid: !1,
772
+ errors: !1
773
+ });
774
+ return ht(() => t._subscribe({
775
+ name: l,
776
+ formState: W.current,
777
+ exact: n,
778
+ callback: (A) => {
779
+ !i && u({
780
+ ...t._formState,
781
+ ...A
782
+ });
783
+ }
784
+ }), [l, i, n]), _.useEffect(() => {
785
+ W.current.isValid && t._setValid(!0);
786
+ }, [t]), _.useMemo(() => Ht(d, t, W.current, !1), [d, t]);
787
+ }
788
+ var ye = (e) => typeof e == "string", at = (e, r, t, i, l) => ye(e) ? (i && r.watch.add(e), m(t, e, l)) : Array.isArray(e) ? e.map((n) => (i && r.watch.add(n), m(t, n))) : (i && (r.watchAll = !0), t), lt = (e) => pe(e) || !Xt(e);
789
+ function Se(e, r, t = /* @__PURE__ */ new WeakSet()) {
790
+ if (lt(e) || lt(r))
791
+ return e === r;
792
+ if (Pe(e) && Pe(r))
793
+ return e.getTime() === r.getTime();
794
+ const i = Object.keys(e), l = Object.keys(r);
795
+ if (i.length !== l.length)
796
+ return !1;
797
+ if (t.has(e) || t.has(r))
798
+ return !0;
799
+ t.add(e), t.add(r);
800
+ for (const n of i) {
801
+ const d = e[n];
802
+ if (!l.includes(n))
803
+ return !1;
804
+ if (n !== "ref") {
805
+ const u = r[n];
806
+ if (Pe(d) && Pe(u) || se(d) && se(u) || Array.isArray(d) && Array.isArray(u) ? !Se(d, u, t) : d !== u)
807
+ return !1;
808
+ }
809
+ }
810
+ return !0;
811
+ }
812
+ function Js(e) {
813
+ const r = mt(), { control: t = r.control, name: i, defaultValue: l, disabled: n, exact: d, compute: u } = e || {}, W = _.useRef(l), A = _.useRef(u), h = _.useRef(void 0), S = _.useRef(t), y = _.useRef(i);
814
+ A.current = u;
815
+ const [P, L] = _.useState(() => {
816
+ const B = t._getWatch(i, W.current);
817
+ return A.current ? A.current(B) : B;
818
+ }), C = _.useCallback((B) => {
819
+ const g = at(i, t._names, B || t._formValues, !1, W.current);
820
+ return A.current ? A.current(g) : g;
821
+ }, [t._formValues, t._names, i]), w = _.useCallback((B) => {
822
+ if (!n) {
823
+ const g = at(i, t._names, B || t._formValues, !1, W.current);
824
+ if (A.current) {
825
+ const D = A.current(g);
826
+ Se(D, h.current) || (L(D), h.current = D);
827
+ } else
828
+ L(g);
829
+ }
830
+ }, [t._formValues, t._names, n, i]);
831
+ ht(() => ((S.current !== t || !Se(y.current, i)) && (S.current = t, y.current = i, w()), t._subscribe({
832
+ name: i,
833
+ formState: {
834
+ values: !0
835
+ },
836
+ exact: d,
837
+ callback: (B) => {
838
+ w(B.values);
839
+ }
840
+ })), [t, d, i, w]), _.useEffect(() => t._removeUnmounted());
841
+ const R = S.current !== t, b = y.current, k = _.useMemo(() => {
842
+ if (n)
843
+ return null;
844
+ const B = !R && !Se(b, i);
845
+ return R || B ? C() : null;
846
+ }, [n, R, i, b, C]);
847
+ return k !== null ? k : P;
848
+ }
849
+ function Ys(e) {
850
+ const r = mt(), { name: t, disabled: i, control: l = r.control, shouldUnregister: n, defaultValue: d } = e, u = Zt(l._names.array, t), W = _.useMemo(() => m(l._formValues, t, m(l._defaultValues, t, d)), [l, t, d]), A = Js({
851
+ control: l,
852
+ name: t,
853
+ defaultValue: W,
854
+ exact: !0
855
+ }), h = Hs({
856
+ control: l,
857
+ name: t,
858
+ exact: !0
859
+ }), S = _.useRef(e), y = _.useRef(void 0), P = _.useRef(l.register(t, {
860
+ ...e.rules,
861
+ value: A,
862
+ ...he(e.disabled) ? { disabled: e.disabled } : {}
863
+ }));
864
+ S.current = e;
865
+ const L = _.useMemo(() => Object.defineProperties({}, {
866
+ invalid: {
867
+ enumerable: !0,
868
+ get: () => !!m(h.errors, t)
869
+ },
870
+ isDirty: {
871
+ enumerable: !0,
872
+ get: () => !!m(h.dirtyFields, t)
873
+ },
874
+ isTouched: {
875
+ enumerable: !0,
876
+ get: () => !!m(h.touchedFields, t)
877
+ },
878
+ isValidating: {
879
+ enumerable: !0,
880
+ get: () => !!m(h.validatingFields, t)
881
+ },
882
+ error: {
883
+ enumerable: !0,
884
+ get: () => m(h.errors, t)
885
+ }
886
+ }), [h, t]), C = _.useCallback((k) => P.current.onChange({
887
+ target: {
888
+ value: Ut(k),
889
+ name: t
890
+ },
891
+ type: He.CHANGE
892
+ }), [t]), w = _.useCallback(() => P.current.onBlur({
893
+ target: {
894
+ value: m(l._formValues, t),
895
+ name: t
896
+ },
897
+ type: He.BLUR
898
+ }), [t, l._formValues]), R = _.useCallback((k) => {
899
+ const B = m(l._fields, t);
900
+ B && k && (B._f.ref = {
901
+ focus: () => k.focus && k.focus(),
902
+ select: () => k.select && k.select(),
903
+ setCustomValidity: (g) => k.setCustomValidity(g),
904
+ reportValidity: () => k.reportValidity()
905
+ });
906
+ }, [l._fields, t]), b = _.useMemo(() => ({
907
+ name: t,
908
+ value: A,
909
+ ...he(i) || h.disabled ? { disabled: h.disabled || i } : {},
910
+ onChange: C,
911
+ onBlur: w,
912
+ ref: R
913
+ }), [t, i, h.disabled, C, w, R, A]);
914
+ return _.useEffect(() => {
915
+ const k = l._options.shouldUnregister || n, B = y.current;
916
+ B && B !== t && !u && l.unregister(B), l.register(t, {
917
+ ...S.current.rules,
918
+ ...he(S.current.disabled) ? { disabled: S.current.disabled } : {}
919
+ });
920
+ const g = (D, U) => {
921
+ const z = m(l._fields, D);
922
+ z && z._f && (z._f.mount = U);
923
+ };
924
+ if (g(t, !0), k) {
925
+ const D = ie(m(l._options.defaultValues, t, S.current.defaultValue));
926
+ J(l._defaultValues, t, D), Q(m(l._formValues, t)) && J(l._formValues, t, D);
927
+ }
928
+ return !u && l.register(t), y.current = t, () => {
929
+ (u ? k && !l._state.action : k) ? l.unregister(t) : g(t, !1);
930
+ };
931
+ }, [t, l, u, n]), _.useEffect(() => {
932
+ l._setDisabledField({
933
+ disabled: i,
934
+ name: t
935
+ });
936
+ }, [i, t, l]), _.useMemo(() => ({
937
+ field: b,
938
+ formState: h,
939
+ fieldState: L
940
+ }), [b, h, L]);
941
+ }
942
+ const Ks = (e) => e.render(Ys(e));
943
+ var Qs = (e, r, t, i, l) => r ? {
944
+ ...t[e],
945
+ types: {
946
+ ...t[e] && t[e].types ? t[e].types : {},
947
+ [i]: l || !0
948
+ }
949
+ } : {}, De = (e) => Array.isArray(e) ? e : [e], At = () => {
950
+ let e = [];
951
+ return {
952
+ get observers() {
953
+ return e;
954
+ },
955
+ next: (l) => {
956
+ for (const n of e)
957
+ n.next && n.next(l);
958
+ },
959
+ subscribe: (l) => (e.push(l), {
960
+ unsubscribe: () => {
961
+ e = e.filter((n) => n !== l);
962
+ }
963
+ }),
964
+ unsubscribe: () => {
965
+ e = [];
966
+ }
967
+ };
968
+ };
969
+ function Jt(e, r) {
970
+ const t = {};
971
+ for (const i in e)
972
+ if (e.hasOwnProperty(i)) {
973
+ const l = e[i], n = r[i];
974
+ if (l && se(l) && n) {
975
+ const d = Jt(l, n);
976
+ se(d) && (t[i] = d);
977
+ } else e[i] && (t[i] = n);
978
+ }
979
+ return t;
980
+ }
981
+ var fe = (e) => se(e) && !Object.keys(e).length, yt = (e) => e.type === "file", xe = (e) => typeof e == "function", Je = (e) => {
982
+ if (!ut)
983
+ return !1;
984
+ const r = e ? e.ownerDocument : 0;
985
+ return e instanceof (r && r.defaultView ? r.defaultView.HTMLElement : HTMLElement);
986
+ }, Yt = (e) => e.type === "select-multiple", vt = (e) => e.type === "radio", $s = (e) => vt(e) || qe(e), rt = (e) => Je(e) && e.isConnected;
987
+ function ei(e, r) {
988
+ const t = r.slice(0, -1).length;
989
+ let i = 0;
990
+ for (; i < t; )
991
+ e = Q(e) ? i++ : e[r[i++]];
992
+ return e;
993
+ }
994
+ function ti(e) {
995
+ for (const r in e)
996
+ if (e.hasOwnProperty(r) && !Q(e[r]))
997
+ return !1;
998
+ return !0;
999
+ }
1000
+ function re(e, r) {
1001
+ const t = Array.isArray(r) ? r : Ke(r) ? [r] : pt(r), i = t.length === 1 ? e : ei(e, t), l = t.length - 1, n = t[l];
1002
+ return i && delete i[n], l !== 0 && (se(i) && fe(i) || Array.isArray(i) && ti(i)) && re(e, t.slice(0, -1)), e;
1003
+ }
1004
+ var ri = (e) => {
1005
+ for (const r in e)
1006
+ if (xe(e[r]))
1007
+ return !0;
1008
+ return !1;
1009
+ };
1010
+ function Kt(e) {
1011
+ return Array.isArray(e) || se(e) && !ri(e);
1012
+ }
1013
+ function ot(e, r = {}) {
1014
+ for (const t in e)
1015
+ Kt(e[t]) ? (r[t] = Array.isArray(e[t]) ? [] : {}, ot(e[t], r[t])) : Q(e[t]) || (r[t] = !0);
1016
+ return r;
1017
+ }
1018
+ function Ve(e, r, t) {
1019
+ t || (t = ot(r));
1020
+ for (const i in e)
1021
+ Kt(e[i]) ? Q(r) || lt(t[i]) ? t[i] = ot(e[i], Array.isArray(e[i]) ? [] : {}) : Ve(e[i], pe(r) ? {} : r[i], t[i]) : t[i] = !Se(e[i], r[i]);
1022
+ return t;
1023
+ }
1024
+ const Pt = {
1025
+ value: !1,
1026
+ isValid: !1
1027
+ }, Bt = { value: !0, isValid: !0 };
1028
+ var Qt = (e) => {
1029
+ if (Array.isArray(e)) {
1030
+ if (e.length > 1) {
1031
+ const r = e.filter((t) => t && t.checked && !t.disabled).map((t) => t.value);
1032
+ return { value: r, isValid: !!r.length };
1033
+ }
1034
+ return e[0].checked && !e[0].disabled ? (
1035
+ // @ts-expect-error expected to work in the browser
1036
+ e[0].attributes && !Q(e[0].attributes.value) ? Q(e[0].value) || e[0].value === "" ? Bt : { value: e[0].value, isValid: !0 } : Bt
1037
+ ) : Pt;
1038
+ }
1039
+ return Pt;
1040
+ }, $t = (e, { valueAsNumber: r, valueAsDate: t, setValueAs: i }) => Q(e) ? e : r ? e === "" ? NaN : e && +e : t && ye(e) ? new Date(e) : i ? i(e) : e;
1041
+ const It = {
1042
+ isValid: !1,
1043
+ value: null
1044
+ };
1045
+ var er = (e) => Array.isArray(e) ? e.reduce((r, t) => t && t.checked && !t.disabled ? {
1046
+ isValid: !0,
1047
+ value: t.value
1048
+ } : r, It) : It;
1049
+ function Wt(e) {
1050
+ const r = e.ref;
1051
+ return yt(r) ? r.files : vt(r) ? er(e.refs).value : Yt(r) ? [...r.selectedOptions].map(({ value: t }) => t) : qe(r) ? Qt(e.refs).value : $t(Q(r.value) ? e.ref.value : r.value, e);
1052
+ }
1053
+ var si = (e, r, t, i) => {
1054
+ const l = {};
1055
+ for (const n of e) {
1056
+ const d = m(r, n);
1057
+ d && J(l, n, d._f);
1058
+ }
1059
+ return {
1060
+ criteriaMode: t,
1061
+ names: [...e],
1062
+ fields: l,
1063
+ shouldUseNativeValidation: i
1064
+ };
1065
+ }, Ye = (e) => e instanceof RegExp, Me = (e) => Q(e) ? e : Ye(e) ? e.source : se(e) ? Ye(e.value) ? e.value.source : e.value : e, Lt = (e) => ({
1066
+ isOnSubmit: !e || e === ge.onSubmit,
1067
+ isOnBlur: e === ge.onBlur,
1068
+ isOnChange: e === ge.onChange,
1069
+ isOnAll: e === ge.all,
1070
+ isOnTouch: e === ge.onTouched
1071
+ });
1072
+ const Vt = "AsyncFunction";
1073
+ var ii = (e) => !!e && !!e.validate && !!(xe(e.validate) && e.validate.constructor.name === Vt || se(e.validate) && Object.values(e.validate).find((r) => r.constructor.name === Vt)), ni = (e) => e.mount && (e.required || e.min || e.max || e.maxLength || e.minLength || e.pattern || e.validate), _t = (e, r, t) => !t && (r.watchAll || r.watch.has(e) || [...r.watch].some((i) => e.startsWith(i) && /^\.\w+/.test(e.slice(i.length))));
1074
+ const ze = (e, r, t, i) => {
1075
+ for (const l of t || Object.keys(e)) {
1076
+ const n = m(e, l);
1077
+ if (n) {
1078
+ const { _f: d, ...u } = n;
1079
+ if (d) {
1080
+ if (d.refs && d.refs[0] && r(d.refs[0], l) && !i)
1081
+ return !0;
1082
+ if (d.ref && r(d.ref, d.name) && !i)
1083
+ return !0;
1084
+ if (ze(u, r))
1085
+ break;
1086
+ } else if (se(u) && ze(u, r))
1087
+ break;
1088
+ }
1089
+ }
1090
+ };
1091
+ function jt(e, r, t) {
1092
+ const i = m(e, t);
1093
+ if (i || Ke(t))
1094
+ return {
1095
+ error: i,
1096
+ name: t
1097
+ };
1098
+ const l = t.split(".");
1099
+ for (; l.length; ) {
1100
+ const n = l.join("."), d = m(r, n), u = m(e, n);
1101
+ if (d && !Array.isArray(d) && t !== n)
1102
+ return { name: t };
1103
+ if (u && u.type)
1104
+ return {
1105
+ name: n,
1106
+ error: u
1107
+ };
1108
+ if (u && u.root && u.root.type)
1109
+ return {
1110
+ name: `${n}.root`,
1111
+ error: u.root
1112
+ };
1113
+ l.pop();
1114
+ }
1115
+ return {
1116
+ name: t
1117
+ };
1118
+ }
1119
+ var ai = (e, r, t, i) => {
1120
+ t(e);
1121
+ const { name: l, ...n } = e;
1122
+ return fe(n) || Object.keys(n).length >= Object.keys(r).length || Object.keys(n).find((d) => r[d] === (!i || ge.all));
1123
+ }, li = (e, r, t) => !e || !r || e === r || De(e).some((i) => i && (t ? i === r : i.startsWith(r) || r.startsWith(i))), oi = (e, r, t, i, l) => l.isOnAll ? !1 : !t && l.isOnTouch ? !(r || e) : (t ? i.isOnBlur : l.isOnBlur) ? !e : (t ? i.isOnChange : l.isOnChange) ? e : !0, ci = (e, r) => !ft(m(e, r)).length && re(e, r), di = (e, r, t) => {
1124
+ const i = De(m(e, t));
1125
+ return J(i, "root", r[t]), J(e, t, i), e;
1126
+ };
1127
+ function Ot(e, r, t = "validate") {
1128
+ if (ye(e) || Array.isArray(e) && e.every(ye) || he(e) && !e)
1129
+ return {
1130
+ type: t,
1131
+ message: ye(e) ? e : "",
1132
+ ref: r
1133
+ };
1134
+ }
1135
+ var Le = (e) => se(e) && !Ye(e) ? e : {
1136
+ value: e,
1137
+ message: ""
1138
+ }, Rt = async (e, r, t, i, l, n) => {
1139
+ const { ref: d, refs: u, required: W, maxLength: A, minLength: h, min: S, max: y, pattern: P, validate: L, name: C, valueAsNumber: w, mount: R } = e._f, b = m(t, C);
1140
+ if (!R || r.has(C))
1141
+ return {};
1142
+ const k = u ? u[0] : d, B = (I) => {
1143
+ l && k.reportValidity && (k.setCustomValidity(he(I) ? "" : I || ""), k.reportValidity());
1144
+ }, g = {}, D = vt(d), U = qe(d), z = D || U, O = (w || yt(d)) && Q(d.value) && Q(b) || Je(d) && d.value === "" || b === "" || Array.isArray(b) && !b.length, K = Qs.bind(null, C, i, g), j = (I, F, E, M = we.maxLength, q = we.minLength) => {
1145
+ const V = I ? F : E;
1146
+ g[C] = {
1147
+ type: I ? M : q,
1148
+ message: V,
1149
+ ref: d,
1150
+ ...K(I ? M : q, V)
1151
+ };
1152
+ };
1153
+ if (n ? !Array.isArray(b) || !b.length : W && (!z && (O || pe(b)) || he(b) && !b || U && !Qt(u).isValid || D && !er(u).isValid)) {
1154
+ const { value: I, message: F } = ye(W) ? { value: !!W, message: W } : Le(W);
1155
+ if (I && (g[C] = {
1156
+ type: we.required,
1157
+ message: F,
1158
+ ref: k,
1159
+ ...K(we.required, F)
1160
+ }, !i))
1161
+ return B(F), g;
1162
+ }
1163
+ if (!O && (!pe(S) || !pe(y))) {
1164
+ let I, F;
1165
+ const E = Le(y), M = Le(S);
1166
+ if (!pe(b) && !isNaN(b)) {
1167
+ const q = d.valueAsNumber || b && +b;
1168
+ pe(E.value) || (I = q > E.value), pe(M.value) || (F = q < M.value);
1169
+ } else {
1170
+ const q = d.valueAsDate || new Date(b), V = (Y) => /* @__PURE__ */ new Date((/* @__PURE__ */ new Date()).toDateString() + " " + Y), G = d.type == "time", oe = d.type == "week";
1171
+ ye(E.value) && b && (I = G ? V(b) > V(E.value) : oe ? b > E.value : q > new Date(E.value)), ye(M.value) && b && (F = G ? V(b) < V(M.value) : oe ? b < M.value : q < new Date(M.value));
1172
+ }
1173
+ if ((I || F) && (j(!!I, E.message, M.message, we.max, we.min), !i))
1174
+ return B(g[C].message), g;
1175
+ }
1176
+ if ((A || h) && !O && (ye(b) || n && Array.isArray(b))) {
1177
+ const I = Le(A), F = Le(h), E = !pe(I.value) && b.length > +I.value, M = !pe(F.value) && b.length < +F.value;
1178
+ if ((E || M) && (j(E, I.message, F.message), !i))
1179
+ return B(g[C].message), g;
1180
+ }
1181
+ if (P && !O && ye(b)) {
1182
+ const { value: I, message: F } = Le(P);
1183
+ if (Ye(I) && !b.match(I) && (g[C] = {
1184
+ type: we.pattern,
1185
+ message: F,
1186
+ ref: d,
1187
+ ...K(we.pattern, F)
1188
+ }, !i))
1189
+ return B(F), g;
1190
+ }
1191
+ if (L) {
1192
+ if (xe(L)) {
1193
+ const I = await L(b, t), F = Ot(I, k);
1194
+ if (F && (g[C] = {
1195
+ ...F,
1196
+ ...K(we.validate, F.message)
1197
+ }, !i))
1198
+ return B(F.message), g;
1199
+ } else if (se(L)) {
1200
+ let I = {};
1201
+ for (const F in L) {
1202
+ if (!fe(I) && !i)
1203
+ break;
1204
+ const E = Ot(await L[F](b, t), k, F);
1205
+ E && (I = {
1206
+ ...E,
1207
+ ...K(F, E.message)
1208
+ }, B(E.message), i && (g[C] = I));
1209
+ }
1210
+ if (!fe(I) && (g[C] = {
1211
+ ref: k,
1212
+ ...I
1213
+ }, !i))
1214
+ return g;
1215
+ }
1216
+ }
1217
+ return B(!0), g;
1218
+ };
1219
+ const ui = {
1220
+ mode: ge.onSubmit,
1221
+ reValidateMode: ge.onChange,
1222
+ shouldFocusError: !0
1223
+ };
1224
+ function fi(e = {}) {
1225
+ let r = {
1226
+ ...ui,
1227
+ ...e
1228
+ }, t = {
1229
+ submitCount: 0,
1230
+ isDirty: !1,
1231
+ isReady: !1,
1232
+ isLoading: xe(r.defaultValues),
1233
+ isValidating: !1,
1234
+ isSubmitted: !1,
1235
+ isSubmitting: !1,
1236
+ isSubmitSuccessful: !1,
1237
+ isValid: !1,
1238
+ touchedFields: {},
1239
+ dirtyFields: {},
1240
+ validatingFields: {},
1241
+ errors: r.errors || {},
1242
+ disabled: r.disabled || !1
1243
+ }, i = {}, l = se(r.defaultValues) || se(r.values) ? ie(r.defaultValues || r.values) || {} : {}, n = r.shouldUnregister ? {} : ie(l), d = {
1244
+ action: !1,
1245
+ mount: !1,
1246
+ watch: !1
1247
+ }, u = {
1248
+ mount: /* @__PURE__ */ new Set(),
1249
+ disabled: /* @__PURE__ */ new Set(),
1250
+ unMount: /* @__PURE__ */ new Set(),
1251
+ array: /* @__PURE__ */ new Set(),
1252
+ watch: /* @__PURE__ */ new Set()
1253
+ }, W, A = 0;
1254
+ const h = {
1255
+ isDirty: !1,
1256
+ dirtyFields: !1,
1257
+ validatingFields: !1,
1258
+ touchedFields: !1,
1259
+ isValidating: !1,
1260
+ isValid: !1,
1261
+ errors: !1
1262
+ };
1263
+ let S = {
1264
+ ...h
1265
+ };
1266
+ const y = {
1267
+ array: At(),
1268
+ state: At()
1269
+ }, P = r.criteriaMode === ge.all, L = (s) => (a) => {
1270
+ clearTimeout(A), A = setTimeout(s, a);
1271
+ }, C = async (s) => {
1272
+ if (!r.disabled && (h.isValid || S.isValid || s)) {
1273
+ const a = r.resolver ? fe((await U()).errors) : await O(i, !0);
1274
+ a !== t.isValid && y.state.next({
1275
+ isValid: a
1276
+ });
1277
+ }
1278
+ }, w = (s, a) => {
1279
+ !r.disabled && (h.isValidating || h.validatingFields || S.isValidating || S.validatingFields) && ((s || Array.from(u.mount)).forEach((c) => {
1280
+ c && (a ? J(t.validatingFields, c, a) : re(t.validatingFields, c));
1281
+ }), y.state.next({
1282
+ validatingFields: t.validatingFields,
1283
+ isValidating: !fe(t.validatingFields)
1284
+ }));
1285
+ }, R = (s, a = [], c, v, p = !0, f = !0) => {
1286
+ if (v && c && !r.disabled) {
1287
+ if (d.action = !0, f && Array.isArray(m(i, s))) {
1288
+ const T = c(m(i, s), v.argA, v.argB);
1289
+ p && J(i, s, T);
1290
+ }
1291
+ if (f && Array.isArray(m(t.errors, s))) {
1292
+ const T = c(m(t.errors, s), v.argA, v.argB);
1293
+ p && J(t.errors, s, T), ci(t.errors, s);
1294
+ }
1295
+ if ((h.touchedFields || S.touchedFields) && f && Array.isArray(m(t.touchedFields, s))) {
1296
+ const T = c(m(t.touchedFields, s), v.argA, v.argB);
1297
+ p && J(t.touchedFields, s, T);
1298
+ }
1299
+ (h.dirtyFields || S.dirtyFields) && (t.dirtyFields = Ve(l, n)), y.state.next({
1300
+ name: s,
1301
+ isDirty: j(s, a),
1302
+ dirtyFields: t.dirtyFields,
1303
+ errors: t.errors,
1304
+ isValid: t.isValid
1305
+ });
1306
+ } else
1307
+ J(n, s, a);
1308
+ }, b = (s, a) => {
1309
+ J(t.errors, s, a), y.state.next({
1310
+ errors: t.errors
1311
+ });
1312
+ }, k = (s) => {
1313
+ t.errors = s, y.state.next({
1314
+ errors: t.errors,
1315
+ isValid: !1
1316
+ });
1317
+ }, B = (s, a, c, v) => {
1318
+ const p = m(i, s);
1319
+ if (p) {
1320
+ const f = m(n, s, Q(c) ? m(l, s) : c);
1321
+ Q(f) || v && v.defaultChecked || a ? J(n, s, a ? f : Wt(p._f)) : E(s, f), d.mount && C();
1322
+ }
1323
+ }, g = (s, a, c, v, p) => {
1324
+ let f = !1, T = !1;
1325
+ const Z = {
1326
+ name: s
1327
+ };
1328
+ if (!r.disabled) {
1329
+ if (!c || v) {
1330
+ (h.isDirty || S.isDirty) && (T = t.isDirty, t.isDirty = Z.isDirty = j(), f = T !== Z.isDirty);
1331
+ const H = Se(m(l, s), a);
1332
+ T = !!m(t.dirtyFields, s), H ? re(t.dirtyFields, s) : J(t.dirtyFields, s, !0), Z.dirtyFields = t.dirtyFields, f = f || (h.dirtyFields || S.dirtyFields) && T !== !H;
1333
+ }
1334
+ if (c) {
1335
+ const H = m(t.touchedFields, s);
1336
+ H || (J(t.touchedFields, s, c), Z.touchedFields = t.touchedFields, f = f || (h.touchedFields || S.touchedFields) && H !== c);
1337
+ }
1338
+ f && p && y.state.next(Z);
1339
+ }
1340
+ return f ? Z : {};
1341
+ }, D = (s, a, c, v) => {
1342
+ const p = m(t.errors, s), f = (h.isValid || S.isValid) && he(a) && t.isValid !== a;
1343
+ if (r.delayError && c ? (W = L(() => b(s, c)), W(r.delayError)) : (clearTimeout(A), W = null, c ? J(t.errors, s, c) : re(t.errors, s)), (c ? !Se(p, c) : p) || !fe(v) || f) {
1344
+ const T = {
1345
+ ...v,
1346
+ ...f && he(a) ? { isValid: a } : {},
1347
+ errors: t.errors,
1348
+ name: s
1349
+ };
1350
+ t = {
1351
+ ...t,
1352
+ ...T
1353
+ }, y.state.next(T);
1354
+ }
1355
+ }, U = async (s) => {
1356
+ w(s, !0);
1357
+ const a = await r.resolver(n, r.context, si(s || u.mount, i, r.criteriaMode, r.shouldUseNativeValidation));
1358
+ return w(s), a;
1359
+ }, z = async (s) => {
1360
+ const { errors: a } = await U(s);
1361
+ if (s)
1362
+ for (const c of s) {
1363
+ const v = m(a, c);
1364
+ v ? J(t.errors, c, v) : re(t.errors, c);
1365
+ }
1366
+ else
1367
+ t.errors = a;
1368
+ return a;
1369
+ }, O = async (s, a, c = {
1370
+ valid: !0
1371
+ }) => {
1372
+ for (const v in s) {
1373
+ const p = s[v];
1374
+ if (p) {
1375
+ const { _f: f, ...T } = p;
1376
+ if (f) {
1377
+ const Z = u.array.has(f.name), H = p._f && ii(p._f);
1378
+ H && h.validatingFields && w([f.name], !0);
1379
+ const ve = await Rt(p, u.disabled, n, P, r.shouldUseNativeValidation && !a, Z);
1380
+ if (H && h.validatingFields && w([f.name]), ve[f.name] && (c.valid = !1, a))
1381
+ break;
1382
+ !a && (m(ve, f.name) ? Z ? di(t.errors, ve, f.name) : J(t.errors, f.name, ve[f.name]) : re(t.errors, f.name));
1383
+ }
1384
+ !fe(T) && await O(T, a, c);
1385
+ }
1386
+ }
1387
+ return c.valid;
1388
+ }, K = () => {
1389
+ for (const s of u.unMount) {
1390
+ const a = m(i, s);
1391
+ a && (a._f.refs ? a._f.refs.every((c) => !rt(c)) : !rt(a._f.ref)) && ae(s);
1392
+ }
1393
+ u.unMount = /* @__PURE__ */ new Set();
1394
+ }, j = (s, a) => !r.disabled && (s && a && J(n, s, a), !Se(Y(), l)), I = (s, a, c) => at(s, u, {
1395
+ ...d.mount ? n : Q(a) ? l : ye(s) ? { [s]: a } : a
1396
+ }, c, a), F = (s) => ft(m(d.mount ? n : l, s, r.shouldUnregister ? m(l, s, []) : [])), E = (s, a, c = {}) => {
1397
+ const v = m(i, s);
1398
+ let p = a;
1399
+ if (v) {
1400
+ const f = v._f;
1401
+ f && (!f.disabled && J(n, s, $t(a, f)), p = Je(f.ref) && pe(a) ? "" : a, Yt(f.ref) ? [...f.ref.options].forEach((T) => T.selected = p.includes(T.value)) : f.refs ? qe(f.ref) ? f.refs.forEach((T) => {
1402
+ (!T.defaultChecked || !T.disabled) && (Array.isArray(p) ? T.checked = !!p.find((Z) => Z === T.value) : T.checked = p === T.value || !!p);
1403
+ }) : f.refs.forEach((T) => T.checked = T.value === p) : yt(f.ref) ? f.ref.value = "" : (f.ref.value = p, f.ref.type || y.state.next({
1404
+ name: s,
1405
+ values: ie(n)
1406
+ })));
1407
+ }
1408
+ (c.shouldDirty || c.shouldTouch) && g(s, p, c.shouldTouch, c.shouldDirty, !0), c.shouldValidate && oe(s);
1409
+ }, M = (s, a, c) => {
1410
+ for (const v in a) {
1411
+ if (!a.hasOwnProperty(v))
1412
+ return;
1413
+ const p = a[v], f = s + "." + v, T = m(i, f);
1414
+ (u.array.has(s) || se(p) || T && !T._f) && !Pe(p) ? M(f, p, c) : E(f, p, c);
1415
+ }
1416
+ }, q = (s, a, c = {}) => {
1417
+ const v = m(i, s), p = u.array.has(s), f = ie(a);
1418
+ J(n, s, f), p ? (y.array.next({
1419
+ name: s,
1420
+ values: ie(n)
1421
+ }), (h.isDirty || h.dirtyFields || S.isDirty || S.dirtyFields) && c.shouldDirty && y.state.next({
1422
+ name: s,
1423
+ dirtyFields: Ve(l, n),
1424
+ isDirty: j(s, f)
1425
+ })) : v && !v._f && !pe(f) ? M(s, f, c) : E(s, f, c), _t(s, u) && y.state.next({ ...t, name: s }), y.state.next({
1426
+ name: d.mount ? s : void 0,
1427
+ values: ie(n)
1428
+ });
1429
+ }, V = async (s) => {
1430
+ d.mount = !0;
1431
+ const a = s.target;
1432
+ let c = a.name, v = !0;
1433
+ const p = m(i, c), f = (H) => {
1434
+ v = Number.isNaN(H) || Pe(H) && isNaN(H.getTime()) || Se(H, m(n, c, H));
1435
+ }, T = Lt(r.mode), Z = Lt(r.reValidateMode);
1436
+ if (p) {
1437
+ let H, ve;
1438
+ const Xe = a.type ? Wt(p._f) : Ut(s), Ce = s.type === He.BLUR || s.type === He.FOCUS_OUT, nr = !ni(p._f) && !r.resolver && !m(t.errors, c) && !p._f.deps || oi(Ce, m(t.touchedFields, c), t.isSubmitted, Z, T), $e = _t(c, u, Ce);
1439
+ J(n, c, Xe), Ce ? (!a || !a.readOnly) && (p._f.onBlur && p._f.onBlur(s), W && W(0)) : p._f.onChange && p._f.onChange(s);
1440
+ const et = g(c, Xe, Ce), ar = !fe(et) || $e;
1441
+ if (!Ce && y.state.next({
1442
+ name: c,
1443
+ type: s.type,
1444
+ values: ie(n)
1445
+ }), nr)
1446
+ return (h.isValid || S.isValid) && (r.mode === "onBlur" ? Ce && C() : Ce || C()), ar && y.state.next({ name: c, ...$e ? {} : et });
1447
+ if (!Ce && $e && y.state.next({ ...t }), r.resolver) {
1448
+ const { errors: Nt } = await U([c]);
1449
+ if (f(Xe), v) {
1450
+ const lr = jt(t.errors, i, c), kt = jt(Nt, i, lr.name || c);
1451
+ H = kt.error, c = kt.name, ve = fe(Nt);
1452
+ }
1453
+ } else
1454
+ w([c], !0), H = (await Rt(p, u.disabled, n, P, r.shouldUseNativeValidation))[c], w([c]), f(Xe), v && (H ? ve = !1 : (h.isValid || S.isValid) && (ve = await O(i, !0)));
1455
+ v && (p._f.deps && (!Array.isArray(p._f.deps) || p._f.deps.length > 0) && oe(p._f.deps), D(c, ve, H, et));
1456
+ }
1457
+ }, G = (s, a) => {
1458
+ if (m(t.errors, a) && s.focus)
1459
+ return s.focus(), 1;
1460
+ }, oe = async (s, a = {}) => {
1461
+ let c, v;
1462
+ const p = De(s);
1463
+ if (r.resolver) {
1464
+ const f = await z(Q(s) ? s : p);
1465
+ c = fe(f), v = s ? !p.some((T) => m(f, T)) : c;
1466
+ } else s ? (v = (await Promise.all(p.map(async (f) => {
1467
+ const T = m(i, f);
1468
+ return await O(T && T._f ? { [f]: T } : T);
1469
+ }))).every(Boolean), !(!v && !t.isValid) && C()) : v = c = await O(i);
1470
+ return y.state.next({
1471
+ ...!ye(s) || (h.isValid || S.isValid) && c !== t.isValid ? {} : { name: s },
1472
+ ...r.resolver || !s ? { isValid: c } : {},
1473
+ errors: t.errors
1474
+ }), a.shouldFocus && !v && ze(i, G, s ? p : u.mount), v;
1475
+ }, Y = (s, a) => {
1476
+ let c = {
1477
+ ...d.mount ? n : l
1478
+ };
1479
+ return a && (c = Jt(a.dirtyFields ? t.dirtyFields : t.touchedFields, c)), Q(s) ? c : ye(s) ? m(c, s) : s.map((v) => m(c, v));
1480
+ }, ne = (s, a) => ({
1481
+ invalid: !!m((a || t).errors, s),
1482
+ isDirty: !!m((a || t).dirtyFields, s),
1483
+ error: m((a || t).errors, s),
1484
+ isValidating: !!m(t.validatingFields, s),
1485
+ isTouched: !!m((a || t).touchedFields, s)
1486
+ }), me = (s) => {
1487
+ s && De(s).forEach((a) => re(t.errors, a)), y.state.next({
1488
+ errors: s ? t.errors : {}
1489
+ });
1490
+ }, ce = (s, a, c) => {
1491
+ const v = (m(i, s, { _f: {} })._f || {}).ref, p = m(t.errors, s) || {}, { ref: f, message: T, type: Z, ...H } = p;
1492
+ J(t.errors, s, {
1493
+ ...H,
1494
+ ...a,
1495
+ ref: v
1496
+ }), y.state.next({
1497
+ name: s,
1498
+ errors: t.errors,
1499
+ isValid: !1
1500
+ }), c && c.shouldFocus && v && v.focus && v.focus();
1501
+ }, ke = (s, a) => xe(s) ? y.state.subscribe({
1502
+ next: (c) => "values" in c && s(I(void 0, a), c)
1503
+ }) : I(s, a, !0), Fe = (s) => y.state.subscribe({
1504
+ next: (a) => {
1505
+ li(s.name, a.name, s.exact) && ai(a, s.formState || h, ir, s.reRenderRoot) && s.callback({
1506
+ values: { ...n },
1507
+ ...t,
1508
+ ...a,
1509
+ defaultValues: l
1510
+ });
1511
+ }
1512
+ }).unsubscribe, $ = (s) => (d.mount = !0, S = {
1513
+ ...S,
1514
+ ...s.formState
1515
+ }, Fe({
1516
+ ...s,
1517
+ formState: S
1518
+ })), ae = (s, a = {}) => {
1519
+ for (const c of s ? De(s) : u.mount)
1520
+ u.mount.delete(c), u.array.delete(c), a.keepValue || (re(i, c), re(n, c)), !a.keepError && re(t.errors, c), !a.keepDirty && re(t.dirtyFields, c), !a.keepTouched && re(t.touchedFields, c), !a.keepIsValidating && re(t.validatingFields, c), !r.shouldUnregister && !a.keepDefaultValue && re(l, c);
1521
+ y.state.next({
1522
+ values: ie(n)
1523
+ }), y.state.next({
1524
+ ...t,
1525
+ ...a.keepDirty ? { isDirty: j() } : {}
1526
+ }), !a.keepIsValid && C();
1527
+ }, Ie = ({ disabled: s, name: a }) => {
1528
+ (he(s) && d.mount || s || u.disabled.has(a)) && (s ? u.disabled.add(a) : u.disabled.delete(a));
1529
+ }, Oe = (s, a = {}) => {
1530
+ let c = m(i, s);
1531
+ const v = he(a.disabled) || he(r.disabled);
1532
+ return J(i, s, {
1533
+ ...c || {},
1534
+ _f: {
1535
+ ...c && c._f ? c._f : { ref: { name: s } },
1536
+ name: s,
1537
+ mount: !0,
1538
+ ...a
1539
+ }
1540
+ }), u.mount.add(s), c ? Ie({
1541
+ disabled: he(a.disabled) ? a.disabled : r.disabled,
1542
+ name: s
1543
+ }) : B(s, !0, a.value), {
1544
+ ...v ? { disabled: a.disabled || r.disabled } : {},
1545
+ ...r.progressive ? {
1546
+ required: !!a.required,
1547
+ min: Me(a.min),
1548
+ max: Me(a.max),
1549
+ minLength: Me(a.minLength),
1550
+ maxLength: Me(a.maxLength),
1551
+ pattern: Me(a.pattern)
1552
+ } : {},
1553
+ name: s,
1554
+ onChange: V,
1555
+ onBlur: V,
1556
+ ref: (p) => {
1557
+ if (p) {
1558
+ Oe(s, a), c = m(i, s);
1559
+ const f = Q(p.value) && p.querySelectorAll && p.querySelectorAll("input,select,textarea")[0] || p, T = $s(f), Z = c._f.refs || [];
1560
+ if (T ? Z.find((H) => H === f) : f === c._f.ref)
1561
+ return;
1562
+ J(i, s, {
1563
+ _f: {
1564
+ ...c._f,
1565
+ ...T ? {
1566
+ refs: [
1567
+ ...Z.filter(rt),
1568
+ f,
1569
+ ...Array.isArray(m(l, s)) ? [{}] : []
1570
+ ],
1571
+ ref: { type: f.type, name: s }
1572
+ } : { ref: f }
1573
+ }
1574
+ }), B(s, !1, void 0, f);
1575
+ } else
1576
+ c = m(i, s, {}), c._f && (c._f.mount = !1), (r.shouldUnregister || a.shouldUnregister) && !(Zt(u.array, s) && d.action) && u.unMount.add(s);
1577
+ }
1578
+ };
1579
+ }, Qe = () => r.shouldFocusError && ze(i, G, u.mount), tr = (s) => {
1580
+ he(s) && (y.state.next({ disabled: s }), ze(i, (a, c) => {
1581
+ const v = m(i, c);
1582
+ v && (a.disabled = v._f.disabled || s, Array.isArray(v._f.refs) && v._f.refs.forEach((p) => {
1583
+ p.disabled = v._f.disabled || s;
1584
+ }));
1585
+ }, 0, !1));
1586
+ }, bt = (s, a) => async (c) => {
1587
+ let v;
1588
+ c && (c.preventDefault && c.preventDefault(), c.persist && c.persist());
1589
+ let p = ie(n);
1590
+ if (y.state.next({
1591
+ isSubmitting: !0
1592
+ }), r.resolver) {
1593
+ const { errors: f, values: T } = await U();
1594
+ t.errors = f, p = ie(T);
1595
+ } else
1596
+ await O(i);
1597
+ if (u.disabled.size)
1598
+ for (const f of u.disabled)
1599
+ re(p, f);
1600
+ if (re(t.errors, "root"), fe(t.errors)) {
1601
+ y.state.next({
1602
+ errors: {}
1603
+ });
1604
+ try {
1605
+ await s(p, c);
1606
+ } catch (f) {
1607
+ v = f;
1608
+ }
1609
+ } else
1610
+ a && await a({ ...t.errors }, c), Qe(), setTimeout(Qe);
1611
+ if (y.state.next({
1612
+ isSubmitted: !0,
1613
+ isSubmitting: !1,
1614
+ isSubmitSuccessful: fe(t.errors) && !v,
1615
+ submitCount: t.submitCount + 1,
1616
+ errors: t.errors
1617
+ }), v)
1618
+ throw v;
1619
+ }, rr = (s, a = {}) => {
1620
+ m(i, s) && (Q(a.defaultValue) ? q(s, ie(m(l, s))) : (q(s, a.defaultValue), J(l, s, ie(a.defaultValue))), a.keepTouched || re(t.touchedFields, s), a.keepDirty || (re(t.dirtyFields, s), t.isDirty = a.defaultValue ? j(s, ie(m(l, s))) : j()), a.keepError || (re(t.errors, s), h.isValid && C()), y.state.next({ ...t }));
1621
+ }, gt = (s, a = {}) => {
1622
+ const c = s ? ie(s) : l, v = ie(c), p = fe(s), f = p ? l : v;
1623
+ if (a.keepDefaultValues || (l = c), !a.keepValues) {
1624
+ if (a.keepDirtyValues) {
1625
+ const T = /* @__PURE__ */ new Set([
1626
+ ...u.mount,
1627
+ ...Object.keys(Ve(l, n))
1628
+ ]);
1629
+ for (const Z of Array.from(T))
1630
+ m(t.dirtyFields, Z) ? J(f, Z, m(n, Z)) : q(Z, m(f, Z));
1631
+ } else {
1632
+ if (ut && Q(s))
1633
+ for (const T of u.mount) {
1634
+ const Z = m(i, T);
1635
+ if (Z && Z._f) {
1636
+ const H = Array.isArray(Z._f.refs) ? Z._f.refs[0] : Z._f.ref;
1637
+ if (Je(H)) {
1638
+ const ve = H.closest("form");
1639
+ if (ve) {
1640
+ ve.reset();
1641
+ break;
1642
+ }
1643
+ }
1644
+ }
1645
+ }
1646
+ if (a.keepFieldsRef)
1647
+ for (const T of u.mount)
1648
+ q(T, m(f, T));
1649
+ else
1650
+ i = {};
1651
+ }
1652
+ n = r.shouldUnregister ? a.keepDefaultValues ? ie(l) : {} : ie(f), y.array.next({
1653
+ values: { ...f }
1654
+ }), y.state.next({
1655
+ values: { ...f }
1656
+ });
1657
+ }
1658
+ u = {
1659
+ mount: a.keepDirtyValues ? u.mount : /* @__PURE__ */ new Set(),
1660
+ unMount: /* @__PURE__ */ new Set(),
1661
+ array: /* @__PURE__ */ new Set(),
1662
+ disabled: /* @__PURE__ */ new Set(),
1663
+ watch: /* @__PURE__ */ new Set(),
1664
+ watchAll: !1,
1665
+ focus: ""
1666
+ }, d.mount = !h.isValid || !!a.keepIsValid || !!a.keepDirtyValues || !r.shouldUnregister && !fe(f), d.watch = !!r.shouldUnregister, y.state.next({
1667
+ submitCount: a.keepSubmitCount ? t.submitCount : 0,
1668
+ isDirty: p ? !1 : a.keepDirty ? t.isDirty : !!(a.keepDefaultValues && !Se(s, l)),
1669
+ isSubmitted: a.keepIsSubmitted ? t.isSubmitted : !1,
1670
+ dirtyFields: p ? {} : a.keepDirtyValues ? a.keepDefaultValues && n ? Ve(l, n) : t.dirtyFields : a.keepDefaultValues && s ? Ve(l, s) : a.keepDirty ? t.dirtyFields : {},
1671
+ touchedFields: a.keepTouched ? t.touchedFields : {},
1672
+ errors: a.keepErrors ? t.errors : {},
1673
+ isSubmitSuccessful: a.keepIsSubmitSuccessful ? t.isSubmitSuccessful : !1,
1674
+ isSubmitting: !1,
1675
+ defaultValues: l
1676
+ });
1677
+ }, St = (s, a) => gt(xe(s) ? s(n) : s, a), sr = (s, a = {}) => {
1678
+ const c = m(i, s), v = c && c._f;
1679
+ if (v) {
1680
+ const p = v.refs ? v.refs[0] : v.ref;
1681
+ p.focus && (p.focus(), a.shouldSelect && xe(p.select) && p.select());
1682
+ }
1683
+ }, ir = (s) => {
1684
+ t = {
1685
+ ...t,
1686
+ ...s
1687
+ };
1688
+ }, xt = {
1689
+ control: {
1690
+ register: Oe,
1691
+ unregister: ae,
1692
+ getFieldState: ne,
1693
+ handleSubmit: bt,
1694
+ setError: ce,
1695
+ _subscribe: Fe,
1696
+ _runSchema: U,
1697
+ _focusError: Qe,
1698
+ _getWatch: I,
1699
+ _getDirty: j,
1700
+ _setValid: C,
1701
+ _setFieldArray: R,
1702
+ _setDisabledField: Ie,
1703
+ _setErrors: k,
1704
+ _getFieldArray: F,
1705
+ _reset: gt,
1706
+ _resetDefaultValues: () => xe(r.defaultValues) && r.defaultValues().then((s) => {
1707
+ St(s, r.resetOptions), y.state.next({
1708
+ isLoading: !1
1709
+ });
1710
+ }),
1711
+ _removeUnmounted: K,
1712
+ _disableForm: tr,
1713
+ _subjects: y,
1714
+ _proxyFormState: h,
1715
+ get _fields() {
1716
+ return i;
1717
+ },
1718
+ get _formValues() {
1719
+ return n;
1720
+ },
1721
+ get _state() {
1722
+ return d;
1723
+ },
1724
+ set _state(s) {
1725
+ d = s;
1726
+ },
1727
+ get _defaultValues() {
1728
+ return l;
1729
+ },
1730
+ get _names() {
1731
+ return u;
1732
+ },
1733
+ set _names(s) {
1734
+ u = s;
1735
+ },
1736
+ get _formState() {
1737
+ return t;
1738
+ },
1739
+ get _options() {
1740
+ return r;
1741
+ },
1742
+ set _options(s) {
1743
+ r = {
1744
+ ...r,
1745
+ ...s
1746
+ };
1747
+ }
1748
+ },
1749
+ subscribe: $,
1750
+ trigger: oe,
1751
+ register: Oe,
1752
+ handleSubmit: bt,
1753
+ watch: ke,
1754
+ setValue: q,
1755
+ getValues: Y,
1756
+ reset: St,
1757
+ resetField: rr,
1758
+ clearErrors: me,
1759
+ unregister: ae,
1760
+ setError: ce,
1761
+ setFocus: sr,
1762
+ getFieldState: ne
1763
+ };
1764
+ return {
1765
+ ...xt,
1766
+ formControl: xt
1767
+ };
1768
+ }
1769
+ function pi(e = {}) {
1770
+ const r = _.useRef(void 0), t = _.useRef(void 0), [i, l] = _.useState({
1771
+ isDirty: !1,
1772
+ isValidating: !1,
1773
+ isLoading: xe(e.defaultValues),
1774
+ isSubmitted: !1,
1775
+ isSubmitting: !1,
1776
+ isSubmitSuccessful: !1,
1777
+ isValid: !1,
1778
+ submitCount: 0,
1779
+ dirtyFields: {},
1780
+ touchedFields: {},
1781
+ validatingFields: {},
1782
+ errors: e.errors || {},
1783
+ disabled: e.disabled || !1,
1784
+ isReady: !1,
1785
+ defaultValues: xe(e.defaultValues) ? void 0 : e.defaultValues
1786
+ });
1787
+ if (!r.current)
1788
+ if (e.formControl)
1789
+ r.current = {
1790
+ ...e.formControl,
1791
+ formState: i
1792
+ }, e.defaultValues && !xe(e.defaultValues) && e.formControl.reset(e.defaultValues, e.resetOptions);
1793
+ else {
1794
+ const { formControl: d, ...u } = fi(e);
1795
+ r.current = {
1796
+ ...u,
1797
+ formState: i
1798
+ };
1799
+ }
1800
+ const n = r.current.control;
1801
+ return n._options = e, ht(() => {
1802
+ const d = n._subscribe({
1803
+ formState: n._proxyFormState,
1804
+ callback: () => l({ ...n._formState }),
1805
+ reRenderRoot: !0
1806
+ });
1807
+ return l((u) => ({
1808
+ ...u,
1809
+ isReady: !0
1810
+ })), n._formState.isReady = !0, d;
1811
+ }, [n]), _.useEffect(() => n._disableForm(e.disabled), [n, e.disabled]), _.useEffect(() => {
1812
+ e.mode && (n._options.mode = e.mode), e.reValidateMode && (n._options.reValidateMode = e.reValidateMode);
1813
+ }, [n, e.mode, e.reValidateMode]), _.useEffect(() => {
1814
+ e.errors && (n._setErrors(e.errors), n._focusError());
1815
+ }, [n, e.errors]), _.useEffect(() => {
1816
+ e.shouldUnregister && n._subjects.state.next({
1817
+ values: n._getWatch()
1818
+ });
1819
+ }, [n, e.shouldUnregister]), _.useEffect(() => {
1820
+ if (n._proxyFormState.isDirty) {
1821
+ const d = n._getDirty();
1822
+ d !== i.isDirty && n._subjects.state.next({
1823
+ isDirty: d
1824
+ });
1825
+ }
1826
+ }, [n, i.isDirty]), _.useEffect(() => {
1827
+ e.values && !Se(e.values, t.current) ? (n._reset(e.values, {
1828
+ keepFieldsRef: !0,
1829
+ ...n._options.resetOptions
1830
+ }), t.current = e.values, l((d) => ({ ...d }))) : n._resetDefaultValues();
1831
+ }, [n, e.values]), _.useEffect(() => {
1832
+ n._state.mount || (n._setValid(), n._state.mount = !0), n._state.watch && (n._state.watch = !1, n._subjects.state.next({ ...n._formState })), n._removeUnmounted();
1833
+ }), r.current.formState = Ht(i, n), r.current;
1834
+ }
1835
+ var mi = /* @__PURE__ */ ((e) => (e.PRIVACY_POLICY = "privacy-policy", e.PERSONAL_DATA = "personal-data", e.MAILING = "mailing", e.STONE_VALUE = "stone-value", e))(mi || {});
1836
+ const hi = Be.bind(te), yi = "Я принимаю условия Политики обработки и защиты персональных данных, даю согласия на обработку персональных данных", ta = ({
1837
+ isFormOpen: e,
1838
+ setIsFormOpen: r,
1839
+ isNews: t,
1840
+ title: i,
1841
+ isEmail: l,
1842
+ isPhone: n,
1843
+ isTextArea: d,
1844
+ telegramLink: u = "https://t.me/stone_developer",
1845
+ isRequiredPhone: W = !0,
1846
+ isRequiredEmail: A = !1,
1847
+ isRequiredPhoneOrEmail: h,
1848
+ textAreaPlaceholder: S,
1849
+ subTitle: y,
1850
+ submitHandler: P,
1851
+ modalWidth: L = "442px",
1852
+ rowsTextArea: C = 2,
1853
+ advCheckBox: w = { text: yi, isRequired: !0 },
1854
+ isAdvCheckBox: R,
1855
+ addTitleClassName: b,
1856
+ createPortalObj: k,
1857
+ telegramClickHandler: B = () => null,
1858
+ blurHandler: g,
1859
+ handlerButton: D,
1860
+ block_name: U,
1861
+ policiesMap: z,
1862
+ emitCheckBox: O,
1863
+ emitAdvCheckBox: K
1864
+ }) => {
1865
+ const {
1866
+ register: j,
1867
+ handleSubmit: I,
1868
+ reset: F,
1869
+ control: E,
1870
+ watch: M,
1871
+ setValue: q,
1872
+ formState: { errors: V }
1873
+ } = pi(), G = !!M("email"), oe = M("personalCheckBox"), Y = M("advCheckBox");
1874
+ _e(() => {
1875
+ typeof oe < "u" && O && O();
1876
+ }, [O, oe]), _e(() => {
1877
+ typeof Y < "u" && K && K();
1878
+ }, [K, Y]);
1879
+ const { isMobile: ne, currentClientWidth: me } = je(), ce = M("personalCheckBox"), ke = M("advCheckBox"), Fe = (ae) => {
1880
+ P(ae), F();
1881
+ }, $ = (ae, { action_element_status: Ie, action_element: Oe }) => {
1882
+ g && g({
1883
+ e: ae,
1884
+ analyticParams: { action_element: Oe, action_element_status: Ie, block_name: U }
1885
+ });
1886
+ };
1887
+ return _e(() => {
1888
+ if (!z)
1889
+ return;
1890
+ const ae = ["personal-data", "privacy-policy", ...t ? [
1891
+ "mailing"
1892
+ /* MAILING */
1893
+ ] : []];
1894
+ ce ? q(
1895
+ "policy-slug",
1896
+ ae.join(", "),
1897
+ { shouldDirty: !0 }
1898
+ ) : q("policy-slug", "", { shouldDirty: !0 });
1899
+ }, [z, ce]), me ? /* @__PURE__ */ o(
1900
+ ct,
1901
+ {
1902
+ additionalClass: te.modal,
1903
+ additionalClassModalBody: te.modalBody,
1904
+ createPortalObj: k,
1905
+ isOpen: e,
1906
+ isTransparentBack: !0,
1907
+ emitIsOpen: () => r(!1),
1908
+ opacity: 0.7,
1909
+ children: /* @__PURE__ */ x(
1910
+ "div",
1911
+ {
1912
+ className: te.root,
1913
+ style: { width: ne ? "100%" : L },
1914
+ "data-testid": "modal_window",
1915
+ children: [
1916
+ /* @__PURE__ */ o(
1917
+ "div",
1918
+ {
1919
+ className: hi(te.title, b),
1920
+ dangerouslySetInnerHTML: { __html: i ?? "Оставить обращение" }
1921
+ }
1922
+ ),
1923
+ t && /* @__PURE__ */ x("div", { className: te.telegramWrapper, children: [
1924
+ /* @__PURE__ */ o(
1925
+ "a",
1926
+ {
1927
+ className: te.telegramLink,
1928
+ href: u,
1929
+ target: "_blank",
1930
+ "data-testid": "modal_telegram_link",
1931
+ children: /* @__PURE__ */ x(
1932
+ "div",
1933
+ {
1934
+ className: te.telegram,
1935
+ onClick: B,
1936
+ children: [
1937
+ /* @__PURE__ */ o("div", { children: "Подписаться в Telegram" }),
1938
+ /* @__PURE__ */ o(Ne, { name: "telegram" })
1939
+ ]
1940
+ }
1941
+ )
1942
+ }
1943
+ ),
1944
+ /* @__PURE__ */ o("div", { className: te.orText, children: "или" })
1945
+ ] }),
1946
+ !t && /* @__PURE__ */ o(
1947
+ "div",
1948
+ {
1949
+ className: te.description,
1950
+ dangerouslySetInnerHTML: {
1951
+ __html: y && !t ? "Оставьте номер телефона для получения консультации" : `${/* @__PURE__ */ o("div", { children: "привет" })}`
1952
+ }
1953
+ }
1954
+ ),
1955
+ /* @__PURE__ */ x("form", { onSubmit: I(Fe), children: [
1956
+ /* @__PURE__ */ x(cr, { className: te.inputWrapper, children: [
1957
+ /* @__PURE__ */ o(
1958
+ tt,
1959
+ {
1960
+ width: "full",
1961
+ size_s: "large",
1962
+ variant: "light",
1963
+ placeholder: "Введите имя",
1964
+ "data-testid": "modal_name",
1965
+ ...j("name", { required: !0, pattern: fr }),
1966
+ onBlur: (ae) => $(ae, {
1967
+ action_element_status: V.name ? "error" : "success",
1968
+ action_element: `input_${U}_name`
1969
+ }),
1970
+ error: !!V.name
1971
+ }
1972
+ ),
1973
+ n && /* @__PURE__ */ o(
1974
+ Ks,
1975
+ {
1976
+ name: "phone",
1977
+ control: E,
1978
+ rules: {
1979
+ required: A || W || h && !G,
1980
+ pattern: { value: pr, message: "" }
1981
+ },
1982
+ defaultValue: "",
1983
+ render: ({ field: ae }) => /* @__PURE__ */ o(
1984
+ tt,
1985
+ {
1986
+ inputMode: "numeric",
1987
+ isPhoneIMask: !0,
1988
+ ...ae,
1989
+ width: "full",
1990
+ "data-testid": "phone_modal",
1991
+ type: "tel",
1992
+ error: !!V.phone,
1993
+ size_s: "large",
1994
+ variant: "light",
1995
+ onBlur: (Ie) => $(Ie, {
1996
+ action_element_status: V.phone ? "error" : "success",
1997
+ action_element: `input_${U}_phone`
1998
+ })
1999
+ }
2000
+ )
2001
+ }
2002
+ ),
2003
+ l && /* @__PURE__ */ o(
2004
+ tt,
2005
+ {
2006
+ width: "full",
2007
+ size_s: "large",
2008
+ variant: "light",
2009
+ placeholder: "Введите email",
2010
+ "data-testid": "modal_email",
2011
+ ...j("email", {
2012
+ required: A || h && !G,
2013
+ pattern: mr
2014
+ }),
2015
+ error: !!V.email,
2016
+ onBlur: (ae) => $(ae, {
2017
+ action_element_status: V.email ? "error" : "success",
2018
+ action_element: `input_${U}_email`
2019
+ })
2020
+ }
2021
+ ),
2022
+ d && /* @__PURE__ */ o(
2023
+ hr,
2024
+ {
2025
+ "data-testid": "modal_textarea",
2026
+ placeholder: S,
2027
+ rows: C,
2028
+ width: "full",
2029
+ ...j("textarea")
2030
+ }
2031
+ ),
2032
+ w && !t && R && /* @__PURE__ */ o(
2033
+ wt,
2034
+ {
2035
+ "data-testid": "modal_advCheckBox",
2036
+ isChecked: ke,
2037
+ error: !!V.advCheckBox,
2038
+ text: w.text,
2039
+ ...j("advCheckBox", { required: w?.isRequired })
2040
+ }
2041
+ ),
2042
+ /* @__PURE__ */ x(
2043
+ wt,
2044
+ {
2045
+ "data-testid": "modal_personalCheckBox",
2046
+ isChecked: ce,
2047
+ error: !!V.personalCheckBox,
2048
+ ...j("personalCheckBox", { required: !t }),
2049
+ children: [
2050
+ t && /* @__PURE__ */ x("div", { className: te.checkboxText, children: [
2051
+ "Я принимаю условия",
2052
+ " ",
2053
+ /* @__PURE__ */ o(
2054
+ "a",
2055
+ {
2056
+ className: te.linkPolicy,
2057
+ href: z?.[
2058
+ "personal-data"
2059
+ /* PERSONAL_DATA */
2060
+ ] || "/documents/docs",
2061
+ target: "_blank",
2062
+ rel: "noopener noreferrer",
2063
+ children: "Политики обработки"
2064
+ }
2065
+ ),
2066
+ " ",
2067
+ "и",
2068
+ " ",
2069
+ /* @__PURE__ */ o(
2070
+ "a",
2071
+ {
2072
+ className: te.linkPolicy,
2073
+ href: z?.[
2074
+ "privacy-policy"
2075
+ /* PRIVACY_POLICY */
2076
+ ] || "/documents/politika-konfidenczialnosti",
2077
+ target: "_blank",
2078
+ rel: "noopener noreferrer",
2079
+ children: "защиты персональных данных"
2080
+ }
2081
+ ),
2082
+ ", даю",
2083
+ " ",
2084
+ /* @__PURE__ */ o(
2085
+ "a",
2086
+ {
2087
+ className: te.linkPolicy,
2088
+ href: z?.mailing || "/documents/soglasie-na-rassylki",
2089
+ target: "_blank",
2090
+ rel: "noopener noreferrer",
2091
+ children: "согласие на получение новостных и рекламных сообщений"
2092
+ }
2093
+ )
2094
+ ] }),
2095
+ !t && /* @__PURE__ */ x("div", { className: te.checkboxText, children: [
2096
+ "Я принимаю условия",
2097
+ " ",
2098
+ /* @__PURE__ */ o(
2099
+ "a",
2100
+ {
2101
+ className: te.linkPolicy,
2102
+ href: z?.[
2103
+ "privacy-policy"
2104
+ /* PRIVACY_POLICY */
2105
+ ] || "/documents/politika-konfidenczialnosti",
2106
+ target: "_blank",
2107
+ rel: "noopener noreferrer",
2108
+ children: "Политики обработки и защиты персональных данных"
2109
+ }
2110
+ ),
2111
+ ", даю",
2112
+ " ",
2113
+ /* @__PURE__ */ o(
2114
+ "a",
2115
+ {
2116
+ className: te.linkPolicy,
2117
+ href: z?.[
2118
+ "personal-data"
2119
+ /* PERSONAL_DATA */
2120
+ ] || "/documents/docs",
2121
+ target: "_blank",
2122
+ rel: "noopener noreferrer",
2123
+ children: "согласие на обработку персональных данных"
2124
+ }
2125
+ )
2126
+ ] })
2127
+ ]
2128
+ }
2129
+ ),
2130
+ /* @__PURE__ */ o(
2131
+ Ae,
2132
+ {
2133
+ "data-testid": "modal_submit",
2134
+ variant: "blue",
2135
+ width: "full",
2136
+ type: "submit",
2137
+ size: "large",
2138
+ as: "button",
2139
+ additionalClass: te.modalBtn,
2140
+ onClick: () => {
2141
+ D && D();
2142
+ },
2143
+ disabled: !!V.name || !!V.phone && W || !!V.email && A || !!V.advCheckBox && w?.isRequired || !!V.personalCheckBox && !t,
2144
+ children: "Отправить запрос"
2145
+ }
2146
+ )
2147
+ ] }),
2148
+ /* @__PURE__ */ o(
2149
+ Ae,
2150
+ {
2151
+ additionalClass: te.btn,
2152
+ onClick: () => r(!1),
2153
+ as: "button",
2154
+ variant: "gray",
2155
+ type: "button",
2156
+ size: "small",
2157
+ children: /* @__PURE__ */ o(
2158
+ Ne,
2159
+ {
2160
+ name: "close",
2161
+ size: "16",
2162
+ color: "#141416"
2163
+ }
2164
+ )
2165
+ }
2166
+ )
2167
+ ] })
2168
+ ]
2169
+ }
2170
+ )
2171
+ }
2172
+ ) : null;
2173
+ }, vi = "_snippet_1vgdm_1", bi = "_snippetLast_1vgdm_9", gi = "_snippets_1vgdm_25", Si = "_retailSnippets_1vgdm_30", xi = "_shownSnippets_1vgdm_35", Ni = "_addSnippets_1vgdm_64", ki = "_addSnippetsActive_1vgdm_80", Fi = "_addSnippetsList_1vgdm_85", wi = "_closeSnippetBtn_1vgdm_129", be = {
2174
+ snippet: vi,
2175
+ snippetLast: bi,
2176
+ snippets: gi,
2177
+ retailSnippets: Si,
2178
+ shownSnippets: xi,
2179
+ addSnippets: Ni,
2180
+ addSnippetsActive: ki,
2181
+ addSnippetsList: Fi,
2182
+ closeSnippetBtn: wi
2183
+ }, Et = Be.bind(be), Ci = ({ lot: e }) => {
2184
+ const { type: r, windowViews: t, isCorner: i } = e || {}, [l, n] = Te(!1), d = br({ ...e }), { isDesktop: u, isMobile: W } = je();
2185
+ if (r === 3) {
2186
+ if (W && (!t || t.length === 0))
2187
+ return null;
2188
+ let A = 0;
2189
+ const h = u ? 36 : 28, S = [], y = [];
2190
+ if (i) {
2191
+ const P = "Угловая";
2192
+ if (A + P.length <= h)
2193
+ S.push(P), A += P.length;
2194
+ else
2195
+ return S;
2196
+ }
2197
+ if (t) {
2198
+ const P = t.filter((w) => w && w.trim() !== "");
2199
+ let L = 0, C = A;
2200
+ for (let w = 0; w < P.length; w++) {
2201
+ const R = P[w], b = L > 0 ? " " + R : R;
2202
+ if (C + b.length <= h)
2203
+ S.push(R), C += b.length, L++;
2204
+ else {
2205
+ if (L === 0) {
2206
+ const k = h - C;
2207
+ if (k > 3) {
2208
+ const B = R.substring(0, k - 3) + "...";
2209
+ S.push(B), C = h;
2210
+ } else
2211
+ S.push("..."), C += 3;
2212
+ }
2213
+ y.push(...P.slice(w));
2214
+ break;
2215
+ }
2216
+ }
2217
+ A = C;
2218
+ }
2219
+ return /* @__PURE__ */ x("div", { className: be.retailSnippets, children: [
2220
+ /* @__PURE__ */ o("ul", { className: be.shownSnippets, children: S?.map((P, L) => /* @__PURE__ */ o("li", { className: be.snippets, children: P }, L)) }),
2221
+ y?.length > 0 && /* @__PURE__ */ x(
2222
+ "div",
2223
+ {
2224
+ className: Et(be.addSnippets, { [be.addSnippetsActive]: l }),
2225
+ onClick: (P) => {
2226
+ u || (P.stopPropagation(), P.preventDefault(), n((L) => !L));
2227
+ },
2228
+ onMouseEnter: () => {
2229
+ u && n(!0);
2230
+ },
2231
+ onMouseLeave: () => {
2232
+ u && n(!1);
2233
+ },
2234
+ children: [
2235
+ "+" + y?.length,
2236
+ l && /* @__PURE__ */ x("ul", { className: be.addSnippetsList, children: [
2237
+ y.map((P, L) => /* @__PURE__ */ o("li", { children: P }, L)),
2238
+ /* @__PURE__ */ o("div", { className: be.closeSnippetBtn, children: /* @__PURE__ */ o(
2239
+ Ne,
2240
+ {
2241
+ name: "close",
2242
+ size: "16",
2243
+ color: "#ffffff"
2244
+ }
2245
+ ) })
2246
+ ] })
2247
+ ]
2248
+ }
2249
+ )
2250
+ ] });
2251
+ }
2252
+ return d.length ? /* @__PURE__ */ o("div", { className: be.snippets, children: d.map((A, h) => {
2253
+ const S = h === d.length - 1;
2254
+ return /* @__PURE__ */ o(
2255
+ "div",
2256
+ {
2257
+ className: Et(be.snippet, S ? "" : be.snippetLast),
2258
+ children: A.text
2259
+ },
2260
+ h
2261
+ );
2262
+ }) }) : null;
2263
+ }, Ti = "_root_11slz_1", Ai = "_lotImageWrapper_11slz_17", Pi = "_lotNameContent_11slz_24", Bi = "_lotNameWrapper_11slz_30", Ii = "_lotName_11slz_24", Wi = "_lotNumber_11slz_45", Li = "_content_11slz_54", Vi = "_featuresWrapper_11slz_60", _i = "_tags_11slz_65", ji = "_dkpbn_11slz_69", Oi = "_dkpbnText_11slz_75", Ri = "_rootRow_11slz_83", Ei = "_priceBlock_11slz_118", Mi = "_paymentLink_11slz_125", le = {
2264
+ root: Ti,
2265
+ lotImageWrapper: Ai,
2266
+ lotNameContent: Pi,
2267
+ lotNameWrapper: Bi,
2268
+ lotName: Ii,
2269
+ lotNumber: Wi,
2270
+ content: Li,
2271
+ featuresWrapper: Vi,
2272
+ tags: _i,
2273
+ dkpbn: ji,
2274
+ dkpbnText: Oi,
2275
+ rootRow: Ri,
2276
+ priceBlock: Ei,
2277
+ paymentLink: Mi
2278
+ }, Di = Be.bind(le), ra = ({
2279
+ lot: e,
2280
+ hidFinParam: r = !1,
2281
+ isDkpbn: t = !1,
2282
+ imgNode: i,
2283
+ onPriceClickHandler: l,
2284
+ addClassname: n,
2285
+ isVertical: d = !1,
2286
+ isFavorite: u,
2287
+ favoriteClickHandler: W,
2288
+ isMoreDetails: A
2289
+ }) => {
2290
+ const { interiorPlanImg: h, floorPlanImg: S, area: y, subTypeName: P, number: L } = e || {}, C = P + ", " + yr(y) + "м²", w = h ?? S ?? "";
2291
+ return e ? /* @__PURE__ */ x("div", { className: Di(le.root, n, { [le.rootRow]: !d }), children: [
2292
+ /* @__PURE__ */ x("div", { className: le.lotImageWrapper, children: [
2293
+ i || /* @__PURE__ */ o(
2294
+ "img",
2295
+ {
2296
+ loading: "lazy",
2297
+ src: w,
2298
+ width: 295,
2299
+ height: 213,
2300
+ alt: "logo_image"
2301
+ }
2302
+ ),
2303
+ W && /* @__PURE__ */ o(
2304
+ zt,
2305
+ {
2306
+ handleClickFavorite: (R) => {
2307
+ W && W(e), R.preventDefault(), R.stopPropagation();
2308
+ },
2309
+ isFavorite: u
2310
+ }
2311
+ )
2312
+ ] }),
2313
+ /* @__PURE__ */ x("div", { className: le.content, children: [
2314
+ /* @__PURE__ */ x("div", { className: le.lotNameWrapper, children: [
2315
+ /* @__PURE__ */ x("div", { className: le.lotNameContent, children: [
2316
+ /* @__PURE__ */ o("p", { className: le.lotName, children: C }),
2317
+ /* @__PURE__ */ o("p", { className: le.lotNumber, children: L }),
2318
+ /* @__PURE__ */ o(Ci, { lot: e }),
2319
+ /* @__PURE__ */ o(Tt, { lot: e, classname: le.tags })
2320
+ ] }),
2321
+ !r && /* @__PURE__ */ x("div", { className: le.priceBlock, children: [
2322
+ /* @__PURE__ */ o(
2323
+ vr,
2324
+ {
2325
+ lot: e,
2326
+ isVertical: d,
2327
+ onPriceClickHandler: l,
2328
+ classname: le.price
2329
+ }
2330
+ ),
2331
+ t && /* @__PURE__ */ x("div", { className: le.dkpbn, children: [
2332
+ /* @__PURE__ */ o("span", { className: le.dkpbnText, children: "Доступен возврат НДС" }),
2333
+ /* @__PURE__ */ o(nt, { text: "Заключение договора купли-продажи будущей недвижимости (ДКПБН) дает право на возврат НДС" })
2334
+ ] })
2335
+ ] })
2336
+ ] }),
2337
+ /* @__PURE__ */ x("div", { className: le.featuresWrapper, children: [
2338
+ /* @__PURE__ */ o(Tt, { lot: e, classname: le.tags }),
2339
+ /* @__PURE__ */ o(gr, { specialProgram: e.specialProgram, classname: le.paymentLink, isMoreDetails: A, hidFinParam: r })
2340
+ ] })
2341
+ ] })
2342
+ ] }) : null;
2343
+ }, zi = "_root_1v1y9_1", qi = "_filterWithSaveModal_1v1y9_15", Xi = "_modalAddBody_1v1y9_20", Ui = "_closeBtn_1v1y9_29", Zi = "_btnName_1v1y9_35", Gi = "_modalTitle_1v1y9_39", Hi = "_tabSWitcherWrapper_1v1y9_48", Ji = "_switcherTitle_1v1y9_77", Yi = "_switcherScroll_1v1y9_84", Ki = "_tabs_1v1y9_93", Qi = "_selectWrapper_1v1y9_98", $i = "_filterOption_1v1y9_102", en = "_btnWrapper_1v1y9_110", tn = "_resetBtn_1v1y9_116", rn = "_saveBtn_1v1y9_117", sn = "_desktopWrapper_1v1y9_121", nn = "_desktopWrapperOpen_1v1y9_144", X = {
2344
+ root: zi,
2345
+ filterWithSaveModal: qi,
2346
+ modalAddBody: Xi,
2347
+ closeBtn: Ui,
2348
+ btnName: Zi,
2349
+ modalTitle: Gi,
2350
+ tabSWitcherWrapper: Hi,
2351
+ switcherTitle: Ji,
2352
+ switcherScroll: Yi,
2353
+ tabs: Ki,
2354
+ selectWrapper: Qi,
2355
+ filterOption: $i,
2356
+ btnWrapper: en,
2357
+ resetBtn: tn,
2358
+ saveBtn: rn,
2359
+ desktopWrapper: sn,
2360
+ desktopWrapperOpen: nn
2361
+ };
2362
+ var st = { exports: {} };
2363
+ var Mt;
2364
+ function an() {
2365
+ return Mt || (Mt = 1, (function(e) {
2366
+ (function() {
2367
+ var r = {}.hasOwnProperty;
2368
+ function t() {
2369
+ for (var n = "", d = 0; d < arguments.length; d++) {
2370
+ var u = arguments[d];
2371
+ u && (n = l(n, i.call(this, u)));
2372
+ }
2373
+ return n;
2374
+ }
2375
+ function i(n) {
2376
+ if (typeof n == "string" || typeof n == "number")
2377
+ return this && this[n] || n;
2378
+ if (typeof n != "object")
2379
+ return "";
2380
+ if (Array.isArray(n))
2381
+ return t.apply(this, n);
2382
+ if (n.toString !== Object.prototype.toString && !n.toString.toString().includes("[native code]"))
2383
+ return n.toString();
2384
+ var d = "";
2385
+ for (var u in n)
2386
+ r.call(n, u) && n[u] && (d = l(d, this && this[u] || u));
2387
+ return d;
2388
+ }
2389
+ function l(n, d) {
2390
+ return d ? n ? n + " " + d : n + d : n;
2391
+ }
2392
+ e.exports ? (t.default = t, e.exports = t) : window.classNames = t;
2393
+ })();
2394
+ })(st)), st.exports;
2395
+ }
2396
+ var ln = an();
2397
+ const on = /* @__PURE__ */ or(ln), cn = ({
2398
+ selectedTabs: e = [],
2399
+ selectedValues: r = [],
2400
+ onClickItem: t,
2401
+ disabledOptions: i = [],
2402
+ tabs: l = [],
2403
+ onChange: n,
2404
+ setSelectedTabs: d,
2405
+ onSaveClick: u,
2406
+ onClearClick: W
2407
+ }) => {
2408
+ const { isMobile: A } = je(), [h, S] = Te(!1), y = Dt(null), [P, L] = Te(e), [C] = Te(r), [w, R] = Te(P), [b, k] = Te(C), B = (O) => {
2409
+ if (t && t(O), i.some((j) => j.value === O.value))
2410
+ return;
2411
+ const K = b.some((j) => j.value === O.value) ? b.filter((j) => j.value !== O.value) : [...b, O];
2412
+ k(K);
2413
+ }, g = () => {
2414
+ L(l), R(l), k([]), W(), n && (n([]), d?.(l));
2415
+ }, D = () => {
2416
+ k(r), R(e);
2417
+ }, U = () => {
2418
+ D(), S(!1);
2419
+ }, z = (O) => {
2420
+ O.stopPropagation(), u(), n && (d?.(w), n(b)), S(!1);
2421
+ };
2422
+ return _e(() => {
2423
+ h || R((O) => JSON.stringify(O) !== JSON.stringify(e) ? e : O);
2424
+ }, [h, e]), _e(() => {
2425
+ const O = (K) => {
2426
+ if (!y.current) return;
2427
+ const j = K.target;
2428
+ y.current.contains(j) || j.closest("svg") || U();
2429
+ };
2430
+ return h ? document.addEventListener("click", O) : document.removeEventListener("click", O), () => {
2431
+ document.removeEventListener("click", O);
2432
+ };
2433
+ }, [h]), {
2434
+ isMobile: A,
2435
+ handleClearClick: g,
2436
+ handleCloseModal: U,
2437
+ handleOptionClick: B,
2438
+ handleSaveClick: z,
2439
+ localSelectedTabs: w,
2440
+ selectedOptions: b,
2441
+ setSelectedOptions: k,
2442
+ isModalOpen: h,
2443
+ setIsModalOpen: S,
2444
+ setLocalSelectedTabs: R,
2445
+ containerRef: y
2446
+ };
2447
+ }, dn = on.bind(X), sa = ({
2448
+ disabledOptions: e,
2449
+ tabs: r = [],
2450
+ selectOptions: t = [],
2451
+ onChange: i,
2452
+ onClick: l = () => null,
2453
+ selectedValues: n,
2454
+ setSelectedTabs: d,
2455
+ selectedTabs: u,
2456
+ onClickItem: W,
2457
+ onCLickSelect: A,
2458
+ dataTestId: h,
2459
+ onSaveClick: S = () => null,
2460
+ onClearClick: y = () => null,
2461
+ onTabClick: P = () => null,
2462
+ btnName: L = "Фильтр"
2463
+ }) => {
2464
+ const {
2465
+ handleCloseModal: C,
2466
+ localSelectedTabs: w,
2467
+ selectedOptions: R,
2468
+ isMobile: b,
2469
+ handleOptionClick: k,
2470
+ handleClearClick: B,
2471
+ handleSaveClick: g,
2472
+ isModalOpen: D,
2473
+ setLocalSelectedTabs: U,
2474
+ setIsModalOpen: z,
2475
+ containerRef: O
2476
+ } = cn({
2477
+ selectedTabs: u,
2478
+ onClickItem: W,
2479
+ setSelectedTabs: d,
2480
+ tabs: r,
2481
+ onChange: i,
2482
+ disabledOptions: e,
2483
+ selectedValues: n,
2484
+ onSaveClick: S,
2485
+ onClearClick: y
2486
+ }), K = () => /* @__PURE__ */ x(it, { children: [
2487
+ /* @__PURE__ */ o(
2488
+ "div",
2489
+ {
2490
+ className: X.closeBtn,
2491
+ onClick: () => {
2492
+ C();
2493
+ },
2494
+ children: /* @__PURE__ */ o(
2495
+ Ne,
2496
+ {
2497
+ name: "close",
2498
+ size: "24"
2499
+ }
2500
+ )
2501
+ }
2502
+ ),
2503
+ /* @__PURE__ */ o("div", { className: X.modalTitle, children: "Фильтры" }),
2504
+ /* @__PURE__ */ x("div", { className: X.tabSWitcherWrapper, children: [
2505
+ /* @__PURE__ */ o("div", { className: X.switcherTitle, children: "Готовность" }),
2506
+ /* @__PURE__ */ o("div", { className: X.switcherScroll, children: /* @__PURE__ */ o(
2507
+ Ue,
2508
+ {
2509
+ variant: "grayRow",
2510
+ addClassName: X.tabs,
2511
+ isApart: !0,
2512
+ children: r?.map((j, I) => {
2513
+ const F = j.value;
2514
+ return /* @__PURE__ */ o(
2515
+ Ue.Item,
2516
+ {
2517
+ itemsLength: r?.length,
2518
+ mini: !0,
2519
+ size_s: "small",
2520
+ value: F,
2521
+ onClick: () => {
2522
+ },
2523
+ checked: w?.find((E) => E.value === F)?.state ?? !1,
2524
+ onChange: () => {
2525
+ U?.(
2526
+ (E) => E.map((M) => M.value === F ? { ...M, state: !M.state } : M)
2527
+ );
2528
+ },
2529
+ index: I,
2530
+ children: F
2531
+ },
2532
+ I
2533
+ );
2534
+ })
2535
+ }
2536
+ ) })
2537
+ ] }),
2538
+ /* @__PURE__ */ o("div", { className: X.selectWrapper, children: t?.map((j, I) => /* @__PURE__ */ o(
2539
+ Ct,
2540
+ {
2541
+ sizeIcon: "24",
2542
+ addClassName: X.filterOption,
2543
+ disabledOptions: [],
2544
+ clickableOptions: t?.map((F) => F.value.toString()),
2545
+ selectedOptions: R,
2546
+ option: j,
2547
+ handleOptionClick: k
2548
+ },
2549
+ I
2550
+ )) }),
2551
+ /* @__PURE__ */ x("div", { className: X.btnWrapper, children: [
2552
+ /* @__PURE__ */ o(
2553
+ Ae,
2554
+ {
2555
+ as: "button",
2556
+ variant: "gray",
2557
+ additionalClass: X.resetBtn,
2558
+ onClick: B,
2559
+ children: "Сбросить"
2560
+ }
2561
+ ),
2562
+ /* @__PURE__ */ o(
2563
+ Ae,
2564
+ {
2565
+ as: "button",
2566
+ additionalClass: X.saveBtn,
2567
+ onClick: g,
2568
+ children: "Сохранить"
2569
+ }
2570
+ )
2571
+ ] })
2572
+ ] });
2573
+ return /* @__PURE__ */ x(it, { children: [
2574
+ /* @__PURE__ */ x("div", { style: { position: "relative" }, children: [
2575
+ /* @__PURE__ */ x(
2576
+ "div",
2577
+ {
2578
+ className: X.root,
2579
+ "data-testid": h,
2580
+ onClick: () => {
2581
+ A && A(), l && l(), b ? z((j) => !j) : D || z(!0);
2582
+ },
2583
+ children: [
2584
+ /* @__PURE__ */ o("div", { className: X.btnName, children: L }),
2585
+ /* @__PURE__ */ o(
2586
+ Ne,
2587
+ {
2588
+ name: "filter",
2589
+ size: "16"
2590
+ }
2591
+ )
2592
+ ]
2593
+ }
2594
+ ),
2595
+ !b && /* @__PURE__ */ x(
2596
+ "div",
2597
+ {
2598
+ ref: O,
2599
+ className: dn(X.desktopWrapper, { [X.desktopWrapperOpen]: D }),
2600
+ children: [
2601
+ /* @__PURE__ */ o(
2602
+ "div",
2603
+ {
2604
+ className: X.closeBtn,
2605
+ onClick: () => {
2606
+ C();
2607
+ },
2608
+ children: /* @__PURE__ */ o(
2609
+ Ne,
2610
+ {
2611
+ name: "close",
2612
+ size: "24"
2613
+ }
2614
+ )
2615
+ }
2616
+ ),
2617
+ /* @__PURE__ */ o("div", { className: X.modalTitle, children: "Фильтры" }),
2618
+ /* @__PURE__ */ x("div", { className: X.tabSWitcherWrapper, children: [
2619
+ /* @__PURE__ */ o("div", { className: X.switcherTitle, children: "Готовность" }),
2620
+ /* @__PURE__ */ o("div", { className: X.switcherScroll, children: /* @__PURE__ */ o(
2621
+ Ue,
2622
+ {
2623
+ variant: "grayRow",
2624
+ addClassName: X.tabs,
2625
+ isApart: !0,
2626
+ children: r?.map((j, I) => {
2627
+ const F = j.value;
2628
+ return /* @__PURE__ */ o(
2629
+ Ue.Item,
2630
+ {
2631
+ itemsLength: r?.length,
2632
+ dataTestId: `filterWithSave_year_${F}_tab`,
2633
+ size_s: "small",
2634
+ mini: !0,
2635
+ value: F,
2636
+ onClick: () => P(),
2637
+ checked: w?.find((E) => E.value === F)?.state ?? !1,
2638
+ onChange: () => {
2639
+ U?.(
2640
+ (E) => E.map((M) => M.value === F ? { ...M, state: !M.state } : M)
2641
+ );
2642
+ },
2643
+ index: I,
2644
+ addItemClassName: X.tabSwitcher,
2645
+ children: F
2646
+ },
2647
+ I
2648
+ );
2649
+ })
2650
+ }
2651
+ ) })
2652
+ ] }),
2653
+ /* @__PURE__ */ o("div", { className: X.selectWrapper, children: t?.map((j, I) => /* @__PURE__ */ o(
2654
+ Ct,
2655
+ {
2656
+ sizeIcon: "24",
2657
+ dataTestId: `filterWIthSave_${I}_select`,
2658
+ addClassName: X.filterOption,
2659
+ disabledOptions: [],
2660
+ clickableOptions: t?.map((F) => F.value.toString()),
2661
+ selectedOptions: R,
2662
+ option: j,
2663
+ handleOptionClick: k
2664
+ },
2665
+ I
2666
+ )) }),
2667
+ /* @__PURE__ */ x("div", { className: X.btnWrapper, children: [
2668
+ /* @__PURE__ */ o(
2669
+ Ae,
2670
+ {
2671
+ "data-testid": "filterWithSave_clear_btn",
2672
+ as: "button",
2673
+ variant: "gray",
2674
+ additionalClass: X.resetBtn,
2675
+ onClick: B,
2676
+ children: "Сбросить"
2677
+ }
2678
+ ),
2679
+ /* @__PURE__ */ o(
2680
+ Ae,
2681
+ {
2682
+ "data-testid": "filterWithSave_save_btn",
2683
+ as: "button",
2684
+ additionalClass: X.saveBtn,
2685
+ onClick: g,
2686
+ children: "Сохранить"
2687
+ }
2688
+ )
2689
+ ] })
2690
+ ]
2691
+ }
2692
+ )
2693
+ ] }),
2694
+ b && /* @__PURE__ */ o(
2695
+ ct,
2696
+ {
2697
+ isOpen: D,
2698
+ emitIsOpen: z,
2699
+ isTransparentBack: !0,
2700
+ additionalClassModalBody: X.modalAddBody,
2701
+ additionalClass: X.filterWithSaveModal,
2702
+ children: /* @__PURE__ */ o(K, {})
2703
+ }
2704
+ )
2705
+ ] });
2706
+ };
2707
+ export {
2708
+ ra as C,
2709
+ sa as F,
2710
+ ea as L,
2711
+ ta as M,
2712
+ mi as P,
2713
+ Ws as S,
2714
+ Ue as T,
2715
+ Ci as a,
2716
+ cn as b,
2717
+ Bs as u
2718
+ };