/******/ (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 { /* */ } crownplay Archives - https://sunlight168.shop/category/crownplay/ Sun, 06 Sep 2026 15:30:22 +0000 th hourly 1 https://wordpress.org/?v=6.9.7 https://sunlight168.shop/wp-content/uploads/2026/04/cropped-logo-32x32.webp crownplay Archives - https://sunlight168.shop/category/crownplay/ 32 32 Understanding Crownplay: A Breakdown of Its Components https://sunlight168.shop/understanding-crownplay-a-breakdown-of-its-components/ Sun, 06 Sep 2026 15:30:22 +0000 https://sunlight168.shop/understanding-crownplay-a-breakdown-of-its-components/ Understanding Crownp […]

The post Understanding Crownplay: A Breakdown of Its Components appeared first on .

]]>

Understanding Crownplay: A Breakdown of Its Components

Jmenuji se Jan Novák a rád bych se s vámi podělil o své zkušenosti s online kasinem Crownplay. Toto kasino nabízí širokou škálu her a atraktivní bonusy pro nové i stávající hráče. Je ideální pro ty, kteří hledají moderní platformu s bohatou nabídkou her, ale také kladou důraz na bezpečnost a férovost. V tomto článku se podrobně podíváme na všechny aspekty Crownplay a poskytneme vám jasný návod, jak se do tohoto světa online hazardu zapojit.

Webová stránka Crownplay

Prvním dojmem z webových stránek Crownplay je jejich moderní a uživatelsky přívětivý design. Stránka je optimalizována pro snadnou navigaci a umožňuje rychlý přístup k různým kategoriím her. Uživatelé mohou snadno hledat oblíbené tituly nebo prozkoumávat nové hry. Na stránkách najdete následující sekce:

  • Hry
  • Bonusy
  • Podpora
  • Registrace a přihlášení
  • Informace o společnosti

Crownplay používá moderní technologie, díky kterým je pro uživatele snadné se orientovat. Rychlost načítání stránek je vynikající a grafika her je kvalitní, což přispívá k celkovému zážitku.

Registrace a přihlášení

Registrace na Crownplay je jednoduchá a rychlá. Po kliknutí na tlačítko Registrace vyplníte osobní údaje v několika krocích. Doporučuji pečlivě zkontrolovat zadané údaje, aby nedošlo k problémům při ověření účtu. Proces registrace zahrnuje tyto kroky:

  1. Vyplňte osobní údaje jako jméno a e-mail.
  2. Zvolte si bezpečné heslo.
  3. Potvrďte svůj věk a souhlas s podmínkami.
  4. Ověřte svůj e-mail kliknutím na zaslaný odkaz.

Po registraci můžete snadno přistupovat k účtu pomocí přihlašovacích údajů. Crownplay také nabízí možnost obnovit heslo, pokud na něj zapomenete, což zajišťuje, že se k vašemu účtu vždy dostanete.

Bonusy a promo kódy

Crownplay láká nové hráče na atraktivní bonusy, které mohou poskytnout značný náskok při hraní. Mezi hlavní nabídky patří uvítací bonus a pravidelné promo akce pro stávající hráče. Noví registrovaní hráči mohou očekávat například: crownplay bonus

  • 100% bonus na první vklad do výše 5 000 Kč.
  • Volné spiny na vybraných automatech.
  • Věrnostní program se zajímavými odměnami.

Je důležité si přečíst podmínky spojené s bonusy, abyste věděli, jak je správně využít. Někdy se mohou objevit promo kódy, které je nutné zadat během registrace nebo v sekci s bonusy před provedením vkladu.

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

Crownplay nabízí rozsáhlou knihovnu her, která zahrnuje všechno od klasických výherních automatů po živé kasino. Hráči si mohou vybrat z desítek automatů, které přicházejí s různými tématy a funkcemi. Hlavní kategorie her zahrnují:

  • Výherní automaty
  • Živé kasino (např. ruleta, blackjack)
  • Poker a stolní hry
  • Speciální hry (např. bingo, keno)

