/******/ (function() { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./packages/packages/core/editor-templates/src/init.ts": /*!*************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/init.ts ***! \*************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ init: function() { return /* binding */ init; } /* harmony export */ }); /* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor"); /* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository"); /* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters"); /* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/store */ "@elementor/store"); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _load_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./load-templates */ "./packages/packages/core/editor-templates/src/load-templates.ts"); /* harmony import */ var _render_template_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render-template-styles */ "./packages/packages/core/editor-templates/src/render-template-styles.tsx"); /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts"); /* harmony import */ var _templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./templates-styles-provider */ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils */ "./packages/packages/core/editor-templates/src/utils.ts"); function init() { if (!(0,_utils__WEBPACK_IMPORTED_MODULE_8__.isHandlingTemplateStyles)()) { return; } (0,_elementor_store__WEBPACK_IMPORTED_MODULE_3__.__registerSlice)(_store__WEBPACK_IMPORTED_MODULE_6__.slice); _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.stylesRepository.register(_templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__.templatesStylesProvider); (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__.registerDataHook)('after', 'editor/documents/attach-preview', async () => { (0,_load_templates__WEBPACK_IMPORTED_MODULE_4__.unloadTemplates)(); (0,_templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__.clearTemplatesStyles)(); await (0,_load_templates__WEBPACK_IMPORTED_MODULE_4__.loadTemplates)(); }); (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({ id: 'templates-styles', component: _render_template_styles__WEBPACK_IMPORTED_MODULE_5__.RenderTemplateStyles }); } /***/ }), /***/ "./packages/packages/core/editor-templates/src/load-templates.ts": /*!***********************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/load-templates.ts ***! \***********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ loadTemplates: function() { return /* binding */ loadTemplates; }, /* harmony export */ unloadTemplates: function() { return /* binding */ unloadTemplates; } /* harmony export */ }); /* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents"); /* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters"); /* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/store */ "@elementor/store"); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts"); const TEMPLATE_ATTRIBUTE = 'data-elementor-post-type="elementor_library"'; const DOCUMENT_WRAPPER_ATTR = 'data-elementor-id'; async function loadTemplates() { const iframeDocument = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.getCanvasIframeDocument)(); if (!iframeDocument) { return; } const currentDocumentId = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__.getV1CurrentDocument)()?.id; const templateIds = getTemplateIds(iframeDocument, currentDocumentId); if (!templateIds.length) { return; } const documents = await fetchDocuments(templateIds); (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.setTemplates(documents)); } function unloadTemplates() { (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.clearTemplates()); } function getTemplateIds(iframeDocument, currentDocumentId) { const elements = [...iframeDocument.body.querySelectorAll(`[${TEMPLATE_ATTRIBUTE}]`)]; const ids = elements.map(el => Number(el.getAttribute(DOCUMENT_WRAPPER_ATTR))).filter(id => !isNaN(id) && id !== currentDocumentId); return [...new Set(ids)]; } async function fetchDocuments(ids) { const results = await Promise.all(ids.map(async id => { try { // using ajax.load instead of the document-manager as the latter causes an issue when trying to edit a template return await _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.ajax.load({ data: { id }, action: 'get_document_config', unique_id: `template-${id}` }); } catch { return null; } })); return results.filter(doc => doc !== null); } /***/ }), /***/ "./packages/packages/core/editor-templates/src/render-template-styles.tsx": /*!********************************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/render-template-styles.tsx ***! \********************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ RenderTemplateStyles: function() { return /* binding */ RenderTemplateStyles; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _templates_styles_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates-styles-provider */ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts"); /* harmony import */ var _use_loaded_templates__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-loaded-templates */ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts"); const RenderTemplateStyles = () => { const templates = (0,_use_loaded_templates__WEBPACK_IMPORTED_MODULE_2__.useLoadedTemplates)(); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { const styles = templates.flatMap(extractStylesFromDocument); (0,_templates_styles_provider__WEBPACK_IMPORTED_MODULE_1__.addTemplateStyles)(styles); }, [templates]); return null; }; function extractStylesFromDocument(elements) { if (!elements.length) { return []; } return elements.flatMap(extractStylesFromElement); } function extractStylesFromElement(element) { return [...Object.values(element.styles ?? {}), ...(element.elements ?? []).flatMap(extractStylesFromElement)]; } /***/ }), /***/ "./packages/packages/core/editor-templates/src/store.ts": /*!**************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/store.ts ***! \**************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ selectTemplates: function() { return /* binding */ selectTemplates; }, /* harmony export */ slice: function() { return /* binding */ slice; } /* harmony export */ }); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store"); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__); const initialState = { entities: {} }; const slice = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__createSlice)({ name: 'templates', initialState, reducers: { setTemplates(state, action) { action.payload.forEach(doc => { state.entities[doc.id] = doc.elements ?? []; }); }, clearTemplates(state) { state.entities = {}; } } }); const selectEntities = state => state.templates.entities; const selectTemplates = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__createSelector)([selectEntities], entities => Object.values(entities)); /***/ }), /***/ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts": /*!**********************************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/templates-styles-provider.ts ***! \**********************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ addTemplateStyles: function() { return /* binding */ addTemplateStyles; }, /* harmony export */ clearTemplatesStyles: function() { return /* binding */ clearTemplatesStyles; }, /* harmony export */ templatesStylesProvider: function() { return /* binding */ templatesStylesProvider; } /* harmony export */ }); /* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository"); /* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__); let styles = []; const listeners = new Set(); function addTemplateStyles(newStyles) { styles = [...styles, ...newStyles]; listeners.forEach(cb => cb()); } function clearTemplatesStyles() { styles = []; listeners.forEach(cb => cb()); } const templatesStylesProvider = (0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__.createStylesProvider)({ key: 'templates-styles', priority: 50, subscribe: cb => { listeners.add(cb); return () => { listeners.delete(cb); }; }, actions: { all: () => styles, get: id => styles.find(style => style.id === id) ?? null } }); /***/ }), /***/ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts": /*!*****************************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/use-loaded-templates.ts ***! \*****************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ useLoadedTemplates: function() { return /* binding */ useLoadedTemplates; } /* harmony export */ }); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store"); /* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts"); function useLoadedTemplates() { return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectTemplates); } /***/ }), /***/ "./packages/packages/core/editor-templates/src/utils.ts": /*!**************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/utils.ts ***! \**************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ isHandlingTemplateStyles: function() { return /* binding */ isHandlingTemplateStyles; } /* harmony export */ }); /* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils"); /* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__); const MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES = '4.1'; const isHandlingTemplateStyles = () => (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.isProActive)() && !(0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.isProAtLeast)(MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES); /***/ }), /***/ "@elementor/editor": /*!*****************************************!*\ !*** external ["elementorV2","editor"] ***! \*****************************************/ /***/ (function(module) { module.exports = window["elementorV2"]["editor"]; /***/ }), /***/ "@elementor/editor-documents": /*!**************************************************!*\ !*** external ["elementorV2","editorDocuments"] ***! \**************************************************/ /***/ (function(module) { module.exports = window["elementorV2"]["editorDocuments"]; /***/ }), /***/ "@elementor/editor-styles-repository": /*!*********************************************************!*\ !*** external ["elementorV2","editorStylesRepository"] ***! \*********************************************************/ /***/ (function(module) { module.exports = window["elementorV2"]["editorStylesRepository"]; /***/ }), /***/ "@elementor/editor-v1-adapters": /*!***************************************************!*\ !*** external ["elementorV2","editorV1Adapters"] ***! \***************************************************/ /***/ (function(module) { module.exports = window["elementorV2"]["editorV1Adapters"]; /***/ }), /***/ "@elementor/store": /*!****************************************!*\ !*** external ["elementorV2","store"] ***! \****************************************/ /***/ (function(module) { module.exports = window["elementorV2"]["store"]; /***/ }), /***/ "@elementor/utils": /*!****************************************!*\ !*** external ["elementorV2","utils"] ***! \****************************************/ /***/ (function(module) { module.exports = window["elementorV2"]["utils"]; /***/ }), /***/ "react": /*!**************************!*\ !*** external ["React"] ***! \**************************/ /***/ (function(module) { module.exports = window["React"]; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ !function() { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function() { return module['default']; } : /******/ function() { return module; }; /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ !function() { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = function(exports, definition) { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ !function() { /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } /******/ }(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ !function() { /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ }(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. !function() { /*!**************************************************************!*\ !*** ./packages/packages/core/editor-templates/src/index.ts ***! \**************************************************************/ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ init: function() { return /* reexport safe */ _init__WEBPACK_IMPORTED_MODULE_0__.init; }, /* harmony export */ isHandlingTemplateStyles: function() { return /* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_2__.isHandlingTemplateStyles; }, /* harmony export */ useLoadedTemplates: function() { return /* reexport safe */ _use_loaded_templates__WEBPACK_IMPORTED_MODULE_1__.useLoadedTemplates; } /* harmony export */ }); /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init */ "./packages/packages/core/editor-templates/src/init.ts"); /* harmony import */ var _use_loaded_templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-loaded-templates */ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./packages/packages/core/editor-templates/src/utils.ts"); }(); (window.elementorV2 = window.elementorV2 || {}).editorTemplates = __webpack_exports__; /******/ })() ; window.elementorV2.editorTemplates?.init?.(); //# sourceMappingURL=editor-templates.js.map/* dialog.css */ /* Dialog wrapper */ .elfinder .elfinder-dialog { /* */ } /* Dialog title */ .elfinder .elfinder-dialog .ui-dialog-titlebar { padding: 3px 0 3px 6px; height: 30px; box-sizing: border-box; } /* Close button */ .elfinder .elfinder-dialog .ui-dialog-titlebar-close { background: url('../images/close.png'); right: 0; border-radius: 0; margin-top: -15px; webkit-transition: background 0.3s; /* Safari */ transition: background-image 0.3s; height: 29px; width: 45px; } .elfinder .elfinder-dialog .ui-dialog-titlebar-close:hover { background: url('../images/close-hover.png'); } .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right { left: 1px; top: 12px; } /* Dialog content */ .elfinder .elfinder-dialog .ui-dialog-content { /* */ } /* Tabs */ /* Tabs wrapper */ .elfinder .elfinder-dialog .ui-tabs-nav { /* */ } /* Normal tab */ .elfinder .elfinder-dialog .ui-tabs-nav .ui-state-default { /* */ } /* Current tab */ .elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected { /* */ } /* Active tab */ .elfinder .elfinder-dialog .ui-tabs-nav li:active { /* */ } .elfinder .ui-state-active { background: #1979CA none repeat scroll 0 0; /*background: #009688 none repeat scroll 0 0; */ } /* Icons */ /* Dialog icon (e.g. for error messages) */ .elfinder .elfinder-dialog .elfinder-dialog-icon { /* */ } /* Error icon */ .elfinder .elfinder-dialog .elfinder-dialog-icon-error { /* */ } /* Confirmation icon */ .elfinder .elfinder-dialog .elfinder-dialog-icon-confirm { /* */ } /* Footer */ .elfinder .elfinder-dialog .ui-dialog-buttonpane { /* */ } /* Buttonset (wrapper) */ .elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { /* */ } /* Button */ .elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button { /* */ } /* Styling specific types of dialogs */ /* Error */ .elfinder .elfinder-dialog-error { /* */ } /* Confirm */ .elfinder .elfinder-dialog-confirm { /* */ } /* File editing */ .elfinder .elfinder-dialog .elfinder-file-edit { /* */ } /* File information */ /* Title */ .elfinder .elfinder-dialog .elfinder-info-title { /* */ } /* Table */ .elfinder .elfinder-dialog .elfinder-info-tb { /* */ } /* File upload (including dropbox) */ .elfinder .elfinder-dialog .elfinder-upload-dropbox, .elfinder .elfinder-dialog .elfinder-upload-dialog-or { /* */ } roobet Archives - https://sunlight168.shop/category/roobet/ Sat, 05 Sep 2026 08:20:07 +0000 th hourly 1 https://wordpress.org/?v=6.9.7 https://sunlight168.shop/wp-content/uploads/2026/04/cropped-logo-32x32.webp roobet Archives - https://sunlight168.shop/category/roobet/ 32 32 The Growing Trend of Esports Betting on Roobet: A Comprehensive Review https://sunlight168.shop/the-growing-trend-of-esports-betting-on-roobet-a-comprehensive-review/ Sat, 05 Sep 2026 08:20:07 +0000 https://sunlight168.shop/the-growing-trend-of-esports-betting-on-roobet-a-comprehensive-review/ The Growing Trend of […]

The post The Growing Trend of Esports Betting on Roobet: A Comprehensive Review appeared first on .

]]>

The Growing Trend of Esports Betting on Roobet: A Comprehensive Review

My name is James Harrington, and I’ve spent considerable time exploring the exciting world of online gambling. One of the standout platforms that have recently captured the attention of players is Roobet, especially with its expansive offerings in esports betting. Roobet is a unique online casino brand tailored for the modern gambler who wants a thrilling experience that transcends traditional gaming. Here, I’ll dive deep into what makes Roobet a prominent choice for esports betting enthusiasts and what you must know to enhance your gaming experience.

Understanding Roobet: An Overview

Launched in 2019, Roobet has quickly become a popular destination for online casino lovers, particularly among those who favor a contemporary gaming experience. This platform stands out with its sleek interface, a diverse selection of games, and robust options for esports betting. Ideal for both casual gamers and seasoned bettors, Roobet caters to a wide demographic. With entertaining live dealer games, classic casino staples, and an impressive esports section, Roobet has strategically positioned itself to maximize user engagement and excitement.

Registration and User Experience on Roobet

Creating an account on Roobet is a straightforward process designed with user convenience in mind. Here’s how to get started:

  1. Visit the Roobet website.
  2. Click on the “Sign Up” button located in the top right corner.
  3. Fill in your email address, create a strong password, and choose your username.
  4. Accept the terms and conditions and click “Register.”
  5. Verify your email address through the confirmation link sent to your inbox.

Once registered, the login process is equally simple, requiring just your username and password. Upon logging in, users are greeted by an eye-catching interface, allowing easy navigation through different sections such as games, live casino, and the esports betting segment. This user-friendly design enhances your experience, making it simple for both newcomers and seasoned players to find their way around roobet casino.

Bonuses and Promotions at Roobet

Roobet offers enticing bonuses and promotions that can enhance your gaming experience and increase your bankroll, especially beneficial for those looking to dive into esports betting. Upon registration, new players can claim a welcome bonus that boosts their initial deposit. Regular promotions, including weekly challenges and loyalty rewards, keep the excitement high. Here’s a breakdown of what you may encounter:

  • Welcome Bonus: Typically includes a match on your first deposit.
  • Daily Promotions: Offers for players who log in daily, including free spins for specific slots.
  • Loyalty Programs: Rewards for continuous play, enhancing customer retention.

As for promo codes, Roobet occasionally distributes specific codes tied to certain promotions, so it’s wise to keep an eye on their website or subscribe to their newsletter for updates. Overall, these bonuses can significantly influence your betting strategy as you explore the growing trend of esports betting on Roobet.

Game Selection: Embracing the Esports Betting Wave

One of the key features of Roobet is its massive range of games. From classic slots to innovative live dealer experiences, Roobet caters to all kinds of players. The platform has recently embraced the growing trend of esports betting on Roobet by offering a variety of competitive games that attract both bettors and players. Key offerings include:

  • Slots: A wide array of high-quality slots, including progressive jackpots and themed games.
  • Table Games: Classic options like blackjack, roulette, and poker with various betting limits.
  • Live Casino: Engaging live dealer games that mimic the atmosphere of a physical casino.
  • Esports Betting: An extensive sportsbook covering major esports events, including Dota 2, CS:GO, and League of Legends.

This diverse selection means that whether you’re in it for the thrill of high-stakes slots or the strategic depth of esports betting, Roobet indeed has something for everyone. With competitive odds and unique promotions for esports matches, the site showcases how the growing trend of esports betting on Roobet is shaping the future of online gambling.

Deposits, Withdrawals, and Player Verification

When it comes to managing your finances on Roobet, the platform supports various cryptocurrencies, including Bitcoin, Ethereum, and Litecoin, making transactions seamless and fast. The deposit process is straightforward, as users select their preferred cryptocurrency, specify the amount, and complete the transfer in just a few clicks. Withdrawals, likewise, are typically processed promptly, often within 24 hours, allowing you to access your winnings quickly.

Verification is crucial for ensuring a secure gaming environment. Roobet implements standard verification procedures to protect users, which typically involve confirming your identity and age. Being licensed and regulated, Roobet prioritizes player safety and remains compliant with necessary regulations. Here are some security features that Roobet employs:

  • End-to-end encryption to protect user data.
  • Two-factor authentication for enhanced account security.
  • Regular audits to ensure fair play and adherence to industry standards.

Safety and Licensing

Roobet operates under the jurisdiction of Curacao, holding a gaming license that ensures it meets regulatory standards necessary for lawful operation. This licensing means Roobet players can enjoy enhanced safety and fairness, as the license requires strict adherence to operational guidelines, responsible gaming practices, and transparency. Furthermore, you can rest assured that all player funds are kept in a secure environment, safeguarded by modern security measures. Roobet is committed to promoting a safe and responsible gaming experience while complying with industry best practices.

Conclusion

In summary, Roobet rises to the challenge of modern online betting, particularly in the growing trend of esports betting on Roobet. With a user-centric design, generous bonuses, an impressive game selection, and robust security features, Roobet stands out as a top choice for both casual players and esports enthusiasts. Regardless of your gaming style, Roobet offers an experience that caters to your needs while prioritizing safety and enjoyment.

Frequently Asked Questions

  • 1. What types of esports can I bet on at Roobet? Roobet offers popular esports games like Dota 2, CS:GO, and League of Legends, among others.
  • 2. Is Roobet safe for online gambling? Yes, Roobet is licensed by the Curacao Gaming Authority, implementing strong security features to protect players.
  • 3. Are there bonuses for esports betting on Roobet? Yes, Roobet frequently runs promotions and bonuses specific to esports betting to enhance player engagement.
  • 4. How do I make a withdrawal on Roobet? Withdrawals can be made through the same cryptocurrencies used for deposits, usually processed within 24 hours.
  • 5. How can I contact Roobet’s support team? Roobet offers 24/7 customer support primarily through live chat, ensuring prompt assistance for all player inquiries.

The post The Growing Trend of Esports Betting on Roobet: A Comprehensive Review appeared first on .

]]>
Roobet’s Game Providers: Kdo to jsou a co nabízejí? https://sunlight168.shop/roobets-game-providers-kdo-to-jsou-a-co-nabizeji/ Sat, 22 Aug 2026 14:24:12 +0000 https://sunlight168.shop/roobets-game-providers-kdo-to-jsou-a-co-nabizeji/ Roobet’s Game […]

The post Roobet’s Game Providers: Kdo to jsou a co nabízejí? appeared first on .

]]>

