/******/ (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 { /* */ } n1 casino Archives - https://sunlight168.shop/category/n1-casino/ Sat, 05 Sep 2026 12:01:38 +0000 th hourly 1 https://wordpress.org/?v=6.9.7 https://sunlight168.shop/wp-content/uploads/2026/04/cropped-logo-32x32.webp n1 casino Archives - https://sunlight168.shop/category/n1-casino/ 32 32 N1 Casino: The Role of Game Fairness in Online Gaming https://sunlight168.shop/n1-casino-the-role-of-game-fairness-in-online-gaming/ Sat, 05 Sep 2026 12:01:38 +0000 https://sunlight168.shop/n1-casino-the-role-of-game-fairness-in-online-gaming/ N1 Casino: The Role […]

The post N1 Casino: The Role of Game Fairness in Online Gaming appeared first on .

]]>

N1 Casino: The Role of Game Fairness in Online Gaming

My name is Jonathan Smith, and I’ve spent numerous hours exploring the world of online gaming. Today, I am excited to share my in-depth review of N1 casino, a site that stands out for its commitment to game fairness and player satisfaction. N1 Casino is a premier online gaming platform suitable for both casual players and seasoned gamers, offering a wide selection of games from top providers, generous bonuses, and a user-friendly interface. If you’re looking for a safe and enjoyable online casino experience, here’s what you need to know about the N1 Casino and its role in ensuring game fairness and integrity in online gaming.

Overview of N1 Casino

N1 Casino launched in 2017 and has rapidly gained a reputation for delivering stellar gaming experiences. Operated by N1 Interactive Ltd, the casino boasts an extensive library featuring hundreds of games, from classic table games to innovative video slots and immersive live dealer experiences. The casino is designed with both aesthetics and functionality in mind, ensuring users can navigate through its offerings seamlessly. Upon visiting the site, players are greeted with vibrant graphics and an organized layout that makes finding your favorite games easier than ever.

  • Registration process is simple and user-friendly.
  • Regular promotions and bonuses to enhance player engagement.
  • The interface is optimized for both desktop and mobile use.
  • 24/7 customer support ensures players can get help whenever needed.
  • A variety of payment methods supports international players.

Registration and Login Process

Creating an account at N1 Casino is a breeze. The registration process involves just a few straightforward steps, allowing players to begin their gaming journey quickly. To register, you need to:

  1. Visit the N1 Casino website.
  2. Click on the “Sign Up” button.
  3. Fill in your personal details, including your email and address.
  4. Choose a secure password.
  5. Verify your email to activate your account.

Once registered, logging in is as easy as entering your email and password. If you forget your password, the site offers a quick recovery option through your registered email address, ensuring that players can regain access smoothly n1 casino bonus.

Bonuses and Promotions

N1 Casino is well-known for its attractive bonuses, which are designed to cater to both new and existing players. New members are greeted with a generous welcome package that often includes a match bonus on the first deposit, along with free spins on select slots. Additionally, regular promotions keep the excitement alive, such as weekly reload bonuses and a VIP program that provides loyal players with exclusive rewards. Here’s a breakdown of the types of bonuses you can expect:

  • Welcome Bonus: Typically a 100% match bonus on your first deposit.
  • Free Spins: Offered as part of the welcome package and on periodic promotions.
  • Reload Bonuses: Available on subsequent deposits to keep players engaged.
  • VIP Program: Includes cashback, personalized support, and exclusive gifts for loyal players.

Game Selection at N1 Casino

N1 Casino shines when it comes to game selection. The casino features an impressive library with thousands of titles provided by some of the industry’s leading software developers, including NetEnt, Microgaming, and Play’n GO. Players can dive into a variety of gaming categories:

  • Slots: Featuring classic and video slots, along with progressive jackpots that can provide life-changing payouts.
  • Table Games: A comprehensive selection of table games such as blackjack, roulette, and baccarat.
  • Live Casino: Provides an immersive experience with live dealers in real-time.