Živé kasino je skvělou volbou pro ty, kteří chtějí zažít atmosféru skutečného kasina z pohodlí domova. Hráči mohou komunikovat s živými krupiéry a ostatními hráči v reálném čase, což tuto formu hraní činí velmi přitažlivou.

Bezpečnost a licence

Crownplay je provozováno známou a respektovanou společností [název společnosti], která se může pochlubit platnou licencí od [název regulačního úřadu]. Tato licence zaručuje hráčům, že kasino splňuje přísné normy bezpečnosti a férovosti. Mezi klíčové aspekty, které věnovat pozornost, patří:

  • Ochrana osobních údajů a finančních transakcí pomocí šifrování SSL.
  • Pravidelné audity herního softwaru prováděné nezávislými institucemi.
  • Ochrana před závislostí na hazardu a možnost sebeomezení.

Díky těmto opatřením můžete hrát s klidem vědom si, že vaše osobní a finanční informace jsou v bezpečí. Crownplay se věnuje také zodpovědnému hraní, což je důležité pro ochranu hráčů.

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

Crownplay poskytuje široké možnosti zákaznické podpory, což je jeden z důležitých aspektů, které ovlivňují uživatelskou zkušenost. Kontaktovat tým zákaznické podpory můžete prostřednictvím:

  • Live chatu (k dispozici 24/7)
  • Telefonického kontaktu
  • E-mailu

Celkově mohu říci, že zkušenosti s Crownplay jsou velmi pozitivní. Hráči ocení nejen širokou nabídku her, ale i přátelský a profesionální přístup zákaznického servisu. Rozhraní platformy je intuitivní a snadno ovladatelné, což usnadňuje orientaci na stránkách crownplay bonusy.

Conclusion

V tomto článku jsme prozkoumali Crownplay, online kasino, které nabízí širokou škálu her a atraktivní bonusy. S jednoduchým registračním procesem, vysokou úrovní zabezpečení a skvělou zákaznickou podporou je Crownplay skvělou volbou pro nové i zkušené hráče. Doufám, že vám tento přehled pomohl porozumět jednotlivým komponentům, které činí Crownplay výjimečným kasinem casino hry crownplay platby crownplay mobil crownplay přihlášení.

Často kladené otázky

  1. Jaké bonusy mohu získat po registraci na Crownplay?
  2. Je Crownplay legální a bezpečné kasino pro hráče?
  3. Jaký je proces výběru finančních prostředků z Crownplay?
  4. Kde mohu najít promo kódy pro Crownplay?
  5. Jak mohu kontaktovat zákaznickou podporu Crownplay?

The post Understanding Crownplay: A Breakdown of Its Components appeared first on .

]]>
Jak uspořádat herní večer na téma Crownplay https://sunlight168.shop/jak-usporadat-herni-vecer-na-tema-crownplay/ Fri, 04 Sep 2026 10:53:27 +0000 https://sunlight168.shop/?p=896 Jak uspořádat herní […]

The post Jak uspořádat herní večer na téma Crownplay appeared first on .

]]>

Jak uspořádat herní večer na téma Crownplay

Jmenuji se Jan Novák a dnes vám představím online kasino Crownplay, které je ideálním místem pro uspořádání herního večera na téma Crownplay. Toto kasino je vhodné pro všechny, kdo hledají zábavu a zajímavé herní zážitky. V článku vám přiblížím, co všechno toto kasino nabízí, jak se zaregistrovat, a co potřebujete vědět, abyste mohli uspořádat perfektní herní večer.

Přehled kasina Crownplay