Roobet’s Game Providers: Kdo to jsou a co nabízejí?

Jmenuji se Jakub Novák a v tomto článku se podívám na online kasino Roobet, jeho poskytovatele her a nabídku, kterou svým hráčům přináší. Roobet je moderní a atraktivní online kasino, které je určeno pro široké spektrum hráčů – od nováčků po zkušené gambleře. Zjistíme, co všechno kasino nabízí, jaký má herní výběr, bonusy, a jaký je proces registrace a ověření.

Webová stránka a uživatelský zážitek

Webová stránka Roobet je navržena s ohledem na moderní design a uživatelskou přívětivost. Barevný a interaktivní rozhraní přitahuje pozornost a usnadňuje navigaci. Hlavní sekce, jako jsou “Hry”, “Živé Kasino” a “Bonusy”, jsou snadno dostupné a přehledně uspořádány. Stránka je plně optimalizovaná i pro mobilní zařízení, což umožňuje hráčům užívat si hry na cestách. Všechny funkce jsou intuitivně navrženy, takže i noví hráči si rychle zvyknou.

Registrace a přihlášení

Registrace na Roobet je jednoduchá a rychlá. Hráči mohou dokončit registraci za pouhých několik minut. Proces zahrnuje:

  1. Navštivte oficiální stránku Roobet.
  2. Klikněte na tlačítko “Registrace” v pravém horním rohu.
  3. Zadejte požadované údaje, jako je e-mail a heslo.
  4. Potvrďte svůj účet prostřednictvím e-mailu.

