stone-kit 0.0.1085 → 0.0.1086

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