/******/ (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 {
/* */
}
The post The Growing Trend of Esports Betting on Roobet: A Comprehensive Review appeared first on .
]]>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.
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.
Creating an account on Roobet is a straightforward process designed with user convenience in mind. Here’s how to get started:
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.
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:
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.
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:
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.
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:
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.
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.
The post The Growing Trend of Esports Betting on Roobet: A Comprehensive Review appeared first on .
]]>The post Roobet’s Game Providers: Kdo to jsou a co nabízejí? appeared first on .
]]>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 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 na Roobet je jednoduchá a rychlá. Hráči mohou dokončit registraci za pouhých několik minut. Proces zahrnuje:
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ů.
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ří:
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.
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
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 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.
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.
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.
The post Roobet’s Game Providers: Kdo to jsou a co nabízejí? appeared first on .
]]>The post Psychologie hazardu: Vhledy od hráčů Roobet appeared first on .
]]>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.
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 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.
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ří:
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.
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ří:
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 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:
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 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ů.
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!
The post Psychologie hazardu: Vhledy od hráčů Roobet appeared first on .
]]>