"use strict"; (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["ai-form-code"],{ /***/ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js": /*!***************************************************************!*\ !*** ../modules/ai/assets/js/editor/hooks/use-code-prompt.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { 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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _api = __webpack_require__(/*! ../api */ "../modules/ai/assets/js/editor/api/index.js"); var _usePrompt = _interopRequireDefault(__webpack_require__(/*! ./use-prompt */ "../modules/ai/assets/js/editor/hooks/use-prompt.js")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var getCodeResult = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(payload, _ref) { var codeLanguage, htmlMarkup, elementId; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: codeLanguage = _ref.codeLanguage, htmlMarkup = _ref.htmlMarkup, elementId = _ref.elementId; if (!('css' === codeLanguage)) { _context.next = 1; break; } return _context.abrupt("return", (0, _api.getCustomCSS)(_objectSpread(_objectSpread({}, payload), {}, { html_markup: htmlMarkup, element_id: elementId }))); case 1: return _context.abrupt("return", (0, _api.getCustomCode)(_objectSpread(_objectSpread({}, payload), {}, { language: codeLanguage }))); case 2: case "end": return _context.stop(); } }, _callee); })); return function getCodeResult(_x, _x2) { return _ref2.apply(this, arguments); }; }(); var useCodePrompt = function useCodePrompt(_ref3) { var codeLanguage = _ref3.codeLanguage, htmlMarkup = _ref3.htmlMarkup, elementId = _ref3.elementId, credits = _ref3.initialCredits; var promptData = (0, _usePrompt.default)(function (payload) { return getCodeResult(payload, { codeLanguage: codeLanguage, htmlMarkup: htmlMarkup, elementId: elementId }); }, { credits: credits }); return promptData; }; var _default = exports["default"] = useCodePrompt; /***/ }), /***/ "../modules/ai/assets/js/editor/pages/form-code/code-block.js": /*!********************************************************************!*\ !*** ../modules/ai/assets/js/editor/pages/form-code/code-block.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { 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 _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js")); var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js")); var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui"); var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _textarea = _interopRequireDefault(__webpack_require__(/*! ../../components/textarea */ "../modules/ai/assets/js/editor/components/textarea.js")); var _excluded = ["node", "inline", "children", "defaultValue", "onInsert"]; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var CodeBlock = function CodeBlock(_ref) { var node = _ref.node, inline = _ref.inline, children = _ref.children, defaultValue = _ref.defaultValue, onInsert = _ref.onInsert, props = (0, _objectWithoutProperties2.default)(_ref, _excluded); var codeBlockInput = (0, _react.useRef)(null); if (inline) { return /*#__PURE__*/_react.default.createElement("code", props); } return /*#__PURE__*/_react.default.createElement(_ui.Box, { sx: { position: 'relative' }, dir: "ltr" }, /*#__PURE__*/_react.default.createElement(_textarea.default, (0, _extends2.default)({ fullWidth: true, ref: codeBlockInput, defaultValue: children[0], sx: { mb: 1 }, helperText: (0, _i18n.__)('Code generated by AI may be inaccurate.', 'elementor') }, props)), /*#__PURE__*/_react.default.createElement(_ui.Button, { size: "small", variant: "contained", onClick: function onClick() { return onInsert(defaultValue + '\n' + codeBlockInput.current.value); }, sx: { position: 'absolute', right: '11px /* @noflip */', bottom: '44px' } }, (0, _i18n.__)('Insert', 'elementor'))); }; CodeBlock.propTypes = { node: _propTypes.default.object, inline: _propTypes.default.bool, children: _propTypes.default.arrayOf(_propTypes.default.node).isRequired, defaultValue: _propTypes.default.string, onInsert: _propTypes.default.func.isRequired }; var _default = exports["default"] = CodeBlock; /***/ }), /***/ "../modules/ai/assets/js/editor/pages/form-code/index.js": /*!***************************************************************!*\ !*** ../modules/ai/assets/js/editor/pages/form-code/index.js ***! \***************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { 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 _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js")); var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js")); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js")); var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui"); var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js")); var _actionsData = __webpack_require__(/*! ../../actions-data */ "../modules/ai/assets/js/editor/actions-data.js"); var _loader = _interopRequireDefault(__webpack_require__(/*! ../../components/loader */ "../modules/ai/assets/js/editor/components/loader.js")); var _promptSearch = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-search */ "../modules/ai/assets/js/editor/components/prompt-search.js")); var _promptSuggestions = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-suggestions */ "../modules/ai/assets/js/editor/components/prompt-suggestions.js")); var _generateButton = _interopRequireDefault(__webpack_require__(/*! ../../components/generate-button */ "../modules/ai/assets/js/editor/components/generate-button.js")); var _promptErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-error-message */ "../modules/ai/assets/js/editor/components/prompt-error-message.js")); var _codeBlock = _interopRequireDefault(__webpack_require__(/*! ./code-block */ "../modules/ai/assets/js/editor/pages/form-code/code-block.js")); var _useCodePrompt2 = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-code-prompt */ "../modules/ai/assets/js/editor/hooks/use-code-prompt.js")); var _promptHistoryActionContext = __webpack_require__(/*! ../../components/prompt-history/context/prompt-history-action-context */ "../modules/ai/assets/js/editor/components/prompt-history/context/prompt-history-action-context.js"); var _promptLibraryLink = _interopRequireDefault(__webpack_require__(/*! ../../components/prompt-library-link */ "../modules/ai/assets/js/editor/components/prompt-library-link.js")); var _requestsIds = __webpack_require__(/*! ../../context/requests-ids */ "../modules/ai/assets/js/editor/context/requests-ids.js"); var _voicePromotionAlert = __webpack_require__(/*! ../../components/voice-promotion-alert */ "../modules/ai/assets/js/editor/components/voice-promotion-alert.js"); var _splitTextResult = __webpack_require__(/*! ./splitTextResult */ "../modules/ai/assets/js/editor/pages/form-code/splitTextResult.js"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ReactMarkdown = (0, _react.lazy)(function () { return __webpack_require__.e(/*! import() | ai-react-markdown */ "ai-react-markdown").then(__webpack_require__.bind(__webpack_require__, /*! react-markdown */ "../node_modules/react-markdown/index.js")); }); var generateUniqueId = function generateUniqueId() { return "custom-css-".concat(Math.random().toString(36).substr(2, 9)); }; var CodeDisplayWrapper = (0, _ui.styled)(_ui.Box)(function () { return { '& p': { mb: '10px', fontSize: '13px', lineHeight: '1.5' }, '& pre': { position: 'relative' }, '& textarea': { fontSize: '13px', lineHeight: '1.7' } }; }); var FormCode = function FormCode(_ref) { var onClose = _ref.onClose, getControlValue = _ref.getControlValue, setControlValue = _ref.setControlValue, additionalOptions = _ref.additionalOptions, credits = _ref.credits, children = _ref.children; var _useCodePrompt = (0, _useCodePrompt2.default)(_objectSpread(_objectSpread({}, additionalOptions), {}, { credits: credits })), data = _useCodePrompt.data, isLoading = _useCodePrompt.isLoading, error = _useCodePrompt.error, reset = _useCodePrompt.reset, send = _useCodePrompt.send, sendUsageData = _useCodePrompt.sendUsageData; var _splitText = (0, _splitTextResult.splitText)(data.result), code = _splitText.code, details = _splitText.details; var _useState = (0, _react.useState)(''), _useState2 = (0, _slicedToArray2.default)(_useState, 2), prompt = _useState2[0], setPrompt = _useState2[1]; var _useRequestIds = (0, _requestsIds.useRequestIds)(), setGenerate = _useRequestIds.setGenerate; var styleTagId = (0, _react.useRef)(generateUniqueId()); (0, _promptHistoryActionContext.useSubscribeOnPromptHistoryAction)([{ type: _promptHistoryActionContext.ACTION_TYPES.REUSE, handler: function handler(action) { reset(); setPrompt(action.data); } }]); var lastRun = (0, _react.useRef)(function () {}); var autocompleteItems = _actionsData.codeHtmlAutocomplete; var promptLibraryLink = ''; if ('css' === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.codeLanguage)) { autocompleteItems = _actionsData.codeCssAutocomplete; promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-css/'; } else if (additionalOptions !== null && additionalOptions !== void 0 && additionalOptions.htmlMarkup) { promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-html/'; } else { promptLibraryLink = 'https://go.elementor.com/ai-prompt-library-custom-code/'; } var showSuggestions = !prompt; var handleSubmit = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(event) { var response; return _regenerator.default.wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: event.preventDefault(); setGenerate(); lastRun.current = function () { return send({ prompt: prompt }); }; _context.next = 1; return lastRun.current(); case 1: response = _context.sent; if ('css' === (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.codeLanguage) && response.result) { showCssPreview((0, _splitTextResult.splitText)(response.result).code); } case 2: case "end": return _context.stop(); } }, _callee); })); return function handleSubmit(_x) { return _ref2.apply(this, arguments); }; }(); (0, _react.useEffect)(function () { return function () { removeStyleTag(); }; }, []); var showCssPreview = function showCssPreview(cssCode) { var parsedCssCode = parseCSS(cssCode); insertStyleTag(parsedCssCode); }; var parseCSS = function parseCSS(cssCode) { var elementId = additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.elementId; var selector = 'document' === elementId ? elementor.config.document.settings.cssWrapperSelector : ".elementor-element.elementor-element-".concat(elementId); return cssCode && cssCode.replace(/`/g, '') // Remove backticks if any .replace(/^css\s*/i, '') // Remove "css" prefix if any, case-insensitive .replace(/selector/g, selector); // Replace `selector` with the actual selector }; var isElementorEditor = function isElementorEditor() { return window.elementorFrontend; }; var insertStyleTag = function insertStyleTag(cssCode) { if (!isElementorEditor()) { return; } var style = document.createElement('style'); style.id = styleTagId.current; style.appendChild(document.createTextNode(cssCode)); elementorFrontend.elements.$body[0].appendChild(style); }; var removeStyleTag = function removeStyleTag() { if (!isElementorEditor()) { return; } var styleTag = elementorFrontend.elements.$body[0].querySelector("#".concat(styleTagId.current)); if (styleTag) { styleTag.remove(); } }; var applyPrompt = function applyPrompt(inputText) { sendUsageData(); setControlValue(inputText); onClose(); }; if (isLoading) { return /*#__PURE__*/_react.default.createElement(_loader.default, null); } return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error && /*#__PURE__*/_react.default.createElement(_promptErrorMessage.default, { error: error, onRetry: lastRun.current, sx: { mb: 2.5 } }), children, !data.result && /*#__PURE__*/_react.default.createElement(_ui.Box, { component: "form", onSubmit: handleSubmit }, /*#__PURE__*/_react.default.createElement(_ui.Box, { sx: { pb: 1.5 } }, /*#__PURE__*/_react.default.createElement(_promptSearch.default, { placeholder: (0, _i18n.__)('Describe the code you want to use...', 'elementor'), name: "prompt", value: prompt, color: "secondary", onChange: function onChange(event) { return setPrompt(event.target.value); } })), showSuggestions && /*#__PURE__*/_react.default.createElement(_promptSuggestions.default, { suggestions: autocompleteItems, onSelect: setPrompt }, /*#__PURE__*/_react.default.createElement(_promptLibraryLink.default, { libraryLink: promptLibraryLink })), /*#__PURE__*/_react.default.createElement(_ui.Stack, { direction: "row", alignItems: "center", sx: { py: 1.5, mt: 4 } }, /*#__PURE__*/_react.default.createElement(_ui.Stack, { direction: "row", justifyContent: "flex-end", flexGrow: 1 }, /*#__PURE__*/_react.default.createElement(_generateButton.default, null, (0, _i18n.__)('Generate code', 'elementor'))))), data.result && /*#__PURE__*/_react.default.createElement(CodeDisplayWrapper, null, /*#__PURE__*/_react.default.createElement(_react.Suspense, { fallback: /*#__PURE__*/_react.default.createElement(_loader.default, null) }, /*#__PURE__*/_react.default.createElement(ReactMarkdown, { components: { code: function code(props) { return /*#__PURE__*/_react.default.createElement(_codeBlock.default, (0, _extends2.default)({}, props, { defaultValue: getControlValue(), onInsert: applyPrompt })); } } }, code)), details, /*#__PURE__*/_react.default.createElement(_voicePromotionAlert.VoicePromotionAlert, { introductionKey: "ai-context-code-promotion" }), /*#__PURE__*/_react.default.createElement(_ui.Stack, { direction: "row", alignItems: "center", sx: { mt: 4 } }, /*#__PURE__*/_react.default.createElement(_ui.Stack, { direction: "row", gap: 1, justifyContent: "flex-end", flexGrow: 1 }, /*#__PURE__*/_react.default.createElement(_ui.Button, { size: "small", color: "secondary", variant: "text", onClick: function onClick() { removeStyleTag(); reset(); } }, (0, _i18n.__)('New prompt', 'elementor')))))); }; FormCode.propTypes = { onClose: _propTypes.default.func.isRequired, getControlValue: _propTypes.default.func.isRequired, setControlValue: _propTypes.default.func.isRequired, additionalOptions: _propTypes.default.shape({ codeLanguage: _propTypes.default.string, htmlMarkup: _propTypes.default.string, elementId: _propTypes.default.string, initialCredits: _propTypes.default.number }), credits: _propTypes.default.number, children: _propTypes.default.node }; var _default = exports["default"] = FormCode; /***/ }), /***/ "../modules/ai/assets/js/editor/pages/form-code/splitTextResult.js": /*!*************************************************************************!*\ !*** ../modules/ai/assets/js/editor/pages/form-code/splitTextResult.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.splitText = splitText; function splitText(inputText) { if (!inputText) { return {}; } var codeMatch = inputText.match(/```([\s\S]*?)```/); var code = codeMatch ? "```".concat(codeMatch[1], "```").trim() : ''; var detailsMatch = inputText.match(/```[\s\S]*?```([\s\S]*)/); var details = detailsMatch === null || detailsMatch === void 0 ? void 0 : detailsMatch[1].trim(); return { code: code, details: details }; } /***/ }) }]); //# sourceMappingURL=ai-form-code.f1fc9ab9d55b03c0a95d.bundle.js.mapimport { RecommendationCard } from '@recommendations/components/RecommendationCard'; export const RecommendationsGrid = ({ recommendations }) => { return (
{recommendations.map((recommendation) => // Don't render the card if the CTA type is not supported. ['plugin', 'external-link', 'internal-link'].includes( recommendation.ctaType, ) ? ( ) : null, )}
); }; (function () { 'use strict'; const loadTabContent = async (wrapper, key) => { const ajax = wrapper.dataset.ajax === 'yes'; if (!ajax) { return true; } const panel = wrapper.querySelector('.ka-woo-tabs__panel[data-tab="' + key + '"]'); if (!panel || !panel.querySelector('.ka-woo-tabs__placeholder')) { return true; } const ajaxUrl = wrapper.dataset.ajaxUrl; const nonce = wrapper.dataset.nonce; const productId = wrapper.dataset.productId; if (!ajaxUrl || !nonce || !productId) { return true; } panel.classList.add('is-loading'); const formData = new FormData(); formData.append('action', 'king_addons_render_product_tab'); formData.append('nonce', nonce); formData.append('product_id', productId); formData.append('tab_key', key); try { const response = await fetch(ajaxUrl, { method: 'POST', credentials: 'same-origin', body: formData, }); const result = await response.json(); if (result && result.success && result.data && typeof result.data.html === 'string') { panel.innerHTML = result.data.html; panel.dataset.loaded = 'yes'; } else { panel.innerHTML = '
Could not load content.
'; } } catch (e) { panel.innerHTML = '
Could not load content.
'; } panel.classList.remove('is-loading'); return true; }; const initTabs = (wrapper) => { const tabs = wrapper.querySelectorAll('.ka-woo-tabs__tab'); const panels = wrapper.querySelectorAll('.ka-woo-tabs__panel'); const accordions = wrapper.querySelectorAll('.ka-woo-tabs__accordion-toggle'); const setActive = (key) => { tabs.forEach((btn) => btn.classList.toggle('is-active', btn.dataset.tab === key)); panels.forEach((panel) => { const active = panel.dataset.tab === key; panel.classList.toggle('is-active', active); const body = panel.querySelector('.ka-woo-tabs__accordion-body'); if (body) { body.style.display = active ? 'block' : 'none'; } }); }; const handleSwitch = async (key) => { const panel = wrapper.querySelector('.ka-woo-tabs__panel[data-tab="' + key + '"]'); const needsLoad = panel && panel.querySelector('.ka-woo-tabs__placeholder'); if (needsLoad) { await loadTabContent(wrapper, key); } setActive(key); }; tabs.forEach((btn) => { btn.addEventListener('click', () => handleSwitch(btn.dataset.tab)); }); accordions.forEach((btn) => { btn.addEventListener('click', () => handleSwitch(btn.dataset.tab)); }); }; const bootstrap = (scope) => { const root = scope || document; root.querySelectorAll('.ka-woo-tabs').forEach(initTabs); }; document.addEventListener('DOMContentLoaded', () => bootstrap(document)); if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/woo_product_tabs.default', (scope) => { bootstrap(scope[0] || scope); }); } })(); /** * External dependencies */ import { __ } from '@wordpress/i18n'; import { createInterpolateElement } from '@wordpress/element'; /** * Internal dependencies */ import AppNotice from '~/components/app-notice'; import CreateBusinessAccountButton from '~/components/create-business-account-button'; import useExistingBusinessAccounts from '~/hooks/useExistingBusinessAccounts'; import './create-business-account-notice.scss'; /** * React component that displays a warning notice and a button to create a Reddit Business Account * if no existing business accounts are found for the user. * * @return {JSX.Element|null} A warning notice with a button to create a business account, or null if accounts exist or resolution is not finished. */ const CreateBusinessAccountNotice = () => { const { existingAccounts, hasFinishedResolution } = useExistingBusinessAccounts(); if ( ! hasFinishedResolution || existingAccounts?.length > 0 ) { return null; } return (

{ createInterpolateElement( __( "We couldn't find a Reddit Business Account. Create one, then come back and click Connect to a different Reddit account to link it.", 'reddit-for-woocommerce' ), { strong: , } ) }

); }; export default CreateBusinessAccountNotice; /** * Mini chart. * * @param {element} canvas The canvas element. */ window.imagify.drawMeAChart = function( canvas ) { canvas.each( function() { var value = parseInt( jQuery( this ).closest( '.imagify-chart' ).next( '.imagify-chart-value' ).text(), 10 ); new window.imagify.Chart( this, { // eslint-disable-line no-new type: 'doughnut', data: { datasets: [ { data: [ value, 100 - value ], backgroundColor: [ '#00B3D3', '#D8D8D8' ], borderColor: '#fff', borderWidth: 1 } ] }, options: { legend: { display: false }, events: [], animation: { easing: 'easeOutBounce' }, tooltips: { enabled: false }, responsive: false } } ); } ); }; (function($, d, w, undefined) { // eslint-disable-line no-unused-vars, no-shadow, no-shadow-restricted-names w.imagify.modal = { working: [], /* * Init. */ init: function () { var $document = $( d ), $processing; // Update the chart in the media modal when a media is selected, and the ones already printed. $( w ).on( 'canvasprinted.imagify', this.updateChart ).trigger( 'canvasprinted.imagify' ); // Toggle slide in custom column. $( '.imagify-datas-details' ).hide(); $document.on( 'click', '.imagify-datas-more-action a', this.toggleSlide ); // Optimize, restore, etc. $document.on( 'click', '.button-imagify-restore, .button-imagify-optimize, .button-imagify-manual-reoptimize, .button-imagify-optimize-missing-sizes, .button-imagify-generate-webp, .button-imagify-delete-webp', this.processOptimization ); $document.on( 'imagifybeat-send', this.addToImagifybeat ); $document.on( 'imagifybeat-tick', this.processImagifybeat ); // Some items may be processed in background on page load. $processing = $( '.imagify-data-actions-container .button-imagify-processing' ); if ( $processing.length ) { // Some media are already being processed. // Lock the items, so we can check their status with Imagifybeat. $processing.closest( '.imagify-data-actions-container' ).each( function() { var $this = $( this ), id = w.imagify.modal.sanitizeId( $this.data( 'id' ) ), context = w.imagify.modal.sanitizeContext( $this.data( 'context' ) ); w.imagify.modal.lockItem( context, id ); } ); // Fasten Imagifybeat. w.imagify.beat.interval( 15 ); } }, // Charts ================================================================================== /** * Update the chart in the media modal when a media is selected, and the ones already printed. * * @param {object} e Event. * @param {string} selector A CSS selector. */ updateChart: function( e, selector ) { var $canvas; selector = selector || '.imagify-consumption-chart'; $canvas = $( selector ); w.imagify.drawMeAChart( $canvas ); $canvas.closest( '.imagify-datas-list' ).siblings( '.imagify-datas-details' ).hide(); }, // Optimization ============================================================================ /** * Process to one of these actions: restore, optimize, re-optimize, or optimize missing sizes. * * @param {object} e Event. */ processOptimization: function( e ) { var $obj = $( this ), $container = $obj.parents( '.imagify-data-actions-container' ), id = w.imagify.modal.sanitizeId( $container.data( 'id' ) ), context = w.imagify.modal.sanitizeContext( $container.data( 'context' ) ), href, processingTemplate; e.preventDefault(); if ( w.imagify.modal.isItemLocked( context, id ) ) { return; } w.imagify.modal.lockItem( context, id ); href = $obj.attr( 'href' ); processingTemplate = w.imagify.template( 'imagify-button-processing' ); $container.html( processingTemplate( { label: $obj.data( 'processing-label' ) } ) ); $.get( href.replace( 'admin-post.php', 'admin-ajax.php' ) ) .done( function( response ) { if ( response.data && response.data.html ) { // The work is done. w.imagify.modal.displayProcessResult( context, id, response.data.html ); } else { // Still processing in background: we're waiting for the result by poking Imagifybeat. // Set the Imagifybeat interval to 15 seconds. w.imagify.beat.interval( 15 ); } } ); }, // Imagifybeat ============================================================================= /** * Send the media IDs and their status to Imagifybeat. * * @param {object} e Event object. * @param {object} data Object containing all Imagifybeat IDs. */ addToImagifybeat: function ( e, data ) { var $containers = $( '.imagify-data-actions-container' ); if ( ! $containers.length ) { return; } data[ w.imagifyModal.imagifybeatID ] = {}; $containers.each( function() { var $this = $( this ), id = w.imagify.modal.sanitizeId( $this.data( 'id' ) ), context = w.imagify.modal.sanitizeContext( $this.data( 'context' ) ), locked = w.imagify.modal.isItemLocked( context, id ) ? 1 : 0; data[ w.imagifyModal.imagifybeatID ][ context ] = data[ w.imagifyModal.imagifybeatID ][ context ] || {}; data[ w.imagifyModal.imagifybeatID ][ context ][ '_' + id ] = locked; } ); }, /** * Listen for the custom event "imagifybeat-tick" on $(document). * * @param {object} e Event object. * @param {object} data Object containing all Imagifybeat IDs. */ processImagifybeat: function ( e, data ) { if ( typeof data[ w.imagifyModal.imagifybeatID ] === 'undefined' ) { return; } $.each( data[ w.imagifyModal.imagifybeatID ], function( contextId, htmlContent ) { var context, id; context = $.trim( contextId ).match( /^(.+)_(\d+)$/ ); if ( ! context ) { return; } id = w.imagify.modal.sanitizeId( context[2] ); context = w.imagify.modal.sanitizeContext( context[1] ); w.imagify.modal.displayProcessResult( context, id, htmlContent ); } ); }, // DOM manipulation tools ================================================================== /** * Display the process result. * * @param {string} context The media context. * @param {int} id The media ID. * @param {string} htmlContent The HTML to insert. */ displayProcessResult: function( context, id, htmlContent ) { var $containers = w.imagify.modal.getContainers( context, id ); $containers.html( htmlContent ); w.imagify.modal.unlockItem( context, id ); if ( ! w.imagify.modal.working.length ) { // Work is done. // Open the last container being processed. w.imagify.modal.openSlide( $containers ); // Reset Imagifybeat interval. w.imagify.beat.resetInterval(); } }, /** * Open a slide rapidly. * * @param {object} $containers A jQuery collection. */ openSlide: function( $containers ) { $containers.each( function() { var $container = $( this ), text = $container.find( '.imagify-datas-more-action a' ).data( 'close' ); $container.find( '.imagify-datas-more-action a' ).addClass( 'is-open' ).find( '.the-text' ).text( text ); $container.find( '.imagify-datas-details' ).show().addClass( 'is-open' ); } ); }, /** * Toggle slide in custom column. * * @param {object} e Event. */ toggleSlide: function( e ) { var $this = $( this ); e.preventDefault(); if ( $this.hasClass( 'is-open' ) ) { $( $this.attr( 'href' ) ).slideUp( 300 ).removeClass( 'is-open' ); $this.removeClass( 'is-open' ).find( '.the-text' ).text( $this.data( 'open' ) ); } else { $( $this.attr( 'href' ) ).slideDown( 300 ).addClass( 'is-open' ); $this.addClass( 'is-open' ).find( '.the-text' ).text( $this.data( 'close' ) ); } }, /** * Get all containers matching the given context and id. * * @param {string} context The media context. * @param {int} id The media ID. * @return {object} A jQuery collection. */ getContainers: function( context, id ) { return $( '.imagify-data-actions-container[data-id="' + id + '"][data-context="' + context + '"]' ); }, // Sanitization ============================================================================ /** * Sanitize a media ID. * * @param {int|string} id A media ID. * @return {int} */ sanitizeId: function( id ) { return parseInt( id, 10 ); }, /** * Sanitize a media context. * * @param {string} context A media context. * @return {string} */ sanitizeContext: function( context ) { context = context.replace( '/[^a-z0-9_-]/gi', '' ).toLowerCase(); return context ? context : 'wp'; }, // Locks =================================================================================== /** * Lock an item. * * @param {string} context The media context. * @param {int} id The media ID. */ lockItem: function( context, id ) { if ( ! this.isItemLocked( context, id ) ) { this.working.push( context + '_' + id ); } }, /** * Unlock an item. * * @param {string} context The media context. * @param {int} id The media ID. */ unlockItem: function( context, id ) { var name = context + '_' + id, i = _.indexOf( this.working, name ); if ( i > -1 ) { this.working.splice( i, 1 ); } }, /** * Tell if an item is locked. * * @param {string} context The media context. * @param {int} id The media ID. * @return {bool} */ isItemLocked: function( context, id ) { return _.indexOf( this.working, context + '_' + id ) > -1; } }; w.imagify.modal.init(); } )(jQuery, document, window); import FrontCalculator from "../../calculator/front.calculator"; test('test_op_mod', () => { var calculator = new FrontCalculator('10 % 3'); var val = calculator.calculate(); expect(val).toBe(1); }); !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(function(){return function(){var e={3099:function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},6077:function(e,t,n){var r=n(111);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},1223:function(e,t,n){var r=n(5112),i=n(30),o=n(3070),a=r("unscopables"),u=Array.prototype;null==u[a]&&o.f(u,a,{configurable:!0,value:i(null)}),e.exports=function(e){u[a][e]=!0}},1530:function(e,t,n){"use strict";var r=n(8710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},5787:function(e){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},9670:function(e,t,n){var r=n(111);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},4019:function(e){e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},260:function(e,t,n){"use strict";var r,i=n(4019),o=n(9781),a=n(7854),u=n(111),s=n(6656),l=n(648),c=n(8880),f=n(1320),p=n(3070).f,h=n(9518),d=n(7674),v=n(5112),y=n(9711),g=a.Int8Array,m=g&&g.prototype,b=a.Uint8ClampedArray,x=b&&b.prototype,w=g&&h(g),E=m&&h(m),k=Object.prototype,A=k.isPrototypeOf,S=v("toStringTag"),F=y("TYPED_ARRAY_TAG"),T=i&&!!d&&"Opera"!==l(a.opera),C=!1,L={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},R={BigInt64Array:8,BigUint64Array:8},I=function(e){if(!u(e))return!1;var t=l(e);return s(L,t)||s(R,t)};for(r in L)a[r]||(T=!1);if((!T||"function"!=typeof w||w===Function.prototype)&&(w=function(){throw TypeError("Incorrect invocation")},T))for(r in L)a[r]&&d(a[r],w);if((!T||!E||E===k)&&(E=w.prototype,T))for(r in L)a[r]&&d(a[r].prototype,E);if(T&&h(x)!==E&&d(x,E),o&&!s(E,S))for(r in C=!0,p(E,S,{get:function(){return u(this)?this[F]:void 0}}),L)a[r]&&c(a[r],F,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:T,TYPED_ARRAY_TAG:C&&F,aTypedArray:function(e){if(I(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(d){if(A.call(w,e))return e}else for(var t in L)if(s(L,r)){var n=a[t];if(n&&(e===n||A.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(o){if(n)for(var r in L){var i=a[r];i&&s(i.prototype,e)&&delete i.prototype[e]}E[e]&&!n||f(E,e,n?t:T&&m[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,i;if(o){if(d){if(n)for(r in L)(i=a[r])&&s(i,e)&&delete i[e];if(w[e]&&!n)return;try{return f(w,e,n?t:T&&g[e]||t)}catch(e){}}for(r in L)!(i=a[r])||i[e]&&!n||f(i,e,t)}},isView:function(e){if(!u(e))return!1;var t=l(e);return"DataView"===t||s(L,t)||s(R,t)},isTypedArray:I,TypedArray:w,TypedArrayPrototype:E}},3331:function(e,t,n){"use strict";var r=n(7854),i=n(9781),o=n(4019),a=n(8880),u=n(2248),s=n(7293),l=n(5787),c=n(9958),f=n(7466),p=n(7067),h=n(1179),d=n(9518),v=n(7674),y=n(8006).f,g=n(3070).f,m=n(1285),b=n(8003),x=n(9909),w=x.get,E=x.set,k="ArrayBuffer",A="DataView",S="Wrong index",F=r.ArrayBuffer,T=F,C=r.DataView,L=C&&C.prototype,R=Object.prototype,I=r.RangeError,U=h.pack,O=h.unpack,_=function(e){return[255&e]},M=function(e){return[255&e,e>>8&255]},z=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},P=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},j=function(e){return U(e,23,4)},D=function(e){return U(e,52,8)},N=function(e,t){g(e.prototype,t,{get:function(){return w(this)[t]}})},B=function(e,t,n,r){var i=p(n),o=w(e);if(i+t>o.byteLength)throw I(S);var a=w(o.buffer).bytes,u=i+o.byteOffset,s=a.slice(u,u+t);return r?s:s.reverse()},q=function(e,t,n,r,i,o){var a=p(n),u=w(e);if(a+t>u.byteLength)throw I(S);for(var s=w(u.buffer).bytes,l=a+u.byteOffset,c=r(+i),f=0;fG;)(W=Y[G++])in T||a(T,W,F[W]);H.constructor=T}v&&d(L)!==R&&v(L,R);var Q=new C(new T(2)),$=L.setInt8;Q.setInt8(0,2147483648),Q.setInt8(1,2147483649),!Q.getInt8(0)&&Q.getInt8(1)||u(L,{setInt8:function(e,t){$.call(this,e,t<<24>>24)},setUint8:function(e,t){$.call(this,e,t<<24>>24)}},{unsafe:!0})}else T=function(e){l(this,T,k);var t=p(e);E(this,{bytes:m.call(new Array(t),0),byteLength:t}),i||(this.byteLength=t)},C=function(e,t,n){l(this,C,A),l(e,T,A);var r=w(e).byteLength,o=c(t);if(o<0||o>r)throw I("Wrong offset");if(o+(n=void 0===n?r-o:f(n))>r)throw I("Wrong length");E(this,{buffer:e,byteLength:n,byteOffset:o}),i||(this.buffer=e,this.byteLength=n,this.byteOffset=o)},i&&(N(T,"byteLength"),N(C,"buffer"),N(C,"byteLength"),N(C,"byteOffset")),u(C.prototype,{getInt8:function(e){return B(this,1,e)[0]<<24>>24},getUint8:function(e){return B(this,1,e)[0]},getInt16:function(e){var t=B(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=B(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return P(B(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return P(B(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return O(B(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return O(B(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){q(this,1,e,_,t)},setUint8:function(e,t){q(this,1,e,_,t)},setInt16:function(e,t){q(this,2,e,M,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){q(this,2,e,M,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){q(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){q(this,4,e,z,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){q(this,4,e,j,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){q(this,8,e,D,t,arguments.length>2?arguments[2]:void 0)}});b(T,k),b(C,A),e.exports={ArrayBuffer:T,DataView:C}},1048:function(e,t,n){"use strict";var r=n(7908),i=n(1400),o=n(7466),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),u=o(n.length),s=i(e,u),l=i(t,u),c=arguments.length>2?arguments[2]:void 0,f=a((void 0===c?u:i(c,u))-l,u-s),p=1;for(l0;)l in n?n[s]=n[l]:delete n[s],s+=p,l+=p;return n}},1285:function(e,t,n){"use strict";var r=n(7908),i=n(1400),o=n(7466);e.exports=function(e){for(var t=r(this),n=o(t.length),a=arguments.length,u=i(a>1?arguments[1]:void 0,n),s=a>2?arguments[2]:void 0,l=void 0===s?n:i(s,n);l>u;)t[u++]=e;return t}},8533:function(e,t,n){"use strict";var r=n(2092).forEach,i=n(9341)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},8457:function(e,t,n){"use strict";var r=n(9974),i=n(7908),o=n(3411),a=n(7659),u=n(7466),s=n(6135),l=n(1246);e.exports=function(e){var t,n,c,f,p,h,d=i(e),v="function"==typeof this?this:Array,y=arguments.length,g=y>1?arguments[1]:void 0,m=void 0!==g,b=l(d),x=0;if(m&&(g=r(g,y>2?arguments[2]:void 0,2)),null==b||v==Array&&a(b))for(n=new v(t=u(d.length));t>x;x++)h=m?g(d[x],x):d[x],s(n,x,h);else for(p=(f=b.call(d)).next,n=new v;!(c=p.call(f)).done;x++)h=m?o(f,g,[c.value,x],!0):c.value,s(n,x,h);return n.length=x,n}},1318:function(e,t,n){var r=n(5656),i=n(7466),o=n(1400),a=function(e){return function(t,n,a){var u,s=r(t),l=i(s.length),c=o(a,l);if(e&&n!=n){for(;l>c;)if((u=s[c++])!=u)return!0}else for(;l>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:function(e,t,n){var r=n(9974),i=n(8361),o=n(7908),a=n(7466),u=n(5417),s=[].push,l=function(e){var t=1==e,n=2==e,l=3==e,c=4==e,f=6==e,p=7==e,h=5==e||f;return function(d,v,y,g){for(var m,b,x=o(d),w=i(x),E=r(v,y,3),k=a(w.length),A=0,S=g||u,F=t?S(d,k):n||p?S(d,0):void 0;k>A;A++)if((h||A in w)&&(b=E(m=w[A],A,x),e))if(t)F[A]=b;else if(b)switch(e){case 3:return!0;case 5:return m;case 6:return A;case 2:s.call(F,m)}else switch(e){case 4:return!1;case 7:s.call(F,m)}return f?-1:l||c?c:F}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterOut:l(7)}},6583:function(e,t,n){"use strict";var r=n(5656),i=n(9958),o=n(7466),a=n(9341),u=Math.min,s=[].lastIndexOf,l=!!s&&1/[1].lastIndexOf(1,-0)<0,c=a("lastIndexOf"),f=l||!c;e.exports=f?function(e){if(l)return s.apply(this,arguments)||0;var t=r(this),n=o(t.length),a=n-1;for(arguments.length>1&&(a=u(a,i(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:s},1194:function(e,t,n){var r=n(7293),i=n(5112),o=n(7392),a=i("species");e.exports=function(e){return o>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},9341:function(e,t,n){"use strict";var r=n(7293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){throw 1},1)}))}},3671:function(e,t,n){var r=n(3099),i=n(7908),o=n(8361),a=n(7466),u=function(e){return function(t,n,u,s){r(n);var l=i(t),c=o(l),f=a(l.length),p=e?f-1:0,h=e?-1:1;if(u<2)for(;;){if(p in c){s=c[p],p+=h;break}if(p+=h,e?p<0:f<=p)throw TypeError("Reduce of empty array with no initial value")}for(;e?p>=0:f>p;p+=h)p in c&&(s=n(s,c[p],p,l));return s}};e.exports={left:u(!1),right:u(!0)}},5417:function(e,t,n){var r=n(111),i=n(3157),o=n(5112)("species");e.exports=function(e,t){var n;return i(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!i(n.prototype)?r(n)&&null===(n=n[o])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},3411:function(e,t,n){var r=n(9670),i=n(9212);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){throw i(e),t}}},7072:function(e,t,n){var r=n(5112)("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},e(o)}catch(e){}return n}},4326:function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},648:function(e,t,n){var r=n(1694),i=n(4326),o=n(5112)("toStringTag"),a="Arguments"==i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?i(t):"Object"==(r=i(t))&&"function"==typeof t.callee?"Arguments":r}},9920:function(e,t,n){var r=n(6656),i=n(3887),o=n(1236),a=n(3070);e.exports=function(e,t){for(var n=i(t),u=a.f,s=o.f,l=0;l=74)&&(r=a.match(/Chrome\/(\d+)/))&&(i=r[1]),e.exports=i&&+i},748:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(e,t,n){var r=n(7854),i=n(1236).f,o=n(8880),a=n(1320),u=n(3505),s=n(9920),l=n(4705);e.exports=function(e,t){var n,c,f,p,h,d=e.target,v=e.global,y=e.stat;if(n=v?r:y?r[d]||u(d,{}):(r[d]||{}).prototype)for(c in t){if(p=t[c],f=e.noTargetGet?(h=i(n,c))&&h.value:n[c],!l(v?c:d+(y?".":"#")+c,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;s(p,f)}(e.sham||f&&f.sham)&&o(p,"sham",!0),a(n,c,p,e)}}},7293:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:function(e,t,n){"use strict";n(4916);var r=n(1320),i=n(7293),o=n(5112),a=n(2261),u=n(8880),s=o("species"),l=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),c="$0"==="a".replace(/./,"$0"),f=o("replace"),p=!!/./[f]&&""===/./[f]("a","$0"),h=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,f){var d=o(e),v=!i((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),y=v&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return t=!0,null},n[d](""),!t}));if(!v||!y||"replace"===e&&(!l||!c||p)||"split"===e&&!h){var g=/./[d],m=n(d,""[e],(function(e,t,n,r,i){return t.exec===a?v&&!i?{done:!0,value:g.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:c,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),b=m[0],x=m[1];r(String.prototype,e,b),r(RegExp.prototype,d,2==t?function(e,t){return x.call(e,this,t)}:function(e){return x.call(e,this)})}f&&u(RegExp.prototype[d],"sham",!0)}},9974:function(e,t,n){var r=n(3099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},5005:function(e,t,n){var r=n(857),i=n(7854),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(r[e])||o(i[e]):r[e]&&r[e][t]||i[e]&&i[e][t]}},1246:function(e,t,n){var r=n(648),i=n(7497),o=n(5112)("iterator");e.exports=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},8554:function(e,t,n){var r=n(9670),i=n(1246);e.exports=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(String(e)+" is not iterable");return r(t.call(e))}},647:function(e,t,n){var r=n(7908),i=Math.floor,o="".replace,a=/\$([$&'`]|\d\d?|<[^>]*>)/g,u=/\$([$&'`]|\d\d?)/g;e.exports=function(e,t,n,s,l,c){var f=n+e.length,p=s.length,h=u;return void 0!==l&&(l=r(l),h=a),o.call(c,h,(function(r,o){var a;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(f);case"<":a=l[o.slice(1,-1)];break;default:var u=+o;if(0===u)return r;if(u>p){var c=i(u/10);return 0===c?r:c<=p?void 0===s[c-1]?o.charAt(1):s[c-1]+o.charAt(1):r}a=s[u-1]}return void 0===a?"":a}))}},7854:function(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},6656:function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},3501:function(e){e.exports={}},490:function(e,t,n){var r=n(5005);e.exports=r("document","documentElement")},4664:function(e,t,n){var r=n(9781),i=n(7293),o=n(317);e.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},1179:function(e){var t=Math.abs,n=Math.pow,r=Math.floor,i=Math.log,o=Math.LN2;e.exports={pack:function(e,a,u){var s,l,c,f=new Array(u),p=8*u-a-1,h=(1<>1,v=23===a?n(2,-24)-n(2,-77):0,y=e<0||0===e&&1/e<0?1:0,g=0;for((e=t(e))!=e||e===1/0?(l=e!=e?1:0,s=h):(s=r(i(e)/o),e*(c=n(2,-s))<1&&(s--,c*=2),(e+=s+d>=1?v/c:v*n(2,1-d))*c>=2&&(s++,c/=2),s+d>=h?(l=0,s=h):s+d>=1?(l=(e*c-1)*n(2,a),s+=d):(l=e*n(2,d-1)*n(2,a),s=0));a>=8;f[g++]=255&l,l/=256,a-=8);for(s=s<0;f[g++]=255&s,s/=256,p-=8);return f[--g]|=128*y,f},unpack:function(e,t){var r,i=e.length,o=8*i-t-1,a=(1<>1,s=o-7,l=i-1,c=e[l--],f=127&c;for(c>>=7;s>0;f=256*f+e[l],l--,s-=8);for(r=f&(1<<-s)-1,f>>=-s,s+=t;s>0;r=256*r+e[l],l--,s-=8);if(0===f)f=1-u;else{if(f===a)return r?NaN:c?-1/0:1/0;r+=n(2,t),f-=u}return(c?-1:1)*r*n(2,f-t)}}},8361:function(e,t,n){var r=n(7293),i=n(4326),o="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},9587:function(e,t,n){var r=n(111),i=n(7674);e.exports=function(e,t,n){var o,a;return i&&"function"==typeof(o=t.constructor)&&o!==n&&r(a=o.prototype)&&a!==n.prototype&&i(e,a),e}},2788:function(e,t,n){var r=n(5465),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},9909:function(e,t,n){var r,i,o,a=n(8536),u=n(7854),s=n(111),l=n(8880),c=n(6656),f=n(5465),p=n(6200),h=n(3501),d=u.WeakMap;if(a){var v=f.state||(f.state=new d),y=v.get,g=v.has,m=v.set;r=function(e,t){return t.facade=e,m.call(v,e,t),t},i=function(e){return y.call(v,e)||{}},o=function(e){return g.call(v,e)}}else{var b=p("state");h[b]=!0,r=function(e,t){return t.facade=e,l(e,b,t),t},i=function(e){return c(e,b)?e[b]:{}},o=function(e){return c(e,b)}}e.exports={set:r,get:i,has:o,enforce:function(e){return o(e)?i(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!s(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},7659:function(e,t,n){var r=n(5112),i=n(7497),o=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||a[o]===e)}},3157:function(e,t,n){var r=n(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},4705:function(e,t,n){var r=n(7293),i=/#|\.prototype\./,o=function(e,t){var n=u[a(e)];return n==l||n!=s&&("function"==typeof t?r(t):!!t)},a=o.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=o.data={},s=o.NATIVE="N",l=o.POLYFILL="P";e.exports=o},111:function(e){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},1913:function(e){e.exports=!1},7850:function(e,t,n){var r=n(111),i=n(4326),o=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},9212:function(e,t,n){var r=n(9670);e.exports=function(e){var t=e.return;if(void 0!==t)return r(t.call(e)).value}},3383:function(e,t,n){"use strict";var r,i,o,a=n(7293),u=n(9518),s=n(8880),l=n(6656),c=n(5112),f=n(1913),p=c("iterator"),h=!1;[].keys&&("next"in(o=[].keys())?(i=u(u(o)))!==Object.prototype&&(r=i):h=!0);var d=null==r||a((function(){var e={};return r[p].call(e)!==e}));d&&(r={}),f&&!d||l(r,p)||s(r,p,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},7497:function(e){e.exports={}},133:function(e,t,n){var r=n(7293);e.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},590:function(e,t,n){var r=n(7293),i=n(5112),o=n(1913),a=i("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),o&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},8536:function(e,t,n){var r=n(7854),i=n(2788),o=r.WeakMap;e.exports="function"==typeof o&&/native code/.test(i(o))},1574:function(e,t,n){"use strict";var r=n(9781),i=n(7293),o=n(1956),a=n(5181),u=n(5296),s=n(7908),l=n(8361),c=Object.assign,f=Object.defineProperty;e.exports=!c||i((function(){if(r&&1!==c({b:1},c(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach((function(e){t[e]=e})),7!=c({},e)[n]||o(c({},t)).join("")!=i}))?function(e,t){for(var n=s(e),i=arguments.length,c=1,f=a.f,p=u.f;i>c;)for(var h,d=l(arguments[c++]),v=f?o(d).concat(f(d)):o(d),y=v.length,g=0;y>g;)h=v[g++],r&&!p.call(d,h)||(n[h]=d[h]);return n}:c},30:function(e,t,n){var r,i=n(9670),o=n(6048),a=n(748),u=n(3501),s=n(490),l=n(317),c=n(6200)("IE_PROTO"),f=function(){},p=function(e){return"/* Dashboard Widget */ #wpclever_dashboard_widget .inside { padding: 0 12px; margin: 0; max-height: 365px; overflow-y: auto; } #wpclever_dashboard_widget .item { border-bottom: 1px solid #eee; margin: 0 -12px; padding: 10px 12px; display: inline-block; width: 100%; } #wpclever_dashboard_widget .item:hover { background-color: #fafafa; } #wpclever_dashboard_widget .item:last-child { border-bottom: none; } #wpclever_dashboard_widget .item a { display: inline-block; width: 100%; color: #23282d; outline: none; box-shadow: none; } #wpclever_dashboard_widget .item img { width: 40px; height: 40px; float: left; margin-right: 10px; border-radius: 2px; } #wpclever_dashboard_widget .item .info { opacity: .5; } /* Welcome Page */ .wpclever_welcome_page { background-image: url('../images/wpc-bg.png'); background-position: center; background-repeat: no-repeat; } .wpclever_welcome_page .card { border-color: #eee; } .wpclever_welcome_page img { max-width: 100%; height: auto; } /* Settings Page */ .wpclever_settings_page img { max-width: 100%; height: auto; } .wpclever_settings_page .wpclever_settings_page_desc a { outline: none; box-shadow: none; } .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper { border-color: #eee; } .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a { margin-left: 0; margin-right: 7px; padding: 10px 20px; outline: none; box-shadow: none; border-color: #eee; } .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a.nav-tab-active, .wpclever_settings_page .wpclever_settings_page_nav .nav-tab-wrapper a:hover { background-color: #fafafa; border-color: #fafafa; } .wpclever_settings_page .wpclever_settings_page_content { border-width: 0 1px 1px 1px; border-style: solid; border-color: #eee; background-color: #fff; display: inline-block; width: 100%; margin: 0; } .wpclever_settings_page .wpclever_settings_page_content table tr.heading th, .wpclever_settings_page .wpclever_settings_page_content table tr.heading td, .wpclever_settings_page .wpclever_settings_page_content table tr.submit th { background-color: #fafafa; padding: 15px 20px; margin: 0; } .wpclever_settings_page .wpclever_settings_page_content table tr.heading { border-bottom: 1px dashed #eee; } .wpclever_settings_page .wpclever_settings_page_content table { margin: 0; } .wpclever_settings_page .wpclever_settings_page_content .wpclever_settings_page_content_text { padding: 20px; } .wpclever_settings_page .wpclever_settings_page_content .wpclever_settings_page_content_text p { margin-top: 0; margin-bottom: 15px; } .wpclever_settings_page .wpclever_settings_page_content .wpclever_settings_page_content_text p:last-child { margin-bottom: 0; } .wpclever_settings_page .wpclever_settings_page_content table tr th, .wpclever_settings_page .wpclever_settings_page_content table tr td { padding: 15px 20px; border-bottom: 1px dashed #eee; } .wpclever_plugins .item { border-bottom: 1px solid #eee; margin: 0; padding: 10px 0; display: inline-block; width: 100%; } .wpclever_plugins .item:hover { background-color: #fafafa; } .wpclever_plugins .item:last-child { border-bottom: none; } .wpclever_plugins .item a { display: inline-block; width: 100%; color: #23282d; text-decoration: none; outline: none; box-shadow: none; } .wpclever_plugins .item img { width: 40px; height: 40px; float: left; margin-right: 10px; border-radius: 2px; } .wpclever_plugins .item .info { opacity: .5; } /* Plugin List */ tr[data-slug^="wpc-"] .plugin-description strong { display: block; font-weight: 400; font-size: 10px; color: #a00; } ASHER GLAIDEN – CONSTRUCTION COMPANY LIMITED LiteSpeed Technologies @keyframes rotateInUpLeft { from { transform-origin: left bottom; transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { transform-origin: left bottom; transform: none; opacity: 1; } } .rotateInUpLeft { animation-name: rotateInUpLeft; }
Skip links

ASHER GLAIDEN consultancy & construction. Due to continued evolvement and progress, we are able to consider additional
areas where our services may be an asset.
ASHER GLAIDEN CONSTRUCTION COMPANY LIMITED
Welcome TO

Asher Glaiden Company Ltd

Asher Glaiden Company Ltd was established in 2011 as a revolutionary construction resource dedicated to the Ghanaian construction industry. We are committed to ensuring that our clients are given a good experience in every project by using our wide spectrum of experience and capabilities to offer the best solution that exceeds their expectations. Our diverse capabilities enable us to offer whole life cycles solutions across a multitude of projects right from conception through design, construction, operation and maintenance to final decommissioning

15
Years of experience.

Commercial Properties

Private Properties

Interior Designs

Construction

01

OUR BUSINESS

Our business can be put into two main core areas: consultancy and construction. Due to continued evolvement and progress, we are able to consider additional areas where our services may be an asset. From fixed-price contracting to construction management and everything in between.

02

CONSULTANCY

We have a different approach to construction consultancy, with our breadth of experience and total commitment to our clients. We live and breathe each project taking personal ownership and making our promises to our clients a reality. We work hard to understand our client's needs and business, asking smart and challenging questions of both our clients and fellow consultants to understand the business at hand.

03

RULER MADE SERVICE

We firmly believe that every project and client is unique and need to be treated as such and so we do not streamline our service to a set of pre-determined solutions. We tailor our services to ensure our clients are getting value for money. We are also fully flexible and responsive and we can manage the whole project or programme externally from our office whichever suits our clients’ needs.

Our Services

Our business can be put into two main core areas: consultancy and construction

Project Cost Consultancy

AsherGlaiden provides professional Project Cost Consultancy services tailored to the construction industry.

Project & Program Management

AsherGlaiden delivers comprehensive Project and Program Management services for construction and infrastructure developments.

Award-Winning Architecture

AsherGlaiden is recognized for delivering award-winning architectural solutions that combine creativity, functionality, and sustainability.

House Renovation

AsherGlaiden provides professional house renovation services designed to transform existing spaces into modern, functional, and comfortable living environments.

Commercial & Residence Construction

AsherGlaiden specializes in commercial and residential construction services, delivering high-quality projects that combine durability, functionality, and modern design.

Trusted experience.

Our core services

At AsherGlaiden, we deliver innovative construction consultancy services driven by experience, precision, and a deep commitment to client success. We take ownership of every project, working closely with clients to understand their goals, challenges, and business needs. Our proactive approach allows us to provide practical solutions, strategic insights, and value-driven recommendations that ensure successful project delivery. By collaborating with industry experts and asking the right questions, we help clients make informed decisions while maximizing efficiency and cost control. Our core consultancy services include Project Cost Consultancy and Project & Program Management, providing reliable leadership and professional support for residential, commercial, and infrastructure developments.

At AsherGlaiden, we deliver innovative construction consultancy services driven by experience, precision, and a deep commitment to client success

Contact us

Monday-Friday: 08am-5pm

+233 0261298782
+233 0261298784

Have a project in mind?

info@asherglaiden.com

OFFICE LOCATION

Ground Floor Vertical Plaza Community 6, Tema Near Ecobank Community 6, Tema.

P.O. BOX CO 2084 Community 1, Tema.

Follow Us

© Asherglaiden 2026. All rights reserved.

This website uses cookies to improve your web experience.