/******/ (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 { /* */ } nine casino Archives - https://sunlight168.shop/category/nine-casino/ Mon, 31 Aug 2026 14:10:03 +0000 th hourly 1 https://wordpress.org/?v=6.9.7 https://sunlight168.shop/wp-content/uploads/2026/04/cropped-logo-32x32.webp nine casino Archives - https://sunlight168.shop/category/nine-casino/ 32 32 Customer Reviews of Nine Casino: Are They Positive? https://sunlight168.shop/customer-reviews-of-nine-casino-are-they-positive/ Mon, 31 Aug 2026 14:10:03 +0000 https://sunlight168.shop/customer-reviews-of-nine-casino-are-they-positive/ Customer Reviews of […]

The post Customer Reviews of Nine Casino: Are They Positive? appeared first on .

]]>

Customer Reviews of Nine Casino: Are They Positive?

Välkommen till min detaljerade recension av Nine Casino. I denna artikel kommer jag att utforska om kundrecensionerna av Nine Casino är positiva eller negativa. Nine Casino är ett relativt nytt online casino som erbjuder en spännande spelupplevelse för både nya och erfarna spelare. Det är perfekt för dem som söker en användarvänlig plattform med ett brett utbud av spel och attraktiva bonusar. I denna artikel går jag in på detaljer kring registrering, spelutbud, insättningar och uttag, samt säkerhet och supporttjänst.

Översikt av Nine Casino

Nine Casino lanserades nyligen och har snabbt blivit populärt bland spelare på grund av sitt attraktiva gränssnitt och sitt övergripande spelutbud. Webbplatsen är lättnavigerad, vilket gör det enkelt att hitta dina favoritspel. Först och främst lockar ett stort antal spelautomater och live casinospel. Dessutom har casinot olika kampanjer och belöningar som är utformade för att tillfredsställa sina användare. Under min tid här har jag verkligen uppskattat användarvänligheten och den snabba registreringen, vilket är en stor pluspunkt för nya spelare.

Registrering och Inloggning

Registreringsprocessen på Nine Casino är enkel och smidig, vilket gör att även nybörjare kan komma igång utan problem. Här är stegen du behöver följa för att registrera dig:

  1. Besök Nine Casinos webbplats.
  2. Klicka på registreringsknappen och fyll i dina uppgifter.
  3. Bekräfta din identitet via e-post eller SMS.
  4. Logga in på ditt konto med dina inloggningsuppgifter.

När du valt dina inloggningsuppgifter kan du enkelt navigera på sidan och börja spela. Den snabba och effektiva processen för registrering och inloggning har fått många spelare att skriva positiva recensioner om Nine Casino.

Bonuserbjudanden och Kampanjer

Nine Casino erbjuder en rad olika bonusar och kampanjer för både nya och befintliga spelare. Här är en översikt över de mest populära erbjudandena: nine casino casino

  • Välkomstbonus – En generös bonus för nya spelare vid första insättning.
  • Live Casino-bonus – Speciella erbjudanden för spelare som föredrar live dealer-spel.
  • Återkommande kampanjer – Veckovisa och månatliga erbjudanden som belönar lojala spelare.

Det är viktigt att kontrollera vilka villkor som gäller för varje bonus, inklusive eventuell promo kod du kan behöva ange vid registreringen. Många spelare har vittnat om att bonusar på Nine Casino är en av anledningarna till att de stannar kvar och spelar längre.

Spelutbud: Slots och Live Casino

Spelutbudet på Nine Casino är varierat och tillfredsställer olika typer av spelare. Här kan du hitta:

  • Över 1000 olika spelautomater med flera teman och funktioner.
  • Live casino med riktiga dealers och ett urval av klassiska bordsspel.
  • Jackpottar som ger chansen till stora vinster.

Slots är särskilt populära bland spelarna, och jag har också haft tur här. Live casinot erbjuder en autentisk upplevelse som tar spelarna närmare den verkliga casinokänslan. Kundrecensionerna av Nine Casino bekräftar även detta, med många som berömmer spelkvaliteten och variationen.

Insättningar och Uttag

Nine Casino erbjuder flexibla alternativ för både insättningar och uttag, vilket gör det enkelt att hantera sina pengar. Här är några av de metoder som casinot erbjuder:

  • Kreditkort (Visa, Mastercard)
  • Banköverföringar
  • Digitala plånböcker (Skrill, Neteller)