Po dokončení registrace se hráči mohou přihlásit a začít užívat všechny dostupné funkce, včetně bonusů a promo kódů.

Bonusy a promo kódy

Roobet nabízí atraktivní bonusy pro nové i stávající hráče. Noví hráči mohou očekávat uvítací bonus, který jim poskytne dodatečné prostředky na hraní. Mezi hlavní bonusy patří:

  • Uvítací bonus při prvním vkladu.
  • Pravidelné promo akce, které nabízejí volné otočky a cashback.
  • Věrnostní program pro stávající hráče.

Kromě toho mohou hráči využívat promo kódy, které zajišťují dodatečné výhody a bonusy, když jsou uplatněny při vkladu.

Výběr her: sloty a živé kasino

Roobet se pyšní pestrým výběrem her od renomovaných poskytovatelů, což je klíčovým faktorem, který zajišťuje kvalitní zážitek pro hráče. Mezi hlavní typy her patří: online casino

  • Sloty – s tisíci různými tématy a bonusovými funkcemi.
  • Živé kasino – s možností hrát proti skutečným krupiérům v reálném čase.
  • Stolní hry – jako ruleta, blackjack a baccarat.

Každý z těchto typů her má své vlastní jedinečné rysy, které si hráči mohou vychutnat. Roobet’s Game Providers: Who Are They and What Do They Offer? zahrnují například společnosti jako NetEnt, Microgaming a Pragmatic Play, což zaručuje zábavné a spravedlivé hraní.