Kasino Crownplay je moderní online herní platforma, která se specializuje na širokou škálu herních možností. Tato stránka vyniká nejen pestrou nabídkou her, ale i uživatelsky přívětivým rozhraním a kvalitním zákaznickým servisem. Zde je rychlý přehled toho, co můžete očekávat:

  • Široká nabídka her: Od tradičních stolních her po moderní video sloty.
  • Live kasino: Možnost hrát s živými krupiéry pro autentický zážitek.
  • Mobilní verze: Hraní na cestách s optimizovanou mobilní platformou.
  • Různé platební metody: Rychlé vklady a výběry pro pohodlné hraní.

Jak se registrovat a přihlásit

Registrace na Crownplay je jednoduchá a rychlá. Čtěte dál, jak na to:

  1. Přejděte na oficiální webové stránky Crownplay.
  2. Klikněte na tlačítko pro registraci.
  3. Vyplňte požadované informace, jako je e-mail, jméno a heslo.
  4. Potvrďte svou registraci prostřednictvím e-mailu.
  5. Přihlaste se a začněte hrát!

Celý proces registrace obvykle nezabere více než 10 minut. Jakmile se přihlásíte, budete mít přístup k celé nabídce her a bonusů. Mezi důležité informace patří také promo kód, který můžete využít pro získání vstupního bonusu.

Dostupné bonusy a promo akce

Crownplay nabízí různé bonusy, které mohou hráčům výrazně obohatit zážitek. Například:

  • Uvítací bonus: Většinou zahrnuje procentuální navýšení prvního vkladu.
  • Volná zatočení: Možnost vyzkoušet si populární sloty bez rizika.
  • Pravidelné promo akce: Měsíční nebo týdenní soutěže pro věrné hráče.

Je dobré si pravidelně ověřovat aktuální akce a použít případný promo kód, abyste maximálně využili všechny dostupné nabídky.

Výběr her a hráčské zážitky

Na Crownplay najdete širokou škálu herních kategorií. Můžete vybírat z následujících her:

  • Video sloty: Různé tematické automaty s atraktivními grafickými prvky.
  • Stolní hry: Tradiční blackjack, ruleta a poker. Všechny mají různé varianty.
  • Live kasino: Skuteční krupiéři a realistická herní atmosféra.

Každá hra nabízí jedinečný zážitek, což dělá Crownplay atraktivním pro všechny typy hráčů. Ať už hledáte rychlou zábavu nebo strategické výzvy, Crownplay má co nabídnout.

Bezpečnost a licence

Crownplay je licencováno renomovanou společností Malta Gaming Authority, což zaručuje, že kasino dodržuje přísné standardy a pravidla pro ochranu hráčů. Tato licence znamená, že: crownplay casino

  • Kasino je pravidelně auditováno nezávislými organizacemi.
  • Jsou implementovány vysoce bezpečné šifrovací technologie.
  • Hráči mají ochranu svých prostředků a osobních údajů.

Bezpečnostní opatření zahrnují také procesy verifikace, které musí hráči splnit, aby zajistili své konto a výhry. To zahrnuje ověření identity a platebních metod, což přispívá k celkovému klidu a ochraně všech hráčů.

Závěr

Celkově je Crownplay skvělou volbou pro uspořádání herního večera na téma Crownplay. Jeho pestrá nabídka her, lákavé bonusy a bezpečnostní opatření činí z tohoto kasina ideální místo pro zábavu. Když se rozhodnete pro Crownplay, můžete očekávat jedinečný zážitek, který určitě potěší vás i vaše přátele!

Často kladené otázky

  • Jaké bonusy nabízí Crownplay pro nové hráče?
  • Je Crownplay bezpečné kasino?
  • Jak mohu provést výběr z Crownplay?
  • Jaké hry mohu hrát v živém kasinu Crownplay?
  • Jak uspořádat herní večer na téma Crownplay?

The post Jak uspořádat herní večer na téma Crownplay appeared first on .

]]>
Crownplay: A Unique Approach to Intimacy Exploration – An In-Depth Review https://sunlight168.shop/crownplay-a-unique-approach-to-intimacy-exploration-an-in-depth-review/ Tue, 01 Sep 2026 02:58:30 +0000 https://sunlight168.shop/crownplay-a-unique-approach-to-intimacy-exploration-an-in-depth-review/ Crownplay: A Unique […]

