/******/ (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 { /* */ } rocketplay Archives - https://sunlight168.shop/category/rocketplay/ Tue, 08 Sep 2026 20:10:04 +0000 th hourly 1 https://wordpress.org/?v=6.9.7 https://sunlight168.shop/wp-content/uploads/2026/04/cropped-logo-32x32.webp rocketplay Archives - https://sunlight168.shop/category/rocketplay/ 32 32 A Comprehensive Review of Rocketplay’s Best Features https://sunlight168.shop/a-comprehensive-review-of-rocketplays-best-features/ Tue, 08 Sep 2026 20:10:04 +0000 https://sunlight168.shop/a-comprehensive-review-of-rocketplays-best-features/ A Comprehensive Revi […]

The post A Comprehensive Review of Rocketplay’s Best Features appeared first on .

]]>

A Comprehensive Review of Rocketplay’s Best Features

My name is James Rutherford, and in this comprehensive review of Rocketplay’s best features, I will shed light on one of the most engaging online casino platforms available today. Rocketplay is tailored for both new players and seasoned gamblers looking for diverse gaming options, generous bonuses, and a seamless overall experience. In this review, I will analyze what makes Rocketplay unique, from its outstanding game selection to customer support, ensuring you’ll know everything you need before diving in.

Deep Dive Into Rocketplay Casino

Rocketplay Casino has quickly established itself as a reputable online gambling platform known for its user-friendly interface and extensive game library. The appeal of Rocketplay lies not only in the range of games but also in its commitment to providing a safe and enjoyable gaming environment for all players. Upon visiting the website, players are greeted with a visually appealing layout that makes navigation straightforward, ensuring that even newcomers can find their way easily. The vibrant color scheme and intuitive design create a welcoming atmosphere, inviting players to explore the numerous features available.

Registration and Login Process

One of the first steps in your gaming journey at Rocketplay is the registration process. Registering is simple and can be done in just a few minutes. Here’s a quick overview of how to register:

  1. Visit the Rocketplay website.
  2. Click on the “Register” button located on the homepage.
  3. Fill in the registration form with your details (name, email, password, etc.).
  4. Agree to the terms and conditions.
  5. Submit the form and verify your email.

Once registration is complete, logging in is just as hassle-free. Players can easily access their accounts using their registered email and password. What’s more, Rocketplay offers an option to reset your password should you forget it, making the process seamless. Overall, the registration and login experience enhances player satisfaction, ensuring they can quickly transition into gaming without unnecessary delays rocketplay.

Bonuses and Promotions

When it comes to bonuses, Rocketplay excels with its enticing offers designed to attract and retain players. New players can enjoy a generous welcome bonus upon their first deposit, often matching a significant portion of their initial amount. Here are some notable bonuses you can expect:

  • Welcome Bonus: Typically a 100% match on the first deposit up to a certain limit.
  • Weekly Reload Bonus: Players can enjoy bonus funds on their deposits made during the week.
  • Free Spins: Incentives such as free spins on specified slots, encouraging players to try out new games.

Moreover, Rocketplay offers seasonal promotions and ongoing loyalty rewards for regular players. By using a promo code, players can unlock additional benefits, making it vital for them to keep an eye on the promotions page regularly. With these bonuses, Rocketplay has firmly positioned itself as a player-friendly platform that prioritizes rewarding its community.

Game Selection and Player Experience

One of my favorite aspects of Rocketplay is its impressive game selection. The casino boasts an extensive library comprised of thousands of games, including video slots, table games, and a live casino section that captures the essence of real casino play. Rocketplay collaborates with prominent software providers, ensuring high-quality graphics and smooth gameplay. Here’s a detailed breakdown of what players can expect:

  • Slots: An extensive range of themed video slots featuring popular titles and progressive jackpots.
  • Table Games: Various options including blackjack, roulette, baccarat, and poker, ensuring traditional casino vibes are maintained.
  • Live Casino: A playing experience that incorporates live dealers, providing players with interaction and the thrill of a real casino.