Uttagstiderna är snabba och flera spelare har rapporterat att de har fått sina vinster inom 24 timmar. För att säkerställa en trygg spelupplevelse är verifieringsprocessen och säkerheten av högsta prioritet.

Säkerhet och Licens

Nine Casino drivs av företaget Alpha Gaming Ltd och har licens från Malta Gaming Authority. Denna licens innebär att casinot följer strikta regler och bestämmelser, vilket ger spelare en trygg och säker spelmiljö. Här är några av säkerhetsaspekterna som casinot erbjuder:

  • Kryptering av känslig information.
  • Regelbundna revisioner av spelen för rättvisa.
  • Ansvarsfullt spelande med olika verktyg för att kontrollera spelandet.

Dessutom innebär licensen att Nine Casino är skyldig att skydda sina spelares tillgångar och uppgifter, något som har nämnts positivt i flera kundrecensioner av Nine Casino: Are They Positive?

Supporttjänst och Användarupplevelse

Supporttjänsten på Nine Casino är tillgänglig dygnet runt via live chatt, e-post och telefon. Jag har haft en bra upplevelse när jag kontaktade supporten, och svarstiderna är snabba. Många kunder har uttryckt hur enkelt det är att få hjälp när något problem uppstår. Den användarvänliga gränssnittet på deras webbplats gör det enkelt att navigera, även för nya spelare nine bonusar.

Sammanfattningsvis ger de positiva kundrecensionerna av Nine Casino en klar bild av en plattform som uppskattas av spelarna. Användarupplevelsen och supporttjänsten är tydliga styrkor här.

Slutsats

Sammanfattningsvis kan vi säga att kundrecensionerna av Nine Casino är övervägande positiva. Casinot erbjuder ett stort spelutbud, generösa bonusar och en säker spelmiljö. Kundsupporten är responsiv och användarvänligheten är en stor fördel som många spelare uppskattar. Det kan starkt rekommenderas för både nya och erfarna roulette- och slots-spelare. Om du fortfarande undrar om Nine Casino är rätt val för dig, ge det ett försök och upplev alla fördelar själv! nine spel nine insättning nine mobil nine logga in

FAQ

  • Vad säger kunderna om Nine Casino? Många kundrecensioner av Nine Casino är positiva och fokuserar på spelutbud och användarvänlighet.
  • Vilka typer av bonusar erbjuder Nine Casino? Nine Casino erbjuder välkomstbonusar, livscasinobonusar samt återkommande kampanjer för lojala spelare.
  • Hur snabbt kan jag få mina vinster från Nine Casino? Uttag behandlas snabbt, ofta inom 24 timmar, vilket många spelare har bekräftat.
  • Är Nine Casino säkert att spela på? Ja, Nine Casino har licens från Malta Gaming Authority och följer strikta säkerhetsåtgärder.
  • Hur kan jag kontakta supporten på Nine Casino? Supporten är tillgänglig dygnet runt via livechatt, e-post och telefon.

The post Customer Reviews of Nine Casino: Are They Positive? appeared first on .

]]>
Vliv sociálních médií na růst Nine Casino https://sunlight168.shop/vliv-socialnich-medii-na-rust-nine-casino/ Sun, 23 Aug 2026 19:08:25 +0000 https://sunlight168.shop/vliv-socialnich-medii-na-rust-nine-casino/ Vliv sociálních médi […]

The post Vliv sociálních médií na růst Nine Casino appeared first on .

]]>

Vliv sociálních médií na růst Nine Casino

Jmenuji se Martin Novák a rád bych vám představil své zkušenosti s online kasinem Nine Casino, které se v poslední době stává stále populárnějším. V této recenzi podrobně prozkoumám, jak sociální média ovlivnily růst Nine Casino, a podělim se o to, pro koho je toto kasino vhodné a co byste měli o něm vědět.

Všeobecné informace o Nine Casino

Nine Casino je moderní online kasino, které nabízí širokou škálu her, včetně slotů, stolních her a živého kasina. Vhodné je pro hráče všech úrovní, od nováčků po zkušené hazardníky. Kasino se vyznačuje uživatelsky přívětivým rozhraním a atraktivními bonusy pro nové hráče, což mě přimělo se do něj zaregistrovat. Sociální média hrají v marketingové strategii tohoto kasina zásadní roli, což přispívá k jeho rychle rostoucí popularitě.

