@adstore/templates 1.0.0 → 2.0.4

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 (54) hide show
  1. package/CHANGELOG.md +52 -2
  2. package/dist/style.css +1651 -0
  3. package/dist/templates.es.js +2826 -0
  4. package/dist/templates.umd.js +2829 -0
  5. package/package.json +11 -24
  6. package/dist/adstore/apps/templates/src/cacheDriver.d.ts +0 -7
  7. package/dist/adstore/apps/templates/src/constants/animations.d.ts +0 -5
  8. package/dist/adstore/apps/templates/src/constants/breakpoints.d.ts +0 -6
  9. package/dist/adstore/apps/templates/src/plugins/classNamesPlugin.d.ts +0 -22
  10. package/dist/adstore/apps/templates/src/plugins/giftOpenPlugin.d.ts +0 -10
  11. package/dist/adstore/apps/templates/src/plugins/googleFontsPlugin.d.ts +0 -3
  12. package/dist/adstore/apps/templates/src/plugins/highlightPlugin.d.ts +0 -11
  13. package/dist/adstore/apps/templates/src/plugins/index.d.ts +0 -12
  14. package/dist/adstore/apps/templates/src/plugins/injectNodePlugin.d.ts +0 -23
  15. package/dist/adstore/apps/templates/src/plugins/legalInfoPlugin.d.ts +0 -17
  16. package/dist/adstore/apps/templates/src/plugins/patchStylesPlugin.d.ts +0 -12
  17. package/dist/adstore/apps/templates/src/plugins/statePlugin.d.ts +0 -9
  18. package/dist/adstore/apps/templates/src/promos/BonusCard/index.d.ts +0 -2
  19. package/dist/adstore/apps/templates/src/promos/BonusCard/script.d.ts +0 -3
  20. package/dist/adstore/apps/templates/src/promos/ComplexGift/chunks/cardChunk/index.d.ts +0 -4
  21. package/dist/adstore/apps/templates/src/promos/ComplexGift/chunks/cardChunk/script.d.ts +0 -3
  22. package/dist/adstore/apps/templates/src/promos/ComplexGift/index.d.ts +0 -6
  23. package/dist/adstore/apps/templates/src/promos/ComplexGift/script.d.ts +0 -9
  24. package/dist/adstore/apps/templates/src/promos/ComplexPopup/chunks/popupCardChunk/index.d.ts +0 -4
  25. package/dist/adstore/apps/templates/src/promos/ComplexPopup/chunks/popupCardChunk/script.d.ts +0 -3
  26. package/dist/adstore/apps/templates/src/promos/ComplexPopup/index.d.ts +0 -6
  27. package/dist/adstore/apps/templates/src/promos/ComplexPopup/script.d.ts +0 -2
  28. package/dist/adstore/apps/templates/src/promos/ExpressPopup/chunks/matchChunk/index.d.ts +0 -4
  29. package/dist/adstore/apps/templates/src/promos/ExpressPopup/index.d.ts +0 -6
  30. package/dist/adstore/apps/templates/src/promos/ExpressPopup/script.d.ts +0 -3
  31. package/dist/adstore/apps/templates/src/promos/SimplePopup/chunks/textChunk/index.d.ts +0 -3
  32. package/dist/adstore/apps/templates/src/promos/SimplePopup/index.d.ts +0 -6
  33. package/dist/adstore/apps/templates/src/promos/SimplePopup/script.d.ts +0 -3
  34. package/dist/adstore/apps/templates/src/promos/WideCard/chunks/matchesOneTwoSlideChunk/index.d.ts +0 -3
  35. package/dist/adstore/apps/templates/src/promos/WideCard/chunks/matchesOneTwoSlideChunk/script.d.ts +0 -3
  36. package/dist/adstore/apps/templates/src/promos/WideCard/chunks/matchesSlideChunk/index.d.ts +0 -3
  37. package/dist/adstore/apps/templates/src/promos/WideCard/chunks/matchesSlideChunk/script.d.ts +0 -3
  38. package/dist/adstore/apps/templates/src/promos/WideCard/chunks/textSlideChunk/index.d.ts +0 -3
  39. package/dist/adstore/apps/templates/src/promos/WideCard/chunks/textSlideChunk/script.d.ts +0 -3
  40. package/dist/adstore/apps/templates/src/promos/WideCard/index.d.ts +0 -8
  41. package/dist/adstore/apps/templates/src/promos/WideCard/script.d.ts +0 -3
  42. package/dist/adstore/apps/templates/src/promos/index.d.ts +0 -7
  43. package/dist/adstore/apps/templates/src/renderDriver.d.ts +0 -48
  44. package/dist/adstore/apps/templates/src/utils/htmlToElement.d.ts +0 -1
  45. package/dist/adstore/apps/templates/src/utils/injectLink.d.ts +0 -6
  46. package/dist/adstore/apps/templates/src/utils/injectStyle.d.ts +0 -1
  47. package/dist/adstore/apps/templates/src/utils/injectStyleRules.d.ts +0 -2
  48. package/dist/adstore/apps/templates/src/utils/isRenderDriver.d.ts +0 -2
  49. package/dist/adstore/apps/templates/src/utils/isTemplate.d.ts +0 -1
  50. package/dist/adstore/apps/templates/src/utils/switchTextAlignToFlex.d.ts +0 -1
  51. package/dist/adstore/apps/templates/src/utils/toggleClassName.d.ts +0 -1
  52. package/dist/my-lib.d.ts +0 -1
  53. package/dist/my-lib.es.js +0 -2463
  54. package/dist/my-lib.umd.js +0 -247