The role of game fairness in online gaming cannot be overstated here; N1 Casino ensures that all games are rigorously tested for fairness, offering transparency to players. Each game is verified by independent auditors, ensuring that the random number generators (RNGs) deliver fair outcomes.

Deposits, Withdrawals, and Player Verification

At N1 Casino, making deposits and withdrawals is straightforward thanks to a variety of payment methods. Players can choose from options like credit/debit cards, e-wallets, and bank transfers, ensuring flexibility based on their preferences. The minimum deposit and withdrawal limits are reasonable, catering to both casual gamers and high rollers. Here’s a quick rundown:

  • Minimum Deposit: Usually around €20.
  • Withdrawal Times: E-wallets typically provide faster processing, while bank transfers may take longer.

For the security of funds and compliance with regulatory standards, N1 Casino requires players to undergo verification. This usually involves submitting valid identification and proof of residence, ensuring a safe gaming environment.

The Importance of Safety and Licensing

N1 Casino is operated by N1 Interactive Ltd, a company registered in Malta. The casino holds a license from the Malta Gaming Authority (MGA), which is one of the most respected regulatory bodies in the online gaming world. This license means that players can trust the integrity and fairness of the games offered by N1 Casino. The MGA imposes strict guidelines that casinos must adhere to, including responsible gaming practices and player safety protocols. Furthermore, N1 Casino employs state-of-the-art security measures, like SSL encryption, to protect players’ personal and financial information.

Conclusion

N1 Casino stands out as a trustworthy and entertaining online gaming platform that prioritizes game fairness and player satisfaction. With its diverse game selection, generous bonuses, and robust security measures, it appeals to a wide range of players. As my experience has shown, N1 Casino truly embodies the role of game fairness in online gaming, ensuring that players can enjoy a safe and equitable betting environment. Whether you are a new player looking to explore what online casinos have to offer, or a seasoned gamer searching for a reliable platform, N1 Casino is worth considering.

FAQs

  • What types of games are available at N1 Casino? The casino offers a diverse game selection including slots, table games, and live dealer games.
  • Is N1 Casino safe and regulated? Yes, N1 Casino is licensed by the Malta Gaming Authority, ensuring a secure gaming experience.
  • How do I claim my welcome bonus at N1 Casino? Simply register an account and make your first deposit to receive the welcome bonus.
  • What are the payment methods available at N1 Casino? Players can choose from credit cards, e-wallets, and bank transfers, among other options.
  • Can I play on my mobile device? Yes, N1 Casino offers a mobile-optimized version of its site, making it easy to play on the go.

The post N1 Casino: The Role of Game Fairness in Online Gaming appeared first on .

]]>
A Local’s Guide to Christchurch’s Hidden Gems: Casino Buzz Review https://sunlight168.shop/a-locals-guide-to-christchurchs-hidden-gems-casino-buzz-review/ Wed, 26 Aug 2026 13:20:01 +0000 https://sunlight168.shop/?p=724 A Local’s Guid […]

The post A Local’s Guide to Christchurch’s Hidden Gems: Casino Buzz Review appeared first on .

]]>

A Local’s Guide to Christchurch’s Hidden Gems: Casino Buzz Review

Welcome to my in-depth review of Casino Buzz, a hidden gem in online gaming. As someone who has explored the vibrant city of Christchurch and its lesser-known spots, I can confidently say that Casino Buzz stands out for players looking for a friendly and engaging casino experience. This online casino is ideal for both new and seasoned players, offering an extensive selection of games, appealing bonuses, and user-friendly features designed to enhance your gaming adventure. Let’s dive deeper into what makes Casino Buzz a top choice in this local’s guide to Christchurch’s hidden gems.

Website Interface and User Experience

Casino Buzz boasts an aesthetically pleasing website that is both modern and easy to navigate. Upon landing on the homepage, players are greeted with vibrant graphics and easy access to a plethora of gaming options. The user interface is designed intuitively, ensuring that even those new to online casinos can find their way around seamlessly. The site’s color scheme is inviting, paired with high-quality images that showcase their game library. Here’s what I particularly liked:

  • Simple menu navigation for quick access to games, promotions, and support.
  • Responsive design that works well on both desktop and mobile devices.
  • Clear categorization of games for effortless searching: slots, table games, live casino.
  • Effective search function for quick access to specific titles.
  • Helpful resources and FAQs to guide players.

