@topvisor/ui 1.0.12 → 1.0.13-fix-dialog-scroll
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.
- package/.chunks/datepicker-B8syh3Uk.es.js +44 -0
- package/.chunks/datepicker-B8syh3Uk.es.js.map +1 -0
- package/.chunks/datepicker-BLuImSNi.amd.js +2 -0
- package/.chunks/datepicker-BLuImSNi.amd.js.map +1 -0
- package/.chunks/{forms-Dm3JmuO3.es.js → forms-C4-jc5q2.es.js} +129 -129
- package/.chunks/{forms-Dm3JmuO3.es.js.map → forms-C4-jc5q2.es.js.map} +1 -1
- package/.chunks/{forms-JhDIERVr.amd.js → forms-CiwhEtPE.amd.js} +3 -3
- package/.chunks/{forms-JhDIERVr.amd.js.map → forms-CiwhEtPE.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DsTNQnlk.es.js → listItem.vue_vue_type_script_setup_true_lang-CtqSJHeU.es.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DsTNQnlk.es.js.map → listItem.vue_vue_type_script_setup_true_lang-CtqSJHeU.es.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DPLgssbE.amd.js → listItem.vue_vue_type_script_setup_true_lang-sNbmDi34.amd.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DPLgssbE.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-sNbmDi34.amd.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-86OJDcnB.es.js → menu.vue_vue_type_style_index_0_lang-BCFxRsJ_.es.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-86OJDcnB.es.js.map → menu.vue_vue_type_style_index_0_lang-BCFxRsJ_.es.js.map} +1 -1
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-DkiaQwIJ.amd.js → menu.vue_vue_type_style_index_0_lang-jctlBjKS.amd.js} +2 -2
- package/.chunks/{menu.vue_vue_type_style_index_0_lang-DkiaQwIJ.amd.js.map → menu.vue_vue_type_style_index_0_lang-jctlBjKS.amd.js.map} +1 -1
- package/.chunks/{notice-CTd0Zf-U.es.js → notice-Dgu-SIPq.es.js} +2 -2
- package/.chunks/notice-Dgu-SIPq.es.js.map +1 -0
- package/.chunks/{notice-BPxrLH4a.amd.js → notice-DkCLhqSq.amd.js} +2 -2
- package/.chunks/notice-DkCLhqSq.amd.js.map +1 -0
- package/.chunks/popup-D6LvyJ7M.amd.js +2 -0
- package/.chunks/popup-D6LvyJ7M.amd.js.map +1 -0
- package/.chunks/{popup-DXuKsMuU.es.js → popup-DEG8x2yE.es.js} +46 -492
- package/.chunks/popup-DEG8x2yE.es.js.map +1 -0
- package/.chunks/utils-B3ycYRqM.amd.js +2 -0
- package/.chunks/utils-B3ycYRqM.amd.js.map +1 -0
- package/.chunks/utils-BiyYJ_AB.es.js +330 -0
- package/.chunks/utils-BiyYJ_AB.es.js.map +1 -0
- package/.chunks/utils-DdsRxaK5.es.js +220 -0
- package/.chunks/utils-DdsRxaK5.es.js.map +1 -0
- package/.chunks/utils-DpejCylJ.amd.js +2 -0
- package/.chunks/utils-DpejCylJ.amd.js.map +1 -0
- package/README.md +7 -12
- package/assets/charts.css +1 -1
- package/assets/core.css +1 -1
- package/charts/charts.amd.js +1 -1
- package/charts/charts.amd.js.map +1 -1
- package/charts/charts.js +134 -81
- package/charts/charts.js.map +1 -1
- package/components/charts/charts.d.ts +2 -0
- package/components/charts/miniChart/miniChart.d.ts +8 -1
- package/components/charts/miniCharts/miniCharts.d.ts +20 -0
- package/components/charts/miniCharts/miniCharts.vue.d.ts +29 -0
- package/components/charts/miniCharts/stories/dummy.d.ts +6 -0
- package/components/dialog/dialog/composables/asyncDialogWorker.d.ts +51 -0
- package/components/dialog/dialog/composables/dialogWorker.d.ts +108 -0
- package/components/dialog/dialog/composables/types.d.ts +11 -0
- package/components/dialog/dialog/composables/utils.d.ts +21 -0
- package/components/dialog/dialog/dialog.vue.d.ts +27 -0
- package/components/dialog/dialog/dialogs/dialogs.vue.d.ts +10 -0
- package/components/dialog/dialog/page/page.vue.d.ts +18 -0
- package/components/dialog/dialog/page/types.d.ts +65 -0
- package/components/dialog/dialog/pageComponent/pageComponent.vue.d.ts +6 -0
- package/components/dialog/dialog/pageComponent/types.d.ts +18 -0
- package/components/dialog/dialog/stories/autoload.d.ts +2 -0
- package/components/dialog/dialog/stories/dialog_example/pages/utils.d.ts +7 -0
- package/components/dialog/dialog/types.d.ts +58 -0
- package/components/dialog/dialog.d.ts +6 -0
- package/components/dialog/lib/types.d.ts +16 -0
- package/components/dialog/lib/utils.d.ts +14 -0
- package/components/dialog/lib/utils.globalEvents.d.ts +8 -0
- package/components/dialog/lib/worker.d.ts +55 -0
- package/components/forms/select/select.d.ts +1 -1
- package/components/project/tagSelector/tagSelector.vue.d.ts +2 -2
- package/components/project/tagSelector/types.d.ts +2 -2
- package/components/tabsView/tabsView/tabsView.d.ts +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.d.ts +2 -0
- package/core/app.js +57 -50
- package/core/app.js.map +1 -1
- package/core/core/core.d.ts +2 -2
- package/core/core/options.d.ts +2 -2
- package/core/plugins/core.d.ts +12 -3
- package/dialog/dialog.amd.js +2 -0
- package/dialog/dialog.amd.js.map +1 -0
- package/dialog/dialog.d.ts +2 -0
- package/dialog/dialog.js +183 -0
- package/dialog/dialog.js.map +1 -0
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.js +54 -54
- package/jquery-ui.min.css +6 -0
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.js +2 -2
- package/popup/worker.amd.js +1 -1
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.js +3 -3
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.js +16 -16
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/lodash.amd.js +1 -1
- package/utils/lodash.js +5 -5
- package/utils/price.amd.js +1 -1
- package/utils/price.js +1 -1
- package/utils/string.amd.js +1 -1
- package/utils/string.js +1 -1
- package/.chunks/datepicker-4Pv7WbOy.amd.js +0 -248
- package/.chunks/datepicker-4Pv7WbOy.amd.js.map +0 -1
- package/.chunks/datepicker-DDso1VCq.es.js +0 -290
- package/.chunks/datepicker-DDso1VCq.es.js.map +0 -1
- package/.chunks/notice-BPxrLH4a.amd.js.map +0 -1
- package/.chunks/notice-CTd0Zf-U.es.js.map +0 -1
- package/.chunks/popup-BXBFCWHU.amd.js +0 -448
- package/.chunks/popup-BXBFCWHU.amd.js.map +0 -1
- package/.chunks/popup-DXuKsMuU.es.js.map +0 -1
- package/components/core/dialog/types.d.ts +0 -2
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import { watch as k, toRef as g } from "vue";
|
|
2
|
-
import { C as a, d as m } from "./forms-Dm3JmuO3.es.js";
|
|
3
|
-
const h = `/* ui-datepicker */\r
|
|
4
|
-
.ui-datepicker {\r
|
|
5
|
-
--datepicker-day-color: var(--color-layout-front-1);\r
|
|
6
|
-
--datepicker-day-color-hover: var(--color-layer-1);\r
|
|
7
|
-
--datepicker-selected-color: var(--color-bg-primary-1);\r
|
|
8
|
-
--datepicker-selected-color-hover: var(--color-bg-primary-2);\r
|
|
9
|
-
--datepicker-range-color: var(--color-layer-primary-1);\r
|
|
10
|
-
--datepicker-range-color-hover: var(--color-layer-primary-2);\r
|
|
11
|
-
\r
|
|
12
|
-
user-select: none;\r
|
|
13
|
-
width: auto;\r
|
|
14
|
-
padding: 0;\r
|
|
15
|
-
}\r
|
|
16
|
-
\r
|
|
17
|
-
.ui-datepicker:before,\r
|
|
18
|
-
.ui-datepicker:after {\r
|
|
19
|
-
display: none;\r
|
|
20
|
-
}\r
|
|
21
|
-
\r
|
|
22
|
-
/* на странице */\r
|
|
23
|
-
.ui-datepicker-inline {\r
|
|
24
|
-
display: inline-block !important;\r
|
|
25
|
-
}\r
|
|
26
|
-
\r
|
|
27
|
-
/* в popup */\r
|
|
28
|
-
.ui-datepicker:not(.ui-datepicker-inline) {\r
|
|
29
|
-
border-radius: 8px;\r
|
|
30
|
-
background: var(--color-layout-front-1);\r
|
|
31
|
-
box-shadow: var(--top-shadow);\r
|
|
32
|
-
z-index: 10000000 !important;\r
|
|
33
|
-
padding: 8px;\r
|
|
34
|
-
}\r
|
|
35
|
-
\r
|
|
36
|
-
.ui-datepicker a {\r
|
|
37
|
-
text-decoration: none !important;\r
|
|
38
|
-
}\r
|
|
39
|
-
\r
|
|
40
|
-
.ui-datepicker option {\r
|
|
41
|
-
color: var(--color-text-1);\r
|
|
42
|
-
font-size: 14px;\r
|
|
43
|
-
}\r
|
|
44
|
-
\r
|
|
45
|
-
.ui-datepicker-header {\r
|
|
46
|
-
padding: 0 !important;\r
|
|
47
|
-
margin: 0 0 18px 0;\r
|
|
48
|
-
display: flex;\r
|
|
49
|
-
align-items: center;\r
|
|
50
|
-
}\r
|
|
51
|
-
\r
|
|
52
|
-
.ui-datepicker-header > * {\r
|
|
53
|
-
display: flex;\r
|
|
54
|
-
align-items: center;\r
|
|
55
|
-
justify-content: center;\r
|
|
56
|
-
}\r
|
|
57
|
-
\r
|
|
58
|
-
.ui-datepicker-title {\r
|
|
59
|
-
width: 100% !important;\r
|
|
60
|
-
height: 24px;\r
|
|
61
|
-
margin: 0 !important;\r
|
|
62
|
-
}\r
|
|
63
|
-
\r
|
|
64
|
-
.ui-datepicker-month,\r
|
|
65
|
-
.ui-datepicker-year {\r
|
|
66
|
-
outline: none !important;\r
|
|
67
|
-
width: auto !important;\r
|
|
68
|
-
border: none;\r
|
|
69
|
-
padding: 0;\r
|
|
70
|
-
margin: 0 6px !important;\r
|
|
71
|
-
text-align: center;\r
|
|
72
|
-
font-size: 16px !important;\r
|
|
73
|
-
}\r
|
|
74
|
-
\r
|
|
75
|
-
.ui-datepicker-month {\r
|
|
76
|
-
color: var(--color-text-1);\r
|
|
77
|
-
}\r
|
|
78
|
-
\r
|
|
79
|
-
.ui-datepicker-year {\r
|
|
80
|
-
color: var(--color-text-2);\r
|
|
81
|
-
}\r
|
|
82
|
-
\r
|
|
83
|
-
/* select.ui-datepicker-month,\r
|
|
84
|
-
select.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\r
|
|
85
|
-
select.ui-datepicker-month,\r
|
|
86
|
-
select.ui-datepicker-year {\r
|
|
87
|
-
cursor: pointer;\r
|
|
88
|
-
}\r
|
|
89
|
-
\r
|
|
90
|
-
.ui-datepicker-prev,\r
|
|
91
|
-
.ui-datepicker-next {\r
|
|
92
|
-
cursor: pointer;\r
|
|
93
|
-
width: 24px !important;\r
|
|
94
|
-
height: 24px !important;\r
|
|
95
|
-
font-size: 24px;\r
|
|
96
|
-
font-family: "Topvisor-2";\r
|
|
97
|
-
position: static !important;\r
|
|
98
|
-
}\r
|
|
99
|
-
\r
|
|
100
|
-
.ui-datepicker-prev:before {\r
|
|
101
|
-
color: var(--color-text-3);\r
|
|
102
|
-
content: "";\r
|
|
103
|
-
}\r
|
|
104
|
-
\r
|
|
105
|
-
.ui-datepicker-prev-hover:before {\r
|
|
106
|
-
color: var(--color-text-1);\r
|
|
107
|
-
content: "";\r
|
|
108
|
-
}\r
|
|
109
|
-
\r
|
|
110
|
-
.ui-datepicker-next {\r
|
|
111
|
-
color: var(--color-text-3);\r
|
|
112
|
-
order: 1;\r
|
|
113
|
-
}\r
|
|
114
|
-
\r
|
|
115
|
-
.ui-datepicker-next-hover {\r
|
|
116
|
-
color: var(--color-text-1);\r
|
|
117
|
-
order: 1;\r
|
|
118
|
-
}\r
|
|
119
|
-
\r
|
|
120
|
-
.ui-datepicker-next:before {\r
|
|
121
|
-
content: "";\r
|
|
122
|
-
}\r
|
|
123
|
-
\r
|
|
124
|
-
.ui-datepicker-prev > *,\r
|
|
125
|
-
.ui-datepicker-next > * {\r
|
|
126
|
-
display: none !important;\r
|
|
127
|
-
}\r
|
|
128
|
-
\r
|
|
129
|
-
.ui-datepicker thead th {\r
|
|
130
|
-
width: auto !important;\r
|
|
131
|
-
padding: 0 !important;\r
|
|
132
|
-
color: var(--color-text-3);\r
|
|
133
|
-
font-size: 14px;\r
|
|
134
|
-
font-weight: 400 !important;\r
|
|
135
|
-
}\r
|
|
136
|
-
\r
|
|
137
|
-
.ui-datepicker table {\r
|
|
138
|
-
margin: 0 !important;\r
|
|
139
|
-
font-size: 14px;\r
|
|
140
|
-
}\r
|
|
141
|
-
\r
|
|
142
|
-
.ui-datepicker td {\r
|
|
143
|
-
color: var(--color-text-1);\r
|
|
144
|
-
background: none;\r
|
|
145
|
-
padding: 0 !important;\r
|
|
146
|
-
}\r
|
|
147
|
-
\r
|
|
148
|
-
.ui-datepicker td span,\r
|
|
149
|
-
.ui-datepicker td a {\r
|
|
150
|
-
border-radius: 8px;\r
|
|
151
|
-
border: none;\r
|
|
152
|
-
min-width: 32px;\r
|
|
153
|
-
height: 32px;\r
|
|
154
|
-
padding: 0;\r
|
|
155
|
-
margin: 1px;\r
|
|
156
|
-
color: var(--color-text-1) !important;\r
|
|
157
|
-
line-height: 32px;\r
|
|
158
|
-
text-align: center;\r
|
|
159
|
-
position: relative;\r
|
|
160
|
-
display: block;\r
|
|
161
|
-
}\r
|
|
162
|
-
\r
|
|
163
|
-
/* обычные даты */\r
|
|
164
|
-
.ui-datepicker td a {\r
|
|
165
|
-
background: var(--datepicker-day-color);\r
|
|
166
|
-
}\r
|
|
167
|
-
\r
|
|
168
|
-
.ui-datepicker td a:hover {\r
|
|
169
|
-
background: var(--datepicker-day-color-hover);\r
|
|
170
|
-
}\r
|
|
171
|
-
\r
|
|
172
|
-
/* текущий день */\r
|
|
173
|
-
td.ui-datepicker-today span,\r
|
|
174
|
-
td.ui-datepicker-today a {\r
|
|
175
|
-
background: none;\r
|
|
176
|
-
position: relative;\r
|
|
177
|
-
}\r
|
|
178
|
-
\r
|
|
179
|
-
/* выбранные даты */\r
|
|
180
|
-
.ui-datepicker td.selected a {\r
|
|
181
|
-
background: var(--datepicker-range-color);\r
|
|
182
|
-
padding-right: 0;\r
|
|
183
|
-
padding-left: 1px;\r
|
|
184
|
-
margin-right: 1px;\r
|
|
185
|
-
margin-left: 0;\r
|
|
186
|
-
}\r
|
|
187
|
-
\r
|
|
188
|
-
.ui-datepicker td.selected a:hover {\r
|
|
189
|
-
background: var(--datepicker-range-color-hover);\r
|
|
190
|
-
}\r
|
|
191
|
-
\r
|
|
192
|
-
.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\r
|
|
193
|
-
border-top-left-radius: 0;\r
|
|
194
|
-
border-bottom-left-radius: 0;\r
|
|
195
|
-
padding-left: 1px;\r
|
|
196
|
-
margin-left: 0;\r
|
|
197
|
-
}\r
|
|
198
|
-
\r
|
|
199
|
-
.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\r
|
|
200
|
-
border-top-right-radius: 0;\r
|
|
201
|
-
border-bottom-right-radius: 0;\r
|
|
202
|
-
padding-right: 1px;\r
|
|
203
|
-
margin-right: 0;\r
|
|
204
|
-
}\r
|
|
205
|
-
\r
|
|
206
|
-
.ui-datepicker td.selected-start a,\r
|
|
207
|
-
.ui-datepicker td.selected-end a,\r
|
|
208
|
-
.ui-datepicker td.ui-datepicker-current-day a {\r
|
|
209
|
-
background: var(--datepicker-selected-color);\r
|
|
210
|
-
color: #FFF !important;\r
|
|
211
|
-
}\r
|
|
212
|
-
\r
|
|
213
|
-
.ui-datepicker td.selected-start a:hover,\r
|
|
214
|
-
.ui-datepicker td.selected-end a:hover,\r
|
|
215
|
-
.ui-datepicker td.ui-datepicker-current-day a:hover {\r
|
|
216
|
-
background: var(--datepicker-selected-color-hover);\r
|
|
217
|
-
}\r
|
|
218
|
-
\r
|
|
219
|
-
.ui-datepicker-day-marks {\r
|
|
220
|
-
line-height: normal;\r
|
|
221
|
-
position: absolute;\r
|
|
222
|
-
right: 0;\r
|
|
223
|
-
bottom: 3px;\r
|
|
224
|
-
left: 0;\r
|
|
225
|
-
display: flex;\r
|
|
226
|
-
align-items: center;\r
|
|
227
|
-
justify-content: center;\r
|
|
228
|
-
}\r
|
|
229
|
-
\r
|
|
230
|
-
.ui-datepicker-day-marks > i {\r
|
|
231
|
-
border-radius: 50%;\r
|
|
232
|
-
border: 1px solid #FFF;\r
|
|
233
|
-
width: 4px;\r
|
|
234
|
-
height: 4px;\r
|
|
235
|
-
margin: 0 2px;\r
|
|
236
|
-
}\r
|
|
237
|
-
\r
|
|
238
|
-
.ui-datepicker-day-marks-exists {\r
|
|
239
|
-
background: var(--color-text-primary);\r
|
|
240
|
-
}\r
|
|
241
|
-
\r
|
|
242
|
-
.ui-datepicker-day-marks-update {\r
|
|
243
|
-
background: var(--color-text-negative);\r
|
|
244
|
-
}\r
|
|
245
|
-
\r
|
|
246
|
-
.ui-datepicker-row-break {\r
|
|
247
|
-
display: none;\r
|
|
248
|
-
}\r
|
|
249
|
-
`;
|
|
250
|
-
a.insertStyleToPage(h);
|
|
251
|
-
const x = (t) => {
|
|
252
|
-
var r, e;
|
|
253
|
-
if (!((e = (r = a.$) == null ? void 0 : r.ui) != null && e.datepicker)) {
|
|
254
|
-
console.info("Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker");
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
return a.$.datepicker.setDefaults({
|
|
258
|
-
dateFormat: a.state.dateFormat.toLowerCase().replace("m", "mm").replace("y", "yy").replace("d", "dd")
|
|
259
|
-
}), a.$(t);
|
|
260
|
-
};
|
|
261
|
-
function b(t, r) {
|
|
262
|
-
var e;
|
|
263
|
-
return (e = x(t)) == null ? void 0 : e.datepicker(r);
|
|
264
|
-
}
|
|
265
|
-
let d, l, p, u;
|
|
266
|
-
k(g(a.state.dateFormat), () => {
|
|
267
|
-
var t;
|
|
268
|
-
d = m("2000-01-01"), l = ((t = d.match(/\D/)) == null ? void 0 : t[0]) ?? "-", p = d.replace(/\D+/g, "").length, u = [];
|
|
269
|
-
for (let r = 0; r < d.length; r++)
|
|
270
|
-
d[r] === l && u.push(r);
|
|
271
|
-
}, { immediate: !0 });
|
|
272
|
-
function y(t) {
|
|
273
|
-
let r = t.target.selectionEnd, e = t.target.value, n = e.substring(0, r).replace(/\D+/g, ""), i = e.substring(r).replace(/\D+/g, ""), c = n.length + i.length - p;
|
|
274
|
-
if (c > 0) {
|
|
275
|
-
n = n.substring(0, p);
|
|
276
|
-
const o = p - n.length;
|
|
277
|
-
i = i.substring(i.length - o);
|
|
278
|
-
} else c < 0 && (t.inputType === "deleteContentForward" ? n += "0".repeat(-c) : i = "0".repeat(-c) + i);
|
|
279
|
-
r = n.length, e = n + i;
|
|
280
|
-
for (let o = 0; o < u.length; o++) {
|
|
281
|
-
const s = u[o];
|
|
282
|
-
e = e.substring(0, s) + l + e.substring(s), r >= s && r++;
|
|
283
|
-
}
|
|
284
|
-
t.inputType === "deleteContentBackward" && e[r - 1] === l && r--, e !== t.target.value && (t.target.value = e, t.target.selectionStart = r, t.target.selectionEnd = r);
|
|
285
|
-
}
|
|
286
|
-
export {
|
|
287
|
-
b as connectDatepicker,
|
|
288
|
-
y as oninput
|
|
289
|
-
};
|
|
290
|
-
//# sourceMappingURL=datepicker-DDso1VCq.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-DDso1VCq.es.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: var(--color-layout-front-1);\\r\\n\\t--datepicker-day-color-hover: var(--color-layer-1);\\r\\n\\t--datepicker-selected-color: var(--color-bg-primary-1);\\r\\n\\t--datepicker-selected-color-hover: var(--color-bg-primary-2);\\r\\n\\t--datepicker-range-color: var(--color-layer-primary-1);\\r\\n\\t--datepicker-range-color-hover: var(--color-layer-primary-2);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--color-layout-front-1);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text-1);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-text-2);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: \\\"Topvisor-2\\\";\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\tcontent: \\\"\\\";\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev-hover:before {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tcontent: \\\"\\\";\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next-hover {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: \\\"\\\";\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text-1) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-text-primary);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-text-negative);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.insertStyleToPage(css);\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!Core.$?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tCore.$.datepicker.setDefaults({\r\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd'),\r\n\t});\r\n\r\n\treturn Core.$(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}\r\n"],"names":["css","Core","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","dateFormat","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACMfC,EAAK,kBAAkBD,CAAG;AAE1B,MAAME,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAJ,EAAK,MAAL,gBAAAI,EAAQ,OAAR,QAAAD,EAAY,aAAY;AAC5B,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EACD;AAEK,SAAAH,EAAA,EAAE,WAAW,YAAY;AAAA,IAC7B,YAAYA,EAAK,MAAM,WAAW,YAAA,EAAc,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI;AAAA,EAAA,CACvG,GAEMA,EAAK,EAAEE,CAAE;AACjB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMZ,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzC,EAAAO,IAAgBM,EAAW,YAAY,GACvCL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAA;AAEpB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAA,CAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA,MAC9F,CAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EAEF;AAGA,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notice-BPxrLH4a.amd.js","sources":["../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"sourcesContent":["import { reactive } from 'vue';\r\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\r\nimport Core from '@/core/core/core.js';\r\nimport { genIntHash } from '@/core/utils/string';\r\n\r\nexport const transitionDuration = 300;\r\n\r\nexport type Item = Props & { onClose?: Function };\r\n\r\nexport const itemById = reactive(new Map<string, Item>());\r\n\r\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\r\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\r\n};\r\n\r\nexport type Options = {\r\n\ttitle?: ItemProps['title'],\r\n\tmetaText?: ItemProps['metaText'],\r\n\tbuttonProps?: ItemProps['buttonProps'],\r\n\tisSafeHTML?: ItemProps['isSafeHTML'],\r\n\tonClose?: Function\r\n}\r\n\r\n/**\r\n * Показать сообщением в стиле push уведомления\r\n *\r\n * title будет получен из первой строки text\r\n *\r\n * Если в options указан title, он будет взят оттуда\r\n */\r\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\r\n\tlet title = '';\r\n\r\n\ttext = String(text);\r\n\r\n\tconst id = genItemId(text, style, options);\r\n\r\n\tif (options?.title) {\r\n\t\ttitle = options.title;\r\n\t} else {\r\n\t\tconst chunks = text.split('\\n');\r\n\r\n\t\tif (chunks.length) {\r\n\t\t\ttitle = String(chunks.shift());\r\n\t\t\ttext = chunks.join('\\n');\r\n\t\t}\r\n\t}\r\n\r\n\tconst itemExists = itemById.get(id);\r\n\tif (itemExists) {\r\n\t\thightlight(itemExists);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst item: Item = {\r\n\t\tid,\r\n\t\ttitle,\r\n\t\ttext,\r\n\t\tstyle,\r\n\t\tbuttonProps: options?.buttonProps,\r\n\t\tmetaText: options?.metaText,\r\n\t\tisSafeHTML: options?.isSafeHTML,\r\n\t\tonClose: options?.onClose,\r\n\t};\r\n\r\n\titemById.set(item.id, item);\r\n\r\n\tif (itemById.size > 5) {\r\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\r\n\t\tif (firstItem) close(firstItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Автозакрытие ошибок форм\r\n\t *\r\n\t * Добавляет\r\n\t */\r\n\tif (Core.state.isMobile) {\r\n\t\t$('input').one('click', () => close(item));\r\n\t}\r\n};\r\n\r\nconst hightlight = (item: Item) => {\r\n\titem.hightlight = true;\r\n\r\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\r\n};\r\n\r\nconst close = (item: Item) => {\r\n\titem.forceClosed = true;\r\n\r\n\tsetTimeout(() => {\r\n\t\titem.onClose?.();\r\n\r\n\t\titemById.delete(item.id);\r\n\t}, transitionDuration);\r\n};\r\n\r\n/**\r\n * Убрать подозрительный html код\r\n */\r\nexport const prepareText = (text: string) => {\r\n\tconst textNoSafety = 'hacking was detected';\r\n\r\n\ttext = text.replace(/<script/g, textNoSafety);\r\n\ttext = text.replace(/<img/g, textNoSafety);\r\n\ttext = text.replace(/<iframe/g, textNoSafety);\r\n\ttext = text.replace(/javascript:/g, textNoSafety);\r\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\r\n\r\n\treturn text;\r\n};\r\n","<script setup lang=\"ts\">\r\nimport { computed, ref } from 'vue';\r\n\r\nimport Core from '@/core/core/core.js';\r\nimport { nl2br } from '@/core/utils/string';\r\n\r\nimport type { Emits, Props } from './types';\r\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\r\n\r\nconst props = defineProps<Props>();\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\n// анимация появления\r\nconst showed = ref(false);\r\nsetTimeout(() => showed.value = true, 10);\r\n\r\n// анимация закрытия\r\nconst closed = ref(false);\r\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\r\n\r\nconst title = computed(() => {\r\n\tlet res = props.title.replace(/ {2}/g, ' ');\r\n\r\n\tif (!props.isSafeHTML) res = prepareText(res);\r\n\r\n\treturn res;\r\n});\r\n\r\nconst text = computed(() => {\r\n\tlet res = nl2br(props.text);\r\n\r\n\tres = res.replace(/ {2}/g, ' ');\r\n\r\n\tif (!props.isSafeHTML) res = prepareText(res);\r\n\r\n\treturn res;\r\n});\r\n\r\nconst close = (direction?: typeof closedDirection.value) => {\r\n\tclosed.value = true;\r\n\r\n\tif (direction) {\r\n\t\tclosedDirection.value = direction;\r\n\t}\r\n\r\n\tsetTimeout(() => emit('close'), transitionDuration);\r\n};\r\n\r\nconst onClick = (e: MouseEvent) => {\r\n\tconst { tagName } = e.target as HTMLElement;\r\n\r\n\tif (tagName === 'A') close();\r\n};\r\n\r\nconst vSwipe = {\r\n\tmounted: (el: HTMLElement) => {\r\n\t\tif (!Core.state.isMobile) return;\r\n\r\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\r\n\r\n\t\tlet direction: typeof closedDirection.value = 'right';\r\n\r\n\t\tlet axis = 'x';\r\n\t\t// if (getOS() === 'iOS') axis = 'y';\r\n\r\n\t\tCore.$(el).draggable({\r\n\t\t\trevert: false,\r\n\t\t\taxis,\r\n\t\t\tdrag: (e, ui) => {\r\n\t\t\t\tif (axis == 'x') {\r\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstop: (_e, _ui) => {\r\n\t\t\t\tclose(direction);\r\n\t\t\t},\r\n\t\t});\r\n\t},\r\n};\r\n\r\n// const vSwipe = {\r\n// \tmounted: (el: HTMLElement) => {\r\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\r\n// \t\t\tdisableTextSelect: true,\r\n// \t\t\tonSwipe(e: PointerEvent) {\r\n// \t\t\t\tleft.value = -distanceX.value + 'px';\r\n// \t\t\t},\r\n// \t\t\tonSwipeEnd: (_e, direction) => {\r\n// \t\t\t\tclose(direction);\r\n// \t\t\t},\r\n// \t\t});\r\n// \t},\r\n// };\r\n</script>\r\n\r\n<template>\r\n\t<div\r\n\t\tclass=\"top-notice_item\"\r\n\t\t:class=\"{\r\n\t\t\t['top-notice_item-' + style]: true,\r\n\t\t\t'top-notice_item-hightlight': hightlight,\r\n\t\t\t'top-notice_item-showed': showed,\r\n\t\t\t'top-notice_item-closed': closed || forceClosed,\r\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\r\n\t\t}\"\r\n\t\t@click=\"onClick\"\r\n\t\tv-swipe\r\n\t>\r\n\t\t<div class=\"top-notice_itemTextWrapper\">\r\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\r\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\r\n\t\t</div>\r\n\r\n\t\t<TopButton\r\n\t\t\tv-if=\"buttonProps\"\r\n\t\t\tclass=\"top-notice_itemButton\"\r\n\t\t\tsize=\"s\"\r\n\t\t\t:=\"buttonProps\"\r\n\t\t\t:title=\"buttonProps.title\"\r\n\t\t\tv-html=\"buttonProps.default\"\r\n\t\t\t@click=\"close()\"\r\n\t\t/>\r\n\r\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\r\n\r\n\t\t<div\r\n\t\t\tclass=\"top-notice_itemClose\"\r\n\t\t\tdata-top-icon=\"\"\r\n\t\t\t:title=\"$i18n.Common.Close\"\r\n\t\t\t@click=\"() => close()\"\r\n\t\t></div>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n@import \"style.css\";\r\n</style>\r\n","<!-- performance all in one file component, для Core.notice() -->\r\n<script lang=\"ts\">\r\nexport { show } from './utils';\r\n</script>\r\n\r\n<script setup lang=\"ts\">\r\nimport type { Item } from './utils';\r\nimport { itemById } from './utils';\r\n\r\nimport type { Props } from './types';\r\nimport TopNoticeItem from './item/item.vue';\r\n\r\ndefineProps<Props>();\r\n\r\nconst onCloseItem = (item: Item) => {\r\n\titem.onClose?.();\r\n\r\n\titemById.delete(item.id);\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<teleport to=\"body\">\r\n\t\t<div class=\"top-notice\">\r\n\t\t\t<TopNoticeItem\r\n\t\t\t\tv-for=\"[_index, item] in itemById\"\r\n\t\t\t\t:key=\"item.id\"\r\n\t\t\t\t:id=\"item.id\"\r\n\t\t\t\t:title=\"item.title\"\r\n\t\t\t\t:text=\"item.text\"\r\n\t\t\t\t:style=\"item.style\"\r\n\t\t\t\t:buttonProps=\"item.buttonProps\"\r\n\t\t\t\t:metaText=\"item.metaText\"\r\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\r\n\t\t\t\t:forceClosed=\"item.forceClosed\"\r\n\t\t\t\t:hightlight=\"item.hightlight\"\r\n\t\t\t\t@close=\"onCloseItem(item)\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</teleport>\r\n</template>\r\n\r\n<style>\r\n:root {\r\n\t--top-notice-top: var(--top-padding-4);\r\n\t--top-notice-right: var(--top-padding-4);\r\n}\r\n\r\n.top-notice {\r\n\twidth: 400px;\r\n\tfont-size: 14px;\r\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\r\n\tz-index: 1000010;\r\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\r\n}\r\n\r\n.top-notice ul {\r\n\tpadding: 0 0 0 var(--top-padding-5);\r\n}\r\n\r\n@media only screen and (max-width: 600px) {\r\n\t:root {\r\n\t\t--top-notice-top: var(--top-padding-4);\r\n\t\t--top-notice-right: var(--top-padding-4);\r\n\t}\r\n\r\n\t.top-notice { width: auto; left: var(--top-notice-right); }\r\n}\r\n</style>\r\n"],"names":["utils_string","text","style","options","show","title","chunks","hightlight","itemExists","id","itemById","_firstId","firstItem","close","forms","item","_a","prepareText","textNoSafety","props","__props","emit","__emit","showed","vue","closed","closedDirection","res","direction","onClick","e","tagName","el","ui","_e","_ui","onCloseItem"],"mappings":"yOAYC,cAAAA,EAAA,WAAAC,EAAAC,EAAA,KAAA,UAAAC,CAAA,CAAA,EAkBMC,EAAA,CAAAH,EAAAC,EAAA,OAAAC,IAAA,CACN,IAAAE,EAAA,GAEAJ,EAAA,OAAAA,CAAA,mBAIA,GAAAE,GAAA,MAAAA,EAAA,MACCE,EAAAF,EAAA,UAAgB;GAIhBG,EAAA;2BAQAC,EAAAC,CAAA,EAEA,gBAGkB,GAAAC,EAClB,MAAAJ,EACA,KAAAJ,EACA,MAAAC,EACA,YAAAC,GAAA,YAAAA,EAAA,YACsB,SAAAA,GAAA,YAAAA,EAAA,SACH,WAAAA,GAAA,YAAAA,EAAA,WACE,QAAAA,GAAA,YAAAA,EAAA,OACH,EAKnB,iBAAAO,EAAA,KAAA,EAAA,CACC,KAAA,CAAAC,EAAAC,CAAA,EAAA,CAAA,GAAAF,CAAA,EAAA,GAAA,CAAA,GAAA,CAAA,EACAE,GAAAC,EAAAD,CAAA,EAQDE,EAAA,KAAA,MAAA,UACC,EAAA,OAAA,EAAA,IAAA,QAAA,IAAAD,EAAAE,CAAA,CAAA,GAIFR,EAAAQ,GAAA,CACCA,EAAA,WAAA,oCAGD,EAEAF,EAAAE,GAAA,CACCA,EAAA,YAAA,0BAGCC,EAAAD,EAAA,UAAA,MAAAC,EAAA,KAAAD,qBAIF,EAKaE,EAAAhB,GAAA,CACZ,MAAAiB,EAAA,+eC9FD,MAAAC,EAAAC,EAEAC,EAAAC,EAGAC,EAAAC,EAAA,IAAA,EAAA,gCAIA,MAAAC,EAAAD,EAAA,IAAA,EAAA,EACAE,EAAAF,EAAA,IAAA,OAAA,EAEAnB,EAAAmB,EAAA,SAAA,IAAA,CACC,IAAAG,EAAAR,EAAA,MAAA,QAAA,QAAA,QAAA,EAEA,OAAAA,EAAA,aAAAQ,EAAAV,EAAAU,CAAA,IAEO,CAAA,EAGR1B,EAAAuB,EAAA,SAAA,IAAA,4DAKCL,EAAA,aAAAQ,EAAAV,EAAAU,CAAA,IAEO,CAAA,EAGRd,EAAAe,GAAA,CACCH,EAAA,MAAA,OAGCC,EAAA,MAAAE,+BAGiD,EAGnDC,EAAAC,GAAA,2BAGCC,IAAA,KAAAlB,EAAA,CAA2B,KAGb,QAAAmB,GAAA,CAIb,2BAAA,CAAAlB,EAAA,KAAA,GAAA,CAAAA,EAAA,KAAA,EAAA,GAAA,UAAA,OAEA,IAAAc,EAAA,yCAMS,KAJT,IAKC,KAAA,CAAAE,EAAAG,IAAA,CAGEL,EAAAK,EAAA,SAAA,KAAA,EAAA,QAAA,QAIF,KAAA,CAAAC,EAAAC,IAAA,CAECtB,EAAAe,CAAA,EACD,CAAA,EAEF,q0CClED,MAAAQ,EAAArB,GAAA,QACCC,EAAAD,EAAA,UAAA,MAAAC,EAAA,KAAAD,iBAEuB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notice-CTd0Zf-U.es.js","sources":["../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"sourcesContent":["import { reactive } from 'vue';\r\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\r\nimport Core from '@/core/core/core.js';\r\nimport { genIntHash } from '@/core/utils/string';\r\n\r\nexport const transitionDuration = 300;\r\n\r\nexport type Item = Props & { onClose?: Function };\r\n\r\nexport const itemById = reactive(new Map<string, Item>());\r\n\r\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\r\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\r\n};\r\n\r\nexport type Options = {\r\n\ttitle?: ItemProps['title'],\r\n\tmetaText?: ItemProps['metaText'],\r\n\tbuttonProps?: ItemProps['buttonProps'],\r\n\tisSafeHTML?: ItemProps['isSafeHTML'],\r\n\tonClose?: Function\r\n}\r\n\r\n/**\r\n * Показать сообщением в стиле push уведомления\r\n *\r\n * title будет получен из первой строки text\r\n *\r\n * Если в options указан title, он будет взят оттуда\r\n */\r\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\r\n\tlet title = '';\r\n\r\n\ttext = String(text);\r\n\r\n\tconst id = genItemId(text, style, options);\r\n\r\n\tif (options?.title) {\r\n\t\ttitle = options.title;\r\n\t} else {\r\n\t\tconst chunks = text.split('\\n');\r\n\r\n\t\tif (chunks.length) {\r\n\t\t\ttitle = String(chunks.shift());\r\n\t\t\ttext = chunks.join('\\n');\r\n\t\t}\r\n\t}\r\n\r\n\tconst itemExists = itemById.get(id);\r\n\tif (itemExists) {\r\n\t\thightlight(itemExists);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst item: Item = {\r\n\t\tid,\r\n\t\ttitle,\r\n\t\ttext,\r\n\t\tstyle,\r\n\t\tbuttonProps: options?.buttonProps,\r\n\t\tmetaText: options?.metaText,\r\n\t\tisSafeHTML: options?.isSafeHTML,\r\n\t\tonClose: options?.onClose,\r\n\t};\r\n\r\n\titemById.set(item.id, item);\r\n\r\n\tif (itemById.size > 5) {\r\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\r\n\t\tif (firstItem) close(firstItem);\r\n\t}\r\n\r\n\t/**\r\n\t * Автозакрытие ошибок форм\r\n\t *\r\n\t * Добавляет\r\n\t */\r\n\tif (Core.state.isMobile) {\r\n\t\t$('input').one('click', () => close(item));\r\n\t}\r\n};\r\n\r\nconst hightlight = (item: Item) => {\r\n\titem.hightlight = true;\r\n\r\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\r\n};\r\n\r\nconst close = (item: Item) => {\r\n\titem.forceClosed = true;\r\n\r\n\tsetTimeout(() => {\r\n\t\titem.onClose?.();\r\n\r\n\t\titemById.delete(item.id);\r\n\t}, transitionDuration);\r\n};\r\n\r\n/**\r\n * Убрать подозрительный html код\r\n */\r\nexport const prepareText = (text: string) => {\r\n\tconst textNoSafety = 'hacking was detected';\r\n\r\n\ttext = text.replace(/<script/g, textNoSafety);\r\n\ttext = text.replace(/<img/g, textNoSafety);\r\n\ttext = text.replace(/<iframe/g, textNoSafety);\r\n\ttext = text.replace(/javascript:/g, textNoSafety);\r\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\r\n\r\n\treturn text;\r\n};\r\n","<script setup lang=\"ts\">\r\nimport { computed, ref } from 'vue';\r\n\r\nimport Core from '@/core/core/core.js';\r\nimport { nl2br } from '@/core/utils/string';\r\n\r\nimport type { Emits, Props } from './types';\r\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\r\n\r\nconst props = defineProps<Props>();\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\n// анимация появления\r\nconst showed = ref(false);\r\nsetTimeout(() => showed.value = true, 10);\r\n\r\n// анимация закрытия\r\nconst closed = ref(false);\r\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\r\n\r\nconst title = computed(() => {\r\n\tlet res = props.title.replace(/ {2}/g, ' ');\r\n\r\n\tif (!props.isSafeHTML) res = prepareText(res);\r\n\r\n\treturn res;\r\n});\r\n\r\nconst text = computed(() => {\r\n\tlet res = nl2br(props.text);\r\n\r\n\tres = res.replace(/ {2}/g, ' ');\r\n\r\n\tif (!props.isSafeHTML) res = prepareText(res);\r\n\r\n\treturn res;\r\n});\r\n\r\nconst close = (direction?: typeof closedDirection.value) => {\r\n\tclosed.value = true;\r\n\r\n\tif (direction) {\r\n\t\tclosedDirection.value = direction;\r\n\t}\r\n\r\n\tsetTimeout(() => emit('close'), transitionDuration);\r\n};\r\n\r\nconst onClick = (e: MouseEvent) => {\r\n\tconst { tagName } = e.target as HTMLElement;\r\n\r\n\tif (tagName === 'A') close();\r\n};\r\n\r\nconst vSwipe = {\r\n\tmounted: (el: HTMLElement) => {\r\n\t\tif (!Core.state.isMobile) return;\r\n\r\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\r\n\r\n\t\tlet direction: typeof closedDirection.value = 'right';\r\n\r\n\t\tlet axis = 'x';\r\n\t\t// if (getOS() === 'iOS') axis = 'y';\r\n\r\n\t\tCore.$(el).draggable({\r\n\t\t\trevert: false,\r\n\t\t\taxis,\r\n\t\t\tdrag: (e, ui) => {\r\n\t\t\t\tif (axis == 'x') {\r\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstop: (_e, _ui) => {\r\n\t\t\t\tclose(direction);\r\n\t\t\t},\r\n\t\t});\r\n\t},\r\n};\r\n\r\n// const vSwipe = {\r\n// \tmounted: (el: HTMLElement) => {\r\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\r\n// \t\t\tdisableTextSelect: true,\r\n// \t\t\tonSwipe(e: PointerEvent) {\r\n// \t\t\t\tleft.value = -distanceX.value + 'px';\r\n// \t\t\t},\r\n// \t\t\tonSwipeEnd: (_e, direction) => {\r\n// \t\t\t\tclose(direction);\r\n// \t\t\t},\r\n// \t\t});\r\n// \t},\r\n// };\r\n</script>\r\n\r\n<template>\r\n\t<div\r\n\t\tclass=\"top-notice_item\"\r\n\t\t:class=\"{\r\n\t\t\t['top-notice_item-' + style]: true,\r\n\t\t\t'top-notice_item-hightlight': hightlight,\r\n\t\t\t'top-notice_item-showed': showed,\r\n\t\t\t'top-notice_item-closed': closed || forceClosed,\r\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\r\n\t\t}\"\r\n\t\t@click=\"onClick\"\r\n\t\tv-swipe\r\n\t>\r\n\t\t<div class=\"top-notice_itemTextWrapper\">\r\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\r\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\r\n\t\t</div>\r\n\r\n\t\t<TopButton\r\n\t\t\tv-if=\"buttonProps\"\r\n\t\t\tclass=\"top-notice_itemButton\"\r\n\t\t\tsize=\"s\"\r\n\t\t\t:=\"buttonProps\"\r\n\t\t\t:title=\"buttonProps.title\"\r\n\t\t\tv-html=\"buttonProps.default\"\r\n\t\t\t@click=\"close()\"\r\n\t\t/>\r\n\r\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\r\n\r\n\t\t<div\r\n\t\t\tclass=\"top-notice_itemClose\"\r\n\t\t\tdata-top-icon=\"\"\r\n\t\t\t:title=\"$i18n.Common.Close\"\r\n\t\t\t@click=\"() => close()\"\r\n\t\t></div>\r\n\t</div>\r\n</template>\r\n\r\n<style>\r\n@import \"style.css\";\r\n</style>\r\n","<!-- performance all in one file component, для Core.notice() -->\r\n<script lang=\"ts\">\r\nexport { show } from './utils';\r\n</script>\r\n\r\n<script setup lang=\"ts\">\r\nimport type { Item } from './utils';\r\nimport { itemById } from './utils';\r\n\r\nimport type { Props } from './types';\r\nimport TopNoticeItem from './item/item.vue';\r\n\r\ndefineProps<Props>();\r\n\r\nconst onCloseItem = (item: Item) => {\r\n\titem.onClose?.();\r\n\r\n\titemById.delete(item.id);\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<teleport to=\"body\">\r\n\t\t<div class=\"top-notice\">\r\n\t\t\t<TopNoticeItem\r\n\t\t\t\tv-for=\"[_index, item] in itemById\"\r\n\t\t\t\t:key=\"item.id\"\r\n\t\t\t\t:id=\"item.id\"\r\n\t\t\t\t:title=\"item.title\"\r\n\t\t\t\t:text=\"item.text\"\r\n\t\t\t\t:style=\"item.style\"\r\n\t\t\t\t:buttonProps=\"item.buttonProps\"\r\n\t\t\t\t:metaText=\"item.metaText\"\r\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\r\n\t\t\t\t:forceClosed=\"item.forceClosed\"\r\n\t\t\t\t:hightlight=\"item.hightlight\"\r\n\t\t\t\t@close=\"onCloseItem(item)\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</teleport>\r\n</template>\r\n\r\n<style>\r\n:root {\r\n\t--top-notice-top: var(--top-padding-4);\r\n\t--top-notice-right: var(--top-padding-4);\r\n}\r\n\r\n.top-notice {\r\n\twidth: 400px;\r\n\tfont-size: 14px;\r\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\r\n\tz-index: 1000010;\r\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\r\n}\r\n\r\n.top-notice ul {\r\n\tpadding: 0 0 0 var(--top-padding-5);\r\n}\r\n\r\n@media only screen and (max-width: 600px) {\r\n\t:root {\r\n\t\t--top-notice-top: var(--top-padding-4);\r\n\t\t--top-notice-right: var(--top-padding-4);\r\n\t}\r\n\r\n\t.top-notice { width: auto; left: var(--top-notice-right); }\r\n}\r\n</style>\r\n"],"names":["transitionDuration","itemById","reactive","genItemId","text","style","options","genIntHash","show","title","id","chunks","itemExists","hightlight","item","_firstId","firstItem","close","Core","_a","prepareText","textNoSafety","props","__props","emit","__emit","showed","ref","closed","closedDirection","computed","res","nl2br","direction","onClick","e","tagName","vSwipe","el","ui","_e","_ui","onCloseItem"],"mappings":"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"}
|