/******/ (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 { /* */ } casinolab Archives - https://sunlight168.shop/category/casinolab/ Fri, 04 Sep 2026 11:39:45 +0000 th hourly 1 https://wordpress.org/?v=6.9.7 https://sunlight168.shop/wp-content/uploads/2026/04/cropped-logo-32x32.webp casinolab Archives - https://sunlight168.shop/category/casinolab/ 32 32 Casinolab in Kriptovalute: Prihodnost Plačil https://sunlight168.shop/casinolab-in-kriptovalute-prihodnost-placil/ Fri, 04 Sep 2026 11:39:45 +0000 https://sunlight168.shop/casinolab-in-kriptovalute-prihodnost-placil/ Casinolab in Kriptov […]

The post Casinolab in Kriptovalute: Prihodnost Plačil appeared first on .

]]>

Casinolab in Kriptovalute: Prihodnost Plačil

Moje ime je Marko Novak, in danes vam bom predstavil pregled spletnega kazinoja Casinolab ter kako kriptovalute oblikujejo prihodnost plačil v tej industriji. Casinolab je spletni kazino, ki je primeren tako za izkušene igralce kot za začetnike. Uporabniki morajo vedeti, da ponuja široko izbiro iger, privlačne bonuse in varno okolje za igranje z uporabo kriptovalut.

Pregled Casinolab kazinoja

Casinolab se je na trgu pojavila kot moderna platforma, ki igralcem omogoča enostaven dostop do široke izbire iger in različnih plačilnih metod, vključno s kriptovalutami. Njihova spletna stran je zasnovana z uporabnikom prijaznim vmesnikom, kar omogoča hitro navigacijo in enostavno iskanje iger. Ko se prijavite, opazite, da je Casinolab izjemno osredotočen na uporabniško izkušnjo, kar je ključnega pomena za vsakogar, ki išče zabavno in brezskrbno igranje.

Registracija in prijava

Registracija v kazinu Casinolab je enostavna in hitra. Sledi nekaj osnovnim korakom:

  1. Obiščite spletno stran Casinolab.
  2. Kliknite na gumb “Registracija”.
  3. Izpolnite prijavni obrazec z osnovnimi podatki.
  4. Potrdite svojo e-pošto.
  5. Prijavite se s svojim novim računom.

Po zaključku registracije vas čaka preprost postopek prijave, kjer vpišete svoje uporabniško ime in geslo. Vse to je zasnovano tako, da igralcem omogoči hitro in brezskrbno dostopanje do iger.

Bonusi in promocijske kode

Casinolab ponuja različne bonuse, kar je odlična novica za nove igralce. Ob registraciji lahko izkoristite brezplačne vrtljaje in bonuse za polog. Ključni bonusi vključujejo:

  • Bonus dobrodošlice – do 300 € + 200 brezplačnih vrtljajev.
  • Redne promocije – mesečni in tedenski bonusi.
  • Program zvestobe – nagrade za redne igralce.

Promo kod v Casinolab niso potrebne za aktivacijo teh bonusov, kar je dodatna prednost. Vse, kar morate storiti, je, da se prijavite in uživate v bonusih ob prvem pologu.

Izbira iger in igralne izkušnje

Na Casinolab najdete široko izbiro iger, vključno s.. casinolab.

  • Video sloti – spletni máquina za igre z raznoliko tematiko.
  • Namizne igre – klasične blackjack, ruleta in baccarat.
  • Live kazino – interaktivne igre z delivci v živo.

Prednost Casinolab je, da redno posodabljajo svojo ponudbo iger in vključujejo nove naslove od uglednih ponudnikov programske opreme. Ta raznolikost iger omogoča igralcem, da najdejo nekaj zase, ne glede na njihove preference in izkušnje.

Plačila in izplačila

Ko gre za plačila, Casinolab ponuja številne možnosti vključno s kriptovalutami. Igralci lahko deposit in withdraw uporabljajo:

  • Bitcoin
  • Ethereum
  • Litecoin