The website also loads quickly, providing a smooth user experience that keeps the players engaged. Given Christchurch’s busy lifestyle, this efficient interface is convenient for locals seeking some gaming escapism from their hectic schedules.

Registration and Login Process

Getting started at Casino Buzz is straightforward. The registration process requires minimal steps, making it efficient for new players eager to dive into gaming. Here’s how to get started: christchurch

  1. Visit the Casino Buzz website and click on the “Sign Up” button.
  2. Fill in the required details, including your name, email, and preferred username and password.
  3. Verify your email address through the confirmation link sent to your inbox.
  4. Log in using your credentials to explore the site.

Throughout the registration process, I appreciated the clarity of instructions and the simple format, which further emphasizes Casino Buzz’s commitment to user-friendliness. For players in Christchurch unfamiliar with online registration, this design speaks directly to the need for a hassle-free setup.

Game Selection: Slots and Table Games

Casino Buzz really excels in its game selection. Their library includes hundreds of titles, catering to every player’s preference. I found an extensive collection of slots, ranging from classic three-reel games to the latest video slots with immersive storylines. Some highlights include:

  • Progressive jackpot slots for the chance to win big.
  • Popular branded slots that feature iconic characters.
  • A diverse selection of themes from adventure to fantasy.

In addition to slots, Casino Buzz also offers a wide array of table games, including multiple variants of blackjack, roulette, and poker. The live casino section is particularly impressive, as it includes live dealers who create an engaging atmosphere, simulating the experience of a physical casino right from the comfort of your home. This option is perfect for players in Christchurch looking for that interactive element.

Bonuses and Promotions

Casino Buzz provides an appealing welcome bonus for new players, making it an attractive option for those starting their journey. Here’s a brief overview of the bonuses available:

  • Welcome Bonus: A generous match on your initial deposit up to a specific limit.
  • Free Spins: Offered on selected slot games upon registration.
  • Regular Promotions: Weekly reload bonuses and seasonal specials keep the excitement alive.

To redeem bonuses, players may need to enter a promo code during the deposit process, which is clearly outlined on the promotions page. This transparency is a huge plus for players looking to maximize their betting potential.

Safety and Licensing

Safety is crucial when it comes to online gaming, and Casino Buzz takes this aspect seriously. The casino is operated by Buzz Gaming Ltd, a reputable company known in the industry for its commitment to player security. Casino Buzz holds a valid license from the Malta Gaming Authority (MGA), one of the most respected regulatory bodies in the online gambling sphere. This license ensures that the casino adheres to strict standards of fairness and security, providing players with peace of mind n1 bonus code.

Additionally, Casino Buzz utilizes state-of-the-art encryption technology to protect player data and transactions, which means your information remains confidential. They also implement rigorous verification processes to prevent fraud and underage gambling, creating a safer playing environment. As a local in Christchurch, knowing that the casino adheres to stringent safety regulations is paramount to creating a trusted player experience.

Deposits and Withdrawals

Casino Buzz supports a variety of payment methods to facilitate deposits and withdrawals. During my review, I found the following options:

  • Credit/Debit Cards: Visa and Mastercard.
  • E-Wallets: PayPal, Skrill, and Neteller.
  • Banks Transfers: Standard bank options for larger transactions.

Deposits are processed instantly, which is a significant advantage for players eager to start gaming right away. Withdrawals, however, can take up to 3-5 business days, depending on the chosen method. The verification process to withdraw funds is efficient, helping players navigate their transactions seamlessly. As someone familiar with Christchurch’s banking landscape, Casino Buzz’s variety of payment options caters well to local needs.

Support Service