Bezpečnost a licence

Bezpečnost je pro Roobet prioritou. Kasino operuje pod licencí Curacao, což znamená, že splňuje přísné normy pro provoz online hazardních her. Tato licence zajišťuje, že všechny hry jsou spravedlivé a regulované. Hráči mohou být ujištěni, že Roobet používá moderní šifrovací technologie k ochraně osobních a finančních údajů. Kromě toho je nutné, aby hráči před vyplacením své výhry ověřili svůj účet, což zahrnuje poskytnutí platného dokladu o totožnosti a adresy.

Podpora a zákaznický servis

Roobet rovněž nabízí kvalitní zákaznickou podporu. Hráči se mohou s dotazy obrátit na tým podpory prostřednictvím live chatu nebo e-mailu. Odpovědi na běžné dotazy naleznete v sekci FAQ na stránkách. Tým podpory je k dispozici 24/7 a je připraven pomoci s jakýmikoli problémy, které mohou hráči mít. To dává hráčům jistotu, že s jakýmikoli dotazy nebo obavami se mohou obrátit na odborníky.

Závěr

Roobet je atraktivní online kasino s širokým spektrem her a uživatelsky přívětivým rozhraním. Nabízí zajímavé bonusy a má bezpečnost na prvním místě. S jeho pestrou nabídkou her od renomovaných poskytovatelů je jasné, proč se Roobet stává stále populárnějším na trhu online hazardních her. Pokud hledáte zábavné a bezpečné místo pro hraní, určitě byste měli zvážit Roobet.