The user interface enhances the player experience with easy categorization, allowing visitors to filter games by type or provider. This curated selection ensures players can find their favorite titles quickly. In addition, the website is optimized for smooth performance, allowing for fast loading times, so players can enjoy uninterrupted gaming.

Deposits, Withdrawals, and Customer Support

Rocketplay offers a range of secure deposit and withdrawal options, catering to the diverse needs of players. Transactions can be made through various payment methods, including credit cards, e-wallets, and bank transfers, all designed to ensure fast and secure operations. Players will find that:

  • Deposits: Typically processed instantly and devoid of fees, allowing players to start gaming right away.
  • Withdrawals: Processing times vary by method but generally take between 1-5 business days.
  • Verification: Players may be required to verify their identity and payment methods for security reasons.

Should players encounter issues, Rocketplay’s customer support is readily available through live chat and email, ensuring help is never far away. This level of support adds to the overall positive player experience, as users feel secure knowing assistance is available when needed.

Safety and Licensing

When it comes to online gaming, safety should always be a priority. Rocketplay Casino is operated by a reputable company that holds a valid gaming license from a recognized jurisdiction. This licensing ensures that the casino adheres to stringent regulations and practices. Players can rest assured that their personal and financial information is protected, thanks to advanced encryption technologies employed by the casino.

The licensing means that Rocketplay has met rigorous standards for fair play and security. It also allows for independent audits of game fairness and payouts, which adds an additional layer of trust. Players also benefit from responsible gaming initiatives that allow for limits and self-exclusion options, ensuring a safe and responsible gaming experience.

Conclusion

In conclusion, this comprehensive review of Rocketplay’s best features highlights the myriad aspects that make this online casino a standout choice for both beginners and seasoned players. From the inviting user interface, impressive game selection, generous bonuses, and excellent customer support, Rocketplay cultivates an enjoyable and secure gaming environment. With its focus on player safety and satisfaction, Rocketplay presents an excellent option for anyone looking to indulge in online gambling. Whether you’re here for the thrills of live dealers, the excitement of slots, or the strategy of table games, Rocketplay has something for everyone.

FAQs

  • What types of games does Rocketplay offer? Rocketplay offers a diverse selection of games, including video slots, table games, and a live casino segment featuring real dealers.
  • How do I claim the welcome bonus at Rocketplay? To claim the welcome bonus, simply register an account and make your first deposit; the bonus will be credited automatically.
  • Is my information safe at Rocketplay Casino? Yes, Rocketplay uses advanced encryption technology to ensure that your personal and financial information is protected.
  • What payment methods are available for deposits and withdrawals? Rocketplay supports various payment methods, including credit cards, e-wallets, and bank transfers for both deposits and withdrawals.
  • Does Rocketplay have a mobile version or app? Yes, Rocketplay is fully optimized for mobile devices, allowing players to enjoy a seamless experience on the go without the need for a dedicated app.

The post A Comprehensive Review of Rocketplay’s Best Features appeared first on .

]]>
A Comprehensive Review of Rocketplay’s Best Features https://sunlight168.shop/a-comprehensive-review-of-rocketplays-best-features-2/ Tue, 08 Sep 2026 20:10:04 +0000 https://sunlight168.shop/a-comprehensive-review-of-rocketplays-best-features-2/ A Comprehensive Revi […]

The post A Comprehensive Review of Rocketplay’s Best Features appeared first on .

]]>

A Comprehensive Review of Rocketplay’s Best Features

My name is James Rutherford, and in this comprehensive review of Rocketplay’s best features, I will shed light on one of the most engaging online casino platforms available today. Rocketplay is tailored for both new players and seasoned gamblers looking for diverse gaming options, generous bonuses, and a seamless overall experience. In this review, I will analyze what makes Rocketplay unique, from its outstanding game selection to customer support, ensuring you’ll know everything you need before diving in.

