/******/ (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 Wiz Slots: Are They Fair and Random? appeared first on .
]]>As an online casino enthusiast, I often find myself questioning the integrity of gaming platforms. In this review, I’ll delve into Wiz Slots, a popular online gaming brand, to answer a pressing question: Wiz Slots: Are They Fair and Random? This casino caters to both new players and seasoned pros who appreciate a vast selection of games and lucrative bonuses. However, it is crucial to know about their operations, safety measures, and overall user experience before diving in.
Wiz Slots is an online casino that aims to deliver an engaging and user-friendly experience. Designed with modern players in mind, the platform offers a sleek interface with vibrant graphics and seamless navigation. The registration process is straightforward, enabling players to create an account in minutes. After logging in, users will be greeted by a myriad of gaming options, including slots, table games, and a live casino feature that adds an authentic touch to the online gaming experience.
This casino is suitable for anyone looking to enjoy a variety of games alongside attractive promotional offers. However, it’s essential for players to remain informed about the terms and conditions that accompany these bonuses. Understanding the wagering requirements can make a significant difference in your gaming journey.
One of the standout features that solidifies Wiz Slots in players’ minds is its extensive game selection. With hundreds of games available, there’s no shortage of options, from classic slot machines to modern video slots. Here’s a closer look at the types of games you can expect: wiz slots welcome bonus
Moreover, with frequent updates and new arrivals, players can always look forward to fresh and exciting gameplay. The chance to try various titles allows users to discover what they enjoy the most without feeling boxed into just one game type.
Wiz Slots offers an attractive variety of bonuses that can significantly enhance your gaming experience. Upon registering, players can expect enticing welcome bonuses, often including deposit matches and free spins. Here’s a breakdown of the key promotions available:
Always check the promotions page for the latest offers and terms. Understanding the wagering requirements tied to these bonuses is crucial for maximizing your playtime and minimizing losses.
When addressing the question, Wiz Slots: Are They Fair and Random?, safety and security come into play. Wiz Slots is operated by a reputable company that holds a licensing agreement from a recognized jurisdiction. This license ensures that the casino adheres to strict regulations governing online gambling.
Key points to consider include:
These safety measures and licensing guarantees mean players can feel secure playing at Wiz Slots, making their gaming experience enjoyable and worry-free.
The interface of Wiz Slots is designed for ease of use, ensuring that players can find their favorite games quickly and navigate the site without frustration. The aesthetic appeal of the website complements the functionality, creating an engaging environment for gaming. Additionally, the website is optimized for mobile devices, so players can enjoy their favorite slots on the go without compromising quality.
Support is another vital aspect to consider when evaluating an online casino’s efficiency. Wiz Slots offers a dedicated customer support team available 24/7 to assist players with any queries. Users can contact the support team via live chat or email, ensuring that help is just a click away. Furthermore, the website features a comprehensive FAQ section that addresses common inquiries, enhancing the user experience even further and allowing for informed gameplay.
Wiz Slots presents an appealing option for online casino enthusiasts, combining a diverse game selection, attractive bonuses, and robust safety measures. In answering the question, Wiz Slots: Are They Fair and Random?, it’s clear that the platform operates with transparency and fairness. The licensing and verification protocols ensure that players can enjoy their favorite games without concern, and the overall user experience is enhanced by responsive customer support and a welcoming interface.
The post Wiz Slots: Are They Fair and Random? appeared first on .
]]>The post How to Stay Responsible While Enjoying Wiz Slots: A Comprehensive Review of SpinMagic Casino appeared first on .
]]>Hi, I’m Mark Thompson, and today I’m diving into an exciting online gaming platform that makes it easy to enjoy Wiz Slots responsibly. SpinMagic Casino is an innovative online casino that offers a vibrant gaming atmosphere, especially for fans of slot games. Whether you’re a seasoned player or a newcomer, this casino provides a user-friendly experience with a rich selection of games and numerous features aimed at promoting responsible gaming. In this review, I’ll share everything you need to know about SpinMagic, including registration, bonuses, game selection, and essential tips on how to stay responsible while enjoying Wiz Slots.
SpinMagic Casino stands out in the crowded online gambling landscape due to its focus on player experience and commitment to responsible gaming. Right from the homepage, users are greeted with a colorful, inviting design that reflects an online gaming environment conducive to fun and excitement. The website is easy to navigate, allowing players to quickly find their favorite Wiz Slots and other games without hassle. SpinMagic is suitable for anyone who enjoys a variety of gaming options, from classic slots to live dealer games, while also providing assurance through its responsible gaming practices.
Getting started with SpinMagic is a breeze. The registration process is straightforward, requiring just a few steps:
Once registered, logging in is a simple matter of entering your credentials. SpinMagic ensures players’ safety by implementing two-factor authentication, adding another layer of security to your account, ensuring that you can focus on playing Wiz Slots responsibly wiz slots online.
One of the major attractions of SpinMagic Casino is its generous bonuses and promotional offers. New players are welcomed with a substantial sign-up bonus that typically matches a percentage of your first deposit, allowing you to start your gaming experience with extra playing credits. Regular players also enjoy ongoing promotions, including:
Remember, while these promotions enhance the gaming experience, it’s crucial to understand the terms and conditions attached to them to maintain responsible gaming habits. Always check the wagering requirements before claiming any bonus to ensure you’re fully aware of your commitments.
When it comes to game selection, SpinMagic Casino excels with an extensive collection tailored to all types of players. The casino features a wide range of Wiz Slots, including fan favorites and the latest titles, promising endless entertainment. The slot games include:
Moreover, if you seek a more interactive experience, SpinMagic boasts a live casino section where players can engage with real dealers in real-time. This section includes popular games like blackjack, roulette, and baccarat. The transition between slots and live games is seamless, giving players the flexibility to switch up their gaming when they choose.
SpinMagic Casino provides a variety of secure deposit and withdrawal methods, ensuring players can manage their funds without stress. Here’s a breakdown:
This robust financial structure supports the responsible enjoyment of Wiz Slots, ensuring that players can manage their gaming budgets effectively.
Safety is a critical factor when enjoying online gaming, and SpinMagic Casino is committed to protecting its players. The platform operates under a reputable gaming license issued by the Malta Gaming Authority (MGA). This license guarantees that SpinMagic adheres to strict regulations concerning fair play and responsible gaming. Here’s what that means for you:
For added security, SpinMagic uses cutting-edge encryption technology, so you can focus on enjoying Wiz Slots without worrying about your safety.
In conclusion, SpinMagic Casino provides an exciting yet responsible gaming platform for those looking to enjoy Wiz Slots. With an easy-to-navigate website, an extensive game selection, generous bonuses, and a commitment to player safety, it’s an excellent choice for both novice and experienced players alike. Remember, while the thrill of the game is enticing, prioritizing responsible gaming will enhance your overall experience. Always set limits for yourself, and most importantly, enjoy your gaming responsibly!
The post How to Stay Responsible While Enjoying Wiz Slots: A Comprehensive Review of SpinMagic Casino appeared first on .
]]>The post Casumo’s Charity Initiatives: Giving Back to the Community appeared first on .
]]>My name is Thomas Bennett, and I am here to provide a detailed review of Casumo, an online casino that stands out not only for its gaming offerings but also for its commitment to community welfare. Casumo primarily caters to casual and experienced players alike, offering a vast selection of games including slots, table games, and live options. The unique aspect of this casino revolves around its charity initiatives; the brand is dedicated to giving back to the community. In this article, I will delve deep into what makes Casumo a top choice for online gaming enthusiasts, while spotlighting Casumo’s charity initiatives: giving back to the community.
The Casumo casino website is user-friendly, featuring a sleek and modern interface that appeals to both new and seasoned players. Upon visiting, users are greeted with vibrant colors and an intuitive layout which makes navigation seamless. Registration is a straightforward process—players can sign up in just a few minutes by providing necessary information. The registration form requires personal details, and users must choose a username and password. Following this, new players can access an array of promotions, including a generous welcome bonus that often includes matched deposits and free spins.
Casumo’s bonuses are some of the most enticing in the online casino realm, designed to attract and retain players. Here’s a brief rundown of the different promotional offerings:
Players are encouraged to check the promotions page regularly to stay updated on Casumo’s charity initiatives: giving back to the community. These initiatives sometimes align with specific promotional events, providing players the opportunity to contribute through their gameplay casumo.
When it comes to game selection, Casumo truly excels. The online casino boasts a robust library featuring thousands of titles ranging from classic slots to state-of-the-art live dealer games. Players will find popular titles like Starburst, Gonzo’s Quest, and a variety of progressive jackpots. Beyond slots, the table games section includes classics like blackjack, roulette, and poker. Additionally, the live casino section offers a thrilling experience with real dealers available to interact with players in real-time.
The diverse offerings ensure that every player finds something tailored to their preferences. In summary, here are the game categories available:
With consistent updates and new game releases, users have plenty of entertainment options, which often include games tied to Casumo’s charity initiatives: giving back to the community.
For players who prefer gaming on the go, Casumo offers a mobile-friendly version of its casino, perfectly optimized for smartphones and tablets. The responsive design means that mobile users can access the same features as desktop players, including the same extensive game library and promotional offers. There’s no need to download a dedicated app as the website adjusts automatically to the device being used. This flexibility is particularly advantageous for those who engage in Casumo’s charity initiatives: giving back to the community, allowing players to participate in events wherever they might be.
Casumo provides a range of convenient banking options for players looking to deposit or withdraw funds. Common payment methods include credit/debit cards, e-wallets, and bank transfers. The casino ensures quick processing times for most transactions, making it easy for users to manage their finances. Here’s a brief outline of the withdrawal process: casumo bonus code
Verification is mandatory for security purposes, requiring players to provide identification documents before withdrawing winnings. This enhances player safety, ensuring a secure gaming environment.
Operating under the auspices of Casumo Services Limited, the casino is licensed by the Malta Gaming Authority, a prestigious regulatory body in the online gaming world. This license signifies that Casumo adheres to stringent safety and fair play standards, which assures players of a well-regulated environment. Additionally, player data is safeguarded using high-level encryption technology, enhancing the safety of personal and financial information. To summarize the safety features:
These foundational elements underline Casumo’s commitment to a secure and responsible gaming experience, paralleling their ethos in Casumo’s charity initiatives: giving back to the community.
In conclusion, Casumo stands out for its extensive game offerings, user-friendly interface, and an evident commitment to community welfare through various charity initiatives. The seamless user experience, combined with robust safety measures, makes it a reliable choice for online players. For those looking for a fun, safe, and community-focused gaming solution, Casumo fits the bill perfectly. By engaging in its charity initiatives, players not only enjoy their games but also contribute to positive social endeavors, making every spin count towards something greater casumo pokies casumo payments casumo mobile casumo login.
The post Casumo’s Charity Initiatives: Giving Back to the Community appeared first on .
]]>The post How to Choose the Best Wiz Slots for Your Style: A Review of SpinPalace Casino appeared first on .
]]>Hi there! I’m Jack Thompson, and today I’ll guide you through the world of online gaming by reviewing SpinPalace Casino. In this article, you will learn how to choose the best Wiz slots for your style at this renowned casino, which is perfect for both new and experienced players. SpinPalace is distinguished for its vast game selection, attractive bonuses, and exceptional user experience, making it an ideal choice for anyone looking to dive into the realm of online slots.
SpinPalace Casino is an established online gambling platform that has been operating since 2001. With its vibrant interface and diverse gaming options, this casino caters to players with various preferences, especially those fond of slots. If you’re wondering how to choose the best Wiz slots for your style, SpinPalace Casino provides the tools and bonuses to enhance your gaming experience. The website is user-friendly and designed to help you navigate through different sections effortlessly, ensuring a pleasant experience while you explore their offerings.
The SpinPalace Casino website boasts a sleek and modern design that is visually appealing. Upon visiting the site, I was immediately impressed by its smooth navigation and vibrant graphics. The homepage showcases popular games, promotions, and a user guide, making it easier to find what you’re looking for. Here are some of the key features I appreciated:
In learning how to choose the best Wiz slots for your style, the user experience at SpinPalace significantly impacts your enjoyment. The intuitive interface allows players of all levels to easily discover their preferred games without overwhelming them wizslotsnz.com.
Getting started at SpinPalace is as simple as it gets. Here’s how the registration process works:
This straightforward process ensures that you can start playing quickly. Understanding how to choose the best Wiz slots for your style can begin as soon as you log in and explore the extensive library of games available at SpinPalace.
SpinPalace Casino offers an attractive welcome package that is hard to ignore. Here’s what new players can expect:
These bonuses are vital when looking at how to choose the best Wiz slots for your style. They provide extra funds to explore games without risking too much of your own money. Be sure to check for promo codes as they can alter your bonus offerings.
When considering how to choose the best Wiz slots for your style, SpinPalace doesn’t disappoint. With a robust collection of over 600 games, you’ll find everything from classic 3-reel slots to immersive video slots with engaging themes and storylines. I found that the categorization of games—such as ‘New’, ‘Popular’, and ‘Jackpot Slots’—helps immensely in navigating the selection. In addition, they have a top-tier live casino experience offering:
The diversity of games available empowers players to explore various options, enabling them to identify how to choose the best Wiz slots for their style while enjoying an exhilarating gaming experience.
SpinPalace Casino prioritizes the security of its players by incorporating reputable payment methods. Users can deposit and withdraw through various channels, ensuring a seamless experience. I noted the following options:
Withdrawals are straightforward, but it’s important to verify your identity during your initial cash-out request. This is part of SpinPalace’s commitment to maintaining a secure environment for players. Understanding how to choose the best Wiz slots for your style becomes easier when you know you have financial protection throughout your gaming journey.
SpinPalace Casino is operated by Palace Group and holds a license from the Malta Gaming Authority (MGA). This license indicates that the casino meets strict regulations and standards set forth for online gambling. Players can feel safe knowing that their rights are protected and that the games are fair and secure. Here’s what the license means:
Knowing this enhances your confidence when determining how to choose the best Wiz slots for your style. Players can rest assured that they are playing in a safe and regulated environment at SpinPalace.
In summary, SpinPalace Casino offers an exciting platform for both novice and experienced players to explore their gaming preferences. By providing a variety of slots, generous bonuses, and a user-friendly interface, it clearly answers the question of how to choose the best Wiz slots for your style. Every aspect, from registration to gameplay and secure banking, is tailored to enhance your overall experience. Whether you are after engaging gameplay or lucrative rewards, SpinPalace has it all.
The post How to Choose the Best Wiz Slots for Your Style: A Review of SpinPalace Casino appeared first on .
]]>