Časté dotazy

  1. Jak mohu začít hrát na Roobet? – Stačí se zaregistrovat na jejich webových stránkách a provést první vklad.
  2. Jaké bonusy nabízí Roobet? – Nabízí uvítací bonus, promo akce a věrnostní program.
  3. Jaká je bezpečnost hraní na Roobet? – Roobet je plně licencováno a používá šifrovací technologie pro ochranu hráčů.
  4. Kde najdu informace o poskytovatelích her na Roobet? – Informace o poskytovatelích najdete na stránkách kasina v sekci her.
  5. Jak kontaktovat zákaznickou podporu Roobet? – Zákaznická podpora je k dispozici prostřednictvím live chatu a e-mailu 24 hodin denně.

The post Roobet’s Game Providers: Kdo to jsou a co nabízejí? appeared first on .

]]>
Psychologie hazardu: Vhledy od hráčů Roobet https://sunlight168.shop/psychologie-hazardu-vhledy-od-hracu-roobet/ Thu, 20 Aug 2026 00:37:50 +0000 https://sunlight168.shop/psychologie-hazardu-vhledy-od-hracu-roobet/ Psychologie hazardu: […]

The post Psychologie hazardu: Vhledy od hráčů Roobet appeared first on .

]]>

Psychologie hazardu: Vhledy od hráčů Roobet