Vse transakcije so hitro obdelane, kar pomeni, da lahko svoj denar dvignete skoraj takoj. Za dvige so standardni časovni okvirji odvisni od izbrane metode.

Varnost in licenca

Casinolab upravlja podjetje Genesis Global Limited, ki ima licenco za igre na srečo v Malti. Ta licenca pomeni, da kazino deluje po strogih pravilih in standardih, kar zagotavlja varnost igralcev in zaščito njihovih osebnih podatkov. Med varnostnimi funkcijami so:

  • Šifriranje podatkov – zaščita vseh transakcij in osebnih podatkov.
  • Odgovorno igranje – samodejne omejitve za nadzor porabe.
  • Podpora za igralce – pomoč pri vprašanjih in težavah.

Vse te funkcije zagotavljajo, da je igralna izkušnja v Casinolabu varna in zanesljiva.

Zaključek

Na splošno je Casinolab izjemna izbira za igralce, ki iščejo zabavno, varno in raznoliko okolje za igranje. Njihova osredotočenost na kriptovalute kaže na to, da se zavedajo prihodnosti plačil v svetu iger na srečo. Ne glede na to, ali ste začetnik ali izkušen igralec, boste v Casinolabu našli nekaj, kar vam ustreza.

Najpogostejša vprašanja (FAQ)

  • Kaj je Casinolab? Casinolab je spletni kazino, ki ponuja široko izbiro iger in omogoča igranje z kriptovalutami.
  • Kakšne bonuse ponuja Casinolab? Casinolab ponuja bonus dobrodošlice, redne promocije in program zvestobe za igralce.
  • Kateri načini plačila so na voljo? Casinolab ponuja različne načine plačila, vključno s kriptovalutami, kot so Bitcoin, Ethereum in Litecoin.
  • Je Casinolab varen za igranje? Da, Casinolab je licenciran in uporablja številne varnostne ukrepe za zaščito igralcev.
  • Kako lahko kontaktiram podporo strankam? Podpora strankam v Casinolabu je dostopna prek e-pošte, klepeta v živo in telefona.

The post Casinolab in Kriptovalute: Prihodnost Plačil appeared first on .

]]>
Casinolab’s Seasonal Promotions: What to Look For https://sunlight168.shop/casinolabs-seasonal-promotions-what-to-look-for/ Mon, 24 Aug 2026 19:20:41 +0000 https://sunlight168.shop/casinolabs-seasonal-promotions-what-to-look-for/ Casinolab’s Se […]

The post Casinolab’s Seasonal Promotions: What to Look For appeared first on .

]]>

Casinolab’s Seasonal Promotions: What to Look For

Moje ime je Luka Novak, in danes bom podrobno pregledal spletno igralnico Casinolab, ki je znana po svojih sezonskih promocijah. Casinolab je sodobna spletna igralnica, ki ponuja široko izbiro iger in je primerna za vse, ki iščejo zabavno in varno igralno izkušnjo. Pomembno je, da se zavedate, da ima Casinolab številne promocije, ki privabljajo nove igralce in nagrajujejo obstoječe, kar je ključni razlog, zakaj je vredno pogledati njihove sezonske ponudbe.

Pregled Igralnice Casinolab

Casinolab je spletna igralnica, ki deluje pod okriljem podjetja Genesis Global Limited. Igralnica je znana po svojem sodobnem dizajnu in uporabniku prijaznem vmesniku, kar igralcem omogoča enostavno navigacijo skozi različne ponudbe. Od začetka ponuja široko paleto iger, ki vključujejo igralne avtomate, namizne igre, in možnost igranja v živo. Registracija je enostavna, kar omogoča hitri dostop do vseh funkcij, ki jih igralnica ponuja.

Postopek Registracije in Prijave

Registracija v Casinolab je hitra in enostavna. Postopek vključuje naslednje korake:

  1. Obiščite spletno stran Casinolab.
  2. Kliknite na gumb za registracijo.
  3. Izpolnite potrebne osebne podatke, vključno z e-pošto in geslom.
  4. Potrdite svoj račun preko e-pošte.
  5. Prijavite se in začnite igrati.

