stone-kit 0.0.1081 → 0.0.1085

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