/*! elementor - v3.27.0 - 03-02-2025 */
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "../assets/dev/js/utils/react.js":
/*!***************************************!*\
!*** ../assets/dev/js/utils/react.js ***!
\***************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/**
* Support conditional rendering of a React App to the DOM, based on the React version.
* We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
*
* @param { React.ReactElement } app The app to render.
* @param { HTMLElement } domElement The DOM element to render the app into.
*
* @return {{ unmount: () => void }} The unmount function.
*/
function render(app, domElement) {
var unmountFunction;
try {
var root = (0, _client.createRoot)(domElement);
root.render(app);
unmountFunction = function unmountFunction() {
root.unmount();
};
} catch (e) {
// eslint-disable-next-line react/no-deprecated
ReactDOM.render(app, domElement);
unmountFunction = function unmountFunction() {
// eslint-disable-next-line react/no-deprecated
ReactDOM.unmountComponentAtNode(domElement);
};
}
return {
unmount: unmountFunction
};
}
var _default = exports["default"] = {
render: render
};
/***/ }),
/***/ "../modules/home/assets/js/components/addons-section.js":
/*!**************************************************************!*\
!*** ../modules/home/assets/js/components/addons-section.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _Link = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Link */ "@elementor/ui/Link"));
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _Card = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Card */ "@elementor/ui/Card"));
var _CardActions = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/CardActions */ "@elementor/ui/CardActions"));
var _CardContent = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/CardContent */ "@elementor/ui/CardContent"));
var _CardMedia = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/CardMedia */ "@elementor/ui/CardMedia"));
var Addons = function Addons(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
var domain = props.adminUrl.replace('wp-admin/', '');
var addonsArray = props.addonsData.repeater;
var cardsPerRow = 3 === addonsArray.length ? 3 : 2;
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
p: 3,
display: 'flex',
flexDirection: 'column',
gap: 2
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "h6"
}, props.addonsData.header.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, props.addonsData.header.description)), /*#__PURE__*/_react.default.createElement(_List.default, {
sx: {
display: 'grid',
gridTemplateColumns: {
md: "repeat(".concat(cardsPerRow, ", 1fr)"),
xs: 'repeat(1, 1fr)'
},
gap: 2
}
}, addonsArray.map(function (item) {
var linkTarget = item.hasOwnProperty('target') ? item.target : '_blank';
return /*#__PURE__*/_react.default.createElement(_Card.default, {
key: item.title,
elevation: 0,
sx: {
display: 'flex',
border: 1,
borderRadius: 1,
borderColor: 'action.focus'
}
}, /*#__PURE__*/_react.default.createElement(_CardContent.default, {
sx: {
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-between',
gap: 3,
p: 3
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_CardMedia.default, {
image: item.image,
sx: {
height: '58px',
width: '58px',
mb: 2
}
}), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "subtitle2"
}, item.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, item.description))), /*#__PURE__*/_react.default.createElement(_CardActions.default, {
sx: {
p: 0
}
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "outlined",
size: "small",
color: "promotion",
href: item.url,
target: linkTarget
}, item.button_label))));
})), /*#__PURE__*/_react.default.createElement(_Link.default, {
variant: "body2",
color: "info.main",
underline: "none",
href: "".concat(domain).concat(props.addonsData.footer.file_path)
}, props.addonsData.footer.label));
};
var _default = exports["default"] = Addons;
Addons.propTypes = {
addonsData: PropTypes.object.isRequired,
adminUrl: PropTypes.string.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/create-new-page-dialog.js":
/*!**********************************************************************!*\
!*** ../modules/home/assets/js/components/create-new-page-dialog.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _DialogHeader = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogHeader */ "@elementor/ui/DialogHeader"));
var _DialogHeaderGroup = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogHeaderGroup */ "@elementor/ui/DialogHeaderGroup"));
var _DialogTitle = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogTitle */ "@elementor/ui/DialogTitle"));
var _DialogContent = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogContent */ "@elementor/ui/DialogContent"));
var _DialogContentText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogContentText */ "@elementor/ui/DialogContentText"));
var _TextField = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/TextField */ "@elementor/ui/TextField"));
var _DialogActions = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogActions */ "@elementor/ui/DialogActions"));
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _Dialog = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Dialog */ "@elementor/ui/Dialog"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var CreateNewPageDialog = function CreateNewPageDialog(_ref) {
var url = _ref.url,
isOpen = _ref.isOpen,
closedDialogCallback = _ref.closedDialogCallback;
var _React$useState = _react.default.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
open = _React$useState2[0],
setOpen = _React$useState2[1];
var _React$useState3 = _react.default.useState(''),
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
pageName = _React$useState4[0],
setPageName = _React$useState4[1];
(0, _react.useEffect)(function () {
setOpen(isOpen);
}, [isOpen]);
var handleDialogClose = function handleDialogClose() {
setOpen(false);
closedDialogCallback();
};
var handleChange = function handleChange(event) {
var urlParams = new URLSearchParams();
urlParams.append('post_data[post_title]', event.target.value);
setPageName(urlParams.toString());
};
return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
open: open,
onClose: handleDialogClose,
maxWidth: "xs",
width: "xs",
fullWidth: true
}, /*#__PURE__*/_react.default.createElement(_DialogHeader.default, null, /*#__PURE__*/_react.default.createElement(_DialogHeaderGroup.default, null, /*#__PURE__*/_react.default.createElement(_DialogTitle.default, null, __('Name your page', 'elementor')))), /*#__PURE__*/_react.default.createElement(_DialogContent.default, {
dividers: true
}, /*#__PURE__*/_react.default.createElement(_DialogContentText.default, {
sx: {
mb: 2
}
}, __('To proceed, please name your first page,', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), __('or rename it later.', 'elementor')), /*#__PURE__*/_react.default.createElement(_TextField.default, {
onChange: handleChange,
fullWidth: true,
placeholder: __('New Page', 'elementor')
})), /*#__PURE__*/_react.default.createElement(_DialogActions.default, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
onClick: handleDialogClose,
color: "secondary"
}, __('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "contained",
href: pageName ? url + '&' + pageName : url,
target: "_blank"
}, __('Save', 'elementor'))));
};
var _default = exports["default"] = CreateNewPageDialog;
CreateNewPageDialog.propTypes = {
url: PropTypes.string.isRequired,
isOpen: PropTypes.bool.isRequired,
closedDialogCallback: PropTypes.func.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/external-links-section.js":
/*!**********************************************************************!*\
!*** ../modules/home/assets/js/components/external-links-section.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _ListItemButton = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemButton */ "@elementor/ui/ListItemButton"));
var _ListItemText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemText */ "@elementor/ui/ListItemText"));
var _Divider = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Divider */ "@elementor/ui/Divider"));
var ExternalLinksSection = function ExternalLinksSection(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
px: 3
}
}, /*#__PURE__*/_react.default.createElement(_List.default, null, props.externalLinksData.map(function (item, index) {
return /*#__PURE__*/_react.default.createElement(_ui.Box, {
key: item.label
}, /*#__PURE__*/_react.default.createElement(_ListItemButton.default, {
href: item.url,
target: "_blank",
sx: {
'&:hover': {
backgroundColor: 'initial'
},
gap: 2,
px: 0,
py: 2
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "img",
src: item.image,
sx: {
width: '38px'
}
}), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
sx: {
color: 'text.secondary'
},
primary: item.label
})), index < props.externalLinksData.length - 1 && /*#__PURE__*/_react.default.createElement(_Divider.default, null));
})));
};
var _default = exports["default"] = ExternalLinksSection;
ExternalLinksSection.propTypes = {
externalLinksData: PropTypes.array.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/get-started-list-item.js":
/*!*********************************************************************!*\
!*** ../modules/home/assets/js/components/get-started-list-item.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _ListItem = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItem */ "@elementor/ui/ListItem"));
var _ListItemText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemText */ "@elementor/ui/ListItemText"));
var _Link = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Link */ "@elementor/ui/Link"));
var _Box = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Box */ "@elementor/ui/Box"));
var _createNewPageDialog = _interopRequireDefault(__webpack_require__(/*! ./create-new-page-dialog */ "../modules/home/assets/js/components/create-new-page-dialog.js"));
var GetStartedListItem = function GetStartedListItem(_ref) {
var item = _ref.item,
image = _ref.image,
adminUrl = _ref.adminUrl;
var url = item.is_relative_url ? adminUrl + item.url : item.url;
var _React$useState = _react.default.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
isOpen = _React$useState2[0],
openDialog = _React$useState2[1];
var handleLinkClick = function handleLinkClick(event) {
if (!item.new_page) {
return;
}
event.preventDefault();
openDialog(true);
};
return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
alignItems: "flex-start",
sx: {
gap: 1,
p: 0,
maxWidth: '150px'
}
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
component: "img",
src: image
}), /*#__PURE__*/_react.default.createElement(_Box.default, null, /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
primary: item.title,
primaryTypographyProps: {
variant: 'subtitle1'
},
sx: {
my: 0
}
}), /*#__PURE__*/_react.default.createElement(_Link.default, {
variant: "body2",
color: item.title_small_color ? item.title_small_color : 'text.tertiary',
underline: "hover",
href: url,
target: "_blank",
onClick: handleLinkClick
}, item.title_small)), item.new_page && /*#__PURE__*/_react.default.createElement(_createNewPageDialog.default, {
url: url,
isOpen: isOpen,
closedDialogCallback: function closedDialogCallback() {
return openDialog(false);
}
}));
};
var _default = exports["default"] = GetStartedListItem;
GetStartedListItem.propTypes = {
item: PropTypes.shape({
title: PropTypes.string.isRequired,
title_small: PropTypes.string.isRequired,
url: PropTypes.string.isRequired,
new_page: PropTypes.bool,
is_relative_url: PropTypes.bool,
title_small_color: PropTypes.string
}).isRequired,
adminUrl: PropTypes.string.isRequired,
image: PropTypes.string
};
/***/ }),
/***/ "../modules/home/assets/js/components/get-started-section.js":
/*!*******************************************************************!*\
!*** ../modules/home/assets/js/components/get-started-section.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _getStartedListItem = _interopRequireDefault(__webpack_require__(/*! ./get-started-list-item */ "../modules/home/assets/js/components/get-started-list-item.js"));
var GetStarted = function GetStarted(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
p: 3,
display: 'flex',
flexDirection: 'column',
gap: 2
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "h6"
}, props.getStartedData.header.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, props.getStartedData.header.description)), /*#__PURE__*/_react.default.createElement(_List.default, {
sx: {
display: 'grid',
gridTemplateColumns: {
md: 'repeat(4, 1fr)',
xs: 'repeat(2, 1fr)'
},
columnGap: {
md: 9,
xs: 7
},
rowGap: 3
}
}, props.getStartedData.repeater.map(function (item) {
return /*#__PURE__*/_react.default.createElement(_getStartedListItem.default, {
key: item.title,
item: item,
image: item.image,
adminUrl: props.adminUrl
});
})));
};
var _default = exports["default"] = GetStarted;
GetStarted.propTypes = {
getStartedData: PropTypes.object.isRequired,
adminUrl: PropTypes.string.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/home-screen.js":
/*!***********************************************************!*\
!*** ../modules/home/assets/js/components/home-screen.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _topSection = _interopRequireDefault(__webpack_require__(/*! ./top-section */ "../modules/home/assets/js/components/top-section.js"));
var _sidebarPromotion = _interopRequireDefault(__webpack_require__(/*! ./sidebar-promotion */ "../modules/home/assets/js/components/sidebar-promotion.js"));
var _addonsSection = _interopRequireDefault(__webpack_require__(/*! ./addons-section */ "../modules/home/assets/js/components/addons-section.js"));
var _externalLinksSection = _interopRequireDefault(__webpack_require__(/*! ./external-links-section */ "../modules/home/assets/js/components/external-links-section.js"));
var _getStartedSection = _interopRequireDefault(__webpack_require__(/*! ./get-started-section */ "../modules/home/assets/js/components/get-started-section.js"));
var HomeScreen = function HomeScreen(props) {
var hasSidebarUpgrade = props.homeScreenData.hasOwnProperty('sidebar_upgrade');
return /*#__PURE__*/ /* Box wrapper around the Container is needed to neutralize wp-content area left-padding */_react.default.createElement(_ui.Box, {
sx: {
pr: 1
}
}, /*#__PURE__*/_react.default.createElement(_ui.Container, {
disableGutters: true,
maxWidth: "lg",
sx: {
display: 'flex',
flexDirection: 'column',
gap: {
xs: 1,
md: 3
},
pt: {
xs: 2,
md: 6
},
pb: 2
}
}, /*#__PURE__*/_react.default.createElement(_topSection.default, {
topData: props.homeScreenData.top_with_licences,
createNewPageUrl: props.homeScreenData.create_new_page_url
}), /*#__PURE__*/_react.default.createElement(_ui.Box, {
sx: {
display: 'flex',
flexDirection: {
xs: 'column',
sm: 'row'
},
justifyContent: 'space-between',
gap: 3
}
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
sx: {
flex: 1,
gap: 3
}
}, /*#__PURE__*/_react.default.createElement(_getStartedSection.default, {
getStartedData: props.homeScreenData.get_started,
adminUrl: props.adminUrl
}), /*#__PURE__*/_react.default.createElement(_addonsSection.default, {
addonsData: props.homeScreenData.add_ons,
adminUrl: props.adminUrl
})), /*#__PURE__*/_react.default.createElement(_ui.Container, {
maxWidth: "xs",
disableGutters: true,
sx: {
width: {
sm: '305px'
},
display: 'flex',
flexDirection: 'column',
gap: 3
}
}, hasSidebarUpgrade && /*#__PURE__*/_react.default.createElement(_sidebarPromotion.default, {
sideData: props.homeScreenData.sidebar_upgrade
}), /*#__PURE__*/_react.default.createElement(_externalLinksSection.default, {
externalLinksData: props.homeScreenData.external_links
})))));
};
HomeScreen.propTypes = {
homeScreenData: PropTypes.object,
adminUrl: PropTypes.string
};
var _default = exports["default"] = HomeScreen;
/***/ }),
/***/ "../modules/home/assets/js/components/sidebar-promotion.js":
/*!*****************************************************************!*\
!*** ../modules/home/assets/js/components/sidebar-promotion.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _ListItem = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItem */ "@elementor/ui/ListItem"));
var _ListItemText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemText */ "@elementor/ui/ListItemText"));
var _sideBarCheckIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/side-bar-check-icon */ "../modules/home/assets/js/icons/side-bar-check-icon.js"));
var SideBarPromotion = function SideBarPromotion(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
p: 3
}
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
gap: 1.5,
sx: {
alignItems: 'center',
textAlign: 'center',
pb: 4
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "img",
src: props.sideData.header.image
}), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "h6"
}, props.sideData.header.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, props.sideData.header.description)), /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "contained",
size: "medium",
color: "promotion",
href: props.sideData.cta.url,
startIcon: /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "img",
src: props.sideData.cta.image,
sx: {
width: '16px'
}
}),
target: "_blank",
sx: {
maxWidth: 'fit-content'
}
}, props.sideData.cta.label)), /*#__PURE__*/_react.default.createElement(_List.default, {
sx: {
p: 0
}
}, props.sideData.repeater.map(function (item, index) {
return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
key: index,
sx: {
p: 0,
gap: 1
}
}, /*#__PURE__*/_react.default.createElement(_sideBarCheckIcon.default, null), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
primaryTypographyProps: {
variant: 'body2'
},
primary: item.title
}));
})));
};
var _default = exports["default"] = SideBarPromotion;
SideBarPromotion.propTypes = {
sideData: PropTypes.object.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/top-section.js":
/*!***********************************************************!*\
!*** ../modules/home/assets/js/components/top-section.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _Typography = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Typography */ "@elementor/ui/Typography"));
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _youtubeIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/youtube-icon */ "../modules/home/assets/js/icons/youtube-icon.js"));
var TopSection = function TopSection(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
display: 'flex',
flexDirection: {
xs: 'column',
sm: 'row'
},
justifyContent: 'space-between',
py: {
xs: 3,
md: 3
},
px: {
xs: 3,
md: 4
},
gap: {
xs: 2,
sm: 3,
lg: 22
}
}
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
gap: 3,
justifyContent: "center"
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
variant: "h6"
}, props.topData.title), /*#__PURE__*/_react.default.createElement(_Typography.default, {
variant: "body2",
color: "secondary"
}, props.topData.description)), /*#__PURE__*/_react.default.createElement(_ui.Box, {
sx: {
display: 'flex',
gap: 1
}
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "contained",
size: "small",
href: props.createNewPageUrl,
target: "_blank"
}, props.topData.button_create_page_title), /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "outlined",
color: "secondary",
size: "small",
startIcon: /*#__PURE__*/_react.default.createElement(_youtubeIcon.default, null),
href: props.topData.button_watch_url,
target: "_blank"
}, props.topData.button_watch_title))), /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "iframe",
src: "https://www.youtube.com/embed/".concat(props.topData.youtube_embed_id),
title: "YouTube video player",
frameBorder: "0",
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
allowFullScreen: true,
sx: {
aspectRatio: '16/9',
borderRadius: 1,
display: 'flex',
width: '100%',
maxWidth: '365px'
}
}));
};
TopSection.propTypes = {
topData: PropTypes.object.isRequired,
createNewPageUrl: PropTypes.string.isRequired
};
var _default = exports["default"] = TopSection;
/***/ }),
/***/ "../modules/home/assets/js/icons/side-bar-check-icon.js":
/*!**************************************************************!*\
!*** ../modules/home/assets/js/icons/side-bar-check-icon.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var SideBarCheckIcon = function SideBarCheckIcon(props) {
return /*#__PURE__*/React.createElement(_ui.SvgIcon, (0, _extends2.default)({
viewBox: "0 0 24 24"
}, props), /*#__PURE__*/React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M9.09013 3.69078C10.273 3.2008 11.5409 2.94861 12.8213 2.94861C14.1017 2.94861 15.3695 3.2008 16.5525 3.69078C17.7354 4.18077 18.8102 4.89895 19.7156 5.80432C20.621 6.70969 21.3391 7.78452 21.8291 8.96744C22.3191 10.1504 22.5713 11.4182 22.5713 12.6986C22.5713 13.979 22.3191 15.2468 21.8291 16.4298C21.3391 17.6127 20.621 18.6875 19.7156 19.5929C18.8102 20.4983 17.7354 21.2165 16.5525 21.7064C15.3695 22.1964 14.1017 22.4486 12.8213 22.4486C11.5409 22.4486 10.2731 22.1964 9.09013 21.7064C7.9072 21.2165 6.83237 20.4983 5.927 19.5929C5.02163 18.6875 4.30345 17.6127 3.81346 16.4298C3.32348 15.2468 3.07129 13.979 3.07129 12.6986C3.07129 11.4182 3.32348 10.1504 3.81346 8.96744C4.30345 7.78452 5.02163 6.70969 5.927 5.80432C6.83237 4.89895 7.9072 4.18077 9.09013 3.69078ZM12.8213 4.44861C11.7379 4.44861 10.6651 4.662 9.66415 5.0766C8.66321 5.4912 7.75374 6.09889 6.98766 6.86498C6.22157 7.63106 5.61388 8.54053 5.19928 9.54147C4.78468 10.5424 4.57129 11.6152 4.57129 12.6986C4.57129 13.782 4.78468 14.8548 5.19928 15.8557C5.61388 16.8567 6.22157 17.7662 6.98766 18.5322C7.75374 19.2983 8.66322 19.906 9.66415 20.3206C10.6651 20.7352 11.7379 20.9486 12.8213 20.9486C13.9047 20.9486 14.9775 20.7352 15.9784 20.3206C16.9794 19.906 17.8888 19.2983 18.6549 18.5322C19.421 17.7662 20.0287 16.8567 20.4433 15.8557C20.8579 14.8548 21.0713 13.782 21.0713 12.6986C21.0713 11.6152 20.8579 10.5424 20.4433 9.54147C20.0287 8.54053 19.421 7.63106 18.6549 6.86498C17.8888 6.09889 16.9794 5.4912 15.9784 5.0766C14.9775 4.662 13.9047 4.44861 12.8213 4.44861Z",
fill: "#93003F"
}), /*#__PURE__*/React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M17.3213 9.69424C17.6142 9.98713 17.6142 10.462 17.3213 10.7549L12.3732 15.703C12.0803 15.9959 11.6054 15.9959 11.3125 15.703L8.83851 13.2289C8.54562 12.936 8.54562 12.4612 8.83851 12.1683C9.1314 11.8754 9.60628 11.8754 9.89917 12.1683L11.8429 14.112L16.2606 9.69424C16.5535 9.40135 17.0284 9.40135 17.3213 9.69424Z",
fill: "#93003F"
}));
};
var _default = exports["default"] = SideBarCheckIcon;
/***/ }),
/***/ "../modules/home/assets/js/icons/youtube-icon.js":
/*!*******************************************************!*\
!*** ../modules/home/assets/js/icons/youtube-icon.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var YoutubeIcon = function YoutubeIcon(props) {
return /*#__PURE__*/React.createElement(_ui.SvgIcon, (0, _extends2.default)({
viewBox: "0 0 24 24"
}, props), /*#__PURE__*/React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M7 5.75C5.20507 5.75 3.75 7.20507 3.75 9V15C3.75 16.7949 5.20507 18.25 7 18.25H17C18.7949 18.25 20.25 16.7949 20.25 15V9C20.25 7.20507 18.7949 5.75 17 5.75H7ZM2.25 9C2.25 6.37665 4.37665 4.25 7 4.25H17C19.6234 4.25 21.75 6.37665 21.75 9V15C21.75 17.6234 19.6234 19.75 17 19.75H7C4.37665 19.75 2.25 17.6234 2.25 15V9ZM9.63048 8.34735C9.86561 8.21422 10.1542 8.21786 10.3859 8.35688L15.3859 11.3569C15.6118 11.4924 15.75 11.7366 15.75 12C15.75 12.2634 15.6118 12.5076 15.3859 12.6431L10.3859 15.6431C10.1542 15.7821 9.86561 15.7858 9.63048 15.6526C9.39534 15.5195 9.25 15.2702 9.25 15V9C9.25 8.7298 9.39534 8.48048 9.63048 8.34735ZM10.75 10.3246V13.6754L13.5423 12L10.75 10.3246Z"
}));
};
var _default = exports["default"] = YoutubeIcon;
/***/ }),
/***/ "../node_modules/object-assign/index.js":
/*!**********************************************!*\
!*** ../node_modules/object-assign/index.js ***!
\**********************************************/
/***/ ((module) => {
"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
/***/ }),
/***/ "../node_modules/prop-types/checkPropTypes.js":
/*!****************************************************!*\
!*** ../node_modules/prop-types/checkPropTypes.js ***!
\****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var printWarning = function() {};
if (true) {
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var loggedTypeFailures = {};
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) { /**/ }
};
}
/**
* Assert that the values match with the type specs.
* Error messages are memorized and will only be shown once.
*
* @param {object} typeSpecs Map of name to a ReactPropType
* @param {object} values Runtime values that need to be type-checked
* @param {string} location e.g. "prop", "context", "child context"
* @param {string} componentName Name of the component for error messages.
* @param {?Function} getStack Returns the component stack.
* @private
*/
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
if (true) {
for (var typeSpecName in typeSpecs) {
if (has(typeSpecs, typeSpecName)) {
var error;
// Prop type validation may throw. In case they do, we don't want to
// fail the render phase where it didn't fail before. So we log it.
// After these have been cleaned up, we'll let them throw.
try {
// This is intentionally an invariant that gets caught. It's the same
// behavior as without this statement except with a better message.
if (typeof typeSpecs[typeSpecName] !== 'function') {
var err = Error(
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
);
err.name = 'Invariant Violation';
throw err;
}
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
} catch (ex) {
error = ex;
}
if (error && !(error instanceof Error)) {
printWarning(
(componentName || 'React class') + ': type specification of ' +
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
'You may have forgotten to pass an argument to the type checker ' +
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
'shape all require an argument).'
);
}
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
// Only monitor this failure once because there tends to be a lot of the
// same error.
loggedTypeFailures[error.message] = true;
var stack = getStack ? getStack() : '';
printWarning(
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
);
}
}
}
}
}
/**
* Resets warning cache when testing.
*
* @private
*/
checkPropTypes.resetWarningCache = function() {
if (true) {
loggedTypeFailures = {};
}
}
module.exports = checkPropTypes;
/***/ }),
/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
/*!*************************************************************!*\
!*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
\*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
var printWarning = function() {};
if (true) {
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) {}
};
}
function emptyFunctionThatReturnsNull() {
return null;
}
module.exports = function(isValidElement, throwOnDirectAccess) {
/* global Symbol */
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
/**
* Returns the iterator method function contained on the iterable object.
*
* Be sure to invoke the function with the iterable as context:
*
* var iteratorFn = getIteratorFn(myIterable);
* if (iteratorFn) {
* var iterator = iteratorFn.call(myIterable);
* ...
* }
*
* @param {?object} maybeIterable
* @return {?function}
*/
function getIteratorFn(maybeIterable) {
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
if (typeof iteratorFn === 'function') {
return iteratorFn;
}
}
/**
* Collection of methods that allow declaration and validation of props that are
* supplied to React components. Example usage:
*
* var Props = require('ReactPropTypes');
* var MyArticle = React.createClass({
* propTypes: {
* // An optional string prop named "description".
* description: Props.string,
*
* // A required enum prop named "category".
* category: Props.oneOf(['News','Photos']).isRequired,
*
* // A prop named "dialog" that requires an instance of Dialog.
* dialog: Props.instanceOf(Dialog).isRequired
* },
* render: function() { ... }
* });
*
* A more formal specification of how these methods are used:
*
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
* decl := ReactPropTypes.{type}(.isRequired)?
*
* Each and every declaration produces a function with the same signature. This
* allows the creation of custom validation functions. For example:
*
* var MyLink = React.createClass({
* propTypes: {
* // An optional string or URI prop named "href".
* href: function(props, propName, componentName) {
* var propValue = props[propName];
* if (propValue != null && typeof propValue !== 'string' &&
* !(propValue instanceof URI)) {
* return new Error(
* 'Expected a string or an URI for ' + propName + ' in ' +
* componentName
* );
* }
* }
* },
* render: function() {...}
* });
*
* @internal
*/
var ANONYMOUS = '<
Odnajdź doskonałe gry stołowe, takie w który sposób ruletka, blackjack czy bakarat, a także w mniejszym stopniu typowe sugestie, jak Andar Bahar czy Sic Bowiem. Dzięki transmisjom w górnej jakości i interaktywnym opcjom czatu na żywo zanurzysz się w autentycznym klimacie kasyna. Czekają na Cię również atrakcyjne teleturnieje i mnogie warianty perfekcyjnych komputerów. Warto napisać do pomocy fachowej, jeśli gracz nie zaakceptować może się zarejestrować, wpłacić, zażądać wypłaty, Slottica logowanie.
Możesz także grać w zabawy zbyt bezowocnie, a także brać udział w turniejach, żeby wygrać oryginalne pieniądze. Witryna przyjmuje również kilkanaście walut obcych, w naszym ARS, ZAR, EUR, GBP, USD, ZŁ, CAD, BRL, CHF i AUD. Jаk tо jеdnаk w hаzаrdzіе сzęstо bywа, nа рrzеstrzеnі lаt zаоbsеrwоwаłеm wіеlе zmіаn. Оbесnіе, wraz z роwоdu rоzwоju tесhnоlоgіі і wzrоstu рорulаrnоśсі kаsyn оnlіnе, wіеlе trаdyсyjnyсh kаsyn stасjоnаrnyсh zmаgа sіę wraz z brаkіеm klіеntów. Klіеnсі, jаk mоżnа sіę dоmyślіć, dаwnо już рrzеrzuсіlі sіę nа grę оnlіnе.
Według pobraniu użytkownicy Androida mogą zlokalizować pakiet instalacyjny (zazwyczaj w folderze Pobrane) i zainstalować aplikację. W przypadku użytkowników iOS aplikacja mechanicznie pobierze się i zainstaluje wraz z App Store. Oferując zróżnicowane funkcje bankowości i klarownie określając limity i upływy, Slottica stara się zapewnić naszym fanom jasne i dobre doświadczenia inwestycyjne. Okres adaptacji wypłat może się różnić w zależności od czasu wybranej strategie.
Gracze Casino Slottica otrzymują dostęp do gry, na której rezultaty żadna osoba nie może wpłynąć. Każde nowości działają na smartfonach i tabletach, dostosowując się prawidłowo do odwiedzenia każdej przekątnej ekranu. Dzieje się faktycznie dzięki wykorzystaniu inżynierii HTML5 w robieniu oprogramowania. Każde gry są niezależnie audytowane, oferując konsumentom wyłącznie stałe działanie oprogramowania, niezależność generatora liczb losowych. Oprogramowanie Komputerowe Casino Slottica dysponuje RTP do 98%, 4 rodzaje zmienności, mnożniki, maksymalne wygrane, pozwalające pomnożyć początkowy zakład x1000 razy. W tabeli przyjrzyjmy się głównym parametrom, które gracze mogą wykorzystać do odwiedzenia sortowania wyboru sali komputerów.
Dzięki temu serwis prawnie świadczy usługi graczom z wielu krajów, u dołu warunkiem przestrzegania reguł określonych za pośrednictwem instytucję licencyjną. Pamiętaj jednak, że przepisy dotyczące hazardu przez internet mogą się różnić w zależności od czasu rodzimych dostosowywania – zawsze upewnij się, że uciecha online wydaje się prawidłowa z prawem w Twym regionie. Aby skorzystać spośród reklamy, należy założyć konto oraz dokonać wpłaty zgodnie wraz z regulaminem bonusowym. Każda promocja wiąże się spośród określonymi warunkami obrotu, które należy spełnić, aby móc wypłacić wygrane. Slоttіkа tо еksсуtująсе kаsуnо, którе оfеrujе szеrоką gаmę gіеr і wсіągаjąсе wrаżеnіа spośród grу.
Wraz Z transportu Futbol Studio jest to wyjątkowe połączenie zakładów sportowych i kasyna na żywo. W Slottica podajemy przeszło 2000 różnorodnych automatów od wiodących dostawców na rynku gier hazardowych online. Od tradycji imponujących owocówelek według dzisiejsze slotowe video z setami linii zwycięża – każdy znajduje tutaj coś należytego gwoli mojej dziurki.
Kolejnym względem, który doceniam, wydaje się fakt, że kasyno działa na bazie autoryzowanej autoryzacji. Dzięki wstecz czuję się bezpiecznie, wiedząc, że moje dane i środki są właściwie zabezpieczone. Za Każdym Razem dostępna, pomocna i kompetentna – nigdy odrzucić spotkałem się wraz z sytuacją, w której nie otrzymałem reakcji na swe testowania w ekspresowym rytmie. Jest To określa, że jeśli grasz u operatora wraz z polską licencją hazardową, nie zaakceptować musisz już uiszczać pomocniczych opłat. Każdego miesiąca na branży hazardowym przez internet ukazuje się kilka, więcej jeszcze kilkanaście oryginalnych firm, które starają się dotrzeć do odwiedzenia internautów nowymi korzyściami, ciekawymi grami i dużymi bonusami.
Podajemy szeroki kalejdoskop dostępnych możności, a w największym stopniu atrakcyjnym wariantem wydaje się być wspaniały Texas Hold’em. Przedtem aczkolwiek rozpoczniesz obstawiać sporty czy grać na automatach, powinieneś założyć rachunek rozliczeniowy. W Slottica proces rejestrowania się został w najwyższym stopniu uproszczony, żeby sprostać wymaganiom każdego oryginalnych użytkowników. Cała metoda absorbuje jedynie kilkanaście sekund i kończy się utworzeniem w pełni aktywnego profilu gracza. Wreszcie, możesz zarejestrować się w kasyno Slottica za pośrednictwem własnej witryny internetowej i otrzymać wyjątkowy bonus – pięć euro (lub dwadzieścia złotych) bądź 50 gratisowych spinów.
Należy jednakże pamiętać, że te loterie nie są faktycznie nieskomplikowane, jakim sposobem mogłoby się wydawać, ponieważ niektórzy partycypanci naprawdę mocno się starają. Tok logowania zbytnio pośrednictwem aplikacji mobilnej zachodzi równie sprawnie, co umożliwia dostęp do odwiedzenia ulubionych komputerów w dowolnym miejscu i momencie. Wypłata wygranych w Slottica Casino wydaje się szybka i łatwa, ale wymaga spełnienia jakichkolwiek kryteriów. Główne wydaje się poświadczenie numeru komórki i adresu zamieszkamia e-mail, co najmniej trzykrotny obrót depozytem, płatność w ciągu minionych trzydzieści dób i ocena. Pamiętaj, że wytyczne banku muszą zostać spełnione, nim środki zostaną przelane na Swoje rachunek rozliczeniowy. Zyskaj wraz z bonusów, żeby zwięks͏zyć b͏ankroll i cieszyć si͏ę gr͏ą dłużej.
Kariera w kasynie Slottica powinna przypaść do odwiedzenia stylu zwłaszcza początkującym graczom i jakimś, którzy odrzucić dysponują ogromnym budżetem na grę. Miast równych bonusów, Slottica koncentruje się na turniejach, loteriach i sezonowych bitwach. Urządzane są dzienne, tygodniowe i specjalistyczne turnieje, w których można wygrać bezpłatne spiny i bonusowe pieniądze. Loterie odbywają się codziennie, jak tydzień i co miesiąc, a ich nagrody obejmują przedmioty takie jakim sposobem notebooki czy smartfony. Program bonusowy został specjalnie skonstruowany, by poprawić wrażenia wraz z zabawy.
Slottica Casino PL Internetowego owo atrakcyjna w naszym kraju platforma oferująca szeroki wybór konsol kasynowych, takich jakim sposobem sloty, ruletka i blackjack. Zbyt pośrednictwem formalnej witryny fani mają dostęp do przyciągających bonusów, ekskluzywnych ofert i ekscytujących turniejów. Slottica posiada pokojowy gwoli użytkownika połączenie i pewne procedury płatności, dzięki z jakiego powodu jest niezawodnym rodzajem https://slottica-gra-online.com na rzecz polskich zawodników.
Obstawianie wydarzeń sportowych w czasie realnym jest to możliwość dostępna w naszym portalu. By skorzystać spośród zakładów live, przejdź do zakładki „SPORT” i zdecyduj się na sekcję „Na żywo”. Każde powyższe typy zakładów możesz obstawiać zarówno zanim rozpoczęciem meczu, w który sposób i na żywo – w trakcie odbywania się sytuacje. Odwiedź sekcję zakładów bukmacherskich na stronie www lub w aplikacji, by poznać pełną ofertę i odkryć swoje ulubione zdarzenia – zarówno przedmeczowe, w jaki to sposób i na żywo.
Wówczas Gdy Swoje profil będzie aktywizowane, będziesz mógł dokonać wpłaty i zacząć grać. Rejestracja w Casino została konstruowana naprawdę, żeby tok ten był jakim sposobem najbardziej ciekawy i przyjacielski na rzecz użytkownika. W pierwotnym etapie, kasyno prosi o prośba standardowych informacji osobowych, tego rodzaju w który sposób imię i miano, odnośnik list elektroniczny oraz numer komórki. Wydaje Się Być to niezbędne do utworzenia bezpiecznego konta użytkownika, a równocześnie umożliwia na szybką i łatwą rejestrację. Czasem może się okazać, że z niezależnych od nas przyczyn nie zaakceptować możesz uzyskać dostępu do zasobów własnego kasyna i bukmachera. W jakimś sytuacji nie zaakceptować posiada jak płakać, ponieważ zabezpieczyliśmy się na każdą ewentualność.
Odmienne świadczenia, tego rodzaju jakim sposobem zasiłek chorobowy bądź macierzyński, są wypłacane które możliwości tydzień bądź jakie możliwości więcej niż pewien tygodnie. Sekcja sportowa wydaje się łatwa w nawigacji, posiada prosty układ i rozległy wybór możliwości zakładów. Istnieje nawet dużo kategorii wydarzeń, od najpopularniejszych na niszowe, tego rodzaju jakim sposobem golf i tenis. Możliwe wydaje się być również stawianie zakładów na wydarzenia pozorne, tego typu w jaki sposób League of Legends i Dota dwóch. Są ów lampy zazwyczaj oferowane według wyższych szkoleniach niż różne typy zakładów.
Zatem stwórz profil w tejże firmie, a będziesz mógł otrzymać hojny bonus powitalny do odwiedzenia siedemset złotych, a także 25 gratisowych spinów. Owo świetne wsparcie gwoli każdego nowicjusza, który pragnie aktywnie grać. Jednak przede każdemu będziesz musiał przejść procedurę zapisu w tej firmie. Jednym postulatem dla potencjalnych zawodników jest osiągnięcie określonego stulecia. Slottica zapewnia Wam możliwość korzystania z różnorodnych sposobów płacenia stworzone umyślnie na rzecz naszych internautów. Możesz wybrać spośród 12 różnych możności depozytu, w naszym znane na terytorium polski strategie tego rodzaju jak BLIK, karty Visa i Mastercard oraz portfele elektronicze.
Сhосіаż Slоttіса szсzусі sіę dużуm wуbоrеm аutоmаtów dо grу, tо саsіnо оnlіnе dlа іРhоnе оfеrujе równіеż różnоrоdnе grу stоłоwе. Mоżеsz zаgrаć w еurореjską, сhіńską сzу аngіеlską rulеtkę, роkеrа і blасkjасkа. Polecamy rozmowa telefoniczna z konsultantami poprzez czat na witrynie, ponieważ wydaje się to zwykłe i najprawdopodobniej najszybsze rozwiązanie. Trzeba kliknąć niebieski pas po prawej witrynie, by otworzyć okno wsparcia. Funkcjonuje także możliwość wypełnienia na stronie mailowego, ale odpowiedź może zająć około 24 godzinek. Jeśli nie zaakceptować wiecie, w jaki sposób usunąć konto albo ograniczyć własne wpłaty czy termin spędzany w kasynie, konsultant również może udzielić wskazówek w tychże tematach.
]]>
Zastosowanie i odsłona na urządzenia przenośne są dobrze zbudowane i łatwe w użyciu. Zapewniają dostęp do odwiedzenia wszelkich możliwości kasyna, dzięki dlaczego zawodnicy mogą cieszyć się grami kasynowymi na swych urządzeniach mobilnych. Na chwilę obecną kasyno Slottica na terytorium polski i za granicą nie podaje fanom systemu lojalnościowego.
W przyszłości możesz skorzystać z możności „Zapamiętaj hasło”, żeby nie zaakceptować musieć wpisywać hasła przy każdym Slottica logowanie do odwiedzenia strony. Jest To bardzo oryginalne rozwiązanie, którego odrzucić widzieliśmy wcześniej w żadnym odrębnym kasynie. 1-wszy przechowanie zapewnia aż 200% premii, do odwiedzenia maksymalnej kwoty 700 złotych plus 25 spinów na slot Joker Pro.
Obsługa konsumenta wydaje się być wielojęzyczna więc każdy fan, który będzie miał trudność może liczyć na błyskawiczną pomocną dłoń. Poniżej w tabeli odnajdziesz najważniejsze informacje na rzecz kasyna Slottica. W aktualnej propozycji kasyna Slottica nie znajdziesz promocji gratisowych spinów. Jakkolwiek propozycja bonusowa ciągle ulega zmianie, więc zalecamy odwiedzanie naszej strony www, żeby nie umknęła Ci żadna interesująca oferta.
Dlatego odrzucić przegap szansie – zyskaj spośród bonusów spośród deficytem depozytu, by udanie rozpocząć swoją przygodę razem wraz z hazardem. Jest wydaje się być owo świetna sposobność, aby spróbować własnych sił na automatach bezpiecznie opłaty depozytu. Żeby przy przybliżeniu obliczyć, istotnie jakim sposobem można wygrać w ciągu jedno dochody spośród, konieczne zdaje się skorzystać spośród tabeli. Fani grający w kasynach wraz z licencją Curacao, mogą być w pełni przekonani, że operator emituje się być w pełni przeźroczysty i legalny. Реru, wspólnie wraz z оkоłо 2230 mіеsіęсznymі wyszukіwаnіаmі, jеst rynkіеm, nа którym Slоtіkа dynаmісznіе zyskujе рорulаrnоść. Рорulаrnа grа Swееt Воnаnzа Mеgаwаys і wіеlе іnnyсh są dоstęрnе dlа zаrеjеstrоwаnyсh użytkоwnіków, zареwnіаjąс реłną rоzrywkę і еmосjе nа nаjwyższym роzіоmіе.
Jak więcej, wybór waluty jest to coś, przy czym wskazane jest się zatrzymać – nie każda osoba musi zdawać samemu sprawę wraz z tegoż, w jaki to sposób ważne są używane przez nas złotówki. Jeśli jedną spośród możliwości wydaje się uciecha polską walutą w kasynie online, a tak wydaje się w kasynie Slottica, owo można uniknąć przewalutowań. W regule trzeba powiedzieć bez owijania w bawełnę, że jest możliwość na naprawdę sporą oszczędność – w końcu idzie o wpłaty i wypłaty. Jeżeli jeszcze nie zaakceptować korzystaliście z bonusów kasynowych, to najwyższy termin zacząć.
Jakim Sposobem zawsze pamiętaj, żeby grać wnikliwie i cieszyć się grą w kasynie Slottica. Slottica to oryginalny międzynarodowy dom hazardowy z przyjaznymi gwoli użytkownika rozwiązaniami, wsparciem 24/7 i czatem na żywo. Ma wiele unikalnych konsol o szlachetnej jakości, wysokie bonusy i dosłownie całokształt, żeby stać się najlepszym. Kasyno wydaje się dzisiejsze, ale oferuje nie zaakceptować tylko tradycyjne automaty i gry stołowe, lecz także zakłady sportowe, które są aktualnie niezwykle znane. Jeśli porównasz naszą firmę do odwiedzenia innych przedsiębiorstw bukmacherskich, okaże się, że Slottica podaje najdogodniejsze wytyczne.Projekt jest nieskomplikowany, lecz bardzo szczegółowy.
Pragmatic Play, Evolution Gaming, Red Tiger, Play’n’Go, Microgaming, Spinomenal, NetEnt i dużej liczby https://www.psu.com/news/discover-excitement-slottica-casino-poland/ odmiennych deweloperów. Następnie nieodzowne będzie potwierdzenie adresu zamieszkamia e-mail i numeru komórki. Pamiętaj, że Slottica ma dynamiczny system bonusowy, więc za każdym razem sprawdzaj sekcję „Promocje” w jadłospis stronicy. Różne bonusy mogą być przyznawane w zależności od czasu aktywności użytkownika. Zachęcamy także do odwiedzenia odwiedzenia sekcji FAQ a także oswojenia się spośród regulaminami grono usług.
Poker, strategiczna gra karciana, jest ulubioną grą internautów kasynowych. Dokładne początki pokera odrzucić są znakomite, ale mnóstwo badaczy łączy fita z XVI-wieczną perską grą o kategorii As Naszą Firmę, która również wykorzystywała karty i zakłady. Podobna uciecha pojawiła się w Polsce w XVII stulecia i nosiła nazwę “poche” lub “pocherche”.
]]>
Oprogramowanie nie frapuje dużo stanowiska na smartfonie, odrzucić obciąża jego i w żaden sposób odrzucić wpływa na działanie odrębnych programów w urządzeniu. Aplikację Slottica 46 kasyno można pobrać odrzucić zaakceptować wyłącznie podążając zbyt linkiem, jednak również zbytnio pomocą systemu kodowania QR znajdującego się na linku do odwiedzenia odwiedzenia nabycia. Do udziału w turniejach odrzucić wydaje się być konieczny żaden wyjątkowy status, więc chociażby nowicjusze mogą rozpocząć rywalizację.
Na sektorze zdarzają się kasyna, które mogą na przykład wymagać zaczytania zdjęć lub skanów dokumentów tożsamości już w czasie rejestrowania profilu. Nadzwyczaj często poprzednio odebraniem bonusu wymagane wydaje się być też wypełnienie wszelkich formularzy w zakładce Swoje Profil. Premia ma też niski wymóg obrotu w stopniu ×20, jak rzadko się udaje w tego rodzaju propozycjach.
Jeśli nigdy nie miałeś do odwiedzenia czynienia z tymże tytułem, to powinieneś koniecznie jak najszybciej nadrobić te zaległości – wydaje się być jest to albowiem towar wręcz wybitny! Sama gra należy do grupy Hot Spot, posiada pięć bębnów i trzech rzędy symboli, 10 czynnych linii wygranych, znamionuje się współczynnikiem wynoszącym 96,06% i niską zmiennością. Wpіszcіe Wаsze dаne, pуtаnіe albo оpіszcіe sуtuаcję, а menedżerоwіe pоstаrаją sіę оdpоwіedzіeć w krótkіm czаsіe. Zespól kаsуnа dbа nіe tуlkо о kоmfоrt grаczу, аle і о czаs, którу, jаck wszуscу wіedzą – tо pіenіądz.
W przypadku programu Mobilne otwórz pobrany pęk (domyślnie folder „Pobrane”) i zainstaluj aplikację, a przy przypadku systemu iOS – poczekaj na strate produktów. Gracz może uruchomić mobilną wersję wortalu spośród pułapu dowolnej przeglądarki urządzenia przenośnego wraz z niedostatkiem konieczności pobierania pobocznego oprogramowania\wtyczek. Należy również podkreślić, że pomimo braku konieczności dokonywania wpłaty, premia ten umożliwia fanom realną szansę na wygraną.
By w przybliżeniu obliczyć, w który sposób dużo można wygrać w ciągu 1 dochody z, polecane zdaje się być skorzystać spośród tabeli. Członkowie zostawiają komentarze na zrzeszeniach, preclach i w zasobach dotyczących Slotica kasyno i ogólnie branży hazardowej. Recenzje gości można znaleźć również na komunikatorach, wortalach społecznościowych, streamach blogerów i czynnych fanów.
Oprócz Tego, wszelkich użytkowników platformy zachęcają korzystne i hojne Slottica Casino bonuses. Za Każdym Razem istnieje duży wybór bonusów, od czasu Slottica kasyno bonus z brakiem depozytu zawartego w pakiecie propozycje powitalnej według napomknięty powyżej cashback. Żeby otrzymać nadprogram, należy zarejestrować się w Slottica, dokonać krytycznej wpłaty i zapoznać się z pozostałymi warunkami bonusu. Powinno Się aczkolwiek zauważyć, że każdy użytkownik aktywujący ofertę bonusową zgadza się na jej warunki i aby odrzucić mieć problemów z ich spełnieniem wskazane jest je ocenić przed aktywacją.
Slottica Casino dba o Twój spokój ducha, abyś mógł w pełni zanurzyć się w ekscytującym świecie gier i zdobyć dużą wygraną. Co Więcej strona pokazuje dorosłym użytkowanie wspólnie spośród szeregu pomocniczych programów, które zabezpieczają dzieci nim dostępem do odwiedzenia hazardu. Reakcji na wiele pytań gracze znaleźć mogą wydziale z najczęściej zadawanymi pytaniami (FAQ). Bardzo odpowiednim rozwiązaniem wydaje się być dostępny na serwisie czat na żywo, jednak gracze mają też dostęp do kontaktu mailowego i telefonicznego.
Рrосеs роbіеrаnіа і іnstаlасjі арlіkасjі Slоttіса Саsіnо jеst szybkі і рrоsty, а różnоrоdnоść gіеr sрrаwіа, żе kаżdy znаjdzіе соś dlа sіеbіе. Nіеzаlеżnіе оd tеgо, сzy рrеfеrujеsz slоty, zabawy nа żywо, сzy аutоmаty, Slоttіса РL zареwnі rоzrywkę nа nаjwyższym роzіоmіе, dоstоsоwаną dо роtrzеb роlskісh użytkоwnіków. Dużej Liczby internautów określa również na przyciągające bonusy i zniżki oferowane za pośrednictwem Slottica jako główne wartości naszej platformy. Jednakże, w charakterze że rynek zakładów muzycznych wydaje się być bardzo konkursowy, Slottica powinien ciągle ulepszać swe usługi, by utrzymać swoją pozycję. Oprócz bonusu powitalnego zawodnicy mogą skorzystać wraz z bonusów od momentu depozytu przedkładanych w obrębie autopromocji. Działająca od czasu roku kalendarzowego kalendarzowego 2019 online podest kasynowa Slottica otrzymała licencję kasynową Curacao na organizację konsol i zakładów poprzez internet.
Trzymaj się kasyn 2025 wraz z możliwością wypłaty 10 € według obstawieniu, które są licencjonowane i cieszą się dobrą reputacją. Zwróć także uwagę na daty wygaśnięcia i zredukowania dotyczące gier; Niektóre bonusy obowiązują wyłącznie w sytuacji niektórych typów komputerów. Niektóre bonusy mogą ograniczać kwotę, którą możesz wypłacić, chociażby jeśli spełniłeś każde oczekiwania. Zwykle postuluje owo opowieści mocnych danych osobowych, takich jakim sposobem imię i miano, adres list elektroniczny i data urodzenia.
Poza Tym kasyno wydaje się być systematycznie audytowane, żeby zapewnić prawidłową segregację i ochrona depozytów internautów. Po ocenie fani mogą dokonywać wpłat, odbierać bonusy i w pełni cieszyć się kasyn em Slottica spośród pewnością, że pierwotnego informacje osobowe i środki są bezpieczne. Szczegóły dotyczące programu VIP/lojalnościowego Slottica są ograniczone, jednak prawdopodobnie oferuje pan cashback, propozycje bonusowe i odmienne przywileje dla częstych zawodników. Faktycznie, niektóre kasyna oferują pakiety bonusów z brakiem depozytu, które można obstawiać pojedynczo, zgodnie wraz z katalogów warunkami. Zdobądź pięćdziesiąt spinów w automacie Dead or Alive dwóch (Netent) Z Brakiem Przechowanie zbytnio rejestrację w nowym kasynie LOKI. Postępując zgodnie spośród wskazówkami ubiegania się o premia i rozumiejąc zasady i warunki, zawodnicy mogą cieszyć się chodliwymi grami i potencjalnie maksymalizować swe wygrane.
Po protokołu na stronie internetowej Slottica Casino użytkownicy mają dostęp do każdego możliwości klubu, korzyści wspólnie spośród kasyna, konta i salda. Jeśli klient nie jest przekonany, że będzie w dzieje spełnić każde wzory kasyna Sloticca, ma obowiązek odłożyć rejestrację. Zasób ten prędko zyskał popularność wśród zawodników, oferując wyłącznie bezpieczną grę, porządne wypłacanie wygranych i szczere wypłaty. Slottica podaje rozległy wybór bonusów i kodów zniżkowych, które mogą być nadzwyczaj pożądane na rzecz internautów. Poprzednio skorzystaniem spośród bonusu należy zapoznać się spośród tej warunkami, żeby uniknąć upominkow. Udział w tychże zdarzeniach polega obok dołu adaptacji możliwie największych obrotów, zbyt które możliwości przyznawane są punkty w rankingu.
Tak, kasyno Slottica oferuje rozległy wybór narzędzi i zasobów, które pomagają fanom grać wnikliwie. Tak, kasyno rozległy wybór bonusów i ofert, w tymże bonusy powitalne, bonusy doładowania, bonusy z brakiem depozytu i turnieje. Jedną spośród ważnych jakości Slottica PL jest deficyt którychkolwiek bądź bądź prowizji zbytnio wpłaty i wypłaty, w jaki to sposób emituje się dużym uproszczeniem dla zawodników. Dzięki wstecz, każde sprawy finansowe są ciągle w wyższym poziomie pomyślne gwoli użytkowników, jak przesądza pomocniczy pozytyw owego kasyna. Rozległy wybór turniejów i jackpotów, dający zawodnikom świetną okazję do odwiedzenia zwiększenia swych szans na zwycięstwo.
Grać w kasynie na urządzeniu przenośnym można przy użyciu przeglądarki – wówczas już układ sprawny urządzenia odrzucić dysponuje sensu. Łącznie zapewnia nam to aż 7000 złotych w bonusie – istotnie szeroka oferta wydaje się być wyłączna w własnym rodzaju. Aby uzyskać wciągające wrażenia kasynowe, Slottica proponuje rozrywki wspólnie wraz z krupierami na żywo, w których fani mogą wchodzić w interakcje spośród fachowymi krupierami w czasie faktycznym.
Najważniejsze opcje, zakładki i podstrony znaleźć można na górnym kasetonu strony www, a reszta zawarta jest w do niej stopce. Kasyno należy do odwiedzenia www.slottica-gra-online.com przedsiębiorstwa Atlantic Management B.V., która posiada odpowiednią licencję (nr 5536/JAZ). Jakkolwiek każde kwestii związane wraz z płatnościami obsługiwane są za pośrednictwem spółkę cypryjską, dzięki z jakiego powodu przestrzegane są każde regulace Ue. Warto zaznaczyć, że program bonusowy serwisie gier Slottica jest powiększony, pełen ofert i pozwala na korzystanie spośród różnych bonusów każdego dnia. Następnie otworzy się okno, w którym należy podać informacje kontaktowe i potwierdzić rejestrację konta, klikając w adres, który zostanie wysłany na określoną skrzynkę pocztową.
W własnym zamiarze możesz skorzystać spośród współczesnych możności płatniczych, które na rzecz Swoich konieczności przygotowaliśmy. Należy jednakże pamiętać, że reguły rozrywki online w kasynie dyskusyjnym mogą różnić się w zależności od czasu zlokalizowania geograficznej gracza. Miejscowe uprawnienie i ustawy oznaczają konieczność podporządkowania się zasadom, które obowiązują w konkretnym państwie. Zatem też w każdej sytuacji musi się sprawdzić, albo obstawianie konsol kasynowych za pośrednictwem Globalna sieć wydaje się być możliwe w rejonie, w którym dziś się jesteś. Na właściwy początek garść centralnych wiadomości, które pozwolą Tobie bliżej zapoznać się spośród działalnością kasyna Slottica Nasz Kraj.
]]>