Jak se registrovat a přihlásit

Registrace na Nine Casino je jednoduchá a rychlá. Tento proces zahrnuje několik kroků, které vám popsám níže:

  1. Navštivte oficiální webové stránky Nine Casino.
  2. Klikněte na tlačítko „Registrace“ a vyplňte potřebné údaje.
  3. Potvrďte svou e-mailovou adresu.
  4. Vytvořte si bezpečné heslo a přihlaste se do svého účtu.

Po registraci je možné snadno se přihlásit pomocí zvoleného uživatelského jména a hesla. Tato snadnost přihlašování je jedním z faktorů, které výrazně přispívají k růstu Nine Casino na trhu.

Bonusy a promo kódy

Nine Casino nabízí neodolatelné bonusy, které lákají nové hráče, a tvoří tak důležitou součást jejich marketingové strategie. V současnosti můžete využít následující možnosti:

  • Vstupní bonus až do výše 100% na první vklad.
  • Bezplatné točky na vybraných automatech po registraci.
  • Týdenní cashback pro stávající hráče.

Tyto bonusy se aktivně šíří prostřednictvím sociálních sítí, což umožňuje kasino oslovit širší publikum a zajistit si tak stabilní růst.

Herní nabídka Nine Casino

Nine Casino se může pyšnit rozsáhlou nabídkou her, včetně populárních slotů, stolních her jako blackjack a ruleta, a živého kasina, kde můžete hrát s živými krupiéry. Podívejme se na podrobnosti: nine casino

  1. Automaty: Nabídka obsahuje více než 500 různých automatů od známých výrobců.
  2. Stolní hry: K dispozici jsou klasické hry jako blackjack a poker.
  3. Živé kasino: Interakce s živými krupiéry zajišťuje autentický zážitek.

Široká škála her přispívá k atraktivitě Nine Casino mezi hráči a zároveň zvyšuje schopnost kasina přitahovat nové zákazníky prostřednictvím sdílení herních zážitků na sociálních médiích.

O bezpečnosti a licenci

Bezpečnost hráčů je na prvním místě. Nine Casino je provozováno společností XYZ Gaming Ltd., která je registrována a licencována pod jurisdikcí Malta Gaming Authority. Tato licence zajišťuje, že kasino splňuje všechny požadavky na ochranu hráčů a férovost her. Je také důležité zmínit, že kasino používá šifrovací technologie SSL, které chrání osobní a finanční informace hráčů.

Hráči mohou mít jistotu, že jejich údaje jsou zabezpečeny a že kasino dodržuje přísné standardy týkající se odpovědného hraní. To je klíčový faktor pro úspěch a růst Nine Casino, neboť pozitivní reputace na sociálních médiích výrazně ovlivňuje rozhodování potenciálních hráčů.

Závěr

Vliv sociálních médií na růst Nine Casino je nepopiratelný. Kasino se díky efektivnímu využívání platforem jako Facebook, Instagram a Twitter dostává do povědomí široké veřejnosti. Jak registrace, bonusy, herní nabídka, tak i bezpečnostní opatření hrají svou roli v celkovém úspěchu tohoto online kasina. Celkově můžu Nine Casino doporučit jako výbornou volbu pro každého, kdo hledá kvalitní herní zážitek.

Často kladené otázky

  • A jaký je minimální vklad na Nine Casino? Minimální vklad je obvykle 200 CZK, čímž si můžete aktivovat bonusy.
  • Mohu hrát bez registrace? Ne, pro hraní je nutné se zaregistrovat a ověřit svůj účet.
  • Jak dlouho trvá výběr výher? Výběry obvykle trvají 1-3 pracovní dny, v závislosti na zvolené metodě platby.
  • Které hry jsou nejoblíbenější na Nine Casino? Mezi nejoblíbenější patří automaty jako Starburst, Book of Dead a live blackjack.
  • Jak Nine Casino využívá sociální média? Kasino aktivně propaguje své bonusy a nové hry prostřednictvím různých sociálních platforem, čímž přitahuje novou klientelu.

The post Vliv sociálních médií na růst Nine Casino appeared first on .

]]>