Jmenuji se Petr Novák, a rád bych se s vámi podělil o své zkušenosti s online kasinem Roobet, které se poslední dobou stává stále populárnější volbou mezi hráči. Toto kasino je určeno pro ty, kteří hledají vzrušení a pohodlí hraní z domova. Je důležité vědět, že Roobet nabízí širokou škálu her, atraktivní bonusy a moderní interface, což může významně ovlivnit psychologii hazardu a herní zkušenosti. Nyní se podíváme na to, co všechno Roobet nabízí a jaké jsou mé vlastní vhledy do jeho funkcí a poskytovaných služeb.

Přehled kasina Roobet

Roobet je online kasino, které se zaměřuje na mladší generaci a hráče, kteří hledají moderní a interaktivní herní zážitek. Na jejich webových stránkách najdete intuitivní rozhraní, které usnadňuje navigaci a hledání her. Registrace je rychlá a snadná, ať už hrajete na desktopu nebo mobilním zařízení. Vlastníci kasina mají za cíl poskytnout hráčům prostředí, kde mohou vyzkoušet své štěstí v mnoha různých hrách a užít si zábavu. Připojit se k Roobet je snadné a přináší přístup k zajímavým herním možnostem a bonusům.

Registrace a přihlašování

Registrace na Roobet je jednoduchý proces, který nezabere více než pár minut. Stačí zadat základní údaje, jako je e-mailová adresa a heslo. Následně budete moci přistoupit na svůj účet. Přihlašování probíhá rychle a efektivně, což je pro uživatele důležité. Pokud zapomenete heslo, systém nabízí možnost jeho obnovení prostřednictvím e-mailu. Tento přístup k uživatelskému rozhraní výrazně ovlivňuje hráčovu psychologii a zajišťuje bezproblémový štart do herního dobrodružství roobet.