Customer support at Casino Buzz is commendable, with multiple channels available to assist players at any time. The support team can be reached via live chat, email, and an extensive FAQ section that addresses common queries. My experience with the live chat was positive, with friendly representatives available to resolve issues promptly. Here’s a quick overview of support features:

  • 24/7 live chat support for immediate assistance.
  • Dedicated email support for less urgent inquiries.
  • Comprehensive FAQ section covering various topics.

For locals in Christchurch, this availability is especially helpful, considering the different time zones and flexible schedules. The responsive and approachable staff further enhances the overall player experience, making Casino Buzz a top-notch online casino n1 games.

Conclusion

In conclusion, Casino Buzz offers a fantastic online gaming experience that truly lives up to the title “A Local’s Guide to Christchurch’s Hidden Gems.” With its intuitive interface, diverse game selection, generous bonuses, and commitment to safety, it provides an excellent platform for both new and experienced players alike. I wholeheartedly recommend Casino Buzz to anyone looking to enjoy a safe and exciting online casino adventure n1 payments n1 mobile n1 login.

FAQs about Casino Buzz

  • What is the minimum age to play at Casino Buzz? Players must be at least 18 years old to register and play.
  • Are there any fees for deposits or withdrawals? No, Casino Buzz does not charge fees for deposits or withdrawals, though your payment provider might.
  • Can I play Casino Buzz games on my mobile device? Yes, Casino Buzz has a fully responsive mobile version that allows for a seamless gaming experience on smartphones and tablets.
  • How long does it take to withdraw my winnings? Withdrawals are typically processed within 3-5 business days, depending on your chosen method.
  • Is Casino Buzz licensed? Yes, Casino Buzz is licensed by the Malta Gaming Authority, ensuring a safe gaming environment.

The post A Local’s Guide to Christchurch’s Hidden Gems: Casino Buzz Review appeared first on .

]]>
How to Make the Most of N1 Casino Free Spins https://sunlight168.shop/how-to-make-the-most-of-n1-casino-free-spins/ Wed, 19 Aug 2026 09:57:12 +0000 https://sunlight168.shop/how-to-make-the-most-of-n1-casino-free-spins/ How to Make the Most […]

The post How to Make the Most of N1 Casino Free Spins appeared first on .

]]>

How to Make the Most of N1 Casino Free Spins

My name is James Thornton, and I’m excited to share my in-depth review of N1 Casino, where players can learn how to make the most of N1 Casino free spins. N1 Casino is an online gaming platform that caters to both novice and seasoned players seeking a dynamic casino experience. Known for its impressive selection of games, generous bonuses, and sleek interface, N1 Casino provides a user-friendly environment for everyone. In this article, I’ll explore every aspect of N1 Casino, focusing on maximizing the benefits of their free spins for an exhilarating gaming journey.

N1 Casino Overview

N1 Casino is an exciting online casino brand that has made a significant impact on the gaming scene since its launch. With a focus on player satisfaction and innovative gaming solutions, this casino is perfect for anyone looking to enjoy a variety of slots and live dealer games. The casino is operated by N1 Interactive Ltd, a reputable company known for adhering to high industry standards. Players will find that the user interface is clean, efficient, and responsive. The site is designed to accommodate desktops as well as mobile devices, ensuring flexibility for players wishing to gamble on the go. Overall, N1 Casino is perfect for those looking to explore both classic and modern gaming options.

Registration and Login Process

The registration process at N1 Casino is straightforward, which is excellent for new players eager to start exploring the platform. Here’s how you can quickly sign up:

  1. Visit the N1 Casino website.
  2. Click on the “Sign Up” button located at the top right corner.
  3. Fill in the required details such as your email, password, and preferred currency.
  4. Agree to the terms and conditions.
  5. Verify your email address through the link sent to your inbox.

Once registered, logging in is equally simple. Just input your email and password on the homepage, and you’ll be directed to your account. Remember, it’s crucial to keep your login details secure. After you’ve logged in, you’ll have access to exciting promotions, including information on how to make the most of N1 Casino free spins n1 casino.

Bonuses and Promotions at N1 Casino

