/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./packages/packages/core/editor-templates/src/init.ts":
/*!*************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/init.ts ***!
\*************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ init: function() { return /* binding */ init; }
/* harmony export */ });
/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor");
/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _load_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./load-templates */ "./packages/packages/core/editor-templates/src/load-templates.ts");
/* harmony import */ var _render_template_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render-template-styles */ "./packages/packages/core/editor-templates/src/render-template-styles.tsx");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts");
/* harmony import */ var _templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./templates-styles-provider */ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils */ "./packages/packages/core/editor-templates/src/utils.ts");
function init() {
if (!(0,_utils__WEBPACK_IMPORTED_MODULE_8__.isHandlingTemplateStyles)()) {
return;
}
(0,_elementor_store__WEBPACK_IMPORTED_MODULE_3__.__registerSlice)(_store__WEBPACK_IMPORTED_MODULE_6__.slice);
_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.stylesRepository.register(_templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__.templatesStylesProvider);
(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__.registerDataHook)('after', 'editor/documents/attach-preview', async () => {
(0,_load_templates__WEBPACK_IMPORTED_MODULE_4__.unloadTemplates)();
(0,_templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__.clearTemplatesStyles)();
await (0,_load_templates__WEBPACK_IMPORTED_MODULE_4__.loadTemplates)();
});
(0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
id: 'templates-styles',
component: _render_template_styles__WEBPACK_IMPORTED_MODULE_5__.RenderTemplateStyles
});
}
/***/ }),
/***/ "./packages/packages/core/editor-templates/src/load-templates.ts":
/*!***********************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/load-templates.ts ***!
\***********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ loadTemplates: function() { return /* binding */ loadTemplates; },
/* harmony export */ unloadTemplates: function() { return /* binding */ unloadTemplates; }
/* harmony export */ });
/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts");
const TEMPLATE_ATTRIBUTE = 'data-elementor-post-type="elementor_library"';
const DOCUMENT_WRAPPER_ATTR = 'data-elementor-id';
async function loadTemplates() {
const iframeDocument = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.getCanvasIframeDocument)();
if (!iframeDocument) {
return;
}
const currentDocumentId = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__.getV1CurrentDocument)()?.id;
const templateIds = getTemplateIds(iframeDocument, currentDocumentId);
if (!templateIds.length) {
return;
}
const documents = await fetchDocuments(templateIds);
(0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.setTemplates(documents));
}
function unloadTemplates() {
(0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.clearTemplates());
}
function getTemplateIds(iframeDocument, currentDocumentId) {
const elements = [...iframeDocument.body.querySelectorAll(`[${TEMPLATE_ATTRIBUTE}]`)];
const ids = elements.map(el => Number(el.getAttribute(DOCUMENT_WRAPPER_ATTR))).filter(id => !isNaN(id) && id !== currentDocumentId);
return [...new Set(ids)];
}
async function fetchDocuments(ids) {
const results = await Promise.all(ids.map(async id => {
try {
// using ajax.load instead of the document-manager as the latter causes an issue when trying to edit a template
return await _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.ajax.load({
data: {
id
},
action: 'get_document_config',
unique_id: `template-${id}`
});
} catch {
return null;
}
}));
return results.filter(doc => doc !== null);
}
/***/ }),
/***/ "./packages/packages/core/editor-templates/src/render-template-styles.tsx":
/*!********************************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/render-template-styles.tsx ***!
\********************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ RenderTemplateStyles: function() { return /* binding */ RenderTemplateStyles; }
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _templates_styles_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates-styles-provider */ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts");
/* harmony import */ var _use_loaded_templates__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-loaded-templates */ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts");
const RenderTemplateStyles = () => {
const templates = (0,_use_loaded_templates__WEBPACK_IMPORTED_MODULE_2__.useLoadedTemplates)();
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const styles = templates.flatMap(extractStylesFromDocument);
(0,_templates_styles_provider__WEBPACK_IMPORTED_MODULE_1__.addTemplateStyles)(styles);
}, [templates]);
return null;
};
function extractStylesFromDocument(elements) {
if (!elements.length) {
return [];
}
return elements.flatMap(extractStylesFromElement);
}
function extractStylesFromElement(element) {
return [...Object.values(element.styles ?? {}), ...(element.elements ?? []).flatMap(extractStylesFromElement)];
}
/***/ }),
/***/ "./packages/packages/core/editor-templates/src/store.ts":
/*!**************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/store.ts ***!
\**************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ selectTemplates: function() { return /* binding */ selectTemplates; },
/* harmony export */ slice: function() { return /* binding */ slice; }
/* harmony export */ });
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
const initialState = {
entities: {}
};
const slice = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__createSlice)({
name: 'templates',
initialState,
reducers: {
setTemplates(state, action) {
action.payload.forEach(doc => {
state.entities[doc.id] = doc.elements ?? [];
});
},
clearTemplates(state) {
state.entities = {};
}
}
});
const selectEntities = state => state.templates.entities;
const selectTemplates = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__createSelector)([selectEntities], entities => Object.values(entities));
/***/ }),
/***/ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts":
/*!**********************************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/templates-styles-provider.ts ***!
\**********************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ addTemplateStyles: function() { return /* binding */ addTemplateStyles; },
/* harmony export */ clearTemplatesStyles: function() { return /* binding */ clearTemplatesStyles; },
/* harmony export */ templatesStylesProvider: function() { return /* binding */ templatesStylesProvider; }
/* harmony export */ });
/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__);
let styles = [];
const listeners = new Set();
function addTemplateStyles(newStyles) {
styles = [...styles, ...newStyles];
listeners.forEach(cb => cb());
}
function clearTemplatesStyles() {
styles = [];
listeners.forEach(cb => cb());
}
const templatesStylesProvider = (0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__.createStylesProvider)({
key: 'templates-styles',
priority: 50,
subscribe: cb => {
listeners.add(cb);
return () => {
listeners.delete(cb);
};
},
actions: {
all: () => styles,
get: id => styles.find(style => style.id === id) ?? null
}
});
/***/ }),
/***/ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts":
/*!*****************************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/use-loaded-templates.ts ***!
\*****************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useLoadedTemplates: function() { return /* binding */ useLoadedTemplates; }
/* harmony export */ });
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts");
function useLoadedTemplates() {
return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectTemplates);
}
/***/ }),
/***/ "./packages/packages/core/editor-templates/src/utils.ts":
/*!**************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/utils.ts ***!
\**************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ isHandlingTemplateStyles: function() { return /* binding */ isHandlingTemplateStyles; }
/* harmony export */ });
/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__);
const MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES = '4.1';
const isHandlingTemplateStyles = () => (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.isProActive)() && !(0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.isProAtLeast)(MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES);
/***/ }),
/***/ "@elementor/editor":
/*!*****************************************!*\
!*** external ["elementorV2","editor"] ***!
\*****************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["editor"];
/***/ }),
/***/ "@elementor/editor-documents":
/*!**************************************************!*\
!*** external ["elementorV2","editorDocuments"] ***!
\**************************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["editorDocuments"];
/***/ }),
/***/ "@elementor/editor-styles-repository":
/*!*********************************************************!*\
!*** external ["elementorV2","editorStylesRepository"] ***!
\*********************************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["editorStylesRepository"];
/***/ }),
/***/ "@elementor/editor-v1-adapters":
/*!***************************************************!*\
!*** external ["elementorV2","editorV1Adapters"] ***!
\***************************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["editorV1Adapters"];
/***/ }),
/***/ "@elementor/store":
/*!****************************************!*\
!*** external ["elementorV2","store"] ***!
\****************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["store"];
/***/ }),
/***/ "@elementor/utils":
/*!****************************************!*\
!*** external ["elementorV2","utils"] ***!
\****************************************/
/***/ (function(module) {
module.exports = window["elementorV2"]["utils"];
/***/ }),
/***/ "react":
/*!**************************!*\
!*** external ["React"] ***!
\**************************/
/***/ (function(module) {
module.exports = window["React"];
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ !function() {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function() { return module['default']; } :
/******/ function() { return module; };
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
!function() {
/*!**************************************************************!*\
!*** ./packages/packages/core/editor-templates/src/index.ts ***!
\**************************************************************/
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ init: function() { return /* reexport safe */ _init__WEBPACK_IMPORTED_MODULE_0__.init; },
/* harmony export */ isHandlingTemplateStyles: function() { return /* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_2__.isHandlingTemplateStyles; },
/* harmony export */ useLoadedTemplates: function() { return /* reexport safe */ _use_loaded_templates__WEBPACK_IMPORTED_MODULE_1__.useLoadedTemplates; }
/* harmony export */ });
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init */ "./packages/packages/core/editor-templates/src/init.ts");
/* harmony import */ var _use_loaded_templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-loaded-templates */ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./packages/packages/core/editor-templates/src/utils.ts");
}();
(window.elementorV2 = window.elementorV2 || {}).editorTemplates = __webpack_exports__;
/******/ })()
;
window.elementorV2.editorTemplates?.init?.();
//# sourceMappingURL=editor-templates.js.map/* dialog.css */
/* Dialog wrapper */
.elfinder .elfinder-dialog {
/* */
}
/* Dialog title */
.elfinder .elfinder-dialog .ui-dialog-titlebar {
padding: 3px 0 3px 6px;
height: 30px;
box-sizing: border-box;
}
/* Close button */
.elfinder .elfinder-dialog .ui-dialog-titlebar-close {
background: url('../images/close.png');
right: 0;
border-radius: 0;
margin-top: -15px;
webkit-transition: background 0.3s; /* Safari */
transition: background-image 0.3s;
height: 29px;
width: 45px;
}
.elfinder .elfinder-dialog .ui-dialog-titlebar-close:hover {
background: url('../images/close-hover.png');
}
.std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button.elfinder-titlebar-button-right {
left: 1px;
top: 12px;
}
/* Dialog content */
.elfinder .elfinder-dialog .ui-dialog-content {
/* */
}
/* Tabs */
/* Tabs wrapper */
.elfinder .elfinder-dialog .ui-tabs-nav {
/* */
}
/* Normal tab */
.elfinder .elfinder-dialog .ui-tabs-nav .ui-state-default {
/* */
}
/* Current tab */
.elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected {
/* */
}
/* Active tab */
.elfinder .elfinder-dialog .ui-tabs-nav li:active {
/* */
}
.elfinder .ui-state-active {
background: #1979CA none repeat scroll 0 0;
/*background: #009688 none repeat scroll 0 0; */
}
/* Icons */
/* Dialog icon (e.g. for error messages) */
.elfinder .elfinder-dialog .elfinder-dialog-icon {
/* */
}
/* Error icon */
.elfinder .elfinder-dialog .elfinder-dialog-icon-error {
/* */
}
/* Confirmation icon */
.elfinder .elfinder-dialog .elfinder-dialog-icon-confirm {
/* */
}
/* Footer */
.elfinder .elfinder-dialog .ui-dialog-buttonpane {
/* */
}
/* Buttonset (wrapper) */
.elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
/* */
}
/* Button */
.elfinder .elfinder-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
/* */
}
/* Styling specific types of dialogs */
/* Error */
.elfinder .elfinder-dialog-error {
/* */
}
/* Confirm */
.elfinder .elfinder-dialog-confirm {
/* */
}
/* File editing */
.elfinder .elfinder-dialog .elfinder-file-edit {
/* */
}
/* File information */
/* Title */
.elfinder .elfinder-dialog .elfinder-info-title {
/* */
}
/* Table */
.elfinder .elfinder-dialog .elfinder-info-tb {
/* */
}
/* File upload (including dropbox) */
.elfinder .elfinder-dialog .elfinder-upload-dropbox,
.elfinder .elfinder-dialog .elfinder-upload-dialog-or {
/* */
}
The post Navigering af Juridiske Forhold ved Online Casino Gambling appeared first on .
]]>Når det kommer til online gambling, er det vigtigt at forstå de juridiske aspekter, der er forbundet med dette voksende fænomen. I denne artikel vil vi se nærmere på, hvordan man navigerer i de lovgivningsmæssige krav og regler omkring online casinoer, samt hvad dette betyder for spillere i Danmark. At forstå disse aspekter er ikke kun vigtigt for at undgå juridiske problemer, men også for at sikre en tryggere og mere ansvarlig spilleoplevelse. Fra licensering af operatorer til lokale love omkring gambling, vil vi dække de væsentligste emner, der er værd at være opmærksom på.
En af de første ting, man skal overveje ved online gambling, er licenseringen af de forskellige casinoer. I Danmark reguleres online gambling af Spillemyndigheden, som sikrer, at alle casinoer er licenserede og overholder nationale love. Dette gør det muligt for spillere at spille sikkert og ansvarligt. Her er nogle vigtige punkter omkring licensering:
Det er afgørende at forstå, hvordan lokale love påvirker online gambling. Hver jurisdiktion har sine egne regler, og det er vigtigt at være opmærksom på, hvordan disse kan variere fra land til land. I Danmark skal online casinoer følge strenge lovgivningsmæssige krav, der er designet til at beskytte spillerne. Her er nogle af de love, der gælder i Danmark:
Sikkerhed er et afgørende aspekt af online gambling, og det er noget, både spillere og casinoer skal tage alvorligt. Det inkluderer ikke kun sikring af, at spillernes data er beskyttet, men også at spillere spille ansvarligt. Online casinoer er forpligtede til at implementere sikkerhedsforanstaltninger såsom kryptering og to-faktor autentifikation. Her er nogle måder, hvorpå spillere kan sikre sig en sikker oplevelse: casino uden rofus
Det kan være fristende at spille på uregulerede casinoer, men dette kan indebære store risici. Uregulerede casinoer tilbyder ikke den samme beskyttelse som licenserede casinoer, hvilket betyder, at spillerne kan risikere at miste penge uden at kunne klage eller få hjælp. Her er nogle af de problemer, som spillere kan møde ved at vælge uregulerede casinoer:
At navigere i de juridiske forhold ved online gambling er essentielt for enhver spiller. Ved at forstå licenseringsprocessen, lokale love og ansvarlig gambling kan spillere sikre sig en tryg og behagelig oplevelse online. Det er vigtigt at vælge licenserede casinoer og at være opmærksom på de risici, der er forbundet med uregulerede platforme. Ved at følge de råd, der er givet her, kan spillere gøre deres online gambling oplevelse både sjov og sikker.
Du kan finde en liste over licenserede online casinoer på Spillemyndighedens officielle hjemmeside.
Du kan kontakte Spillemyndigheden, som kan hjælpe med at håndtere klager mod licenserede casinoer.
Nej, gevinster fra danske licenserede online casinoer er skattefrie for spillere.
Mange online casinoer tilbyder værktøjer til at sætte indsatsgrænser og tidsgrænser for at hjælpe dig med at spille ansvarligt.
For at spille online skal du være mindst 18 år gammel.
The post Navigering af Juridiske Forhold ved Online Casino Gambling appeared first on .
]]>The post Bästa svenska online casino: Skydda dina pengar appeared first on .
]]>Som en erfaren spelare och expert inom online casinon vill jag hjälpa dig att hitta det bästa svenska online casinot för att skydda dina pengar. När det kommer till online spelande är det avgörande att välja en plattform som erbjuder både säkerhet och pålitlighet. I denna artikel kommer jag att jämföra flera svenska online casinon utifrån viktiga kriterier, så att du kan fatta ett informerat beslut och skydda dina investeringar.
Ett av de viktigaste kriterierna när du väljer ett online casino är dess licensiering. Casinon med en svensk spellicens, utfärdad av Spelinspektionen, är skyldiga att följa strikta regler och riktlinjer för att skydda spelare. Detta innebär att du som spelare får en högre nivå av säkerhet för dina pengar. Låt oss jämföra två av de mest populära licensierade svenska online casinona: LeoVegas och Unibet.
| Casino | Licens | Säkerhetsåtgärder | Plus | Mins |
|---|---|---|---|---|
| LeoVegas | Spelinspektionen | Kryptering, ansvarigt spelande | Brett spelutbud | Högre insättningskrav |
| Unibet | Spelinspektionen | Kryptering, kundsupport dygnet runt | Användarvänlig plattform | Lägre bonusar |
Dessa två casinon är utmärkta val om du är bekymrad över säkerheten för dina pengar. LeoVegas erbjuder ett brett spelutbud och innovativa funktioner, medan Unibet har en mer användarvänlig plattform med dygnet runt support. Båda ger dock trygghet genom sina licenser och säkerhetsåtgärder.
Val av betalningsmetod är avgörande för att skydda dina pengar. Många svenska online casinon erbjuder olika betalningsmetoder, vilket påverkar hur snabbt du kan sätta in eller ta ut pengar. Här jämför vi Trustly och Swish, två populära och säkra betalningsalternativ.
När du väljer vilket online casino du ska spela på, kontrollera att de erbjuder dessa betalningsmetoder. Det kan ge dig extra trygghet när det gäller att hantera dina pengar svenska casinon.
Spelansvar är en annan viktig faktor att ta hänsyn till när du väljer ett online casino. Jag rekommenderar att du väljer casinon som erbjuder verktyg för spelkontroll, som insättningsgränser och självavstängning. Casinon som Casumo och Betsson är värda att nämna här.
Båda dessa casinon ger spelare möjlighet att sätta gränser för sitt spelande, vilket är viktigt för att skydda dina pengar och förhindra spelberoende.
Bonusar och kampanjer kan också spela en stor roll när du väljer ett online casino. Det är viktigt att vara medveten om villkoren för dessa bonusar, eftersom vissa kan ha höga omsättningskrav. Här jämför vi två framstående casinon, Mr Green och Betfair.
| Casino | Förste insättningsbonus | Omsättningskrav | Kampanjer |
|---|---|---|---|
| Mr Green | 100% upp till 2000 SEK | 30x | Veckovisa kampanjer |
| Betfair | 500 SEK gratisspel | 5x | Pinkod och lojalitetsprogram |
Mr Green erbjuder en generös bonus, men med högre omsättningskrav. Betfair å sin sida har lägre omsättningskrav, vilket gör det lättare att ta ut vinster. Beroende på dina preferenser för bonusar kan du välja vilket casino som passar dig bäst.
Slutligen är användarupplevelsen avgörande för att skydda dina pengar. Du vill ha en plattform som är enkel att navigera och erbjuder god kundsupport. Här kan vi titta på två casinon, Rizk och Svenska Spel.
Detta kan påverka din spelupplevelse enormt. Om du prioriterar en enkel och kvick upplevelse kan Rizk vara det bästa valet. Svenska Spel är å sin sida perfekt för den som föredrar en mer etablerad aktör.
Att välja det bästa svenska online casinot för att skydda dina pengar innebär att du måste ta hänsyn till flera faktorer som licensiering, betalningsmetoder, spelansvar och användarupplevelse. Genom att jämföra dessa olika aspekter kan du göra ett välinformerat val och njuta av en trygg spelupplevelse. Min rekommendation är att välja en plattform som både passar din spelstil och säkerställer att dina pengar är skyddade.
The post Bästa svenska online casino: Skydda dina pengar appeared first on .
]]>The post Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens appeared first on .
]]>Mit navn er Lars Jensen, og som ekspert inden for online gambling har jeg studeret de forskellige aspekter af casinowebsteder, især når det kommer til online casinoer uden dansk licens. Når man søger efter det bedste online casino i 2026, er det afgørende at forstå, hvilke elementer der gør disse platforme til de bedste valg. I denne artikel vil jeg guide dig gennem det vigtigste at overveje, så du kan træffe en informeret beslutning om, hvilket casino der passer bedst til dine behov.
En af de først og fremmest ting, man skal se på, når man vurderer Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens, er den type licens og regulering, som et casino har. Uden dansk licens kan et casino være reguleret af andre autoriteter, som Curacao eller Malta. Det er vigtigt at vælge et casino, der er transparent med deres licensoplysninger, så du kan sikre dig, at dine penge er sikre.
Når det kommer til Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens, er spilt stadig en af de vigtigste faktorer at overveje. De bedste online casinoer tilbyder et bredt udvalg af spil, fra slots til bordspil, live dealer spil og meget mere. Forskellige platforme appellerer til forskellige typer spillere. Nogle spillere ønsker at finde et casino, der har et stort udvalg af spilleautomater, mens andre måske leder efter poker eller blackjack.
| Casino Navn | Spiltype | Antal Spil | Live Dealer |
|---|---|---|---|
| Casino A | Slots, Bordspil | 300+ | Ja |
| Casino B | Slots, Poker, Live Dealer | 500+ | Ja |
| Casino C | Slots | 200+ | Nej |
En anden vigtig faktor i Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens er de betalingsmetoder, der tilbydes. Du skal sikre dig, at dit valg af casino understøtter de betalingsmetoder, du foretrækker, som kreditkort, e-wallets, og måske endda kryptovaluta. En hurtig behandlingstid for ind- og udbetalinger er også vigtig for at sikre en problemfri oplevelse casino uden dansk licens.
Når man overvejer Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens, bør bonusser og kampagner være en af de vigtigste faktorer. Det er essentiel at vurdere, hvilke typer bonusser der tilbydes af hvert casino, herunder velkomstbonusser, free spins og loyalitetsprogrammer. Vær opmærksom på omsætningskrav, da nogle casinoer kan have urealistiske vilkår og betingelser.
Endelig, en af de vigtigste Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens er kvaliteten af kundeservice. En god kundeservice er afgørende for at håndtere eventuelle problemer, du måtte opleve. Tjek, om casinoet tilbyder support via flere kanaler, såsom live chat, e-mail og telefon, samt deres tilgængelighed. Responsivitet er også en nøglefaktor.
I denne artikel har vi set på de essentielle funktioner ved Top Liste 2026 Online Casinoer Uden Dansk Licens, herunder licens, spilsortiment, betalingsmetoder, bonusser og kundeservice. Det er vigtigt at overveje disse funktioner, når du vælger det rette online casino. Mit råd er at sammenligne de forskellige muligheder, der er præsenteret, og vælge det casino, der bedst matcher dine behov og præferencer som spiller.
The post Essential Features of Top Liste 2026 Online Casinoer Uden Dansk Licens appeared first on .
]]>The post Er det ulovligt at gamble på udenlandske sider og spilleautomater? appeared first on .
]]>Mit navn er Lars Jensen, og jeg er en erfaren skribent med speciale i online gambling. Mange danskere undrer sig over: “Er det ulovligt at gamble på udenlandske sider og spilleautomater?” Svaret er nuanceret og afhænger af, hvilken platform du vælger. I denne artikel vil jeg guide dig gennem de bedste udenlandske gambling-websteder og hjælpe dig med at træffe en informeret beslutning om, hvilken der passer bedst til dine behov.
Før vi dykker ned i sammenligningen af websteder, lad os først forstå de grundlæggende love omkring gambling. I Danmark er det kun licenserede operatører, der må tilbyde gambling. Det betyder, at mens det ikke nødvendigvis er ulovligt for en dansker at gamble på udenlandske sider, kan det medføre risici. Hvis du vælger at gamble på disse sider, er det vigtigt at sikre, at de har den rette licens og overholder de nødvendige sikkerhedsstandarder. En god tommelfingerregel er at holde øje med websites, der er reguleret af respekterede myndigheder i EU, såsom Malta Gaming Authority eller UK Gambling Commission.
Når det kommer til at vælge det bedste website til gambling, skal du tage flere faktorer i betragtning. Herunder brugervenlighed, bonusser, betalingsmetoder, kundesupport og udvalget af spil. Jeg har samlet nogle nøglekriterier, så du bedre kan navigere i valget:
Her er en liste over nogle af de mest populære udenlandske gambling-websteder, der tilbyder spil til danske spillere. I tabellen nedenfor kan du se en sammenligning af de mest relevante funktioner ved disse sider casino uden rofus.
| Websted | Licens | Bonus | Betalingsmetoder | Spiludvalg |
|---|---|---|---|---|
| Mr Green | Malta Gaming Authority | 100% op til 1000 DKK | Visa, Mastercard, Paypal | Slot, Live Casino |
| Bet365 | UK Gambling Commission | Op til 200 DKK freebet | Bankoverførsel, e-wallets | Sports, Casino, Poker |
| Unibet | Malta Gaming Authority | 200% op til 2000 DKK | Visa, Neteller, Skrill | Slot, Live Casino, Oddset |
Når du vælger det bedste website, skal du overveje, hvad der er vigtigst for dig. For eksempel, hvis du er en meget aktiv spiller, kan en side som Unibet med et bredt spiludvalg være den bedste løsning. Hvis du derimod er interesseret i at sportsbetting, så er Bet365 et oplagt valg. Det er også værd at bemærke, hvilken type support de tilbyder og hvor hurtigt de håndterer forespørgsler.
Hver af de nævnte sider har sine egne styrker og svagheder, som det er vigtigt at være opmærksom på. Her er en liste over nogle af dem:
At forstå spørgsmålet “Er det ulovligt at gamble på udenlandske sider og spilleautomater?” kræver, at man overvejer de specifikke love og regler, der gælder i Danmark. Det er ikke nødvendigvis ulovligt, men det er essentielt at vælge pålidelige og sikre platforme. Når du skal vælge det bedste website, overvej punkterne jeg har beskrevet for at finde en side, der passer til dine behov. Uanset hvilket valg du træffer, så husk at spille ansvarligt og være opmærksom på lovgivningen.
1. Er det sikkert at gamble på udenlandske sider?
Det afhænger af licensen og sikkerheden på det specifikke websted.
2. Hvad skal jeg kigge efter i en bonus?
Omsætningskrav, beløbsgrænser og gyldighedsperiode.
3. Kan jeg bruge danske betalingsmetoder på udenlandske sider?
Mange udenlandske sider accepterer danske betalingsmetoder, men det varierer.
4. Hvilken myndighed regulerer udenlandske gambling-sider?
Populære regulerende myndigheder omfatter Malta Gaming Authority og UK Gambling Commission.
5. Hvad er de juridiske konsekvenser ved at gamble på udenlandske sider?
Det kan variere; det er bedst at søge juridisk rådgivning, hvis du er i tvivl.
The post Er det ulovligt at gamble på udenlandske sider og spilleautomater? appeared first on .
]]>The post Kan je gokken met crypto? Ervaringen van gebruikers in online casino’s appeared first on .
]]>Als ervaren schrijver en cryptocurrency-enthousiasteling, wil ik graag het onderwerp ‘Kan je gokken met crypto?’ onder de loep nemen. De afgelopen jaren zijn er tal van online casino’s verschenen die crypto-gokken mogelijk maken. Dit biedt spelers nieuwe mogelijkheden, maar het vergt ook voorzichtigheid bij het kiezen van een betrouwbaar platform. In dit artikel bespreek ik hoe je de beste website kunt vinden voor crypto-gokken, inclusief de verschillende ervaringen van gebruikers in online casino’s.
Het gebruik van cryptocurrency bij online gokken heeft verschillende voordelen. Hieronder een lijst van enkele belangrijke voordelen:
Om je te helpen een weloverwogen beslissing te nemen, heb ik een tabel opgesteld die enkele populaire crypto-casino’s vergelijkt. Deze tabel belicht belangrijke criteria, zoals bonusaanbiedingen, beschikbare cryptocurrencies, en pros en cons.
| Casino | Bonussen | Cryptocurrencies | Voordelen | Nadelen |
|---|---|---|---|---|
| BitStarz | 100% bonus tot €100 | BTC, ETH, LTC, DOGE | Snelle uitbetalingen | Beperkte klantenservice |
| 7BitCasino | 5 FREE Spins | BTC, BCH, ETH, LTC | Uitgebreid spelaanbod | Hogere inzetvereisten voor bonussen |
| mBit Casino | 50% bonus tot €100 | BTC, ETH, DOGE | Mobielvriendelijk platform | Beperkte betalingsmethoden |
De ervaringen van gebruikers zijn cruciaal als het gaat om het selecteren van een online casino. Veel spelers hebben verschillende ervaringen gehad, variërend van positieve tot negatieve. Een vaak gehoorde klacht betreft trage uitbetalingen en slechte klantenservice. Anderzijds horen we ook positieve verhalen over snelle transacties en aantrekkelijke bonussen. Hierbij enkele tips die je kunnen helpen bij het kiezen van een betrouwbare site:
Er zijn verschillende cryptocurrencies die je kunt gebruiken voor online gokken. De meest populaire zijn onder andere Bitcoin (BTC), Ethereum (ETH) en Litecoin (LTC). Hier zijn enkele kenmerken van veelgebruikte crypto’s: crypto casino zonder cruks
De vraag ‘Kan je gokken met crypto? Ervaringen van gebruikers in online casino’s’ kan met een duidelijk ‘ja’ worden beantwoord. Er zijn veel online casino’s die cryptocurrency accepteren en die een scala aan voordelen bieden. Door factoren als bonussen, transactiekosten en beschikbaarheid van spellen in overweging te nemen, kun je de beste keuze maken die bij jou past. Vergeet niet om altijd de ervaringen van andere gebruikers te lezen en je te beschermen tegen mogelijke risico’s.
The post Kan je gokken met crypto? Ervaringen van gebruikers in online casino’s appeared first on .
]]>