Bonusy a promo kódy

Roobet nabízí několik zajímavých bonusů pro nové hráče, což je velmi atraktivní z pohledu psychologického chování hráčů. Tyto bonusy jsou navrženy tak, aby povzbudily hráče k registraci a prvnímu vkladu. Mezi hlavní bonusy patří:

  • Uvítací bonus – 100% na první vklad až do určité výše.
  • Další bonusy při dalších vkladech – hráči mohou získat dodatečné finanční prostředky, pokud budou pokračovat ve vkladech.
  • Speciální akce a soutěže – pravidelně se konají akce, kde mohou hráči vyhrát zajímavé ceny.

Tyto nabídky motivují hráče a ovlivňují jejich rozhodování o tom, jak a kdy hrát. Psychologie hazardu se tedy stává důležitým faktorem při užívání těchto výhod.

Výběr her

Roobet se může pochlubit širokým výběrem her, od tradičních hracích automatů po zajímavé live casino hry. Tímto způsobem uspokojí různé preference hráčů. Mezi nejoblíbenější kategorie her patří:

  1. Hrací automaty – s atraktivními grafikou a bonusovými funkcemi.
  2. Karetní a stolní hry – jako jsou blackjack a ruleta s různými variantami.
  3. Live casino – interakce s živými krupiéry pro autentický zážitek.