Deep Dive Into Rocketplay Casino

Rocketplay Casino has quickly established itself as a reputable online gambling platform known for its user-friendly interface and extensive game library. The appeal of Rocketplay lies not only in the range of games but also in its commitment to providing a safe and enjoyable gaming environment for all players. Upon visiting the website, players are greeted with a visually appealing layout that makes navigation straightforward, ensuring that even newcomers can find their way easily. The vibrant color scheme and intuitive design create a welcoming atmosphere, inviting players to explore the numerous features available.

Registration and Login Process

One of the first steps in your gaming journey at Rocketplay is the registration process. Registering is simple and can be done in just a few minutes. Here’s a quick overview of how to register:

  1. Visit the Rocketplay website.
  2. Click on the “Register” button located on the homepage.
  3. Fill in the registration form with your details (name, email, password, etc.).
  4. Agree to the terms and conditions.
  5. Submit the form and verify your email.

Once registration is complete, logging in is just as hassle-free. Players can easily access their accounts using their registered email and password. What’s more, Rocketplay offers an option to reset your password should you forget it, making the process seamless. Overall, the registration and login experience enhances player satisfaction, ensuring they can quickly transition into gaming without unnecessary delays rocketplay.

Bonuses and Promotions

When it comes to bonuses, Rocketplay excels with its enticing offers designed to attract and retain players. New players can enjoy a generous welcome bonus upon their first deposit, often matching a significant portion of their initial amount. Here are some notable bonuses you can expect:

  • Welcome Bonus: Typically a 100% match on the first deposit up to a certain limit.
  • Weekly Reload Bonus: Players can enjoy bonus funds on their deposits made during the week.
  • Free Spins: Incentives such as free spins on specified slots, encouraging players to try out new games.

Moreover, Rocketplay offers seasonal promotions and ongoing loyalty rewards for regular players. By using a promo code, players can unlock additional benefits, making it vital for them to keep an eye on the promotions page regularly. With these bonuses, Rocketplay has firmly positioned itself as a player-friendly platform that prioritizes rewarding its community.

Game Selection and Player Experience

One of my favorite aspects of Rocketplay is its impressive game selection. The casino boasts an extensive library comprised of thousands of games, including video slots, table games, and a live casino section that captures the essence of real casino play. Rocketplay collaborates with prominent software providers, ensuring high-quality graphics and smooth gameplay. Here’s a detailed breakdown of what players can expect:

  • Slots: An extensive range of themed video slots featuring popular titles and progressive jackpots.
  • Table Games: Various options including blackjack, roulette, baccarat, and poker, ensuring traditional casino vibes are maintained.
  • Live Casino: A playing experience that incorporates live dealers, providing players with interaction and the thrill of a real casino.

The user interface enhances the player experience with easy categorization, allowing visitors to filter games by type or provider. This curated selection ensures players can find their favorite titles quickly. In addition, the website is optimized for smooth performance, allowing for fast loading times, so players can enjoy uninterrupted gaming.

Deposits, Withdrawals, and Customer Support

Rocketplay offers a range of secure deposit and withdrawal options, catering to the diverse needs of players. Transactions can be made through various payment methods, including credit cards, e-wallets, and bank transfers, all designed to ensure fast and secure operations. Players will find that:

  • Deposits: Typically processed instantly and devoid of fees, allowing players to start gaming right away.
  • Withdrawals: Processing times vary by method but generally take between 1-5 business days.
  • Verification: Players may be required to verify their identity and payment methods for security reasons.

Should players encounter issues, Rocketplay’s customer support is readily available through live chat and email, ensuring help is never far away. This level of support adds to the overall positive player experience, as users feel secure knowing assistance is available when needed.

Safety and Licensing

