/*! 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 = '<
This pattern raises concerns regarding the authenticity of the feedback.We welcome constructive and specific criticism, but generalised statements without reference to a particular operator make it difficult to treat this as a genuine experience related to our website. Instead of straightforward terms, many offers bury key restrictions deep in fine print — including excessive playthrough conditions that essentially negate any real benefit of “free” spins. This statement is inaccurate.We are not a casino operator and we do not process withdrawals. Nothing life-changing but good to test some slots before depositing
Found a few decent no deposit free spins here. Used one to test a slot and the bonus worked as expected
Wish i’d found this earlier instead of depositing $70 at every casino just to try it out, the minimum deposit 10 casino listings here are spot on and save you from overspending With objective analysis and up-to-date comparisons, $10 Deposit Casinos for Australians helps you find practical, low-risk real-money gaming options.See more No Interest Loans are a smart loan option to help you manage your money. Explore more convenient ways to pay bills, withdraw funds, pay on the go, bank in person or save time doing your personal and business banking online. If you need personal banking support, visit your nearest NAB branch or contact us.
People who write reviews have ownership to edit or delete them at any time, and they’ll be displayed as long as an account is active. This company hasn’t received any reviews yet. Content is updated regularly to reflect changes in the gaming industry and to assist users in making informed decisions before they join a casino.See more
This one has a decent selection for AU players, not just hype bonuses. This pattern is consistent with coordinated spam activity rather than a genuine customer experience.If you believe this review is legitimate, please provide specific details related to our website.
Fake review detected
This review is factually incorrect.We are not a casino and we do not operate any gambling app.
Chau’s operation also gave him the ear of the Chinese Communist Party elite who didn’t mind a punt and who, Australian authorities suspected, may also have wanted to quietly move large amounts of money to Australia. Chau’s Australian business flourished between 2012 and 2019, helping to earn him enough capital to finance action movies in Hong Kong and major casino projects in Russia and Asia. After 30 years old, I began to have some thoughts and goals,” Chau said of the growth of his gaming empire in a Hong Kong media interview in 2017. By the late 2000s, almost every major Macau casino had a Suncity high-roller room where Chau’s clients could gamble huge amounts in luxury settings, away from the prying eyes of mainland authorities. Sydney’s The Star Entertainment casino firm was just as eager to woo Chau to access his contact list of Chinese high rollers. I’ve hit some decent bonus features and didn’t have to fight to get paid.
Online pokies Australia that give you proper wins without freezing or stuffing up are rare, and this site pulls it off. The fast payouts are the things I care about most, because nothing is more annoying than having to wait weeks for your money. A fast payout casino is a promise they truly keep.
The advent of online pokies has revolutionised the way Australians enjoy their favourite pastime. As the majority of our customers choose to bank online or via our app, we are seeing fewer people requiring our in branch services. With branches conveniently located throughout the region, and innovative online banking services, we offer good old-fashioned customer service with all the bells and whistles of a modern bank. We offer a range of tailored home loans with 4 flexible options, perfectly suited to meet the needs of everyday Australians while providing a local customer service experience.
While offers like these sound extremely generous, it’s important to read the bonus terms carefully. Found a great $20 deposit bonus through them. This site (neosurfcasinos-au) is a lifesaver. Only giving 4 stars coz one of the bonuses listed was slightly different when I got to the casino site, but the Neosurf part worked fine.
Just hit the jackpot – found a casino that takes PayID and actually pays out fast. Claimed a 100% match bonus + 50 free spins, played Fruit Party and cashed out $270. Payid casino withdrawals processed m… Sarah from vip support remembers my pref… Tried sweet bonanza with bonus funds and actually managed to clear the wagering A lot pokies, my top picks included.
]]>We carefully analyze how each minimum deposit 10 casino operates in practice, ensuring there are no hidden limitations tied to low-entry offers.We also review platforms promoted as a $10 minimum deposit casino Australia players can access safely. We always recommend trying out games in free play mode before wagering real money.The Impact of Online Pokies on Australian CultureThe rise of online pokies has undeniably left its mark on Australian culture. However, both have their place in the Australian gaming landscape, catering to different preferences and occasions.How to Choose the Right Online Pokie for YouWith the vast array of online pokies available to Australian players, choosing the right game can seem overwhelming. We always advise our fellow players to be mindful of data usage when playing on mobile networks and to ensure they’re in a secure environment when logging into their accounts.The Future of Online Pokies in AustraliaAs we look to the future, it’s clear that online pokies will continue to play a significant role in Australia’s gaming landscape.
Contact your bank or credit card provider now and tell them to stop any transactions. Offering incentives for reviews or asking for them selectively can bias the TrustScore, which goes against our guidelines. Find out how we combat fake reviews. Companies can ask for reviews via automatic invitations.
We pay our respects to elders past, present and emerging, and acknowledge the ongoing connection that Aboriginal and Torres Strait Islander peoples have with Australia’s land and waters. Our help & support section has calculators, FAQs, system status and more. Offer only available to new credit cards accounts. Offer available in respect of balances transferred from non-Summerland credit card accounts issued in Australia only. Limited to cash held in a Summerland savings or fixed term deposit account. The comparison rate is based on a secured loan of $10,000 over 3 years.
And on December 1, the Suncity high-roller travel business ceased its casino operations in Macau, the place where it all began. ACIC has the power to direct people to attend compulsory questioning in hearing chambers or face jail. The Macau-headquartered and Chau-owned “Suncity Gaming” had, according to intelligence briefings ACIC provided NSW and Victorian police, “significant capabilities to facilitate large-scale money laundering between Australia and China”. Official sources not authorised to comment publicly say ACIC investigations into Cheng allege he is involved in “orchestrating large-scale money-laundering activity in Australia and the sourcing and distribution of heroin both in Hong Kong and overseas”. Anti-money-laundering agency Austrac, which also has a representative on the ACIC board, warned last year in a heavily redacted report that high-roller operations were also suspected of funding foreign interference operations.
Wish i’d found this earlier instead of depositing $70 at every casino just to try it out, the minimum deposit 10 casino listings here are spot on and save you from overspending With objective analysis and up-to-date comparisons, $10 Deposit Casinos for Australians helps you find practical, low-risk real-money gaming options.See more No Interest Loans are a smart loan option to help you manage your money. Explore more convenient ways to pay bills, withdraw funds, pay on the go, bank in person or save time doing your personal and business banking online. If you need personal banking support, visit your nearest NAB branch or contact us.
It’s about being able to provide a braver banking alternative and protecting our natural heritage long into the future. Founded on a belief in the power of the collective, we pride ourselves on always being there to support our community, in both the good times and the challenging ones. Whether it’s your first-ever account or you’re looking for a fresh start away from the ‘bigger guys’, we can get you up and running in minutes – online, over the phone, or in a local online casino branch. Because in a world that seems to be increasingly focused on helping yourself, we will never stop helping others, and supporting our local community. Joining a local and customer-owned bank like Summerland has never been easier, nor more important.
]]>Aussie payid casinos are my go-to now, support is super responsive and the pokies give great bonuses. Finally there are some australian payid options that actually offer no deposit bonuses. As players, we’ll need to stay informed about these changes and continue to prioritise responsible gaming practices.Comparing Online Pokies to Traditional Slot MachinesHaving experienced both online pokies and traditional slot machines, we can attest to the unique advantages and drawbacks betting sites of each.
Casinos that accept payid are okay for deposits, but the withdrawal verification dragged on way too long, and the bonus terms felt restrictive. In addition to the casino accepting payid (through only after kyc), there are also live games, which are becoming increasingly rare I had a quick question about the no-deposit bonus, and the support team sorted it out within minutes.
Saw offers like 100 free spins no deposit australia, good enough to test the slot and the site before committing Free spins no deposit casino pages are usually the first thing I check because I don’t like risking money right away. This review appears to misunderstand the nature of our platform.We are not a casino operator and we do not issue bonuses ourselves. In competitive markets like Australia, free spins no deposit in Australia are highly sought after, as players prefer low-risk ways to evaluate a casino’s payout speed, game quality, and overall trustworthiness.
We’re pleased to hear you’re happy with the withdrawal speed and overall experience. We’re glad to hear you’ve had a smooth and efficient withdrawal experience and found the process easy to use. Hello Jaxon Chubb, Thank you for sharing your experience.
]]>Casinos that accept payid are okay for deposits, but the withdrawal verification dragged on way too long, and the bonus terms felt restrictive. In addition to the casino accepting payid (through only after kyc), there are also live games, which are becoming increasingly rare I had a quick question about the no-deposit bonus, and the support team sorted it out within minutes.
A credit card that really does live up to its name, turn every swipe into an opportunity with a Summerland Bank Rewards Credit Card. Access great introductory offers with Summerland Bank’s Low Rate Credit Card. Unlock convenience and competitive rates with our range of credit cards designed with your best interests at heart. Lets you use the value of your home for a personal loan at a reduced rate. Whether you’re just starting out on your financial journey, or you’re looking to take your banking to the next level, choose the account that’s right for you.
Online pokies Australia that give you proper wins without freezing or stuffing up are rare, and this site pulls it off. The fast payouts are the things I care about most, because nothing is more annoying than having to wait weeks for your money. A fast payout casino is a promise they truly keep.
Check the register for money that belongs to you. If no interest loans is suitable for you, you will be provided with information on the document requirements and details of how to apply. Once your loan is submitted to the loan provider, we usually get an assessment decision in hours. If you have all requested supporting documents ready to send with your application, this will speed up the process. Depending on how quickly you can provide the requested information, it can take a few days to finalise and submit your loan application. This means we don’t do credit checks and we don’t have immediate access to financial information about you.
I really like that it shows real withdrawal limits, available payment systems (Visa, Mastercard, crypto, PayID), and payout timeframes. Also nice to see some top casinos with 98%+ rtp and verification that doesn’t drive you crazy. Online casino australia helped me online casino filter out a lot of junk sites.
When federal detectives examined his financial dealings, they uncovered a $403,000 deposit into a gaming account at The Star Sydney. As Chau’s international gaming operation grew, though, so did the rumours that it involved dirty money. Chau’s operation also gave him the ear of the Chinese Communist Party elite who didn’t mind a punt and who, Australian authorities suspected, may also have wanted to quietly move large amounts of money to Australia. Chau’s Australian business flourished between 2012 and 2019, helping to earn him enough capital to finance action movies in Hong Kong and major casino projects in Russia and Asia. By the late 2000s, almost every major Macau casino had a Suncity high-roller room where Chau’s clients could gamble huge amounts in luxury settings, away from the prying eyes of mainland authorities.
I liked that it actually compares Australian online casinos instead of just promoting the same ones over and over. A fairly convenient website for those looking for online casinos in Australia. I’ve been using this site for a few weeks now whenever I compare online casinos in Australia before registering. Free spins no deposit casino pages are usually the first thing I check because I don’t like risking money right away.
Fake review detected
This review is factually incorrect.We are not a casino and we do not operate any gambling app.
Investment scams promise big returns, but the goal is stealing money from you. Was your money stolen in the scam? Learn about Trustpilot’s review process. Anyone can write a Trustpilot review. So, as we gather here today, let’s celebrate our unique relationship with gambling and the role that pokies play in our lives. Customer service was responsive and helpful when I had a question about bonuses.
If gambling begins to feel overwhelming, consider taking a break or using self-exclusion tools provided by licensed operators. Simple navigation helps players access promotions and account settings without confusion. Transparent withdrawal policies and reasonable processing times are signs of a trustworthy operator. High-quality platforms offer structured welcome packages, reload deals, free spins, and loyalty rewards. Well-structured categories and smart search tools make it easy to find specific games or explore new releases. Learn how we collect and handle your personal information by reading our privacy statement.
Your report helps us to monitor scam trends and take action where appropriate, including warning others about new and emerging scams. And on December 1, the Suncity high-roller travel business ceased its casino operations in Macau, the place where it all began. For years, the Chinese Communist Party had allowed Chau to build his junket empire, even though it appeared to conflict with the party’s anti-gambling edicts.
Labeled Verified, they’re about genuine experiences.Learn more about other kinds of reviews. Companies can ask for reviews via automatic invitations. I would recommend this site to anyone looking for a fun and reliable online casino experience. See how their reviews and ratings are sourced, scored, and moderated.
This one has a decent selection for AU players, not just hype bonuses. For players hoping for fair, simple rewards, this lack of clarity is a big letdown.Limited Game SelectionThe listed free spins often apply to just a handful of outdated or low-payout slots, with little flexibility to choose games you enjoy. Instead of straightforward terms, many offers bury key restrictions deep in fine print — including excessive playthrough conditions that essentially negate any real benefit of “free” spins. From what I checked here, the casinos listed are actually reasonable.
Misleading “No Deposit” PromiseFirst and foremost, the term no deposit suggests you can start playing and potentially win real money without spending anything — but that’s rarely the case here. You won’t get rich from these bonuses, but they’re good for trying the platform and playing a few slot rounds without risking your own money. For Australian players, no deposit free spins Australia deals are often limited in number and time, due to regulatory restrictions. In competitive markets like Australia, free spins no deposit in Australia are highly sought after, as players prefer low-risk ways to evaluate a casino’s payout speed, game quality, and overall trustworthiness. In most cases, free spins are tied to a welcome offer, but some platforms also provide free spins no deposit, which are especially attractive to new players. These casinos offer free spins as part online casino of their promotions, allowing players to spin selected pokies without using their own balance.
Free spins with no deposit are always tricky because many offers have impossible conditions. Used one to test a slot and the bonus worked as expected This means the best offers are usually available at new or recently launched platforms. Free spins no deposit promotions allow you to register and receive spins instantly, without making a deposit.
Wish i’d found this earlier instead of depositing $70 at every casino just to try it out, the minimum deposit 10 casino listings here are spot on and save you from overspending With objective analysis and up-to-date comparisons, $10 Deposit Casinos for Australians helps you find practical, low-risk real-money gaming options.See more From banking options to wagering requirements, each $10 deposit casino Australia listing includes transparent breakdowns and verified information. Casino online australia was doing my head in
too many dodgy sites out there. Not hype-heavy, more about what actually works for real money play. There’s solid information about casino bonuses, wagering requirements, withdrawal limits, and payment methods.
And yet key executives at Shuffle are gambling on the company’s own live broadcasts, plainly located in Australia as they do so. Australian-run “crypto casino” Shuffle.com is processing billions of dollars of cryptocurrencies every month. Bachelor of Medicine Bachelor of Surgery (MBBS)Fellow of the Royal Australian College of General Practitioners (FRACGP)Dr Hany has 20 years’ experience in general medicine and general practice)
A casino ranks lower in this area when the headline bonus looks strong, but the bonus terms make it harder to benefit from. A large welcome bonus only adds value if the terms are realistic enough to use in practice. We compare withdrawal speed, pending periods, verification requirements, payout limits, and the ease of understanding when and how players can access their winnings.
Many players focus on the headline number and miss the restrictions that make the promotion harder to use in practice. Before claiming any offer, read the wagering requirements, max-bet limit, game contribution rules, and any extra conditions on free spins or bonus funds. A huge game count can sound impressive, but it does not always make a casino better for your needs. A big casino bonus can look attractive, but that does not always mean better value. Before signing up, decide whether you care more about long-term value, a bigger game library, easier banking, or a stronger welcome offer, and then choose the casino that best fits that priority.
I’m a real money player n picky bout where i play. Really helped me find a safe spot to play some lighting link style games. Our platform is a place for Aussie players to share their stories, celebrate their wins, and support each other.
Your way to manage Crown Rewards and plan your Crown experience, all in one app. You can play an important role to help us protect the community by being aware of our processes and declaring certain information to Crown when requested. Crown Melbourne operates in accordance with the Victorian Gambling and Casino Control Commission (VGCCC) Casino Rules, which govern gaming machine operation and player protections. Updated terms and conditions came into effect on 1 August 2022, supporting enhanced online casino controls and transparency.
When i needed to verify my account katrina support manager, walked me through the… Really appreciate their responsoble gambling tools. Hit a nice win on gates of olympus during my lunch break and had the money in my account be… Plays smooth on my phone and the payid integration works flawlessly. PayID is just incredible – 3 clicks and money in account.
Defo recommend if you prefer keeping your gambling spending separate from your main bank account. Just used it to find a new site today and the neosurf deposit went through instantly. If you need a reliable neosurf casino just check their top list.
Been playing their live dealer blackjack and some payid pokies it’s top notch! UI is responsive, games load fast even during peak times, and support chat actually knows their stuff. Been testing a few casinos accept PayID deposits, and this one’s my top pick. On November 28, Macau police remanded him in custody to face trial for alleged criminal association, illegal gambling, money laundering and running an illegal online gambling operation in the Philippines. They realy do the hard yards checking stuff like fast payouts & fair bonuses.
Many players around the world have found ways around Shuffle’s processes for checking identities and locations. “Due to licensing restrictions, we cannot accept players from Australia,” visitors are informed when trying to access the site from a blocked region. This puts Shuffle among the top five “crypto casinos” globally, just two years after its launch. Contact Julian Fell at if you have any information about crypto casinos in Australia. When not participating in special events, the casino’s affiliated streamers broadcast themselves gambling from their bedrooms and, in some cases, purpose-built studios. I’m a casual player so I don’t like dropping big hunderds at once.
]]>From birthday surprises to exclusive access areas of the casino. In need of some play time? The committee recommended blocking transactions to illegal gambling operators, and “stronger sanctions for companies and known individuals who profit from illegal gambling”.
If you are comparing the best online pokies real money options on a casino homepage, it helps to look beyond the welcome bonus. For many players, the online pokies available in Australia are the main reason to compare casinos in the first place. A strong real money online casino should make withdrawals as clear as deposits. A strong real money online casino should make its withdrawal times clear before you deposit.
They are not just featured; they are the recommended Australian casino picks that best match the page’s main user priorities. Each recommended casino earned its place because it performed better across the factors we tested, ranked, and evaluated, rather than because it simply looked good on a promotion page. Once you look at the game library, the withdrawal wording, the banking mix, or the operator’s overall transparency, they seem thinner. Skip VegasNow if you want the simplest signup process, or if you care more about easy, all-around usability than maximum game depth. The local market involves legal and regulatory considerations, practical payment questions, and differing expectations around trust, transparency, and responsible gambling.
Before joining any online casino in Australia, focus on the details that shape real money play rather than relying on a large welcome offer alone. Crazy Vegas compares how easy each site is to navigate, how clearly it explains bonuses and payments, how accessible its support feels, and whether the overall layout makes real-money play simpler for first-time users. Crazy Vegas reviews casino bonuses by looking at wagering requirements, max-bet rules, game restrictions, max-cashout limits, and whether the offer feels usable rather than purely promotional.
Payid casino withdrawals processed m… Participated in a weekend pokie tournament and came 3rd – won $200 extra the leaderboard updates in real time which is a nice touch. Pokies with PayID are a total game-changer! Pays out fast, PayID really works as advertised. Sarah from vip support remembers my pref…
I always verify if the casino holds a valid online casino license from a reputable gaming authority. These bonuses are perks or incentives offered by casino platforms to attract and reward punters. I’ve rounded up the top online casino sites that we reckon you’re gonna love. Please ensure you comply with your local laws before engaging with any online casino. In many cases, gambling winnings in Australia aren’t taxed for casual players because gambling is generally treated as a hobby, not a profession. Check the licence, withdrawal times, payment methods, bonus terms, support access, and whether the casino clearly explains its rules.
Been playing their live dealer blackjack and some payid pokies it’s top notch! UI is responsive, games load fast even during peak times, and support chat actually knows their stuff. Been testing a few casinos accept PayID deposits, and this one’s my top pick. On November 28, Macau police remanded him in custody to face trial for alleged criminal association, illegal gambling, money laundering and running an illegal online gambling operation in the Philippines. They realy do the hard yards checking stuff like fast payouts & fair bonuses.
]]>Good site for finding neosurf casinos. It’s hard to find a online casinos neosurf deposit casino that doesn’t charge extra fees or have weird limits. Trust us to guide you to a secure and enjoyable experience at every featured neosurf casino! Saw offers like 100 free spins no deposit australia, good enough to test the slot and the site before committing
Welcome to Online Casinos Australia, your most trusted guide to the world of online pokies. The reviews are quite detailed and help to see the pros and cons quickly. Just show your Crown Rewards Card when you pay or play and you can start earning points, which you can redeem for Crown experiences like dining, gaming, hotels stays and much more. Offering incentives for reviews or asking for them selectively can bias the TrustScore, which goes against our guidelines.
I recommend Truedinkumbet.com it is a real aussie site and having a high end bonuses for the players really deserves and enjoy at this site 












The legal landscape of online casinos in Australia is complex and has undergone significant changes in recent years. These live games offer a unique blend of authenticity and accessibility, allowing players to interact with professional dealers and fellow gamblers in real-time. These platforms pride themselves on offering an extensive array of games, ensuring that players have a vast selection at their fingertips, thereby enriching their overall gaming experience.
Was your money stolen in the scam? L&GNSW’s website explains that once you are provisionally approved or approved you will receive a link to the online RCG refresher course via email to be completed prior to enrolling for Licensee training. If a refund is granted, EOT will deduct an administration fee from the refund amount for time and resources used in providing administrative support services to the learner.
Use this checklist before joining any online casino accessible to Australian players for real money. If you mainly care about online pokies, Australian players can assess the provider mix, the range of titles, and whether the casino offers enough variety beyond a handful of familiar games. It is the clearest online casino pick in Australia for readers who value usable bonuses, practical payments, solid game variety, and an easier overall experience over a narrow specialist focus.
If the operator makes deposits look easy but is vague about cash-outs, limits, or verification, that is a reason to be cautious. If you want stronger control, use formal support tools rather than relying on willpower alone. Set limits before you start, take breaks, and step back if gambling stops feeling manageable. If the legal position, ownership, or player protections are hard to understand, that is already a reason to be cautious.
]]>Firstly, Joka Casino is the strongest all-around choice on Crazy Vegas for players who want one Australian online casino that covers the main priorities well. Together, they make the Australian online casino comparison more useful because each one gives players a clear reason to choose it, rather than leaving all options feeling interchangeable. Joka Casino, VegasNow, and SkyCrown are the three strongest real money online casino options to shortlist on this page. Crazy Vegas focuses on those differences so readers can see which Australian online casinos stand out, who they suit best, and what trade-offs matter before joining. Several online casinos registered in Curaçao have been issued warnings by Australia’s media regulator, ACMA, for illegally targeting Australians.
Remember, the best Australian online casinos usually offer a variety of payout options to cater to different preferences. So, let’s have a look at the best payout methods at online casinos. Let’s have a talk about something crucial in the online casino game – how can you add money and grab those winnings. Overall, free online casino and no deposit mobile casinos give you the freedom to enjoy gaming wherever life takes you. It’s a good idea to consider the overall usability of the top online casinos. Reviewing online casinos involves a thorough evaluation of various features to provide you with comprehensive insights.
For us, fair bonus value matters more than oversized numbers, because Australian players are better served by an offer they can actually use. We compare deposit methods, withdrawal compatibility, cashier clarity, AUD support where available, and whether the overall banking experience feels simple enough for everyday use. For Australian players, a better casino site makes cash-outs feel transparent rather than frustrating. A casino can also fall short if it is harder for new players to use, if the gaming offer is too repetitive, or if the trust picture feels weaker than the top-rated options on this page.
Fake review detected
This review is factually incorrect.We are not a casino and we do not operate any gambling app.Many players around the world have found ways around Shuffle’s processes for checking identities and locations. “Due to licensing restrictions, we cannot accept players from Australia,” visitors are informed when trying to access the site from a blocked region. This puts Shuffle among the top five “crypto casinos” globally, just two years after its launch. Contact Julian Fell at if you have any information about crypto casinos in Australia. When not participating in special events, the casino’s affiliated streamers broadcast themselves gambling from their bedrooms and, in some cases, purpose-built studios. I’m a casual player so I don’t like dropping big hunderds at once.
While offers like these sound extremely generous, it’s important to read the bonus terms carefully. Free spins no deposit promotions allow you to register and receive spins instantly, without making a deposit. Site is a bit basic to look at but it gets the job done if u just want to find a place to play on the weekend. Better than most other review sites I’ve seen lately. Pretty solid info on online slots aus. If you’re trying to find a good online slots machine, save yourself the headache and just check these lists.
I always verify if the casino holds a valid online casino license from a reputable gaming authority. These bonuses are perks or incentives offered by casino platforms to attract and reward punters. I’ve rounded up the top online casino sites that we reckon you’re gonna love. Please ensure you comply with your local laws before engaging with any online casino. In many cases, gambling winnings in Australia aren’t taxed for casual players because gambling is generally treated as a hobby, not a profession. Check the licence, withdrawal times, payment methods, bonus terms, support access, and whether the casino clearly explains its rules.
Casinos that accept payid are okay for deposits, but the withdrawal verification dragged on way too long, and the bonus terms felt restrictive. Great variety of games to choose from and reliable customer service finally a ledgit casino you can withdraw from I played payid pokies with free spins and didn’t even have to verify my identity until i actually won something decent The casino works smoothly, new payid pokies come out every month, and the site offers all kinds of payment including crypto
The steamers featured on Shuffle’s game show are based in the US. Shuffle is accepting around $2 billion worth of deposits each month, according to analytics service Tanzanite. On a recent week, the jackpot was around $3.8 million — a sign of the casino’s growing popularity. Many streamers demonstrate signs of disordered thinking around gambling, says Dr Johnson, as do the viewers commenting in their online casinos live chatrooms.
]]>