stone-kit 0.0.885 → 0.0.887

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 (134) hide show
  1. package/dist/App.d.ts +2 -0
  2. package/dist/Router.d.ts +2 -0
  3. package/dist/components/Logo/ui/Logo.types.d.ts +8 -8
  4. package/dist/layout/Layout.d.ts +6 -0
  5. package/dist/layout/components/Header/Header.d.ts +1 -0
  6. package/dist/layout/components/Menu.d.ts +1 -0
  7. package/dist/main.js +7727 -62
  8. package/dist/pages/ButtonsPage/ButtonState/ButtonState.d.ts +7 -0
  9. package/dist/pages/ButtonsPage/Buttons.d.ts +1 -0
  10. package/dist/pages/CheckboxPage/CheckboxPage.d.ts +1 -0
  11. package/dist/pages/FormsPage/FormsPage.d.ts +2 -0
  12. package/dist/pages/HomePage/HomePage.d.ts +2 -0
  13. package/dist/pages/IconsPage/IconsPage.d.ts +1 -0
  14. package/dist/pages/InputPage/InputPage.d.ts +1 -0
  15. package/dist/pages/LogoPage/LogoPage.d.ts +1 -0
  16. package/dist/pages/LotsPage/LotsPage.d.ts +1 -0
  17. package/dist/pages/ModalsPage/ModalPage.d.ts +2 -0
  18. package/dist/pages/SelectPage/SelectPage.d.ts +1 -0
  19. package/dist/pages/SelectPage/const.d.ts +13 -0
  20. package/dist/pages/TabsPage/TabsPage.d.ts +2 -0
  21. package/dist/pages/TagsPage/TagsPage.d.ts +1 -0
  22. package/dist/style.css +1 -1
  23. package/package.json +3 -5
  24. package/dist/FilterWithSave-Bp6rH8Pe.js +0 -2230
  25. package/dist/Option-BVIm7wOW.js +0 -83
  26. package/dist/PinTrans-D6OZq76b.js +0 -10
  27. package/dist/SmallFilter-C-VKnbkP.js +0 -10
  28. package/dist/components/Button/index.js +0 -4
  29. package/dist/components/Button/ui/Button.js +0 -94
  30. package/dist/components/Button/ui/Button.types.js +0 -15
  31. package/dist/components/CheckBox/CheckBox.js +0 -84
  32. package/dist/components/CheckBox/CheckBox.types.js +0 -1
  33. package/dist/components/CheckBox/index.js +0 -4
  34. package/dist/components/CheckBoxNew/CheckBox.types.js +0 -6
  35. package/dist/components/CheckBoxNew/CheckBoxNew.js +0 -45
  36. package/dist/components/CheckboxSelect/index.js +0 -4
  37. package/dist/components/CheckboxSelect/ui/CheckboxSelect.js +0 -51
  38. package/dist/components/DestinationTab/index.js +0 -4
  39. package/dist/components/DestinationTab/ui/DestinationTab.js +0 -75
  40. package/dist/components/DestinationTab/ui/DestinationTab.types.js +0 -6
  41. package/dist/components/FieldInput/index.js +0 -4
  42. package/dist/components/FieldInput/ui/FieldInput.js +0 -22
  43. package/dist/components/FieldInput/ui/FieldInput.types.js +0 -1
  44. package/dist/components/FilterWithSave/hooks/useFilterWithSave.js +0 -28
  45. package/dist/components/FilterWithSave/ui/FilterWithSave.js +0 -9
  46. package/dist/components/Flex/index.js +0 -4
  47. package/dist/components/Flex/ui/Flex.js +0 -68
  48. package/dist/components/Flex/ui/Flex.types.js +0 -1
  49. package/dist/components/FormModal/ui/ModalForm.js +0 -30
  50. package/dist/components/FormModal/utils/reg.js +0 -6
  51. package/dist/components/GroupedInput/index.js +0 -4
  52. package/dist/components/GroupedInput/ui/GroupedInputs.js +0 -8
  53. package/dist/components/GroupedInput/ui/GroupedInputs.types.js +0 -1
  54. package/dist/components/Input/index.js +0 -4
  55. package/dist/components/Input/ui/Input.js +0 -3346
  56. package/dist/components/Input/ui/Input.types.js +0 -1
  57. package/dist/components/Logo/index.js +0 -4
  58. package/dist/components/Logo/ui/Logo.js +0 -63
  59. package/dist/components/Logo/ui/Logo.types.js +0 -13
  60. package/dist/components/LotCard/hooks/useLotCard.js +0 -31
  61. package/dist/components/LotCard/index.js +0 -4
  62. package/dist/components/LotCard/ui/LotCard.js +0 -11
  63. package/dist/components/LotCard/ui/LotCard.types.js +0 -1
  64. package/dist/components/LotCard/utils/checkBedroomsCount.js +0 -20
  65. package/dist/components/LotCard/utils/const.js +0 -11
  66. package/dist/components/LotCard/utils/formatPrice.js +0 -11
  67. package/dist/components/LotCard/utils/getTagsFeatures.js +0 -13
  68. package/dist/components/LotCard/utils/monthlyPayment.js +0 -4
  69. package/dist/components/LotCardSkeleton/index.js +0 -4
  70. package/dist/components/LotCardSkeleton/ui/LotCardSkeleton.js +0 -83
  71. package/dist/components/MetroLabel/ui/MetroLabel.js +0 -44
  72. package/dist/components/MetroLabel/ui/MetroLabel.types.js +0 -1
  73. package/dist/components/MetroTag/index.js +0 -4
  74. package/dist/components/MetroTag/ui/MetroTag.js +0 -142
  75. package/dist/components/MetroTag/ui/MetroTag.types.js +0 -1
  76. package/dist/components/Modal/index.js +0 -4
  77. package/dist/components/Modal/ui/Modal.js +0 -77
  78. package/dist/components/Modal/ui/Modal.types.js +0 -1
  79. package/dist/components/ModalSuccess/ModalSuccess.js +0 -61
  80. package/dist/components/ModalSuccess/ModalSuccess.types.js +0 -1
  81. package/dist/components/NewIcon/icons/PinTrans.js +0 -6
  82. package/dist/components/NewIcon/icons/SmallFilter.js +0 -6
  83. package/dist/components/NewIcon/index.js +0 -4
  84. package/dist/components/NewIcon/ui/NewIcon.js +0 -314
  85. package/dist/components/NewIcon/ui/NewIcon.types.js +0 -1
  86. package/dist/components/NewIcon/ui/iconTypes.js +0 -60
  87. package/dist/components/ProjectCardSkeleton/index.js +0 -4
  88. package/dist/components/ProjectCardSkeleton/ui/ProjectCardSkeleton.js +0 -34
  89. package/dist/components/RoundButton/index.js +0 -4
  90. package/dist/components/RoundButton/ui/RoundButton.js +0 -73
  91. package/dist/components/RoundButton/ui/RoundButton.types.js +0 -16
  92. package/dist/components/Select/index.js +0 -4
  93. package/dist/components/Select/model/selectMode.js +0 -49
  94. package/dist/components/Select/ui/Category.js +0 -76
  95. package/dist/components/Select/ui/Option.js +0 -7
  96. package/dist/components/Select/ui/Select.js +0 -179
  97. package/dist/components/Select/ui/Select.types.js +0 -1
  98. package/dist/components/SliderNavigation/index.js +0 -4
  99. package/dist/components/SliderNavigation/ui/SliderNavigation.js +0 -65
  100. package/dist/components/SliderNavigation/ui/SliderNavigation.types.js +0 -1
  101. package/dist/components/SortSelect/hooks/useSortSelect.js +0 -6
  102. package/dist/components/SortSelect/index.js +0 -4
  103. package/dist/components/SortSelect/ui/SortSelect.js +0 -29
  104. package/dist/components/SortSelect/ui/SortSelect.types.js +0 -1
  105. package/dist/components/SummarySelect/index.js +0 -4
  106. package/dist/components/SummarySelect/ui/SummarySelect.js +0 -128
  107. package/dist/components/Switcher/index.js +0 -4
  108. package/dist/components/Switcher/ui/Switcher.js +0 -49
  109. package/dist/components/Switcher/ui/Switcher.types.js +0 -1
  110. package/dist/components/TabSelect/index.js +0 -4
  111. package/dist/components/TabSelect/ui/TabSelect.js +0 -49
  112. package/dist/components/TabSelect/ui/TabSelect.types.js +0 -1
  113. package/dist/components/TabSwitcher/index.js +0 -4
  114. package/dist/components/TabSwitcher/ui/TabSwitcher.js +0 -28
  115. package/dist/components/TabSwitcher/ui/TabSwitcher.types.js +0 -1
  116. package/dist/components/Tag/index.js +0 -4
  117. package/dist/components/Tag/ui/Tag.js +0 -79
  118. package/dist/components/Tag/ui/Tag.types.js +0 -20
  119. package/dist/components/Text/index.js +0 -4
  120. package/dist/components/Text/ui/Text.js +0 -22
  121. package/dist/components/Text/ui/Text.types.js +0 -1
  122. package/dist/components/TextArea/TextArea.js +0 -19
  123. package/dist/components/TextArea/TextArea.types.js +0 -1
  124. package/dist/components/ZoomControls/index.js +0 -4
  125. package/dist/components/ZoomControls/ui/ZoomControls.js +0 -31
  126. package/dist/components/ZoomControls/ui/ZoomControls.types.js +0 -1
  127. package/dist/components/mobileButton/index.js +0 -4
  128. package/dist/components/mobileButton/ui/MobileButton.js +0 -64
  129. package/dist/components/mobileButton/ui/MobileButton.types.js +0 -6
  130. package/dist/index-rKuIKazb.js +0 -45
  131. package/dist/shared/checkLargeOffice.js +0 -12
  132. package/dist/shared/deepEqual.js +0 -16
  133. package/dist/shared/useClientWidth.js +0 -14
  134. package/dist/useSortSelect-CjZXLFOG.js +0 -80