package/dist/my-lib.es.js DELETED
@@ -1,2463 +0,0 @@
1
- var html$c = '<div class="wideCard" data-layer="root">\n <div class="wideCard__background" data-layer="background"></div>\n <div class="wideCard__promotion" data-layer="promotion">\u0420\u0435\u043A\u043B\u0430\u043C\u0430 winline.ru l 18+ </div>\n\n <div class="wideCard__content">\n <div class="wideCard__left">\n <div class="wideCard__logo" data-layer="logo"></div>\n </div>\n <div class="wideCard__center" data-layer="slides" data-hidden></div>\n <div class="wideCard__right">\n <div class="wideCard__logo" data-layer="logo" data-hidden></div>\n\n <a rel="nofollow noopener" target="_blank" class="wideCard__buttonWrapper"\n ><div data-layer="button" class="wideCard__button">\n <div class="wideCard__logo" data-layer="logo" data-hidden></div>\n \u0437\u0430\u0431\u0440\u0430\u0442\u044C \u0444\u0440\u0438\u0431\u0435\u0442\n </div></a\n >\n </div>\n </div>\n</div>\n';
2
- var css$c = '.wideCard{position:relative;z-index:1;overflow:hidden;font-weight:400;padding:0 15px;height:80px;width:100%;background:#fff}.wideCard_desktop .wideCard,.wideCard_laptop .wideCard{padding:0 50px}.wideCard__promotion{position:absolute;bottom:0;right:0;color:#fff;background-color:#333;font-size:7px;padding:2px 6px;border-top-left-radius:4px}.wideCard__background{position:absolute;left:0;right:0;top:0;bottom:0;z-index:-1}.wideCard__content{margin:auto;height:100%;display:grid;grid-gap:10px;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto;align-items:center;max-width:1300px}.wideCard_desktop .wideCard__content,.wideCard_laptop .wideCard__content{grid-template-columns:auto minmax(0,1fr) auto}.wideCard-variant_variant2 .wideCard__content{grid-template-columns:minmax(0,1fr) auto}.wideCard__logo{background-size:contain;background-position:center;background-repeat:no-repeat;height:35px;width:100px;background-color:#eee}.wideCard-variant_variant2 .wideCard__logo{display:none}.wideCard__left{width:200px;height:100%;align-items:center;justify-content:center;display:none}.wideCard_desktop .wideCard__left,.wideCard_laptop .wideCard__left{display:flex}.wideCard-variant_variant2 .wideCard__left{display:none}.wideCard__center{position:relative;z-index:1;height:100%}.wideCard__slide{position:absolute;left:0;top:0;right:0;bottom:0;opacity:0;animation-timing-function:ease-in;animation-duration:3s}.wideCard__slide:only-child{animation:none;opacity:1}.wideCard__slide_animated_default{animation-name:fade-in-out}.wideCard__slide_animated_bottom-top,.wideCard__slide_animated_top-bottom{animation-name:fade-in-bottom-out-top}.wideCard__right{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.wideCard__right .wideCard__logo{display:block;max-height:35px}.wideCard_desktop .wideCard__right .wideCard__logo,.wideCard_laptop .wideCard__right .wideCard__logo,.wideCard-variant_variant2 .wideCard__right .wideCard__logo{display:none}.wideCard__buttonWrapper{margin-top:7px}.wideCard__buttonWrapper:before{z-index:2;display:block;content:"";position:absolute;left:0;top:0;bottom:0;right:0;transform:none}.wideCard_desktop .wideCard__buttonWrapper,.wideCard_laptop .wideCard__buttonWrapper{margin-top:0}.wideCard__button{background-color:#ff6a13;border-radius:20px;color:#fff;font-weight:700;font-size:10px;text-transform:uppercase;white-space:nowrap;display:block;text-align:center;padding:5px 15px;transition:filter .25s}.wideCard__button_animated{animation:increase 3s infinite}.wideCard_desktop .wideCard__button,.wideCard_laptop .wideCard__button{margin-top:0;padding:10px 35px}.wideCard-variant_variant2 .wideCard__button{display:flex;align-items:center;padding:2px 12px 2px 2px}.wideCard__button .wideCard__logo{display:none;width:35px;height:35px;border-radius:30px;margin-right:10px}.wideCard-variant_variant2 .wideCard__button .wideCard__logo{display:block}@keyframes fade-in-out{0%{opacity:0}5%{opacity:1}95%{opacity:1}to{opacity:0}}@keyframes fade-in-bottom-out-top{0%{opacity:0;transform:translateY(100%)}10%{transform:translateY(0);opacity:1}90%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@keyframes fade-in-top-out-bottom{0%{opacity:0;transform:translateY(-100%)}10%{transform:translateY(0);opacity:1}90%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes increase{0%{-webkit-transform:scale(1) translateZ(0);-moz-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0)}10%,30%{-webkit-transform:scale(.85) translateZ(0);-moz-transform:scale(.85) translateZ(0);transform:scale(.85) translateZ(0)}20%,40%{-webkit-transform:scale(1) translateZ(0);-moz-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0)}50%{-webkit-transform:scale(1) translateZ(0);-moz-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0)}}\n';
3
- const isEmptyValue = (value) => !value && (value === null || value === void 0);
4
- const noop = () => void 0;
5
- const set = (obj, path, value) => {
6
- const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g);
7
- pathArray.reduce((acc, key, i) => {
8
- if (acc[key] === void 0)
9
- acc[key] = {};
10
- if (i === pathArray.length - 1)
11
- acc[key] = value;
12
- return acc[key];
13
- }, obj);
14
- };
15
- const toggleClassName = (element, className, value) => {
16
- element.classList.toggle(className, value);
17
- };
18
- const isRenderDriver = (input) => input && typeof input === "object" && "mount" in input && "id" in input;
19
- var script$a = (emitter) => {
20
- const slides = [];
21
- const initAnimation = (cb) => {
22
- let timers = [];
23
- const runTimes = (index2) => {
24
- const currentSlide = slides[index2];
25
- const limit = slides.length;
26
- if (limit <= 1) {
27
- cb(0);
28
- return noop;
29
- }
30
- cb(index2);
31
- const timer = setTimeout(() => {
32
- runTimes(index2 + 1 < limit ? index2 + 1 : 0);
33
- }, currentSlide.duration);
34
- timers.push(timer);
35
- };
36
- runTimes(0);
37
- return () => {
38
- timers.forEach((timer) => clearTimeout(timer));
39
- timers = [];
40
- };
41
- };
42
- const updateAnimations = (index2) => {
43
- slides.forEach((slide, slideIndex) => {
44
- const renderDriver2 = slide.renderDriver;
45
- if (renderDriver2.getState() === "mounted") {
46
- renderDriver2.render({
47
- root: {
48
- $active: index2 === slideIndex
49
- }
50
- });
51
- }
52
- emitter.emit("runRender", {
53
- background: {
54
- backgroundImage: slide.backgroundImage,
55
- backgroundFit: slide.backgroundFit
56
- }
57
- });
58
- });
59
- };
60
- let reset = noop;
61
- emitter.on("renderNode", ({ layer, rule }) => {
62
- if (layer.layer === "button") {
63
- if ("$animated" in rule) {
64
- toggleClassName(layer.node, "wideCard__button_animated", rule.$animated);
65
- }
66
- }
67
- if (layer.layer === "slides") {
68
- reset();
69
- reset = initAnimation(updateAnimations);
70
- }
71
- });
72
- emitter.on("renderNode", ({ rule, layer }) => {
73
- if ("$variant" in rule && typeof rule.$variant === "string") {
74
- const classes = Array.from(layer.node.classList.values());
75
- const validClasses = classes.filter((name) => !name.includes("variant"));
76
- validClasses.push(`wideCard-variant_${rule.$variant}`);
77
- emitter.emit("runRender", {
78
- root: {
79
- $classNames: [validClasses]
80
- }
81
- });
82
- }
83
- });
84
- };
85
- const eventEmitter = () => {
86
- let listeners = {};
87
- const on = (event, callback) => {
88
- if (event in listeners) {
89
- listeners[event].push(callback);
90
- } else {
91
- listeners[event] = [callback];
92
- }
93
- };
94
- const emit = (event, ...args) => {
95
- if (event in listeners) {
96
- return listeners[event].map((cb) => cb(...args)).filter(Boolean);
97
- }
98
- return [];
99
- };
100
- const reset = () => listeners = {};
101
- const has = (event) => event in listeners;
102
- const get = (event) => listeners[event];
103
- return {
104
- on,
105
- has,
106
- get,
107
- emit,
108
- reset
109
- };
110
- };
111
- const injectStyle = (styleString) => {
112
- const style = document.createElement("style");
113
- style.textContent = styleString;
114
- document.head.append(style);
115
- return style;
116
- };
117
- const htmlToElement = (htmlString) => {
118
- const template = document.createElement("template");
119
- htmlString = htmlString.trim();
120
- template.innerHTML = htmlString;
121
- return template.content.firstChild;
122
- };
123
- const walkerFilter = (node) => node.dataset && node.dataset.layer ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
124
- const getLayers = (node) => {
125
- var _a;
126
- const layerName = ((_a = node == null ? void 0 : node.dataset) == null ? void 0 : _a.layer) || "unknownLayer";
127
- const layers = layerName.split(" ").length > 1 ? layerName.split(" ") : [layerName];
128
- const isHidden = (node2, layer) => {
129
- var _a2;
130
- const hiddenAttr = (_a2 = node2 == null ? void 0 : node2.dataset) == null ? void 0 : _a2.hidden;
131
- if (typeof hiddenAttr !== "undefined") {
132
- if (hiddenAttr.length > 0) {
133
- return hiddenAttr.includes(layer);
134
- }
135
- return true;
136
- }
137
- return false;
138
- };
139
- return layers.map((layer) => {
140
- var _a2;
141
- return {
142
- node,
143
- layer,
144
- name: (_a2 = node == null ? void 0 : node.dataset) == null ? void 0 : _a2.name,
145
- hidden: isHidden(node, layer)
146
- };
147
- });
148
- };
149
- const callLayers = (layers, visitor) => layers.forEach(visitor);
150
- const treeWalk = (target, visitor) => {
151
- const walker = document.createTreeWalker(target, NodeFilter.SHOW_ALL, (node) => walkerFilter(node));
152
- callLayers(getLayers(walker.root), visitor);
153
- while (walker.nextNode()) {
154
- const currentNode = walker.currentNode;
155
- callLayers(getLayers(currentNode), visitor);
156
- }
157
- };
158
- const cache$1 = {};
159
- const renderDriver = ({
160
- html: html2,
161
- styles,
162
- plugins = [],
163
- chunks: chunks2
164
- }) => (id) => {
165
- if (id in cache$1) {
166
- return cache$1[id];
167
- }
168
- const emitter = eventEmitter();
169
- let layers = [];
170
- let target;
171
- let state = "declare";
172
- const addPlugins = (...inputPlugins) => {
173
- if (state === "declare") {
174
- plugins.push(...inputPlugins);
175
- }
176
- console.error(`Cannot add plugins after mount`);
177
- };
178
- const beforeMount = () => {
179
- plugins == null ? void 0 : plugins.forEach((plugin) => {
180
- if (typeof plugin === "function") {
181
- plugin(emitter, id);
182
- }
183
- });
184
- const styleNodes = (styles == null ? void 0 : styles.map(injectStyle)) || [];
185
- emitter.on("destroy", () => {
186
- styleNodes.forEach((styleNode) => styleNode.remove());
187
- });
188
- };
189
- const destroy = () => {
190
- if (target) {
191
- target.remove();
192
- }
193
- emitter.emit("destroy");
194
- layers = [];
195
- target = void 0;
196
- emitter.reset();
197
- state = "destroyed";
198
- delete cache$1[id];
199
- };
200
- const mount = (propTarget) => {
201
- if (target) {
202
- console.error("Cannot twice mount. Use destroy() before create new mount.");
203
- return noop;
204
- }
205
- beforeMount();
206
- const node = htmlToElement(html2);
207
- treeWalk(node, (layer) => {
208
- layers.push(layer);
209
- });
210
- propTarget.appendChild(node);
211
- target = node;
212
- state = "mounted";
213
- const mountEvents = emitter.emit("mount", { layers });
214
- mountEvents == null ? void 0 : mountEvents.forEach((unmountEvent) => emitter.on("destroy", unmountEvent));
215
- return destroy;
216
- };
217
- const render = (rules) => {
218
- if (state !== "mounted") {
219
- console.error("Cannot invoke render method before mount node. Use mount() method.");
220
- return;
221
- }
222
- emitter.emit("render", { rules, layers, chunks: chunks2 });
223
- treeWalk(target, (layer) => {
224
- const findLayer = layers.find((inputLayer) => inputLayer.node === layer.node);
225
- if (layer.layer in rules && findLayer) {
226
- emitter.emit("renderNode", { rule: rules[layer.layer], layer, layers, chunks: chunks2 });
227
- }
228
- });
229
- };
230
- emitter.on("runRender", render);
231
- const driver2 = {
232
- render,
233
- mount,
234
- destroy,
235
- addPlugins,
236
- getState: () => state,
237
- on: emitter.on,
238
- id,
239
- chunks: chunks2
240
- };
241
- cache$1[id] = driver2;
242
- return driver2;
243
- };
244
- const injectLink = ({ rel, href }) => {
245
- const link = document.createElement("link");
246
- link.rel = rel;
247
- link.href = href;
248
- document.head.append(link);
249
- return link;
250
- };
251
- const cache = new Map([]);
252
- var googleFontsPlugin = (emitter) => {
253
- emitter.on("destroy", () => {
254
- cache.forEach(({ node }) => {
255
- node.remove();
256
- });
257
- cache.clear();
258
- });
259
- emitter.on("renderNode", ({ rule }) => {
260
- if ("$styles" in rule) {
261
- Object.entries(rule.$styles).forEach(([key, value]) => {
262
- if ((key === "font-family" || key === "fontFamily") && !cache.has(value)) {
263
- const linkNode = injectLink({
264
- rel: "stylesheet",
265
- href: `https://fonts.googleapis.com/css?family=${value}:300,400,500,700&display=swap`
266
- });
267
- cache.set(value, {
268
- node: linkNode,
269
- weights: [300, 400, 500, 700]
270
- });
271
- }
272
- });
273
- }
274
- });
275
- };
276
- const injectStyleRules = (node, key, value) => {
277
- if (typeof key === "string" && key.includes("--")) {
278
- node.style.setProperty(key, value);
279
- } else if (key in node.style) {
280
- node.style[key] = value;
281
- }
282
- };
283
- var patchStylesPlugin = (emitter) => {
284
- emitter.on("renderNode", ({ rule, layer }) => {
285
- if ("$styles" in rule) {
286
- injectStyleRules(layer.node, rule.$styles);
287
- }
288
- });
289
- };
290
- const isTemplate = (input) => typeof input === "object" && "name" in input && "id" in input;
291
- var injectNode = (emitter) => {
292
- const drivers = [];
293
- emitter.on("destroy", () => {
294
- drivers.forEach((driver2) => driver2.destroy());
295
- });
296
- emitter.on("renderNode", ({ rule, layer, chunks: chunks2 }) => {
297
- if ("$children" in rule) {
298
- const childList = (Array.isArray(rule.$children) ? rule.$children : [rule.$children]).map((el) => isRenderDriver(el) ? el : isTemplate(el) ? chunks2[el.name](el.id) : el).filter((child) => Boolean(child) && (child == null ? void 0 : child.getState) && (child == null ? void 0 : child.getState()) !== "mounted");
299
- const mountedNodes = childList.map((renderDriver2) => {
300
- const target = document.createElement("div");
301
- renderDriver2.mount(target);
302
- if (target.firstChild) {
303
- return target.firstChild;
304
- }
305
- });
306
- childList.forEach((child, index2) => {
307
- const findDriver = drivers.find((driver2) => driver2.id === child.id);
308
- if (findDriver) {
309
- findDriver.destroy();
310
- }
311
- const node = mountedNodes[index2];
312
- layer.node.appendChild(node);
313
- drivers.push(child);
314
- });
315
- }
316
- });
317
- };
318
- const wrapTo = (value, until) => `${value}${until}`;
319
- const toPx = (key) => key.startsWith("px_");
320
- const toPercent = (key) => key.startsWith("percent_");
321
- const formatRule = (key, value) => {
322
- let newKey = key;
323
- let newValue = value;
324
- if (toPx(newKey)) {
325
- newKey = newKey.replace("px_", "");
326
- newValue = wrapTo(value, "px");
327
- }
328
- if (toPercent(newKey)) {
329
- newKey = newKey.replace("percent_", "");
330
- newValue = wrapTo(value, "%");
331
- }
332
- return {
333
- key: newKey,
334
- value: newValue
335
- };
336
- };
337
- const DEFAULT_TO_PX = [
338
- "borderWidth",
339
- "borderLeftWidth",
340
- "borderRightWidth",
341
- "borderTopWidth",
342
- "borderBottomWidth",
343
- "minHeight",
344
- "minWidth",
345
- "maxWidth",
346
- "maxHeight",
347
- "fontSize",
348
- "height",
349
- "width",
350
- "letterSpacing",
351
- "fontSize",
352
- "left",
353
- "right",
354
- "top",
355
- "bottom"
356
- ];
357
- var patchRulesPlugin = (emitter) => {
358
- emitter.on("renderNode", ({ rule, layer }) => {
359
- const nodeStyle = layer.node.style;
360
- const keys = Object.keys(rule);
361
- if (keys.includes("innerHTML") && keys.includes("innerText")) {
362
- console.warn(`Warning! In layer ${layer.layer} try to patch innerHTML and innerText together.`);
363
- }
364
- Object.entries(rule).forEach(([propKey, propValue]) => {
365
- if (DEFAULT_TO_PX.includes(propKey)) {
366
- propValue = wrapTo(propValue, "px");
367
- }
368
- const { key, value } = formatRule(propKey, propValue);
369
- injectStyleRules(layer.node, key, value);
370
- if (key === "innerHTML") {
371
- layer.node.innerHTML = value;
372
- }
373
- if (key === "innerText") {
374
- layer.node.innerText = value;
375
- }
376
- if (key === "innerHTML" || key === "innerText") {
377
- if (layer.node.innerHTML.length === 0) {
378
- nodeStyle.setProperty("display", "none");
379
- } else {
380
- nodeStyle.removeProperty("display");
381
- }
382
- }
383
- if (key.includes("borderWidth")) {
384
- nodeStyle.borderStyle = "solid";
385
- }
386
- if (key === "corner") {
387
- nodeStyle.borderRadius = wrapTo(value, "px");
388
- }
389
- if (key === "backgroundFit") {
390
- nodeStyle.backgroundSize = value;
391
- }
392
- if (key === "backgroundImage") {
393
- nodeStyle.backgroundImage = `url(${value})`;
394
- nodeStyle.backgroundRepeat = "no-repeat";
395
- }
396
- if (key === "isBold") {
397
- nodeStyle.fontWeight = value ? "bold" : "initial";
398
- }
399
- if (key === "isItalic") {
400
- nodeStyle.fontStyle = value ? "italic" : "initial";
401
- }
402
- if (key === "isThrough") {
403
- nodeStyle.textDecoration = value ? "line-through" : "initial";
404
- }
405
- });
406
- });
407
- };
408
- const DESKTOP_NAME = "desktop";
409
- const LAPTOP_NAME = "laptop";
410
- const TABLET_NAME = "tablet";
411
- const MOBILE_NAME = "mobile";
412
- const defaultOptions = {
413
- desktop: DESKTOP_NAME,
414
- laptop: LAPTOP_NAME,
415
- tablet: TABLET_NAME,
416
- mobile: MOBILE_NAME
417
- };
418
- var deviceClassNames = (options = defaultOptions) => (emitter) => {
419
- emitter.on("renderNode", ({ layer, rule }) => {
420
- if ("$device" in rule) {
421
- const node = layer.node;
422
- node.classList.remove(...Object.values(options));
423
- node.classList.add(options[rule.$device]);
424
- }
425
- });
426
- };
427
- const BREAKPOINTS = {
428
- mobile: 320,
429
- tablet: 768,
430
- laptop: 1024,
431
- desktop: 1920
432
- };
433
- var containerWidthPlugin = (watchLayer, breakpoints = BREAKPOINTS) => (emitter) => {
434
- const checkDevice = (parent) => {
435
- var _a;
436
- const parentWidth = parent.getBoundingClientRect().width || 0;
437
- const findDevice = (_a = Object.entries(breakpoints).find(([, value]) => value >= parentWidth)) == null ? void 0 : _a[0];
438
- emitter.emit("runRender", {
439
- [watchLayer]: {
440
- $device: findDevice
441
- }
442
- });
443
- };
444
- emitter.on("mount", ({ layers }) => {
445
- var _a, _b;
446
- const parentElement = (_b = (_a = layers.find(({ layer }) => layer === watchLayer)) == null ? void 0 : _a.node) == null ? void 0 : _b.parentElement;
447
- if (parentElement) {
448
- const resizeObserver = new ResizeObserver(() => checkDevice(parentElement));
449
- resizeObserver.observe(parentElement);
450
- checkDevice(parentElement);
451
- }
452
- });
453
- };
454
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
455
- var classnames = { exports: {} };
456
- /*!
457
- Copyright (c) 2018 Jed Watson.
458
- Licensed under the MIT License (MIT), see
459
- http://jedwatson.github.io/classnames
460
- */
461
- (function(module) {
462
- (function() {
463
- var hasOwn = {}.hasOwnProperty;
464
- function classNames2() {
465
- var classes = [];
466
- for (var i = 0; i < arguments.length; i++) {
467
- var arg = arguments[i];
468
- if (!arg)
469
- continue;
470
- var argType = typeof arg;
471
- if (argType === "string" || argType === "number") {
472
- classes.push(arg);
473
- } else if (Array.isArray(arg)) {
474
- if (arg.length) {
475
- var inner = classNames2.apply(null, arg);
476
- if (inner) {
477
- classes.push(inner);
478
- }
479
- }
480
- } else if (argType === "object") {
481
- if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
482
- classes.push(arg.toString());
483
- continue;
484
- }
485
- for (var key in arg) {
486
- if (hasOwn.call(arg, key) && arg[key]) {
487
- classes.push(key);
488
- }
489
- }
490
- }
491
- }
492
- return classes.join(" ");
493
- }
494
- if (module.exports) {
495
- classNames2.default = classNames2;
496
- module.exports = classNames2;
497
- } else {
498
- window.classNames = classNames2;
499
- }
500
- })();
501
- })(classnames);
502
- var classNames = classnames.exports;
503
- var classNamesPlugin = (emitter) => {
504
- const cacheNames = new Map();
505
- emitter.on("mount", ({ layers }) => {
506
- layers.forEach(({ node }) => cacheNames.set(node, node.classList.value));
507
- });
508
- emitter.on("renderNode", ({ layer, rule }) => {
509
- if ("$classNames" in rule) {
510
- const saveNames = cacheNames.get(layer.node);
511
- const names = classNames(rule.$classNames);
512
- const uniqNames = Array.from(new Set([saveNames, names].join(" ").split(" ")).values());
513
- layer.node.classList.value = uniqNames.join(" ");
514
- }
515
- });
516
- };
517
- var lodash_mergewith = { exports: {} };
518
- (function(module, exports) {
519
- var LARGE_ARRAY_SIZE = 200;
520
- var HASH_UNDEFINED = "__lodash_hash_undefined__";
521
- var HOT_COUNT = 800, HOT_SPAN = 16;
522
- var MAX_SAFE_INTEGER = 9007199254740991;
523
- var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]";
524
- var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
525
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
526
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
527
- var reIsUint = /^(?:0|[1-9]\d*)$/;
528
- var typedArrayTags = {};
529
- typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
530
- typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
531
- var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
532
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
533
- var root = freeGlobal || freeSelf || Function("return this")();
534
- var freeExports = exports && !exports.nodeType && exports;
535
- var freeModule = freeExports && true && module && !module.nodeType && module;
536
- var moduleExports = freeModule && freeModule.exports === freeExports;
537
- var freeProcess = moduleExports && freeGlobal.process;
538
- var nodeUtil = function() {
539
- try {
540
- var types = freeModule && freeModule.require && freeModule.require("util").types;
541
- if (types) {
542
- return types;
543
- }
544
- return freeProcess && freeProcess.binding && freeProcess.binding("util");
545
- } catch (e) {
546
- }
547
- }();
548
- var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
549
- function apply(func, thisArg, args) {
550
- switch (args.length) {
551
- case 0:
552
- return func.call(thisArg);
553
- case 1:
554
- return func.call(thisArg, args[0]);
555
- case 2:
556
- return func.call(thisArg, args[0], args[1]);
557
- case 3:
558
- return func.call(thisArg, args[0], args[1], args[2]);
559
- }
560
- return func.apply(thisArg, args);
561
- }
562
- function baseTimes(n, iteratee) {
563
- var index2 = -1, result = Array(n);
564
- while (++index2 < n) {
565
- result[index2] = iteratee(index2);
566
- }
567
- return result;
568
- }
569
- function baseUnary(func) {
570
- return function(value) {
571
- return func(value);
572
- };
573
- }
574
- function getValue(object, key) {
575
- return object == null ? void 0 : object[key];
576
- }
577
- function overArg(func, transform) {
578
- return function(arg) {
579
- return func(transform(arg));
580
- };
581
- }
582
- var arrayProto = Array.prototype, funcProto = Function.prototype, objectProto = Object.prototype;
583
- var coreJsData = root["__core-js_shared__"];
584
- var funcToString = funcProto.toString;
585
- var hasOwnProperty = objectProto.hasOwnProperty;
586
- var maskSrcKey = function() {
587
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
588
- return uid ? "Symbol(src)_1." + uid : "";
589
- }();
590
- var nativeObjectToString = objectProto.toString;
591
- var objectCtorString = funcToString.call(Object);
592
- var reIsNative = RegExp("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
593
- var Buffer = moduleExports ? root.Buffer : void 0, Symbol = root.Symbol, Uint8Array = root.Uint8Array, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0, getPrototype = overArg(Object.getPrototypeOf, Object), objectCreate = Object.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, symToStringTag = Symbol ? Symbol.toStringTag : void 0;
594
- var defineProperty = function() {
595
- try {
596
- var func = getNative(Object, "defineProperty");
597
- func({}, "", {});
598
- return func;
599
- } catch (e) {
600
- }
601
- }();
602
- var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0, nativeMax = Math.max, nativeNow = Date.now;
603
- var Map2 = getNative(root, "Map"), nativeCreate = getNative(Object, "create");
604
- var baseCreate = function() {
605
- function object() {
606
- }
607
- return function(proto) {
608
- if (!isObject(proto)) {
609
- return {};
610
- }
611
- if (objectCreate) {
612
- return objectCreate(proto);
613
- }
614
- object.prototype = proto;
615
- var result = new object();
616
- object.prototype = void 0;
617
- return result;
618
- };
619
- }();
620
- function Hash(entries) {
621
- var index2 = -1, length = entries == null ? 0 : entries.length;
622
- this.clear();
623
- while (++index2 < length) {
624
- var entry = entries[index2];
625
- this.set(entry[0], entry[1]);
626
- }
627
- }
628
- function hashClear() {
629
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
630
- this.size = 0;
631
- }
632
- function hashDelete(key) {
633
- var result = this.has(key) && delete this.__data__[key];
634
- this.size -= result ? 1 : 0;
635
- return result;
636
- }
637
- function hashGet(key) {
638
- var data = this.__data__;
639
- if (nativeCreate) {
640
- var result = data[key];
641
- return result === HASH_UNDEFINED ? void 0 : result;
642
- }
643
- return hasOwnProperty.call(data, key) ? data[key] : void 0;
644
- }
645
- function hashHas(key) {
646
- var data = this.__data__;
647
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
648
- }
649
- function hashSet(key, value) {
650
- var data = this.__data__;
651
- this.size += this.has(key) ? 0 : 1;
652
- data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
653
- return this;
654
- }
655
- Hash.prototype.clear = hashClear;
656
- Hash.prototype["delete"] = hashDelete;
657
- Hash.prototype.get = hashGet;
658
- Hash.prototype.has = hashHas;
659
- Hash.prototype.set = hashSet;
660
- function ListCache(entries) {
661
- var index2 = -1, length = entries == null ? 0 : entries.length;
662
- this.clear();
663
- while (++index2 < length) {
664
- var entry = entries[index2];
665
- this.set(entry[0], entry[1]);
666
- }
667
- }
668
- function listCacheClear() {
669
- this.__data__ = [];
670
- this.size = 0;
671
- }
672
- function listCacheDelete(key) {
673
- var data = this.__data__, index2 = assocIndexOf(data, key);
674
- if (index2 < 0) {
675
- return false;
676
- }
677
- var lastIndex = data.length - 1;
678
- if (index2 == lastIndex) {
679
- data.pop();
680
- } else {
681
- splice.call(data, index2, 1);
682
- }
683
- --this.size;
684
- return true;
685
- }
686
- function listCacheGet(key) {
687
- var data = this.__data__, index2 = assocIndexOf(data, key);
688
- return index2 < 0 ? void 0 : data[index2][1];
689
- }
690
- function listCacheHas(key) {
691
- return assocIndexOf(this.__data__, key) > -1;
692
- }
693
- function listCacheSet(key, value) {
694
- var data = this.__data__, index2 = assocIndexOf(data, key);
695
- if (index2 < 0) {
696
- ++this.size;
697
- data.push([key, value]);
698
- } else {
699
- data[index2][1] = value;
700
- }
701
- return this;
702
- }
703
- ListCache.prototype.clear = listCacheClear;
704
- ListCache.prototype["delete"] = listCacheDelete;
705
- ListCache.prototype.get = listCacheGet;
706
- ListCache.prototype.has = listCacheHas;
707
- ListCache.prototype.set = listCacheSet;
708
- function MapCache(entries) {
709
- var index2 = -1, length = entries == null ? 0 : entries.length;
710
- this.clear();
711
- while (++index2 < length) {
712
- var entry = entries[index2];
713
- this.set(entry[0], entry[1]);
714
- }
715
- }
716
- function mapCacheClear() {
717
- this.size = 0;
718
- this.__data__ = {
719
- "hash": new Hash(),
720
- "map": new (Map2 || ListCache)(),
721
- "string": new Hash()
722
- };
723
- }
724
- function mapCacheDelete(key) {
725
- var result = getMapData(this, key)["delete"](key);
726
- this.size -= result ? 1 : 0;
727
- return result;
728
- }
729
- function mapCacheGet(key) {
730
- return getMapData(this, key).get(key);
731
- }
732
- function mapCacheHas(key) {
733
- return getMapData(this, key).has(key);
734
- }
735
- function mapCacheSet(key, value) {
736
- var data = getMapData(this, key), size = data.size;
737
- data.set(key, value);
738
- this.size += data.size == size ? 0 : 1;
739
- return this;
740
- }
741
- MapCache.prototype.clear = mapCacheClear;
742
- MapCache.prototype["delete"] = mapCacheDelete;
743
- MapCache.prototype.get = mapCacheGet;
744
- MapCache.prototype.has = mapCacheHas;
745
- MapCache.prototype.set = mapCacheSet;
746
- function Stack(entries) {
747
- var data = this.__data__ = new ListCache(entries);
748
- this.size = data.size;
749
- }
750
- function stackClear() {
751
- this.__data__ = new ListCache();
752
- this.size = 0;
753
- }
754
- function stackDelete(key) {
755
- var data = this.__data__, result = data["delete"](key);
756
- this.size = data.size;
757
- return result;
758
- }
759
- function stackGet(key) {
760
- return this.__data__.get(key);
761
- }
762
- function stackHas(key) {
763
- return this.__data__.has(key);
764
- }
765
- function stackSet(key, value) {
766
- var data = this.__data__;
767
- if (data instanceof ListCache) {
768
- var pairs = data.__data__;
769
- if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {
770
- pairs.push([key, value]);
771
- this.size = ++data.size;
772
- return this;
773
- }
774
- data = this.__data__ = new MapCache(pairs);
775
- }
776
- data.set(key, value);
777
- this.size = data.size;
778
- return this;
779
- }
780
- Stack.prototype.clear = stackClear;
781
- Stack.prototype["delete"] = stackDelete;
782
- Stack.prototype.get = stackGet;
783
- Stack.prototype.has = stackHas;
784
- Stack.prototype.set = stackSet;
785
- function arrayLikeKeys(value, inherited) {
786
- var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
787
- for (var key in value) {
788
- if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) {
789
- result.push(key);
790
- }
791
- }
792
- return result;
793
- }
794
- function assignMergeValue(object, key, value) {
795
- if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {
796
- baseAssignValue(object, key, value);
797
- }
798
- }
799
- function assignValue(object, key, value) {
800
- var objValue = object[key];
801
- if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {
802
- baseAssignValue(object, key, value);
803
- }
804
- }
805
- function assocIndexOf(array, key) {
806
- var length = array.length;
807
- while (length--) {
808
- if (eq(array[length][0], key)) {
809
- return length;
810
- }
811
- }
812
- return -1;
813
- }
814
- function baseAssignValue(object, key, value) {
815
- if (key == "__proto__" && defineProperty) {
816
- defineProperty(object, key, {
817
- "configurable": true,
818
- "enumerable": true,
819
- "value": value,
820
- "writable": true
821
- });
822
- } else {
823
- object[key] = value;
824
- }
825
- }
826
- var baseFor = createBaseFor();
827
- function baseGetTag(value) {
828
- if (value == null) {
829
- return value === void 0 ? undefinedTag : nullTag;
830
- }
831
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
832
- }
833
- function baseIsArguments(value) {
834
- return isObjectLike(value) && baseGetTag(value) == argsTag;
835
- }
836
- function baseIsNative(value) {
837
- if (!isObject(value) || isMasked(value)) {
838
- return false;
839
- }
840
- var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
841
- return pattern.test(toSource(value));
842
- }
843
- function baseIsTypedArray(value) {
844
- return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
845
- }
846
- function baseKeysIn(object) {
847
- if (!isObject(object)) {
848
- return nativeKeysIn(object);
849
- }
850
- var isProto = isPrototype(object), result = [];
851
- for (var key in object) {
852
- if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) {
853
- result.push(key);
854
- }
855
- }
856
- return result;
857
- }
858
- function baseMerge(object, source, srcIndex, customizer, stack) {
859
- if (object === source) {
860
- return;
861
- }
862
- baseFor(source, function(srcValue, key) {
863
- stack || (stack = new Stack());
864
- if (isObject(srcValue)) {
865
- baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
866
- } else {
867
- var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0;
868
- if (newValue === void 0) {
869
- newValue = srcValue;
870
- }
871
- assignMergeValue(object, key, newValue);
872
- }
873
- }, keysIn);
874
- }
875
- function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
876
- var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
877
- if (stacked) {
878
- assignMergeValue(object, key, stacked);
879
- return;
880
- }
881
- var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0;
882
- var isCommon = newValue === void 0;
883
- if (isCommon) {
884
- var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);
885
- newValue = srcValue;
886
- if (isArr || isBuff || isTyped) {
887
- if (isArray(objValue)) {
888
- newValue = objValue;
889
- } else if (isArrayLikeObject(objValue)) {
890
- newValue = copyArray(objValue);
891
- } else if (isBuff) {
892
- isCommon = false;
893
- newValue = cloneBuffer(srcValue, true);
894
- } else if (isTyped) {
895
- isCommon = false;
896
- newValue = cloneTypedArray(srcValue, true);
897
- } else {
898
- newValue = [];
899
- }
900
- } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
901
- newValue = objValue;
902
- if (isArguments(objValue)) {
903
- newValue = toPlainObject(objValue);
904
- } else if (!isObject(objValue) || isFunction(objValue)) {
905
- newValue = initCloneObject(srcValue);
906
- }
907
- } else {
908
- isCommon = false;
909
- }
910
- }
911
- if (isCommon) {
912
- stack.set(srcValue, newValue);
913
- mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
914
- stack["delete"](srcValue);
915
- }
916
- assignMergeValue(object, key, newValue);
917
- }
918
- function baseRest(func, start) {
919
- return setToString(overRest(func, start, identity), func + "");
920
- }
921
- var baseSetToString = !defineProperty ? identity : function(func, string) {
922
- return defineProperty(func, "toString", {
923
- "configurable": true,
924
- "enumerable": false,
925
- "value": constant(string),
926
- "writable": true
927
- });
928
- };
929
- function cloneBuffer(buffer, isDeep) {
930
- if (isDeep) {
931
- return buffer.slice();
932
- }
933
- var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
934
- buffer.copy(result);
935
- return result;
936
- }
937
- function cloneArrayBuffer(arrayBuffer) {
938
- var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
939
- new Uint8Array(result).set(new Uint8Array(arrayBuffer));
940
- return result;
941
- }
942
- function cloneTypedArray(typedArray, isDeep) {
943
- var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
944
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
945
- }
946
- function copyArray(source, array) {
947
- var index2 = -1, length = source.length;
948
- array || (array = Array(length));
949
- while (++index2 < length) {
950
- array[index2] = source[index2];
951
- }
952
- return array;
953
- }
954
- function copyObject(source, props, object, customizer) {
955
- var isNew = !object;
956
- object || (object = {});
957
- var index2 = -1, length = props.length;
958
- while (++index2 < length) {
959
- var key = props[index2];
960
- var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
961
- if (newValue === void 0) {
962
- newValue = source[key];
963
- }
964
- if (isNew) {
965
- baseAssignValue(object, key, newValue);
966
- } else {
967
- assignValue(object, key, newValue);
968
- }
969
- }
970
- return object;
971
- }
972
- function createAssigner(assigner) {
973
- return baseRest(function(object, sources) {
974
- var index2 = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;
975
- customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0;
976
- if (guard && isIterateeCall(sources[0], sources[1], guard)) {
977
- customizer = length < 3 ? void 0 : customizer;
978
- length = 1;
979
- }
980
- object = Object(object);
981
- while (++index2 < length) {
982
- var source = sources[index2];
983
- if (source) {
984
- assigner(object, source, index2, customizer);
985
- }
986
- }
987
- return object;
988
- });
989
- }
990
- function createBaseFor(fromRight) {
991
- return function(object, iteratee, keysFunc) {
992
- var index2 = -1, iterable = Object(object), props = keysFunc(object), length = props.length;
993
- while (length--) {
994
- var key = props[fromRight ? length : ++index2];
995
- if (iteratee(iterable[key], key, iterable) === false) {
996
- break;
997
- }
998
- }
999
- return object;
1000
- };
1001
- }
1002
- function getMapData(map, key) {
1003
- var data = map.__data__;
1004
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
1005
- }
1006
- function getNative(object, key) {
1007
- var value = getValue(object, key);
1008
- return baseIsNative(value) ? value : void 0;
1009
- }
1010
- function getRawTag(value) {
1011
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
1012
- try {
1013
- value[symToStringTag] = void 0;
1014
- var unmasked = true;
1015
- } catch (e) {
1016
- }
1017
- var result = nativeObjectToString.call(value);
1018
- if (unmasked) {
1019
- if (isOwn) {
1020
- value[symToStringTag] = tag;
1021
- } else {
1022
- delete value[symToStringTag];
1023
- }
1024
- }
1025
- return result;
1026
- }
1027
- function initCloneObject(object) {
1028
- return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
1029
- }
1030
- function isIndex(value, length) {
1031
- var type = typeof value;
1032
- length = length == null ? MAX_SAFE_INTEGER : length;
1033
- return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
1034
- }
1035
- function isIterateeCall(value, index2, object) {
1036
- if (!isObject(object)) {
1037
- return false;
1038
- }
1039
- var type = typeof index2;
1040
- if (type == "number" ? isArrayLike(object) && isIndex(index2, object.length) : type == "string" && index2 in object) {
1041
- return eq(object[index2], value);
1042
- }
1043
- return false;
1044
- }
1045
- function isKeyable(value) {
1046
- var type = typeof value;
1047
- return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
1048
- }
1049
- function isMasked(func) {
1050
- return !!maskSrcKey && maskSrcKey in func;
1051
- }
1052
- function isPrototype(value) {
1053
- var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto;
1054
- return value === proto;
1055
- }
1056
- function nativeKeysIn(object) {
1057
- var result = [];
1058
- if (object != null) {
1059
- for (var key in Object(object)) {
1060
- result.push(key);
1061
- }
1062
- }
1063
- return result;
1064
- }
1065
- function objectToString(value) {
1066
- return nativeObjectToString.call(value);
1067
- }
1068
- function overRest(func, start, transform) {
1069
- start = nativeMax(start === void 0 ? func.length - 1 : start, 0);
1070
- return function() {
1071
- var args = arguments, index2 = -1, length = nativeMax(args.length - start, 0), array = Array(length);
1072
- while (++index2 < length) {
1073
- array[index2] = args[start + index2];
1074
- }
1075
- index2 = -1;
1076
- var otherArgs = Array(start + 1);
1077
- while (++index2 < start) {
1078
- otherArgs[index2] = args[index2];
1079
- }
1080
- otherArgs[start] = transform(array);
1081
- return apply(func, this, otherArgs);
1082
- };
1083
- }
1084
- function safeGet(object, key) {
1085
- if (key === "constructor" && typeof object[key] === "function") {
1086
- return;
1087
- }
1088
- if (key == "__proto__") {
1089
- return;
1090
- }
1091
- return object[key];
1092
- }
1093
- var setToString = shortOut(baseSetToString);
1094
- function shortOut(func) {
1095
- var count = 0, lastCalled = 0;
1096
- return function() {
1097
- var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
1098
- lastCalled = stamp;
1099
- if (remaining > 0) {
1100
- if (++count >= HOT_COUNT) {
1101
- return arguments[0];
1102
- }
1103
- } else {
1104
- count = 0;
1105
- }
1106
- return func.apply(void 0, arguments);
1107
- };
1108
- }
1109
- function toSource(func) {
1110
- if (func != null) {
1111
- try {
1112
- return funcToString.call(func);
1113
- } catch (e) {
1114
- }
1115
- try {
1116
- return func + "";
1117
- } catch (e) {
1118
- }
1119
- }
1120
- return "";
1121
- }
1122
- function eq(value, other) {
1123
- return value === other || value !== value && other !== other;
1124
- }
1125
- var isArguments = baseIsArguments(function() {
1126
- return arguments;
1127
- }()) ? baseIsArguments : function(value) {
1128
- return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
1129
- };
1130
- var isArray = Array.isArray;
1131
- function isArrayLike(value) {
1132
- return value != null && isLength(value.length) && !isFunction(value);
1133
- }
1134
- function isArrayLikeObject(value) {
1135
- return isObjectLike(value) && isArrayLike(value);
1136
- }
1137
- var isBuffer = nativeIsBuffer || stubFalse;
1138
- function isFunction(value) {
1139
- if (!isObject(value)) {
1140
- return false;
1141
- }
1142
- var tag = baseGetTag(value);
1143
- return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
1144
- }
1145
- function isLength(value) {
1146
- return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
1147
- }
1148
- function isObject(value) {
1149
- var type = typeof value;
1150
- return value != null && (type == "object" || type == "function");
1151
- }
1152
- function isObjectLike(value) {
1153
- return value != null && typeof value == "object";
1154
- }
1155
- function isPlainObject(value) {
1156
- if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
1157
- return false;
1158
- }
1159
- var proto = getPrototype(value);
1160
- if (proto === null) {
1161
- return true;
1162
- }
1163
- var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
1164
- return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
1165
- }
1166
- var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
1167
- function toPlainObject(value) {
1168
- return copyObject(value, keysIn(value));
1169
- }
1170
- function keysIn(object) {
1171
- return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
1172
- }
1173
- var mergeWith2 = createAssigner(function(object, source, srcIndex, customizer) {
1174
- baseMerge(object, source, srcIndex, customizer);
1175
- });
1176
- function constant(value) {
1177
- return function() {
1178
- return value;
1179
- };
1180
- }
1181
- function identity(value) {
1182
- return value;
1183
- }
1184
- function stubFalse() {
1185
- return false;
1186
- }
1187
- module.exports = mergeWith2;
1188
- })(lodash_mergewith, lodash_mergewith.exports);
1189
- var mergeWith = lodash_mergewith.exports;
1190
- const extractAlias = (name) => typeof name === "string" ? name.replace(ALIAS_KEY, "") : name || "";
1191
- const ALIAS_KEY = "alias:";
1192
- const iterator = (iterateEl, getDriver) => {
1193
- if (Array.isArray(iterateEl)) {
1194
- return iterateEl.map((el) => isRenderDriver(el) || typeof el === "string" && el.includes(ALIAS_KEY) ? getDriver(el) : iterator(el, getDriver));
1195
- }
1196
- if (typeof iterateEl === "object") {
1197
- return Object.entries(iterateEl).reduce((acc, [key, value]) => {
1198
- acc[key] = iterator(value, getDriver);
1199
- return acc;
1200
- }, {});
1201
- }
1202
- return iterateEl;
1203
- };
1204
- const merge = (one, two) => mergeWith(one, two, (objValue, srcValue) => {
1205
- if (Array.isArray(srcValue)) {
1206
- const formatArr = srcValue.map((el) => isRenderDriver(el) ? `${ALIAS_KEY}${el}` : el);
1207
- return formatArr;
1208
- }
1209
- });
1210
- const cacheDriver = (id) => {
1211
- let cache2 = [];
1212
- const update = (id2, data) => {
1213
- const formatData = iterator(data, (el) => typeof el !== "string" ? `${ALIAS_KEY}${el.id}` : el);
1214
- cache2 = merge(cache2, formatData);
1215
- };
1216
- const getCacheCell = (id2) => cache2.find((cacheCell) => cacheCell.id === id2);
1217
- const get = (id2) => {
1218
- const findCell = getCacheCell(id2);
1219
- return iterator(findCell, (el) => {
1220
- return typeof el === "string" ? getCacheCell(extractAlias(el)) : el;
1221
- });
1222
- };
1223
- return {
1224
- update,
1225
- get,
1226
- cache: cache2,
1227
- id
1228
- };
1229
- };
1230
- const initialState = [
1231
- {
1232
- id: "slide_0",
1233
- name: "matchesOneTwo",
1234
- root: {
1235
- desktop: {
1236
- variant: "default",
1237
- animationName: "default",
1238
- $animationDuration: 3e3,
1239
- color: "#000",
1240
- fontFamily: "Roboto",
1241
- isBold: false,
1242
- isItalic: false,
1243
- isThrough: false,
1244
- textAlign: "left",
1245
- fontSize: 26,
1246
- lineHeight: 1.2,
1247
- letterSpacing: 0
1248
- },
1249
- laptop: {
1250
- variant: "default",
1251
- animationName: "default",
1252
- $animationDuration: 3e3,
1253
- color: "#000",
1254
- fontFamily: "Roboto",
1255
- isBold: false,
1256
- isItalic: false,
1257
- isThrough: false,
1258
- textAlign: "left",
1259
- fontSize: 26,
1260
- lineHeight: 1.2,
1261
- letterSpacing: 0
1262
- },
1263
- tablet: {
1264
- variant: "default",
1265
- animationName: "default",
1266
- $animationDuration: 3e3,
1267
- color: "#000",
1268
- fontFamily: "Roboto",
1269
- isBold: false,
1270
- isItalic: false,
1271
- isThrough: false,
1272
- textAlign: "left",
1273
- fontSize: 26,
1274
- lineHeight: 1.2,
1275
- letterSpacing: 0
1276
- },
1277
- mobile: {
1278
- variant: "default",
1279
- animationName: "default",
1280
- $animationDuration: 3e3,
1281
- color: "#000",
1282
- fontFamily: "Roboto",
1283
- isBold: false,
1284
- isItalic: false,
1285
- isThrough: false,
1286
- textAlign: "left",
1287
- fontSize: 26,
1288
- lineHeight: 1.2,
1289
- letterSpacing: 0
1290
- }
1291
- },
1292
- logo: {
1293
- desktop: {
1294
- backgroundColor: "#eee",
1295
- backgroundColorOpacity: 0
1296
- },
1297
- laptop: {
1298
- backgroundColor: "#eee",
1299
- backgroundColorOpacity: 0
1300
- },
1301
- tablet: {
1302
- backgroundColor: "#eee",
1303
- backgroundColorOpacity: 0
1304
- },
1305
- mobile: {
1306
- backgroundColor: "#eee",
1307
- backgroundColorOpacity: 0
1308
- }
1309
- },
1310
- value: {
1311
- desktop: {
1312
- corner: 4,
1313
- backgroundColor: "#3ec70e",
1314
- backgroundColorOpacity: 100,
1315
- color: "#fff",
1316
- fontFamily: "Roboto",
1317
- isBold: true,
1318
- isItalic: false,
1319
- isThrough: false,
1320
- textAlign: "left",
1321
- fontSize: 16,
1322
- lineHeight: 1.2,
1323
- letterSpacing: 0
1324
- },
1325
- laptop: {
1326
- corner: 4,
1327
- backgroundColor: "#3ec70e",
1328
- backgroundColorOpacity: 100,
1329
- color: "#fff",
1330
- fontFamily: "Roboto",
1331
- isBold: true,
1332
- isItalic: false,
1333
- isThrough: false,
1334
- textAlign: "left",
1335
- fontSize: 16,
1336
- lineHeight: 1.2,
1337
- letterSpacing: 0
1338
- },
1339
- tablet: {
1340
- corner: 4,
1341
- backgroundColor: "#3ec70e",
1342
- backgroundColorOpacity: 100,
1343
- color: "#fff",
1344
- fontFamily: "Roboto",
1345
- isBold: true,
1346
- isItalic: false,
1347
- isThrough: false,
1348
- textAlign: "left",
1349
- fontSize: 16,
1350
- lineHeight: 1.2,
1351
- letterSpacing: 0
1352
- },
1353
- mobile: {
1354
- corner: 4,
1355
- backgroundColor: "#3ec70e",
1356
- backgroundColorOpacity: 100,
1357
- color: "#fff",
1358
- fontFamily: "Roboto",
1359
- isBold: true,
1360
- isItalic: false,
1361
- isThrough: false,
1362
- textAlign: "left",
1363
- fontSize: 16,
1364
- lineHeight: 1.2,
1365
- letterSpacing: 0
1366
- }
1367
- },
1368
- teamName: {
1369
- desktop: {
1370
- color: "#333",
1371
- fontFamily: "Roboto",
1372
- isBold: true,
1373
- isItalic: false,
1374
- isThrough: false,
1375
- textAlign: "left",
1376
- fontSize: 22,
1377
- lineHeight: 1.2,
1378
- letterSpacing: 0
1379
- },
1380
- laptop: {
1381
- color: "#333",
1382
- fontFamily: "Roboto",
1383
- isBold: true,
1384
- isItalic: false,
1385
- isThrough: false,
1386
- textAlign: "left",
1387
- fontSize: 22,
1388
- lineHeight: 1.2,
1389
- letterSpacing: 0
1390
- },
1391
- tablet: {
1392
- color: "#333",
1393
- fontFamily: "Roboto",
1394
- isBold: true,
1395
- isItalic: false,
1396
- isThrough: false,
1397
- textAlign: "left",
1398
- fontSize: 22,
1399
- lineHeight: 1.2,
1400
- letterSpacing: 0
1401
- },
1402
- mobile: {
1403
- color: "#333",
1404
- fontFamily: "Roboto",
1405
- isBold: true,
1406
- isItalic: false,
1407
- isThrough: false,
1408
- textAlign: "left",
1409
- fontSize: 22,
1410
- lineHeight: 1.2,
1411
- letterSpacing: 0
1412
- }
1413
- },
1414
- titleLabel: {
1415
- desktop: {
1416
- innerText: "Title",
1417
- color: "#333",
1418
- fontFamily: "Roboto",
1419
- isBold: false,
1420
- isItalic: false,
1421
- isThrough: false,
1422
- textAlign: "left",
1423
- fontSize: 20,
1424
- lineHeight: 1.2,
1425
- letterSpacing: 0
1426
- },
1427
- laptop: {
1428
- innerText: "Title",
1429
- color: "#333",
1430
- fontFamily: "Roboto",
1431
- isBold: false,
1432
- isItalic: false,
1433
- isThrough: false,
1434
- textAlign: "left",
1435
- fontSize: 20,
1436
- lineHeight: 1.2,
1437
- letterSpacing: 0
1438
- },
1439
- tablet: {
1440
- innerText: "Title",
1441
- color: "#333",
1442
- fontFamily: "Roboto",
1443
- isBold: false,
1444
- isItalic: false,
1445
- isThrough: false,
1446
- textAlign: "left",
1447
- fontSize: 20,
1448
- lineHeight: 1.2,
1449
- letterSpacing: 0
1450
- },
1451
- mobile: {
1452
- innerText: "Title",
1453
- color: "#333",
1454
- fontFamily: "Roboto",
1455
- isBold: false,
1456
- isItalic: false,
1457
- isThrough: false,
1458
- textAlign: "left",
1459
- fontSize: 20,
1460
- lineHeight: 1.2,
1461
- letterSpacing: 0
1462
- }
1463
- },
1464
- titleValue: {
1465
- desktop: {
1466
- innerText: "Value",
1467
- color: "#333",
1468
- fontFamily: "Roboto",
1469
- isBold: true,
1470
- isItalic: false,
1471
- isThrough: false,
1472
- textAlign: "left",
1473
- fontSize: 20,
1474
- lineHeight: 1.2,
1475
- letterSpacing: 0
1476
- },
1477
- laptop: {
1478
- innerText: "Value",
1479
- color: "#333",
1480
- fontFamily: "Roboto",
1481
- isBold: true,
1482
- isItalic: false,
1483
- isThrough: false,
1484
- textAlign: "left",
1485
- fontSize: 20,
1486
- lineHeight: 1.2,
1487
- letterSpacing: 0
1488
- },
1489
- tablet: {
1490
- innerText: "Value",
1491
- color: "#333",
1492
- fontFamily: "Roboto",
1493
- isBold: true,
1494
- isItalic: false,
1495
- isThrough: false,
1496
- textAlign: "left",
1497
- fontSize: 20,
1498
- lineHeight: 1.2,
1499
- letterSpacing: 0
1500
- },
1501
- mobile: {
1502
- innerText: "Value",
1503
- color: "#333",
1504
- fontFamily: "Roboto",
1505
- isBold: true,
1506
- isItalic: false,
1507
- isThrough: false,
1508
- textAlign: "left",
1509
- fontSize: 20,
1510
- lineHeight: 1.2,
1511
- letterSpacing: 0
1512
- }
1513
- },
1514
- team1Name: {
1515
- desktop: {
1516
- innerText: "Team 1"
1517
- },
1518
- laptop: {
1519
- innerText: "Team 1"
1520
- },
1521
- tablet: {
1522
- innerText: "Team 1"
1523
- },
1524
- mobile: {
1525
- innerText: "Team 1"
1526
- }
1527
- },
1528
- team2Name: {
1529
- desktop: {
1530
- innerText: "Team 2"
1531
- },
1532
- laptop: {
1533
- innerText: "Team 2"
1534
- },
1535
- tablet: {
1536
- innerText: "Team 2"
1537
- },
1538
- mobile: {
1539
- innerText: "Team 2"
1540
- }
1541
- },
1542
- value1: {
1543
- desktop: {
1544
- innerText: "3.24"
1545
- },
1546
- laptop: {
1547
- innerText: "3.24"
1548
- },
1549
- tablet: {
1550
- innerText: "3.24"
1551
- },
1552
- mobile: {
1553
- innerText: "3.24"
1554
- }
1555
- },
1556
- value2: {
1557
- desktop: {
1558
- innerText: "2.41"
1559
- },
1560
- laptop: {
1561
- innerText: "2.41"
1562
- },
1563
- tablet: {
1564
- innerText: "2.41"
1565
- },
1566
- mobile: {
1567
- innerText: "2.41"
1568
- }
1569
- }
1570
- },
1571
- {
1572
- id: "wideCard",
1573
- name: "root",
1574
- root: {
1575
- desktop: {
1576
- $variant: "default",
1577
- bookmakerName: "bookmaker",
1578
- bookmakerSite: "site.com",
1579
- bookmakerColor: "#7e8392ff"
1580
- },
1581
- laptop: {
1582
- $variant: "default",
1583
- bookmakerName: "bookmaker",
1584
- bookmakerSite: "site.com",
1585
- bookmakerColor: "#7e8392ff"
1586
- },
1587
- tablet: {
1588
- $variant: "default",
1589
- bookmakerName: "bookmaker",
1590
- bookmakerSite: "site.com",
1591
- bookmakerColor: "#7e8392ff"
1592
- },
1593
- mobile: {
1594
- $variant: "default",
1595
- bookmakerName: "bookmaker",
1596
- bookmakerSite: "site.com",
1597
- bookmakerColor: "#7e8392ff"
1598
- }
1599
- },
1600
- background: {
1601
- desktop: {
1602
- backgroundColor: "#fb4b4b",
1603
- backgroundColorOpacity: 100
1604
- },
1605
- laptop: {
1606
- backgroundColor: "#fff",
1607
- backgroundColorOpacity: 100
1608
- },
1609
- tablet: {
1610
- backgroundColor: "#fff",
1611
- backgroundColorOpacity: 100
1612
- },
1613
- mobile: {
1614
- backgroundColor: "#fff",
1615
- backgroundColorOpacity: 100
1616
- }
1617
- },
1618
- logo: {
1619
- desktop: {
1620
- backgroundColor: "#eee",
1621
- backgroundColorOpacity: 100,
1622
- height: 35,
1623
- width: 100,
1624
- backgroundImage: "data:image/png;base64,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"
1625
- },
1626
- laptop: {
1627
- backgroundColor: "#eee",
1628
- backgroundColorOpacity: 100,
1629
- height: 35,
1630
- width: 100
1631
- },
1632
- tablet: {
1633
- backgroundColor: "#eee",
1634
- backgroundColorOpacity: 100,
1635
- height: 35,
1636
- width: 100
1637
- },
1638
- mobile: {
1639
- backgroundColor: "#eee",
1640
- backgroundColorOpacity: 100,
1641
- height: 35,
1642
- width: 100
1643
- }
1644
- },
1645
- button: {
1646
- desktop: {
1647
- minWidth: 0,
1648
- backgroundColor: "#080808",
1649
- backgroundColorOpacity: 100,
1650
- corner: 20,
1651
- borderWidth: 0,
1652
- borderColor: "#76a963",
1653
- $animated: false,
1654
- innerHTML: "\u0437\u0430\u0431\u0440\u0430\u0442\u044C \u0444\u0440\u0438\u0431\u0435\u044211",
1655
- color: "#fff",
1656
- fontFamily: "Roboto",
1657
- isBold: true,
1658
- isItalic: false,
1659
- isThrough: false,
1660
- textAlign: "left",
1661
- fontSize: 10,
1662
- lineHeight: 1.2,
1663
- letterSpacing: 0
1664
- },
1665
- laptop: {
1666
- minWidth: 0,
1667
- backgroundColor: "#ff6a13",
1668
- backgroundColorOpacity: 100,
1669
- corner: 20,
1670
- borderWidth: 0,
1671
- borderColor: "#76a963",
1672
- $animated: false,
1673
- innerHTML: "\u0437\u0430\u0431\u0440\u0430\u0442\u044C \u0444\u0440\u0438\u0431\u0435\u0442",
1674
- color: "#fff",
1675
- fontFamily: "Roboto",
1676
- isBold: true,
1677
- isItalic: false,
1678
- isThrough: false,
1679
- textAlign: "left",
1680
- fontSize: 10,
1681
- lineHeight: 1.2,
1682
- letterSpacing: 0
1683
- },
1684
- tablet: {
1685
- minWidth: 0,
1686
- backgroundColor: "#ff6a13",
1687
- backgroundColorOpacity: 100,
1688
- corner: 20,
1689
- borderWidth: 0,
1690
- borderColor: "#76a963",
1691
- $animated: false,
1692
- innerHTML: "\u0437\u0430\u0431\u0440\u0430\u0442\u044C \u0444\u0440\u0438\u0431\u0435\u0442",
1693
- color: "#fff",
1694
- fontFamily: "Roboto",
1695
- isBold: true,
1696
- isItalic: false,
1697
- isThrough: false,
1698
- textAlign: "left",
1699
- fontSize: 10,
1700
- lineHeight: 1.2,
1701
- letterSpacing: 0
1702
- },
1703
- mobile: {
1704
- minWidth: 0,
1705
- backgroundColor: "#ff6a13",
1706
- backgroundColorOpacity: 100,
1707
- corner: 20,
1708
- borderWidth: 0,
1709
- borderColor: "#76a963",
1710
- $animated: false,
1711
- innerHTML: "\u0437\u0430\u0431\u0440\u0430\u0442\u044C \u0444\u0440\u0438\u0431\u0435\u0442",
1712
- color: "#fff",
1713
- fontFamily: "Roboto",
1714
- isBold: true,
1715
- isItalic: false,
1716
- isThrough: false,
1717
- textAlign: "left",
1718
- fontSize: 10,
1719
- lineHeight: 1.2,
1720
- letterSpacing: 0
1721
- }
1722
- },
1723
- promotion: {
1724
- desktop: {
1725
- backgroundColor: "#333",
1726
- backgroundColorOpacity: 100,
1727
- borderWidth: 0,
1728
- borderColor: "#76a963",
1729
- innerHTML: "\u0420\u0435\u043A\u043B\u0430\u043C\u0430 winline.ru l 18+ ",
1730
- color: "#fff",
1731
- fontFamily: "Roboto",
1732
- isBold: false,
1733
- isItalic: false,
1734
- isThrough: false,
1735
- textAlign: "left",
1736
- fontSize: 8,
1737
- lineHeight: 1.2,
1738
- letterSpacing: 0
1739
- },
1740
- laptop: {
1741
- backgroundColor: "#333",
1742
- backgroundColorOpacity: 100,
1743
- borderWidth: 0,
1744
- borderColor: "#76a963",
1745
- innerHTML: "\u0420\u0435\u043A\u043B\u0430\u043C\u0430 winline.ru l 18+ ",
1746
- color: "#fff",
1747
- fontFamily: "Roboto",
1748
- isBold: false,
1749
- isItalic: false,
1750
- isThrough: false,
1751
- textAlign: "left",
1752
- fontSize: 8,
1753
- lineHeight: 1.2,
1754
- letterSpacing: 0
1755
- },
1756
- tablet: {
1757
- backgroundColor: "#333",
1758
- backgroundColorOpacity: 100,
1759
- borderWidth: 0,
1760
- borderColor: "#76a963",
1761
- innerHTML: "\u0420\u0435\u043A\u043B\u0430\u043C\u0430 winline.ru l 18+ ",
1762
- color: "#fff",
1763
- fontFamily: "Roboto",
1764
- isBold: false,
1765
- isItalic: false,
1766
- isThrough: false,
1767
- textAlign: "left",
1768
- fontSize: 8,
1769
- lineHeight: 1.2,
1770
- letterSpacing: 0
1771
- },
1772
- mobile: {
1773
- backgroundColor: "#333",
1774
- backgroundColorOpacity: 100,
1775
- borderWidth: 0,
1776
- borderColor: "#76a963",
1777
- innerHTML: "\u0420\u0435\u043A\u043B\u0430\u043C\u0430 winline.ru l 18+ ",
1778
- color: "#fff",
1779
- fontFamily: "Roboto",
1780
- isBold: false,
1781
- isItalic: false,
1782
- isThrough: false,
1783
- textAlign: "left",
1784
- fontSize: 8,
1785
- lineHeight: 1.2,
1786
- letterSpacing: 0
1787
- }
1788
- },
1789
- slides: {
1790
- $children: ["alias:slide_0"]
1791
- }
1792
- }
1793
- ];
1794
- const globalCache = cacheDriver("global");
1795
- globalCache.update("complexPopup", initialState);
1796
- var statePlugin = (emitter, id) => {
1797
- let currentDevice = "desktop";
1798
- const getDeviceState = (state) => {
1799
- if (!state)
1800
- return {};
1801
- const newState = {};
1802
- Object.entries(state).forEach(([layer, rules]) => set(newState, layer, rules[currentDevice] || rules));
1803
- return newState;
1804
- };
1805
- emitter.on("mount", () => {
1806
- const initialState2 = globalCache.get(id);
1807
- const deviceState = getDeviceState(initialState2);
1808
- if (deviceState) {
1809
- emitter.emit("runRender", deviceState);
1810
- }
1811
- });
1812
- emitter.on("renderNode", ({ rule }) => {
1813
- if ("$device" in rule && rule.$device !== currentDevice && rule.$device) {
1814
- currentDevice = rule.$device;
1815
- const initialState2 = globalCache.get(id);
1816
- if (initialState2) {
1817
- emitter.emit("runRender", getDeviceState(initialState2));
1818
- }
1819
- }
1820
- });
1821
- };
1822
- var html$b = '<div class="wideCardText wideCard__slide wideCard__slide_animated_default" data-layer="root">text slide</div>\n';
1823
- var css$b = ".wideCardText{display:flex;justify-content:center;align-items:center;white-space:pre-wrap;color:#333;font-size:16px;--accent-color: #ffbc00ff;--accent-size: 16px}.wideCard_desktop .wideCardText{font-size:22px;--accent-size: 22px}.wideCardText span{color:var(--accent-color);font-size:var(--accent-size)}\n";
1824
- var script$9 = (emitter) => {
1825
- let animationName = "";
1826
- let animationDuration = "";
1827
- emitter.on("renderNode", ({ layer, rule }) => {
1828
- if (layer.layer === "root" && ("$animationName" in rule || "$animationDuration" in rule)) {
1829
- animationName = rule.$animationName;
1830
- animationDuration = `${rule.$animationDuration / 1e3}s`;
1831
- }
1832
- if (layer.layer === "root" && "$active" in rule) {
1833
- const isActive = rule.$active;
1834
- emitter.emit("runRender", {
1835
- root: {
1836
- $styles: {
1837
- animationName: isActive ? animationName : "none",
1838
- animationDuration
1839
- }
1840
- }
1841
- });
1842
- }
1843
- });
1844
- };
1845
- var textSlideChunk = renderDriver({
1846
- html: html$b,
1847
- styles: [css$b],
1848
- plugins: [patchStylesPlugin, patchRulesPlugin, googleFontsPlugin, script$9, statePlugin]
1849
- });
1850
- var html$a = `<div class="wideCardMatches wideCard__slide wideCard__slide_animated_default" data-layer="root">
1851
- <div class="wideCardMatches-odd">
1852
- <div
1853
- class="wideCardMatches-odd__logo"
1854
- data-layer="side1Logo"
1855
- data-hidden
1856
- style="
1857
- background-image: url('https://cdn.scores24.live/upload/team/w60-h60/ef8/3e3/a5b6734c1a1339ca80f017112cf24e0757.png');
1858
- "
1859
- ></div>
1860
- <div class="wideCardMatches-odd__label" data-layer="side1Label" data-hidden>3</div>
1861
- </div>
1862
- <div class="wideCardMatches-coef" data-layer="coef">
1863
- <div class="wideCardMatches-coef__head" data-layer="coefX" data-hidden>X</div>
1864
- <div class="wideCardMatches-coef__value" data-layer="coefValue" data-hidden>3.92</div>
1865
- </div>
1866
- <div class="wideCardMatches-odd wideCard-odd_reverse">
1867
- <div
1868
- class="wideCardMatches-odd__logo"
1869
- data-layer="side2Logo"
1870
- data-hidden
1871
- style="
1872
- background-image: url('https://cdn.scores24.live/upload/team/w60-h60/ef8/3e3/a5b6734c1a1339ca80f017112cf24e0757.png');
1873
- "
1874
- ></div>
1875
- <div class="wideCardMatches-odd__label" data-layer="side2Label" data-hidden>2.8</div>
1876
- </div>
1877
- </div>
1878
- `;
1879
- var css$a = ".wideCardMatches{display:grid;grid-template-columns:repeat(3,1fr);height:100%}.wideCardMatches-odd{display:flex;flex-direction:row;align-items:center;justify-content:center}.wideCardMatches-odd_reverse{flex-direction:row-reverse}.wideCardMatches-odd_reverse .wideCard-odd__label{margin-right:10px}.wideCardMatches-odd__label{display:flex;align-items:center;justify-content:center;color:#000;font-size:26px}.wideCardMatches-odd__logo{width:35px;height:35px;background-color:#eee}.wideCardMatches-coef{display:flex;align-items:center;justify-content:center}.wideCardMatches-coef__head{color:#000;font-size:26px}.wideCardMatches-coef__value{color:#000;font-size:26px;margin-left:10px}\n";
1880
- const slideAnimations = [
1881
- {
1882
- label: "Default",
1883
- value: "default",
1884
- animationName: "fade-in-out"
1885
- },
1886
- {
1887
- label: "Bottom-top",
1888
- value: "bottomTop",
1889
- animationName: "fade-in-bottom-out-top"
1890
- },
1891
- {
1892
- label: "Top-bottom",
1893
- value: "topBottom",
1894
- animationName: "fade-in-top-out-bottom"
1895
- }
1896
- ];
1897
- var script$8 = (emitter) => {
1898
- let animationName = "";
1899
- let animationDuration = "";
1900
- emitter.on("renderNode", ({ layer, rule }) => {
1901
- if (layer.layer === "root" && isEmptyValue(rule.$skip)) {
1902
- const animationName2 = slideAnimations.find((animation) => animation.value === rule.animationName);
1903
- emitter.emit("runRender", {
1904
- root: {
1905
- $animationName: animationName2 == null ? void 0 : animationName2.animationName,
1906
- $skip: true
1907
- },
1908
- side1Label: rule,
1909
- side2Label: rule,
1910
- coefValue: rule
1911
- });
1912
- }
1913
- if (layer.layer === "root" && ("$animationName" in rule || "$animationDuration" in rule)) {
1914
- animationName = rule.$animationName;
1915
- animationDuration = `${rule.$animationDuration / 1e3}s`;
1916
- }
1917
- if (layer.layer === "root" && "$active" in rule) {
1918
- const isActive = rule.$active;
1919
- emitter.emit("runRender", {
1920
- root: {
1921
- $styles: {
1922
- animationName: isActive ? animationName : "none",
1923
- animationDuration
1924
- }
1925
- }
1926
- });
1927
- }
1928
- });
1929
- };
1930
- var matchesSlideChunk = renderDriver({
1931
- html: html$a,
1932
- styles: [css$a],
1933
- plugins: [patchStylesPlugin, patchRulesPlugin, googleFontsPlugin, script$8, classNamesPlugin, statePlugin]
1934
- });
1935
- var html$9 = '<div class="wideOneTwoMatches wideCard__slide wideCard__slide_animated_default" data-layer="root">\n <div class="wideOneTwoMatches-title">\n <div class="wideOneTwoMatches-title__label" data-layer="titleLabel">Title</div>\n <div class="wideOneTwoMatches-title__value" data-layer="titleValue">Value</div>\n </div>\n <div class="wideOneTwoMatches__teams">\n <div class="wideOneTwoMatches-team">\n <div class="wideOneTwoMatches-team__logo" data-layer="logo"></div>\n <div class="wideOneTwoMatches-team__name" data-layer="teamName team1Name">Team 1</div>\n <div class="wideOneTwoMatches-team__value" data-layer="value value1">3.24</div>\n </div>\n <div class="wideOneTwoMatches-team">\n <div class="wideOneTwoMatches-team__logo" data-layer="logo" data-hidden></div>\n <div class="wideOneTwoMatches-team__name" data-layer="teamName team2Name" data-hidden="teamName">Team 2</div>\n <div class="wideOneTwoMatches-team__value" data-layer="value value2" data-hidden="value">2.41</div>\n </div>\n </div>\n</div>\n';
1936
- var css$9 = ".wideOneTwoMatches{display:flex;align-items:center;justify-content:center;height:100%}.wideOneTwoMatches-title{color:#333}.wideOneTwoMatches-title__label{font-size:12px;margin-right:20px}.wideCard_tablet .wideOneTwoMatches-title__label{font-size:16px}.wideCard_desktop .wideOneTwoMatches-title__label,.wideCard_laptop .wideOneTwoMatches-title__label{font-size:20px}.wideOneTwoMatches-title__value{font-weight:700;font-size:12px}.wideCard_tablet .wideOneTwoMatches-title__value{font-size:16px}.wideCard_desktop .wideOneTwoMatches-title__value,.wideCard_laptop .wideOneTwoMatches-title__value{font-size:20px}.wideOneTwoMatches-team{display:flex;align-items:center;margin-bottom:10px;position:relative;padding-left:50px}.wideCard_desktop .wideOneTwoMatches-team,.wideCard_laptop .wideOneTwoMatches-team{padding-left:65px}.wideOneTwoMatches-team:first-child .wideOneTwoMatches-team__logo{top:50%;transform:translateY(-40%)}.wideOneTwoMatches-team:last-child{margin-bottom:initial}.wideOneTwoMatches-team:last-child .wideOneTwoMatches-team__logo{top:50%;transform:translateY(-60%)}.wideOneTwoMatches-team__logo{width:32px;height:32px;background-color:#eee;position:absolute;left:0}.wideCard_tablet .wideOneTwoMatches-team__logo{width:38px;height:38px}.wideCard_desktop .wideOneTwoMatches-team__logo,.wideCard_laptop .wideOneTwoMatches-team__logo{width:40px;height:40px}.wideOneTwoMatches-team__name{display:none;font-size:22px;font-weight:700;color:#333;margin-right:45px;width:100%}.wideCard_desktop .wideOneTwoMatches-team__name,.wideCard_laptop .wideOneTwoMatches-team__name{display:block}.wideOneTwoMatches-team__value{background-color:#3ec70e;padding:1px 6px;font-size:12px;font-weight:700;color:#fff;border-radius:4px;line-height:1.2}.wideCard_tablet .wideOneTwoMatches-team__value{font-size:14px}.wideCard_desktop .wideOneTwoMatches-team__value,.wideCard_laptop .wideOneTwoMatches-team__value{font-size:16px;padding:2px 10px}\n";
1937
- var script$7 = (emitter) => {
1938
- let animationName = "";
1939
- let animationDuration = "";
1940
- emitter.on("renderNode", ({ layer, rule }) => {
1941
- if (layer.layer === "root" && isEmptyValue(rule.$skip)) {
1942
- const animationName2 = slideAnimations.find((animation) => animation.value === rule.animationName);
1943
- emitter.emit("runRender", {
1944
- root: {
1945
- $animationName: animationName2 == null ? void 0 : animationName2.animationName,
1946
- $skip: true
1947
- }
1948
- });
1949
- }
1950
- if (layer.layer === "root" && ("$animationName" in rule || "$animationDuration" in rule)) {
1951
- animationName = rule.$animationName;
1952
- animationDuration = `${rule.$animationDuration / 1e3}s`;
1953
- }
1954
- if (layer.layer === "root" && "$active" in rule) {
1955
- const isActive = rule.$active;
1956
- emitter.emit("runRender", {
1957
- root: {
1958
- $styles: {
1959
- animationName: isActive ? animationName : "none",
1960
- animationDuration
1961
- }
1962
- }
1963
- });
1964
- }
1965
- });
1966
- };
1967
- var matchesOneTwoSlideChunk = renderDriver({
1968
- html: html$9,
1969
- styles: [css$9],
1970
- plugins: [patchStylesPlugin, patchRulesPlugin, googleFontsPlugin, script$7, classNamesPlugin, statePlugin]
1971
- });
1972
- const chunks$4 = {
1973
- text: textSlideChunk,
1974
- matches: matchesSlideChunk,
1975
- matchesOneTwo: matchesOneTwoSlideChunk
1976
- };
1977
- const driver$7 = renderDriver({
1978
- html: html$c,
1979
- styles: [css$c],
1980
- chunks: chunks$4,
1981
- plugins: [
1982
- script$a,
1983
- googleFontsPlugin,
1984
- patchStylesPlugin,
1985
- injectNode,
1986
- patchRulesPlugin,
1987
- classNamesPlugin,
1988
- containerWidthPlugin("root"),
1989
- deviceClassNames({
1990
- desktop: "wideCard_desktop",
1991
- laptop: "wideCard_laptop",
1992
- tablet: "wideCard_tablet",
1993
- mobile: "wideCard_mobile"
1994
- }),
1995
- statePlugin
1996
- ]
1997
- });
1998
- var html$8 = '<div class="simplePopup" data-layer="root">\n <div class="simplePopup__body" data-layer="body" data-hidden>\n <div class="simplePopup__logo" data-layer="logo">logo</div>\n <div class="simplePopup__text" data-layer="content" data-hidden></div>\n <div class="simplePopup__button" data-layer="button">BUTTON</div>\n <div class="simplePopup__legal" data-layer="legal">18+ | \u0420\u0435\u043A\u043B\u0430\u043C\u0430 ligastavok.ru | \u0441 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0435\u0439 \u043E\u0431 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0442\u043E\u0440\u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0440\u0438\u0441\u043A\u0435 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u043A\u0446\u0438\u0439 \u043E \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0445 \u0438\u0445 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F, \u043E \u043F\u0440\u0438\u0437\u043E\u0432\u043E\u043C \u0444\u043E\u043D\u0434\u0435 \u0442\u0430\u043A\u0438\u0445 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430\u043A\u0446\u0438\u0439 \u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439, \u043E \u0441\u0440\u043E\u043A\u0430\u0445, \u043C\u0435\u0441\u0442\u0435 \u0438 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439 \u043C\u043E\u0436\u043D\u043E \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 ligastavok.ru. \u0421\u0440\u043E\u043A \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0430\u043A\u0446\u0438\u0438 \u0441 01.01.2023 \u0434\u043E 31.05.2023 (GMT+3) \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E.</div>\n </div>\n</div>\n';
1999
- var css$8 = ".simplePopup{max-width:320px;width:100%;overflow:hidden;border-radius:10px;background-color:#fff;min-height:500px}.simplePopup_laptop,.simplePopup_tablet{max-width:410px;min-height:680px}.simplePopup_desktop{max-width:930px;min-height:500px}.simplePopup__body{padding:25px 10px 12px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.simplePopup_desktop .simplePopup__body{padding:30px 47px 15px}.simplePopup__logo{width:100px;height:60px;background:#000}.simplePopup__text{margin:auto 0}.simplePopup__button{height:70px;border-radius:8px;padding:0 15px;font-size:24px;background-color:#ffbc00;margin-bottom:12px;display:flex;align-items:center;justify-content:center;width:100%}.simplePopup_desktop .simplePopup__button{width:70%}.simplePopup__legal{font-size:9px;color:#333;padding:0 10px;text-align:center;width:100%;line-height:1.2}.simplePopup_desktop .simplePopup__legal{width:70%}\n";
2000
- const switchTextAlignToFlex = (textAlign) => ({ left: "flex-start", center: "center", right: "flex-end" })[textAlign] || textAlign;
2001
- var script$6 = (emitter) => {
2002
- emitter.on("renderNode", ({ layer, rule }) => {
2003
- if (layer.layer === "root") {
2004
- emitter.emit("runRender", {
2005
- body: {
2006
- alignItems: switchTextAlignToFlex(rule.align)
2007
- }
2008
- });
2009
- }
2010
- if (layer.layer === "button" && isEmptyValue(rule.$skip)) {
2011
- emitter.emit("runRender", {
2012
- button: {
2013
- percent_width: rule.$width,
2014
- justifyContent: switchTextAlignToFlex(rule.textAlign),
2015
- $skip: true
2016
- }
2017
- });
2018
- }
2019
- if (layer.layer === "legal" && isEmptyValue(rule.$skip)) {
2020
- emitter.emit("runRender", {
2021
- legal: { percent_width: rule.$width, justifyContent: switchTextAlignToFlex(rule.textAlign), $skip: true }
2022
- });
2023
- }
2024
- });
2025
- };
2026
- var html$7 = '<div class="simplePopup__line" data-layer="root">line</div>\n';
2027
- var css$7 = ".simplePopup__line{font-size:20px;color:#333}.simplePopup__line span{color:var(--accent-color);font-size:var(--accent-size)}\n";
2028
- var textChunk = renderDriver({
2029
- html: html$7,
2030
- styles: [css$7],
2031
- plugins: [patchStylesPlugin, patchRulesPlugin, googleFontsPlugin, statePlugin]
2032
- });
2033
- const chunks$3 = {
2034
- line: textChunk
2035
- };
2036
- const driver$6 = renderDriver({
2037
- html: html$8,
2038
- styles: [css$8],
2039
- chunks: chunks$3,
2040
- plugins: [
2041
- script$6,
2042
- googleFontsPlugin,
2043
- patchStylesPlugin,
2044
- injectNode,
2045
- patchRulesPlugin,
2046
- containerWidthPlugin("root"),
2047
- deviceClassNames({
2048
- desktop: "simplePopup_desktop",
2049
- laptop: "simplePopup_laptop",
2050
- tablet: "simplePopup_tablet",
2051
- mobile: "simplePopup_mobile"
2052
- }),
2053
- statePlugin
2054
- ]
2055
- });
2056
- var html$6 = '<div class="expressPopup" data-layer="root">\n <div class="expressPopup__body" data-layer="body" data-hidden>\n <div class="expressPopup__head" data-layer="head" data-hidden>\n <div class="expressPopup__title" data-layer="title">Title</div>\n <div class="expressPopup__logo" data-layer="logo"></div>\n\n </div>\n <div class="expressPopup__wrapper" data-layer="content" data-hidden></div>\n\n <div class="expressPopup__text" data-layer="text">TextLayer with <span>accent</span></div>\n <div class="expressPopup-button" data-layer="buttonWrapper">\n <div class="expressPopup-button__head" data-layer="buttonHead">Head</div>\n <div class="expressPopup-button__target" data-layer="buttonTarget">BUTTON</div>\n </div>\n <div class="expressPopup__legal" data-layer="legal">18+ | \u0420\u0435\u043A\u043B\u0430\u043C\u0430 ligastavok.ru | \u0441 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0435\u0439 \u043E\u0431 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0442\u043E\u0440\u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0440\u0438\u0441\u043A\u0435 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u043A\u0446\u0438\u0439 \u043E \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0445 \u0438\u0445 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F, \u043E \u043F\u0440\u0438\u0437\u043E\u0432\u043E\u043C \u0444\u043E\u043D\u0434\u0435 \u0442\u0430\u043A\u0438\u0445 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430\u043A\u0446\u0438\u0439 \u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439, \u043E \u0441\u0440\u043E\u043A\u0430\u0445, \u043C\u0435\u0441\u0442\u0435 \u0438 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439 \u043C\u043E\u0436\u043D\u043E \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 ligastavok.ru. \u0421\u0440\u043E\u043A \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0430\u043A\u0446\u0438\u0438 \u0441 01.01.2023 \u0434\u043E 31.05.2023 (GMT+3) \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E.</div>\n </div>\n</div>\n';
2057
- var css$6 = ".expressPopup{max-width:320px;width:100%;overflow:hidden;border-radius:10px;background-color:#fff;min-height:500px}.expressPopup_laptop .expressPopup,.expressPopup_tablet .expressPopup{max-width:410px;min-height:680px}.expressPopup_desktop{max-width:930px;min-height:500px}.expressPopup__body{padding:25px 10px 12px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.expressPopup_desktop .expressPopup__body{padding:30px 47px 15px}.expressPopup__head{display:flex;align-items:center;flex-direction:column-reverse;margin-bottom:10px}.expressPopup_desktop .expressPopup__head{flex-direction:initial}.expressPopup__title{font-size:23px;text-transform:uppercase;margin-top:10px;color:#333;font-weight:700}.expressPopup_desktop .expressPopup__title{font-size:36px;margin-right:32px;margin-bottom:initial}.expressPopup__logo{width:100px;height:60px;background:#eee}.expressPopup__wrapper{margin:auto 0;display:flex;flex-direction:column;width:100%}.expressPopup__text{font-size:20px;color:#333;margin-bottom:15px;width:100%;text-align:center;--accent-color: #f0f}.expressPopup__text span{color:var(--accent-color);font-size:var(--accent-size)}.expressPopup-button{display:flex;align-items:center;width:100%;text-transform:uppercase;margin-bottom:10px;flex-direction:column;border-radius:4px;overflow:hidden}.expressPopup_desktop .expressPopup-button{flex-direction:initial;width:80%}.expressPopup-button__head{display:flex;align-items:center;height:42px;background-color:#e6aa00;color:#333;font-size:22px;padding:0 20px;white-space:nowrap;width:100%;justify-content:center}.expressPopup_desktop .expressPopup-button__head{height:55px;width:initial;flex-direction:initial;font-size:31px}.expressPopup-button__target{display:flex;align-items:center;height:35px;background-color:#ffbc00;color:#333;font-size:16px;padding:0 15px;width:100%;justify-content:center}.expressPopup_desktop .expressPopup-button__target{height:55px;font-size:31px}.expressPopup__legal{font-size:9px;color:#333;padding:0 10px;text-align:center;width:100%;line-height:1.2}.expressPopup_desktop .expressPopup__legal{width:70%}\n";
2058
- var script$5 = (emitter) => {
2059
- let currentDevice = "desktop";
2060
- emitter.on("renderNode", ({ rule }) => {
2061
- if ("$device" in rule && rule.$device !== currentDevice && rule.$device) {
2062
- currentDevice = rule.$device;
2063
- }
2064
- });
2065
- emitter.on("renderNode", ({ rule, layer }) => {
2066
- if (layer.layer === "root") {
2067
- emitter.emit("runRender", {
2068
- body: {
2069
- alignItems: switchTextAlignToFlex(rule.align)
2070
- },
2071
- head: {
2072
- alignItems: switchTextAlignToFlex(rule.align)
2073
- },
2074
- content: {
2075
- alignItems: switchTextAlignToFlex(rule.align)
2076
- },
2077
- text: {
2078
- textAlign: rule.align
2079
- }
2080
- });
2081
- }
2082
- if (layer.layer === "buttonWrapper" && isEmptyValue(rule.$skip)) {
2083
- emitter.emit("runRender", {
2084
- buttonWrapper: {
2085
- percent_width: rule.$width,
2086
- $skip: true
2087
- }
2088
- });
2089
- }
2090
- if (layer.layer === "buttonTarget" && isEmptyValue(rule.$skip)) {
2091
- emitter.emit("runRender", {
2092
- buttonTarget: {
2093
- justifyContent: switchTextAlignToFlex(rule.textAlign),
2094
- $skip: true
2095
- }
2096
- });
2097
- }
2098
- if (layer.layer === "legal" && isEmptyValue(rule.$skip)) {
2099
- emitter.emit("runRender", {
2100
- legal: {
2101
- percent_width: rule.$width,
2102
- $skip: true
2103
- }
2104
- });
2105
- }
2106
- if (layer.layer === "teams") {
2107
- emitter.emit("runRender", {
2108
- teamName: rule
2109
- });
2110
- }
2111
- });
2112
- };
2113
- var html$5 = '<div class="expressPopupMatch" data-layer="root" data-hidden>\n <div class="expressPopupMatch-left">\n <div class="expressPopupMatch-left__teams">\n <div class="expressPopupMatch-left__logo" data-layer="logo" data-hidden></div>\n <div class="expressPopupMatch-left__logo" data-layer="logo" data-hidden></div>\n </div>\n <div class="expressPopupMatch-left__body">\n <div class="expressPopupMatch-left__league" data-layer="league">\u0410\u041F\u041B</div>\n <div class="expressPopupMatch-left__name" data-layer="teams">\u041D\u044C\u044E\u043A\u0430\u0441\u043B \u2014 \u041B\u0438\u0434\u0441</div>\n </div>\n </div>\n <div class="expressPopupMatch-right">\n <div class="expressPopupMatch-team">\n <div class="expressPopupMatch-team__logo" data-layer="logo" data-hidden></div>\n <div class="expressPopupMatch-team__name" data-layer="teamName" data-hidden>\u041D\u042C\u042E\u041A\u0410\u0421\u041B</div>\n </div>\n\n <div class="expressPopupMatch-odd">\n <div class="expressPopupMatch-odd__label" data-layer="oddLabel">\u0418\u0422\u04111(1.5)</div>\n <div class="expressPopupMatch-odd__value" data-layer="oddValue">2.14</div>\n </div>\n\n <div class="expressPopupMatch-team">\n <div class="expressPopupMatch-team__logo" data-layer="logo" data-hidden></div>\n <div class="expressPopupMatch-team__name" data-layer="teamName" data-hidden>\u041B\u0418\u0414\u0421</div>\n </div>\n </div>\n</div>\n';
2114
- var css$5 = ".expressPopupMatch{padding:10px;display:flex;align-items:center;width:100%}.expressPopupMatch-left{padding-right:15px;display:none;align-items:center;border-right:1px solid #333;flex:1}.expressPopup_desktop .expressPopupMatch-left{display:flex}.expressPopupMatch-left__teams{margin-right:30px;display:flex;align-items:center}.expressPopupMatch-left__logo{width:50px;height:50px;background-color:#eee}.expressPopupMatch-left__league{font-size:15px;color:#333}.expressPopupMatch-left__name{font-size:18px;font-weight:700;color:#333}.expressPopupMatch-right{padding:0 10px;width:100%;display:flex;align-items:center}.expressPopup_desktop .expressPopupMatch-right{padding:0 30px;width:initial}.expressPopupMatch-odd{display:flex;align-items:center;flex-direction:column;flex:1}.expressPopup_desktop .expressPopupMatch-odd{flex-direction:row;flex:initial}.expressPopupMatch-odd__label{font-size:13px;color:#333}.expressPopup_desktop .expressPopupMatch-odd__label{font-size:19px;margin-right:15px}.expressPopupMatch-odd__value{padding:3px 10px;background-color:#ffbc00;border-radius:2px;font-size:13px;color:#333;margin-top:3px}.expressPopup_desktop .expressPopupMatch-odd__value{font-size:19px;padding:3px 20px;margin-top:initial}.expressPopupMatch-team{display:flex;flex-direction:column;align-items:center}.expressPopup_desktop .expressPopupMatch-team{display:none}.expressPopupMatch-team__logo{width:34px;height:34px;background-color:#eee}.expressPopupMatch-team__name{font-size:11px;text-transform:uppercase}\n";
2115
- const driver$5 = renderDriver({
2116
- html: html$5,
2117
- styles: [css$5],
2118
- plugins: [patchStylesPlugin, patchRulesPlugin, googleFontsPlugin, statePlugin]
2119
- });
2120
- const chunks$2 = {
2121
- match: driver$5
2122
- };
2123
- const driver$4 = renderDriver({
2124
- html: html$6,
2125
- styles: [css$6],
2126
- chunks: chunks$2,
2127
- plugins: [
2128
- script$5,
2129
- googleFontsPlugin,
2130
- patchStylesPlugin,
2131
- injectNode,
2132
- patchRulesPlugin,
2133
- containerWidthPlugin("root"),
2134
- deviceClassNames({
2135
- desktop: "expressPopup_desktop",
2136
- laptop: "expressPopup_laptop",
2137
- tablet: "expressPopup_tablet",
2138
- mobile: "expressPopup_mobile"
2139
- }),
2140
- statePlugin
2141
- ]
2142
- });
2143
- var html$4 = '<div class="complexPopup complexPopup_desktop" data-layer="root">\n <div class="complexPopup__content">\n <div class="complexPopup__title" data-layer="title">Complex popup title</div>\n <div class="complexPopup__wrapper" data-layer="cards" data-hidden></div>\n </div>\n</div>\n';
2144
- var css$4 = ".complexPopup{max-width:280px;width:100%;overflow:hidden;border-radius:10px;background-color:#fff}.complexPopup_desktop{max-width:1000px}.complexPopup__content{padding:15px 10px;display:flex;flex-direction:column;justify-content:center;height:100%}.complexPopup_desktop .complexPopup__content{padding:30px 20px}.complexPopup__title{text-transform:uppercase;margin-bottom:20px;font-weight:700;font-size:11px;font-style:normal;color:#333;text-align:center}.complexPopup_desktop .complexPopup__title{margin-bottom:70px;font-size:26px}.complexPopup__wrapper{display:flex;flex-direction:column;justify-content:center;gap:15px}.complexPopup_desktop .complexPopup__wrapper{flex-direction:initial;gap:25px}\n";
2145
- var script$4 = (emitter) => {
2146
- };
2147
- var html$3 = '<div class="complexPopup-card" data-layer="root">\n <div class="complexPopup-card__header" data-layer="header">\n <div class="complexPopup-card__logo" data-layer="logo" data-hidden></div>\n </div>\n <div class="complexPopup-card__container">\n <div class="complexPopup-card__body">\n <div class="complexPopup-card__logo" data-layer="logo" data-hidden></div>\n <div class="complexPopup-card__text" data-layer="text">Custom bonus text with <span>Accent color</span></div>\n </div>\n <div>\n <div class="complexPopup-card__button" data-layer="button">BONUS BUTTON</div>\n <div class="complexPopup-card__legal" data-layer="legal">18+ Legal info text</div>\n </div>\n </div>\n</div>\n';
2148
- var css$3 = ".complexPopup-card{text-align:center;background-color:#f7f7f7;overflow:hidden;border-radius:10px;max-width:300px}.complexPopup_desktop .complexPopup-card{height:300px}.complexPopup-card__header{display:none;background-color:#eee;height:49px;align-items:center;justify-content:center}.complexPopup_desktop .complexPopup-card__header{display:flex}.complexPopup-card__logo{width:60px;background-color:#dbdbdb;height:40px}.complexPopup-card__container{display:flex;flex-direction:column;padding:10px}.complexPopup_desktop .complexPopup-card__container{padding:0 16px 12px;justify-content:space-between;height:calc(100% - 50px)}.complexPopup-card__body{padding:11px 10px 9px;display:flex;align-items:center;margin-bottom:12px}.complexPopup_desktop .complexPopup-card__body{margin:auto}.complexPopup-card__body .complexPopup-card__logo{display:block;margin-right:12px}.complexPopup_desktop .complexPopup-card__body .complexPopup-card__logo{display:none}.complexPopup-card__text{flex:1;display:block;justify-content:center;align-items:center;white-space:pre-wrap;color:#333;text-align:center;font-size:16px;--accent-size: 16px;--accent-color: #e23333}.complexPopup-card__text span{color:var(--accent-color);font-size:var(--accent-size)}.complexPopup_desktop .complexPopup-card__text{font-size:22px;--accent-size: 22px}.complexPopup-card__button{display:inline-flex;align-items:center;justify-content:center;padding:0 15px;height:30px;margin-bottom:10px;font-size:12px;color:#333;background-color:#eee;border-radius:8px;width:100%}.complexPopup_desktop .complexPopup-card__button{height:40px;margin-bottom:12px;width:initial;font-size:16px}.complexPopup-card__legal{overflow-y:auto;padding:0 4px;height:15px;font-size:9px;color:#333}.complexPopup_desktop .complexPopup-card__legal{height:20px}.complexPopup-card__legal::-webkit-scrollbar{width:4px;background:#fff;border-radius:5px}.complexPopup-card__legal::-webkit-scrollbar-track{border-radius:5px}.complexPopup-card__legal::-webkit-scrollbar-thumb{background:#fff;border-radius:5px}\n";
2149
- var script$3 = (emitter) => {
2150
- let currentDevice = "desktop";
2151
- emitter.on("renderNode", ({ rule }) => {
2152
- if ("$device" in rule && rule.$device !== currentDevice && rule.$device) {
2153
- currentDevice = rule.$device;
2154
- }
2155
- });
2156
- emitter.on("renderNode", ({ rule, layer }) => {
2157
- if (layer.layer === "root" && isEmptyValue(rule.$skip)) {
2158
- emitter.emit("runRender", {
2159
- root: {
2160
- height: currentDevice === "desktop" ? rule.$height : "initial",
2161
- $skip: true
2162
- }
2163
- });
2164
- }
2165
- });
2166
- };
2167
- const driver$3 = renderDriver({
2168
- html: html$3,
2169
- styles: [css$3],
2170
- plugins: [script$3, googleFontsPlugin, patchStylesPlugin, patchRulesPlugin, statePlugin]
2171
- });
2172
- const chunks$1 = {
2173
- bonus: driver$3
2174
- };
2175
- const driver$2 = renderDriver({
2176
- html: html$4,
2177
- styles: [css$4],
2178
- chunks: chunks$1,
2179
- plugins: [
2180
- script$4,
2181
- googleFontsPlugin,
2182
- patchStylesPlugin,
2183
- injectNode,
2184
- patchRulesPlugin,
2185
- containerWidthPlugin("root"),
2186
- deviceClassNames({
2187
- desktop: "complexPopup_desktop",
2188
- laptop: "complexPopup_laptop",
2189
- tablet: "complexPopup_tablet",
2190
- mobile: "complexPopup_mobile"
2191
- }),
2192
- statePlugin
2193
- ]
2194
- });
2195
- var html$2 = '<div class="complexGift" data-layer="root" data-hidden>\n <div class="complexGift-icon" data-layer="icon">\n <div class="complexGift-icon__target" data-layer="iconTarget" data-hidden>\n <svg viewBox="0 0 16 16">\n <path\n fill="currentColor"\n fill-rule="evenodd"\n d="M2.13 8H7v7.31H3.22a1.09 1.09 0 01-1.09-1.09zM9 15.34h3.81a1.09 1.09 0 001.09-1.09V8H9zm5.8-9.94v1.19a.48.48 0 01-.48.48H1.71a.48.48 0 01-.48-.48V5.4c0-.596.484-1.08 1.08-1.08H5a2.48 2.48 0 01-1.47-1.65 1.62 1.62 0 01.26-1.4 1.57 1.57 0 011-.58c.11-.01.22-.01.33 0a2.5 2.5 0 012 1A9 9 0 018 3.22a10.38 10.38 0 01.91-1.54 2.49 2.49 0 011.93-1h.36c.369.065.702.26.94.55.31.407.414.936.28 1.43a2.48 2.48 0 01-1.45 1.64h2.77a1.08 1.08 0 011.03 1.1zM8.66 4a9.81 9.81 0 001.9-.55 1.52 1.52 0 00.88-1 .68.68 0 00-.1-.59.6.6 0 00-.34-.22.58.58 0 00-.18 0 1.52 1.52 0 00-1.17.63A9.06 9.06 0 008.66 4zm-3.32-.58A9.62 9.62 0 007.25 4a8.59 8.59 0 00-1-1.72 1.51 1.51 0 00-1.18-.63h-.13a.66.66 0 00-.39.22.66.66 0 00-.09.57c.13.443.453.804.88.98z"\n ></path>\n </svg>\n </div>\n </div>\n <div class="complexGift-body" data-layer="body" data-hidden>\n <div class="complexGift-body__arrow" data-layer="arrow" data-hidden></div>\n <div class="complexGift-body__container" data-layer="container">\n <div class="complexGift-body__close" data-layer="close">\n <svg\n xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink"\n width="20"\n height="20"\n viewBox="0 0 24 24"\n >\n <path\n d="M17.659 4.929a1 1 0 1 1 1.414 1.414L13.416 12l5.657 5.657a1 1 0 0 1-1.415 1.414l-5.656-5.657-5.657 5.657a1 1 0 0 1-1.414-1.414L10.587 12 4.931 6.343A1 1 0 1 1 6.345 4.93l5.657 5.657 5.656-5.657Z"\n fill="currentColor"\n ></path>\n </svg>\n </div>\n <div class="complexGift-body__promotion" data-layer="promotion">\u0420\u0435\u043A\u043B\u0430\u043C\u0430, 18+</div>\n <div class="complexGift-head">\n <div class="complexGift-head__icon" data-layer="headerIcon" data-hidden>\n <svg viewBox="0 0 16 16">\n <path\n fill="currentColor"\n fill-rule="evenodd"\n d="M2.13 8H7v7.31H3.22a1.09 1.09 0 01-1.09-1.09zM9 15.34h3.81a1.09 1.09 0 001.09-1.09V8H9zm5.8-9.94v1.19a.48.48 0 01-.48.48H1.71a.48.48 0 01-.48-.48V5.4c0-.596.484-1.08 1.08-1.08H5a2.48 2.48 0 01-1.47-1.65 1.62 1.62 0 01.26-1.4 1.57 1.57 0 011-.58c.11-.01.22-.01.33 0a2.5 2.5 0 012 1A9 9 0 018 3.22a10.38 10.38 0 01.91-1.54 2.49 2.49 0 011.93-1h.36c.369.065.702.26.94.55.31.407.414.936.28 1.43a2.48 2.48 0 01-1.45 1.64h2.77a1.08 1.08 0 011.03 1.1zM8.66 4a9.81 9.81 0 001.9-.55 1.52 1.52 0 00.88-1 .68.68 0 00-.1-.59.6.6 0 00-.34-.22.58.58 0 00-.18 0 1.52 1.52 0 00-1.17.63A9.06 9.06 0 008.66 4zm-3.32-.58A9.62 9.62 0 007.25 4a8.59 8.59 0 00-1-1.72 1.51 1.51 0 00-1.18-.63h-.13a.66.66 0 00-.39.22.66.66 0 00-.09.57c.13.443.453.804.88.98z"\n ></path>\n </svg>\n </div>\n <div class="complexGift-head__title" data-layer="title">Bonus popolari</div>\n </div>\n\n <div class="complexGift-body__inner" data-layer="cards" data-hidden></div>\n </div>\n </div>\n</div>\n';
2196
- var css$2 = ".complexGift{position:relative}.complexGift-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background-color:#333;color:#fff;border-radius:50%;cursor:pointer}.complexGift-icon__target{width:17px;height:20px}.complexGift-body{position:absolute;left:-30px;top:50px;width:360px;display:none}.complexGift-body_open{animation:complexGift_in .3s;display:block}@keyframes complexGift_in{0%{opacity:0}to{opacity:1}}.complexGift-body__arrow{position:absolute;transform:rotate(45deg);height:15px;width:15px;top:-7px;left:38px;background-color:#333}.complexGift-body__container{background-color:#333;border-radius:4px}.complexGift-body__promotion{position:absolute;top:12px;right:35px;color:#fff;font-size:8px}.complexGift-body__close{position:absolute;top:9px;right:9px;color:#fff;display:flex;align-items:center;cursor:pointer}.complexGift-body__close svg{width:15px;height:15px}.complexGift-head{padding:12px 20px;display:flex;align-items:center;color:#fff}.complexGift-head__icon{width:20px;height:20px;margin-right:10px}.complexGift-head__title{font-size:16px;line-height:1.2;font-weight:700;width:100%}.complexGift-body__inner{border-radius:6px;overflow:hidden;padding:0 6px 6px}@keyframes fadein{0%,to{opacity:0}50%{opacity:1}}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes wiggle{0%,7%{transform:rotate(0)}15%{transform:rotate(-15deg)}20%{transform:rotate(10deg)}25%{transform:rotate(-10deg)}30%{transform:rotate(6deg)}35%{transform:rotate(-4deg)}40%,to{transform:rotate(0)}}\n";
2197
- const animationsMap = {
2198
- fade: "fadein 2s linear infinite",
2199
- pulse: "pulse .3s linear 0s infinite alternate forwards",
2200
- wiggle: "wiggle 2s linear infinite",
2201
- gradient: "gradient 3s ease infinite"
2202
- };
2203
- var script$2 = (emitter) => {
2204
- emitter.on("renderNode", ({ rule, layer }) => {
2205
- if ("$animations" in rule) {
2206
- const allAnimations = rule.$animations.map((animation) => animationsMap[animation]).join(", ");
2207
- emitter.emit("runRender", {
2208
- icon: {
2209
- animation: allAnimations
2210
- }
2211
- });
2212
- }
2213
- if (layer.layer === "icon" && rule.hasIcon) {
2214
- emitter.emit("runRender", {
2215
- iconTarget: {
2216
- display: rule.hasIcon ? "flex" : "none"
2217
- }
2218
- });
2219
- }
2220
- if (layer.layer === "title") {
2221
- emitter.emit("runRender", {
2222
- headerIcon: {
2223
- display: rule.hasIcon ? "block" : "none"
2224
- }
2225
- });
2226
- }
2227
- if (layer.layer === "container") {
2228
- emitter.emit("runRender", {
2229
- body: {
2230
- $delay: rule.delay,
2231
- left: rule.left
2232
- },
2233
- arrow: {
2234
- left: `${((rule == null ? void 0 : rule.left) || 0) * -1 + 8}`,
2235
- backgroundColor: rule.backgroundColor,
2236
- borderTopWidth: rule.borderWidth,
2237
- borderTopColor: rule.borderColor,
2238
- borderTopStyle: "solid",
2239
- borderLeftWidth: rule.borderWidth,
2240
- borderLeftColor: rule.borderColor,
2241
- borderLeftStyle: "solid"
2242
- }
2243
- });
2244
- }
2245
- });
2246
- };
2247
- var html$1 = '<div class="complexGiftCard" data-layer="root">\n <div class="complexGiftCard-body">\n <div class="complexGiftCard__logo" data-layer="logo"></div>\n <div class="complexGiftCard__line" data-layer="line"></div>\n <div class="complexGiftCard__text" data-layer="text">\u0414\u043E <span>10 000\u20BD</span> \u043D\u0430 \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u0443\u044E \u0441\u0442\u0430\u0432\u043A\u0443</div>\n <div class="complexGiftCard-button" data-layer="button">\n <div class="complexGiftCard__logo" data-layer="logo" data-hidden></div>\n <div class="complexGiftCard-button__text" data-layer="buttonText" data-hidden>Button</div>\n </div>\n </div>\n <div class="complexGiftCard-legal" data-layer="legal">\n 18+ | \u0420\u0435\u043A\u043B\u0430\u043C\u0430 ligastavok.ru | \u0441 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0435\u0439 \u043E\u0431 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0442\u043E\u0440\u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0440\u0438\u0441\u043A\u0435 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u043A\u0446\u0438\u0439 \u043E \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0445\n \u0438\u0445 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F, \u043E \u043F\u0440\u0438\u0437\u043E\u0432\u043E\u043C \u0444\u043E\u043D\u0434\u0435 \u0442\u0430\u043A\u0438\u0445 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430\u043A\u0446\u0438\u0439 \u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439, \u043E \u0441\u0440\u043E\u043A\u0430\u0445, \u043C\u0435\u0441\u0442\u0435 \u0438 \u043F\u043E\u0440\u044F\u0434\u043A\u0435\n \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439 \u043C\u043E\u0436\u043D\u043E \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 ligastavok.ru. \u0421\u0440\u043E\u043A \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0430\u043A\u0446\u0438\u0438 \u0441 01.01.2023 \u0434\u043E\n 31.05.2023 (GMT+3) \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E.\n </div>\n</div>\n';
2248
- var css$1 = ".complexGiftCard{padding:6px;background-color:#fff;border-bottom:1px solid #D8DBE6}.complexGiftCard:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.complexGiftCard:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-bottom:none}.complexGiftCard-body{display:flex;align-items:center;position:relative;padding-left:6px}.complexGiftCard__line{position:absolute;left:-6px;top:0;bottom:0;width:2px;background-color:#ffb800;border-radius:0 2px 2px 0}.complexGiftCard__text{font-size:12px;line-height:1.2;color:#333;font-weight:700;padding-right:10px;--accent-size: 12px;--accent-color: #ffbc00}.complexGiftCard__text span{color:var(--accent-color);font-size:var(--accent-size)}.complexGiftCard-button{margin-left:auto;padding:2px;background-color:#ffb800;border-radius:20px;display:flex;align-items:center;font-size:10px;text-transform:uppercase;line-height:2;font-weight:700}.complexGiftCard-button .complexGiftCard__logo{width:30px;height:30px;margin-right:initial;display:block}.complexGiftCard-button__text{padding:0 7px}.complexGiftCard__logo{width:25px;height:25px;border-radius:30px;background-color:#eee;margin-right:10px;display:none}.complexGiftCard-legal{background-color:#eee;padding:2px 5px;height:14px;overflow:auto;margin-top:6px;border-radius:4px;color:#7e8392;font-size:8px}.complexGiftCard_variant2 .complexGiftCard__logo{display:block}.complexGiftCard_variant2 .complexGiftCard-button .complexGiftCard__logo{display:none}\n";
2249
- var script$1 = (emitter) => {
2250
- emitter.on("renderNode", ({ rule, layer }) => {
2251
- if ("$variant" in rule && typeof rule.$variant === "string") {
2252
- emitter.emit("runRender", {
2253
- root: {
2254
- $classNames: ["complexGiftCard", { [`complexGiftCard_${rule.$variant}`]: true }]
2255
- }
2256
- });
2257
- }
2258
- if (layer.layer === "button") {
2259
- emitter.emit("runRender", {
2260
- buttonText: {
2261
- innerHTML: rule.$innerHTML
2262
- }
2263
- });
2264
- }
2265
- if (layer.layer === "text" && !("$skip" in rule))
2266
- ;
2267
- });
2268
- };
2269
- const driver$1 = renderDriver({
2270
- html: html$1,
2271
- styles: [css$1],
2272
- plugins: [script$1, patchStylesPlugin, patchRulesPlugin, googleFontsPlugin, classNamesPlugin, statePlugin]
2273
- });
2274
- var giftOpenPlugin = (options) => (emitter) => {
2275
- let openDelay = options.delay;
2276
- let openTimeout;
2277
- const isOpen = (containerNode) => containerNode.classList.contains(options.openClassName);
2278
- const openTimer = (containerNode) => {
2279
- openTimeout = setTimeout(() => {
2280
- if (!isOpen(containerNode)) {
2281
- toggleClassName(containerNode, options.openClassName, true);
2282
- }
2283
- }, openDelay);
2284
- };
2285
- const onClickIcon = (node) => {
2286
- toggleClassName(node, options.openClassName);
2287
- };
2288
- const close = (bodyNode) => {
2289
- if (openTimeout) {
2290
- clearTimeout(openTimeout);
2291
- }
2292
- toggleClassName(bodyNode, options.openClassName, false);
2293
- };
2294
- emitter.on("mount", ({ layers }) => {
2295
- const iconLayer = layers.find((layer) => layer.layer === options.toggleTarget);
2296
- const containerLayer = layers.find((layer) => layer.layer === options.bodyTarget);
2297
- const closeLayer = layers.find((layer) => layer.layer === options.closeTarget);
2298
- if (iconLayer && containerLayer) {
2299
- iconLayer.node.addEventListener("click", () => onClickIcon(containerLayer.node));
2300
- }
2301
- if (containerLayer) {
2302
- openTimer(containerLayer.node);
2303
- }
2304
- if (closeLayer && containerLayer) {
2305
- closeLayer.node.addEventListener("click", () => close(containerLayer.node));
2306
- }
2307
- return () => {
2308
- iconLayer == null ? void 0 : iconLayer.node.removeEventListener("click", () => onClickIcon(containerLayer == null ? void 0 : containerLayer.node));
2309
- if (openTimeout) {
2310
- clearTimeout(openTimeout);
2311
- }
2312
- };
2313
- });
2314
- emitter.on("renderNode", ({ layer, rule }) => {
2315
- if (layer.layer === options.bodyTarget && "$delay" in rule) {
2316
- if (openDelay === rule.$delay)
2317
- return;
2318
- if (openTimeout) {
2319
- clearTimeout(openTimeout);
2320
- }
2321
- toggleClassName(layer.node, options.openClassName, false);
2322
- openDelay = rule.$delay;
2323
- openTimer(layer.node);
2324
- }
2325
- });
2326
- };
2327
- const chunks = {
2328
- bonus: driver$1
2329
- };
2330
- const driver = renderDriver({
2331
- html: html$2,
2332
- styles: [css$2],
2333
- chunks,
2334
- plugins: [
2335
- statePlugin,
2336
- script$2,
2337
- googleFontsPlugin,
2338
- injectNode,
2339
- patchRulesPlugin,
2340
- containerWidthPlugin("root"),
2341
- classNamesPlugin,
2342
- giftOpenPlugin({
2343
- openClassName: "complexGift-body_open",
2344
- toggleTarget: "icon",
2345
- bodyTarget: "body",
2346
- closeTarget: "close",
2347
- delay: 1e3
2348
- }),
2349
- deviceClassNames({
2350
- desktop: "complexGift_desktop",
2351
- laptop: "complexGift_laptop",
2352
- tablet: "complexGift_tablet",
2353
- mobile: "complexGift_mobile"
2354
- })
2355
- ]
2356
- });
2357
- var html = '<div class="bonusCard" data-layer="root">\n <div class="bonusCard-background" data-layer="background" data-hidden></div>\n <div class="bonusCard__body">\n <div>\n <div class="bonusCard-row" data-layer="rowFirst">10 000 \u0420\u0423\u0411\u041B\u0415\u0419</div>\n <div class="bonusCard-row" data-layer="rowSecond">\u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u0430\u044F \u0441\u0442\u0430\u0432\u043A\u0430</div>\n <div data-layer="bookmaker" data-hidden class="bonusCard__bookmaker">winline</div>\n </div>\n <div class="bonusCard__button" data-layer="button">\u0417\u0410\u0411\u0420\u0410\u0422\u042C</div>\n </div>\n <div data-layer="legalInfo" class="bonusCard-legal">\n <span data-layer="legalInfoWrapper" data-hidden class="bonusCard-legal__text bonusCard-legal__text_closed">\n <span data-layer="legalInfoText">\n 18+ | \u0420\u0435\u043A\u043B\u0430\u043C\u0430 winline.ru | \u0421 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0435\u0439 \u043E\u0431 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0442\u043E\u0440\u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0440\u0438\u0441\u043A\u0435 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u043A\u0446\u0438\u0439 \u043E\n \u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0445 \u0438\u0445 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F, \u043E \u043F\u0440\u0438\u0437\u043E\u0432\u043E\u043C \u0444\u043E\u043D\u0434\u0435 \u0442\u0430\u043A\u0438\u0445 \u0438\u0433\u0440 \u0438 \u043F\u0430\u0440\u0438, \u0430\u043A\u0446\u0438\u0439 \u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439, \u043E \u0441\u0440\u043E\u043A\u0430\u0445,\n \u043C\u0435\u0441\u0442\u0435 \u0438 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u0437\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u0438\u0433\u0440\u044B\u0448\u0435\u0439 \u043C\u043E\u0436\u043D\u043E \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 winline.ru. \u0421\u0440\u043E\u043A \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0430\u043A\u0446\u0438\u0438 \u0441\n 13.12.2021 \u043F\u043E 31.12.2022 (GMT+3) \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E.\n </span>\n <span class="bonusCard-legal__button bonusCard-legal__button_open" data-layer="legalInfoButton">\u0415\u0449\u0435</span>\n </span>\n </div>\n</div>\n';
2358
- var css = ".bonusCard{min-height:100px;width:350px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:0 10px 5px;position:relative;border-style:solid}.bonusCard-background{position:absolute;top:0;bottom:0;right:0;left:0;background-color:#fff}.bonusCard__body{display:flex;padding:5px 0;width:100%;justify-content:space-between;align-items:center;box-sizing:content-box;position:relative}.bonusCard__bookmaker{margin-right:10px;color:#7e8392;font-size:12px;line-height:16px}.bonusCard__button{border-radius:10px;font-size:12px;line-height:16px;font-weight:700;text-transform:uppercase;text-align:center;cursor:pointer;padding:7px 15px;background:#76a963ff;color:#fff;border-style:solid}.bonusCard-row{color:#090a0b}.bonusCard-legal{position:relative;display:flex;width:calc(100% + 12px);min-height:18px;left:-6px;right:4px;z-index:2;padding:3px 5px;color:#7e8392;background-color:#fafafa;border-radius:10px;font-size:12px;line-height:16px}.bonusCard-legal__text{overflow:hidden;display:inline-block;margin:0}.bonusCard-legal__text_closed{margin:0;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;padding-right:25px}.bonusCard-legal__text_open{display:block;text-align:left}.bonusCard-legal__button{cursor:pointer;text-decoration:underline}.bonusCard-legal__button_open{position:absolute;right:4px;bottom:4px}\n";
2359
- const BUTTON_OPEN_CLASSNAME = "bonusCard-legal__button_open";
2360
- const OPEN_CLASSNAME = "bonusCard-legal__text_open";
2361
- const CLOSE_CLASSNAME = "bonusCard-legal__text_closed";
2362
- var script = (emitter) => {
2363
- let openButtonText = "";
2364
- let closeButtonText = "";
2365
- let isOpen = false;
2366
- const toggleIsOpen = (wrapperNode, buttonNode) => {
2367
- toggleClassName(wrapperNode, OPEN_CLASSNAME);
2368
- toggleClassName(wrapperNode, CLOSE_CLASSNAME);
2369
- toggleClassName(buttonNode, BUTTON_OPEN_CLASSNAME);
2370
- isOpen = wrapperNode.classList.contains(OPEN_CLASSNAME);
2371
- updateButtonText(buttonNode);
2372
- };
2373
- const updateButtonText = (node) => {
2374
- node.innerText = isOpen ? closeButtonText : openButtonText;
2375
- };
2376
- const patchRuleToNode = (layer, { innerHTML, textOpen, textClose }) => {
2377
- const node = layer.node;
2378
- const layerRef = layer.layer;
2379
- if (layerRef === "legalInfoButton") {
2380
- openButtonText = textOpen || "";
2381
- closeButtonText = textClose || "";
2382
- updateButtonText(node);
2383
- }
2384
- if (innerHTML) {
2385
- node.innerHTML = innerHTML;
2386
- }
2387
- };
2388
- emitter.on("mount", ({ layers }) => {
2389
- const legalInfoButton = layers.find(({ layer }) => layer === "legalInfoButton");
2390
- const legalInfoWrapper = layers.find(({ layer }) => layer === "legalInfoWrapper");
2391
- if (legalInfoButton) {
2392
- legalInfoButton.node.addEventListener("click", () => toggleIsOpen(legalInfoWrapper.node, legalInfoButton.node));
2393
- }
2394
- return () => {
2395
- if (legalInfoButton) {
2396
- legalInfoButton.node.removeEventListener("click", () => toggleIsOpen(legalInfoWrapper.node, legalInfoButton.node));
2397
- }
2398
- };
2399
- });
2400
- emitter.on("renderNode", ({ rule, layer }) => {
2401
- patchRuleToNode(layer, rule);
2402
- });
2403
- };
2404
- var index = renderDriver({
2405
- html,
2406
- styles: [css],
2407
- plugins: [script, googleFontsPlugin, patchStylesPlugin]
2408
- });
2409
- var highlightPlugin = (emitter) => {
2410
- emitter.on("renderNode", ({ layer, rule }) => {
2411
- if ("$highlight" in rule) {
2412
- const borderNode = document.createElement("div");
2413
- borderNode.style.setProperty("position", "absolute");
2414
- borderNode.style.setProperty("inset", "-15px");
2415
- borderNode.style.setProperty("pointer-events", "none");
2416
- borderNode.style.setProperty("border", `3px solid ${rule.borderColor || "#000"}`);
2417
- borderNode.style.setProperty("border-radius", rule.borderRadius || "10px");
2418
- layer.node.style.setProperty("overflow", "visible");
2419
- if (rule.$highlight) {
2420
- layer.node.appendChild(borderNode);
2421
- }
2422
- }
2423
- });
2424
- };
2425
- const openKey = "$legalOpenText";
2426
- const closeKey = "$legalCloseText";
2427
- var legalInfoPlugin = (options) => (emitter) => {
2428
- let openButtonText = "";
2429
- let closeButtonText = "";
2430
- let isOpen = false;
2431
- const toggleIsOpen = (wrapperNode) => {
2432
- toggleClassName(wrapperNode, options.openClassName);
2433
- isOpen = wrapperNode.classList.contains(options.openClassName);
2434
- updateButton();
2435
- };
2436
- const updateButton = () => {
2437
- emitter.emit("runRender", {
2438
- [options.buttonLayerName]: {
2439
- innerText: isOpen ? openButtonText : closeButtonText
2440
- }
2441
- });
2442
- };
2443
- emitter.on("mount", ({ layers }) => {
2444
- const legalInfoWrapper = layers.find(({ layer }) => layer === options.wrapperLayerName);
2445
- const legalInfoButton = layers.find(({ layer }) => layer === options.buttonLayerName);
2446
- if (legalInfoWrapper && legalInfoButton) {
2447
- legalInfoButton.node.addEventListener("click", () => toggleIsOpen(legalInfoWrapper.node));
2448
- }
2449
- return () => {
2450
- if (legalInfoButton && legalInfoWrapper) {
2451
- legalInfoButton.node.removeEventListener("click", () => toggleIsOpen(legalInfoWrapper.node));
2452
- }
2453
- };
2454
- });
2455
- emitter.on("renderNode", ({ layer, rule }) => {
2456
- if (layer.layer === options.buttonLayerName && (openKey in rule || closeKey in rule)) {
2457
- openButtonText = rule[openKey] || "";
2458
- closeButtonText = rule[closeKey] || "";
2459
- updateButton();
2460
- }
2461
- });
2462
- };
2463
- export { index as BonusCard, driver as ComplexGift, driver$2 as ComplexPopup, driver$4 as ExpressPopup, driver$6 as SimplePopup, driver$7 as WideCard, classNamesPlugin, containerWidthPlugin, deviceClassNames as deviceClassNamesPlugin, giftOpenPlugin, googleFontsPlugin, highlightPlugin, injectNode as injectNodePlugin, legalInfoPlugin, patchRulesPlugin, patchStylesPlugin, statePlugin };