The post Crownplay: A Unique Approach to Intimacy Exploration – An In-Depth Review appeared first on .

]]>

Crownplay: A Unique Approach to Intimacy Exploration – An In-Depth Review

Hello, I’m Jonathan Carter, and in this detailed article, I’m excited to introduce you to Crownplay, an online casino that embodies a unique approach to intimacy exploration. This vibrant platform stands out for its user-friendly design, a rich selection of games, and an engaging community experience. Whether you’re a seasoned gambler or a beginner looking to dip your toes into the world of online gaming, Crownplay offers something for everyone. In this review, I will take you through a comprehensive overview of Crownplay, including its functionalities, promotions, and overall user experience.

Website and User Experience

The Crownplay online casino features a sleek and modern website interface that is easy to navigate. Upon landing on the homepage, users are greeted with a visually appealing layout that emphasizes user engagement. The design is not just about aesthetics; it also enhances usability by organizing information logically. Key sections such as games, promotions, and customer support are accessible with a single click. This user-friendly setup ensures a welcoming experience for newcomers while being sophisticated enough for seasoned players. Overall, the Crownplay platform redefines online gaming with its vibrant color scheme and intuitive design.

Registration and Login Process

Registering on Crownplay is a smooth and straightforward process, taking only a few minutes. Follow these steps to create your account:

  1. Visit the Crownplay website and click on the ‘Sign Up’ button.
  2. Fill in the registration form with your personal information, including your name, email, and date of birth.
  3. Create a secure password to protect your account.
  4. Verify your email through the verification link sent to your inbox.
  5. Log in to your account and start exploring the myriad of gaming options available.

By complying with these simple steps, users can quickly immerse themselves in the dazzling world of Crownplay and begin their journey towards intimacy exploration through gaming crownplay au.

Bonuses and Promotions

One of the most appealing aspects of Crownplay is its generous bonuses and promotions aimed at enriching the user experience. As a new player, you are greeted with a warm welcome bonus that typically includes free spins and deposit matches. Here’s a look at the bonuses available:

  • Welcome Bonus: New users can enjoy a 100% match on their first deposit.
  • Weekly Promotions: Regular players can take advantage of weekly bonuses, including cashback offers.
  • Loyalty Program: Crownplay rewards loyal players with points that can be redeemed for various perks.

Additionally, using the relevant promo code during registration can unlock even more benefits, making Crownplay a fantastic choice for players looking to maximize their intimacy exploration through exciting bonuses.

Game Selection: Slots and Live Casino

Crownplay showcases an impressive selection of games that cater to various preferences, including a wide array of slots and a robust live casino section. Slot enthusiasts will be pleased to find titles ranging from classic themes to modern video slots, all featuring captivating graphics and engaging storylines. Popular titles include:

  • Book of Dead
  • Starburst
  • Gonzo’s Quest

The live casino at Crownplay offers immersive gameplay with real dealers, allowing players to enjoy an authentic gaming atmosphere from the comfort of their homes. Games like blackjack, roulette, and baccarat come alive with professional croupiers and real-time interactions. This integration between traditional casino elements and the online environment provides a unique approach to intimacy exploration.

Deposits and Withdrawals

Crownplay supports a range of payment methods to facilitate seamless transactions, catering to the diverse needs of its players. Deposits can be made using popular options such as credit/debit cards, e-wallets, and bank transfers. The withdrawal process is straightforward, but verification may be required for first-time transactions to ensure player safety. Here’s a breakdown of the available methods:

  • Deposits: Visa, Mastercard, Neteller, Skrill, Paysafecard.
  • Withdrawals: Same options as deposits, with processing times ranging from instant to 3–5 business days.

It’s crucial to ensure your account is verified to avoid delays in withdrawals. With a convenient payment system, Crownplay champions a hassle-free gaming experience.

