/*! elementor - v3.19.0 - 07-02-2024 */
(self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["modules_nested-elements_assets_js_editor_nested-element-types-base_js"],{
/***/ "../modules/nested-elements/assets/js/editor/nested-element-types-base.js":
/*!********************************************************************************!*\
!*** ../modules/nested-elements/assets/js/editor/nested-element-types-base.js ***!
\********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = exports.NestedElementTypesBase = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _view = _interopRequireDefault(__webpack_require__(/*! ./views/view */ "../modules/nested-elements/assets/js/editor/views/view.js"));
var _empty = _interopRequireDefault(__webpack_require__(/*! ./views/empty */ "../modules/nested-elements/assets/js/editor/views/empty.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
/**
* @typedef {import('../../../../../assets/dev/js/editor/elements/types/base/element-base')} ElementBase
*/
var NestedElementTypesBase = /*#__PURE__*/function (_elementor$modules$el) {
(0, _inherits2.default)(NestedElementTypesBase, _elementor$modules$el);
var _super = _createSuper(NestedElementTypesBase);
function NestedElementTypesBase() {
(0, _classCallCheck2.default)(this, NestedElementTypesBase);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(NestedElementTypesBase, [{
key: "getType",
value: function getType() {
elementorModules.ForceMethodImplementation();
}
}, {
key: "getView",
value: function getView() {
return _view.default;
}
}, {
key: "getEmptyView",
value: function getEmptyView() {
return _empty.default;
}
}, {
key: "getModel",
value: function getModel() {
return $e.components.get('nested-elements/nested-repeater').exports.NestedModelBase;
}
}]);
return NestedElementTypesBase;
}(elementor.modules.elements.types.Base);
exports.NestedElementTypesBase = NestedElementTypesBase;
var _default = NestedElementTypesBase;
exports["default"] = _default;
/***/ }),
/***/ "../modules/nested-elements/assets/js/editor/views/add-section-area.js":
/*!*****************************************************************************!*\
!*** ../modules/nested-elements/assets/js/editor/views/add-section-area.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 _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = AddSectionArea;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/* eslint-disable jsx-a11y/click-events-have-key-events */
function AddSectionArea(props) {
var addAreaElementRef = (0, _react.useRef)(),
containerHelper = elementor.helpers.container;
// Make droppable area.
(0, _react.useEffect)(function () {
var $addAreaElementRef = jQuery(addAreaElementRef.current),
defaultDroppableOptions = props.container.view.getDroppableOptions();
// Make some adjustments to behave like 'AddSectionArea', use default droppable options from container element.
defaultDroppableOptions.placeholder = false;
defaultDroppableOptions.items = '> .elementor-add-section-inner';
defaultDroppableOptions.hasDraggingOnChildClass = 'elementor-dragging-on-child';
// Make element drop-able.
$addAreaElementRef.html5Droppable(defaultDroppableOptions);
// Cleanup.
return function () {
$addAreaElementRef.html5Droppable('destroy');
};
}, []);
return /*#__PURE__*/_react.default.createElement("div", {
className: "elementor-add-section",
onClick: function onClick() {
return containerHelper.openEditMode(props.container);
},
ref: addAreaElementRef,
role: "button",
tabIndex: "0"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "elementor-add-section-inner"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "e-view elementor-add-new-section"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "elementor-add-section-area-button elementor-add-section-button",
onClick: function onClick() {
return props.setIsRenderPresets(true);
},
title: __('Add new container', 'elementor'),
role: "button",
tabIndex: "0"
}, /*#__PURE__*/_react.default.createElement("i", {
className: "eicon-plus"
})), /*#__PURE__*/_react.default.createElement("div", {
className: "elementor-add-section-drag-title"
}, __('Drag widgets here.', 'elementor')))));
}
AddSectionArea.propTypes = {
container: PropTypes.object.isRequired,
setIsRenderPresets: PropTypes.func.isRequired
};
/***/ }),
/***/ "../modules/nested-elements/assets/js/editor/views/empty.js":
/*!******************************************************************!*\
!*** ../modules/nested-elements/assets/js/editor/views/empty.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");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = Empty;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _addSectionArea = _interopRequireDefault(__webpack_require__(/*! ./add-section-area */ "../modules/nested-elements/assets/js/editor/views/add-section-area.js"));
var _selectPreset = _interopRequireDefault(__webpack_require__(/*! ./select-preset */ "../modules/nested-elements/assets/js/editor/views/select-preset.js"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function Empty(props) {
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
isRenderPresets = _useState2[0],
setIsRenderPresets = _useState2[1];
props = _objectSpread(_objectSpread({}, props), {}, {
setIsRenderPresets: setIsRenderPresets
});
return isRenderPresets ? /*#__PURE__*/_react.default.createElement(_selectPreset.default, props) : /*#__PURE__*/_react.default.createElement(_addSectionArea.default, props);
}
Empty.propTypes = {
container: PropTypes.object.isRequired
};
/***/ }),
/***/ "../modules/nested-elements/assets/js/editor/views/select-preset.js":
/*!**************************************************************************!*\
!*** ../modules/nested-elements/assets/js/editor/views/select-preset.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");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = SelectPreset;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
/* eslint-disable jsx-a11y/click-events-have-key-events */
function SelectPreset(props) {
var containerHelper = elementor.helpers.container,
onPresetSelected = function onPresetSelected(preset, container) {
var options = {
createWrapper: false
};
// Create new one by selected preset.
containerHelper.createContainerFromPreset(preset, container, options);
};
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
className: "elementor-add-section-close"
}, /*#__PURE__*/_react.default.createElement("i", {
onClick: function onClick() {
return props.setIsRenderPresets(false);
},
className: "eicon-close",
"aria-hidden": "true"
}), /*#__PURE__*/_react.default.createElement("span", {
className: "elementor-screen-only"
}, __('Close', 'elementor'))), /*#__PURE__*/_react.default.createElement("div", {
className: "e-view e-con-select-preset"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "e-con-select-preset__title"
}, __('Select your Structure', 'elementor')), /*#__PURE__*/_react.default.createElement("div", {
className: "e-con-select-preset__list"
}, elementor.presetsFactory.getContainerPresets().map(function (preset) {
return /*#__PURE__*/_react.default.createElement("div", {
onClick: function onClick() {
return onPresetSelected(preset, props.container);
},
key: preset,
className: "e-con-preset",
"data-preset": preset,
dangerouslySetInnerHTML: {
__html: elementor.presetsFactory.generateContainerPreset(preset)
},
role: "button",
tabIndex: "0"
});
}))));
}
SelectPreset.propTypes = {
container: PropTypes.object.isRequired,
setIsRenderPresets: PropTypes.func.isRequired
};
/***/ }),
/***/ "../modules/nested-elements/assets/js/editor/views/view.js":
/*!*****************************************************************!*\
!*** ../modules/nested-elements/assets/js/editor/views/view.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = exports.View = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var View = /*#__PURE__*/function (_$e$components$get$ex) {
(0, _inherits2.default)(View, _$e$components$get$ex);
var _super = _createSuper(View);
function View() {
(0, _classCallCheck2.default)(this, View);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(View, [{
key: "events",
value: function events() {
var _this = this;
var events = (0, _get2.default)((0, _getPrototypeOf2.default)(View.prototype), "events", this).call(this);
events.click = function (e) {
// If the clicked Nested Element is not within the currently edited document, don't do anything with it.
if (elementor.documents.currentDocument.id.toString() !== e.target.closest('.elementor').dataset.elementorId) {
return;
}
var closest = e.target.closest('.elementor-element');
var model = _this.options.model,
view = _this;
// For clicks on container/widget.
if (['container', 'widget'].includes(closest === null || closest === void 0 ? void 0 : closest.dataset.element_type)) {
// eslint-disable-line camelcase
// In case the container empty, click should be handled by the EmptyView.
var container = elementor.getContainer(closest.dataset.id);
if (container.view.isEmpty()) {
return true;
}
// If not empty, open it.
model = container.model;
view = container.view;
}
e.stopPropagation();
$e.run('panel/editor/open', {
model: model,
view: view
});
};
return events;
}
/**
* Function renderHTML().
*
* The `renderHTML()` method is overridden as it causes redundant renders when removing focus from any nested element.
* This is because the original `renderHTML()` method sets `editModel.renderOnLeave = true;`.
*/
}, {
key: "renderHTML",
value: function renderHTML() {
var templateType = this.getTemplateType(),
editModel = this.getEditModel();
if ('js' === templateType) {
editModel.setHtmlCache();
this.render();
} else {
editModel.renderRemoteServer();
}
}
}]);
return View;
}($e.components.get('nested-elements/nested-repeater').exports.NestedViewBase);
exports.View = View;
var _default = View;
exports["default"] = _default;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
/*!***********************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
\***********************************************************************/
/***/ ((module) => {
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
/*!****************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
function _defineProperty(obj, key, value) {
key = toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/get.js":
/*!*****************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/get.js ***!
\*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime/helpers/superPropBase.js");
function _get() {
if (typeof Reflect !== "undefined" && Reflect.get) {
module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports;
} else {
module.exports = _get = function _get(target, property, receiver) {
var base = superPropBase(target, property);
if (!base) return;
var desc = Object.getOwnPropertyDescriptor(base, property);
if (desc.get) {
return desc.get.call(arguments.length < 3 ? target : receiver);
}
return desc.value;
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
}
return _get.apply(this, arguments);
}
module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
/*!****************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
\****************************************************************/
/***/ ((module) => {
function _getPrototypeOf(o) {
module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
return _getPrototypeOf(o);
}
module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/inherits.js":
/*!**********************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
Object.defineProperty(subClass, "prototype", {
writable: false
});
if (superClass) setPrototypeOf(subClass, superClass);
}
module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
/*!***************************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
\***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
function _possibleConstructorReturn(self, call) {
if (call && (_typeof(call) === "object" || typeof call === "function")) {
return call;
} else if (call !== void 0) {
throw new TypeError("Derived constructors may only return object or undefined");
}
return assertThisInitialized(self);
}
module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
/*!****************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
\****************************************************************/
/***/ ((module) => {
function _setPrototypeOf(o, p) {
module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
return _setPrototypeOf(o, p);
}
module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ }),
/***/ "../node_modules/@babel/runtime/helpers/superPropBase.js":
/*!***************************************************************!*\
!*** ../node_modules/@babel/runtime/helpers/superPropBase.js ***!
\***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js");
function _superPropBase(object, property) {
while (!Object.prototype.hasOwnProperty.call(object, property)) {
object = getPrototypeOf(object);
if (object === null) break;
}
return object;
}
module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
/***/ })
}]);
//# sourceMappingURL=e8a7573e654d921656ab.bundle.js.mapCHẬU RỬA CHÉN – Chuyên cung cấp thiết bị vệ sinh
http://skyler.com.vn
Fri, 09 Aug 2024 06:47:26 +0000vi
hourly
1 https://wordpress.org/?v=5.8.10http://skyler.com.vn/wp-content/uploads/2022/07/cropped-logo_skyler-32x32.jpgCHẬU RỬA CHÉN – Chuyên cung cấp thiết bị vệ sinh
http://skyler.com.vn
3232CHẬU ĐIỆN TỬ 5 PHÍM HÀNG 304 VÒI ĐỒNG CHẬU 304 DẬP CHÌM KT80X46
http://skyler.com.vn/chi-tiet/chau-dien-tu-5-phim-hang-304-voi-dong-chau-304-dap-chim-kt80x46
http://skyler.com.vn/chi-tiet/chau-dien-tu-5-phim-hang-304-voi-dong-chau-304-dap-chim-kt80x46#respondFri, 09 Aug 2024 06:46:11 +0000http://skyler.com.vn/?post_type=product&p=2010
1. Chất liệu
Chậu rửa bát đa năng SKYLER được làm từ thép không gỉ loại 304. Thép không gỉ 304 là một loại hợp kim thép chứa khoảng 18% chrom và 8-10% nickel, có khả năng chống lại sự ăn mòn và rỉ sét. Vì vậy, chậu rửa bát 304 được đánh giá cao về tính bền đẹp và độ bền, có khả năng chịu được nhiệt độ cao và các chất hóa học, không bị ảnh hưởng bởi môi trường xung quanh, ngoài ra chậu còn có khả năng chống xước rất cao. Với những ưu điểm vượt trội về tính bền đẹp và độ bền, chậu rửa bát đa năng được nhiều người tiêu dùng lựa chọn để sử dụng trong gia đình và nhà hàng.
2.Thiết kế hiện đại, tiện ích
Thiết kế sang trọng mà vô cùng tiện lợi, tạo cảm giác sang trọng cho bàn bếp. Lòng chậu sâu 230mm tạo dung tích khá lớn có thể chứa nhiều bát đĩa giúp bạn thoải mái hơn khi rửa bát. Lòng chậu thiết kế lõm xuống và được phủ lớp sơn chống ồn, chống ngưng tụ nước. Bộ xi-phong có khả năng thoát nước nhanh, dễ vệ sinh và ngăn mùi tuyệt đối.
Khả năng tối ưu không gian bên dưới tủ là một đặc điểm nổi bật nhất của chậu. với thiết kế lỗ thoát nước bên phải giúp giảm diện tích tủ hơn đến 90% so với kiểu thiết kế ở giữa. Giúp bạn tối ưu được không gian , có thể đặt thêm các vận dụng khác.
3.Công năng
Thớt dày và bền giúp bạn thái rửa trực tiếp trên chậu.
Chậu nhỏ: Khi ít bát đũa bạn có thể rửa trên khay chậu nhỏ điều đó giúp bạn tiết kiệm nước và tối ưu được thời gian rửa hơn.
Đầu vòi: 3 chế độ nước
Chế độ phun mưa: Đây là một thiết kế vô cùng độc đáo và tiện lợi giúp bạn rửa rau củ quả dễ dàng hơn với diện tích phun rộng rửa được tối ưu nhất
Màn hình: điển thị nhiệt độ và thời gian sử dụng
Bềmặt: của bồn rửa nhà bếp này được thiết kế với lớp phủ nano và vân nổi, không dễ để lại vết nước và vết dầu mỡ, đồng thời cải thiện khả năng chống trầy xước và độ bền.
Miễn phí giao hàng nội thành Hà Nội với đơn hàng > 300.000đ và Freeship với các tỉnh với đơn hàng > 1.000.000đ
Hỗ trợ đổ trả miễn phí trong vòng 7 ngày kể từ khi mua hàng.
]]>Chậu rửa bát Inox 304 nano SKYLER SKL 100×45 có bàn
Bộ sản phẩm bao gồm: 1 chậu rửa bát và 1 bộ xi phông thoát, ông xả chậu rửa bát 2 hố XP418
– Chất liệu: inox304 phủ tĩnh điện nano
– Độ dày mặt: ~3.0mm
– Kích thước chậu: 100x45x23cm ( dài x rộng x cao) – Kích thước khoét đá 97x42cm
– Lòng chậu: 40x40x20.5cm ( dài x rộng x sâu lòng) – Mặt bàn kt: 18x40cm
– Trọng lượng tịnh: 11.3kg
– Bảo hành 24 tháng
]]>http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-304-nano-skyler-skl-100x45/feed0Chậu rửa bát đá nhân tạo SKYLER SKL 79x48A
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-79x48a-2
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-79x48a-2#respondTue, 28 Dec 2021 16:22:46 +0000http://skyler.com.vn/?post_type=product&p=1813Khuyến mại:
Miễn phí giao hàng nội thành Hà Nội với đơn hàng > 300.000đ và Freeship với các tỉnh với đơn hàng > 1.000.000đ
Hỗ trợ đổ trả miễn phí trong vòng 7 ngày kể từ khi mua hàng.
]]>Chậu rửa bát đá nhân tạo SKYLER SKL 79x48A được làm bằng bột đá Granite nhập khẩu trực tiếp từ Ấn Độ, mang thiết kế hiện đại với những đường nét tinh xảo nhằm đáp ứng như cầu thị yếu của khách hàng ngày càng cao.
Chất lượng qua kiểm định TUV và SSG tiêu chuẩn châu âu chất liệu 80% bột đá Granite + 20% keo và màu
Tổng quan:
– Chủng loại: Chậu đá hai hộc cân đen
– Bao gồm: chậu + xi phông + khay rút inox304
– Chất liệu: Vật liệu hỗn hợp đá thạch anh
– Hệ thống chống tràn chống ồn đặc biệt.
– Màu sắc: Đen
– Kích thước: 79x48x23cm ( dài x rộng x sâu)
– Bảo hành: 24 tháng
]]>http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-79x48a-2/feed0Chậu rửa bát SKYLER SKL 100×45
http://skyler.com.vn/chi-tiet/chau-rua-bat-skyler-skl-100x45
http://skyler.com.vn/chi-tiet/chau-rua-bat-skyler-skl-100x45#respondTue, 28 Dec 2021 16:20:25 +0000http://skyler.com.vn/?post_type=product&p=1811http://skyler.com.vn/chi-tiet/chau-rua-bat-skyler-skl-100x45/feed0Chậu rửa bát đá nhân tạo SKYLER SKL 88×49 1 lỗ đen
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-88x49-1-lo-den
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-88x49-1-lo-den#respondTue, 28 Dec 2021 16:18:11 +0000http://skyler.com.vn/?post_type=product&p=1809Khuyến mại:
Miễn phí giao hàng nội thành Hà Nội với đơn hàng > 300.000đ và Freeship với các tỉnh với đơn hàng > 1.000.000đ
Hỗ trợ đổ trả miễn phí trong vòng 7 ngày kể từ khi mua hàng.
]]>Khuyến mại:
Miễn phí giao hàng nội thành Hà Nội với đơn hàng > 300.000đ và Freeship với các tỉnh với đơn hàng > 1.000.000đ
Hỗ trợ đổ trả miễn phí trong vòng 7 ngày kể từ khi mua hàng.
]]>http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-88x49-1-lo-den/feed0Chậu rửa bát đá nhân tạo SKYLER SKL 79x48A
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-79x48a
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-79x48a#respondTue, 28 Dec 2021 16:15:49 +0000http://skyler.com.vn/?post_type=product&p=1807http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skyler-skl-79x48a/feed0Chậu rửa bát Inox 304 SKL 82X45 dày 3.5mm
http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-304-skl-82x45-day-3-5mm
http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-304-skl-82x45-day-3-5mm#respondSun, 26 Dec 2021 15:34:02 +0000http://skyler.com.vn/?post_type=product&p=1732http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-304-skl-82x45-day-3-5mm/feed0Chậu rửa bát đá nhân tạo SKL 78x43B
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skl-78x43b
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skl-78x43b#respondSun, 26 Dec 2021 15:29:32 +0000http://skyler.com.vn/?post_type=product&p=1728http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skl-78x43b/feed0Chậu rửa bát đá nhân tạo SKL 114×48 đen
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skl-114x48-den
http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skl-114x48-den#respondSun, 26 Dec 2021 07:44:31 +0000http://skyler.com.vn/?post_type=product&p=1719http://skyler.com.vn/chi-tiet/chau-rua-bat-da-nhan-tao-skl-114x48-den/feed0Chậu rửa bát Inox SKL 78x43E
http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-skl-78x43e
http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-skl-78x43e#respondSun, 26 Dec 2021 07:42:26 +0000http://skyler.com.vn/?post_type=product&p=1717http://skyler.com.vn/chi-tiet/chau-rua-bat-inox-skl-78x43e/feed0