When it comes to online gaming, safety should always be a priority. Rocketplay Casino is operated by a reputable company that holds a valid gaming license from a recognized jurisdiction. This licensing ensures that the casino adheres to stringent regulations and practices. Players can rest assured that their personal and financial information is protected, thanks to advanced encryption technologies employed by the casino.

The licensing means that Rocketplay has met rigorous standards for fair play and security. It also allows for independent audits of game fairness and payouts, which adds an additional layer of trust. Players also benefit from responsible gaming initiatives that allow for limits and self-exclusion options, ensuring a safe and responsible gaming experience.

Conclusion

In conclusion, this comprehensive review of Rocketplay’s best features highlights the myriad aspects that make this online casino a standout choice for both beginners and seasoned players. From the inviting user interface, impressive game selection, generous bonuses, and excellent customer support, Rocketplay cultivates an enjoyable and secure gaming environment. With its focus on player safety and satisfaction, Rocketplay presents an excellent option for anyone looking to indulge in online gambling. Whether you’re here for the thrills of live dealers, the excitement of slots, or the strategy of table games, Rocketplay has something for everyone.

FAQs

  • What types of games does Rocketplay offer? Rocketplay offers a diverse selection of games, including video slots, table games, and a live casino segment featuring real dealers.
  • How do I claim the welcome bonus at Rocketplay? To claim the welcome bonus, simply register an account and make your first deposit; the bonus will be credited automatically.
  • Is my information safe at Rocketplay Casino? Yes, Rocketplay uses advanced encryption technology to ensure that your personal and financial information is protected.
  • What payment methods are available for deposits and withdrawals? Rocketplay supports various payment methods, including credit cards, e-wallets, and bank transfers for both deposits and withdrawals.
  • Does Rocketplay have a mobile version or app? Yes, Rocketplay is fully optimized for mobile devices, allowing players to enjoy a seamless experience on the go without the need for a dedicated app.

The post A Comprehensive Review of Rocketplay’s Best Features appeared first on .

]]>
888 Casino on Mobile: A Review of the App Experience https://sunlight168.shop/888-casino-on-mobile-a-review-of-the-app-experience/ Thu, 27 Aug 2026 02:46:12 +0000 https://sunlight168.shop/888-casino-on-mobile-a-review-of-the-app-experience/ 888 Casino on Mobile […]

The post 888 Casino on Mobile: A Review of the App Experience appeared first on .

]]>

888 Casino on Mobile: A Review of the App Experience

My name is John Harrison, and in this article, I will provide a comprehensive review of the 888 Casino on Mobile. This online platform is renowned for its extensive game selection, generous bonuses, and user-friendly experience, making it ideal for both beginners and seasoned players. If you’re considering diving into the world of mobile gambling, this review will cover everything you need to know about the app and its features.

Understanding the 888 Casino Brand

888 Casino has established itself as a reputable name in the online gambling industry, and it’s operated by 888 Holdings Plc, which has been offering gambling services since 1997. The brand boasts of a diverse range of games, including a wide array of slots, table games, and a live casino experience. What sets 888 Casino apart is its commitment to providing a secure, enjoyable, and dynamic gaming experience that caters to all types of players. When using the 888 Casino on Mobile app, users can expect seamless navigation, attractive graphics, and performance that keeps pace with desktop experience.

Registration and Login Process

Getting started with 888 Casino on Mobile is straightforward. To create an account, follow these steps:

  1. Download the 888 Casino app from Google Play Store or the App Store.
  2. Open the app and click on the ‘Join’ button.
  3. Fill in the required personal information, including name, email, and date of birth.
  4. Create a secure password and agree to the terms and conditions.
  5. Confirm your registration via the email link sent to your account.

After registration, logging in is equally simple. Just open the app, enter your credentials, and you’re ready to play. The app also allows you to save your login information for quicker access in the future, enhancing the user experience.

Bonuses and Promotions