Tyto možnosti nabízejí hráčům širokou paletu herních zkušeností, což může pozitivně ovlivnit jejich psychologii hazardu a potěšení z hry. Mnoho hráčů, včetně mě, se rádo vrací k Roobet právě kvůli rozmanitosti her.

Bezpečnost a licence

Bezpečnost je pro online kasina, jako je Roobet, klíčová. Kasino je vlastněno společností A&T Enterprises, která má platnou licenci na provozování online hazardních her. Tato licence znamená, že Roobet musí dodržovat přísné standardy pro ochranu hráčů a zabezpečení jejich osobních a finančních údajů. Všichni hráči by měli mít na paměti následující bezpečnostní prvky:

  • Šifrování dat – všechny citlivé informace jsou šifrovány, aby se zabránilo úniku dat.
  • Ověření identity – hráči musí projít ověřovacím procesem před provedením výběru.
  • Ochrana proti podvodům – kasino má implementováno několik opatření ke sledování podezřelých aktivit.

Tyto bezpečnostní prvky a licence přispívají ke klidu hráčů a jejich psychologii hazardu. Vědomí, že hrajete v bezpečném prostředí, je pro mne velmi důležité.

Zákaznická podpora a uživatelská zkušenost

Zákaznická podpora je pro online kasino jako Roobet zásadní, protože hráči často potřebují pomoc. Roobet nabízí různé možnosti, jak kontaktovat podporu, včetně live chatu a e-mailu. Jejich tým je většinou pohotový a ochotný pomoci, což výrazně zlepšuje uživatelskou zkušenost. Hráči také mohou najít odpovědi na často kladené otázky v sekci nápovědy na webu. Tato podpora hraje důležitou roli v psychologii hazardu, protože hráči se cítí jistěji při řešení jakýchkoli problémů.

Závěr

Roobet je online kasino, které kombinuje široký výběr her, bezpečnost a atraktivní bonusy v uživatelsky přívětivém prostředí. Moje zkušenosti s tímto kasinem ukazují, že poskytují hráčům příležitost užít si zábavu a vzrušení, přičemž přispívají k jejich psychologii hazardu. Pokud hledáte nové online kasino, které nabízí výkon, ochranu a zábavu, rozhodně doporučuji Roobet!

Často kladené otázky

  • Jak se mohu registrovat na Roobet? – Proces registrace je rychlý a snadný; stačí vyplnit základní informace na webu.
  • Jaké bonusy Roobet nabízí? – Kasino nabízí uvítací bonusy, akce na vklady a různé soutěže.
  • Jaké hry mohu hrát na Roobet? – Nabízí širokou škálu her, včetně automatů, stolu a live her.
  • Jak je zajištěna bezpečnost na Roobet? – Kasino je licencováno a používá šifrování pro ochranu hráčských dat.
  • Jak kontaktovat zákaznickou podporu Roobet? – Podpora je dostupná přes live chat a e-mail.

The post Psychologie hazardu: Vhledy od hráčů Roobet appeared first on .

]]>