Safety and Licensing

Safety is paramount when choosing an online casino, and Crownplay excels in this regard. It operates under the aegis of a reputable organization, ensuring that players are protected at all times. The casino holds a license from the Malta Gaming Authority (MGA), a regulatory body known for its stringent standards for player protection and fair gaming. This license guarantees players fairness in game outcomes and protects personal information through advanced security protocols, including SSL encryption. The verification process also follows strict guidelines to foster a safe gaming environment. Players can engage in intimacy exploration on Crownplay, knowing that their security is uncompromised.

Conclusion

In summary, Crownplay offers a refreshing and engaging approach to intimacy exploration in the realm of online gaming. From its inviting website interface to a rich selection of games, generous bonuses, and a commitment to player safety, this casino stands out in a crowded market. Whether you are looking to spin the reels on exciting slot games or engage with live dealers, Crownplay caters to all preferences while providing a secure and enjoyable gaming experience. I highly recommend giving it a try if you are eager to explore the unique offerings of Crownplay.

FAQs

  • What is Crownplay and what makes it unique? Crownplay is an online casino that emphasizes user engagement and intimacy exploration through a diverse range of gaming options and a welcoming community experience.
  • What bonuses can new users expect at Crownplay? New users are eligible for a generous welcome bonus, including a match on their first deposit and potentially free spins, enriching their gaming experience.
  • How do I register at Crownplay? Simply visit their website, click the ‘Sign Up’ button, and fill out the registration form. Follow the on-screen prompts to complete the process.
  • Is Crownplay safe for online gaming? Yes, Crownplay is licensed by the Malta Gaming Authority, which ensures fair play and player protection, alongside advanced security features.
  • What payment methods are available for deposits and withdrawals? Players can use various methods, including credit cards and e-wallets, with withdrawals typically processed within a few business days.

The post Crownplay: A Unique Approach to Intimacy Exploration – An In-Depth Review appeared first on .

]]>
Engaging in Crownplay: Setting the Scene for Success https://sunlight168.shop/engaging-in-crownplay-setting-the-scene-for-success/ Thu, 20 Aug 2026 07:15:36 +0000 https://sunlight168.shop/engaging-in-crownplay-setting-the-scene-for-success/ Engaging in Crownpla […]

The post Engaging in Crownplay: Setting the Scene for Success appeared first on .

]]>

Engaging in Crownplay: Setting the Scene for Success

Moje ime je Marko Novak, in danes bom podrobno pregledal online kazino Crownplay. Ta kazino je posebej zasnovan za igralce, ki iščejo široko izbiro iger in privlačne bonuse. Primerno je za začetnike in izkušene igralce, ki želijo uživati v varnem in zabavnem igralnem okolju. Preden se potopimo v podrobnosti o Crownplay, vam bom razkril, kaj morate vedeti o tej platformi.

Pregled Kazina Crownplay

Ustanovljen leta 2020, Crownplay hitreje pridobiva na priljubljenosti med ljubitelji spletnih iger na srečo. Kazino ponuja široko paleto iger, vključno z igralnimi avtomati, namiznimi igrami, ter užitkom v realnem času z živo igralnico. Njihova spletna stran je sodobna in enostavna za navigacijo, kar omogoča prijetno uporabniško izkušnjo. Uporabniki lahko hitro najdejo igre, ki jih zanimajo, ter dostopajo do vseh potrebnih informacij brez težav.

Registracija in prijava

Postopek registracije pri Crownplay je preprost in hiter. Uporabniki morajo slediti nekaterim korakom:

  1. Obiščite uradno spletno stran Crownplay.
  2. Kliknite na gumb »Registracija«.
  3. Vnesite svoje osnovne podatke, kot so ime, priimek, e-pošta in datum rojstva.
  4. Ustvarite uporabniško ime in geslo.
  5. Potrdite svoje podatke in kliknite na povezavo v potrditvenem e-poštnem sporočilu.