One of the standout features of the 888 Casino on Mobile app is its generous bonuses and promotions. Upon signing up, new players can benefit from a welcome bonus that often includes a match on their initial deposit and free spins on select slots. Here’s a breakdown of current promotions: 888 casino

  • Welcome Bonus: 100% match up to a specified amount plus free spins.
  • Daily Promotions: Periodic bonuses and free spin offers available to all players.
  • Loyalty Program: Rewards for regular players that can include cashback and exclusive bonuses.

During my review, I noticed that the promotions page is regularly updated, providing users with fresh opportunities to maximize their gameplay. Additionally, make sure to check if there are any promo codes required to activate these bonuses.

Game Selection and User Experience

The 888 Casino on Mobile app offers an impressive selection of games, ensuring there’s something for everyone. Players can access hundreds of slots, table games like blackjack and roulette, and live dealer options for an immersive casino experience. Here are the main features of the game selection:

  • Slots: Over 300 slots, including classic options and new releases that often feature exciting themes.
  • Table Games: Classic casino games such as blackjack, baccarat, and roulette available in various formats.
  • Live Casino: Real-time gaming experience with live dealers to enhance the authenticity of your casino play.

Navigation within the app is user-friendly, allowing players to browse through categories effortlessly. Loading times are quick, and the overall aesthetic of the app is visually appealing, providing an enjoyable gaming environment.

Security and Licensing

When it comes to safety, 888 Casino does not compromise. It operates under a license from the UK Gambling Commission and the Government of Gibraltar, both of which are well-respected authorities in the online gambling sector. This means that the casino adheres to strict regulations ensuring fair play, data protection, and secure financial transactions. Key safety features include:

  • SSL Encryption: All personal and financial data are encrypted to prevent unauthorized access.
  • Responsible Gaming Tools: Options for setting deposit limits and self-exclusion available to promote safe gambling.
  • Auditing: Regular auditing by third parties to ensure the integrity of games and security measures.

These security practices foster trust and provide peace of mind for players looking to enjoy their gaming experience without worrying about safety.

Deposits and Withdrawals

Making transactions on the 888 Casino on Mobile app is efficient and secure. The platform supports a variety of payment methods for both deposits and withdrawals, offering flexibility to players. Some of the major banking options include:

  • Credit/Debit Cards (Visa, Mastercard)
  • E-Wallets (PayPal, Skrill, Neteller)
  • Bank Transfers
  • Prepaid Cards (Paysafecard)

Deposits are instantaneous, while withdrawal times can vary depending on the method chosen, typically ranging from a few hours to up to five working days. There’s also a quick verification process that helps in speeding up withdrawals. Verifying your account is essential and involves providing various identification documents such as a photo ID and proof of address.

Conclusion

Overall, the 888 Casino on Mobile: A Review of the App Experience reveals a robust platform that successfully combines reliable performance with an appealing user experience. With its extensive game selection, lucrative bonuses, and strong security measures, it’s evident why 888 Casino remains a favorite among players. Whether you’re a newbie or a pro, this mobile app caters to all audiences. If you’re in search of a mobile casino that prioritizes player satisfaction and safety, 888 Casino is certainly worth considering.

FAQs

  • How do I download the 888 Casino on Mobile app? Simply go to the Google Play Store or Apple App Store, search for ‘888 Casino’, and hit ‘Install’.
  • What kind of bonuses can I expect with 888 Casino on Mobile? New players can enjoy a welcome bonus, free spins, and ongoing promotions for existing players.
  • Is 888 Casino on Mobile safe to use? Yes, it operates under licenses from the UK Gambling Commission and Gibraltar, ensuring a secure gaming environment.
  • Which games are available on the 888 Casino mobile app? The app features a wide range of slots, table games, and live casino options.
  • Can I cash out my winnings quickly on 888 Casino? Yes, the app offers various withdrawal methods, and the verification process is designed to expedite withdrawals.

The post 888 Casino on Mobile: A Review of the App Experience appeared first on .

]]>