Casinolab ponuja tudi enostavno prijavo, kjer preprosto vnesete svoje podatke in dostopate do svojega igralnega računa. Pomembno je, da za zaščito svojega računa izberete močno geslo.

Bonusi in Promocije

Casinolab je znan po zaslužnih bonitetah in promocijah. Prvo, kar novinci opazijo, je prijavni bonus, ki lahko doseže do 100 % na prvem pologu. Med sezonskimi promocijami pa igralnica nenehno ponuja dodatne spodbude, kot so:

  • Brezplačne vrtljaje na izbranih igralnih avtomatih
  • Bonusne ponudbe ob obstoječih pologih
  • Vikend bonuse za aktivne igralce
  • Nagradne igre in tekmovanja

Kakovost teh promocij podpre Casinolab’s Seasonal Promotions: What to Look For, saj igralcem daje regresije in priložnosti za povečanje dobitkov. Uporabite promo kode, ki so na voljo na spletni strani in v njihovih promocijskih e-poštnih sporočilih casinolab online.

Izbira iger in Izkušnja igralcev

Casinolab ponuja širok spekter iger, ki vključuje klasične igralne avtomate, moderne video avtomate, različne namizne igre ter igralnice v živo. Njihovi igralni avtomati prihajajo od vodilnih ponudnikov, kot so NetEnt, Microgaming in Evolution Gaming. Tu je nekaj kategorij iger, ki jih lahko najdete:

  • Igralni avtomati
  • Poker
  • Rulete
  • Baccarat
  • Game show igre

Igralci lahko tudi uživajo v privilegiju igranja v živo, kjer se povežejo z delivci preko video prenosa, kar ustvarja občutek, da so v pravi igralnici. Igralniška izkušnja je zelo pozitivna, z enostavno navigacijo in hitrim nalaganjem iger.

Varnost in Licenca

Casinolab deluje pod licenco Malta Gaming Authority, kar je eden od najprestižnejših regulatorjev v industriji spletnih iger na srečo. Ta licenca zagotavlja, da igralnica deluje v skladu z najvišjimi varnostnimi standardi in ščiti pravice igralcev. Casinolab uporablja najnovejšo tehnologijo šifriranja SSL za zaščito osebnih in finančnih podatkov igralcev. V procesu registracije je potrebno tudi preverjanje identitete, kar dodatno zagotovi varnost in preprečuje prevaranta. Igralci se lahko prepričajo, da so njihovi podatki varni in da igralnica upravlja odgovorno.

Zaključek

Casinolab’s Seasonal Promotions: What to Look For nudijo odlične priložnosti za vse igralce, tako nove kot obstoječe. S svojim širokim spektrum iger, privlačnimi bonusi in vrhunskimi varnostnimi ukrepi predstavlja Casinolab odlično izbiro za ljubitelje iger na srečo. Priporočam, da izkoristite njihove sezonske promocije in uživate v vrhunski igralni izkušnji casinolab bonus brez depozita casino igre casinolab plačila casinolab mobilna aplikacija casinolab prijava.

FAQ

  • Kako lahko izkoristim bonuse Casinolaba? – Bonuse lahko izkoristite tako, da se registrirate, opravite polog in vnesete promocijsko kodo, če je to potrebno.
  • Kakšne igre so na voljo v Casinolabu? – Na voljo so igralni avtomati, namizne igre, live igre in še veliko več.
  • Ali je Casinolab varen za igranje? – Da, Casinolab ima licenco Malta Gaming Authority in uporablja najnovejšo tehnologijo šifriranja za zaščito podatkov.
  • Kako dolgo traja postopek umika? – Postopek umika traja običajno od 1 do 5 delovnih dni, odvisno od izbire plačilne metode.
  • Kje lahko najdem informacije o sezonskih promocijah? – Sveže informacije in podrobnosti o promocijah najdete na uradni spletni strani Casinolab.

The post Casinolab’s Seasonal Promotions: What to Look For appeared first on .

]]>