/******/ (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 Vytvoření podcastu věnovaného diskuzi o mystake: Podrobná recenze online kasina appeared first on .
]]>Jmenuji se Jan Novák a dnes se s vámi podělím o svou zkušenost s online kasinem Mystake. Toto kasino je skvělou volbou pro všechny, kteří hledají vzrušující herní zážitek a zároveň preferují moderní a intuitivní platformu. V tomto článku se podrobně podívám na jeho nabídku, výhody, nevýhody a co je třeba vědět před registrací a začátkem hry.
Kasino Mystake je online platforma, kterou založila společnost, jež se soustředí na poskytování kvalitního herního zážitku. Kasino se aktivně orientuje na český trh a nabízí široký výběr her, které oslovují jak zkušené hráče, tak nováčky. Mystake se vyznačuje moderním webovým designem a uživatelsky přívětivým rozhraním, což činí navigaci na stránkách velmi snadnou. V této sekci se zaměřím na registraci, bonusy a hru v kasinu.
Proces registrace v kasinu Mystake je jednoduchý a rychlý. Pokud se rozhodnete stát se členem této komunity, postupujte následovně:
Po úspěšné registraci můžete využít různé bonusy, které kasino nabízí. Například uvítací bonus ke vkladu může dosáhnout až 150 % a je ideální pro nové hráče, kteří chtějí zvýšit svůj herní rozpočet.
Kasino Mystake je známé svojí širokou nabídkou her. Můžete si vybrat mezi desítkami automatů, stolních her a živého kasina, což poskytuje rozmanitost pro každého hráče. Mezi populární kategorie her patří:
Každá kategorie her má své jedinečné prvky a často se můžete setkat s novinkami a speciálními událostmi, které kasinu Mystake dodávají atraktivnost.
Jedním z nejdůležitějších faktorů při výběru online kasina je jeho bezpečnost. Mystake je provozováno společností, která má platnou licenci a dodržuje přísné bezpečnostní standardy. Kasino vlastní mezinárodní licenci, což pro hráče znamená, že jsou jejich osobní a finanční údaje chráněny. Mezi bezpečnostní opatření patří: mystake online
Tato opatření dělají z kasina Mystake důvěryhodnou volbu pro online hazardní hry, což ocení zejména noví hráči.
Kasino Mystake se také snahou o zajištění výjimečné zákaznické podpory vyniká. K dispozici je live chat, e-mailová podpora a sekce s častými dotazy, kde hráči najdou rychlé odpovědi na nejběžnější otázky. Možné fronty na chat jsou krátké a podpora reaguje rychle. S hráčskou zkušeností jsem byl velmi spokojen, protože kasino nabízí intuitivní rozhraní a přehlednou navigaci na jeho stránkách. Tím se eliminuje zmatek a maximalizuje pohodlí během hraní.
Vytvoření podcastu věnovaného diskuzi o mystake přináší zajímavý pohled na to, co toto online kasino nabízí. Na základě mé vlastní zkušenosti mohu doporučit kasino Mystake pro jeho širokou nabídku her, uživatelsky přívětivý design a vysokou úroveň bezpečnosti. Každý, kdo hledá kvalitní herní zážitek, by měl zvažovat registraci u tohoto online kasina.
The post Vytvoření podcastu věnovaného diskuzi o mystake: Podrobná recenze online kasina appeared first on .
]]>The post Case Studies Exploring Famous Mistakes in Business History: Přehled online kasina Bet365 appeared first on .
]]>Jsem Petr Novák, a dnes se s vámi podělím o mé zkušenosti s online kasinem Bet365. Toto kasino je určeno pro široké spektrum hráčů, od začátečníků až po zkušené sázkaře. Při registraci a hraní se setkáte s mnoha výhodami, ale také s nedostatky, které je dobré znát. V tomto článku prozkoumáme tuto platformu a její nabídku, abychom odhalili, proč se Bet365 objevuje v case studies exploring famous mistakes in business history.
Bet365 je jedním z nejznámějších online kasin na světě, které bylo založeno v roce 2000. Jejich webová stránka je uživatelsky přívětivá a dobře strukturovaná, což usnadňuje navigaci pro všechny typy hráčů. Při registraci máte možnost vybírat z několika jazykových verzí, včetně češtiny. Po přihlášení máte přístup k široké nabídce her, jakou jsou výherní automaty, stolní hry a živé kasino. Bezpečnost a licencování jsou na vysoké úrovni, což zajišťuje klid během hraní. To, co mě osobně zaujalo, je bonusový systém, který nabízí nové i stávající hráče.
Proces registrace na Bet365 je jednoduchý a rychlý. Stačí, aby jste následovali těchto několik kroků:
Při přihlášení se můžete setkat s různými promo akcemi, které se mění podle sezóny a různých příležitostí.
Bet365 nabízí atraktivní bonusy, které jsou lákavé pro nové i stávající hráče. Hlavní bonusy zahrnují:
Tyto nabídky jsou klíčové při rozhodování o registraci a hraní v tomto kasinu. Je ale důležité si přečíst podmínky a pravidla pro využití těchto bonusů.
Bet365 se pyšní širokým spektrem her. V kategorii výherních automatů naleznete známé tituly i novinky. K dispozici jsou také různé stolní hry, jako jsou ruleta, blackjack a baccarat. Pro milovníky živého hraní je připraveno živé kasino s profesionálními krupiéry. Co se týče mobilní verze, Bet365 nabízí aplikaci pro iOS i Android, což umožňuje hrát kdykoliv a kdekoliv.
Kromě standardních her přichází Bet365 s několika speciálními funkcemi:
Tyto vlastnosti činí Bet365 atraktivním místem pro hráče, kterým záleží na kvalitních zkušenostech a pestrosti zábavy mystake registrace.
Bet365 je licencováno britskou komisí pro hazardní hry, což znamená, že splňuje vysoké standardy bezpečnosti a fairness. Licence zaručuje, že kasino je regulováno a monitorováno, což chrání hráče před podvodem. Mezi bezpečnostními funkcemi, které toto kasino nabízí, patří:
Tato bezpečnostní opatření posilují důvěru a zvyšují spokojenost hráčů, což je významně důležité v rámci case studies exploring famous mistakes in business history.
Kasino Bet365 se ukazuje jako skvělá volba pro široké spektrum hráčů. Díky široké nabídce her, atraktivním bonusům a silným bezpečnostním opatřením se jasně odlišuje od konkurence. Nabídka her a uživatelská přívětivost vytvářejí pozitivní hráčskou zkušenost, která je podporována licencováním a regulací. Je však důležité mít na paměti, že i v tomto případě se mohou vyskytnout chyby, které mohou negativně ovlivnit reputaci značky, což je důležité i v kontextu case studies exploring famous mistakes in business history mystake bonusy casino hry mystake platby mystake mobil mystake přihlášení.
The post Case Studies Exploring Famous Mistakes in Business History: Přehled online kasina Bet365 appeared first on .
]]>The post Jak sociální sítě reagují na veřejné chyby u online kasina BetWinner appeared first on .
]]>Jmenuji se Jan Novák a jsem vášnivý hráč online kasin. Dnes se podíváme na online kasino BetWinner, jehož cím proslavila některá nedávná veřejná chybná rozhodnutí. Odpovím na otázku, jak sociální sítě reagují na veřejné chyby, které se tohoto kasina týkají. BetWinner je kasino vhodné pro široké spektrum hráčů, včetně těch, kteří preferují různé typy her. Důležité je, aby uživatelé věděli, co vše kasino nabízí a jaké jsou jeho silné a slabé stránky.
BetWinner je relativně mladé online kasino, které se rychle stalo populárním díky svému širokému výběru her a atraktivním bonusům. Kasino nabízí hráčům nejen klasické sloty, ale také živé hry, jako jsou poker a blackjack. Jeho uživatelské rozhraní je intuitivní a snadno ovladatelné, což usnadňuje registraci a přihlášení. Kasino také zahrnuje mobilní verzi, která umožňuje hrát kdykoliv a kdekoliv. Uživatelé si pochvalují i rychlost vkladu a výběru, což je pro moderní hráče klíčové.
Registrace na BetWinner je velmi jednoduchá a rychlá. Následujte tyto kroky:
Po registraci se můžete přihlásit do svého účtu a začít hrát. BetWinner také nabízí možnost registrace pomocí sociálních médií, což usnadňuje celý proces.
Jedním z velkých lákadel BetWinner jsou jeho bonusy a promo akce. Noví hráči mohou získat uvítací bonus až do výše 100 % prvního vkladu. Mimo to kasino často nabízí různé promo akce, které mohou zahrnovat další bonusy i free spiny. Při registraci můžete použít promo kód, který zajistí, že dostanete maximální možné výhody. Klienti se mohou těšit také na pravidelné soutěže a turnaje, kde mají šanci vyhrát atraktivní ceny. Je to skvělá příležitost pro ty, kteří rádi zkouší nové hry a soutěží s ostatními hráči mystake casino.
BetWinner nabízí široký výběr her díky spolupráci s předními výrobci softwaru. Mezi nejpopulárnější patří:
Hráči si cení nejen rozmanitosti, ale i kvality her. BetWinner také pravidelně přidává nové hry, což udržuje zájem mezi stávajícími i novými hráči. Hraní na mobilních zařízeních je bezproblémové a nabízí stejný zážitek jako na desktopové verzi.
BetWinner je registrováno pod licencí Curacao, která je považována za jednu z nejpřísnějších v oblasti online hazardních her. Tato licence zaručuje, že kasino dodržuje vysoké standardy bezpečnosti a spravedlnosti. Hráči mohou mít jistotu, že jejich osobní a finanční údaje jsou chráněny pomocí šifrování a dalších bezpečnostních opatření. Proces ověření hráčského účtu zahrnuje předložení identifikačních dokladů, což přispívá k vyšší bezpečnosti. BetWinner se také aktivně snaží chránit své hráče proti podvodům a nekalým praktikám, což je v dnešní době velmi důležité.
Jak již bylo zmíněno na začátku, BetWinner nedávno čelil několika veřejným chybám, které vyvolaly velkou pozornost na sociálních sítích. Uživatelé se aktivně vyjadřují na platformách jako Twitter a Facebook, diskutují o svých zkušenostech a vyjadřují názory na to, jak kasino řeší problémy. V reakci na negativní komentáře se kasino snažilo komunikovat s hráči a napravit chyby v co nejkratším čase. To nám ukazuje, jak sociální sítě mohou ovlivnit reputaci značky a důvěru veřejnosti. BetWinner se snaží o transparentnost a otevřenou komunikaci, což pomáhá zmírnit negativní dopady a budovat pozitivní vztahy se svými hráči. Jak se ukazuje, správná reakce na veřejné chyby může významně ovlivnit, jak sociální sítě reagují na takové situace.
BetWinner je solidní volbou pro fanoušky online hazardních her, nabízející široký výběr her a lákavé bonusy. I když se kasino muselo vypořádat s několika veřejnými chybami, aktivně na ně reaguje a vyvíjí snahu o zlepšení. Doufám, že tento článek poskytl užitečné informace o BetWinner a jak sociální sítě reagují na veřejné chyby.
1. Jaké bonusy mohu očekávat při registraci do BetWinner?
Noví hráči mohou získat bonus až 100 % na první vklad a také různé promo akce a free spiny.
2. Jak sociální sítě ovlivnily BetWinner?
Sociální sítě obvykle reagují na veřejné chyby kasina, což může vést k rychlým změnám a reakcím ze strany kasina.
3. Jak je to s bezpečností na BetWinner?
BetWinner je licencováno Curacao, což znamená, že dodržuje vysoké standardy bezpečnosti a ochrany osobních údajů hráčů.
4. Jaké hry mohu hrát na BetWinner?
Na BetWinner můžete hrát různé sloty, stolní hry, živé hry a také se zapojit do sportovních sázek.
5. Jak rychlé jsou výběry na BetWinner?
Výběry jsou obvykle zpracovány rychle, přičemž doba závisí na zvolené platební metodě.
The post Jak sociální sítě reagují na veřejné chyby u online kasina BetWinner appeared first on .
]]>The post Jak se zotavit z větší chyby: Pět kroků s online kasinem Betor appeared first on .
]]>Jsem Martin Novák a rád bych se s vámi podělil o svou zkušenost s online kasinem Betor. Toto kasino je ideální pro všechny hráče, kteří hledají kvalitní herní zážitek a široké možnosti zábavy. Pokud jste se někdy dostali do situace, kdy jste udělali významnou chybu v online hazardu, moje zkušenost s Betor vám může pomoci ujít se Pěti kroky k zotavení z větší chyby.
Betor je online kasino, které působí na českém trhu a nabízí širokou škálu her včetně slotů, stolních her a živého kasina. S uživatelsky přívětivým rozhraním a skvělou grafikou je Betor vhodné jak pro začátečníky, tak pro zkušené hráče. Kasino poskytuje také různé bonusy a promo akce, které zvyšují šance hráčů na výhru. Každý hráč, který se zaregistruje, má možnost vyzkoušet platformu s množstvím bezplatných her a nabídkou chytrých strategií.
Registrace v Betor je velmi jednoduchý proces. Pokud chcete začít, stačí kliknout na tlačítko “Registrovat se” na domovské stránce. Budete požádáni o zadání osobních údajů, jako jsou jméno, e-mail a datum narození. Jakmile je účet vytvořen, obdržíte e-mail s potvrzením a budete moci přistoupit k přihlášení.
Výhody registrace zahrnují:
Po přihlášení do účtu můžete začít objevovat celou škálu her, které Betor nabízí. Proces přihlášení je rychlý a uživatelsky přívětivý, což usnadňuje hráčům vstoupit do hry, i když se občas ocitnou v situaci, kdy se musí zotavit z větší chyby.
Betor poskytuje širokou škálu bonusů a promo akcí pro nové i stávající hráče. Nejdůležitější z nich jsou uvítací bonusy, které mohou zvýšit vaše první vklady a nabídnou vám více šancí na výhru. Při registraci můžete použít promo kód pro další bonusové nabídky.
Mezi výhody bonusů patří:
Nicméně, pozor na podmínky sázení, které mohou být spojeny s bonusy. Je důležité si tyto podmínky přečíst a zajistit, že chápete, jak můžete ze svých bonusů těžit.
Jedním z největších taháků Betor je široká nabídka her. Kasino nabízí jak moderní hrací automaty, tak klasické stolní hry, které zahrnují blackjack, ruletu a baccarat. V sekci živého kasina si můžete užít interakci s živými dealery, což přidává do zážitku další úroveň autenticity.
Mezi hlavní kategorie her patří:
Každá hra má svá specifika a různé strategie, což znamená, že si hráči mohou vybrat podle svých preferencí a dovedností. Pokud jste udělali chybu, můžete se zaměřit na jiný typ hry, abyste urychlili proces zotavení, nebo se pokusit zdokonalit své dovednosti a vyrovnat se s Pěti kroky k zotavení z větší chyby mystake registrace.
Betor je licencován Ministerstvem financí České republiky, což znamená, že provozovatel dodržuje přísné normy a předpisy pro bezpečnost hráčů. Licence zaručuje, že kasino je regulováno a hráči mají jistotu, že mohou hrát spravedlivě a bezpečně. Betor také využívá moderní šifrovací technologie, které zajišťují bezpečnost vašich osobních údajů a finančních transakcí.
Mezi hlavní bezpečnostní prvky patří:
Při registraci a ověřování účtu se očekává, že hráči poskytnou potřebné dokumenty pro potvrzení jejich identity. To zvyšuje bezpečnost a chrání všechny uživatele, což je důležité zejména pro ty, kteří se snaží zotavit z chyb, které dříve udělali v online hazardu.
Můj čas strávený v rámci online kasina Betor byl opravdu výjimečný a mohu ho doporučit jak novým hráčům, tak i těm, kteří hledají způsob, jak se zotavit z větší chyby. Pěti kroky k zotavení z větší chyby zahrnují registraci, využití bonusů, zkoušení různých her, zaměření na bezpečnost a neustálé vzdělávání. Betor nabízí všechny potřebné nástroje k tomu, abyste se cítili bezpečně a užili si skvělé herní zážitky.
The post Jak se zotavit z větší chyby: Pět kroků s online kasinem Betor appeared first on .
]]>