@@ -1,2230 +0,0 @@
1
- import { jsxs as N, jsx as d, Fragment as Pe } from "react/jsx-runtime";
2
- import { NewIcon as pe } from "./components/NewIcon/ui/NewIcon.js";
3
- import { Modal as st } from "./components/Modal/ui/Modal.js";
4
- import q, { forwardRef as Yt, useState as ve, useRef as Pt, useEffect as Ie } from "react";
5
- import { Text as it } from "./components/Text/ui/Text.js";
6
- import { c as Ee, g as Kt } from "./index-rKuIKazb.js";
7
- import { Button as ye } from "./components/Button/ui/Button.js";
8
- import "./components/mobileButton/ui/MobileButton.js";
9
- import "./components/DestinationTab/ui/DestinationTab.js";
10
- import "./components/RoundButton/ui/RoundButton.js";
11
- import { Tag as Oe } from "./components/Tag/ui/Tag.js";
12
- import "./components/Switcher/ui/Switcher.js";
13
- import { Flex as Qt } from "./components/Flex/ui/Flex.js";
14
- import { Input as Qe } from "./components/Input/ui/Input.js";
15
- import "react-dom";
16
- import "./components/GroupedInput/ui/GroupedInputs.js";
17
- import "./components/MetroTag/ui/MetroTag.js";
18
- import { formatPrice as $e } from "./components/LotCard/utils/formatPrice.js";
19
- import "./components/Select/ui/Select.js";
20
- import { useClientWidth as Le } from "./shared/useClientWidth.js";
21
- import { s as se, u as $t } from "./useSortSelect-CjZXLFOG.js";
22
- import "./components/SliderNavigation/ui/SliderNavigation.js";
23
- import "./components/LotCardSkeleton/ui/LotCardSkeleton.js";
24
- import "./components/TabSelect/ui/TabSelect.js";
25
- import { nameReg as er, phoneReg as tr, emailReg as rr } from "./components/FormModal/utils/reg.js";
26
- import { CheckBox as vt } from "./components/CheckBox/CheckBox.js";
27
- import { TextArea as sr } from "./components/TextArea/TextArea.js";
28
- import { O as bt } from "./Option-BVIm7wOW.js";
29
- import "./components/CheckBoxNew/CheckBoxNew.js";
30
- import "./components/CheckboxSelect/ui/CheckboxSelect.js";
31
- import { getTagsFeatures as ir } from "./components/LotCard/utils/getTagsFeatures.js";
32
- import { checkBedroomsCount as nr } from "./components/LotCard/utils/checkBedroomsCount.js";
33
- import { formatPayment as lr } from "./components/LotCard/utils/monthlyPayment.js";
34
- import { checkLargeOffice as ar } from "./shared/checkLargeOffice.js";
35
- const or = "_root_14gc5_1", cr = "_text_14gc5_18", dr = "_textMini_14gc5_26", ur = "_rootCol_14gc5_32", fr = "_item_14gc5_38", mr = "_whiteRow_14gc5_57", pr = "_firstItem_14gc5_68", hr = "_lastItem_14gc5_72", yr = "_whiteRowGrayLabel_14gc5_103", gr = "_labelItem_14gc5_118", vr = "_apart_14gc5_147", br = "_isLong_14gc5_147", Fr = "_autoWidth_14gc5_172", wr = "_mini_14gc5_176", xr = "_isDisabled_14gc5_184", Ar = "_grayRow_14gc5_208", Y = {
36
- root: or,
37
- text: cr,
38
- textMini: dr,
39
- rootCol: ur,
40
- item: fr,
41
- whiteRow: mr,
42
- firstItem: pr,
43
- lastItem: hr,
44
- whiteRowGrayLabel: yr,
45
- labelItem: gr,
46
- apart: vr,
47
- isLong: br,
48
- autoWidth: Fr,
49
- mini: wr,
50
- isDisabled: xr,
51
- grayRow: Ar,
52
- "tiny-size": "_tiny-size_14gc5_236",
53
- "small-size": "_small-size_14gc5_241",
54
- "medium-size": "_medium-size_14gc5_246",
55
- "large-size": "_large-size_14gc5_251",
56
- "text-tiny-size": "_text-tiny-size_14gc5_256",
57
- "text-small-size": "_text-small-size_14gc5_262",
58
- "text-medium-size": "_text-medium-size_14gc5_267",
59
- "text-large-size": "_text-large-size_14gc5_272",
60
- "small-size_m": "_small-size_m_14gc5_278",
61
- "medium-size_m": "_medium-size_m_14gc5_282",
62
- "large-size_m": "_large-size_m_14gc5_286",
63
- "text-small-size_m": "_text-small-size_m_14gc5_290",
64
- "text-medium-size_m": "_text-medium-size_m_14gc5_294",
65
- "text-large-size_m": "_text-large-size_m_14gc5_298",
66
- "small-size_l": "_small-size_l_14gc5_313",
67
- "medium-size_l": "_medium-size_l_14gc5_317",
68
- "large-size_l": "_large-size_l_14gc5_321",
69
- "text-small-size_l": "_text-small-size_l_14gc5_325",
70
- "text-medium-size_l": "_text-medium-size_l_14gc5_329",
71
- "text-large-size_l": "_text-large-size_l_14gc5_333"
72
- }, Ne = Ee.bind(Y), kr = ({
73
- children: e,
74
- variant: r = "whiteRow",
75
- isApart: t = !1,
76
- addClassName: n = "",
77
- col: a = !1
78
- }) => /* @__PURE__ */ d("div", { className: Ne(Y.root, Y[r], { [Y.rootCol]: a, [Y.apart]: t }, n), children: e }), Tt = Yt((e, r) => {
79
- const { isTablet: t, isDesktop: n } = Le(), {
80
- index: a,
81
- children: i,
82
- addItemClassName: c,
83
- addLabelClassname: m,
84
- addTextClass: k,
85
- size_s: x = "large",
86
- size_m: g,
87
- size_l: y,
88
- disabled: L = !1,
89
- itemsLength: R = 0,
90
- isLongOn: P = !0,
91
- width: j,
92
- width_m: S,
93
- width_l: V,
94
- mini: F = !1,
95
- ...D
96
- } = e, z = (i != null && i.toString().length ? (i == null ? void 0 : i.toString().length) > 2 : !1) && P, w = (J, X) => J && S ? S : X && V ? V : j, W = !j && !S && !V && z;
97
- return /* @__PURE__ */ N("label", { className: Ne(Y.labelItem, { [Y.isLong]: z }, m), children: [
98
- /* @__PURE__ */ d(
99
- "input",
100
- {
101
- ref: r,
102
- type: "checkbox",
103
- ...D,
104
- disabled: L
105
- }
106
- ),
107
- /* @__PURE__ */ d(
108
- "div",
109
- {
110
- style: { width: w(t, n) },
111
- className: Ne(
112
- Ne(
113
- Y.item,
114
- { [Y.firstItem]: a === 0 },
115
- { [Y.lastItem]: a === R - 1 },
116
- { [Y.isDisabled]: L },
117
- { [Y.autoWidth]: W },
118
- Y[`${x}-size`],
119
- Y[`${g}-size_m`],
120
- Y[`${y}-size_l`],
121
- { [Y.mini]: F }
122
- ),
123
- c
124
- ),
125
- children: /* @__PURE__ */ d(
126
- it,
127
- {
128
- className: Ne(
129
- Y.text,
130
- Y[`text-${x}-size`],
131
- Y[`text-${g}-size_m`],
132
- Y[`text-${y}-size_l`],
133
- { [Y.textMini]: F },
134
- k
135
- ),
136
- children: i
137
- }
138
- )
139
- }
140
- )
141
- ] });
142
- });
143
- Tt.displayName = "TabSwitcherItem";
144
- const Me = Object.assign(kr, { Item: Tt }), Cr = "_root_nl7sm_1", Sr = "_lotBtn_nl7sm_12", Nr = "_rootDisable_nl7sm_17", Pr = "_lotImageWrapper_nl7sm_17", Tr = "_lotInfoWrapper_nl7sm_18", Br = "_infoHeader_nl7sm_38", Ir = "_monthlyWrapper_nl7sm_47", Er = "_monthlyPayment_nl7sm_55", Lr = "_decor_nl7sm_61", Vr = "_lotPropertyListMobile_nl7sm_68", Dr = "_lotPropertyItem_nl7sm_76", Wr = "_lotPropertyListDesktop_nl7sm_97", Or = "_lotPriceWrapper_nl7sm_101", Mr = "_discountWrapper_nl7sm_107", Rr = "_discountPrice_nl7sm_118", jr = "_snippetLast_nl7sm_130", zr = "_snippet_nl7sm_130", Xr = "_tagsMobile_nl7sm_145", Zr = "_discountTag_nl7sm_160", Ur = "_lotPricePerMetr_nl7sm_164", qr = "_btnWrapper_nl7sm_169", Gr = "_title_nl7sm_176", Hr = "_snippets_nl7sm_180", Jr = "_retailSnippets_nl7sm_185", _r = "_shownSnippets_nl7sm_190", Yr = "_addSnippets_nl7sm_216", Kr = "_addSnippetsActive_nl7sm_232", Qr = "_addSnippetsList_nl7sm_237", $r = "_closeSnippetBtn_nl7sm_284", es = "_rootRow_nl7sm_296", ts = "_lotPriceWrapperRow_nl7sm_371", rs = "_fullscreenBtn_nl7sm_381", ss = "_projectLotPricePerMetr_nl7sm_400", I = {
145
- root: Cr,
146
- lotBtn: Sr,
147
- rootDisable: Nr,
148
- lotImageWrapper: Pr,
149
- lotInfoWrapper: Tr,
150
- infoHeader: Br,
151
- monthlyWrapper: Ir,
152
- monthlyPayment: Er,
153
- decor: Lr,
154
- lotPropertyListMobile: Vr,
155
- lotPropertyItem: Dr,
156
- lotPropertyListDesktop: Wr,
157
- lotPriceWrapper: Or,
158
- discountWrapper: Mr,
159
- discountPrice: Rr,
160
- snippetLast: jr,
161
- snippet: zr,
162
- tagsMobile: Xr,
163
- discountTag: Zr,
164
- lotPricePerMetr: Ur,
165
- btnWrapper: qr,
166
- title: Gr,
167
- snippets: Hr,
168
- retailSnippets: Jr,
169
- shownSnippets: _r,
170
- addSnippets: Yr,
171
- addSnippetsActive: Kr,
172
- addSnippetsList: Qr,
173
- closeSnippetBtn: $r,
174
- rootRow: es,
175
- lotPriceWrapperRow: ts,
176
- fullscreenBtn: rs,
177
- projectLotPricePerMetr: ss
178
- }, is = "data:image/webp;base64,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", Re = Ee.bind(I), ns = ({ lot: e, rowConditions: r }) => {
179
- const {
180
- status: t,
181
- direction: n,
182
- area: a,
183
- floor: i,
184
- endFloor: c,
185
- floorsNumber: m,
186
- type: k,
187
- isCorner: x,
188
- windowViews: g,
189
- subTypeName: y,
190
- number: L,
191
- bedroomsCount: R,
192
- mortgageMonthlyPayment: P
193
- } = e, [j, S] = ve(!1), V = t === 2, F = n === 1, D = k === 11, z = a + " м²", w = (c && c !== i ? i + "-" + c : i) + " из " + m, W = ir({ ...e }), { isTablet: J, isDesktop: X, currentClientWidth: E } = Le(), B = typeof r < "u" ? r : X || J, Z = () => D ? "Кол-во этажей: " + m : "Этаж: " + w, b = () => D ? /* @__PURE__ */ N(Pe, { children: [
194
- /* @__PURE__ */ d("div", { children: "Количество этажей" }),
195
- /* @__PURE__ */ d("div", { children: m })
196
- ] }) : /* @__PURE__ */ N(Pe, { children: [
197
- /* @__PURE__ */ d("div", { children: "Этаж" }),
198
- /* @__PURE__ */ d("div", { children: w })
199
- ] }), A = () => {
200
- if (k === 3) {
201
- let T = 0;
202
- const K = X ? 38 : 28, G = [], re = [];
203
- if (x) {
204
- const H = "Угловая";
205
- if (T + H.length <= K)
206
- G.push(H), T += H.length;
207
- else
208
- return G;
209
- }
210
- if (g)
211
- for (const H of g)
212
- T + H.length <= K ? (G.push(H), T += H.length) : re.push(H);
213
- return /* @__PURE__ */ N("div", { className: I.retailSnippets, children: [
214
- /* @__PURE__ */ d("ul", { className: I.shownSnippets, children: G == null ? void 0 : G.map((H, oe) => /* @__PURE__ */ d("li", { children: H }, oe)) }),
215
- (re == null ? void 0 : re.length) > 0 && /* @__PURE__ */ N(
216
- "div",
217
- {
218
- className: Re(I.addSnippets, { [I.addSnippetsActive]: j }),
219
- onClick: (H) => {
220
- X || (H.stopPropagation(), H.preventDefault(), S((oe) => !oe));
221
- },
222
- onMouseEnter: () => {
223
- X && S(!0);
224
- },
225
- onMouseLeave: () => {
226
- X && S(!1);
227
- },
228
- children: [
229
- "+" + (re == null ? void 0 : re.length),
230
- j && /* @__PURE__ */ N("ul", { className: I.addSnippetsList, children: [
231
- re.map((H, oe) => /* @__PURE__ */ d("li", { children: H }, oe)),
232
- /* @__PURE__ */ d("div", { className: I.closeSnippetBtn, children: /* @__PURE__ */ d(
233
- pe,
234
- {
235
- name: "close",
236
- size: "16",
237
- color: "#ffffff"
238
- }
239
- ) })
240
- ] })
241
- ]
242
- }
243
- )
244
- ] });
245
- }
246
- return /* @__PURE__ */ d("div", { className: I.snippets, children: W.map((T, K) => {
247
- const G = K === W.length - 1;
248
- return /* @__PURE__ */ d(
249
- "div",
250
- {
251
- className: Re(I.snippet, G ? "" : I.snippetLast),
252
- children: T.text
253
- },
254
- K
255
- );
256
- }) });
257
- };
258
- return {
259
- currentClientWidth: E,
260
- isBuilding: D,
261
- LotCardInfo: () => /* @__PURE__ */ N(Pe, { children: [
262
- /* @__PURE__ */ N("div", { className: Re(I.monthlyWrapper), children: [
263
- /* @__PURE__ */ d(
264
- it,
265
- {
266
- className: Re(I.infoHeader),
267
- html: `${F && k ? y : nr(R)}${D ? "" : `, ${L}`}`
268
- }
269
- ),
270
- P && /* @__PURE__ */ d("div", { className: I.monthlyPayment, children: lr(P) })
271
- ] }),
272
- /* @__PURE__ */ d(A, {})
273
- ] }),
274
- tagFeatures: W,
275
- FloorByType: b,
276
- isTablet: J,
277
- isDesktop: X,
278
- getFloorStr: Z,
279
- isReserved: V,
280
- areaStr: z,
281
- floorStr: w,
282
- isShowSnippet: j,
283
- setIsShowSnippet: S,
284
- rowConditionsVar: B
285
- };
286
- }, ne = Ee.bind(I), qi = ({
287
- lot: e,
288
- handleBtnForm: r,
289
- handleFullScreenBtn: t,
290
- btnDisabled: n,
291
- addClassname: a,
292
- btnName: i = "Уточнить детали",
293
- imgNode: c,
294
- rowConditions: m,
295
- addClassnameLotImage: k
296
- }) => {
297
- const {
298
- housing: x,
299
- sellingPricePerMeter: g,
300
- interiorPlanImg: y,
301
- direction: L,
302
- floorPlanImg: R,
303
- discount: P,
304
- sellingPrice: j,
305
- sellingPriceBeforeDiscount: S
306
- } = e, V = ar(e), {
307
- getFloorStr: F,
308
- FloorByType: D,
309
- areaStr: z,
310
- isReserved: w,
311
- rowConditionsVar: W,
312
- currentClientWidth: J,
313
- isBuilding: X,
314
- LotCardInfo: E
315
- } = ns({ lot: e, rowConditions: m });
316
- return J ? /* @__PURE__ */ N(
317
- "div",
318
- {
319
- className: ne(I.root, a, {
320
- [I.rootDisable]: w,
321
- [I.rootRow]: W
322
- }),
323
- "data-testid": "lot_card",
324
- children: [
325
- !W && /* @__PURE__ */ d("div", { className: ne(I.title), children: /* @__PURE__ */ d(E, {}) }),
326
- /* @__PURE__ */ d("div", { className: ne(I.lotImageWrapper, k), children: c || /* @__PURE__ */ d(
327
- "img",
328
- {
329
- loading: "lazy",
330
- src: y ?? R ?? is,
331
- width: 280,
332
- height: 200,
333
- alt: ""
334
- }
335
- ) }),
336
- /* @__PURE__ */ N("div", { className: ne(I.lotInfoWrapper), children: [
337
- W && /* @__PURE__ */ d(E, {}),
338
- /* @__PURE__ */ N("div", { className: ne(I.lotPropertyListDesktop), children: [
339
- /* @__PURE__ */ d(Oe, { variant: "gray", children: z }),
340
- !X && /* @__PURE__ */ d(Oe, { variant: "gray", children: x }),
341
- /* @__PURE__ */ d(Oe, { variant: "gray", children: F() })
342
- ] }),
343
- /* @__PURE__ */ N("ul", { className: ne(I.lotPropertyListMobile), children: [
344
- /* @__PURE__ */ N("li", { className: ne(I.lotPropertyItem), children: [
345
- /* @__PURE__ */ d("div", { children: "Площадь" }),
346
- /* @__PURE__ */ d("div", { children: z })
347
- ] }),
348
- !X && /* @__PURE__ */ N("li", { className: ne(I.lotPropertyItem), children: [
349
- /* @__PURE__ */ d("div", { children: x == null ? void 0 : x.split(" ")[0] }),
350
- /* @__PURE__ */ d("div", { children: x == null ? void 0 : x.split(" ")[1] })
351
- ] }),
352
- /* @__PURE__ */ d("li", { className: ne(I.lotPropertyItem), children: /* @__PURE__ */ d(D, {}) })
353
- ] })
354
- ] }),
355
- /* @__PURE__ */ N("div", { className: ne(I.lotPriceWrapper, { [I.lotPriceWrapperRow]: !W }), children: [
356
- !w && /* @__PURE__ */ N("div", { className: I.discountWrapper, children: [
357
- !V && P && j && S && /* @__PURE__ */ N("div", { className: ne(I.discountPrice), children: [
358
- /* @__PURE__ */ d("span", { children: $e(S ?? j, !1, L) }),
359
- /* @__PURE__ */ d(
360
- Oe,
361
- {
362
- additionalClass: ne(I.discountTag),
363
- variant: "red",
364
- size: "tiny",
365
- children: "-" + Number(P) + "%"
366
- }
367
- )
368
- ] }),
369
- !V && /* @__PURE__ */ d("div", { children: $e(j, !1, L) }),
370
- V && /* @__PURE__ */ d("div", { children: "Цена по запросу" })
371
- ] }),
372
- g && !w && /* @__PURE__ */ d("div", { className: ne(I.lotPricePerMetr, I.projectLotPricePerMetr), children: $e(g, !0, L) }),
373
- /* @__PURE__ */ N("div", { className: ne(I.btnWrapper), children: [
374
- /* @__PURE__ */ d(
375
- ye,
376
- {
377
- as: "button",
378
- "data-testid": "lot_fullscreen",
379
- disabled: n,
380
- variant: "whiteStroke",
381
- additionalClass: I.fullscreenBtn,
382
- onClick: (B) => {
383
- B.preventDefault(), t && t();
384
- },
385
- children: /* @__PURE__ */ d(
386
- pe,
387
- {
388
- name: "fullscreen",
389
- color: "#141416",
390
- size: "20"
391
- }
392
- )
393
- }
394
- ),
395
- /* @__PURE__ */ d(
396
- ye,
397
- {
398
- as: "button",
399
- size: "medium",
400
- disabled: w,
401
- variant: w ? "gray" : "blue",
402
- width: "full",
403
- additionalClass: I.lotBtn,
404
- "data-testid": "lot_form",
405
- post: w ? /* @__PURE__ */ d(
406
- pe,
407
- {
408
- name: "lock",
409
- size: "24",
410
- color: "#777E90"
411
- }
412
- ) : void 0,
413
- onClick: (B) => {
414
- B.preventDefault(), r(B);
415
- },
416
- children: i
417
- }
418
- )
419
- ] })
420
- ] })
421
- ]
422
- }
423
- ) : null;
424
- }, je = Ee.bind(se), ls = ({
425
- options: e,
426
- selectedOption: r,
427
- placeholder: t = "",
428
- error: n,
429
- disabled: a,
430
- additionalClass: i = "",
431
- onChange: c,
432
- onBlur: m,
433
- mini: k,
434
- openOnTop: x = !1,
435
- onClickItem: g,
436
- onCLickSelect: y,
437
- onOpenClick: L
438
- }) => {
439
- const [R, P] = ve(!1), j = Pt(null), { isMobile: S } = Le(), { handleBlur: V, getInputValue: F, getOption: D, handleDocumentClick: z } = $t({
440
- selectedOption: r,
441
- onClickOption: g,
442
- setSelectedOption: c,
443
- setIsOpen: P,
444
- containerRef: j,
445
- isOpen: R,
446
- isMobile: S,
447
- placeholder: t,
448
- onChange: c,
449
- onBlur: m
450
- });
451
- return Ie(() => (document.addEventListener("click", z), () => {
452
- document.removeEventListener("click", z);
453
- }), []), /* @__PURE__ */ N(
454
- "div",
455
- {
456
- ref: j,
457
- className: je(
458
- se.sortSelectWrapper,
459
- { [se.sortSelectWrapperError]: n },
460
- { [se.sortSelectWrapperTop]: x },
461
- i
462
- ),
463
- tabIndex: 0,
464
- onBlur: V,
465
- onClick: () => {
466
- y && y();
467
- },
468
- children: [
469
- /* @__PURE__ */ N("div", { className: je(se.inputWrapper), children: [
470
- /* @__PURE__ */ d(
471
- "input",
472
- {
473
- type: "text",
474
- readOnly: !0,
475
- value: F(),
476
- className: je(
477
- se.selectedOptions,
478
- { [se.selectOptionsDisabled]: a },
479
- { [se.selectionOptionMini]: k }
480
- ),
481
- onClick: () => {
482
- R || L && L(), P(!R);
483
- }
484
- }
485
- ),
486
- /* @__PURE__ */ d(
487
- pe,
488
- {
489
- name: "twoArrows",
490
- size: "24",
491
- additionalClass: se.icon
492
- }
493
- )
494
- ] }),
495
- R && S && /* @__PURE__ */ N(
496
- st,
497
- {
498
- isOpen: R,
499
- emitIsOpen: P,
500
- additionalClassModalBody: se.modalAddBody,
501
- additionalClass: se.selectModal,
502
- createPortalObj: { domNode: document.querySelector("body") },
503
- isTransparentBack: !0,
504
- children: [
505
- /* @__PURE__ */ N("div", { className: se.mobileSortHeader, children: [
506
- /* @__PURE__ */ d(it, { children: "Сортировка" }),
507
- /* @__PURE__ */ d("div", { onClick: () => P(!1), children: /* @__PURE__ */ d(
508
- pe,
509
- {
510
- name: "close",
511
- size: "20"
512
- }
513
- ) })
514
- ] }),
515
- /* @__PURE__ */ d("div", { className: se.mobileOptionList, children: e == null ? void 0 : e.map((w) => D(w)) })
516
- ]
517
- }
518
- ),
519
- R && !S && /* @__PURE__ */ d("div", { className: je(se.optionsList, { [se.optionListOnTop]: x }), children: e == null ? void 0 : e.map((w) => D(w)) })
520
- ]
521
- }
522
- );
523
- };
524
- ls.displayName = "SortSelect";
525
- const as = "_btn_ky28a_1", os = "_modal_ky28a_9", cs = "_modalBody_ky28a_16", ds = "_root_ky28a_21", us = "_title_ky28a_34", fs = "_description_ky28a_41", ms = "_inputWrapper_ky28a_48", ps = "_linkPolicy_ky28a_55", hs = "_telegramLink_ky28a_60", ys = "_telegramWrapper_ky28a_65", gs = "_telegram_ky28a_60", vs = "_orText_ky28a_88", bs = "_checkboxText_ky28a_116", te = {
526
- btn: as,
527
- modal: os,
528
- modalBody: cs,
529
- root: ds,
530
- title: us,
531
- description: fs,
532
- inputWrapper: ms,
533
- linkPolicy: ps,
534
- telegramLink: hs,
535
- telegramWrapper: ys,
536
- telegram: gs,
537
- orText: vs,
538
- checkboxText: bs
539
- };
540
- var Ve = (e) => e.type === "checkbox", xe = (e) => e instanceof Date, ie = (e) => e == null;
541
- const Bt = (e) => typeof e == "object";
542
- var ee = (e) => !ie(e) && !Array.isArray(e) && Bt(e) && !xe(e), It = (e) => ee(e) && e.target ? Ve(e.target) ? e.target.checked : e.target.value : e, Fs = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, Et = (e, r) => e.has(Fs(r)), ws = (e) => {
543
- const r = e.constructor && e.constructor.prototype;
544
- return ee(r) && r.hasOwnProperty("isPrototypeOf");
545
- }, nt = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
546
- function le(e) {
547
- let r;
548
- const t = Array.isArray(e);
549
- if (e instanceof Date)
550
- r = new Date(e);
551
- else if (e instanceof Set)
552
- r = new Set(e);
553
- else if (!(nt && (e instanceof Blob || e instanceof FileList)) && (t || ee(e)))
554
- if (r = t ? [] : {}, !t && !ws(e))
555
- r = e;
556
- else
557
- for (const n in e)
558
- e.hasOwnProperty(n) && (r[n] = le(e[n]));
559
- else
560
- return e;
561
- return r;
562
- }
563
- var Je = (e) => Array.isArray(e) ? e.filter(Boolean) : [], _ = (e) => e === void 0, f = (e, r, t) => {
564
- if (!r || !ee(e))
565
- return t;
566
- const n = Je(r.split(/[,[\].]+?/)).reduce((a, i) => ie(a) ? a : a[i], e);
567
- return _(n) || n === e ? _(e[r]) ? t : e[r] : n;
568
- }, fe = (e) => typeof e == "boolean", lt = (e) => /^\w*$/.test(e), Lt = (e) => Je(e.replace(/["|']|\]/g, "").split(/\.|\[/)), U = (e, r, t) => {
569
- let n = -1;
570
- const a = lt(r) ? [r] : Lt(r), i = a.length, c = i - 1;
571
- for (; ++n < i; ) {
572
- const m = a[n];
573
- let k = t;
574
- if (n !== c) {
575
- const x = e[m];
576
- k = ee(x) || Array.isArray(x) ? x : isNaN(+a[n + 1]) ? {} : [];
577
- }
578
- if (m === "__proto__")
579
- return;
580
- e[m] = k, e = e[m];
581
- }
582
- return e;
583
- };
584
- const Ze = {
585
- BLUR: "blur",
586
- FOCUS_OUT: "focusout",
587
- CHANGE: "change"
588
- }, ue = {
589
- onBlur: "onBlur",
590
- onChange: "onChange",
591
- onSubmit: "onSubmit",
592
- onTouched: "onTouched",
593
- all: "all"
594
- }, he = {
595
- max: "max",
596
- min: "min",
597
- maxLength: "maxLength",
598
- minLength: "minLength",
599
- pattern: "pattern",
600
- required: "required",
601
- validate: "validate"
602
- }, xs = q.createContext(null), at = () => q.useContext(xs);
603
- var Vt = (e, r, t, n = !0) => {
604
- const a = {
605
- defaultValues: r._defaultValues
606
- };
607
- for (const i in e)
608
- Object.defineProperty(a, i, {
609
- get: () => {
610
- const c = i;
611
- return r._proxyFormState[c] !== ue.all && (r._proxyFormState[c] = !n || ue.all), t && (t[c] = !0), e[c];
612
- }
613
- });
614
- return a;
615
- }, ae = (e) => ee(e) && !Object.keys(e).length, Dt = (e, r, t, n) => {
616
- t(e);
617
- const { name: a, ...i } = e;
618
- return ae(i) || Object.keys(i).length >= Object.keys(r).length || Object.keys(i).find((c) => r[c] === (!n || ue.all));
619
- }, Te = (e) => Array.isArray(e) ? e : [e], Wt = (e, r, t) => !e || !r || e === r || Te(e).some((n) => n && (t ? n === r : n.startsWith(r) || r.startsWith(n)));
620
- function ot(e) {
621
- const r = q.useRef(e);
622
- r.current = e, q.useEffect(() => {
623
- const t = !e.disabled && r.current.subject && r.current.subject.subscribe({
624
- next: r.current.next
625
- });
626
- return () => {
627
- t && t.unsubscribe();
628
- };
629
- }, [e.disabled]);
630
- }
631
- function As(e) {
632
- const r = at(), { control: t = r.control, disabled: n, name: a, exact: i } = e || {}, [c, m] = q.useState(t._formState), k = q.useRef(!0), x = q.useRef({
633
- isDirty: !1,
634
- isLoading: !1,
635
- dirtyFields: !1,
636
- touchedFields: !1,
637
- validatingFields: !1,
638
- isValidating: !1,
639
- isValid: !1,
640
- errors: !1
641
- }), g = q.useRef(a);
642
- return g.current = a, ot({
643
- disabled: n,
644
- next: (y) => k.current && Wt(g.current, y.name, i) && Dt(y, x.current, t._updateFormState) && m({
645
- ...t._formState,
646
- ...y
647
- }),
648
- subject: t._subjects.state
649
- }), q.useEffect(() => (k.current = !0, x.current.isValid && t._updateValid(!0), () => {
650
- k.current = !1;
651
- }), [t]), Vt(c, t, x.current, !1);
652
- }
653
- var me = (e) => typeof e == "string", Ot = (e, r, t, n, a) => me(e) ? (n && r.watch.add(e), f(t, e, a)) : Array.isArray(e) ? e.map((i) => (n && r.watch.add(i), f(t, i))) : (n && (r.watchAll = !0), t);
654
- function ks(e) {
655
- const r = at(), { control: t = r.control, name: n, defaultValue: a, disabled: i, exact: c } = e || {}, m = q.useRef(n);
656
- m.current = n, ot({
657
- disabled: i,
658
- subject: t._subjects.values,
659
- next: (g) => {
660
- Wt(m.current, g.name, c) && x(le(Ot(m.current, t._names, g.values || t._formValues, !1, a)));
661
- }
662
- });
663
- const [k, x] = q.useState(t._getWatch(n, a));
664
- return q.useEffect(() => t._removeUnmounted()), k;
665
- }
666
- function Cs(e) {
667
- const r = at(), { name: t, disabled: n, control: a = r.control, shouldUnregister: i } = e, c = Et(a._names.array, t), m = ks({
668
- control: a,
669
- name: t,
670
- defaultValue: f(a._formValues, t, f(a._defaultValues, t, e.defaultValue)),
671
- exact: !0
672
- }), k = As({
673
- control: a,
674
- name: t,
675
- exact: !0
676
- }), x = q.useRef(a.register(t, {
677
- ...e.rules,
678
- value: m,
679
- ...fe(e.disabled) ? { disabled: e.disabled } : {}
680
- }));
681
- return q.useEffect(() => {
682
- const g = a._options.shouldUnregister || i, y = (L, R) => {
683
- const P = f(a._fields, L);
684
- P && P._f && (P._f.mount = R);
685
- };
686
- if (y(t, !0), g) {
687
- const L = le(f(a._options.defaultValues, t));
688
- U(a._defaultValues, t, L), _(f(a._formValues, t)) && U(a._formValues, t, L);
689
- }
690
- return () => {
691
- (c ? g && !a._state.action : g) ? a.unregister(t) : y(t, !1);
692
- };
693
- }, [t, a, c, i]), q.useEffect(() => {
694
- f(a._fields, t) && a._updateDisabledField({
695
- disabled: n,
696
- fields: a._fields,
697
- name: t,
698
- value: f(a._fields, t)._f.value
699
- });
700
- }, [n, t, a]), {
701
- field: {
702
- name: t,
703
- value: m,
704
- ...fe(n) || k.disabled ? { disabled: k.disabled || n } : {},
705
- onChange: q.useCallback((g) => x.current.onChange({
706
- target: {
707
- value: It(g),
708
- name: t
709
- },
710
- type: Ze.CHANGE
711
- }), [t]),
712
- onBlur: q.useCallback(() => x.current.onBlur({
713
- target: {
714
- value: f(a._formValues, t),
715
- name: t
716
- },
717
- type: Ze.BLUR
718
- }), [t, a]),
719
- ref: q.useCallback((g) => {
720
- const y = f(a._fields, t);
721
- y && g && (y._f.ref = {
722
- focus: () => g.focus(),
723
- select: () => g.select(),
724
- setCustomValidity: (L) => g.setCustomValidity(L),
725
- reportValidity: () => g.reportValidity()
726
- });
727
- }, [a._fields, t])
728
- },
729
- formState: k,
730
- fieldState: Object.defineProperties({}, {
731
- invalid: {
732
- enumerable: !0,
733
- get: () => !!f(k.errors, t)
734
- },
735
- isDirty: {
736
- enumerable: !0,
737
- get: () => !!f(k.dirtyFields, t)
738
- },
739
- isTouched: {
740
- enumerable: !0,
741
- get: () => !!f(k.touchedFields, t)
742
- },
743
- isValidating: {
744
- enumerable: !0,
745
- get: () => !!f(k.validatingFields, t)
746
- },
747
- error: {
748
- enumerable: !0,
749
- get: () => f(k.errors, t)
750
- }
751
- })
752
- };
753
- }
754
- const Ss = (e) => e.render(Cs(e));
755
- var Ns = (e, r, t, n, a) => r ? {
756
- ...t[e],
757
- types: {
758
- ...t[e] && t[e].types ? t[e].types : {},
759
- [n]: a || !0
760
- }
761
- } : {}, Ft = (e) => ({
762
- isOnSubmit: !e || e === ue.onSubmit,
763
- isOnBlur: e === ue.onBlur,
764
- isOnChange: e === ue.onChange,
765
- isOnAll: e === ue.all,
766
- isOnTouch: e === ue.onTouched
767
- }), wt = (e, r, t) => !t && (r.watchAll || r.watch.has(e) || [...r.watch].some((n) => e.startsWith(n) && /^\.\w+/.test(e.slice(n.length))));
768
- const Be = (e, r, t, n) => {
769
- for (const a of t || Object.keys(e)) {
770
- const i = f(e, a);
771
- if (i) {
772
- const { _f: c, ...m } = i;
773
- if (c) {
774
- if (c.refs && c.refs[0] && r(c.refs[0], a) && !n)
775
- break;
776
- if (c.ref && r(c.ref, c.name) && !n)
777
- break;
778
- Be(m, r);
779
- } else
780
- ee(m) && Be(m, r);
781
- }
782
- }
783
- };
784
- var Ps = (e, r, t) => {
785
- const n = Te(f(e, t));
786
- return U(n, "root", r[t]), U(e, t, n), e;
787
- }, ct = (e) => e.type === "file", ge = (e) => typeof e == "function", Ue = (e) => {
788
- if (!nt)
789
- return !1;
790
- const r = e ? e.ownerDocument : 0;
791
- return e instanceof (r && r.defaultView ? r.defaultView.HTMLElement : HTMLElement);
792
- }, Xe = (e) => me(e), dt = (e) => e.type === "radio", qe = (e) => e instanceof RegExp;
793
- const xt = {
794
- value: !1,
795
- isValid: !1
796
- }, At = { value: !0, isValid: !0 };
797
- var Mt = (e) => {
798
- if (Array.isArray(e)) {
799
- if (e.length > 1) {
800
- const r = e.filter((t) => t && t.checked && !t.disabled).map((t) => t.value);
801
- return { value: r, isValid: !!r.length };
802
- }
803
- return e[0].checked && !e[0].disabled ? (
804
- // @ts-expect-error expected to work in the browser
805
- e[0].attributes && !_(e[0].attributes.value) ? _(e[0].value) || e[0].value === "" ? At : { value: e[0].value, isValid: !0 } : At
806
- ) : xt;
807
- }
808
- return xt;
809
- };
810
- const kt = {
811
- isValid: !1,
812
- value: null
813
- };
814
- var Rt = (e) => Array.isArray(e) ? e.reduce((r, t) => t && t.checked && !t.disabled ? {
815
- isValid: !0,
816
- value: t.value
817
- } : r, kt) : kt;
818
- function Ct(e, r, t = "validate") {
819
- if (Xe(e) || Array.isArray(e) && e.every(Xe) || fe(e) && !e)
820
- return {
821
- type: t,
822
- message: Xe(e) ? e : "",
823
- ref: r
824
- };
825
- }
826
- var we = (e) => ee(e) && !qe(e) ? e : {
827
- value: e,
828
- message: ""
829
- }, St = async (e, r, t, n, a) => {
830
- const { ref: i, refs: c, required: m, maxLength: k, minLength: x, min: g, max: y, pattern: L, validate: R, name: P, valueAsNumber: j, mount: S, disabled: V } = e._f, F = f(r, P);
831
- if (!S || V)
832
- return {};
833
- const D = c ? c[0] : i, z = (b) => {
834
- n && D.reportValidity && (D.setCustomValidity(fe(b) ? "" : b || ""), D.reportValidity());
835
- }, w = {}, W = dt(i), J = Ve(i), X = W || J, E = (j || ct(i)) && _(i.value) && _(F) || Ue(i) && i.value === "" || F === "" || Array.isArray(F) && !F.length, B = Ns.bind(null, P, t, w), Z = (b, A, C, T = he.maxLength, K = he.minLength) => {
836
- const G = b ? A : C;
837
- w[P] = {
838
- type: b ? T : K,
839
- message: G,
840
- ref: i,
841
- ...B(b ? T : K, G)
842
- };
843
- };
844
- if (a ? !Array.isArray(F) || !F.length : m && (!X && (E || ie(F)) || fe(F) && !F || J && !Mt(c).isValid || W && !Rt(c).isValid)) {
845
- const { value: b, message: A } = Xe(m) ? { value: !!m, message: m } : we(m);
846
- if (b && (w[P] = {
847
- type: he.required,
848
- message: A,
849
- ref: D,
850
- ...B(he.required, A)
851
- }, !t))
852
- return z(A), w;
853
- }
854
- if (!E && (!ie(g) || !ie(y))) {
855
- let b, A;
856
- const C = we(y), T = we(g);
857
- if (!ie(F) && !isNaN(F)) {
858
- const K = i.valueAsNumber || F && +F;
859
- ie(C.value) || (b = K > C.value), ie(T.value) || (A = K < T.value);
860
- } else {
861
- const K = i.valueAsDate || new Date(F), G = (oe) => /* @__PURE__ */ new Date((/* @__PURE__ */ new Date()).toDateString() + " " + oe), re = i.type == "time", H = i.type == "week";
862
- me(C.value) && F && (b = re ? G(F) > G(C.value) : H ? F > C.value : K > new Date(C.value)), me(T.value) && F && (A = re ? G(F) < G(T.value) : H ? F < T.value : K < new Date(T.value));
863
- }
864
- if ((b || A) && (Z(!!b, C.message, T.message, he.max, he.min), !t))
865
- return z(w[P].message), w;
866
- }
867
- if ((k || x) && !E && (me(F) || a && Array.isArray(F))) {
868
- const b = we(k), A = we(x), C = !ie(b.value) && F.length > +b.value, T = !ie(A.value) && F.length < +A.value;
869
- if ((C || T) && (Z(C, b.message, A.message), !t))
870
- return z(w[P].message), w;
871
- }
872
- if (L && !E && me(F)) {
873
- const { value: b, message: A } = we(L);
874
- if (qe(b) && !F.match(b) && (w[P] = {
875
- type: he.pattern,
876
- message: A,
877
- ref: i,
878
- ...B(he.pattern, A)
879
- }, !t))
880
- return z(A), w;
881
- }
882
- if (R) {
883
- if (ge(R)) {
884
- const b = await R(F, r), A = Ct(b, D);
885
- if (A && (w[P] = {
886
- ...A,
887
- ...B(he.validate, A.message)
888
- }, !t))
889
- return z(A.message), w;
890
- } else if (ee(R)) {
891
- let b = {};
892
- for (const A in R) {
893
- if (!ae(b) && !t)
894
- break;
895
- const C = Ct(await R[A](F, r), D, A);
896
- C && (b = {
897
- ...C,
898
- ...B(A, C.message)
899
- }, z(C.message), t && (w[P] = b));
900
- }
901
- if (!ae(b) && (w[P] = {
902
- ref: D,
903
- ...b
904
- }, !t))
905
- return w;
906
- }
907
- }
908
- return z(!0), w;
909
- };
910
- function Ts(e, r) {
911
- const t = r.slice(0, -1).length;
912
- let n = 0;
913
- for (; n < t; )
914
- e = _(e) ? n++ : e[r[n++]];
915
- return e;
916
- }
917
- function Bs(e) {
918
- for (const r in e)
919
- if (e.hasOwnProperty(r) && !_(e[r]))
920
- return !1;
921
- return !0;
922
- }
923
- function $(e, r) {
924
- const t = Array.isArray(r) ? r : lt(r) ? [r] : Lt(r), n = t.length === 1 ? e : Ts(e, t), a = t.length - 1, i = t[a];
925
- return n && delete n[i], a !== 0 && (ee(n) && ae(n) || Array.isArray(n) && Bs(n)) && $(e, t.slice(0, -1)), e;
926
- }
927
- var et = () => {
928
- let e = [];
929
- return {
930
- get observers() {
931
- return e;
932
- },
933
- next: (a) => {
934
- for (const i of e)
935
- i.next && i.next(a);
936
- },
937
- subscribe: (a) => (e.push(a), {
938
- unsubscribe: () => {
939
- e = e.filter((i) => i !== a);
940
- }
941
- }),
942
- unsubscribe: () => {
943
- e = [];
944
- }
945
- };
946
- }, Ge = (e) => ie(e) || !Bt(e);
947
- function be(e, r) {
948
- if (Ge(e) || Ge(r))
949
- return e === r;
950
- if (xe(e) && xe(r))
951
- return e.getTime() === r.getTime();
952
- const t = Object.keys(e), n = Object.keys(r);
953
- if (t.length !== n.length)
954
- return !1;
955
- for (const a of t) {
956
- const i = e[a];
957
- if (!n.includes(a))
958
- return !1;
959
- if (a !== "ref") {
960
- const c = r[a];
961
- if (xe(i) && xe(c) || ee(i) && ee(c) || Array.isArray(i) && Array.isArray(c) ? !be(i, c) : i !== c)
962
- return !1;
963
- }
964
- }
965
- return !0;
966
- }
967
- var jt = (e) => e.type === "select-multiple", Is = (e) => dt(e) || Ve(e), tt = (e) => Ue(e) && e.isConnected, zt = (e) => {
968
- for (const r in e)
969
- if (ge(e[r]))
970
- return !0;
971
- return !1;
972
- };
973
- function He(e, r = {}) {
974
- const t = Array.isArray(e);
975
- if (ee(e) || t)
976
- for (const n in e)
977
- Array.isArray(e[n]) || ee(e[n]) && !zt(e[n]) ? (r[n] = Array.isArray(e[n]) ? [] : {}, He(e[n], r[n])) : ie(e[n]) || (r[n] = !0);
978
- return r;
979
- }
980
- function Xt(e, r, t) {
981
- const n = Array.isArray(e);
982
- if (ee(e) || n)
983
- for (const a in e)
984
- Array.isArray(e[a]) || ee(e[a]) && !zt(e[a]) ? _(r) || Ge(t[a]) ? t[a] = Array.isArray(e[a]) ? He(e[a], []) : { ...He(e[a]) } : Xt(e[a], ie(r) ? {} : r[a], t[a]) : t[a] = !be(e[a], r[a]);
985
- return t;
986
- }
987
- var ze = (e, r) => Xt(e, r, He(r)), Zt = (e, { valueAsNumber: r, valueAsDate: t, setValueAs: n }) => _(e) ? e : r ? e === "" ? NaN : e && +e : t && me(e) ? new Date(e) : n ? n(e) : e;
988
- function rt(e) {
989
- const r = e.ref;
990
- if (!(e.refs ? e.refs.every((t) => t.disabled) : r.disabled))
991
- return ct(r) ? r.files : dt(r) ? Rt(e.refs).value : jt(r) ? [...r.selectedOptions].map(({ value: t }) => t) : Ve(r) ? Mt(e.refs).value : Zt(_(r.value) ? e.ref.value : r.value, e);
992
- }
993
- var Es = (e, r, t, n) => {
994
- const a = {};
995
- for (const i of e) {
996
- const c = f(r, i);
997
- c && U(a, i, c._f);
998
- }
999
- return {
1000
- criteriaMode: t,
1001
- names: [...e],
1002
- fields: a,
1003
- shouldUseNativeValidation: n
1004
- };
1005
- }, Se = (e) => _(e) ? e : qe(e) ? e.source : ee(e) ? qe(e.value) ? e.value.source : e.value : e, Ls = (e) => e.mount && (e.required || e.min || e.max || e.maxLength || e.minLength || e.pattern || e.validate);
1006
- function Nt(e, r, t) {
1007
- const n = f(e, t);
1008
- if (n || lt(t))
1009
- return {
1010
- error: n,
1011
- name: t
1012
- };
1013
- const a = t.split(".");
1014
- for (; a.length; ) {
1015
- const i = a.join("."), c = f(r, i), m = f(e, i);
1016
- if (c && !Array.isArray(c) && t !== i)
1017
- return { name: t };
1018
- if (m && m.type)
1019
- return {
1020
- name: i,
1021
- error: m
1022
- };
1023
- a.pop();
1024
- }
1025
- return {
1026
- name: t
1027
- };
1028
- }
1029
- var Vs = (e, r, t, n, a) => a.isOnAll ? !1 : !t && a.isOnTouch ? !(r || e) : (t ? n.isOnBlur : a.isOnBlur) ? !e : (t ? n.isOnChange : a.isOnChange) ? e : !0, Ds = (e, r) => !Je(f(e, r)).length && $(e, r);
1030
- const Ws = {
1031
- mode: ue.onSubmit,
1032
- reValidateMode: ue.onChange,
1033
- shouldFocusError: !0
1034
- };
1035
- function Os(e = {}) {
1036
- let r = {
1037
- ...Ws,
1038
- ...e
1039
- }, t = {
1040
- submitCount: 0,
1041
- isDirty: !1,
1042
- isLoading: ge(r.defaultValues),
1043
- isValidating: !1,
1044
- isSubmitted: !1,
1045
- isSubmitting: !1,
1046
- isSubmitSuccessful: !1,
1047
- isValid: !1,
1048
- touchedFields: {},
1049
- dirtyFields: {},
1050
- validatingFields: {},
1051
- errors: r.errors || {},
1052
- disabled: r.disabled || !1
1053
- }, n = {}, a = ee(r.defaultValues) || ee(r.values) ? le(r.defaultValues || r.values) || {} : {}, i = r.shouldUnregister ? {} : le(a), c = {
1054
- action: !1,
1055
- mount: !1,
1056
- watch: !1
1057
- }, m = {
1058
- mount: /* @__PURE__ */ new Set(),
1059
- unMount: /* @__PURE__ */ new Set(),
1060
- array: /* @__PURE__ */ new Set(),
1061
- watch: /* @__PURE__ */ new Set()
1062
- }, k, x = 0;
1063
- const g = {
1064
- isDirty: !1,
1065
- dirtyFields: !1,
1066
- validatingFields: !1,
1067
- touchedFields: !1,
1068
- isValidating: !1,
1069
- isValid: !1,
1070
- errors: !1
1071
- }, y = {
1072
- values: et(),
1073
- array: et(),
1074
- state: et()
1075
- }, L = Ft(r.mode), R = Ft(r.reValidateMode), P = r.criteriaMode === ue.all, j = (s) => (l) => {
1076
- clearTimeout(x), x = setTimeout(s, l);
1077
- }, S = async (s) => {
1078
- if (g.isValid || s) {
1079
- const l = r.resolver ? ae((await X()).errors) : await B(n, !0);
1080
- l !== t.isValid && y.state.next({
1081
- isValid: l
1082
- });
1083
- }
1084
- }, V = (s, l) => {
1085
- (g.isValidating || g.validatingFields) && ((s || Array.from(m.mount)).forEach((o) => {
1086
- o && (l ? U(t.validatingFields, o, l) : $(t.validatingFields, o));
1087
- }), y.state.next({
1088
- validatingFields: t.validatingFields,
1089
- isValidating: !ae(t.validatingFields)
1090
- }));
1091
- }, F = (s, l = [], o, h, p = !0, u = !0) => {
1092
- if (h && o) {
1093
- if (c.action = !0, u && Array.isArray(f(n, s))) {
1094
- const v = o(f(n, s), h.argA, h.argB);
1095
- p && U(n, s, v);
1096
- }
1097
- if (u && Array.isArray(f(t.errors, s))) {
1098
- const v = o(f(t.errors, s), h.argA, h.argB);
1099
- p && U(t.errors, s, v), Ds(t.errors, s);
1100
- }
1101
- if (g.touchedFields && u && Array.isArray(f(t.touchedFields, s))) {
1102
- const v = o(f(t.touchedFields, s), h.argA, h.argB);
1103
- p && U(t.touchedFields, s, v);
1104
- }
1105
- g.dirtyFields && (t.dirtyFields = ze(a, i)), y.state.next({
1106
- name: s,
1107
- isDirty: b(s, l),
1108
- dirtyFields: t.dirtyFields,
1109
- errors: t.errors,
1110
- isValid: t.isValid
1111
- });
1112
- } else
1113
- U(i, s, l);
1114
- }, D = (s, l) => {
1115
- U(t.errors, s, l), y.state.next({
1116
- errors: t.errors
1117
- });
1118
- }, z = (s) => {
1119
- t.errors = s, y.state.next({
1120
- errors: t.errors,
1121
- isValid: !1
1122
- });
1123
- }, w = (s, l, o, h) => {
1124
- const p = f(n, s);
1125
- if (p) {
1126
- const u = f(i, s, _(o) ? f(a, s) : o);
1127
- _(u) || h && h.defaultChecked || l ? U(i, s, l ? u : rt(p._f)) : T(s, u), c.mount && S();
1128
- }
1129
- }, W = (s, l, o, h, p) => {
1130
- let u = !1, v = !1;
1131
- const O = {
1132
- name: s
1133
- }, Q = !!(f(n, s) && f(n, s)._f && f(n, s)._f.disabled);
1134
- if (!o || h) {
1135
- g.isDirty && (v = t.isDirty, t.isDirty = O.isDirty = b(), u = v !== O.isDirty);
1136
- const ce = Q || be(f(a, s), l);
1137
- v = !!(!Q && f(t.dirtyFields, s)), ce || Q ? $(t.dirtyFields, s) : U(t.dirtyFields, s, !0), O.dirtyFields = t.dirtyFields, u = u || g.dirtyFields && v !== !ce;
1138
- }
1139
- if (o) {
1140
- const ce = f(t.touchedFields, s);
1141
- ce || (U(t.touchedFields, s, o), O.touchedFields = t.touchedFields, u = u || g.touchedFields && ce !== o);
1142
- }
1143
- return u && p && y.state.next(O), u ? O : {};
1144
- }, J = (s, l, o, h) => {
1145
- const p = f(t.errors, s), u = g.isValid && fe(l) && t.isValid !== l;
1146
- if (e.delayError && o ? (k = j(() => D(s, o)), k(e.delayError)) : (clearTimeout(x), k = null, o ? U(t.errors, s, o) : $(t.errors, s)), (o ? !be(p, o) : p) || !ae(h) || u) {
1147
- const v = {
1148
- ...h,
1149
- ...u && fe(l) ? { isValid: l } : {},
1150
- errors: t.errors,
1151
- name: s
1152
- };
1153
- t = {
1154
- ...t,
1155
- ...v
1156
- }, y.state.next(v);
1157
- }
1158
- }, X = async (s) => {
1159
- V(s, !0);
1160
- const l = await r.resolver(i, r.context, Es(s || m.mount, n, r.criteriaMode, r.shouldUseNativeValidation));
1161
- return V(s), l;
1162
- }, E = async (s) => {
1163
- const { errors: l } = await X(s);
1164
- if (s)
1165
- for (const o of s) {
1166
- const h = f(l, o);
1167
- h ? U(t.errors, o, h) : $(t.errors, o);
1168
- }
1169
- else
1170
- t.errors = l;
1171
- return l;
1172
- }, B = async (s, l, o = {
1173
- valid: !0
1174
- }) => {
1175
- for (const h in s) {
1176
- const p = s[h];
1177
- if (p) {
1178
- const { _f: u, ...v } = p;
1179
- if (u) {
1180
- const O = m.array.has(u.name);
1181
- V([h], !0);
1182
- const Q = await St(p, i, P, r.shouldUseNativeValidation && !l, O);
1183
- if (V([h]), Q[u.name] && (o.valid = !1, l))
1184
- break;
1185
- !l && (f(Q, u.name) ? O ? Ps(t.errors, Q, u.name) : U(t.errors, u.name, Q[u.name]) : $(t.errors, u.name));
1186
- }
1187
- !ae(v) && await B(v, l, o);
1188
- }
1189
- }
1190
- return o.valid;
1191
- }, Z = () => {
1192
- for (const s of m.unMount) {
1193
- const l = f(n, s);
1194
- l && (l._f.refs ? l._f.refs.every((o) => !tt(o)) : !tt(l._f.ref)) && Ce(s);
1195
- }
1196
- m.unMount = /* @__PURE__ */ new Set();
1197
- }, b = (s, l) => (s && l && U(i, s, l), !be(De(), a)), A = (s, l, o) => Ot(s, m, {
1198
- ...c.mount ? i : _(l) ? a : me(s) ? { [s]: l } : l
1199
- }, o, l), C = (s) => Je(f(c.mount ? i : a, s, e.shouldUnregister ? f(a, s, []) : [])), T = (s, l, o = {}) => {
1200
- const h = f(n, s);
1201
- let p = l;
1202
- if (h) {
1203
- const u = h._f;
1204
- u && (!u.disabled && U(i, s, Zt(l, u)), p = Ue(u.ref) && ie(l) ? "" : l, jt(u.ref) ? [...u.ref.options].forEach((v) => v.selected = p.includes(v.value)) : u.refs ? Ve(u.ref) ? u.refs.length > 1 ? u.refs.forEach((v) => (!v.defaultChecked || !v.disabled) && (v.checked = Array.isArray(p) ? !!p.find((O) => O === v.value) : p === v.value)) : u.refs[0] && (u.refs[0].checked = !!p) : u.refs.forEach((v) => v.checked = v.value === p) : ct(u.ref) ? u.ref.value = "" : (u.ref.value = p, u.ref.type || y.values.next({
1205
- name: s,
1206
- values: { ...i }
1207
- })));
1208
- }
1209
- (o.shouldDirty || o.shouldTouch) && W(s, p, o.shouldTouch, o.shouldDirty, !0), o.shouldValidate && oe(s);
1210
- }, K = (s, l, o) => {
1211
- for (const h in l) {
1212
- const p = l[h], u = `${s}.${h}`, v = f(n, u);
1213
- (m.array.has(s) || !Ge(p) || v && !v._f) && !xe(p) ? K(u, p, o) : T(u, p, o);
1214
- }
1215
- }, G = (s, l, o = {}) => {
1216
- const h = f(n, s), p = m.array.has(s), u = le(l);
1217
- U(i, s, u), p ? (y.array.next({
1218
- name: s,
1219
- values: { ...i }
1220
- }), (g.isDirty || g.dirtyFields) && o.shouldDirty && y.state.next({
1221
- name: s,
1222
- dirtyFields: ze(a, i),
1223
- isDirty: b(s, u)
1224
- })) : h && !h._f && !ie(u) ? K(s, u, o) : T(s, u, o), wt(s, m) && y.state.next({ ...t }), y.values.next({
1225
- name: c.mount ? s : void 0,
1226
- values: { ...i }
1227
- });
1228
- }, re = async (s) => {
1229
- c.mount = !0;
1230
- const l = s.target;
1231
- let o = l.name, h = !0;
1232
- const p = f(n, o), u = () => l.type ? rt(p._f) : It(s), v = (O) => {
1233
- h = Number.isNaN(O) || O === f(i, o, O);
1234
- };
1235
- if (p) {
1236
- let O, Q;
1237
- const ce = u(), Fe = s.type === Ze.BLUR || s.type === Ze.FOCUS_OUT, Ht = !Ls(p._f) && !r.resolver && !f(t.errors, o) && !p._f.deps || Vs(Fe, f(t.touchedFields, o), t.isSubmitted, R, L), Ye = wt(o, m, Fe);
1238
- U(i, o, ce), Fe ? (p._f.onBlur && p._f.onBlur(s), k && k(0)) : p._f.onChange && p._f.onChange(s);
1239
- const Ke = W(o, ce, Fe, !1), Jt = !ae(Ke) || Ye;
1240
- if (!Fe && y.values.next({
1241
- name: o,
1242
- type: s.type,
1243
- values: { ...i }
1244
- }), Ht)
1245
- return g.isValid && S(), Jt && y.state.next({ name: o, ...Ye ? {} : Ke });
1246
- if (!Fe && Ye && y.state.next({ ...t }), r.resolver) {
1247
- const { errors: yt } = await X([o]);
1248
- if (v(ce), h) {
1249
- const _t = Nt(t.errors, n, o), gt = Nt(yt, n, _t.name || o);
1250
- O = gt.error, o = gt.name, Q = ae(yt);
1251
- }
1252
- } else
1253
- V([o], !0), O = (await St(p, i, P, r.shouldUseNativeValidation))[o], V([o]), v(ce), h && (O ? Q = !1 : g.isValid && (Q = await B(n, !0)));
1254
- h && (p._f.deps && oe(p._f.deps), J(o, Q, O, Ke));
1255
- }
1256
- }, H = (s, l) => {
1257
- if (f(t.errors, l) && s.focus)
1258
- return s.focus(), 1;
1259
- }, oe = async (s, l = {}) => {
1260
- let o, h;
1261
- const p = Te(s);
1262
- if (r.resolver) {
1263
- const u = await E(_(s) ? s : p);
1264
- o = ae(u), h = s ? !p.some((v) => f(u, v)) : o;
1265
- } else
1266
- s ? (h = (await Promise.all(p.map(async (u) => {
1267
- const v = f(n, u);
1268
- return await B(v && v._f ? { [u]: v } : v);
1269
- }))).every(Boolean), !(!h && !t.isValid) && S()) : h = o = await B(n);
1270
- return y.state.next({
1271
- ...!me(s) || g.isValid && o !== t.isValid ? {} : { name: s },
1272
- ...r.resolver || !s ? { isValid: o } : {},
1273
- errors: t.errors
1274
- }), l.shouldFocus && !h && Be(n, H, s ? p : m.mount), h;
1275
- }, De = (s) => {
1276
- const l = {
1277
- ...c.mount ? i : a
1278
- };
1279
- return _(s) ? l : me(s) ? f(l, s) : s.map((o) => f(l, o));
1280
- }, We = (s, l) => ({
1281
- invalid: !!f((l || t).errors, s),
1282
- isDirty: !!f((l || t).dirtyFields, s),
1283
- error: f((l || t).errors, s),
1284
- isValidating: !!f(t.validatingFields, s),
1285
- isTouched: !!f((l || t).touchedFields, s)
1286
- }), Ae = (s) => {
1287
- s && Te(s).forEach((l) => $(t.errors, l)), y.state.next({
1288
- errors: s ? t.errors : {}
1289
- });
1290
- }, de = (s, l, o) => {
1291
- const h = (f(n, s, { _f: {} })._f || {}).ref, p = f(t.errors, s) || {}, { ref: u, message: v, type: O, ...Q } = p;
1292
- U(t.errors, s, {
1293
- ...Q,
1294
- ...l,
1295
- ref: h
1296
- }), y.state.next({
1297
- name: s,
1298
- errors: t.errors,
1299
- isValid: !1
1300
- }), o && o.shouldFocus && h && h.focus && h.focus();
1301
- }, ke = (s, l) => ge(s) ? y.values.subscribe({
1302
- next: (o) => s(A(void 0, l), o)
1303
- }) : A(s, l, !0), Ce = (s, l = {}) => {
1304
- for (const o of s ? Te(s) : m.mount)
1305
- m.mount.delete(o), m.array.delete(o), l.keepValue || ($(n, o), $(i, o)), !l.keepError && $(t.errors, o), !l.keepDirty && $(t.dirtyFields, o), !l.keepTouched && $(t.touchedFields, o), !l.keepIsValidating && $(t.validatingFields, o), !r.shouldUnregister && !l.keepDefaultValue && $(a, o);
1306
- y.values.next({
1307
- values: { ...i }
1308
- }), y.state.next({
1309
- ...t,
1310
- ...l.keepDirty ? { isDirty: b() } : {}
1311
- }), !l.keepIsValid && S();
1312
- }, ut = ({ disabled: s, name: l, field: o, fields: h, value: p }) => {
1313
- if (fe(s) && c.mount || s) {
1314
- const u = s ? void 0 : _(p) ? rt(o ? o._f : f(h, l)._f) : p;
1315
- U(i, l, u), W(l, u, !1, !1, !0);
1316
- }
1317
- }, _e = (s, l = {}) => {
1318
- let o = f(n, s);
1319
- const h = fe(l.disabled);
1320
- return U(n, s, {
1321
- ...o || {},
1322
- _f: {
1323
- ...o && o._f ? o._f : { ref: { name: s } },
1324
- name: s,
1325
- mount: !0,
1326
- ...l
1327
- }
1328
- }), m.mount.add(s), o ? ut({
1329
- field: o,
1330
- disabled: l.disabled,
1331
- name: s,
1332
- value: l.value
1333
- }) : w(s, !0, l.value), {
1334
- ...h ? { disabled: l.disabled } : {},
1335
- ...r.progressive ? {
1336
- required: !!l.required,
1337
- min: Se(l.min),
1338
- max: Se(l.max),
1339
- minLength: Se(l.minLength),
1340
- maxLength: Se(l.maxLength),
1341
- pattern: Se(l.pattern)
1342
- } : {},
1343
- name: s,
1344
- onChange: re,
1345
- onBlur: re,
1346
- ref: (p) => {
1347
- if (p) {
1348
- _e(s, l), o = f(n, s);
1349
- const u = _(p.value) && p.querySelectorAll && p.querySelectorAll("input,select,textarea")[0] || p, v = Is(u), O = o._f.refs || [];
1350
- if (v ? O.find((Q) => Q === u) : u === o._f.ref)
1351
- return;
1352
- U(n, s, {
1353
- _f: {
1354
- ...o._f,
1355
- ...v ? {
1356
- refs: [
1357
- ...O.filter(tt),
1358
- u,
1359
- ...Array.isArray(f(a, s)) ? [{}] : []
1360
- ],
1361
- ref: { type: u.type, name: s }
1362
- } : { ref: u }
1363
- }
1364
- }), w(s, !1, void 0, u);
1365
- } else
1366
- o = f(n, s, {}), o._f && (o._f.mount = !1), (r.shouldUnregister || l.shouldUnregister) && !(Et(m.array, s) && c.action) && m.unMount.add(s);
1367
- }
1368
- };
1369
- }, ft = () => r.shouldFocusError && Be(n, H, m.mount), qt = (s) => {
1370
- fe(s) && (y.state.next({ disabled: s }), Be(n, (l, o) => {
1371
- const h = f(n, o);
1372
- h && (l.disabled = h._f.disabled || s, Array.isArray(h._f.refs) && h._f.refs.forEach((p) => {
1373
- p.disabled = h._f.disabled || s;
1374
- }));
1375
- }, 0, !1));
1376
- }, mt = (s, l) => async (o) => {
1377
- let h;
1378
- o && (o.preventDefault && o.preventDefault(), o.persist && o.persist());
1379
- let p = le(i);
1380
- if (y.state.next({
1381
- isSubmitting: !0
1382
- }), r.resolver) {
1383
- const { errors: u, values: v } = await X();
1384
- t.errors = u, p = v;
1385
- } else
1386
- await B(n);
1387
- if ($(t.errors, "root"), ae(t.errors)) {
1388
- y.state.next({
1389
- errors: {}
1390
- });
1391
- try {
1392
- await s(p, o);
1393
- } catch (u) {
1394
- h = u;
1395
- }
1396
- } else
1397
- l && await l({ ...t.errors }, o), ft(), setTimeout(ft);
1398
- if (y.state.next({
1399
- isSubmitted: !0,
1400
- isSubmitting: !1,
1401
- isSubmitSuccessful: ae(t.errors) && !h,
1402
- submitCount: t.submitCount + 1,
1403
- errors: t.errors
1404
- }), h)
1405
- throw h;
1406
- }, Gt = (s, l = {}) => {
1407
- f(n, s) && (_(l.defaultValue) ? G(s, le(f(a, s))) : (G(s, l.defaultValue), U(a, s, le(l.defaultValue))), l.keepTouched || $(t.touchedFields, s), l.keepDirty || ($(t.dirtyFields, s), t.isDirty = l.defaultValue ? b(s, le(f(a, s))) : b()), l.keepError || ($(t.errors, s), g.isValid && S()), y.state.next({ ...t }));
1408
- }, pt = (s, l = {}) => {
1409
- const o = s ? le(s) : a, h = le(o), p = ae(s), u = p ? a : h;
1410
- if (l.keepDefaultValues || (a = o), !l.keepValues) {
1411
- if (l.keepDirtyValues)
1412
- for (const v of m.mount)
1413
- f(t.dirtyFields, v) ? U(u, v, f(i, v)) : G(v, f(u, v));
1414
- else {
1415
- if (nt && _(s))
1416
- for (const v of m.mount) {
1417
- const O = f(n, v);
1418
- if (O && O._f) {
1419
- const Q = Array.isArray(O._f.refs) ? O._f.refs[0] : O._f.ref;
1420
- if (Ue(Q)) {
1421
- const ce = Q.closest("form");
1422
- if (ce) {
1423
- ce.reset();
1424
- break;
1425
- }
1426
- }
1427
- }
1428
- }
1429
- n = {};
1430
- }
1431
- i = e.shouldUnregister ? l.keepDefaultValues ? le(a) : {} : le(u), y.array.next({
1432
- values: { ...u }
1433
- }), y.values.next({
1434
- values: { ...u }
1435
- });
1436
- }
1437
- m = {
1438
- mount: l.keepDirtyValues ? m.mount : /* @__PURE__ */ new Set(),
1439
- unMount: /* @__PURE__ */ new Set(),
1440
- array: /* @__PURE__ */ new Set(),
1441
- watch: /* @__PURE__ */ new Set(),
1442
- watchAll: !1,
1443
- focus: ""
1444
- }, c.mount = !g.isValid || !!l.keepIsValid || !!l.keepDirtyValues, c.watch = !!e.shouldUnregister, y.state.next({
1445
- submitCount: l.keepSubmitCount ? t.submitCount : 0,
1446
- isDirty: p ? !1 : l.keepDirty ? t.isDirty : !!(l.keepDefaultValues && !be(s, a)),
1447
- isSubmitted: l.keepIsSubmitted ? t.isSubmitted : !1,
1448
- dirtyFields: p ? {} : l.keepDirtyValues ? l.keepDefaultValues && i ? ze(a, i) : t.dirtyFields : l.keepDefaultValues && s ? ze(a, s) : l.keepDirty ? t.dirtyFields : {},
1449
- touchedFields: l.keepTouched ? t.touchedFields : {},
1450
- errors: l.keepErrors ? t.errors : {},
1451
- isSubmitSuccessful: l.keepIsSubmitSuccessful ? t.isSubmitSuccessful : !1,
1452
- isSubmitting: !1
1453
- });
1454
- }, ht = (s, l) => pt(ge(s) ? s(i) : s, l);
1455
- return {
1456
- control: {
1457
- register: _e,
1458
- unregister: Ce,
1459
- getFieldState: We,
1460
- handleSubmit: mt,
1461
- setError: de,
1462
- _executeSchema: X,
1463
- _getWatch: A,
1464
- _getDirty: b,
1465
- _updateValid: S,
1466
- _removeUnmounted: Z,
1467
- _updateFieldArray: F,
1468
- _updateDisabledField: ut,
1469
- _getFieldArray: C,
1470
- _reset: pt,
1471
- _resetDefaultValues: () => ge(r.defaultValues) && r.defaultValues().then((s) => {
1472
- ht(s, r.resetOptions), y.state.next({
1473
- isLoading: !1
1474
- });
1475
- }),
1476
- _updateFormState: (s) => {
1477
- t = {
1478
- ...t,
1479
- ...s
1480
- };
1481
- },
1482
- _disableForm: qt,
1483
- _subjects: y,
1484
- _proxyFormState: g,
1485
- _setErrors: z,
1486
- get _fields() {
1487
- return n;
1488
- },
1489
- get _formValues() {
1490
- return i;
1491
- },
1492
- get _state() {
1493
- return c;
1494
- },
1495
- set _state(s) {
1496
- c = s;
1497
- },
1498
- get _defaultValues() {
1499
- return a;
1500
- },
1501
- get _names() {
1502
- return m;
1503
- },
1504
- set _names(s) {
1505
- m = s;
1506
- },
1507
- get _formState() {
1508
- return t;
1509
- },
1510
- set _formState(s) {
1511
- t = s;
1512
- },
1513
- get _options() {
1514
- return r;
1515
- },
1516
- set _options(s) {
1517
- r = {
1518
- ...r,
1519
- ...s
1520
- };
1521
- }
1522
- },
1523
- trigger: oe,
1524
- register: _e,
1525
- handleSubmit: mt,
1526
- watch: ke,
1527
- setValue: G,
1528
- getValues: De,
1529
- reset: ht,
1530
- resetField: Gt,
1531
- clearErrors: Ae,
1532
- unregister: Ce,
1533
- setError: de,
1534
- setFocus: (s, l = {}) => {
1535
- const o = f(n, s), h = o && o._f;
1536
- if (h) {
1537
- const p = h.refs ? h.refs[0] : h.ref;
1538
- p.focus && (p.focus(), l.shouldSelect && p.select());
1539
- }
1540
- },
1541
- getFieldState: We
1542
- };
1543
- }
1544
- function Ms(e = {}) {
1545
- const r = q.useRef(), t = q.useRef(), [n, a] = q.useState({
1546
- isDirty: !1,
1547
- isValidating: !1,
1548
- isLoading: ge(e.defaultValues),
1549
- isSubmitted: !1,
1550
- isSubmitting: !1,
1551
- isSubmitSuccessful: !1,
1552
- isValid: !1,
1553
- submitCount: 0,
1554
- dirtyFields: {},
1555
- touchedFields: {},
1556
- validatingFields: {},
1557
- errors: e.errors || {},
1558
- disabled: e.disabled || !1,
1559
- defaultValues: ge(e.defaultValues) ? void 0 : e.defaultValues
1560
- });
1561
- r.current || (r.current = {
1562
- ...Os(e),
1563
- formState: n
1564
- });
1565
- const i = r.current.control;
1566
- return i._options = e, ot({
1567
- subject: i._subjects.state,
1568
- next: (c) => {
1569
- Dt(c, i._proxyFormState, i._updateFormState, !0) && a({ ...i._formState });
1570
- }
1571
- }), q.useEffect(() => i._disableForm(e.disabled), [i, e.disabled]), q.useEffect(() => {
1572
- if (i._proxyFormState.isDirty) {
1573
- const c = i._getDirty();
1574
- c !== n.isDirty && i._subjects.state.next({
1575
- isDirty: c
1576
- });
1577
- }
1578
- }, [i, n.isDirty]), q.useEffect(() => {
1579
- e.values && !be(e.values, t.current) ? (i._reset(e.values, i._options.resetOptions), t.current = e.values, a((c) => ({ ...c }))) : i._resetDefaultValues();
1580
- }, [e.values, i]), q.useEffect(() => {
1581
- e.errors && i._setErrors(e.errors);
1582
- }, [e.errors, i]), q.useEffect(() => {
1583
- i._state.mount || (i._updateValid(), i._state.mount = !0), i._state.watch && (i._state.watch = !1, i._subjects.state.next({ ...i._formState })), i._removeUnmounted();
1584
- }), q.useEffect(() => {
1585
- e.shouldUnregister && i._subjects.values.next({
1586
- values: i._getWatch()
1587
- });
1588
- }, [e.shouldUnregister, i]), r.current.formState = Vt(n, i), r.current;
1589
- }
1590
- const Rs = Ee.bind(te), js = "Я принимаю условия Политики обработки и защиты персональных данных, даю согласия на обработку персональных данных", Gi = ({
1591
- isFormOpen: e,
1592
- setIsFormOpen: r,
1593
- isNews: t,
1594
- title: n,
1595
- isEmail: a,
1596
- isPhone: i,
1597
- isTextArea: c,
1598
- telegramLink: m = "https://t.me/stone_developer",
1599
- isRequiredPhone: k = !0,
1600
- isRequiredEmail: x = !1,
1601
- isRequiredPhoneOrEmail: g,
1602
- textAreaPlaceholder: y,
1603
- subTitle: L,
1604
- submitHandler: R,
1605
- modalWidth: P = "442px",
1606
- rowsTextArea: j = 2,
1607
- advCheckBox: S = { text: js, isRequired: !0 },
1608
- isAdvCheckBox: V,
1609
- addTitleClassName: F,
1610
- createPortalObj: D,
1611
- telegramClickHandler: z = () => null,
1612
- blurHandler: w,
1613
- block_name: W,
1614
- emitCheckBox: J,
1615
- emitAdvCheckBox: X
1616
- }) => {
1617
- const {
1618
- register: E,
1619
- handleSubmit: B,
1620
- reset: Z,
1621
- control: b,
1622
- watch: A,
1623
- formState: { errors: C }
1624
- } = Ms(), T = !!A("email"), K = A("personalCheckBox"), G = A("advCheckBox");
1625
- Ie(() => {
1626
- typeof K < "u" && J && J();
1627
- }, [J, K]), Ie(() => {
1628
- typeof G < "u" && X && X();
1629
- }, [X, G]);
1630
- const { isMobile: re, currentClientWidth: H } = Le(), oe = A("personalCheckBox"), De = A("advCheckBox"), We = (de) => {
1631
- R(de), Z();
1632
- }, Ae = (de, { action_element_status: ke, action_element: Ce }) => {
1633
- w && w({
1634
- e: de,
1635
- analyticParams: { action_element: Ce, action_element_status: ke, block_name: W }
1636
- });
1637
- };
1638
- return H ? /* @__PURE__ */ d(
1639
- st,
1640
- {
1641
- additionalClass: te.modal,
1642
- additionalClassModalBody: te.modalBody,
1643
- createPortalObj: D,
1644
- isOpen: e,
1645
- isTransparentBack: !0,
1646
- emitIsOpen: () => r(!1),
1647
- opacity: 0.7,
1648
- children: /* @__PURE__ */ N(
1649
- "div",
1650
- {
1651
- className: te.root,
1652
- style: { width: re ? "100%" : P },
1653
- "data-testid": "modal_window",
1654
- children: [
1655
- /* @__PURE__ */ d(
1656
- "div",
1657
- {
1658
- className: Rs(te.title, F),
1659
- dangerouslySetInnerHTML: { __html: n ?? "Оставить обращение" }
1660
- }
1661
- ),
1662
- t && /* @__PURE__ */ N("div", { className: te.telegramWrapper, children: [
1663
- /* @__PURE__ */ d(
1664
- "a",
1665
- {
1666
- className: te.telegramLink,
1667
- href: m,
1668
- target: "_blank",
1669
- "data-testid": "modal_telegram_link",
1670
- children: /* @__PURE__ */ N(
1671
- "div",
1672
- {
1673
- className: te.telegram,
1674
- onClick: z,
1675
- children: [
1676
- /* @__PURE__ */ d("div", { children: "Подписаться в Telegram" }),
1677
- /* @__PURE__ */ d(pe, { name: "telegram" })
1678
- ]
1679
- }
1680
- )
1681
- }
1682
- ),
1683
- /* @__PURE__ */ d("div", { className: te.orText, children: "или" })
1684
- ] }),
1685
- !t && /* @__PURE__ */ d(
1686
- "div",
1687
- {
1688
- className: te.description,
1689
- dangerouslySetInnerHTML: {
1690
- __html: L && !t ? "Оставьте номер телефона для получения консультации" : `${/* @__PURE__ */ d("div", { children: "привет" })}`
1691
- }
1692
- }
1693
- ),
1694
- /* @__PURE__ */ N("form", { onSubmit: B(We), children: [
1695
- /* @__PURE__ */ N(Qt, { className: te.inputWrapper, children: [
1696
- /* @__PURE__ */ d(
1697
- Qe,
1698
- {
1699
- width: "full",
1700
- size_s: "large",
1701
- variant: "light",
1702
- placeholder: "Введите имя",
1703
- "data-testid": "modal_name",
1704
- ...E("name", { required: !0, pattern: er }),
1705
- onBlur: (de) => Ae(de, {
1706
- action_element_status: C.name ? "error" : "success",
1707
- action_element: `input_${W}_name`
1708
- }),
1709
- error: !!C.name
1710
- }
1711
- ),
1712
- i && /* @__PURE__ */ d(
1713
- Ss,
1714
- {
1715
- name: "phone",
1716
- control: b,
1717
- rules: {
1718
- required: x || k || g && !T,
1719
- pattern: { value: tr, message: "" }
1720
- },
1721
- defaultValue: "",
1722
- render: ({ field: de }) => /* @__PURE__ */ d(
1723
- Qe,
1724
- {
1725
- inputMode: "numeric",
1726
- isPhoneIMask: !0,
1727
- ...de,
1728
- width: "full",
1729
- "data-testid": "phone_modal",
1730
- type: "tel",
1731
- error: !!C.phone,
1732
- size_s: "large",
1733
- variant: "light",
1734
- onBlur: (ke) => Ae(ke, {
1735
- action_element_status: C.phone ? "error" : "success",
1736
- action_element: `input_${W}_phone`
1737
- })
1738
- }
1739
- )
1740
- }
1741
- ),
1742
- a && /* @__PURE__ */ d(
1743
- Qe,
1744
- {
1745
- width: "full",
1746
- size_s: "large",
1747
- variant: "light",
1748
- placeholder: "Введите email",
1749
- "data-testid": "modal_email",
1750
- ...E("email", {
1751
- required: x || g && !T,
1752
- pattern: rr
1753
- }),
1754
- error: !!C.email,
1755
- onBlur: (de) => Ae(de, {
1756
- action_element_status: C.email ? "error" : "success",
1757
- action_element: `input_${W}_email`
1758
- })
1759
- }
1760
- ),
1761
- c && /* @__PURE__ */ d(
1762
- sr,
1763
- {
1764
- "data-testid": "modal_textarea",
1765
- placeholder: y,
1766
- rows: j,
1767
- width: "full",
1768
- ...E("textarea")
1769
- }
1770
- ),
1771
- S && !t && V && /* @__PURE__ */ d(
1772
- vt,
1773
- {
1774
- "data-testid": "modal_advCheckBox",
1775
- isChecked: De,
1776
- error: !!C.advCheckBox,
1777
- text: S.text,
1778
- ...E("advCheckBox", { required: S == null ? void 0 : S.isRequired })
1779
- }
1780
- ),
1781
- /* @__PURE__ */ N(
1782
- vt,
1783
- {
1784
- "data-testid": "modal_personalCheckBox",
1785
- isChecked: oe,
1786
- error: !!C.personalCheckBox,
1787
- ...E("personalCheckBox", { required: !t }),
1788
- children: [
1789
- t && /* @__PURE__ */ N("div", { className: te.checkboxText, children: [
1790
- "Согласен(-на)",
1791
- " ",
1792
- /* @__PURE__ */ d(
1793
- "a",
1794
- {
1795
- className: te.linkPolicy,
1796
- href: "/documents/soglasie-na-rassylki",
1797
- children: "получать новости, информацию по сделке и рекламу"
1798
- }
1799
- ),
1800
- " ",
1801
- "от Stone"
1802
- ] }),
1803
- !t && /* @__PURE__ */ N("div", { className: te.checkboxText, children: [
1804
- "Я принимаю условия",
1805
- " ",
1806
- /* @__PURE__ */ d(
1807
- "a",
1808
- {
1809
- className: te.linkPolicy,
1810
- href: "/documents/docs",
1811
- children: "Политики обработки и защиты персональных данных"
1812
- }
1813
- ),
1814
- ", даю согласия на обработку персональных данных"
1815
- ] })
1816
- ]
1817
- }
1818
- ),
1819
- /* @__PURE__ */ d(
1820
- ye,
1821
- {
1822
- "data-testid": "modal_submit",
1823
- variant: "blue",
1824
- width: "full",
1825
- type: "submit",
1826
- size: "large",
1827
- as: "button",
1828
- additionalClass: te.modalBtn,
1829
- disabled: !!C.name || !!C.phone && k || !!C.email && x || !!C.advCheckBox && (S == null ? void 0 : S.isRequired) || !!C.personalCheckBox && !t,
1830
- children: "Отправить запрос"
1831
- }
1832
- )
1833
- ] }),
1834
- /* @__PURE__ */ d(
1835
- ye,
1836
- {
1837
- additionalClass: te.btn,
1838
- onClick: () => r(!1),
1839
- as: "button",
1840
- variant: "gray",
1841
- type: "button",
1842
- size: "small",
1843
- children: /* @__PURE__ */ d(
1844
- pe,
1845
- {
1846
- name: "close",
1847
- size: "16",
1848
- color: "#141416"
1849
- }
1850
- )
1851
- }
1852
- )
1853
- ] })
1854
- ]
1855
- }
1856
- )
1857
- }
1858
- ) : null;
1859
- }, zs = "_root_1lkos_1", Xs = "_filterWithSaveModal_1lkos_15", Zs = "_modalAddBody_1lkos_20", Us = "_closeBtn_1lkos_29", qs = "_btnName_1lkos_35", Gs = "_modalTitle_1lkos_39", Hs = "_tabSWitcherWrapper_1lkos_48", Js = "_switcherTitle_1lkos_56", _s = "_switcherScroll_1lkos_63", Ys = "_tabs_1lkos_72", Ks = "_selectWrapper_1lkos_77", Qs = "_filterOption_1lkos_81", $s = "_btnWrapper_1lkos_89", ei = "_resetBtn_1lkos_95", ti = "_saveBtn_1lkos_96", ri = "_desktopWrapper_1lkos_100", si = "_desktopWrapperOpen_1lkos_123", M = {
1860
- root: zs,
1861
- filterWithSaveModal: Xs,
1862
- modalAddBody: Zs,
1863
- closeBtn: Us,
1864
- btnName: qs,
1865
- modalTitle: Gs,
1866
- tabSWitcherWrapper: Hs,
1867
- switcherTitle: Js,
1868
- switcherScroll: _s,
1869
- tabs: Ys,
1870
- selectWrapper: Ks,
1871
- filterOption: Qs,
1872
- btnWrapper: $s,
1873
- resetBtn: ei,
1874
- saveBtn: ti,
1875
- desktopWrapper: ri,
1876
- desktopWrapperOpen: si
1877
- };
1878
- var Ut = { exports: {} };
1879
- /*!
1880
- Copyright (c) 2018 Jed Watson.
1881
- Licensed under the MIT License (MIT), see
1882
- http://jedwatson.github.io/classnames
1883
- */
1884
- (function(e) {
1885
- (function() {
1886
- var r = {}.hasOwnProperty;
1887
- function t() {
1888
- for (var i = "", c = 0; c < arguments.length; c++) {
1889
- var m = arguments[c];
1890
- m && (i = a(i, n.call(this, m)));
1891
- }
1892
- return i;
1893
- }
1894
- function n(i) {
1895
- if (typeof i == "string" || typeof i == "number")
1896
- return this && this[i] || i;
1897
- if (typeof i != "object")
1898
- return "";
1899
- if (Array.isArray(i))
1900
- return t.apply(this, i);
1901
- if (i.toString !== Object.prototype.toString && !i.toString.toString().includes("[native code]"))
1902
- return i.toString();
1903
- var c = "";
1904
- for (var m in i)
1905
- r.call(i, m) && i[m] && (c = a(c, this && this[m] || m));
1906
- return c;
1907
- }
1908
- function a(i, c) {
1909
- return c ? i ? i + " " + c : i + c : i;
1910
- }
1911
- e.exports ? (t.default = t, e.exports = t) : window.classNames = t;
1912
- })();
1913
- })(Ut);
1914
- var ii = Ut.exports;
1915
- const ni = /* @__PURE__ */ Kt(ii), li = ({
1916
- selectedTabs: e = [],
1917
- selectedValues: r = [],
1918
- onClickItem: t,
1919
- disabledOptions: n = [],
1920
- tabs: a = [],
1921
- onChange: i,
1922
- setSelectedTabs: c,
1923
- onSaveClick: m,
1924
- onClearClick: k
1925
- }) => {
1926
- const { isMobile: x } = Le(), [g, y] = ve(!1), L = Pt(null), [R, P] = ve(e), [j] = ve(r), [S, V] = ve(R), [F, D] = ve(j), z = (E) => {
1927
- if (t && t(E), n.some((Z) => Z.value === E.value))
1928
- return;
1929
- const B = F.some((Z) => Z.value === E.value) ? F.filter((Z) => Z.value !== E.value) : [...F, E];
1930
- D(B);
1931
- }, w = () => {
1932
- P(a), V(a), D([]), k(), i && (i([]), c == null || c(a));
1933
- }, W = () => {
1934
- D(r), V(e);
1935
- }, J = () => {
1936
- W(), y(!1);
1937
- }, X = (E) => {
1938
- E.stopPropagation(), m(), i && (c == null || c(S), i(F)), y(!1);
1939
- };
1940
- return Ie(() => {
1941
- g || V((E) => JSON.stringify(E) !== JSON.stringify(e) ? e : E);
1942
- }, [g, e]), Ie(() => {
1943
- const E = (B) => {
1944
- if (!L.current)
1945
- return;
1946
- const Z = B.target;
1947
- L.current.contains(Z) || Z.closest("svg") || J();
1948
- };
1949
- return g ? document.addEventListener("click", E) : document.removeEventListener("click", E), () => {
1950
- document.removeEventListener("click", E);
1951
- };
1952
- }, [g]), {
1953
- isMobile: x,
1954
- handleClearClick: w,
1955
- handleCloseModal: J,
1956
- handleOptionClick: z,
1957
- handleSaveClick: X,
1958
- localSelectedTabs: S,
1959
- selectedOptions: F,
1960
- setSelectedOptions: D,
1961
- isModalOpen: g,
1962
- setIsModalOpen: y,
1963
- setLocalSelectedTabs: V,
1964
- containerRef: L
1965
- };
1966
- }, ai = ni.bind(M), Hi = ({
1967
- disabledOptions: e,
1968
- tabs: r = [],
1969
- selectOptions: t = [],
1970
- onChange: n,
1971
- onClick: a = () => null,
1972
- selectedValues: i,
1973
- setSelectedTabs: c,
1974
- selectedTabs: m,
1975
- onClickItem: k,
1976
- onCLickSelect: x,
1977
- onSaveClick: g = () => null,
1978
- onClearClick: y = () => null,
1979
- onTabClick: L = () => null,
1980
- btnName: R = "Фильтр"
1981
- }) => {
1982
- const {
1983
- handleCloseModal: P,
1984
- localSelectedTabs: j,
1985
- selectedOptions: S,
1986
- isMobile: V,
1987
- handleOptionClick: F,
1988
- handleClearClick: D,
1989
- handleSaveClick: z,
1990
- isModalOpen: w,
1991
- setLocalSelectedTabs: W,
1992
- setIsModalOpen: J,
1993
- containerRef: X
1994
- } = li({
1995
- selectedTabs: m,
1996
- onClickItem: k,
1997
- setSelectedTabs: c,
1998
- tabs: r,
1999
- onChange: n,
2000
- disabledOptions: e,
2001
- selectedValues: i,
2002
- onSaveClick: g,
2003
- onClearClick: y
2004
- }), E = () => /* @__PURE__ */ N(Pe, { children: [
2005
- /* @__PURE__ */ d(
2006
- "div",
2007
- {
2008
- className: M.closeBtn,
2009
- onClick: () => {
2010
- P();
2011
- },
2012
- children: /* @__PURE__ */ d(
2013
- pe,
2014
- {
2015
- name: "close",
2016
- size: "24"
2017
- }
2018
- )
2019
- }
2020
- ),
2021
- /* @__PURE__ */ d("div", { className: M.modalTitle, children: "Фильтры" }),
2022
- /* @__PURE__ */ N("div", { className: M.tabSWitcherWrapper, children: [
2023
- /* @__PURE__ */ d("div", { className: M.switcherTitle, children: "Готовность" }),
2024
- /* @__PURE__ */ d("div", { className: M.switcherScroll, children: /* @__PURE__ */ d(
2025
- Me,
2026
- {
2027
- variant: "grayRow",
2028
- addClassName: M.tabs,
2029
- isApart: !0,
2030
- children: r == null ? void 0 : r.map((B, Z) => {
2031
- var A;
2032
- const b = B.value;
2033
- return /* @__PURE__ */ d(
2034
- Me.Item,
2035
- {
2036
- itemsLength: r == null ? void 0 : r.length,
2037
- mini: !0,
2038
- size_s: "small",
2039
- value: b,
2040
- onClick: () => {
2041
- },
2042
- checked: ((A = j == null ? void 0 : j.find((C) => C.value === b)) == null ? void 0 : A.state) ?? !1,
2043
- onChange: () => {
2044
- W == null || W(
2045
- (C) => C.map((T) => T.value === b ? { ...T, state: !T.state } : T)
2046
- );
2047
- },
2048
- index: Z,
2049
- children: b
2050
- },
2051
- Z
2052
- );
2053
- })
2054
- }
2055
- ) })
2056
- ] }),
2057
- /* @__PURE__ */ d("div", { className: M.selectWrapper, children: t == null ? void 0 : t.map((B, Z) => /* @__PURE__ */ d(
2058
- bt,
2059
- {
2060
- sizeIcon: "24",
2061
- addClassName: M.filterOption,
2062
- disabledOptions: [],
2063
- clickableOptions: t == null ? void 0 : t.map((b) => b.value.toString()),
2064
- selectedOptions: S,
2065
- option: B,
2066
- handleOptionClick: F
2067
- },
2068
- Z
2069
- )) }),
2070
- /* @__PURE__ */ N("div", { className: M.btnWrapper, children: [
2071
- /* @__PURE__ */ d(
2072
- ye,
2073
- {
2074
- as: "button",
2075
- variant: "gray",
2076
- additionalClass: M.resetBtn,
2077
- onClick: D,
2078
- children: "Сбросить"
2079
- }
2080
- ),
2081
- /* @__PURE__ */ d(
2082
- ye,
2083
- {
2084
- as: "button",
2085
- additionalClass: M.saveBtn,
2086
- onClick: z,
2087
- children: "Сохранить"
2088
- }
2089
- )
2090
- ] })
2091
- ] });
2092
- return /* @__PURE__ */ N(Pe, { children: [
2093
- /* @__PURE__ */ N("div", { style: { position: "relative" }, children: [
2094
- /* @__PURE__ */ N(
2095
- "div",
2096
- {
2097
- className: M.root,
2098
- onClick: () => {
2099
- x && x(), a && a(), V ? J((B) => !B) : w || J(!0);
2100
- },
2101
- children: [
2102
- /* @__PURE__ */ d("div", { className: M.btnName, children: R }),
2103
- /* @__PURE__ */ d(
2104
- pe,
2105
- {
2106
- name: "filter",
2107
- size: "16"
2108
- }
2109
- )
2110
- ]
2111
- }
2112
- ),
2113
- !V && /* @__PURE__ */ N(
2114
- "div",
2115
- {
2116
- ref: X,
2117
- className: ai(M.desktopWrapper, { [M.desktopWrapperOpen]: w }),
2118
- children: [
2119
- /* @__PURE__ */ d(
2120
- "div",
2121
- {
2122
- className: M.closeBtn,
2123
- onClick: () => {
2124
- P();
2125
- },
2126
- children: /* @__PURE__ */ d(
2127
- pe,
2128
- {
2129
- name: "close",
2130
- size: "24"
2131
- }
2132
- )
2133
- }
2134
- ),
2135
- /* @__PURE__ */ d("div", { className: M.modalTitle, children: "Фильтры" }),
2136
- /* @__PURE__ */ N("div", { className: M.tabSWitcherWrapper, children: [
2137
- /* @__PURE__ */ d("div", { className: M.switcherTitle, children: "Готовность" }),
2138
- /* @__PURE__ */ d("div", { className: M.switcherScroll, children: /* @__PURE__ */ d(
2139
- Me,
2140
- {
2141
- variant: "grayRow",
2142
- addClassName: M.tabs,
2143
- isApart: !0,
2144
- children: r == null ? void 0 : r.map((B, Z) => {
2145
- var A;
2146
- const b = B.value;
2147
- return /* @__PURE__ */ d(
2148
- Me.Item,
2149
- {
2150
- itemsLength: r == null ? void 0 : r.length,
2151
- size_s: "small",
2152
- mini: !0,
2153
- value: b,
2154
- onClick: () => L(),
2155
- checked: ((A = j == null ? void 0 : j.find((C) => C.value === b)) == null ? void 0 : A.state) ?? !1,
2156
- onChange: () => {
2157
- W == null || W(
2158
- (C) => C.map((T) => T.value === b ? { ...T, state: !T.state } : T)
2159
- );
2160
- },
2161
- index: Z,
2162
- addItemClassName: M.tabSwitcher,
2163
- children: b
2164
- },
2165
- Z
2166
- );
2167
- })
2168
- }
2169
- ) })
2170
- ] }),
2171
- /* @__PURE__ */ d("div", { className: M.selectWrapper, children: t == null ? void 0 : t.map((B, Z) => /* @__PURE__ */ d(
2172
- bt,
2173
- {
2174
- sizeIcon: "24",
2175
- addClassName: M.filterOption,
2176
- disabledOptions: [],
2177
- clickableOptions: t == null ? void 0 : t.map((b) => b.value.toString()),
2178
- selectedOptions: S,
2179
- option: B,
2180
- handleOptionClick: F
2181
- },
2182
- Z
2183
- )) }),
2184
- /* @__PURE__ */ N("div", { className: M.btnWrapper, children: [
2185
- /* @__PURE__ */ d(
2186
- ye,
2187
- {
2188
- as: "button",
2189
- variant: "gray",
2190
- additionalClass: M.resetBtn,
2191
- onClick: D,
2192
- children: "Сбросить"
2193
- }
2194
- ),
2195
- /* @__PURE__ */ d(
2196
- ye,
2197
- {
2198
- as: "button",
2199
- additionalClass: M.saveBtn,
2200
- onClick: z,
2201
- children: "Сохранить"
2202
- }
2203
- )
2204
- ] })
2205
- ]
2206
- }
2207
- )
2208
- ] }),
2209
- V && /* @__PURE__ */ d(
2210
- st,
2211
- {
2212
- isOpen: w,
2213
- emitIsOpen: J,
2214
- isTransparentBack: !0,
2215
- additionalClassModalBody: M.modalAddBody,
2216
- additionalClass: M.filterWithSaveModal,
2217
- children: /* @__PURE__ */ d(E, {})
2218
- }
2219
- )
2220
- ] });
2221
- };
2222
- export {
2223
- Hi as F,
2224
- qi as L,
2225
- Gi as M,
2226
- Me as S,
2227
- ls as a,
2228
- li as b,
2229
- ns as u
2230
- };