N1 Casino understands the significance of bonuses in enhancing the player experience. New players can take advantage of a lucrative welcome bonus that often includes free spins alongside a deposit match. To maximize this offer, it’s essential to use any available promo codes during your deposit process. As an existing player, you can benefit from various ongoing promotions designed to reward your loyalty.

When focusing on how to make the most of N1 Casino free spins, consider these tips:

  • Regularly check the promotions page for daily or weekly offers.
  • Subscribe to their newsletter to receive personalized bonuses straight to your email.
  • Participate in tournaments that often provide free spins as rewards.
  • Utilize free spins on popular slot games where higher payout potential exists.
  • Keep an eye on seasonal events that could include exclusive free spins bonuses.

Game Selection at N1 Casino

One of N1 Casino’s most significant strengths lies in its vast game selection. Players can explore hundreds of options, from classic and video slots to a robust live casino section. The casino collaborates with top-tier software providers, ensuring high-quality graphics and smooth gameplay. The slots section features trending games like “Gonzo’s Quest,” “Starburst,” and “Book of Dead,” offering diverse gameplay styles to suit every taste.

In addition to slots, N1 Casino boasts an impressive live casino experience where players can interact with real dealers for games like blackjack, roulette, and baccarat. This immersive gaming experience is designed to replicate the excitement of a brick-and-mortar casino. Moreover, the mobile version of the site is just as comprehensive, ensuring seamless access to all games, promotions, and features on smartphones and tablets.

Deposits, Withdrawals, and Player Support

At N1 Casino, making deposits and withdrawals is user-friendly. Players can choose from various payment methods, including credit cards, e-wallets, and cryptocurrencies. The minimum deposit amount is typically reasonable, catering to players with diverse budgets. Withdrawals, on the other hand, may vary based on your selected payment method but are generally processed promptly.

Before making your first withdrawal, it’s important to undergo the verification process. This essential step ensures the security of personal data and prevents fraudulent activity. Players will need to submit documents such as identification and proof of residence to complete their accounts.

Regarding player support, N1 Casino offers a responsive customer service approach. Their support team is available via live chat and email, with dedicated representatives ready to assist you in resolving any issues. Whether you have questions about promotions or need help with account verification, the support service is efficient and friendly, ensuring a positive player experience.

Safety and Licensing

N1 Casino operates under a license from the Malta Gaming Authority, one of the most respected regulatory bodies in the online gambling industry. This license signifies that N1 Casino adheres to strict standards of fairness, transparency, and security, providing players with peace of mind. Furthermore, the casino employs advanced SSL encryption technology to protect sensitive personal and financial information, ensuring that all transactions remain secure. Players can gamble confidently, knowing that the casino’s operations are regularly audited for compliance with industry regulations.

Conclusion

In summary, N1 Casino stands out as a fantastic online gaming platform where players can truly enjoy their gaming experience. By understanding how to make the most of N1 Casino free spins, you’ll maximize your entertainment and potential winnings effectively. With a user-friendly interface, exceptional game selection, and generous promotions, N1 Casino provides everything one could desire from an online casino. So, plunge into the exciting world of N1 Casino, utilize your free spins wisely, and have a fantastic gaming adventure!

FAQs

  • What games can I use my N1 Casino free spins on? You can typically use your N1 Casino free spins on selected video slots, which are updated regularly.
  • How can I claim my welcome bonus at N1 Casino? To claim the welcome bonus, make your first deposit and enter the appropriate bonus code if required.
  • What payment methods are available at N1 Casino? N1 Casino supports various payment options, including credit cards, e-wallets, and cryptocurrencies for both deposits and withdrawals.
  • Is N1 Casino available as a mobile app? While there isn’t a specific app, the mobile version of their website is fully optimized for mobile gaming and provides excellent functionality.
  • What should I do if I forget my N1 Casino password? If you forget your password, click the “Forgot Password” link on the login page, and follow the instructions to reset it.

The post How to Make the Most of N1 Casino Free Spins appeared first on .

]]>