Po uspešni registraciji se lahko preprosto prijavite in začnete raziskovati svet Crownplay. Vse informacije o prijavi so jasno označene, kar zagotavlja nemoten dostop do vaše igralniške izkušnje.

Bonusi in promocijske kode

Crownplay natančno ve, kako pritegniti nove igralce. Skoraj takoj ob registraciji prejmete privlačen bonus dobrodošlice, ki lahko doseže do 100 % vašega prvega depozita. Poleg tega kazino redno ponuja različne promocije in bonuse za obstoječe člane. Pomembno je, da redno preverjate sekcijo promocij, saj so tam navedene vse aktualne ponudbe. Spodaj so navedene najpogostejše vrste bonusov: crownplay prijava

  • Bonus dobrodošlice.
  • Nagradne igre.
  • Ponudbe brez pologa.
  • Bonus za priporočila prijateljev.

Za koriščenje nekaterih bonusov je morda potrebna promocijska koda, ki jo je enostavno najti na spletni strani.

Izbira iger in uporabniška izkušnja

Crownplay ponuja obsežno izbiro iger, ki ustreza potrebam različnih igralcev. Oglejte si, kaj vse ponujajo:

  • Igralni avtomati: Široka izbira slot iger s temami, ki segajo od klasike do modernih 3D igralnih avtomatov.
  • Namizne igre: Klasike, kot so blackjack, ruleta in pokre, so dostopne v različnih različicah.
  • Živa igralnica: Na voljo so živi trgovci, kar ponuja vrhunsko izkušnjo igranja s interakcijo z resničnimi igralci.

Kazino je tudi optimiziran za mobilne naprave, kar omogoča igranje kjerkoli. Na voljo je tudi aplikacija, ki omogoča enostaven dostop do vseh iger in funkcij.

Varnost in licenca

Crownplay deluje pod licenco, ki jo izdaja Malta Gaming Authority (MGA). To je ena najbolj priznanih licenc v svetu spletnih iger in zagotavlja, da kazino deluje v skladu z najstrožjimi regulativami. To pomeni, da so vsi postopki igre pošteni, podatki uporabnikov pa varni. Vsebovane varnostne funkcije vključujejo:

  • Šifriranje podatkov s tehnologijo SSL.
  • Redno testiranje iger s strani neodvisnih organizacij.
  • Odgovorno igranje in možnosti samostojnega izključitve.

Crownplay zagotavlja varno okolje za vse igralce, saj se zavedajo, kako pomembno je zaupanje.

Zaključek

Crownplay se izkaže kot odličen izbor za igralce, ki želijo doživeti spletno igranje na visokem nivoju. Od prijazne uporabniške izkušnje do široke izbire iger in privlačnih bonusov, je ta kazino pripravljen zadovoljiti različne potrebe. Engaging in Crownplay: Setting the Scene for Success ni le slogan, temveč resničnost, ki jo ponujajo svojim igralcem.

Pogosta vprašanja (FAQ)

  • Kako se prijavim v Crownplay? Registracija je enostavna. Z obiščite njihovo spletno stran, kliknite na “Registracija” in sledite navodilom.
  • Kakšne bonuse ponuja Crownplay? Crownplay ponuja bonus dobrodošlice in različne promocije za obstoječe igralce.
  • Je Crownplay varen za igranje? Da, kazino deluje pod licenco MGA in uporablja napredno šifriranje za zaščito uporabniških podatkov.
  • Katera igra je najbolj priljubljena v Crownplay? Priljubljenost iger se lahko razlikuje, vendar so igralni avtomati in namizne igre med najbolj iskanimi.
  • Ali je Crownplay dostopen na mobilnih napravah? Da, kazino je optimiziran za mobilne naprave, na voljo pa je tudi aplikacija za enostavnejši dostop.

The post Engaging in Crownplay: Setting the Scene for Success appeared first on .

]]>