"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; } Services – ASHER GLAIDEN 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

Services

Through a unique combination of engineering, construction and design disciplines and expertise.​

About us
Since the 1980s, as the complexity of buildings began to increase, the field of architecture became multi-disciplinary with specializations.
Our services

Through a unique combination of engineering and design.

Through a unique combination of engineering, construction and design disciplines and expertise, Concor delivers world class infrastructure solutions to customers and stakeholders across a broad range of industry sectors.​
Through a unique combination of engineering, construction and design disciplines and expertise, Concor delivers world class infrastructure solutions to customers and stakeholders across a broad range of industry sectors.​
Through a unique combination of engineering, construction and design disciplines and expertise, Concor delivers world class infrastructure solutions to customers and stakeholders across a broad range of industry sectors.​

Building the
future cities

Urban design draws together the many strands of place-making, environmental stewardship.

Influential
and impactful

Urban design draws together the many strands of place-making, environmental stewardship.

Award-winning
architecture

Urban design draws together the many strands of place-making, environmental stewardship.

About us

Influential and impactful

Through a unique combination of engineering, construction and design disciplines and expertise.

Urban design draws together the many strands of place-making, environmental stewardship, social equity and economic viability into the creation of places with distinct beaut.

Samantha John, Ceo

Through a unique combination of engineering, construction and design disciplines and expertise, Concor delivers world class infrastructure solutions.

Jose Sanchez, Liquid

Our process applies techniques from a variety of disciplines, values distinction in detail and gives careful. Since the 1980s, as the complexity of buildings began to increase.

Daniel Mark, Envato

Have a project in mind?

Request a Call Back

Have a question in mind? Do not hesitate to contact us.

    I am bound by the terms and I accept Privacy Policy

    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.